@axiom-lattice/react-sdk 4.11.2 → 6.0.0

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 (77) hide show
  1. package/dist/{AgentDetailSideApp-GSO53ECQ.mjs → AgentDetailSideApp-QZPV7MNB.mjs} +8 -8
  2. package/dist/AgentGovernanceWorkbench-25C3AKQI.mjs +20 -0
  3. package/dist/{MessageGraph-RUU5W4OT.mjs → MessageGraph-JX6Y3VFH.mjs} +4 -4
  4. package/dist/{ReactChart-KU4TD7TM.mjs → ReactChart-LYUXL5M6.mjs} +4 -4
  5. package/dist/{SkillFlow-MLSQCF4X.mjs → SkillFlow-7OCWAF5V.mjs} +4 -4
  6. package/dist/{TasksSideApp-LWM6XAWN.mjs → TasksSideApp-TWDLVB4D.mjs} +5 -7
  7. package/dist/TasksSideApp-TWDLVB4D.mjs.map +1 -0
  8. package/dist/{TeamWorkspace-3NLKUNRK.mjs → TeamWorkspace-FGFAUD5Z.mjs} +4 -4
  9. package/dist/{TopologyRuntimeView-NVFFMHTP.mjs → TopologyRuntimeView-O3VL4A7R.mjs} +5 -5
  10. package/dist/{WorkflowAutomationView-WBVKM73F.mjs → WorkflowAutomationView-D4YMZLRJ.mjs} +7 -7
  11. package/dist/{chunk-YDIVRYML.mjs → chunk-3ZEMSWAC.mjs} +4 -4
  12. package/dist/{chunk-ZX53OESZ.mjs → chunk-466FV4VM.mjs} +3 -3
  13. package/dist/{chunk-QM3NPPQJ.mjs → chunk-6BWBE7MR.mjs} +8 -8
  14. package/dist/{chunk-PMICYMSW.mjs → chunk-7JDWJZ5M.mjs} +1176 -944
  15. package/dist/chunk-7JDWJZ5M.mjs.map +1 -0
  16. package/dist/{chunk-RDC4ZHXF.mjs → chunk-IFRTNJ2P.mjs} +2 -2
  17. package/dist/{chunk-PEEXMLMK.mjs → chunk-IODHU3BD.mjs} +3 -3
  18. package/dist/{chunk-NRT6JXPT.mjs → chunk-JJIGSAPR.mjs} +129 -222
  19. package/dist/chunk-JJIGSAPR.mjs.map +1 -0
  20. package/dist/{chunk-BXPPM4ZX.mjs → chunk-QABSNIMF.mjs} +3 -3
  21. package/dist/{chunk-ZQ7G446O.mjs → chunk-UDSGQ7R7.mjs} +3 -3
  22. package/dist/{chunk-ZXEY5OGX.mjs → chunk-UZWBRDTU.mjs} +6 -6
  23. package/dist/{embed-page-AgentDetailSideApp-FHC56ARN.js → embed-page-AgentDetailSideApp-JYVZKSUU.js} +1 -1
  24. package/dist/embed-page-AgentGovernanceWorkbench-SD2EHW2B.js +1 -0
  25. package/dist/{embed-page-MessageGraph-DMP5EZBM.js → embed-page-MessageGraph-GLQXKAVC.js} +1 -1
  26. package/dist/{embed-page-ReactChart-PYGNSRHG.js → embed-page-ReactChart-74MHCE2K.js} +1 -1
  27. package/dist/{embed-page-SkillFlow-6LPE2VG3.js → embed-page-SkillFlow-NDAK3GAD.js} +1 -1
  28. package/dist/{embed-page-TasksSideApp-MPYOPRXW.js → embed-page-TasksSideApp-DA4LUTMD.js} +5 -5
  29. package/dist/{embed-page-TeamWorkspace-EXUAXKAH.js → embed-page-TeamWorkspace-DUB3L6V6.js} +1 -1
  30. package/dist/{embed-page-TopologyRuntimeView-MH4YMU7D.js → embed-page-TopologyRuntimeView-NFBHAICN.js} +1 -1
  31. package/dist/{embed-page-WorkflowAutomationView-KQYFSLLH.js → embed-page-WorkflowAutomationView-43YGTXGF.js} +1 -1
  32. package/dist/{embed-page-chunk-O44JEYLD.js → embed-page-chunk-2PFKLMTR.js} +5 -5
  33. package/dist/{embed-page-chunk-NW37OVAX.js → embed-page-chunk-BVSC3MSO.js} +1 -1
  34. package/dist/{embed-page-chunk-YQZI5LNV.js → embed-page-chunk-C4ZV4IXK.js} +2 -2
  35. package/dist/{embed-page-chunk-QGXGVLAX.js → embed-page-chunk-DWIBLGBW.js} +1 -1
  36. package/dist/{embed-page-chunk-I7BVN6EY.js → embed-page-chunk-GKHIPXZ2.js} +1 -1
  37. package/dist/{embed-page-chunk-QHXKZNDU.js → embed-page-chunk-P477ZTUO.js} +307 -191
  38. package/dist/{embed-page-chunk-JSAUTBU5.js → embed-page-chunk-UHH575CK.js} +1 -1
  39. package/dist/{embed-page-en-PQZ2ZCEH.js → embed-page-en-GLT2HEZZ.js} +1 -1
  40. package/dist/{embed-page-zh-D3EX4GW4.js → embed-page-zh-XMEJPDMF.js} +1 -1
  41. package/dist/embed-page.js +1 -1
  42. package/dist/{en-WQVDOIB7.mjs → en-FDNQNTHX.mjs} +7 -2
  43. package/dist/{en-WQVDOIB7.mjs.map → en-FDNQNTHX.mjs.map} +1 -1
  44. package/dist/index.d.mts +24 -26
  45. package/dist/index.d.ts +24 -26
  46. package/dist/index.js +2806 -2782
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +92 -222
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/web-app.js +12 -2
  51. package/dist/web-app.js.map +1 -1
  52. package/dist/web-app.mjs +1 -1
  53. package/dist/{zh-6PHD4AY5.mjs → zh-2EJFFUSY.mjs} +7 -2
  54. package/dist/zh-2EJFFUSY.mjs.map +1 -0
  55. package/package.json +2 -2
  56. package/dist/AgentGovernanceWorkbench-LHXFBEYO.mjs +0 -20
  57. package/dist/TasksSideApp-LWM6XAWN.mjs.map +0 -1
  58. package/dist/chunk-NRT6JXPT.mjs.map +0 -1
  59. package/dist/chunk-PMICYMSW.mjs.map +0 -1
  60. package/dist/embed-page-AgentGovernanceWorkbench-KAPZJBE6.js +0 -5
  61. package/dist/zh-6PHD4AY5.mjs.map +0 -1
  62. /package/dist/{AgentDetailSideApp-GSO53ECQ.mjs.map → AgentDetailSideApp-QZPV7MNB.mjs.map} +0 -0
  63. /package/dist/{AgentGovernanceWorkbench-LHXFBEYO.mjs.map → AgentGovernanceWorkbench-25C3AKQI.mjs.map} +0 -0
  64. /package/dist/{MessageGraph-RUU5W4OT.mjs.map → MessageGraph-JX6Y3VFH.mjs.map} +0 -0
  65. /package/dist/{ReactChart-KU4TD7TM.mjs.map → ReactChart-LYUXL5M6.mjs.map} +0 -0
  66. /package/dist/{SkillFlow-MLSQCF4X.mjs.map → SkillFlow-7OCWAF5V.mjs.map} +0 -0
  67. /package/dist/{TeamWorkspace-3NLKUNRK.mjs.map → TeamWorkspace-FGFAUD5Z.mjs.map} +0 -0
  68. /package/dist/{TopologyRuntimeView-NVFFMHTP.mjs.map → TopologyRuntimeView-O3VL4A7R.mjs.map} +0 -0
  69. /package/dist/{WorkflowAutomationView-WBVKM73F.mjs.map → WorkflowAutomationView-D4YMZLRJ.mjs.map} +0 -0
  70. /package/dist/{chunk-YDIVRYML.mjs.map → chunk-3ZEMSWAC.mjs.map} +0 -0
  71. /package/dist/{chunk-ZX53OESZ.mjs.map → chunk-466FV4VM.mjs.map} +0 -0
  72. /package/dist/{chunk-QM3NPPQJ.mjs.map → chunk-6BWBE7MR.mjs.map} +0 -0
  73. /package/dist/{chunk-RDC4ZHXF.mjs.map → chunk-IFRTNJ2P.mjs.map} +0 -0
  74. /package/dist/{chunk-PEEXMLMK.mjs.map → chunk-IODHU3BD.mjs.map} +0 -0
  75. /package/dist/{chunk-BXPPM4ZX.mjs.map → chunk-QABSNIMF.mjs.map} +0 -0
  76. /package/dist/{chunk-ZQ7G446O.mjs.map → chunk-UDSGQ7R7.mjs.map} +0 -0
  77. /package/dist/{chunk-ZXEY5OGX.mjs.map → chunk-UZWBRDTU.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/agentic/agentic/packages/react-sdk/dist/web-app.js","../src/i18n/locales/a2a/en.json","../src/i18n/locales/a2a/zh.json","../src/i18n/locales/auth/en.json","../src/i18n/locales/auth/zh.json","../src/i18n/locales/capability/en.json","../src/i18n/locales/capability/zh.json","../src/i18n/locales/chat/en.json","../src/i18n/locales/chat/zh.json","../src/i18n/locales/chatConfig/en.json","../src/i18n/locales/chatConfig/zh.json","../src/i18n/locales/chatMenu/en.json","../src/i18n/locales/chatMenu/zh.json","../src/i18n/locales/chatWorkspace/en.json","../src/i18n/locales/chatWorkspace/zh.json","../src/i18n/locales/common/en.json","../src/i18n/locales/common/zh.json","../src/i18n/locales/cospace/en.json","../src/i18n/locales/cospace/zh.json","../src/i18n/locales/entities/en.json","../src/i18n/locales/entities/zh.json","../src/i18n/locales/eval/en.json","../src/i18n/locales/eval/zh.json","../src/i18n/locales/genui/en.json","../src/i18n/locales/genui/zh.json","../src/i18n/locales/governance/en.json","../src/i18n/locales/governance/zh.json","../src/i18n/locales/integration/en.json","../src/i18n/locales/integration/zh.json","../src/i18n/locales/mcpapp/en.json","../src/i18n/locales/mcpapp/zh.json","../src/i18n/locales/migration/en.json","../src/i18n/locales/migration/zh.json","../src/i18n/locales/projectRoom/en.json","../src/i18n/locales/projectRoom/zh.json","../src/i18n/locales/tasks/en.json","../src/i18n/locales/tasks/zh.json","../src/i18n/locales/training/en.json","../src/i18n/locales/training/zh.json","../src/integrations/web-app/AgentWebAppProvider.tsx","../src/integrations/web-app/AgentWebAppContext.ts","../src/integrations/web-app/error.ts","../src/integrations/web-app/sse-parser.ts","../src/integrations/web-app/client.ts","../src/utils/errorMessage.ts","../src/i18n/useT.ts","../src/i18n/instance.ts","../src/i18n/useLocale.ts","../src/i18n/LatticeLocaleProvider.tsx","../src/integrations/web-app/state/agentWebAppReducer.ts","../src/integrations/web-app/hooks/useAgentWebApp.ts","../src/integrations/web-app/hooks/useWidgetAttachments.ts","../src/integrations/web-app/hooks/useWidgetChat.ts","../src/integrations/web-app/hooks/useWidgetInterrupts.ts","../src/integrations/web-app/hooks/useWidgetProject.ts","../src/integrations/web-app/hooks/useWidgetThreads.ts","../src/integrations/web-app/components/WidgetAttachments.tsx","../src/integrations/web-app/components/widget-utils.ts","../src/integrations/web-app/components/WidgetComposer.tsx","../src/components/shared/useReviewDecision.ts","../src/integrations/web-app/components/WidgetInterruptView.tsx","../src/integrations/web-app/components/WidgetInterrupt.tsx","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/index.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/core/Parser.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/core/Renderer.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/AnimationText.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/DebugPanel/DebugPanel.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/hooks/useStreaming.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/interface.js","../src/integrations/web-app/components/WidgetMarkdown.tsx","../src/integrations/web-app/components/WidgetGenUIRenderer.tsx","../src/integrations/web-app/components/WidgetMessageList.tsx","../src/integrations/web-app/components/WidgetModelSelector.tsx","../src/integrations/web-app/components/WidgetProjectSelector.tsx","../src/integrations/web-app/components/WidgetThreadList.tsx"],"names":["require_en","require_zh","errorCodes","record","exact","parseAgentWebAppGenUIBlock","isAbortError","jsx","useContext","useRef","jsxs","StreamCacheTokenType","useMemo"],"mappings":"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,IAAA;AACF,MAAA;AACA,MAAA;AACL,IAAA;AACF,EAAA;AACO,EAAA;AACK,IAAA;AACA,IAAA;AACZ,EAAA;AACF;AACmB;AACC,EAAA;AACH,EAAA;AACR,EAAA;AACW,EAAA;AACF,EAAA;AACC,EAAA;AACC,EAAA;AACZ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACUE,EAAAA;AACF,IAAA;AACJ,IAAA;AACA,IAAA;AACE,IAAA;AACA,IAAA;AACX,EAAA;AACe,EAAA;AAEH,IAAA;AAGK,IAAA;AACD,MAAA;AACD,MAAA;AACd,IAAA;AACe,IAAA;AACD,MAAA;AACE,MAAA;AACA,MAAA;AACV,MAAA;AACU,MAAA;AACD,MAAA;AACL,QAAA;AACA,QAAA;AACC,QAAA;AACG,QAAA;AACN,QAAA;AACF,UAAA;AACE,YAAA;AACK,YAAA;AACG,YAAA;AACT,UAAA;AACH,QAAA;AACA,QAAA;AACY,QAAA;AACd,MAAA;AACa,MAAA;AACf,IAAA;AACa,IAAA;AACA,IAAA;AACP,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACe,EAAA;AACX,EAAA;AACS,IAAA;AACD,IAAA;AACd,EAAA;AACM,EAAA;AACQ,IAAA;AACI,IAAA;AACH,IAAA;AACf,EAAA;AACM,EAAA;AACS,IAAA;AACA,IAAA;AACN,IAAA;AACT,EAAA;AACM,EAAA;AACA,IAAA;AACF,MAAA;AACY,MAAA;AACC,MAAA;AACR,IAAA;AACQ,MAAA;AACb,MAAA;AACF,IAAA;AACc,EAAA;AACV,EAAA;AACS,IAAA;AACL,IAAA;AACM,MAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACZ,IAAA;AACW,EAAA;AACP,EAAA;AACS,IAAA;AACA,IAAA;AACA,IAAA;AACD,IAAA;AACC,MAAA;AACA,MAAA;AACZ,IAAA;AACE,EAAA;AACC,EAAA;AACY,IAAA;AACb,EAAA;AACW,EAAA;AAEH,IAAA;AACF,IAAA;AACA,IAAA;AACI,IAAA;AACF,MAAA;AACA,MAAA;AACX,IAAA;AACE,EAAA;AACE,EAAA;AACS,IAAA;AACP,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACY,IAAA;AACR,IAAA;AACA,IAAA;AACA,IAAA;AACU,IAAA;AACV,IAAA;AACS,IAAA;AACT,IAAA;AACS,IAAA;AACT,IAAA;AACS,IAAA;AACT,IAAA;AACA,IAAA;AACM,MAAA;AACA,MAAA;AACC,MAAA;AACF,IAAA;AACS,IAAA;AACP,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACgB,IAAA;AAChB,MAAA;AACE,IAAA;AACF,MAAA;AACG,IAAA;AACH,MAAA;AACe,IAAA;AACf,MAAA;AACJ,MAAA;AACE,QAAA;AACT,MAAA;AACQ,IAAA;AACG,MAAA;AACG,IAAA;AACH,MAAA;AACC,IAAA;AACD,MAAA;AACF,IAAA;AACE,MAAA;AACG,IAAA;AACH,MAAA;AACE,IAAA;AACF,MAAA;AACG,IAAA;AACP,MAAA;AACC,MAAA;AACG,MAAA;AACL,MAAA;AACQ,MAAA;AACA,IAAA;AACT,MAAA;AACS,IAAA;AACV,MAAA;AACU,MAAA;AACF,MAAA;AACE,MAAA;AACN,MAAA;AACK,MAAA;AACE,IAAA;AACD,MAAA;AACV,MAAA;AACU,MAAA;AACD,MAAA;AACL,MAAA;AACK,MAAA;AACI,IAAA;AACT,MAAA;AACF,MAAA;AACE,MAAA;AACK,MAAA;AACF,MAAA;AACI,IAAA;AACP,MAAA;AACF,MAAA;AACE,MAAA;AACK,MAAA;AACF,MAAA;AACI,IAAA;AACF,MAAA;AACV,MAAA;AACG,MAAA;AACI,MAAA;AACE,MAAA;AACJ,IAAA;AACK,MAAA;AACD,MAAA;AACN,MAAA;AACI,MAAA;AACE,MAAA;AACQ,IAAA;AACP,MAAA;AACA,MAAA;AACP,MAAA;AACI,MAAA;AACE,MAAA;AACA,MAAA;AACU,IAAA;AACX,MAAA;AACE,MAAA;AACP,MAAA;AACI,MAAA;AACE,MAAA;AACE,IAAA;AACH,MAAA;AACC,MAAA;AACN,MAAA;AACI,MAAA;AACE,MAAA;AACE,IAAA;AACH,MAAA;AACE,MAAA;AACP,MAAA;AACI,MAAA;AACE,MAAA;AACA,MAAA;AACa,IAAA;AACtB,MAAA;AACS,MAAA;AACN,MAAA;AACI,MAAA;AACE,MAAA;AACS,IAAA;AACV,MAAA;AACC,MAAA;AACN,MAAA;AACI,MAAA;AACE,MAAA;AACC,IAAA;AACF,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACJ,MAAA;AACL,QAAA;AACF,MAAA;AACe,IAAA;AACJ,MAAA;AACG,IAAA;AACH,MAAA;AACJ,MAAA;AACL,QAAA;AACF,MAAA;AACe,IAAA;AACnB,EAAA;AACoB,EAAA;AACP,IAAA;AACJ,IAAA;AACC,MAAA;AACQ,MAAA;AACN,MAAA;AACV,IAAA;AACa,IAAA;AACC,EAAA;AACH,IAAA;AACG,EAAA;AACH,IAAA;AACW,EAAA;AACX,IAAA;AACJ,IAAA;AACE,MAAA;AACT,IAAA;AACqB,EAAA;AACV,IAAA;AACG,EAAA;AACH,IAAA;AACc,EAAA;AACd,IAAA;AACG,EAAA;AACH,IAAA;AACG,EAAA;AACR,IAAA;AACK,IAAA;AACF,IAAA;AACM,EAAA;AACT,IAAA;AACK,IAAA;AACI,IAAA;AACd,EAAA;AACU,IAAA;AACI,IAAA;AACD,EAAA;AACH,IAAA;AACG,IAAA;AACA,EAAA;AACH,IAAA;AACG,EAAA;AACP,IAAA;AACE,MAAA;AACG,MAAA;AACE,MAAA;AACd,IAAA;AACC,EAAA;AACK,IAAA;AACK,IAAA;AACI,IAAA;AACW,EAAA;AAC9B;AACO;AnEgpQa;AACA;AoEn/QX;ApEq/QW;AACA;AqEt/QT;AACTE,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACOA,EAAAA;AACL;ArEw/QgB;AACA;AoEp/Qd;AACI,EAAA;AACD,EAAA;AACS,EAAA;AACC,EAAA;AAAkD;AAE5D,EAAA;AACS,EAAA;AAClB;AACM;AACS,EAAA;AACC,EAAA;AACJ,EAAA;AACK,EAAA;AACT,EAAA;AACU,EAAA;AACV,EAAA;AACU,EAAA;AACV,EAAA;AACS,EAAA;AACjB;AACM;AACH,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AAAuF;AAEvF,IAAA;AACQ,MAAA;AACO,MAAA;AACN,MAAA;AACT,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACF;AACmB;AACX,EAAA;AACW,EAAA;AACX,EAAA;AACJ,IAAA;AACA,IAAA;AACE,EAAA;AACU,EAAA;AACE,IAAA;AACd,IAAA;AACF,EAAA;AACc,EAAA;AACG,IAAA;AACH,IAAA;AACJ,MAAA;AACA,MAAA;AACQ,MAAA;AACd,MAAA;AACF,IAAA;AACY,IAAA;AACd,EAAA;AACF;AACM;AACW,EAAA;AACJ,EAAA;AACX;AAGI;AACK,EAAA;AACF,EAAA;AACU,EAAA;AACC,EAAA;AACpB;AACoB;AACR,EAAA;AACF,IAAA;AACU,IAAA;AAClB,EAAA;AACc,EAAA;AAChB;AACsB;AACN,EAAA;AACC,EAAA;AACC,EAAA;AACD,EAAA;AACC,EAAA;AACE,IAAA;AACH,IAAA;AACC,IAAA;AACH,IAAA;AACK,MAAA;AACA,MAAA;AACD,MAAA;AACD,MAAA;AACP,MAAA;AACQ,QAAA;AACC,QAAA;AACD,QAAA;AACN,MAAA;AAEC,QAAA;AACF,QAAA;AAGE,UAAA;AACF,YAAA;AACA,YAAA;AACA,YAAA;AACF,UAAA;AAEF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AACM;AACS,EAAA;AACG,EAAA;AACR,IAAA;AAGU,IAAA;AAGF,MAA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","file":"/home/runner/work/agentic/agentic/packages/react-sdk/dist/web-app.js","sourcesContent":[null,"{\n \"messages\": {\n \"a2a.list.title\": \"API Keys\",\n \"a2a.list.create\": \"New Key\",\n \"a2a.list.defaultLabel\": \"A2A key\",\n \"a2a.list.enabled\": \"Enabled\",\n \"a2a.list.disabled\": \"Disabled\",\n \"a2a.list.unknownProject\": \"Unknown project\",\n \"a2a.list.allAssistants\": \"All exposed assistants\",\n \"a2a.list.createdAt\": \"Created {{date}}\",\n \"a2a.list.emptyTitle\": \"No A2A keys yet\",\n \"a2a.list.emptyDescription\": \"Click \\\"New Key\\\" to issue one\",\n \"a2a.list.action.exposure\": \"View exposure\",\n \"a2a.list.action.disable\": \"Disable\",\n \"a2a.list.action.enable\": \"Enable\",\n \"a2a.list.action.rotate\": \"Rotate\",\n \"a2a.list.loadFailed\": \"Failed to load A2A keys\",\n \"a2a.list.disableFailed\": \"Failed to update A2A key\",\n \"a2a.list.disableDone\": \"A2A key disabled\",\n \"a2a.list.enableDone\": \"A2A key enabled\",\n \"a2a.list.deleteDone\": \"A2A key deleted\",\n \"a2a.list.deleteFailed\": \"Failed to delete A2A key\",\n \"a2a.list.rotateFailed\": \"Failed to rotate A2A key\",\n \"a2a.list.deleteTitle\": \"Delete API Key\",\n \"a2a.list.deleteBody\": \"Are you sure you want to delete this A2A key? Requests using it will start failing.\",\n \"a2a.list.rotateTitle\": \"Rotate API Key\",\n \"a2a.list.rotateBody\": \"Rotating this key invalidates the current value and generates a new one. The new key will be shown only once.\",\n \"a2a.list.newKeyTitle\": \"New API Key\",\n \"a2a.list.copyNow\": \"Copy your new key now — it cannot be shown again.\",\n \"a2a.list.copy\": \"Copy\",\n \"a2a.list.copiedToClipboard\": \"Copied to clipboard\",\n \"a2a.list.copyFailed\": \"Failed to copy\",\n \"a2a.editor.title.edit\": \"Edit API Key\",\n \"a2a.editor.title.create\": \"Create API Key\",\n \"a2a.editor.intro\": \"Choose what this key can access. You can change it later.\",\n \"a2a.editor.name\": \"Name\",\n \"a2a.editor.namePlaceholder\": \"e.g. production\",\n \"a2a.editor.project\": \"Working project\",\n \"a2a.editor.projectRequired\": \"Project is required\",\n \"a2a.editor.projectHint\": \"Sandbox and agent calls run in this project. Knowledge base and plugins apply tenant-wide.\",\n \"a2a.editor.projectPlaceholder\": \"Select project\",\n \"a2a.editor.grants\": \"Resource authorization\",\n \"a2a.editor.abilityTitle\": \"This key will be able to\",\n \"a2a.editor.abilityEmpty\": \"Nothing yet – select resources.\",\n \"a2a.editor.newKeyAria\": \"New API key\",\n \"a2a.editor.updated\": \"API key updated\",\n \"a2a.editor.saveFailedUpdate\": \"Failed to update API key\",\n \"a2a.editor.saveFailedCreate\": \"Failed to create API key\",\n \"a2a.editor.howToUse\": \"How to use\",\n \"a2a.editor.done\": \"Done\",\n \"a2a.editor.submit.edit\": \"Save Changes\",\n \"a2a.editor.submit.create\": \"Create Key\",\n \"a2a.exposure.title\": \"Exposed resources — {{name}}\",\n \"a2a.exposure.noData\": \"No exposure data\",\n \"a2a.exposure.tab.a2aCount\": \"A2A ({{count}})\",\n \"a2a.exposure.tenantToolsUnavailable\": \"Tenant plugin tools unavailable\",\n \"a2a.exposure.tenantToolsBody\": \"The tenant sandbox plugin catalog could not be read. Global tools are unaffected; tenant plugin tools are currently not exposed.\",\n \"a2a.exposure.uiTitle\": \"Interactive UI (MCP Apps)\",\n \"a2a.exposure.uiBodyLead\": \"Some exposed tools provide an interactive UI (an MCP App). The UI capability is advertised through the non-standard\",\n \"a2a.exposure.uiBodyMiddle\": \"capability because the official MCP SDK does not yet expose the standard\",\n \"a2a.exposure.uiBodyTail\": \"field. Only hosts that implement the MCP Apps UI extension (e.g. Claude, ChatGPT) will render the interface; hosts that check only standard capability negotiation will not, and will use the tool's text output instead.\",\n \"a2a.exposure.howToConnect\": \"How to connect\",\n \"a2a.exposure.authenticate\": \"Authenticate every request with your API key:\",\n \"a2a.exposure.mcpClient\": \"MCP client (Claude Desktop / Cursor)\",\n \"a2a.exposure.rawRequest\": \"Raw request (curl)\",\n \"a2a.exposure.tools\": \"Tools\",\n \"a2a.exposure.noTools\": \"No tools exposed.\",\n \"a2a.exposure.readOnly\": \"read-only\",\n \"a2a.exposure.noAgents\": \"No agents exposed over A2A\",\n \"a2a.exposure.skills\": \"Skills\",\n \"a2a.exposure.endpoints\": \"Endpoints\",\n \"a2a.grants.loading\": \"Loading resources…\",\n \"a2a.grants.empty\": \"No grantable resources\",\n \"a2a.grants.scopeProject\": \"project-scoped\",\n \"a2a.grants.scopeTenant\": \"tenant-wide\",\n \"a2a.grants.selected\": \"{{selected}} / {{total}} selected\",\n \"a2a.grants.selectAll\": \"Select All\",\n \"a2a.grants.clear\": \"Clear\",\n \"a2a.grants.readOnly\": \"read-only\",\n \"a2a.grants.readOnlyHint\": \"Selected permissions are read-only (clients may call without confirmation).\",\n \"a2a.audit.time\": \"Time\",\n \"a2a.audit.domain\": \"Domain\",\n \"a2a.audit.action\": \"Action\",\n \"a2a.audit.credential\": \"Credential\",\n \"a2a.audit.status\": \"Status\",\n \"a2a.audit.duration\": \"Duration\",\n \"a2a.audit.allDomains\": \"All domains\",\n \"a2a.audit.allStatuses\": \"All statuses\"\n }\n}\n","{\n \"messages\": {\n \"a2a.list.title\": \"API Key\",\n \"a2a.list.create\": \"新建 Key\",\n \"a2a.list.defaultLabel\": \"A2A key\",\n \"a2a.list.enabled\": \"已启用\",\n \"a2a.list.disabled\": \"已停用\",\n \"a2a.list.unknownProject\": \"未知项目\",\n \"a2a.list.allAssistants\": \"所有已暴露的助手\",\n \"a2a.list.createdAt\": \"创建于 {{date}}\",\n \"a2a.list.emptyTitle\": \"暂无 A2A key\",\n \"a2a.list.emptyDescription\": \"点击「新建 Key」创建一个\",\n \"a2a.list.action.exposure\": \"查看暴露范围\",\n \"a2a.list.action.disable\": \"停用\",\n \"a2a.list.action.enable\": \"启用\",\n \"a2a.list.action.rotate\": \"轮换\",\n \"a2a.list.loadFailed\": \"加载 A2A key 失败\",\n \"a2a.list.disableFailed\": \"更新 A2A key 失败\",\n \"a2a.list.disableDone\": \"A2A key 已停用\",\n \"a2a.list.enableDone\": \"A2A key 已启用\",\n \"a2a.list.deleteDone\": \"A2A key 已删除\",\n \"a2a.list.deleteFailed\": \"删除 A2A key 失败\",\n \"a2a.list.rotateFailed\": \"轮换 A2A key 失败\",\n \"a2a.list.deleteTitle\": \"删除 API Key\",\n \"a2a.list.deleteBody\": \"确定要删除这个 A2A key 吗?使用它的请求将开始失败。\",\n \"a2a.list.rotateTitle\": \"轮换 API Key\",\n \"a2a.list.rotateBody\": \"轮换该 key 会使其当前值失效并生成新值。新 key 只会显示一次。\",\n \"a2a.list.newKeyTitle\": \"新建 API Key\",\n \"a2a.list.copyNow\": \"请立即复制你的新 key——它不会再次显示。\",\n \"a2a.list.copy\": \"复制\",\n \"a2a.list.copiedToClipboard\": \"已复制到剪贴板\",\n \"a2a.list.copyFailed\": \"复制失败\",\n \"a2a.editor.title.edit\": \"编辑 API Key\",\n \"a2a.editor.title.create\": \"新建 API Key\",\n \"a2a.editor.intro\": \"选择这个 key 可以访问什么。之后可以随时修改。\",\n \"a2a.editor.name\": \"名称\",\n \"a2a.editor.namePlaceholder\": \"例如 production\",\n \"a2a.editor.project\": \"所属项目\",\n \"a2a.editor.projectRequired\": \"项目为必选项\",\n \"a2a.editor.projectHint\": \"沙箱和智能体调用在该项目中运行。知识库和插件则对整个租户生效。\",\n \"a2a.editor.projectPlaceholder\": \"选择项目\",\n \"a2a.editor.grants\": \"资源授权\",\n \"a2a.editor.abilityTitle\": \"这个 key 将能够\",\n \"a2a.editor.abilityEmpty\": \"暂无——请选择资源。\",\n \"a2a.editor.newKeyAria\": \"新 API key\",\n \"a2a.editor.updated\": \"API key 已更新\",\n \"a2a.editor.saveFailedUpdate\": \"更新 API key 失败\",\n \"a2a.editor.saveFailedCreate\": \"新建 API key 失败\",\n \"a2a.editor.howToUse\": \"如何使用\",\n \"a2a.editor.done\": \"完成\",\n \"a2a.editor.submit.edit\": \"保存更改\",\n \"a2a.editor.submit.create\": \"创建 Key\",\n \"a2a.exposure.title\": \"暴露的资源 —— {{name}}\",\n \"a2a.exposure.noData\": \"无暴露数据\",\n \"a2a.exposure.tab.a2aCount\": \"A2A({{count}})\",\n \"a2a.exposure.tenantToolsUnavailable\": \"租户插件工具不可用\",\n \"a2a.exposure.tenantToolsBody\": \"无法读取租户沙箱插件目录。全局工具不受影响;租户插件工具当前未暴露。\",\n \"a2a.exposure.uiTitle\": \"交互式 UI(MCP Apps)\",\n \"a2a.exposure.uiBodyLead\": \"部分已暴露的工具提供交互式 UI(即 MCP App)。该 UI 能力通过非标准的\",\n \"a2a.exposure.uiBodyMiddle\": \"能力字段声明,因为官方 MCP SDK 尚未暴露标准的\",\n \"a2a.exposure.uiBodyTail\": \"字段。只有实现了 MCP Apps UI 扩展的宿主(如 Claude、ChatGPT)才会渲染该界面;仅检查标准能力协商的宿主不会渲染,而是使用工具的文本输出。\",\n \"a2a.exposure.howToConnect\": \"如何连接\",\n \"a2a.exposure.authenticate\": \"每个请求都需要用 API key 进行认证:\",\n \"a2a.exposure.mcpClient\": \"MCP 客户端(Claude Desktop / Cursor)\",\n \"a2a.exposure.rawRequest\": \"原始请求(curl)\",\n \"a2a.exposure.tools\": \"工具\",\n \"a2a.exposure.noTools\": \"未暴露任何工具。\",\n \"a2a.exposure.readOnly\": \"只读\",\n \"a2a.exposure.noAgents\": \"没有通过 A2A 暴露的智能体\",\n \"a2a.exposure.skills\": \"技能\",\n \"a2a.exposure.endpoints\": \"端点\",\n \"a2a.grants.loading\": \"正在加载资源…\",\n \"a2a.grants.empty\": \"没有可授权的资源\",\n \"a2a.grants.scopeProject\": \"项目级\",\n \"a2a.grants.scopeTenant\": \"租户级\",\n \"a2a.grants.selected\": \"已选 {{selected}} / {{total}}\",\n \"a2a.grants.selectAll\": \"全选\",\n \"a2a.grants.clear\": \"清空\",\n \"a2a.grants.readOnly\": \"只读\",\n \"a2a.grants.readOnlyHint\": \"选中的权限为只读(客户端可在无需确认的情况下调用)。\",\n \"a2a.audit.time\": \"时间\",\n \"a2a.audit.domain\": \"领域\",\n \"a2a.audit.action\": \"操作\",\n \"a2a.audit.credential\": \"凭证\",\n \"a2a.audit.status\": \"状态\",\n \"a2a.audit.duration\": \"耗时\",\n \"a2a.audit.allDomains\": \"所有领域\",\n \"a2a.audit.allStatuses\": \"所有状态\"\n }\n}\n","{\n \"messages\": {\n \"auth.login.title\": \"Welcome Back\",\n \"auth.login.subtitle\": \"Sign in to your account\",\n \"auth.login.submit\": \"Sign In\",\n \"auth.login.forgotPassword\": \"Forgot password?\",\n \"auth.login.noAccount\": \"Don't have an account?\",\n \"auth.login.createOne\": \"Create one\",\n \"auth.register.title\": \"Create Account\",\n \"auth.register.subtitle\": \"Start your journey with us\",\n \"auth.register.submit\": \"Create Account\",\n \"auth.register.hasAccount\": \"Already have an account?\",\n \"auth.register.success\": \"Account created successfully\",\n \"auth.changePassword.title\": \"Change Password\",\n \"auth.changePassword.submit\": \"Change Password\",\n \"auth.changePassword.success\": \"Password changed successfully\",\n \"auth.changePassword.failed\": \"Failed to change password\",\n \"auth.changePassword.currentRequired\": \"Please enter current password\",\n \"auth.changePassword.newRequired\": \"Please enter new password\",\n \"auth.changePassword.confirmRequired\": \"Please confirm new password\",\n \"auth.changePassword.tooShort\": \"Password must be at least 6 characters\",\n \"auth.field.email\": \"Email\",\n \"auth.field.password\": \"Password\",\n \"auth.field.fullName\": \"Full name\",\n \"auth.field.confirmPassword\": \"Confirm password\",\n \"auth.field.currentPassword\": \"Current password\",\n \"auth.field.newPassword\": \"New password\",\n \"auth.field.confirmNewPassword\": \"Confirm new password\",\n \"auth.field.name\": \"Name\",\n \"auth.field.description\": \"Description\",\n \"auth.field.logoUrl\": \"Logo URL\",\n \"auth.tenant.title\": \"Select Your Tenant\",\n \"auth.tenant.selectTitle\": \"Select Tenant\",\n \"auth.tenant.chooseDescription\": \"Choose a tenant to continue\",\n \"auth.tenant.description\": \"Welcome, {{name}}! Choose a tenant to continue\",\n \"auth.tenant.empty.title\": \"Welcome, {{name}}!\",\n \"auth.tenant.empty.noAccess\": \"You don't have access to any tenants yet.\",\n \"auth.tenant.empty.contactAdmin\": \"Please contact your administrator to be assigned to a tenant.\",\n \"auth.tenant.searchPlaceholder\": \"Search tenant...\",\n \"auth.tenant.searchAriaLabel\": \"Search tenants\",\n \"auth.tenant.noMatch\": \"No tenants match\",\n \"auth.tenant.noMatchHint\": \"Try a different search.\",\n \"auth.tenant.showAll\": \"Show all tenants\",\n \"auth.tenant.noWorkspaces\": \"No workspaces available\",\n \"auth.tenant.noWorkspacesHint\": \"Contact your administrator to be added to a tenant.\",\n \"auth.tenant.countOne\": \"tenant\",\n \"auth.tenant.countOther\": \"tenants\",\n \"auth.tenant.logout\": \"Log Out\",\n \"auth.tenant.editTitle\": \"Edit Tenant\",\n \"auth.tenantSettings.title\": \"Tenant Settings\",\n \"auth.tenantSettings.general\": \"General\",\n \"auth.tenantSettings.save\": \"Save Settings\",\n \"auth.tenantSettings.updated\": \"Tenant updated\",\n \"auth.tenantSettings.updateFailed\": \"Failed to update tenant\",\n \"auth.tenantSettings.namePlaceholder\": \"Tenant name\",\n \"auth.tenantSettings.nameRequired\": \"Tenant name is required\",\n \"auth.tenantSettings.descriptionPlaceholder\": \"Brief description\",\n \"auth.tenantSettings.logoUrlHelp\": \"e.g. https://example.com/logo.png or data:image/png;base64,iVBORw...\",\n \"auth.tenantSettings.coordinatorMentionLabel\": \"Coordinator mention name\",\n \"auth.tenantSettings.coordinatorMentionHelp\": \"Handle for the room coordinator bot (e.g. @room-coordinator). Lowercase; 2–32 chars; letters/digits/_/-, starting with a letter. Applies to newly created group rooms.\",\n \"auth.tenantSettings.coordinatorMentionInvalid\": \"Lowercase; 2–32 chars; start with a letter\",\n \"auth.user.profile\": \"Profile\",\n \"auth.user.settings\": \"Settings\",\n \"auth.user.changePassword\": \"Change password\",\n \"auth.user.logout\": \"Log out\",\n \"auth.user.notifications\": \"Notifications\",\n \"auth.user.language\": \"Language\",\n \"auth.user.editTenant\": \"Edit Tenant\",\n \"auth.user.switchTenant\": \"Switch Tenant\",\n \"auth.user.currentWorkspace\": \"Current Workspace\",\n \"auth.user.loggingOut\": \"Logging out...\",\n \"auth.protected.title\": \"Authentication Required\",\n \"auth.protected.description\": \"Please log in to access this page.\",\n \"auth.notifications.on\": \"On\",\n \"auth.notifications.off\": \"Off\",\n \"auth.tenantLogo.alt\": \"{{name}} logo\",\n \"auth.tenantLogo.altFallback\": \"Tenant logo\",\n \"auth.appSwitcher.title\": \"Switch App\",\n \"auth.appSwitcher.search\": \"Search apps\",\n \"auth.appSwitcher.empty\": \"No apps registered\",\n \"auth.appSwitcher.current\": \"Current\",\n \"auth.modelProviders.title\": \"Model Providers\",\n \"auth.modelProviders.add\": \"Add Provider\",\n \"auth.modelProviders.apiKey\": \"API Key\",\n \"auth.modelProviders.baseUrl\": \"Base URL\",\n \"auth.modelProviders.modelName\": \"Model Name\",\n \"auth.modelProviders.edit\": \"Edit Provider\",\n \"auth.modelProviders.deleteTitle\": \"Delete model provider\",\n \"auth.modelProviders.loadFailed\": \"Failed to load model providers\",\n \"auth.modelProviders.empty\": \"No model providers\",\n \"auth.modelProviders.emptyHint\": \"Click \\\"Add Provider\\\" to connect an upstream\",\n \"auth.modelProviders.namePlaceholder\": \"e.g., openai-prod\",\n \"auth.modelProviders.nameHelp\": \"Unique within this tenant. Shown as the model key prefix.\",\n \"auth.modelProviders.displayName\": \"Display Name\",\n \"auth.modelProviders.displayNamePlaceholder\": \"e.g., OpenAI (production)\",\n \"auth.modelProviders.baseUrlPlaceholder\": \"e.g., https://api.openai.com/v1\",\n \"auth.modelProviders.baseUrlHelp\": \"The base address only — not a full endpoint path such as /v1/models or /v1/chat/completions; the gateway appends the path itself. Any OpenAI-compatible upstream works, including a self-hosted vLLM or Ollama on a private address.\",\n \"auth.modelProviders.testLatency\": \"Test latency\",\n \"auth.modelProviders.listModels\": \"List models\",\n \"auth.modelProviders.enabledCount\": \"{{enabled}} / {{total}} enabled\",\n \"auth.modelProviders.keyConfigured\": \"Configured — not shown\",\n \"auth.modelProviders.keyReplacedOnSave\": \"The new key replaces the stored one on save.\",\n \"auth.modelProviders.keyStoredOnServer\": \"A key is stored on the server and is never sent back.\",\n \"auth.modelProviders.keyStoredOnServerHint\": \"A key is stored on the server (ends in {{hint}}) and is never sent back.\",\n \"auth.modelProviders.replaceKey\": \"Replace key\",\n \"auth.modelProviders.keyNotStored\": \"Optional. Leave blank for a server that needs no authentication — a self-hosted Ollama, vLLM or LM Studio, for example. Stored encrypted and never sent back to the browser.\",\n \"auth.modelProviders.requestProtocol\": \"Request protocol\",\n \"auth.modelProviders.requestProtocolHelp\": \"Decides the route and the request body. Chat Completions posts messages to /v1/chat/completions; the Responses API posts input to /v1/responses. Getting it wrong shows up as unrecognised parameters, a missing route, or endless retries.\",\n \"auth.modelProviders.styleChatCompletions\": \"Chat Completions (/v1/chat/completions)\",\n \"auth.modelProviders.styleResponses\": \"Responses (/v1/responses)\",\n \"auth.modelProviders.saveProvider\": \"Save provider\",\n \"auth.modelProviders.createProvider\": \"Create provider\",\n \"auth.modelProviders.templateHint\": \"Pick a service to prefill its base URL, or Custom to fill everything in yourself. Every field stays editable afterwards.\",\n \"auth.modelProviders.templateCustom\": \"Custom\",\n \"auth.modelProviders.templateOllama\": \"Ollama (local)\",\n \"auth.modelProviders.templateVllm\": \"vLLM (local)\",\n \"auth.modelProviders.templateLmstudio\": \"LM Studio (local)\",\n \"auth.modelProviders.syncApiModels\": \"Sync API models\",\n \"auth.modelProviders.saveSelection\": \"Save selection\",\n \"auth.modelProviders.selectAllNew\": \"Select all new\",\n \"auth.modelProviders.clear\": \"Clear\",\n \"auth.modelProviders.newSelected\": \"{{selected}} of {{total}} new selected\",\n \"auth.modelProviders.droppedBanner\": \"{{count}} dropped upstream — kept and flagged, not deleted\",\n \"auth.modelProviders.droppedUpstream\": \"dropped upstream\",\n \"auth.modelProviders.configured\": \"configured\",\n \"auth.modelProviders.readingUpstream\": \"Reading the upstream model list…\",\n \"auth.modelProviders.noModelsYet\": \"No models yet. Use \\\"Sync API models\\\" to pull the list, or add one by hand.\",\n \"auth.modelProviders.remove\": \"Remove\",\n \"auth.modelProviders.removeModelTitle\": \"Remove \\\"{{modelId}}\\\"?\",\n \"auth.modelProviders.referencesStopResolving\": \"Any agent or eval configuration referencing it will stop resolving.\",\n \"auth.modelProviders.referencesStopResolvingPlural\": \"Any agent or eval configuration referencing them will stop resolving.\",\n \"auth.modelProviders.removeDefaultModel\": \"This is the tenant's default model. Make another model the default first, then remove this one.\",\n \"auth.modelProviders.removed\": \"Model removed\",\n \"auth.modelProviders.removeFailed\": \"Failed to remove model\",\n \"auth.modelProviders.models\": \"Models\",\n \"auth.modelProviders.modelsFor\": \"Models — {{name}}\",\n \"auth.modelProviders.modelsAdded\": \"{{count}} model(s) added\",\n \"auth.modelProviders.modelsAddedTo\": \"{{count}} model(s) added to {{name}}\",\n \"auth.modelProviders.noNewModels\": \"No new models to add\",\n \"auth.modelProviders.noNewModelsFor\": \"No new models for {{name}}\",\n \"auth.modelProviders.saveModelsFailed\": \"Failed to save models\",\n \"auth.modelProviders.nameAndBaseUrlRequired\": \"Name and Base URL are required\",\n \"auth.modelProviders.replacementKeyRequired\": \"Enter the replacement key, or cancel the replacement\",\n \"auth.modelProviders.created\": \"Model provider created\",\n \"auth.modelProviders.updated\": \"Model provider updated\",\n \"auth.modelProviders.deleted\": \"Model provider deleted\",\n \"auth.modelProviders.saveFailed\": \"Failed to save model provider\",\n \"auth.modelProviders.updateFailed\": \"Failed to update provider\",\n \"auth.modelProviders.deleteFailed\": \"Failed to delete model provider\",\n \"auth.modelProviders.probeFailed\": \"Probe failed\",\n \"auth.modelProviders.modelCount\": \"{{count}} models ({{enabled}} enabled)\",\n \"auth.modelProviders.disabledSuffix\": \" · disabled\",\n \"auth.modelProviders.deleteConfirm\": \"Delete {{name}}?\",\n \"auth.modelProviders.deleteAlsoModels\": \"This also deletes the {{count}} models it provides.\",\n \"auth.modelProviders.probeFailure.authFailed\": \"The upstream rejected these credentials (401/403). Check the API key is correct, current, and allowed to call this service.\",\n \"auth.modelProviders.probeFailure.unreachable\": \"The base URL is unreachable. Usually a typo, or a full endpoint path pasted where the base address belongs.\",\n \"auth.modelProviders.probeFailure.redirectBlocked\": \"The upstream redirected. Enter the final address directly — the gateway does not follow redirects.\",\n \"auth.modelProviders.probeFailure.timeout\": \"The upstream did not respond in time. The service may be down, or the link slow.\",\n \"auth.modelProviders.probeFailure.rateLimited\": \"The upstream rate limited the request (429). Try again shortly.\",\n \"auth.modelProviders.probeFailure.invalidResponse\": \"The upstream answered, but not with a model list. Confirm the address serves an OpenAI-compatible /v1/models.\",\n \"auth.modelProviders.probeFailure.generic\": \"Check the base URL and API key, and that the request protocol matches what the upstream serves.\",\n \"auth.modelProviders.visionTitle\": \"Vision\",\n \"auth.modelProviders.visionEnabled\": \"Enabled\",\n \"auth.modelProviders.visionDisabled\": \"Disabled\",\n \"auth.modelProviders.visionHelp\": \"Reads images. Agents refuse to open image files with a model that does not have this on.\",\n \"auth.modelProviders.visionTurnOn\": \"Turn on\",\n \"auth.modelProviders.visionTurnOff\": \"Turn off\",\n \"auth.modelProviders.visionAriaOn\": \"Reads images. Click to turn off.\",\n \"auth.modelProviders.visionAriaOff\": \"No image support. Click to enable.\",\n \"auth.modelProviders.visionMarked\": \"Model marked as reading images\",\n \"auth.modelProviders.visionCleared\": \"Image support cleared\",\n \"auth.modelProviders.visionUpdateFailed\": \"Failed to update model\",\n \"auth.modelProviders.addModel\": \"Add model\",\n \"auth.modelProviders.editModel\": \"Edit model\",\n \"auth.modelProviders.modelIdLabel\": \"Model ID\",\n \"auth.modelProviders.modelIdHelp\": \"Exactly as the upstream names it — a mismatch surfaces later as \\\"model not found\\\". It is sent as typed: an upstream that publishes no list gives nothing to check it against.\",\n \"auth.modelProviders.extraConfigLabel\": \"Extra config\",\n \"auth.modelProviders.extraConfigHelp\": \"A JSON object merged over the provider's settings — temperature, maxTokens, modelKwargs and so on. Empty means no per-model config. It cannot change where the request goes: the provider's address and credential always win.\",\n \"auth.modelProviders.modelIdRequired\": \"Model ID is required\",\n \"auth.modelProviders.extraInvalidJson\": \"Extra config is not valid JSON\",\n \"auth.modelProviders.extraNotObject\": \"Extra config must be a JSON object\",\n \"auth.modelProviders.modelAdded\": \"Model added\",\n \"auth.modelProviders.modelUpdated\": \"Model updated\",\n \"auth.modelProviders.modelSaveFailed\": \"Failed to save model\",\n \"auth.modelProviders.badgeDefault\": \"default\",\n \"auth.modelProviders.badgeCustomConfig\": \"custom config\",\n \"auth.modelProviders.ariaEnabled\": \"Enabled\",\n \"auth.modelProviders.ariaEditModelConfig\": \"Edit model config\",\n \"auth.modelProviders.ariaRemoveModel\": \"Remove {{modelId}}\",\n \"auth.modelProviders.ariaDefaultNotRemovable\": \"Default model cannot be removed\",\n \"auth.modelProviders.defaultModelTitle\": \"Default model\",\n \"auth.modelProviders.defaultModelHelp\": \"Used wherever something needs a model and none is chosen: an agent with no model configured, the personal assistant, an eval run with no judge model, and reading an image.\",\n \"auth.modelProviders.defaultModelPlaceholder\": \"Not set — the deployment's default model is used\",\n \"auth.modelProviders.defaultModelEmpty\": \"Add a provider and its models first\",\n \"auth.modelProviders.defaultModelUpdated\": \"Default model updated\",\n \"auth.modelProviders.defaultModelFailed\": \"Failed to set the default model\",\n \"auth.error.passwordMismatch\": \"Passwords do not match\",\n \"auth.error.registerFailed\": \"Registration failed\",\n \"auth.error.invalidCredentials\": \"Invalid email or password\",\n \"auth.error.generic\": \"Something went wrong. Please try again.\",\n \"auth.error.loginFailed\": \"Login failed\",\n \"auth.error.unauthorized\": \"Unauthorized\",\n \"auth.error.selectTenantFailed\": \"Failed to select tenant\",\n \"auth.error.fetchTenantsFailed\": \"Failed to fetch tenants\",\n \"auth.error.fetchUsersFailed\": \"Failed to fetch users\",\n \"auth.error.refreshUserFailed\": \"Failed to refresh user\",\n \"auth.error.changePasswordFailed\": \"Failed to change password\",\n \"auth.success.registered\": \"Registration successful!\"\n }\n}\n","{\n \"messages\": {\n \"auth.login.title\": \"欢迎回来\",\n \"auth.login.subtitle\": \"登录你的账号\",\n \"auth.login.submit\": \"登录\",\n \"auth.login.forgotPassword\": \"忘记密码?\",\n \"auth.login.noAccount\": \"还没有账号?\",\n \"auth.login.createOne\": \"立即注册\",\n \"auth.register.title\": \"创建账号\",\n \"auth.register.subtitle\": \"开启你的使用之旅\",\n \"auth.register.submit\": \"创建账号\",\n \"auth.register.hasAccount\": \"已经有账号了?\",\n \"auth.register.success\": \"账号创建成功\",\n \"auth.changePassword.title\": \"修改密码\",\n \"auth.changePassword.submit\": \"修改密码\",\n \"auth.changePassword.success\": \"密码修改成功\",\n \"auth.changePassword.failed\": \"修改密码失败\",\n \"auth.changePassword.currentRequired\": \"请输入当前密码\",\n \"auth.changePassword.newRequired\": \"请输入新密码\",\n \"auth.changePassword.confirmRequired\": \"请再次输入新密码\",\n \"auth.changePassword.tooShort\": \"密码至少需要 6 个字符\",\n \"auth.field.email\": \"邮箱\",\n \"auth.field.password\": \"密码\",\n \"auth.field.fullName\": \"姓名\",\n \"auth.field.confirmPassword\": \"确认密码\",\n \"auth.field.currentPassword\": \"当前密码\",\n \"auth.field.newPassword\": \"新密码\",\n \"auth.field.confirmNewPassword\": \"确认新密码\",\n \"auth.field.name\": \"名称\",\n \"auth.field.description\": \"描述\",\n \"auth.field.logoUrl\": \"Logo URL\",\n \"auth.tenant.title\": \"选择租户\",\n \"auth.tenant.selectTitle\": \"选择租户\",\n \"auth.tenant.chooseDescription\": \"请选择要继续的租户\",\n \"auth.tenant.description\": \"欢迎,{{name}}!请选择要进入的租户\",\n \"auth.tenant.empty.title\": \"欢迎,{{name}}!\",\n \"auth.tenant.empty.noAccess\": \"你还没有任何租户的访问权限。\",\n \"auth.tenant.empty.contactAdmin\": \"请联系管理员为你分配租户。\",\n \"auth.tenant.searchPlaceholder\": \"搜索租户...\",\n \"auth.tenant.searchAriaLabel\": \"搜索租户\",\n \"auth.tenant.noMatch\": \"没有匹配的租户\",\n \"auth.tenant.noMatchHint\": \"换个关键词试试。\",\n \"auth.tenant.showAll\": \"显示全部租户\",\n \"auth.tenant.noWorkspaces\": \"暂无可用工作区\",\n \"auth.tenant.noWorkspacesHint\": \"请联系管理员将你加入某个租户。\",\n \"auth.tenant.countOne\": \"个租户\",\n \"auth.tenant.countOther\": \"个租户\",\n \"auth.tenant.logout\": \"退出登录\",\n \"auth.tenant.editTitle\": \"编辑租户\",\n \"auth.tenantSettings.title\": \"租户设置\",\n \"auth.tenantSettings.general\": \"通用\",\n \"auth.tenantSettings.save\": \"保存设置\",\n \"auth.tenantSettings.updated\": \"租户已更新\",\n \"auth.tenantSettings.updateFailed\": \"更新租户失败\",\n \"auth.tenantSettings.namePlaceholder\": \"租户名称\",\n \"auth.tenantSettings.nameRequired\": \"请输入租户名称\",\n \"auth.tenantSettings.descriptionPlaceholder\": \"简要描述\",\n \"auth.tenantSettings.logoUrlHelp\": \"例如 https://example.com/logo.png 或 data:image/png;base64,iVBORw...\",\n \"auth.tenantSettings.coordinatorMentionLabel\": \"协调者提及名\",\n \"auth.tenantSettings.coordinatorMentionHelp\": \"群聊协调机器人使用的标识(例如 @room-coordinator)。小写;2–32 个字符;仅限字母/数字/_/-,以字母开头。仅对新创建的群组房间生效。\",\n \"auth.tenantSettings.coordinatorMentionInvalid\": \"小写;2–32 个字符;以字母开头\",\n \"auth.user.profile\": \"个人资料\",\n \"auth.user.settings\": \"设置\",\n \"auth.user.changePassword\": \"修改密码\",\n \"auth.user.logout\": \"退出登录\",\n \"auth.user.notifications\": \"通知\",\n \"auth.user.language\": \"语言\",\n \"auth.user.editTenant\": \"编辑租户\",\n \"auth.user.switchTenant\": \"切换租户\",\n \"auth.user.currentWorkspace\": \"当前工作区\",\n \"auth.user.loggingOut\": \"正在退出登录...\",\n \"auth.protected.title\": \"需要登录\",\n \"auth.protected.description\": \"请登录后访问此页面。\",\n \"auth.notifications.on\": \"开启\",\n \"auth.notifications.off\": \"关闭\",\n \"auth.tenantLogo.alt\": \"{{name}} 的标志\",\n \"auth.tenantLogo.altFallback\": \"租户标志\",\n \"auth.appSwitcher.title\": \"切换应用\",\n \"auth.appSwitcher.search\": \"搜索应用\",\n \"auth.appSwitcher.empty\": \"暂无已注册的应用\",\n \"auth.appSwitcher.current\": \"当前\",\n \"auth.modelProviders.title\": \"模型服务商\",\n \"auth.modelProviders.add\": \"添加服务商\",\n \"auth.modelProviders.apiKey\": \"API Key\",\n \"auth.modelProviders.baseUrl\": \"Base URL\",\n \"auth.modelProviders.modelName\": \"模型名称\",\n \"auth.modelProviders.edit\": \"编辑服务商\",\n \"auth.modelProviders.deleteTitle\": \"删除模型服务商\",\n \"auth.modelProviders.loadFailed\": \"加载模型服务商失败\",\n \"auth.modelProviders.empty\": \"暂无模型服务商\",\n \"auth.modelProviders.emptyHint\": \"点击「添加服务商」接入一个上游\",\n \"auth.modelProviders.namePlaceholder\": \"例如 openai-prod\",\n \"auth.modelProviders.nameHelp\": \"在本租户内唯一。会作为模型 key 的前缀展示。\",\n \"auth.modelProviders.displayName\": \"显示名称\",\n \"auth.modelProviders.displayNamePlaceholder\": \"例如 OpenAI (production)\",\n \"auth.modelProviders.baseUrlPlaceholder\": \"例如 https://api.openai.com/v1\",\n \"auth.modelProviders.baseUrlHelp\": \"只填基础地址 — 不要填 /v1/models 或 /v1/chat/completions 这类完整端点路径;网关会自行拼接路径。任何兼容 OpenAI 的上游都可以,包括私有地址上自建的 vLLM 或 Ollama。\",\n \"auth.modelProviders.testLatency\": \"测试延迟\",\n \"auth.modelProviders.listModels\": \"列出模型\",\n \"auth.modelProviders.enabledCount\": \"已启用 {{enabled}} / {{total}}\",\n \"auth.modelProviders.keyConfigured\": \"已配置 — 不展示\",\n \"auth.modelProviders.keyReplacedOnSave\": \"保存后新密钥会替换已存储的密钥。\",\n \"auth.modelProviders.keyStoredOnServer\": \"服务器已存储一个密钥,且不会回传。\",\n \"auth.modelProviders.keyStoredOnServerHint\": \"服务器已存储一个密钥(以 {{hint}} 结尾),且不会回传。\",\n \"auth.modelProviders.replaceKey\": \"替换密钥\",\n \"auth.modelProviders.keyNotStored\": \"可选。无需认证的服务可留空 —— 例如自建的 Ollama、vLLM 或 LM Studio。加密存储,且不会回传给浏览器。\",\n \"auth.modelProviders.requestProtocol\": \"请求协议\",\n \"auth.modelProviders.requestProtocolHelp\": \"决定请求的路由和请求体。Chat Completions 会把 messages 发到 /v1/chat/completions;Responses API 会把 input 发到 /v1/responses。选错会表现为参数无法识别、路由不存在,或无限重试。\",\n \"auth.modelProviders.styleChatCompletions\": \"Chat Completions(/v1/chat/completions)\",\n \"auth.modelProviders.styleResponses\": \"Responses(/v1/responses)\",\n \"auth.modelProviders.saveProvider\": \"保存服务商\",\n \"auth.modelProviders.createProvider\": \"创建服务商\",\n \"auth.modelProviders.templateHint\": \"选择一个服务商以预填其 Base URL,或选择「自定义」自行填写全部内容。之后每个字段都仍可编辑。\",\n \"auth.modelProviders.templateCustom\": \"自定义\",\n \"auth.modelProviders.templateOllama\": \"Ollama(本地)\",\n \"auth.modelProviders.templateVllm\": \"vLLM(本地)\",\n \"auth.modelProviders.templateLmstudio\": \"LM Studio(本地)\",\n \"auth.modelProviders.syncApiModels\": \"同步 API 模型\",\n \"auth.modelProviders.saveSelection\": \"保存选择\",\n \"auth.modelProviders.selectAllNew\": \"全选新增项\",\n \"auth.modelProviders.clear\": \"清空\",\n \"auth.modelProviders.newSelected\": \"已选 {{selected}} / {{total}} 个新增项\",\n \"auth.modelProviders.droppedBanner\": \"{{count}} 个已从上游下架 — 保留并标记,不删除\",\n \"auth.modelProviders.droppedUpstream\": \"已从上游下架\",\n \"auth.modelProviders.configured\": \"已配置\",\n \"auth.modelProviders.readingUpstream\": \"正在读取上游模型列表…\",\n \"auth.modelProviders.noModelsYet\": \"暂无模型。使用「同步 API 模型」拉取列表,或手动添加一个。\",\n \"auth.modelProviders.remove\": \"移除\",\n \"auth.modelProviders.removeModelTitle\": \"移除「{{modelId}}」?\",\n \"auth.modelProviders.referencesStopResolving\": \"任何引用它的智能体或评测配置都将无法解析。\",\n \"auth.modelProviders.referencesStopResolvingPlural\": \"任何引用它们的智能体或评测配置都将无法解析。\",\n \"auth.modelProviders.removeDefaultModel\": \"这是该租户的默认模型。请先将默认模型改为其它模型,再移除它。\",\n \"auth.modelProviders.removed\": \"模型已移除\",\n \"auth.modelProviders.removeFailed\": \"移除模型失败\",\n \"auth.modelProviders.models\": \"模型\",\n \"auth.modelProviders.modelsFor\": \"模型 — {{name}}\",\n \"auth.modelProviders.modelsAdded\": \"已添加 {{count}} 个模型\",\n \"auth.modelProviders.modelsAddedTo\": \"已向 {{name}} 添加 {{count}} 个模型\",\n \"auth.modelProviders.noNewModels\": \"没有新增模型\",\n \"auth.modelProviders.noNewModelsFor\": \"{{name}} 没有新增模型\",\n \"auth.modelProviders.saveModelsFailed\": \"保存模型失败\",\n \"auth.modelProviders.nameAndBaseUrlRequired\": \"名称和 Base URL 为必填项\",\n \"auth.modelProviders.replacementKeyRequired\": \"请输入替换用的密钥,或取消替换\",\n \"auth.modelProviders.created\": \"模型服务商已创建\",\n \"auth.modelProviders.updated\": \"模型服务商已更新\",\n \"auth.modelProviders.deleted\": \"模型服务商已删除\",\n \"auth.modelProviders.saveFailed\": \"保存模型服务商失败\",\n \"auth.modelProviders.updateFailed\": \"更新服务商失败\",\n \"auth.modelProviders.deleteFailed\": \"删除模型服务商失败\",\n \"auth.modelProviders.probeFailed\": \"探测失败\",\n \"auth.modelProviders.modelCount\": \"{{count}} 个模型(已启用 {{enabled}} 个)\",\n \"auth.modelProviders.disabledSuffix\": \" · 已禁用\",\n \"auth.modelProviders.deleteConfirm\": \"删除 {{name}}?\",\n \"auth.modelProviders.deleteAlsoModels\": \"这也会删除它提供的 {{count}} 个模型。\",\n \"auth.modelProviders.probeFailure.authFailed\": \"上游拒绝了这组凭据(401/403)。请检查 API Key 是否正确、有效,且有权调用该服务。\",\n \"auth.modelProviders.probeFailure.unreachable\": \"无法访问该 Base URL。通常是拼写错误,或把完整端点路径填到了基础地址的位置。\",\n \"auth.modelProviders.probeFailure.redirectBlocked\": \"上游返回了重定向。请直接填写最终地址 — 网关不会跟随重定向。\",\n \"auth.modelProviders.probeFailure.timeout\": \"上游未及时响应。服务可能已不可用,或网络较慢。\",\n \"auth.modelProviders.probeFailure.rateLimited\": \"上游对请求做了限流(429)。请稍后重试。\",\n \"auth.modelProviders.probeFailure.invalidResponse\": \"上游有响应,但返回的不是模型列表。请确认该地址提供兼容 OpenAI 的 /v1/models。\",\n \"auth.modelProviders.probeFailure.generic\": \"请检查 Base URL 和 API Key,并确认请求协议与上游提供的协议一致。\",\n \"auth.modelProviders.visionTitle\": \"视觉理解\",\n \"auth.modelProviders.visionEnabled\": \"已开启\",\n \"auth.modelProviders.visionDisabled\": \"未开启\",\n \"auth.modelProviders.visionHelp\": \"具备图像理解能力。未开启时,智能体在接收图片、设计稿或截屏时会直接拒绝执行。\",\n \"auth.modelProviders.visionTurnOn\": \"开启视觉\",\n \"auth.modelProviders.visionTurnOff\": \"关闭视觉\",\n \"auth.modelProviders.visionAriaOn\": \"已开启视觉。点击关闭。\",\n \"auth.modelProviders.visionAriaOff\": \"未开启视觉。点击开启。\",\n \"auth.modelProviders.visionMarked\": \"已标记为可读图\",\n \"auth.modelProviders.visionCleared\": \"已清除读图能力\",\n \"auth.modelProviders.visionUpdateFailed\": \"更新模型失败\",\n \"auth.modelProviders.addModel\": \"添加模型\",\n \"auth.modelProviders.editModel\": \"编辑模型\",\n \"auth.modelProviders.modelIdLabel\": \"模型 ID\",\n \"auth.modelProviders.modelIdHelp\": \"必须与上游命名完全一致 —— 不一致会在调用时报「model not found」。它按原样发送:不提供模型列表的上游没有可供校验的依据。\",\n \"auth.modelProviders.extraConfigLabel\": \"额外配置\",\n \"auth.modelProviders.extraConfigHelp\": \"会合并到服务商配置之上的 JSON 对象 —— temperature、maxTokens、modelKwargs 等。留空表示不做模型级配置。它不能改变请求去向:服务商的地址与凭据始终优先。\",\n \"auth.modelProviders.modelIdRequired\": \"模型 ID 为必填项\",\n \"auth.modelProviders.extraInvalidJson\": \"额外配置不是合法的 JSON\",\n \"auth.modelProviders.extraNotObject\": \"额外配置必须是 JSON 对象\",\n \"auth.modelProviders.modelAdded\": \"模型已添加\",\n \"auth.modelProviders.modelUpdated\": \"模型已更新\",\n \"auth.modelProviders.modelSaveFailed\": \"保存模型失败\",\n \"auth.modelProviders.badgeDefault\": \"默认\",\n \"auth.modelProviders.badgeCustomConfig\": \"自定义配置\",\n \"auth.modelProviders.ariaEnabled\": \"已启用\",\n \"auth.modelProviders.ariaEditModelConfig\": \"编辑模型配置\",\n \"auth.modelProviders.ariaRemoveModel\": \"移除 {{modelId}}\",\n \"auth.modelProviders.ariaDefaultNotRemovable\": \"默认模型不可移除\",\n \"auth.modelProviders.defaultModelTitle\": \"默认模型\",\n \"auth.modelProviders.defaultModelHelp\": \"在需要模型但未指定时使用:未配置模型的智能体、个人助手、未指定评委模型的评测运行,以及读取图片。\",\n \"auth.modelProviders.defaultModelPlaceholder\": \"未设置 —— 将使用部署级默认模型\",\n \"auth.modelProviders.defaultModelEmpty\": \"请先添加服务商及其模型\",\n \"auth.modelProviders.defaultModelUpdated\": \"默认模型已更新\",\n \"auth.modelProviders.defaultModelFailed\": \"设置默认模型失败\",\n \"auth.error.passwordMismatch\": \"两次输入的密码不一致\",\n \"auth.error.registerFailed\": \"注册失败\",\n \"auth.error.invalidCredentials\": \"邮箱或密码错误\",\n \"auth.error.generic\": \"出错了,请重试。\",\n \"auth.error.loginFailed\": \"登录失败\",\n \"auth.error.unauthorized\": \"未授权\",\n \"auth.error.selectTenantFailed\": \"选择租户失败\",\n \"auth.error.fetchTenantsFailed\": \"获取租户列表失败\",\n \"auth.error.fetchUsersFailed\": \"获取用户列表失败\",\n \"auth.error.refreshUserFailed\": \"刷新用户信息失败\",\n \"auth.error.changePasswordFailed\": \"修改密码失败\",\n \"auth.success.registered\": \"注册成功!\"\n }\n}\n","{\n \"messages\": {\n \"capability.status.enabled\": \"Enabled\",\n \"capability.status.disabled\": \"Disabled\",\n \"capability.action.remove\": \"Remove {{name}}\",\n \"capability.action.removeLabel\": \"Remove\",\n \"capability.action.moveUp\": \"Move {{name}} up\",\n \"capability.action.moveDown\": \"Move {{name}} down\",\n \"capability.sections.config\": \"Config\",\n \"capability.sections.resources\": \"Resources Permission\",\n \"capability.sections.tools\": \"Tools Permission\",\n \"capability.form.title.edit\": \"Edit Runtime Profile\",\n \"capability.form.title.create\": \"Create Runtime Profile\",\n \"capability.form.sectionsAria\": \"Runtime Profile sections\",\n \"capability.form.section.profile\": \"Profile\",\n \"capability.form.profileDescription\": \"Identity and description of this Runtime Profile\",\n \"capability.form.addCapability\": \"Add capability\",\n \"capability.form.allAdded\": \"All eligible capabilities added\",\n \"capability.form.duplicateCapability\": \"This capability type is already selected\",\n \"capability.form.name\": \"Name\",\n \"capability.form.namePlaceholder\": \"Enter profile name…\",\n \"capability.form.nameRequired\": \"Name is required\",\n \"capability.form.description\": \"Description\",\n \"capability.form.descriptionPlaceholder\": \"Enter profile description…\",\n \"capability.form.enableCapability\": \"Enable {{name}} capability\",\n \"capability.form.removeCapability\": \"Remove {{name}} capability\",\n \"capability.form.submit.edit\": \"Save Profile\",\n \"capability.form.submit.create\": \"Create Profile\",\n \"capability.form.submitFailed\": \"Failed to save capability bundle\",\n \"capability.form.summary.tools\": \"{{selected}}/{{total}} tools\",\n \"capability.form.summary.toolCount\": \"{{count}} tools\",\n \"capability.form.summary.resources\": \"{{count}} resources\",\n \"capability.list.title\": \"Runtime Profiles\",\n \"capability.list.create\": \"New Runtime Profile\",\n \"capability.list.capabilities\": \"{{count}} capabilities\",\n \"capability.list.loadFailed\": \"Failed to load capability bundles\",\n \"capability.list.invalidTitle\": \"Invalid capability bundle\",\n \"capability.list.deleteInvalid\": \"Delete invalid bundle {{id}}\",\n \"capability.list.deleteTitle\": \"Delete Runtime Profile\",\n \"capability.list.deleteConfirm\": \"Delete {{name}}?\",\n \"capability.list.deleteFailed\": \"Failed to delete capability bundle.\",\n \"capability.list.bundleInUse\": \"This bundle is referenced by a project and cannot be deleted.\",\n \"capability.intro.whatIsThis\": \"What is this?\",\n \"capability.intro.title\": \"What is a Runtime Profile?\",\n \"capability.intro.closeAria\": \"Close introduction\",\n \"capability.intro.bodyLead\": \"A Runtime Profile is a\",\n \"capability.intro.bodyStrong\": \"reusable environment configuration\",\n \"capability.intro.bodyTail\": \". It controls how AI agents behave inside a project — which resources they can access, what tools they are permitted to use, and how they work.\",\n \"capability.intro.settings.label\": \"Settings\",\n \"capability.intro.settings.detail\": \"Control how it works\",\n \"capability.intro.access.label\": \"Access\",\n \"capability.intro.access.detail\": \"Authorization to connect to resources\",\n \"capability.intro.permissions.label\": \"Permissions\",\n \"capability.intro.permissions.detail\": \"Authorization to use tools on those resources\",\n \"capability.intro.footnote\": \"One or more profiles can be applied to a project. Their permissions and access are combined — no duplication.\",\n \"capability.intro.gotIt\": \"Got it\",\n \"capability.overrides.empty\": \"No field overrides.\",\n \"capability.overrides.overriddenBy\": \"Overridden by {{name}}\",\n \"capability.preview.source\": \"Source: {{name}}\",\n \"capability.preview.toolsSelected\": \"{{selected}} / {{total}} selected\",\n \"capability.preview.emptyToolSet\": \"Empty tool set (invalid)\",\n \"capability.preview.unrestricted\": \"Unrestricted\",\n \"capability.preview.allowTool\": \"Allow {{name}}\",\n \"capability.preview.unavailable\": \"Preview unavailable\",\n \"capability.preview.noneSelected\": \"No capabilities selected.\",\n \"capability.preview.overrides\": \"Overrides ({{count}})\",\n \"capability.diagram.figureTitle\": \"Profiles compose the runtime environment\",\n \"capability.diagram.figureDesc\": \"Profiles stack in order to form the environment an Agent runs in. When it runs, the Agent can only use the tools it was built with — permissions the environment opens beyond that stay unavailable.\",\n \"capability.diagram.ariaLabel\": \"Profiles combine into an environment and define what the Agent can use\",\n \"capability.diagram.profileA\": \"1. Profile A\",\n \"capability.diagram.profileB\": \"2. Profile B\",\n \"capability.diagram.profileC\": \"3. Profile C\",\n \"capability.diagram.toolsQueryWrite\": \"tools: query, write\",\n \"capability.diagram.toolsDelete\": \"tools: delete\",\n \"capability.diagram.toolsQuery\": \"tools: query\",\n \"capability.diagram.laterFieldsWin\": \"later fields win\",\n \"capability.diagram.combinedAccess\": \"Combined access\",\n \"capability.diagram.agentDefinition\": \"Agent definition\",\n \"capability.diagram.blocked\": \"(blocked)\",\n \"capability.diagram.notOpened\": \"(not opened)\",\n \"capability.diagram.availableToAgent\": \"Available to the Agent\",\n \"capability.diagram.runtimeEnvironment\": \"Runtime Environment\",\n \"capability.diagram.fields.title\": \"Fields\",\n \"capability.diagram.fields.line1\": \"Applied top to bottom; later ordinary fields win (later value overrides earlier).\",\n \"capability.diagram.fields.line2\": \"Nested ordinary fields use recursive later-value override.\",\n \"capability.diagram.tools.title\": \"Tools\",\n \"capability.diagram.tools.line1\": \"Tools selected in Profiles are combined for the environment.\",\n \"capability.diagram.tools.line2\": \"The Agent can only use tools included in its own definition.\",\n \"capability.diagram.connections.title\": \"Connections\",\n \"capability.diagram.connections.line1\": \"Connections selected in Profiles are combined into the environment.\",\n \"capability.diagram.connections.line2\": \"When Connect All is enabled, the environment automatically uses all available connections.\",\n \"capability.project.settings\": \"Project Settings\",\n \"capability.project.settingsTitle\": \"Project Settings: {{name}}\",\n \"capability.project.settingsAria\": \"Project settings\",\n \"capability.project.section.general\": \"General\",\n \"capability.project.section.members\": \"Members\",\n \"capability.project.section.runtime\": \"Runtime\",\n \"capability.project.settingsUnavailable\": \"Project settings are unavailable for this project.\",\n \"capability.project.runtimeTitle\": \"Project Runtime Environment\",\n \"capability.project.previewWarning\": \"Preview changes before saving this draft.\",\n \"capability.project.actionFailed\": \"Capability action failed\",\n \"capability.project.saved\": \"Runtime environment saved\",\n \"capability.project.saveFailed\": \"Failed to save runtime environment\",\n \"capability.project.preview\": \"Preview\",\n \"capability.project.saveEnvironment\": \"Save Environment\",\n \"capability.project.compositionRules\": \"Composition Rules\",\n \"capability.project.configureProfiles\": \"Configure Runtime Profiles\",\n \"capability.project.addProfileAria\": \"Add Runtime Profile\",\n \"capability.project.selectProfile\": \"Select a Runtime Profile\",\n \"capability.project.capabilityOne\": \"1 capability\",\n \"capability.project.capabilityMany\": \"{{count}} capabilities\",\n \"capability.project.missingFromInventory\": \"Missing from inventory\",\n \"capability.general.ariaLabel\": \"Project general settings\",\n \"capability.general.name\": \"Name\",\n \"capability.general.namePlaceholder\": \"Project name\",\n \"capability.general.nameRequired\": \"Please enter a project name\",\n \"capability.general.nameMax\": \"Project name must be less than 50 characters\",\n \"capability.general.description\": \"Description\",\n \"capability.general.descriptionPlaceholder\": \"Project description\",\n \"capability.general.kind\": \"Kind\",\n \"capability.general.kindHint\": \"Kind decides who can see this project.\",\n \"capability.general.kind.business.label\": \"Business\",\n \"capability.general.kind.business.description\": \"Only invited members can see it.\",\n \"capability.general.kind.public.label\": \"Public\",\n \"capability.general.kind.public.description\": \"Visible to everyone in this workspace.\",\n \"capability.general.kind.personal.label\": \"Personal\",\n \"capability.general.kind.personal.description\": \"Created automatically when you start a 1:1 chat.\",\n \"capability.general.kind.training.label\": \"Training\",\n \"capability.general.kind.training.description\": \"Created automatically by training flows.\",\n \"capability.general.saveChanges\": \"Save changes\",\n \"capability.general.saved\": \"Project settings saved\",\n \"capability.general.saveFailed\": \"Failed to save project settings\",\n \"capability.members.loadFailed\": \"Failed to load project members\",\n \"capability.members.actionFailed\": \"Project member action failed\",\n \"capability.members.sectionAria\": \"Project members\",\n \"capability.members.people\": \"People\",\n \"capability.members.addPerson\": \"Add person\",\n \"capability.members.peopleHint\": \"Workspace users who can open this project and its room.\",\n \"capability.members.noMembers\": \"No members yet\",\n \"capability.members.roleFor\": \"Role for {{name}}\",\n \"capability.members.botsSectionAria\": \"Project bots\",\n \"capability.members.bots\": \"Bots\",\n \"capability.members.addBot\": \"Add bot\",\n \"capability.members.botsHint\": \"Agents that work in this project. Mention them in the room with @.\",\n \"capability.members.noBots\": \"No bots in this project yet\",\n \"capability.members.builtIn\": \"Built-in\",\n \"capability.members.pausedSuffix\": \" · paused\",\n \"capability.members.editMention\": \"Edit mention\",\n \"capability.members.editMentionFor\": \"Edit mention for {{name}}\",\n \"capability.members.resume\": \"Resume\",\n \"capability.members.pause\": \"Pause\",\n \"capability.members.resumeNamed\": \"Resume {{name}}\",\n \"capability.members.pauseNamed\": \"Pause {{name}}\",\n \"capability.members.add\": \"Add\",\n \"capability.members.user\": \"User\",\n \"capability.members.selectUser\": \"Select a workspace user\",\n \"capability.members.selectUserRequired\": \"Select a workspace user\",\n \"capability.members.allUsersAreMembers\": \"Every workspace user is already a member\",\n \"capability.members.role\": \"Role\",\n \"capability.members.assistant\": \"Assistant\",\n \"capability.members.selectAssistant\": \"Select an assistant\",\n \"capability.members.selectAssistantRequired\": \"Select an assistant\",\n \"capability.members.mentionName\": \"Mention name\",\n \"capability.members.mentionNameRequired\": \"Enter a mention name\",\n \"capability.members.mentionNameHint\": \"How you @ this bot in the room, e.g. @poetry_writer. Defaults from the assistant name.\",\n \"capability.members.removeBotTitle\": \"Remove bot?\",\n \"capability.members.removeMemberTitle\": \"Remove member?\",\n \"capability.members.removeMemberBody\": \"{{name}} will lose access to this project.\",\n \"capability.members.removeBotBody\": \"{{name}} (@{{mention}}) will be removed from this project.\",\n \"capability.members.memberAdded\": \"Member added\",\n \"capability.members.botAdded\": \"Bot added\",\n \"capability.members.botUpdated\": \"Bot updated\",\n \"capability.members.roleUpdated\": \"Member role updated\",\n \"capability.members.botResumed\": \"Bot resumed\",\n \"capability.members.botPaused\": \"Bot paused\",\n \"capability.members.memberRemoved\": \"Member removed\",\n \"capability.members.botRemoved\": \"Bot removed\",\n \"capability.project.inventoryLoadFailed\": \"Failed to load capability bundle inventory\",\n \"capability.project.capabilitiesLoadFailed\": \"Failed to load project capabilities\",\n \"capability.project.capabilitiesPreviewFailed\": \"Failed to preview project capabilities\",\n \"capability.project.capabilitiesSaveFailed\": \"Failed to save project capabilities\",\n \"capability.project.previewRequired\": \"Preview the current bundle order before saving\",\n \"capability.project.resolvePreviewErrors\": \"Resolve preview errors before saving\"\n }\n}\n","{\n \"messages\": {\n \"capability.status.enabled\": \"已启用\",\n \"capability.status.disabled\": \"已停用\",\n \"capability.action.remove\": \"移除 {{name}}\",\n \"capability.action.removeLabel\": \"移除\",\n \"capability.action.moveUp\": \"上移 {{name}}\",\n \"capability.action.moveDown\": \"下移 {{name}}\",\n \"capability.sections.config\": \"配置\",\n \"capability.sections.resources\": \"资源权限\",\n \"capability.sections.tools\": \"工具权限\",\n \"capability.form.title.edit\": \"编辑运行时配置\",\n \"capability.form.title.create\": \"新建运行时配置\",\n \"capability.form.sectionsAria\": \"运行时配置分区\",\n \"capability.form.section.profile\": \"概况\",\n \"capability.form.profileDescription\": \"该运行时配置的名称与描述\",\n \"capability.form.addCapability\": \"添加能力\",\n \"capability.form.allAdded\": \"已添加所有符合条件的能力\",\n \"capability.form.duplicateCapability\": \"该能力类型已选择\",\n \"capability.form.name\": \"名称\",\n \"capability.form.namePlaceholder\": \"请输入配置名称…\",\n \"capability.form.nameRequired\": \"名称为必填项\",\n \"capability.form.description\": \"描述\",\n \"capability.form.descriptionPlaceholder\": \"请输入配置描述…\",\n \"capability.form.enableCapability\": \"启用 {{name}} 能力\",\n \"capability.form.removeCapability\": \"移除 {{name}} 能力\",\n \"capability.form.submit.edit\": \"保存配置\",\n \"capability.form.submit.create\": \"新建配置\",\n \"capability.form.submitFailed\": \"保存运行时配置失败\",\n \"capability.form.summary.tools\": \"{{selected}}/{{total}} 个工具\",\n \"capability.form.summary.toolCount\": \"{{count}} 个工具\",\n \"capability.form.summary.resources\": \"{{count}} 个资源\",\n \"capability.list.title\": \"运行时配置\",\n \"capability.list.create\": \"新建运行时配置\",\n \"capability.list.capabilities\": \"{{count}} 项能力\",\n \"capability.list.loadFailed\": \"加载运行时配置失败\",\n \"capability.list.invalidTitle\": \"运行时配置无效\",\n \"capability.list.deleteInvalid\": \"删除无效配置 {{id}}\",\n \"capability.list.deleteTitle\": \"删除运行时配置\",\n \"capability.list.deleteConfirm\": \"删除 {{name}}?\",\n \"capability.list.deleteFailed\": \"删除运行时配置失败。\",\n \"capability.list.bundleInUse\": \"该配置已被项目引用,无法删除。\",\n \"capability.intro.whatIsThis\": \"这是什么?\",\n \"capability.intro.title\": \"什么是运行时配置?\",\n \"capability.intro.closeAria\": \"关闭说明\",\n \"capability.intro.bodyLead\": \"运行时配置是\",\n \"capability.intro.bodyStrong\": \"可复用的环境配置\",\n \"capability.intro.bodyTail\": \"。它控制 AI 智能体在项目中的行为——可以访问哪些资源、允许使用哪些工具,以及如何工作。\",\n \"capability.intro.settings.label\": \"设置\",\n \"capability.intro.settings.detail\": \"控制它的工作方式\",\n \"capability.intro.access.label\": \"访问\",\n \"capability.intro.access.detail\": \"连接资源的授权\",\n \"capability.intro.permissions.label\": \"权限\",\n \"capability.intro.permissions.detail\": \"在这些资源上使用工具的授权\",\n \"capability.intro.footnote\": \"一个项目可以应用多个配置。它们的权限与访问范围会合并——不会重复。\",\n \"capability.intro.gotIt\": \"知道了\",\n \"capability.overrides.empty\": \"没有字段覆盖。\",\n \"capability.overrides.overriddenBy\": \"被 {{name}} 覆盖\",\n \"capability.preview.source\": \"来源:{{name}}\",\n \"capability.preview.toolsSelected\": \"已选 {{selected}} / {{total}}\",\n \"capability.preview.emptyToolSet\": \"工具集为空(无效)\",\n \"capability.preview.unrestricted\": \"不限制\",\n \"capability.preview.allowTool\": \"允许 {{name}}\",\n \"capability.preview.unavailable\": \"预览不可用\",\n \"capability.preview.noneSelected\": \"未选择任何能力。\",\n \"capability.preview.overrides\": \"覆盖项({{count}})\",\n \"capability.diagram.figureTitle\": \"多个配置共同构成运行时环境\",\n \"capability.diagram.figureDesc\": \"配置按顺序叠加,构成智能体运行所处的环境。运行时,智能体只能使用它自带定义中的工具——环境额外开放的权限不会被使用。\",\n \"capability.diagram.ariaLabel\": \"配置合并为环境并定义智能体可以使用的内容\",\n \"capability.diagram.profileA\": \"1. 配置 A\",\n \"capability.diagram.profileB\": \"2. 配置 B\",\n \"capability.diagram.profileC\": \"3. 配置 C\",\n \"capability.diagram.toolsQueryWrite\": \"工具:query、write\",\n \"capability.diagram.toolsDelete\": \"工具:delete\",\n \"capability.diagram.toolsQuery\": \"工具:query\",\n \"capability.diagram.laterFieldsWin\": \"靠后的字段生效\",\n \"capability.diagram.combinedAccess\": \"合并后的访问范围\",\n \"capability.diagram.agentDefinition\": \"智能体定义\",\n \"capability.diagram.blocked\": \"(被阻止)\",\n \"capability.diagram.notOpened\": \"(未开放)\",\n \"capability.diagram.availableToAgent\": \"智能体可用\",\n \"capability.diagram.runtimeEnvironment\": \"运行时环境\",\n \"capability.diagram.fields.title\": \"字段\",\n \"capability.diagram.fields.line1\": \"自上而下应用;靠后的普通字段生效(后值覆盖前值)。\",\n \"capability.diagram.fields.line2\": \"嵌套的普通字段采用递归的后值覆盖。\",\n \"capability.diagram.tools.title\": \"工具\",\n \"capability.diagram.tools.line1\": \"各配置中选择的工具会合并到环境中。\",\n \"capability.diagram.tools.line2\": \"智能体只能使用其自身定义中包含的工具。\",\n \"capability.diagram.connections.title\": \"连接\",\n \"capability.diagram.connections.line1\": \"各配置中选择的连接会合并到环境中。\",\n \"capability.diagram.connections.line2\": \"启用「全部连接」后,环境会自动使用所有可用的连接。\",\n \"capability.project.settings\": \"项目设置\",\n \"capability.project.settingsTitle\": \"项目设置:{{name}}\",\n \"capability.project.settingsAria\": \"项目设置\",\n \"capability.project.section.general\": \"通用\",\n \"capability.project.section.members\": \"成员\",\n \"capability.project.section.runtime\": \"运行时\",\n \"capability.project.settingsUnavailable\": \"无法获取该项目的设置。\",\n \"capability.project.runtimeTitle\": \"项目运行时环境\",\n \"capability.project.previewWarning\": \"请先预览更改,再保存此草稿。\",\n \"capability.project.actionFailed\": \"能力操作失败\",\n \"capability.project.saved\": \"运行时环境已保存\",\n \"capability.project.saveFailed\": \"保存运行时环境失败\",\n \"capability.project.preview\": \"预览\",\n \"capability.project.saveEnvironment\": \"保存环境\",\n \"capability.project.compositionRules\": \"组合规则\",\n \"capability.project.configureProfiles\": \"配置运行时配置\",\n \"capability.project.addProfileAria\": \"添加运行时配置\",\n \"capability.project.selectProfile\": \"选择运行时配置\",\n \"capability.project.capabilityOne\": \"1 项能力\",\n \"capability.project.capabilityMany\": \"{{count}} 项能力\",\n \"capability.project.missingFromInventory\": \"清单中不存在\",\n \"capability.general.ariaLabel\": \"项目通用设置\",\n \"capability.general.name\": \"名称\",\n \"capability.general.namePlaceholder\": \"项目名称\",\n \"capability.general.nameRequired\": \"请输入项目名称\",\n \"capability.general.nameMax\": \"项目名称不能超过 50 个字符\",\n \"capability.general.description\": \"描述\",\n \"capability.general.descriptionPlaceholder\": \"项目描述\",\n \"capability.general.kind\": \"类型\",\n \"capability.general.kindHint\": \"类型决定谁可以看到该项目。\",\n \"capability.general.kind.business.label\": \"业务\",\n \"capability.general.kind.business.description\": \"仅受邀成员可见。\",\n \"capability.general.kind.public.label\": \"公开\",\n \"capability.general.kind.public.description\": \"工作区内所有人可见。\",\n \"capability.general.kind.personal.label\": \"个人\",\n \"capability.general.kind.personal.description\": \"发起一对一聊天时自动创建。\",\n \"capability.general.kind.training.label\": \"训练\",\n \"capability.general.kind.training.description\": \"由训练流程自动创建。\",\n \"capability.general.saveChanges\": \"保存更改\",\n \"capability.general.saved\": \"项目设置已保存\",\n \"capability.general.saveFailed\": \"保存项目设置失败\",\n \"capability.members.loadFailed\": \"加载项目成员失败\",\n \"capability.members.actionFailed\": \"项目成员操作失败\",\n \"capability.members.sectionAria\": \"项目成员\",\n \"capability.members.people\": \"成员\",\n \"capability.members.addPerson\": \"添加成员\",\n \"capability.members.peopleHint\": \"可以打开该项目及其会话的工作区用户。\",\n \"capability.members.noMembers\": \"暂无成员\",\n \"capability.members.roleFor\": \"{{name}} 的角色\",\n \"capability.members.botsSectionAria\": \"项目机器人\",\n \"capability.members.bots\": \"机器人\",\n \"capability.members.addBot\": \"添加机器人\",\n \"capability.members.botsHint\": \"在该项目中工作的智能体。在会话中用 @ 提及它们。\",\n \"capability.members.noBots\": \"该项目暂无机器人\",\n \"capability.members.builtIn\": \"内置\",\n \"capability.members.pausedSuffix\": \" · 已暂停\",\n \"capability.members.editMention\": \"编辑提及名\",\n \"capability.members.editMentionFor\": \"编辑 {{name}} 的提及名\",\n \"capability.members.resume\": \"恢复\",\n \"capability.members.pause\": \"暂停\",\n \"capability.members.resumeNamed\": \"恢复 {{name}}\",\n \"capability.members.pauseNamed\": \"暂停 {{name}}\",\n \"capability.members.add\": \"添加\",\n \"capability.members.user\": \"用户\",\n \"capability.members.selectUser\": \"选择工作区用户\",\n \"capability.members.selectUserRequired\": \"请选择工作区用户\",\n \"capability.members.allUsersAreMembers\": \"所有工作区用户都已是成员\",\n \"capability.members.role\": \"角色\",\n \"capability.members.assistant\": \"助手\",\n \"capability.members.selectAssistant\": \"选择助手\",\n \"capability.members.selectAssistantRequired\": \"请选择助手\",\n \"capability.members.mentionName\": \"提及名\",\n \"capability.members.mentionNameRequired\": \"请输入提及名\",\n \"capability.members.mentionNameHint\": \"在会话中 @ 该机器人时使用的名称,例如 @poetry_writer。默认取自助手名称。\",\n \"capability.members.removeBotTitle\": \"移除机器人?\",\n \"capability.members.removeMemberTitle\": \"移除成员?\",\n \"capability.members.removeMemberBody\": \"{{name}} 将失去该项目的访问权限。\",\n \"capability.members.removeBotBody\": \"{{name}}(@{{mention}})将从该项目中移除。\",\n \"capability.members.memberAdded\": \"成员已添加\",\n \"capability.members.botAdded\": \"机器人已添加\",\n \"capability.members.botUpdated\": \"机器人已更新\",\n \"capability.members.roleUpdated\": \"成员角色已更新\",\n \"capability.members.botResumed\": \"机器人已恢复\",\n \"capability.members.botPaused\": \"机器人已暂停\",\n \"capability.members.memberRemoved\": \"成员已移除\",\n \"capability.members.botRemoved\": \"机器人已移除\",\n \"capability.project.inventoryLoadFailed\": \"加载运行时配置清单失败\",\n \"capability.project.capabilitiesLoadFailed\": \"加载项目运行时配置失败\",\n \"capability.project.capabilitiesPreviewFailed\": \"预览项目运行时配置失败\",\n \"capability.project.capabilitiesSaveFailed\": \"保存项目运行时配置失败\",\n \"capability.project.previewRequired\": \"保存前请先预览当前配置顺序\",\n \"capability.project.resolvePreviewErrors\": \"保存前请先解决预览错误\"\n }\n}\n","{\n \"messages\": {\n \"chat.empty.createConversationFirst\": \"Please create a conversation first\",\n \"chat.empty.question\": \"Ready to turn data into insightful charts in seconds?\",\n \"chat.empty.welcomePrefix\": \"Hey\",\n \"chat.empty.userFallback\": \"there\",\n \"chat.sender.attachments\": \"Attachments\",\n \"chat.sender.uploadFile\": \"Upload File\",\n \"chat.sender.rootDirectory\": \"Root Directory\",\n \"chat.sender.filesUploading\": \"Files are still uploading...\",\n \"chat.sender.uploadFailed\": \"{{name}} file upload failed.{{reason}}\",\n \"chat.sender.fileTooLarge\": \"File must be smaller than 100MB! {{name}} is too large.\",\n \"chat.sender.thinking\": \"{{frame}} Thinking...\",\n \"chat.sender.messagesWaiting\": \"{{count}} messages waiting...\",\n \"chat.sender.placeholder\": \"Type / to see available skills, or @ to reference files\",\n \"chat.sender.moreMatches\": \"...and {{count}} more — keep typing to narrow\",\n \"chat.error.streamError\": \"Stream error\",\n \"chat.stop.superseded\": \"Response interrupted by a new message.\",\n \"chat.stop.stopped\": \"Response stopped.\",\n \"chat.layout.toggleMenu\": \"Toggle menu\",\n \"chat.layout.closeDetail\": \"Close detail panel\",\n \"chat.layout.closeTools\": \"Close tool panel\",\n \"chat.menu.branding\": \"Menu\",\n \"chat.menu.expandSidebar\": \"Expand sidebar\",\n \"chat.menu.collapseSidebar\": \"Collapse sidebar\",\n \"chat.menu.newThread\": \"New Thread\",\n \"chat.agent.fallbackName\": \"Agent\",\n \"chat.agent.selectTitle\": \"Select Agent\",\n \"chat.agent.empty\": \"No agents available\",\n \"chat.model.label\": \"Model\",\n \"chat.model.placeholder\": \"Model\",\n \"chat.workspace.selectPlaceholder\": \"Workspace\",\n \"chat.workspace.selectTitle\": \"Select Workspace\",\n \"chat.project.selectPlaceholder\": \"Project\",\n \"chat.project.selectTitle\": \"Select Project\",\n \"chat.project.empty\": \"No projects\",\n \"chat.project.nameRequired\": \"Project name is required\",\n \"chat.project.nameTooLong\": \"Name must be {{max}} characters or less\",\n \"chat.project.selectWorkspaceFirst\": \"Please select a workspace first\",\n \"chat.project.created\": \"Project \\\"{{name}}\\\" created\",\n \"chat.project.createFailed\": \"Failed to create project\",\n \"chat.project.createTitle\": \"Create New Project\",\n \"chat.project.namePlaceholder\": \"Enter project name\",\n \"chat.thread.create\": \"Create New Conversation\",\n \"chat.thread.createFailed\": \"Failed to create new thread\",\n \"chat.thread.history\": \"Conversation History\",\n \"chat.thread.refreshHistory\": \"Refresh Conversation History\",\n \"chat.thread.searchPlaceholder\": \"Search conversations…\",\n \"chat.thread.sortName\": \"Name\",\n \"chat.thread.sortUpdated\": \"Updated\",\n \"chat.thread.sortCreated\": \"Created\",\n \"chat.thread.sortAscending\": \"Ascending\",\n \"chat.thread.sortDescending\": \"Descending\",\n \"chat.thread.loading\": \"Loading conversations...\",\n \"chat.thread.noMatch\": \"No conversations match \\\"{{query}}\\\"\",\n \"chat.thread.empty\": \"No conversations yet\",\n \"chat.thread.nameLabel\": \"Conversation name\",\n \"chat.thread.saveName\": \"Save name\",\n \"chat.thread.cancelRename\": \"Cancel rename\",\n \"chat.thread.rename\": \"Rename conversation\",\n \"chat.thread.renamed\": \"Conversation renamed\",\n \"chat.thread.renameFailed\": \"Failed to rename conversation\",\n \"chat.thread.delete\": \"Delete conversation\",\n \"chat.thread.deleteTitle\": \"Delete Conversation\",\n \"chat.thread.deleteConfirm\": \"Are you sure you want to delete this conversation? This action cannot be undone.\",\n \"chat.thread.deleted\": \"Conversation deleted\",\n \"chat.thread.deleteFailed\": \"Failed to delete conversation\",\n \"chat.pin.pin\": \"Pin to Menu\",\n \"chat.pin.unpin\": \"Unpin from Menu\",\n \"chat.pin.pinTitle\": \"Pin to Menu\",\n \"chat.pin.enterName\": \"Please enter a menu name\",\n \"chat.pin.pinned\": \"Pinned to menu\",\n \"chat.pin.unpinned\": \"Unpinned from menu\",\n \"chat.pin.pinFailed\": \"Failed to pin to menu\",\n \"chat.pin.unpinFailed\": \"Failed to unpin from menu\",\n \"chat.pin.namePlaceholder\": \"Menu name (required)\",\n \"chat.pin.groupPlaceholder\": \"Group (optional, select or type new)\",\n \"chat.sideApp.unnamed\": \"Unnamed\",\n \"chat.sideApp.allTabs\": \"All tabs\",\n \"chat.sideApp.close\": \"Close\",\n \"chat.sideApp.empty\": \"Select an app to start\",\n \"chat.sideApp.componentNotFound\": \"Component view not found\",\n \"chat.todo.title\": \"Todos\",\n \"chat.todo.noTasks\": \"No tasks\",\n \"chat.todo.inProgress\": \"{{count}} in progress\",\n \"chat.todo.completed\": \"{{count}} completed\",\n \"chat.todo.progressTooltip\": \"{{completed}} / {{total}} tasks completed\",\n \"chat.task.title\": \"Tasks\",\n \"chat.task.noTasks\": \"No tasks\",\n \"chat.task.inProgress\": \"{{count}} in progress\",\n \"chat.task.completed\": \"{{count}} completed\",\n \"chat.task.progressTooltip\": \"{{completed}} / {{total}} tasks completed\",\n \"chat.customMenu.invalid\": \"Invalid menu item\",\n \"chat.customMenu.empty\": \"(empty)\",\n \"chat.customMenu.htmlPage\": \"Custom HTML Page\",\n \"chat.customMenu.componentNotFound\": \"Component \\\"{{name}}\\\" not found\",\n \"chat.customMenu.invalidMcpApp\": \"Invalid MCP App menu item\",\n \"chat.customMenu.unknownType\": \"Unknown content type: {{type}}\",\n \"chat.customMenu.fileFallback\": \"File\",\n \"chat.team.workspace\": \"Team Workspace\",\n \"chat.team.title\": \"Teammates\",\n \"chat.team.member\": \"1 member\",\n \"chat.team.members\": \"{{count}} members\",\n \"chat.file.changed\": \"File Changed\",\n \"chat.file.explorer\": \"File Explorer\",\n \"chat.file.count\": \"{{count}} files\",\n \"chat.mailbox.title\": \"Team Mailbox\",\n \"chat.mailbox.label\": \"Mailbox\",\n \"chat.mailbox.count\": \"{{count}} mails\",\n \"chat.copilot.agentBuilder\": \"Agent Builder\",\n \"chat.copilot.viewing\": \"Viewing: {{name}}\",\n \"chat.copilot.close\": \"Close copilot\",\n \"chat.copilot.selectWorkflow\": \"Select a workflow to start\",\n \"chat.environment.title\": \"Environment\",\n \"chat.environment.tools\": \"Tools\",\n \"chat.environment.capabilities\": \"Capabilities\",\n \"chat.environment.subAgents\": \"Sub-agents\",\n \"chat.environment.runtime\": \"Runtime\",\n \"chat.environment.model\": \"Model: {{model}}\",\n \"chat.environment.db\": \"DB: {{db}}\",\n \"chat.environment.skills\": \"Skills: {{skills}}\",\n \"chat.environment.channels\": \"Channels\",\n \"chat.environment.noChannels\": \"No channels configured\",\n \"chat.viewToggle.chat\": \"Chat\",\n \"chat.viewToggle.graph\": \"Execution\",\n \"chat.viewToggle.aria\": \"Switch view\",\n \"chat.trace.backToCurrent\": \"Back to current\",\n \"chat.trace.collapseOlder\": \"Collapse older\",\n \"chat.trace.expandAll\": \"Expand all\",\n \"chat.trace.parallelBadge\": \"Parallel ×{{count}}\",\n \"chat.trace.jumpToChat\": \"Chat\",\n \"chat.trace.phase.understand\": \"Understand & plan\",\n \"chat.trace.phase.act\": \"Execute\",\n \"chat.trace.phase.delegate\": \"Delegate\",\n \"chat.trace.phase.answer\": \"Answer\",\n \"chat.trace.phase.earlier\": \"Earlier\",\n \"chat.trace.node.human\": \"User\",\n \"chat.trace.summary.steps\": \"{{count}} steps\",\n \"chat.trace.summary.steps_one\": \"{{count}} step\",\n \"chat.trace.summary.steps_other\": \"{{count}} steps\",\n \"chat.menu.history\": \"History\",\n \"chat.error.resumeStreamError\": \"Resume stream error\",\n \"chat.error.copySucceeded\": \"Error details copied\",\n \"chat.error.copyFailed\": \"Failed to copy\",\n \"chat.error.sectionFallback\": \"this section\",\n \"chat.error.renderFailed\": \"Failed to render {{label}}\",\n \"chat.error.details\": \"Error details\",\n \"chat.error.copyDetails\": \"Copy Details\",\n \"chat.error.boundary.sidebar\": \"Sidebar\",\n \"chat.error.boundary.chatPanel\": \"Chat panel\",\n \"chat.error.boundary.detailPanel\": \"Detail panel\",\n \"chat.error.boundary.toolsPanel\": \"Tools panel\",\n \"chat.error.boundary.thread\": \"Thread\",\n \"chat.error.boundary.chatShell\": \"Chat shell\",\n \"chat.agent.defaultName\": \"AI Assistant\",\n \"chat.file.toggleDirectory\": \"Toggle file directory\",\n \"chat.conversation.creating\": \"Creating conversation...\",\n \"chat.tools.loading\": \"Loading tools...\",\n \"chat.skills.loading\": \"Loading skills...\",\n \"chat.schedule.none\": \"No schedules\",\n \"chat.schedule.scheduledCount\": \"{{count}} scheduled\",\n \"chat.schedule.totalCount\": \"{{count}} total\",\n \"chat.topology.outgoing\": \"{{count}} out\",\n \"chat.topology.incoming\": \"{{count}} in\",\n \"chat.config.executableRequired\": \"Choose a template or enter a custom executable\",\n \"chat.voice.unavailable\": \"Voice input unavailable: No STT model configured\",\n \"chat.voice.transcribing\": \"Transcribing...\",\n \"chat.voice.retryHint\": \"Transcription failed, tap to retry\",\n \"chat.voice.rerecordHint\": \"Tap to re-record\",\n \"chat.voice.stopRecordingAuto\": \"Stop recording ({{seconds}}s, {{segments}} segments transcribed)\",\n \"chat.voice.stopRecording\": \"Stop recording ({{seconds}}s)\",\n \"chat.voice.start\": \"Start voice input\",\n \"chat.voice.noModel\": \"No STT model configured\",\n \"chat.voice.uploading\": \"Uploading...\",\n \"chat.voice.modeAuto\": \"Auto\",\n \"chat.voice.modeManual\": \"Manual\",\n \"chat.voice.segments\": \"{{count}} segments\",\n \"chat.voice.segments_one\": \"{{count}} segment\",\n \"chat.voice.segments_other\": \"{{count}} segments\",\n \"chat.voice.recordingStatus\": \"{{mode}} mode, recording {{time}}{{chunks}} — tap to stop\",\n \"chat.voice.errNotSupported\": \"Voice input not supported. Use Chrome, Edge, or Safari.\",\n \"chat.voice.errFormatNotSupported\": \"Audio recording format not supported in this browser.\",\n \"chat.voice.errRecordingFailed\": \"Recording failed, please try again.\",\n \"chat.voice.errRecordInitFailed\": \"Recording initialization failed.\",\n \"chat.voice.errMicPermission\": \"Please allow microphone access in browser settings\",\n \"chat.voice.errMicAccess\": \"Cannot access microphone\",\n \"chat.voice.errStopTimeout\": \"Stop recording timed out\",\n \"chat.voice.errTranscribeFailed\": \"Transcription failed\",\n \"chat.voice.errRetryFailed\": \"Retry failed\",\n \"chat.analysis.quickTitle\": \"Quick Analysis\",\n \"chat.analysis.categoriesTitle\": \"Analysis Categories\",\n \"chat.analysis.viewMore\": \"View more analysis options\",\n \"chat.analysis.category.sales\": \"Sales Analysis\",\n \"chat.analysis.category.financial\": \"Financial Analysis\",\n \"chat.analysis.category.operations\": \"Operations Analysis\",\n \"chat.analysis.sales.comprehensive.label\": \"Comprehensive Sales Analysis\",\n \"chat.analysis.sales.comprehensive.description\": \"Analyze sales revenue by specified dimensions with trend analysis and growth opportunities\",\n \"chat.analysis.sales.performance.label\": \"Sales Performance Analysis\",\n \"chat.analysis.sales.performance.description\": \"Aggregate omni-channel sales, evaluate performance achievement rate, and compare with historical growth\",\n \"chat.analysis.sales.topCustomers.label\": \"Top Customer Analysis\",\n \"chat.analysis.sales.topCustomers.description\": \"Identify top 10% customers by sales volume, analyze their purchase preferences and churn risks\",\n \"chat.analysis.sales.trend.label\": \"Sales Trend Analysis\",\n \"chat.analysis.sales.trend.description\": \"Analyze sales peaks and troughs through time series, forecast sales trends for the next quarter\",\n \"chat.analysis.sales.repPerformance.label\": \"Sales Representative Performance\",\n \"chat.analysis.sales.repPerformance.description\": \"Quantitatively evaluate conversion rates, average order value, and contract fulfillment efficiency of each sales representative\",\n \"chat.analysis.sales.regional.label\": \"Regional Sales Comparison\",\n \"chat.analysis.sales.regional.description\": \"Compare sales penetration across different geographic regions, identify markets with abnormal performance\",\n \"chat.analysis.sales.productVolume.label\": \"Product Volume Analysis\",\n \"chat.analysis.sales.productVolume.description\": \"Count sales quantities of each SKU, identify best-selling products and slow-moving inventory\",\n \"chat.analysis.financial.grossMargin.label\": \"Product Line Gross Margin Analysis\",\n \"chat.analysis.financial.grossMargin.description\": \"Compare gross margin levels across product lines, identify high-margin contributors and loss-making businesses\",\n \"chat.analysis.financial.customerProfitability.label\": \"Customer Profitability Analysis\",\n \"chat.analysis.financial.customerProfitability.description\": \"Analyze net profit contribution by different customer dimensions, identify core high-quality customers and high-service-cost customers\",\n \"chat.analysis.financial.monthlyReport.label\": \"Monthly Financial Report\",\n \"chat.analysis.financial.monthlyReport.description\": \"Based on this month's accounting data, automatically generate income statement, balance sheet, and cash flow statement summaries\",\n \"chat.analysis.financial.ratio.label\": \"Financial Ratio Analysis\",\n \"chat.analysis.financial.ratio.description\": \"Calculate and analyze key indicators such as current ratio, debt-to-asset ratio, and ROE to assess company financial health\",\n \"chat.analysis.financial.cashflow.label\": \"Cash Flow Analysis\",\n \"chat.analysis.financial.cashflow.description\": \"Track cash flows from operating, investing, and financing activities, analyze reasons for changes in net cash flow\",\n \"chat.analysis.financial.costStructure.label\": \"Cost Structure Analysis\",\n \"chat.analysis.financial.costStructure.description\": \"Break down direct costs and indirect expenses of products or services, identify core drivers affecting total costs\",\n \"chat.analysis.operations.supplierEvaluation.label\": \"Supplier Performance Evaluation\",\n \"chat.analysis.operations.supplierEvaluation.description\": \"Based on delivery quality, response speed, and price competitiveness, conduct comprehensive rating of core suppliers\",\n \"chat.analysis.operations.inventoryTurnover.label\": \"Inventory Turnover Analysis\",\n \"chat.analysis.operations.inventoryTurnover.description\": \"Calculate inventory turnover rate and days, identify slow-moving inventory materials to release capital\",\n \"chat.analysis.operations.deliveryOntime.label\": \"On-Time Delivery Analysis\",\n \"chat.analysis.operations.deliveryOntime.description\": \"Count order lead time from placement to delivery, analyze core links causing delayed deliveries\",\n \"chat.analysis.operations.procurementCost.label\": \"Procurement Cost Analysis\",\n \"chat.analysis.operations.procurementCost.description\": \"Monitor raw material procurement price fluctuations, analyze impact of procurement premiums or savings on profit\",\n \"chat.analysis.operations.productionEfficiency.label\": \"Production Efficiency Analysis\",\n \"chat.analysis.operations.productionEfficiency.description\": \"Calculate Overall Equipment Effectiveness (OEE) or per capita output, identify efficiency bottlenecks on production lines\",\n \"chat.analysis.operations.orderFulfillment.label\": \"Order Fulfillment Analysis\",\n \"chat.analysis.operations.orderFulfillment.description\": \"Analyze the full process from order receipt to final delivery, optimize order processing response time\",\n \"chat.skillCategory.businessAnalysis\": \"Business Analysis\",\n \"chat.skillCategory.codeGeneration\": \"Code Generation\",\n \"chat.skillCategory.documentProcessing\": \"Document Processing\",\n \"chat.skillCategory.dataAnalysis\": \"Data Analysis\",\n \"chat.skillCategory.toolOperations\": \"Tool Operations\",\n \"chat.skillCategory.general\": \"General Skills\",\n \"chat.skillCategory.global\": \"Global Skills\",\n \"chat.skillCategory.viewMore\": \"View more skill categories\",\n \"chat.skillCategory.quickActions\": \"✨ Quick actions\"\n }\n}\n","{\n \"messages\": {\n \"chat.empty.createConversationFirst\": \"请先创建一个对话\",\n \"chat.empty.question\": \"准备好几秒内把数据变成有洞察力的图表了吗?\",\n \"chat.empty.welcomePrefix\": \"你好\",\n \"chat.empty.userFallback\": \"朋友\",\n \"chat.sender.attachments\": \"附件\",\n \"chat.sender.uploadFile\": \"上传文件\",\n \"chat.sender.rootDirectory\": \"根目录\",\n \"chat.sender.filesUploading\": \"文件仍在上传中…\",\n \"chat.sender.uploadFailed\": \"{{name}} 文件上传失败。{{reason}}\",\n \"chat.sender.fileTooLarge\": \"文件必须小于 100MB!{{name}} 过大。\",\n \"chat.sender.thinking\": \"{{frame}} 思考中…\",\n \"chat.sender.messagesWaiting\": \"{{count}} 条消息等待中…\",\n \"chat.sender.placeholder\": \"输入 / 查看可用技能,或输入 @ 引用文件\",\n \"chat.sender.moreMatches\": \"…还有 {{count}} 个匹配项 — 继续输入以缩小范围\",\n \"chat.error.streamError\": \"流式传输错误\",\n \"chat.stop.superseded\": \"响应已被新消息打断。\",\n \"chat.stop.stopped\": \"响应已停止。\",\n \"chat.layout.toggleMenu\": \"切换菜单\",\n \"chat.layout.closeDetail\": \"关闭详情面板\",\n \"chat.layout.closeTools\": \"关闭工具面板\",\n \"chat.menu.branding\": \"菜单\",\n \"chat.menu.expandSidebar\": \"展开侧边栏\",\n \"chat.menu.collapseSidebar\": \"收起侧边栏\",\n \"chat.menu.newThread\": \"新建会话\",\n \"chat.agent.fallbackName\": \"智能体\",\n \"chat.agent.selectTitle\": \"选择智能体\",\n \"chat.agent.empty\": \"暂无可用智能体\",\n \"chat.model.label\": \"模型\",\n \"chat.model.placeholder\": \"模型\",\n \"chat.workspace.selectPlaceholder\": \"工作区\",\n \"chat.workspace.selectTitle\": \"选择工作区\",\n \"chat.project.selectPlaceholder\": \"项目\",\n \"chat.project.selectTitle\": \"选择项目\",\n \"chat.project.empty\": \"暂无项目\",\n \"chat.project.nameRequired\": \"请输入项目名称\",\n \"chat.project.nameTooLong\": \"名称不得超过 {{max}} 个字符\",\n \"chat.project.selectWorkspaceFirst\": \"请先选择一个工作区\",\n \"chat.project.created\": \"项目「{{name}}」已创建\",\n \"chat.project.createFailed\": \"创建项目失败\",\n \"chat.project.createTitle\": \"新建项目\",\n \"chat.project.namePlaceholder\": \"请输入项目名称\",\n \"chat.thread.create\": \"新建对话\",\n \"chat.thread.createFailed\": \"新建会话失败\",\n \"chat.thread.history\": \"历史对话\",\n \"chat.thread.refreshHistory\": \"刷新历史对话\",\n \"chat.thread.searchPlaceholder\": \"搜索对话…\",\n \"chat.thread.sortName\": \"名称\",\n \"chat.thread.sortUpdated\": \"更新时间\",\n \"chat.thread.sortCreated\": \"创建时间\",\n \"chat.thread.sortAscending\": \"升序\",\n \"chat.thread.sortDescending\": \"降序\",\n \"chat.thread.loading\": \"正在加载对话…\",\n \"chat.thread.noMatch\": \"没有与「{{query}}」匹配的对话\",\n \"chat.thread.empty\": \"暂无对话\",\n \"chat.thread.nameLabel\": \"对话名称\",\n \"chat.thread.saveName\": \"保存名称\",\n \"chat.thread.cancelRename\": \"取消重命名\",\n \"chat.thread.rename\": \"重命名对话\",\n \"chat.thread.renamed\": \"对话已重命名\",\n \"chat.thread.renameFailed\": \"重命名对话失败\",\n \"chat.thread.delete\": \"删除对话\",\n \"chat.thread.deleteTitle\": \"删除对话\",\n \"chat.thread.deleteConfirm\": \"确定要删除该对话吗?此操作无法撤销。\",\n \"chat.thread.deleted\": \"对话已删除\",\n \"chat.thread.deleteFailed\": \"删除对话失败\",\n \"chat.pin.pin\": \"固定到菜单\",\n \"chat.pin.unpin\": \"从菜单取消固定\",\n \"chat.pin.pinTitle\": \"固定到菜单\",\n \"chat.pin.enterName\": \"请输入菜单名称\",\n \"chat.pin.pinned\": \"已固定到菜单\",\n \"chat.pin.unpinned\": \"已从菜单取消固定\",\n \"chat.pin.pinFailed\": \"固定到菜单失败\",\n \"chat.pin.unpinFailed\": \"从菜单取消固定失败\",\n \"chat.pin.namePlaceholder\": \"菜单名称(必填)\",\n \"chat.pin.groupPlaceholder\": \"分组(可选,可选择或输入新分组)\",\n \"chat.sideApp.unnamed\": \"未命名\",\n \"chat.sideApp.allTabs\": \"所有标签页\",\n \"chat.sideApp.close\": \"关闭\",\n \"chat.sideApp.empty\": \"选择一个应用开始使用\",\n \"chat.sideApp.componentNotFound\": \"未找到组件视图\",\n \"chat.todo.title\": \"待办\",\n \"chat.todo.noTasks\": \"暂无任务\",\n \"chat.todo.inProgress\": \"{{count}} 项进行中\",\n \"chat.todo.completed\": \"已完成 {{count}} 项\",\n \"chat.todo.progressTooltip\": \"已完成 {{completed}} / {{total}} 项任务\",\n \"chat.task.title\": \"任务\",\n \"chat.task.noTasks\": \"暂无任务\",\n \"chat.task.inProgress\": \"{{count}} 项进行中\",\n \"chat.task.completed\": \"已完成 {{count}} 项\",\n \"chat.task.progressTooltip\": \"已完成 {{completed}} / {{total}} 项任务\",\n \"chat.customMenu.invalid\": \"无效的菜单项\",\n \"chat.customMenu.empty\": \"(空)\",\n \"chat.customMenu.htmlPage\": \"自定义 HTML 页面\",\n \"chat.customMenu.componentNotFound\": \"未找到组件「{{name}}」\",\n \"chat.customMenu.invalidMcpApp\": \"无效的 MCP 应用菜单项\",\n \"chat.customMenu.unknownType\": \"未知的内容类型:{{type}}\",\n \"chat.customMenu.fileFallback\": \"文件\",\n \"chat.team.workspace\": \"团队工作区\",\n \"chat.team.title\": \"团队成员\",\n \"chat.team.member\": \"1 位成员\",\n \"chat.team.members\": \"{{count}} 位成员\",\n \"chat.file.changed\": \"文件已变更\",\n \"chat.file.explorer\": \"文件浏览器\",\n \"chat.file.count\": \"{{count}} 个文件\",\n \"chat.mailbox.title\": \"团队收件箱\",\n \"chat.mailbox.label\": \"收件箱\",\n \"chat.mailbox.count\": \"{{count}} 封邮件\",\n \"chat.copilot.agentBuilder\": \"智能体构建器\",\n \"chat.copilot.viewing\": \"正在查看:{{name}}\",\n \"chat.copilot.close\": \"关闭副驾驶\",\n \"chat.copilot.selectWorkflow\": \"选择一个工作流开始\",\n \"chat.environment.title\": \"运行环境\",\n \"chat.environment.tools\": \"工具\",\n \"chat.environment.capabilities\": \"能力\",\n \"chat.environment.subAgents\": \"子智能体\",\n \"chat.environment.runtime\": \"运行时\",\n \"chat.environment.model\": \"模型:{{model}}\",\n \"chat.environment.db\": \"数据库:{{db}}\",\n \"chat.environment.skills\": \"技能:{{skills}}\",\n \"chat.environment.channels\": \"渠道\",\n \"chat.environment.noChannels\": \"未配置渠道\",\n \"chat.viewToggle.chat\": \"对话\",\n \"chat.viewToggle.graph\": \"执行过程\",\n \"chat.viewToggle.aria\": \"视图切换\",\n \"chat.trace.backToCurrent\": \"回到当前\",\n \"chat.trace.collapseOlder\": \"收起更早\",\n \"chat.trace.expandAll\": \"展开全部\",\n \"chat.trace.parallelBadge\": \"并发 ×{{count}}\",\n \"chat.trace.jumpToChat\": \"对话\",\n \"chat.trace.phase.understand\": \"理解与规划\",\n \"chat.trace.phase.act\": \"执行\",\n \"chat.trace.phase.delegate\": \"委派\",\n \"chat.trace.phase.answer\": \"回答\",\n \"chat.trace.phase.earlier\": \"更早\",\n \"chat.trace.node.human\": \"用户\",\n \"chat.trace.summary.steps\": \"{{count}} 个步骤\",\n \"chat.trace.summary.steps_one\": \"{{count}} 个步骤\",\n \"chat.trace.summary.steps_other\": \"{{count}} 个步骤\",\n \"chat.menu.history\": \"历史\",\n \"chat.error.resumeStreamError\": \"恢复流式传输错误\",\n \"chat.error.copySucceeded\": \"已复制错误详情\",\n \"chat.error.copyFailed\": \"复制失败\",\n \"chat.error.sectionFallback\": \"此区域\",\n \"chat.error.renderFailed\": \"渲染 {{label}} 失败\",\n \"chat.error.details\": \"错误详情\",\n \"chat.error.copyDetails\": \"复制详情\",\n \"chat.error.boundary.sidebar\": \"侧边栏\",\n \"chat.error.boundary.chatPanel\": \"对话面板\",\n \"chat.error.boundary.detailPanel\": \"详情面板\",\n \"chat.error.boundary.toolsPanel\": \"工具面板\",\n \"chat.error.boundary.thread\": \"会话\",\n \"chat.error.boundary.chatShell\": \"对话外壳\",\n \"chat.agent.defaultName\": \"AI 助手\",\n \"chat.file.toggleDirectory\": \"切换文件目录\",\n \"chat.conversation.creating\": \"正在创建对话…\",\n \"chat.tools.loading\": \"正在加载工具…\",\n \"chat.skills.loading\": \"正在加载技能…\",\n \"chat.schedule.none\": \"暂无定时任务\",\n \"chat.schedule.scheduledCount\": \"已安排 {{count}} 项\",\n \"chat.schedule.totalCount\": \"共 {{count}} 项\",\n \"chat.topology.outgoing\": \"{{count}} 出\",\n \"chat.topology.incoming\": \"{{count}} 入\",\n \"chat.config.executableRequired\": \"请选择一个模板或输入自定义可执行文件\",\n \"chat.voice.unavailable\": \"语音输入不可用:未配置 STT 模型\",\n \"chat.voice.transcribing\": \"转录中…\",\n \"chat.voice.retryHint\": \"转录失败,点击重试\",\n \"chat.voice.rerecordHint\": \"点击重新录制\",\n \"chat.voice.stopRecordingAuto\": \"停止录制({{seconds}} 秒,已转录 {{segments}} 段)\",\n \"chat.voice.stopRecording\": \"停止录制({{seconds}} 秒)\",\n \"chat.voice.start\": \"开始语音输入\",\n \"chat.voice.noModel\": \"未配置 STT 模型\",\n \"chat.voice.uploading\": \"上传中…\",\n \"chat.voice.modeAuto\": \"自动\",\n \"chat.voice.modeManual\": \"手动\",\n \"chat.voice.segments\": \"{{count}} 段\",\n \"chat.voice.segments_one\": \"{{count}} 段\",\n \"chat.voice.segments_other\": \"{{count}} 段\",\n \"chat.voice.recordingStatus\": \"{{mode}}模式,录制中 {{time}}{{chunks}} — 点击停止\",\n \"chat.voice.errNotSupported\": \"不支持语音输入,请使用 Chrome、Edge 或 Safari。\",\n \"chat.voice.errFormatNotSupported\": \"此浏览器不支持该音频录制格式。\",\n \"chat.voice.errRecordingFailed\": \"录制失败,请重试。\",\n \"chat.voice.errRecordInitFailed\": \"录制初始化失败。\",\n \"chat.voice.errMicPermission\": \"请在浏览器设置中允许麦克风权限\",\n \"chat.voice.errMicAccess\": \"无法访问麦克风\",\n \"chat.voice.errStopTimeout\": \"停止录制超时\",\n \"chat.voice.errTranscribeFailed\": \"转录失败\",\n \"chat.voice.errRetryFailed\": \"重试失败\",\n \"chat.analysis.quickTitle\": \"快速分析\",\n \"chat.analysis.categoriesTitle\": \"分析类别\",\n \"chat.analysis.viewMore\": \"查看更多分析选项\",\n \"chat.analysis.category.sales\": \"销售分析\",\n \"chat.analysis.category.financial\": \"财务分析\",\n \"chat.analysis.category.operations\": \"运营分析\",\n \"chat.analysis.sales.comprehensive.label\": \"综合销售分析\",\n \"chat.analysis.sales.comprehensive.description\": \"按指定维度分析销售收入,并进行趋势分析与增长机会识别\",\n \"chat.analysis.sales.performance.label\": \"销售业绩分析\",\n \"chat.analysis.sales.performance.description\": \"汇总全渠道销售额,评估业绩达成率,并与历史增长对比\",\n \"chat.analysis.sales.topCustomers.label\": \"大客户分析\",\n \"chat.analysis.sales.topCustomers.description\": \"识别销售额前 10% 的客户,分析其购买偏好与流失风险\",\n \"chat.analysis.sales.trend.label\": \"销售趋势分析\",\n \"chat.analysis.sales.trend.description\": \"通过时间序列分析销售峰谷,预测下一季度销售趋势\",\n \"chat.analysis.sales.repPerformance.label\": \"销售人员业绩\",\n \"chat.analysis.sales.repPerformance.description\": \"量化评估每位销售人员的转化率、客单价与合同履约效率\",\n \"chat.analysis.sales.regional.label\": \"区域销售对比\",\n \"chat.analysis.sales.regional.description\": \"对比不同地理区域的销售渗透率,识别表现异常的市场\",\n \"chat.analysis.sales.productVolume.label\": \"商品销量分析\",\n \"chat.analysis.sales.productVolume.description\": \"统计各 SKU 的销量,识别畅销商品与滞销库存\",\n \"chat.analysis.financial.grossMargin.label\": \"产品线毛利分析\",\n \"chat.analysis.financial.grossMargin.description\": \"对比各产品线的毛利水平,识别高毛利贡献与亏损业务\",\n \"chat.analysis.financial.customerProfitability.label\": \"客户盈利分析\",\n \"chat.analysis.financial.customerProfitability.description\": \"按不同客户维度分析净利润贡献,识别核心优质客户与高服务成本客户\",\n \"chat.analysis.financial.monthlyReport.label\": \"月度财务报告\",\n \"chat.analysis.financial.monthlyReport.description\": \"基于本月核算数据,自动生成利润表、资产负债表与现金流量表摘要\",\n \"chat.analysis.financial.ratio.label\": \"财务比率分析\",\n \"chat.analysis.financial.ratio.description\": \"计算并分析流动比率、资产负债率、ROE 等关键指标,评估公司财务健康度\",\n \"chat.analysis.financial.cashflow.label\": \"现金流分析\",\n \"chat.analysis.financial.cashflow.description\": \"追踪经营、投资与筹资活动现金流,分析净现金流变动的原因与趋势\",\n \"chat.analysis.financial.costStructure.label\": \"成本结构分析\",\n \"chat.analysis.financial.costStructure.description\": \"拆解产品或服务的直接成本与间接费用,识别影响总成本的核心驱动因素\",\n \"chat.analysis.operations.supplierEvaluation.label\": \"供应商绩效评估\",\n \"chat.analysis.operations.supplierEvaluation.description\": \"基于交付质量、响应速度与价格竞争力,对核心供应商进行综合评级\",\n \"chat.analysis.operations.inventoryTurnover.label\": \"库存周转分析\",\n \"chat.analysis.operations.inventoryTurnover.description\": \"计算库存周转率与周转天数,识别呆滞库存物料以释放资金\",\n \"chat.analysis.operations.deliveryOntime.label\": \"准时交付分析\",\n \"chat.analysis.operations.deliveryOntime.description\": \"统计订单从下单到交付的周期,分析导致延迟交付的核心环节\",\n \"chat.analysis.operations.procurementCost.label\": \"采购成本分析\",\n \"chat.analysis.operations.procurementCost.description\": \"监控原材料采购价格波动,分析采购溢价或节约对利润的影响\",\n \"chat.analysis.operations.productionEfficiency.label\": \"生产效率分析\",\n \"chat.analysis.operations.productionEfficiency.description\": \"计算设备综合效率(OEE)或人均产出,识别产线效率瓶颈\",\n \"chat.analysis.operations.orderFulfillment.label\": \"订单履约分析\",\n \"chat.analysis.operations.orderFulfillment.description\": \"分析从接单到最终交付的全流程,优化订单处理响应时间\",\n \"chat.skillCategory.businessAnalysis\": \"业务分析\",\n \"chat.skillCategory.codeGeneration\": \"代码生成\",\n \"chat.skillCategory.documentProcessing\": \"文档处理\",\n \"chat.skillCategory.dataAnalysis\": \"数据分析\",\n \"chat.skillCategory.toolOperations\": \"工具操作\",\n \"chat.skillCategory.general\": \"通用技能\",\n \"chat.skillCategory.global\": \"全局技能\",\n \"chat.skillCategory.viewMore\": \"查看更多技能分类\",\n \"chat.skillCategory.quickActions\": \"✨ 快捷操作\"\n }\n}\n","{\n \"messages\": {\n \"chatConfig.field.name\": \"Name\",\n \"chatConfig.field.description\": \"Description\",\n \"chatConfig.field.displayName\": \"Display Name\",\n \"chatConfig.field.connectionKey\": \"Connection Key\",\n \"chatConfig.field.host\": \"Host\",\n \"chatConfig.field.port\": \"Port\",\n \"chatConfig.field.username\": \"Username\",\n \"chatConfig.field.password\": \"Password\",\n \"chatConfig.field.serverUrl\": \"Server URL\",\n \"chatConfig.field.apiKey\": \"API Key\",\n \"chatConfig.field.optionalDescription\": \"Optional description\",\n \"chatConfig.config.updated\": \"Configuration updated\",\n \"chatConfig.config.created\": \"Configuration created\",\n \"chatConfig.config.deleted\": \"Configuration deleted\",\n \"chatConfig.config.deleteFailed\": \"Failed to delete configuration\",\n \"chatConfig.config.saveFailed\": \"Failed to save configuration\",\n \"chatConfig.config.missingId\": \"Cannot delete: configuration id is missing\",\n \"chatConfig.agentType.executor\": \"Executor\",\n \"chatConfig.agentType.orchestrator\": \"Orchestrator\",\n \"chatConfig.agentType.team\": \"Team\",\n \"chatConfig.agentType.workflow\": \"Workflow\",\n \"chatConfig.agentType.a2aRemote\": \"A2A Remote\",\n \"chatConfig.keyValue.key\": \"Key\",\n \"chatConfig.keyValue.value\": \"Value\",\n \"chatConfig.keyValue.add\": \"Add\",\n \"chatConfig.keyValue.removeEntry\": \"Remove entry\",\n \"chatConfig.connectionList.empty\": \"No \\\"{{type}}\\\" connections\",\n \"chatConfig.connectionList.selectAll\": \"Select All\",\n \"chatConfig.connectionList.deselectAll\": \"Deselect All\",\n \"chatConfig.connectionList.clear\": \"Clear\",\n \"chatConfig.connectionsHub.title\": \"Plugins\",\n \"chatConfig.connectionsHub.tab.all\": \"All ({{count}})\",\n \"chatConfig.connectionsHub.tab.connections\": \"Connections ({{count}})\",\n \"chatConfig.connectionsHub.tab.tools\": \"Tools ({{count}})\",\n \"chatConfig.connectionsHub.empty.connections.title\": \"No connection plugins\",\n \"chatConfig.connectionsHub.empty.connections.description\": \"No plugins with connection management registered\",\n \"chatConfig.connectionsHub.empty.tools.title\": \"No tool plugins\",\n \"chatConfig.connectionsHub.empty.tools.description\": \"No tool-only plugins registered\",\n \"chatConfig.connectionsHub.empty.all.title\": \"No plugins\",\n \"chatConfig.connectionsHub.empty.all.description\": \"No plugins registered\",\n \"chatConfig.connectionsHub.capability.test\": \"test\",\n \"chatConfig.connectionsHub.capability.discover\": \"discover\",\n \"chatConfig.connectionsHub.capability.connection\": \"connection\",\n \"chatConfig.connectionsHub.capability.tool\": \"tool\",\n \"chatConfig.subAgentInherit.hint\": \"Choose how to handle each sub-agent from the parent:\",\n \"chatConfig.subAgentInherit.clone\": \"Clone as new\",\n \"chatConfig.subAgentInherit.reuse\": \"Reuse\",\n \"chatConfig.subAgentInherit.cloneKeyPlaceholder\": \"Enter key for the cloned agent\",\n \"chatConfig.project.create.title\": \"New Project\",\n \"chatConfig.project.field.name\": \"Project name\",\n \"chatConfig.project.field.namePlaceholder\": \"Enter project name\",\n \"chatConfig.project.validation.nameRequired\": \"Please enter a project name\",\n \"chatConfig.project.validation.nameMax\": \"Project name must be less than 50 characters\",\n \"chatConfig.project.field.visibility\": \"Visibility\",\n \"chatConfig.project.kind.business\": \"Business\",\n \"chatConfig.project.kind.business.description\": \"Only invited members can see it.\",\n \"chatConfig.project.kind.public\": \"Public\",\n \"chatConfig.project.kind.public.description\": \"Visible to everyone in this workspace.\",\n \"chatConfig.project.field.description\": \"Description (optional)\",\n \"chatConfig.project.field.descriptionPlaceholder\": \"Enter project description\",\n \"chatConfig.workflow.create.title\": \"New Workflow\",\n \"chatConfig.workflow.create.titleProcessing\": \"New Processing Workflow\",\n \"chatConfig.workflow.field.purpose\": \"Purpose\",\n \"chatConfig.workflow.field.purposePlaceholder\": \"Describe what this workflow should do. Name and key will be generated automatically.\",\n \"chatConfig.workflow.validation.purposeRequired\": \"Please describe the workflow purpose\",\n \"chatConfig.workflow.middleware.topologyName\": \"Topology\",\n \"chatConfig.workflow.middleware.topologyDescription\": \"Workflow topology\",\n \"chatConfig.skill.create.title\": \"Create New Skill\",\n \"chatConfig.skill.edit.title\": \"Edit Skill\",\n \"chatConfig.skill.created\": \"Skill created successfully\",\n \"chatConfig.skill.updated\": \"Skill updated successfully\",\n \"chatConfig.skill.createFailed\": \"Failed to create skill\",\n \"chatConfig.skill.updateFailed\": \"Failed to update skill\",\n \"chatConfig.skill.createError\": \"An error occurred while creating the skill\",\n \"chatConfig.skill.updateError\": \"An error occurred while updating the skill\",\n \"chatConfig.skill.field.name\": \"Name\",\n \"chatConfig.skill.field.description\": \"Description\",\n \"chatConfig.skill.field.license\": \"License\",\n \"chatConfig.skill.field.compatibility\": \"Compatibility\",\n \"chatConfig.skill.field.metadata\": \"Metadata\",\n \"chatConfig.skill.field.content\": \"Content\",\n \"chatConfig.skill.placeholder.description\": \"Description\",\n \"chatConfig.skill.placeholder.license\": \"License\",\n \"chatConfig.skill.placeholder.compatibility\": \"Compatibility\",\n \"chatConfig.skill.placeholder.content\": \"Content\",\n \"chatConfig.skill.validation.nameRequired\": \"Please enter skill name\",\n \"chatConfig.skill.validation.namePattern\": \"Name must be lowercase alphanumeric with single hyphens (e.g., 'my-skill')\",\n \"chatConfig.skill.validation.nameLength\": \"Name must be 1-64 characters\",\n \"chatConfig.skill.validation.descriptionRequired\": \"Please enter skill description\",\n \"chatConfig.skill.metadata.add\": \"Add\",\n \"chatConfig.skill.metadata.empty\": \"No metadata yet. Use Add to create one.\",\n \"chatConfig.skill.metadata.row\": \"Meta {{index}}\",\n \"chatConfig.skill.action.save\": \"Save Changes\",\n \"chatConfig.skill.action.create\": \"Create Skill\",\n \"chatConfig.skillPicker.title\": \"Skills\",\n \"chatConfig.skillPicker.selectTitle\": \"Select Skills\",\n \"chatConfig.skillPicker.empty\": \"No skills available\",\n \"chatConfig.databasePicker.title\": \"Database\",\n \"chatConfig.databasePicker.selectTitle\": \"Select Database\",\n \"chatConfig.databasePicker.empty\": \"No databases available\",\n \"chatConfig.channelInstall.title\": \"Channel Installations\",\n \"chatConfig.channelInstall.add\": \"Add Installation\",\n \"chatConfig.channelInstall.editTitle\": \"Edit Installation\",\n \"chatConfig.channelInstall.addTitle\": \"Add Installation\",\n \"chatConfig.channelInstall.empty.title\": \"No channel installations\",\n \"chatConfig.channelInstall.empty.description\": \"Click \\\"Add Installation\\\" to create one\",\n \"chatConfig.channelInstall.unsupported\": \"Unsupported channel configuration UI\",\n \"chatConfig.channelInstall.loadFailed\": \"Failed to load channel installations\",\n \"chatConfig.channelInstall.deleted\": \"Installation deleted\",\n \"chatConfig.channelInstall.deleteFailed\": \"Failed to delete installation\",\n \"chatConfig.channelInstall.updated\": \"Installation updated\",\n \"chatConfig.channelInstall.updateFailed\": \"Failed to update installation\",\n \"chatConfig.channelInstall.created\": \"Installation created\",\n \"chatConfig.channelInstall.createFailed\": \"Failed to create installation\",\n \"chatConfig.channelInstall.delete.title\": \"Delete Channel Installation\",\n \"chatConfig.channelInstall.delete.description\": \"Are you sure you want to delete \\\"{{name}}\\\"?\",\n \"chatConfig.channelInstall.field.channel\": \"Channel\",\n \"chatConfig.channelInstall.field.name\": \"Name\",\n \"chatConfig.channelInstall.field.appId\": \"App ID\",\n \"chatConfig.channelInstall.field.appSecret\": \"App Secret\",\n \"chatConfig.channelInstall.field.verificationToken\": \"Verification Token\",\n \"chatConfig.channelInstall.field.encryptKey\": \"Encrypt Key\",\n \"chatConfig.channelInstall.validation.appIdRequired\": \"App ID is required\",\n \"chatConfig.channelInstall.validation.appSecretRequired\": \"App Secret is required\",\n \"chatConfig.connection.loadFailed\": \"Failed to load connections\",\n \"chatConfig.connection.testPassed\": \"Connection test passed: {{message}}\",\n \"chatConfig.connection.testFailed\": \"Connection test failed\",\n \"chatConfig.connection.testError\": \"Failed to test connection\",\n \"chatConfig.connection.missingKey\": \"Cannot delete: connection key is missing\",\n \"chatConfig.connection.deleted\": \"Connection deleted\",\n \"chatConfig.connection.deleteFailed\": \"Failed to delete connection\",\n \"chatConfig.connection.noSchema.title\": \"No connection schema defined\",\n \"chatConfig.connection.noSchema.description\": \"This plugin type does not support connection management\",\n \"chatConfig.connection.action.test\": \"Test\",\n \"chatConfig.connection.status.online\": \"Online\",\n \"chatConfig.connection.status.offline\": \"Offline\",\n \"chatConfig.connection.updated\": \"Updated {{date}}\",\n \"chatConfig.connection.add\": \"Add Connection\",\n \"chatConfig.connection.empty.title\": \"No connections configured\",\n \"chatConfig.connection.empty.description\": \"Click \\\"Add Connection\\\" to create one\",\n \"chatConfig.connection.delete.title\": \"Delete Connection\",\n \"chatConfig.connection.delete.confirm\": \"Delete \\\"{{name}}\\\"?\",\n \"chatConfig.connectionForm.testRequestFailed\": \"Test request failed\",\n \"chatConfig.connectionForm.keyRequired\": \"Connection key is required\",\n \"chatConfig.connectionForm.updated\": \"Connection updated\",\n \"chatConfig.connectionForm.created\": \"Connection created\",\n \"chatConfig.connectionForm.saveFailed\": \"Failed to save connection\",\n \"chatConfig.connectionForm.selectPlaceholder\": \"Select {{title}}\",\n \"chatConfig.connectionForm.enterPlaceholder\": \"Enter {{title}}\",\n \"chatConfig.connectionForm.step.details\": \"Connection Details\",\n \"chatConfig.connectionForm.step.verify\": \"Verify\",\n \"chatConfig.connectionForm.editTitle\": \"Edit {{type}} Connection\",\n \"chatConfig.connectionForm.addTitle\": \"Add {{type}} Connection\",\n \"chatConfig.connectionForm.save\": \"Save Changes\",\n \"chatConfig.connectionForm.finish\": \"Finish\",\n \"chatConfig.connectionForm.testing\": \"Testing connection...\",\n \"chatConfig.connectionForm.availableResources\": \"Available Resources\",\n \"chatConfig.connectionForm.selectedCount\": \" ({{count}} selected)\",\n \"chatConfig.connectionForm.retryTest\": \"Retry Test\",\n \"chatConfig.database.title\": \"Database Connections\",\n \"chatConfig.database.loadFailed\": \"Failed to load database configurations\",\n \"chatConfig.database.testSuccess\": \"Successfully connected to {{host}} ({{latency}}ms)\",\n \"chatConfig.database.connectionFailed\": \"Connection failed: {{error}}\",\n \"chatConfig.database.empty.title\": \"No database configurations\",\n \"chatConfig.database.keyAndId\": \"Key: {{key}} | ID: {{id}}\",\n \"chatConfig.database.connectionStringMode\": \"Connection String Mode\",\n \"chatConfig.database.testing\": \"Testing...\",\n \"chatConfig.database.editTitle\": \"Edit Database Configuration\",\n \"chatConfig.database.addTitle\": \"Add Database Configuration\",\n \"chatConfig.database.field.type\": \"Database Type\",\n \"chatConfig.database.field.connectionString\": \"Connection String\",\n \"chatConfig.database.priorityMode\": \"Priority Mode\",\n \"chatConfig.database.note.important\": \"Important:\",\n \"chatConfig.database.note.whenProvided\": \"When connection string is provided, it takes\",\n \"chatConfig.database.note.priorityOver\": \"priority over\",\n \"chatConfig.database.note.suffix\": \"all individual connection parameters below. The backend implements the same priority logic.\",\n \"chatConfig.database.field.individualParams\": \"Individual Connection Parameters\",\n \"chatConfig.database.ignoredWhenString\": \"Ignored when connection string is set\",\n \"chatConfig.database.field.name\": \"Database Name\",\n \"chatConfig.database.delete.title\": \"Delete Database Configuration\",\n \"chatConfig.database.delete.description\": \"Are you sure you want to delete \\\"{{name}}\\\"?\",\n \"chatConfig.metrics.title\": \"Metrics Server Connections\",\n \"chatConfig.metrics.loadFailed\": \"Failed to load metrics configurations\",\n \"chatConfig.metrics.testSuccess\": \"Successfully connected to {{serverUrl}} ({{latency}}ms)\",\n \"chatConfig.metrics.empty.title\": \"No metrics configurations\",\n \"chatConfig.metrics.delete.title\": \"Delete Metrics Configuration\",\n \"chatConfig.metrics.step.basic\": \"Basic Info\",\n \"chatConfig.metrics.step.dataSources\": \"Select Data Sources\",\n \"chatConfig.metrics.serverUrlRequired\": \"Please enter the server URL\",\n \"chatConfig.metrics.fetchDataSourcesFailed\": \"Failed to fetch data sources\",\n \"chatConfig.metrics.editTitle\": \"Edit Metrics Configuration\",\n \"chatConfig.metrics.addTitle\": \"Add Metrics Configuration\",\n \"chatConfig.metrics.field.serverType\": \"Server Type\",\n \"chatConfig.metrics.field.authentication\": \"Authentication\",\n \"chatConfig.metrics.optional\": \"Optional\",\n \"chatConfig.metrics.placeholder.apiKey\": \"Optional API key for authentication\",\n \"chatConfig.metrics.placeholder.username\": \"Optional username for basic auth\",\n \"chatConfig.metrics.placeholder.password\": \"Optional password for basic auth\",\n \"chatConfig.metrics.fetchingDataSources\": \"Fetching data sources...\",\n \"chatConfig.metrics.field.dataSources\": \"Data Sources\",\n \"chatConfig.metrics.selectedCount\": \"Selected: {{count}}\",\n \"chatConfig.metrics.connected\": \"Connected\",\n \"chatConfig.metrics.metricsAvailable\": \"{{count}} metrics available\",\n \"chatConfig.metrics.loadingMetrics\": \"Loading metrics...\",\n \"chatConfig.metrics.loadMetricsFailed\": \"Failed to load metrics\",\n \"chatConfig.metrics.selectDataSourceHint\": \"Click a data source on the left to view its metrics\",\n \"chatConfig.metrics.previous\": \"Previous\",\n \"chatConfig.metrics.save\": \"Save Changes\",\n \"chatConfig.metrics.type.semantic\": \"Semantic\",\n \"chatConfig.metricsDataSource.select\": \"Select Data Source\",\n \"chatConfig.metricsDataSource.noneAvailable\": \"No data sources available\",\n \"chatConfig.metricsDataSource.title\": \"Select Metrics Data Source\",\n \"chatConfig.metricsDataSource.empty\": \"No Metrics Data Sources Available\",\n \"chatConfig.metricsDataSource.disconnected\": \"Disconnected\",\n \"chatConfig.metricsDataSource.selected\": \"Selected\",\n \"chatConfig.mcp.title\": \"MCP Server Connections\",\n \"chatConfig.mcp.loadFailed\": \"Failed to load MCP server configurations\",\n \"chatConfig.mcp.testSuccess\": \"Successfully connected ({{latency}}ms)\",\n \"chatConfig.mcp.disconnected\": \"{{name}} disconnected\",\n \"chatConfig.mcp.connected\": \"{{name}} connected\",\n \"chatConfig.mcp.connectFailed\": \"Failed to connect\",\n \"chatConfig.mcp.toggleFailed\": \"Failed to toggle connection\",\n \"chatConfig.mcp.action.test\": \"Test Connection\",\n \"chatConfig.mcp.toolsCount\": \"{{count}} tools\",\n \"chatConfig.mcp.empty.title\": \"No MCP server configurations\",\n \"chatConfig.mcp.delete.title\": \"Delete MCP Server Configuration\",\n \"chatConfig.mcp.step.connection\": \"Connection\",\n \"chatConfig.mcp.step.tools\": \"Select Tools\",\n \"chatConfig.mcp.commandRequired\": \"Please enter the command for stdio transport\",\n \"chatConfig.mcp.urlRequired\": \"Please enter the URL for HTTP/SSE transport\",\n \"chatConfig.mcp.fetchToolsFailed\": \"Failed to fetch tools\",\n \"chatConfig.mcp.fetchToolsError\": \"Failed to fetch tools from MCP server\",\n \"chatConfig.mcp.editTitle\": \"Edit MCP Server Configuration\",\n \"chatConfig.mcp.addTitle\": \"Add MCP Server Configuration\",\n \"chatConfig.mcp.field.transport\": \"Transport Type\",\n \"chatConfig.mcp.transport.stdio\": \"STDIO (Command)\",\n \"chatConfig.mcp.transport.http\": \"HTTP\",\n \"chatConfig.mcp.transport.sse\": \"SSE (Server-Sent Events)\",\n \"chatConfig.mcp.field.command\": \"Command\",\n \"chatConfig.mcp.field.args\": \"Arguments (one per line)\",\n \"chatConfig.mcp.field.env\": \"Environment Variables\",\n \"chatConfig.mcp.envHint\": \"Passed to the server process (e.g. API tokens). Values are stored encrypted.\",\n \"chatConfig.mcp.addVariable\": \"Add Variable\",\n \"chatConfig.mcp.sseDeprecated\": \"SSE is deprecated by the MCP specification — prefer Streamable HTTP (HTTP) for new servers.\",\n \"chatConfig.mcp.field.headers\": \"Headers\",\n \"chatConfig.mcp.headersHint\": \"Sent with every request (e.g. Authorization for authentication). Values are stored encrypted.\",\n \"chatConfig.mcp.addHeader\": \"Add Header\",\n \"chatConfig.mcp.advanced\": \"Advanced Options\",\n \"chatConfig.mcp.field.timeout\": \"Timeout (ms)\",\n \"chatConfig.mcp.field.retryAttempts\": \"Retry Attempts\",\n \"chatConfig.mcp.connecting\": \"Connecting to MCP server and fetching tools...\",\n \"chatConfig.mcp.noTools\": \"No tools available. Please check your connection settings.\",\n \"chatConfig.mcp.availableTools\": \"Available Tools\",\n \"chatConfig.mcp.selectedTools\": \"Selected: {{selected}} / {{total}}\",\n \"chatConfig.mcp.parameters\": \"Parameters: {{list}}\",\n \"chatConfig.mcp.previous\": \"Previous\",\n \"chatConfig.mcp.save\": \"Save Changes\",\n \"chatConfig.midForm.selectAll\": \"Select All\",\n \"chatConfig.midForm.clear\": \"Clear\",\n \"chatConfig.midForm.selectedOfTotal\": \"{{selected}} / {{total}} selected\",\n \"chatConfig.midForm.tools\": \"Tools\",\n \"chatConfig.midForm.skills.title\": \"Skill Library\",\n \"chatConfig.midForm.skills.search\": \"Search skills…\",\n \"chatConfig.midForm.skills.empty\": \"No skills available\",\n \"chatConfig.midForm.databases.title\": \"Databases\",\n \"chatConfig.midForm.databases.search\": \"Search databases…\",\n \"chatConfig.midForm.databases.empty\": \"No databases available\",\n \"chatConfig.midForm.metrics.title\": \"Metrics Servers\",\n \"chatConfig.midForm.metrics.search\": \"Search servers…\",\n \"chatConfig.midForm.metrics.empty\": \"No servers available\",\n \"chatConfig.midForm.collections.title\": \"Collections\",\n \"chatConfig.midForm.collections.search\": \"Search collections…\",\n \"chatConfig.midForm.collections.empty\": \"No collections available\",\n \"chatConfig.midForm.topology.title\": \"Dependencies\",\n \"chatConfig.midForm.topology.edges\": \"{{count}} edges\",\n \"chatConfig.midForm.topology.empty\": \"No dependencies defined yet\",\n \"chatConfig.midForm.topology.addTitle\": \"Add Dependency\",\n \"chatConfig.midForm.topology.fromPlaceholder\": \"Source Agent ID\",\n \"chatConfig.midForm.topology.toPlaceholder\": \"Target Agent ID\",\n \"chatConfig.midForm.topology.purposePlaceholder\": \"Purpose (e.g. classify invoice fields)\",\n \"chatConfig.midForm.topology.addEdge\": \"Add Edge\",\n \"chatConfig.midForm.connections.title\": \"Connections\",\n \"chatConfig.midForm.section.config\": \"Config\",\n \"chatConfig.midForm.section.resources\": \"Resources Permission\",\n \"chatConfig.midForm.section.tools\": \"Tools Permission\",\n \"chatConfig.midForm.enabled\": \"Enabled\",\n \"chatConfig.midForm.disabled\": \"Disabled\",\n \"chatConfig.midForm.scope.global\": \"Global\",\n \"chatConfig.midForm.scope.agent\": \"Agent\",\n \"chatConfig.midForm.scope.project\": \"Project\",\n \"chatConfig.agentModal.title\": \"Configure Agent\",\n \"chatConfig.agentModal.tab.basic\": \"Basic\",\n \"chatConfig.agentModal.tab.tools\": \"Tools\",\n \"chatConfig.agentModal.tab.skills\": \"Skills\",\n \"chatConfig.agentModal.tab.subAgents\": \"Sub-Agents\",\n \"chatConfig.agentModal.field.agentType\": \"Agent Type\",\n \"chatConfig.agentModal.field.systemPrompt\": \"System Prompt\",\n \"chatConfig.agentModal.systemPromptPlaceholder\": \"Enter the system prompt for this agent...\",\n \"chatConfig.agentModal.systemPromptHint\": \"Define the agent's behavior, capabilities, and constraints\",\n \"chatConfig.agentModal.selectedOfTotal\": \"{{selected}} of {{total}} selected\",\n \"chatConfig.agentModal.selectAll\": \"Select All\",\n \"chatConfig.agentModal.deselectAll\": \"Deselect All\",\n \"chatConfig.agentModal.noTools\": \"No tools available\",\n \"chatConfig.agentModal.noSkills\": \"No skills available\",\n \"chatConfig.agentModal.noOtherAgents\": \"No other agents available\",\n \"chatConfig.agentModal.approve\": \"Approve\",\n \"chatConfig.agentModal.noDescription\": \"No description\",\n \"chatConfig.agentModal.hierarchy\": \"Agent Hierarchy\",\n \"chatConfig.agentModal.currentAgent\": \"Current Agent\",\n \"chatConfig.agentModal.currentTag\": \"Current\",\n \"chatConfig.agentModal.type.react\": \"React\",\n \"chatConfig.agentModal.type.deepAgent\": \"Deep Agent\",\n \"chatConfig.agentModal.type.workflow\": \"Workflow\",\n \"chatConfig.agentModal.toolsCount\": \"{{count}} tools\",\n \"chatConfig.agentModal.skillsCount\": \"{{count}} skills\",\n \"chatConfig.agentModal.subAgentsCount\": \"{{count}} sub-agents\",\n \"chatConfig.agentModal.structureTree\": \"Structure Tree\",\n \"chatConfig.agentModal.tip\": \"Tip\",\n \"chatConfig.agentModal.tipBody\": \"Deep Agent type allows you to delegate tasks to sub-agents. Select agents from the Sub-Agents tab to build your hierarchy.\",\n \"chatConfig.agentModal.changesHint\": \"Changes will update the agent configuration\",\n \"chatConfig.agentModal.saveConfiguration\": \"Save Configuration\",\n \"chatConfig.agentPanel.category.data\": \"Data & Knowledge\",\n \"chatConfig.agentPanel.category.execution\": \"Execution & Interaction\",\n \"chatConfig.agentPanel.category.workflow\": \"Workflow & Orchestration\",\n \"chatConfig.agentPanel.category.assistant\": \"Assistant & Evaluation\",\n \"chatConfig.agentPanel.category.other\": \"Other\",\n \"chatConfig.agentPanel.nav.basic\": \"Basic Info\",\n \"chatConfig.agentPanel.nav.prompt\": \"System Prompt\",\n \"chatConfig.agentPanel.nav.tools\": \"Common Tools\",\n \"chatConfig.agentPanel.nav.capabilities\": \"Capabilities\",\n \"chatConfig.agentPanel.nav.subAgents\": \"Sub-Agents\",\n \"chatConfig.agentPanel.navAriaLabel\": \"Agent configuration sections\",\n \"chatConfig.agentPanel.basic.title\": \"Basic Info\",\n \"chatConfig.agentPanel.basic.desc\": \"Core identity and behavior of this agent\",\n \"chatConfig.agentPanel.field.name\": \"Name\",\n \"chatConfig.agentPanel.field.agentType\": \"Agent Type\",\n \"chatConfig.agentPanel.field.description\": \"Description\",\n \"chatConfig.agentPanel.validation.nameRequired\": \"Please enter agent name\",\n \"chatConfig.agentPanel.validation.descriptionRequired\": \"Please enter agent description\",\n \"chatConfig.agentPanel.placeholder.name\": \"Enter agent name…\",\n \"chatConfig.agentPanel.placeholder.description\": \"Enter agent description…\",\n \"chatConfig.agentPanel.typeDesc.react\": \"Executor: Executes tasks directly using tools. Best for single-step operations like search, code execution, and data retrieval.\",\n \"chatConfig.agentPanel.typeDesc.deepAgent\": \"Orchestrator: Maintains a todo list to plan and delegate tasks to sub-agents. Best for structured multi-step workflows.\",\n \"chatConfig.agentPanel.typeDesc.team\": \"Team: Creates tasks with dependencies and dynamically spawns teammates who communicate via mailbox. Best for exploration and divergent thinking.\",\n \"chatConfig.agentPanel.typeDesc.processing\": \"Workflow: Delegates to sub-agents in a predefined topology order. Best for deterministic multi-step processes.\",\n \"chatConfig.agentPanel.prompt.title\": \"System Prompt\",\n \"chatConfig.agentPanel.prompt.desc\": \"Define the agent's behavior, capabilities, and constraints\",\n \"chatConfig.agentPanel.prompt.expand\": \"Expand\",\n \"chatConfig.agentPanel.prompt.placeholder\": \"Enter the system prompt for this agent…\",\n \"chatConfig.agentPanel.prompt.chars\": \"{{count}} chars\",\n \"chatConfig.agentPanel.tools.title\": \"Common Tools\",\n \"chatConfig.agentPanel.tools.desc\": \"Choose the tools this agent can call directly\",\n \"chatConfig.agentPanel.tools.search\": \"Search tools…\",\n \"chatConfig.agentPanel.tools.selected\": \"Selected {{selected}} / {{total}}\",\n \"chatConfig.agentPanel.subAgents.title\": \"Sub-Agents\",\n \"chatConfig.agentPanel.subAgents.desc\": \"Choose sub-agents this agent can delegate to\",\n \"chatConfig.agentPanel.subAgents.search\": \"Search sub-agents…\",\n \"chatConfig.agentPanel.subAgents.selected\": \"Selected {{selected}} / {{total}}\",\n \"chatConfig.agentPanel.noTools\": \"No tools available\",\n \"chatConfig.agentPanel.noCapabilities\": \"No capabilities available\",\n \"chatConfig.agentPanel.noOtherAgents\": \"No other agents available\",\n \"chatConfig.agentPanel.noMatching\": \"No matching results\",\n \"chatConfig.agentPanel.selectAll\": \"Select All\",\n \"chatConfig.agentPanel.clear\": \"Clear\",\n \"chatConfig.agentPanel.approve\": \"Approve\",\n \"chatConfig.agentPanel.noDescription\": \"No description\",\n \"chatConfig.agentPanel.configWorkbench\": \"Config Workbench\",\n \"chatConfig.agentPanel.deleteAgent\": \"Delete Agent\",\n \"chatConfig.agentPanel.loadingConfig\": \"Loading agent configuration...\",\n \"chatConfig.agentPanel.footer.saveHint\": \"Changes will be saved to this agent\",\n \"chatConfig.agentPanel.footer.viewing\": \"Viewing agent configuration\",\n \"chatConfig.agentPanel.done\": \"Done\",\n \"chatConfig.agentPanel.delete.title\": \"Delete Agent\",\n \"chatConfig.agentPanel.delete.confirmPrefix\": \"Are you sure you want to delete\",\n \"chatConfig.agentPanel.delete.confirmSuffix\": \"? This action cannot be undone.\",\n \"chatConfig.agentPanel.deleteFailed\": \"Failed to delete assistant\",\n \"chatConfig.createAssistant.title\": \"Create New Assistant\",\n \"chatConfig.createAssistant.createExtend\": \"Create (Extend)\",\n \"chatConfig.createAssistant.startLearning\": \"Start Learning\",\n \"chatConfig.createAssistant.parentAgent\": \"Parent Agent\",\n \"chatConfig.createAssistant.inheritHint\": \"Fields left unchanged will be inherited from the parent agent.\",\n \"chatConfig.createAssistant.learnHint\": \"Describe what the agent should do.\",\n \"chatConfig.createAssistant.referenceFiles\": \"Reference Files\",\n \"chatConfig.createAssistant.referenceFilesHint\": \"Optional — uploaded to the shared training workspace and attached to the learning round; the architect reads them as round material.\",\n \"chatConfig.createAssistant.field.key\": \"Key (ID)\",\n \"chatConfig.createAssistant.field.name\": \"Name\",\n \"chatConfig.createAssistant.field.description\": \"Description\",\n \"chatConfig.createAssistant.field.agentType\": \"Agent Type\",\n \"chatConfig.createAssistant.field.connectionMode\": \"Connection Mode\",\n \"chatConfig.createAssistant.mode.remoteUrl\": \"Remote URL\",\n \"chatConfig.createAssistant.mode.localManaged\": \"Local Managed\",\n \"chatConfig.createAssistant.field.template\": \"Template\",\n \"chatConfig.createAssistant.templatePlaceholder\": \"Choose a template...\",\n \"chatConfig.createAssistant.noTemplates\": \"No templates. Use \\\"Custom Command\\\" below.\",\n \"chatConfig.createAssistant.customCommand\": \"+ Custom Command\",\n \"chatConfig.createAssistant.hideCustomCommand\": \"- Hide Custom Command\",\n \"chatConfig.createAssistant.field.executable\": \"Executable\",\n \"chatConfig.createAssistant.field.arguments\": \"Arguments\",\n \"chatConfig.createAssistant.field.workingDirectory\": \"Working directory\",\n \"chatConfig.createAssistant.field.agentCardUrl\": \"Agent Card URL\",\n \"chatConfig.createAssistant.field.apiKeyOptional\": \"API Key (optional)\",\n \"chatConfig.createAssistant.apiKeyPlaceholder\": \"API key for authentication\",\n \"chatConfig.createAssistant.field.timeout\": \"Timeout (ms)\",\n \"chatConfig.createAssistant.field.systemPrompt\": \"System Prompt\",\n \"chatConfig.createAssistant.field.systemPromptInherit\": \"System Prompt (leave unchanged to inherit from parent)\",\n \"chatConfig.createAssistant.systemPromptInheritPlaceholder\": \"Leave empty to inherit parent's prompt, or enter a new prompt to override...\",\n \"chatConfig.createAssistant.systemPromptPlaceholder\": \"Enter the system prompt for this agent...\",\n \"chatConfig.createAssistant.subAgents\": \"Sub-Agents\",\n \"chatConfig.createAssistant.descriptionPlaceholder\": \"Enter a description for this assistant...\",\n \"chatConfig.createAssistant.typeDesc.react\": \"Executor: Directly executes tasks using tools. Best for single-step operations like search, code execution, and data retrieval.\",\n \"chatConfig.createAssistant.typeDesc.deepAgent\": \"Orchestrator: Manages a sequential todo list to plan and assign todo items to sub-agents. Best for structured multi-step workflows.\",\n \"chatConfig.createAssistant.typeDesc.team\": \"Team: Creates tasks with dependencies and dynamically spawns teammates. Like a swarm, teammates communicate via mailbox. Best for tasks requiring exploration and divergent thinking.\",\n \"chatConfig.createAssistant.typeDesc.processing\": \"Workflow: Enforces a fixed workflow topology by delegating to sub-agents in a predefined order. Best for deterministic multi-step processes with validated delegation paths.\",\n \"chatConfig.createAssistant.typeDesc.a2aRemote\": \"A2A Remote: Delegates to an external A2A-compatible agent server. Use for local CLI tools (Claude Code, Codex, OpenCode) or remote agents.\",\n \"chatConfig.createAssistant.validation.keyRequired\": \"Please enter a unique key\",\n \"chatConfig.createAssistant.validation.keyPattern\": \"Key must start with a letter and contain only letters, numbers, underscores, or hyphens\",\n \"chatConfig.createAssistant.validation.nameRequired\": \"Please enter a name\",\n \"chatConfig.createAssistant.validation.descriptionRequired\": \"Please enter a description\",\n \"chatConfig.createAssistant.validation.systemPromptRequired\": \"Please enter a system prompt\",\n \"chatConfig.createAssistant.validation.urlRequired\": \"Please enter the A2A server URL\",\n \"chatConfig.createAssistant.validation.executableRequired\": \"Executable is required\",\n \"chatConfig.createAssistant.a2aUrlWarning\": \"Please enter an A2A server URL first\",\n \"chatConfig.createAssistant.connectedTo\": \"Connected to \\\"{{name}}\\\"\",\n \"chatConfig.createAssistant.connectionFailed\": \"Connection failed\",\n \"chatConfig.createAssistant.connectionTestFailed\": \"Connection test failed\",\n \"chatConfig.createAssistant.trainingGoalRequired\": \"Please describe the training goal\",\n \"chatConfig.createAssistant.noTrainingProject\": \"No shared training project available\",\n \"chatConfig.createAssistant.agentCreated\": \"Agent created — architect started building\",\n \"chatConfig.createAssistant.createdByExtending\": \"Assistant created by extending \\\"{{name}}\\\"\",\n \"chatConfig.createAssistant.created\": \"Assistant created successfully\",\n \"chatConfig.createAssistant.createFailed\": \"Failed to create assistant\",\n \"chatConfig.createAssistant.createError\": \"An error occurred while creating the assistant\",\n \"chatConfig.createAssistant.requiredFields\": \"Please complete the required fields: {{fields}}\",\n \"chatConfig.createAssistant.requiredFieldsGeneric\": \"Please complete the required fields\",\n \"chatConfig.createAssistant.noParentAgent\": \"No parent agent selected\",\n \"chatConfig.createAssistant.agentCreateFailed\": \"Failed to create agent\",\n \"chatConfig.createAssistant.cloneFetchFailed\": \"Failed to fetch sub-agent \\\"{{key}}\\\" for cloning\",\n \"chatConfig.createAssistant.cloneFailed\": \"Failed to clone sub-agent \\\"{{key}}\\\"\",\n \"chatConfig.createAssistant.cloneKeyRequired\": \"Please provide a key for the cloned sub-agent \\\"{{key}}\\\"\",\n \"chatConfig.createAssistant.cloneKeyInvalid\": \"Invalid key \\\"{{key}}\\\" for cloned sub-agent \\\"{{originalKey}}\\\". Key must start with a letter and contain only letters, numbers, underscores, or hyphens.\",\n \"chatConfig.parentAgent.selectPlaceholder\": \"Select a parent agent to extend...\",\n \"chatConfig.settings.defaultConnectionName\": \"Default\",\n \"chatConfig.settings.serverNamePlaceholder\": \"e.g., Production Server\",\n \"chatConfig.settings.title\": \"Settings\",\n \"chatConfig.settings.menu.environment\": \"Environment Variables\",\n \"chatConfig.settings.menu.models\": \"Model Configuration\",\n \"chatConfig.settings.menu.environment.desc\": \"Manage environment variables for the gateway server\",\n \"chatConfig.settings.menu.models.desc\": \"Configure the gateway-wide default model registry\",\n \"chatConfig.settings.saveConfiguration\": \"Save Configuration\",\n \"chatConfig.settings.addServer\": \"Add Server\",\n \"chatConfig.settings.addNewServer\": \"Add New Server\",\n \"chatConfig.settings.serverName\": \"Server Name\",\n \"chatConfig.settings.serverNameHint\": \"Optional: Leave empty to use URL as name\",\n \"chatConfig.settings.serverUrl\": \"Server URL *\",\n \"chatConfig.settings.serverUrlHint\": \"Enter the full URL of the gateway server\",\n \"chatConfig.settings.apiKey\": \"API Key\",\n \"chatConfig.settings.apiKeyPlaceholder\": \"Optional: Enter API key for authentication\",\n \"chatConfig.settings.apiKeyHint\": \"Optional: API key for server authentication\",\n \"chatConfig.settings.pleaseEnterServerUrl\": \"Please enter a server URL\",\n \"chatConfig.settings.serverAdded\": \"Server added successfully\",\n \"chatConfig.settings.serverDeleted\": \"Server deleted\",\n \"chatConfig.settings.connectFirst\": \"Please connect to a server first\",\n \"chatConfig.settings.loadConfigFailed\": \"Failed to load current configuration\",\n \"chatConfig.settings.saveFailed\": \"Failed to save configuration\",\n \"chatConfig.settings.restartWarning\": \"Configuration saved. Please restart the server for {{services}} to take effect.\",\n \"chatConfig.settings.savedApplied\": \"Configuration saved and applied successfully\",\n \"chatConfig.settings.modelSaved\": \"Model configuration saved and registered successfully\",\n \"chatConfig.settings.modelSaveFailed\": \"Failed to save model configuration\",\n \"chatConfig.settings.alert.title\": \"Configuration Effect\",\n \"chatConfig.settings.alert.immediate\": \"Immediately effective:\",\n \"chatConfig.settings.alert.restart\": \"Requires restart:\",\n \"chatConfig.settings.alert.restartDetail\": \"PORT (server must be restarted to change port)\",\n \"chatConfig.settings.envHint\": \"Configure environment variables in .env format (key=value). One variable per line. Leave password fields empty to keep current values.\",\n \"chatConfig.settings.modelsHint\": \"Configure model lattices. Each model will be registered with the provided key and can be used by agents.\",\n \"chatConfig.settings.model\": \"Model {{index}}\",\n \"chatConfig.settings.remove\": \"Remove\",\n \"chatConfig.settings.field.key\": \"Key *\",\n \"chatConfig.settings.field.keyHint\": \"Unique identifier for this model\",\n \"chatConfig.settings.field.provider\": \"Provider *\",\n \"chatConfig.settings.field.modelName\": \"Model Name *\",\n \"chatConfig.settings.field.apiKeyHintStored\": \"A key is stored on the server and is never sent back. Leave blank to keep it, or type a new one to replace it.\",\n \"chatConfig.settings.field.apiKeyHintNew\": \"API key for the model provider. Leave empty to use environment variable.\",\n \"chatConfig.settings.apiKeyPlaceholderConfigured\": \"Configured — leave blank to keep\",\n \"chatConfig.settings.apiKeyPlaceholderNew\": \"Enter your API key\",\n \"chatConfig.settings.field.baseUrl\": \"Base URL\",\n \"chatConfig.settings.field.baseUrlHint\": \"Optional custom base URL for the API\",\n \"chatConfig.settings.field.streaming\": \"Enable Streaming\",\n \"chatConfig.settings.field.maxTokens\": \"Max Tokens\",\n \"chatConfig.settings.field.temperature\": \"Temperature\",\n \"chatConfig.settings.addModel\": \"+ Add Model\",\n \"chatConfig.settings.connecting\": \"Connecting...\",\n \"chatConfig.settings.connectingTo\": \"Connecting to {{url}}\",\n \"chatConfig.settings.notConnected\": \"Not Connected\",\n \"chatConfig.settings.connectFailedDetail\": \"Failed to connect to {{url}}. Please check the server URL and try again.\",\n \"chatConfig.settings.clickReconnect\": \"Click \\\"Reconnect\\\" to connect to {{url}}\",\n \"chatConfig.settings.reconnect\": \"Reconnect\",\n \"chatConfig.settings.error.serverError\": \"Server returned an error\",\n \"chatConfig.settings.error.timeout\": \"Connection timeout\",\n \"chatConfig.settings.error.connectFailed\": \"Failed to connect to server\",\n \"chatConfig.paChannel.title\": \"Connect Channels\",\n \"chatConfig.paChannel.channels\": \"Channels\",\n \"chatConfig.paChannel.noChannels\": \"No channels yet\",\n \"chatConfig.paChannel.connect\": \"Connect\",\n \"chatConfig.paChannel.selectHint\": \"Select a channel from the left or add a new one\",\n \"chatConfig.paChannel.chooseType\": \"Choose Channel Type\",\n \"chatConfig.paChannel.editChannel\": \"Edit Channel\",\n \"chatConfig.paChannel.newChannel\": \"New {{channel}}\",\n \"chatConfig.paChannel.channel.lark\": \"Feishu\",\n \"chatConfig.paChannel.channel.wechat\": \"WeChat\",\n \"chatConfig.paChannel.channel.wecom\": \"WeCom\",\n \"chatConfig.paChannel.wechatBot\": \"WeChat Bot\",\n \"chatConfig.paChannel.feishuBot\": \"Feishu Bot\",\n \"chatConfig.paChannel.wecomBot\": \"WeCom Bot\",\n \"chatConfig.paChannel.field.botId\": \"Bot ID\",\n \"chatConfig.paChannel.field.secret\": \"Secret\",\n \"chatConfig.paChannel.placeholder.botId\": \"Bot ID from the WeCom admin console\",\n \"chatConfig.paChannel.placeholder.secret\": \"Long-connection Secret from the WeCom admin console\",\n \"chatConfig.paChannel.wecomConnectHint\": \"Uses the smart-bot long-connection (API) mode — no public callback URL; the gateway maintains the connection.\",\n \"chatConfig.paChannel.validation.botIdRequired\": \"Bot ID is required\",\n \"chatConfig.paChannel.validation.secretRequired\": \"Secret is required\",\n \"chatConfig.paChannel.field.channelType\": \"Channel Type\",\n \"chatConfig.paChannel.field.displayName\": \"Display Name\",\n \"chatConfig.paChannel.field.appId\": \"App ID\",\n \"chatConfig.paChannel.field.appSecret\": \"App Secret\",\n \"chatConfig.paChannel.field.verificationToken\": \"Verification Token\",\n \"chatConfig.paChannel.field.encryptKey\": \"Encrypt Key\",\n \"chatConfig.paChannel.field.botToken\": \"Bot Token\",\n \"chatConfig.paChannel.field.uin\": \"UIN\",\n \"chatConfig.paChannel.enabled\": \"Enabled\",\n \"chatConfig.paChannel.listenerActive\": \"Listener service is active\",\n \"chatConfig.paChannel.listenerStopped\": \"Listener service is stopped\",\n \"chatConfig.paChannel.anyoneCanMessage\": \"Anyone can message\",\n \"chatConfig.paChannel.anyoneCanMessageHint\": \"When enabled, anyone with access to this channel can chat with your assistant\",\n \"chatConfig.paChannel.whoCanChat\": \"Who can chat\",\n \"chatConfig.paChannel.whoCanChatHint\": \"Only people you add here can message your assistant\",\n \"chatConfig.paChannel.noContacts\": \"No contacts added yet\",\n \"chatConfig.paChannel.addContact\": \"Add Contact\",\n \"chatConfig.paChannel.add\": \"Add\",\n \"chatConfig.paChannel.required\": \"Required\",\n \"chatConfig.paChannel.placeholder.wechatOpenId\": \"WeChat Open ID\",\n \"chatConfig.paChannel.placeholder.feishuOpenId\": \"Feishu Open ID\",\n \"chatConfig.paChannel.placeholder.wecomUserId\": \"WeCom User ID\",\n \"chatConfig.paChannel.placeholder.displayName\": \"Display name (optional)\",\n \"chatConfig.paChannel.placeholder.appSecret\": \"Your app secret\",\n \"chatConfig.paChannel.placeholder.optional\": \"Optional\",\n \"chatConfig.paChannel.placeholder.botToken\": \"Auto-filled after QR scan\",\n \"chatConfig.paChannel.placeholder.uin\": \"Auto-filled from QR login\",\n \"chatConfig.paChannel.addBindingHint\": \"Once saved, come back here to add the people you'd like to chat with.\",\n \"chatConfig.paChannel.removeChannel\": \"Remove this channel?\",\n \"chatConfig.paChannel.removeChannelDesc\": \"All bindings for this installation will also be lost.\",\n \"chatConfig.paChannel.save\": \"Save\",\n \"chatConfig.paChannel.bindingAdded\": \"Binding added\",\n \"chatConfig.paChannel.bindingAddFailed\": \"Failed to add binding\",\n \"chatConfig.paChannel.bindingRemoved\": \"Binding removed\",\n \"chatConfig.paChannel.bindingRemoveFailed\": \"Failed to remove binding\",\n \"chatConfig.paChannel.bindingsLoadFailed\": \"Failed to load bindings\",\n \"chatConfig.paChannel.installationsLoadFailed\": \"Failed to load channel installations\",\n \"chatConfig.paChannel.channelEnabled\": \"Channel enabled\",\n \"chatConfig.paChannel.channelDisabled\": \"Channel disabled\",\n \"chatConfig.paChannel.toggleFailed\": \"Failed to toggle channel\",\n \"chatConfig.paChannel.installationUpdated\": \"Installation updated\",\n \"chatConfig.paChannel.installationUpdateFailed\": \"Failed to update installation\",\n \"chatConfig.paChannel.installationCreated\": \"Installation created\",\n \"chatConfig.paChannel.installationCreateFailed\": \"Failed to create installation\",\n \"chatConfig.paChannel.installationSaveFailed\": \"Failed to save installation\",\n \"chatConfig.paChannel.installationDeleted\": \"Installation deleted\",\n \"chatConfig.paChannel.installationDeleteFailed\": \"Failed to delete installation\",\n \"chatConfig.paChannel.addUsersHint\": \"Now add users who can access this channel\",\n \"chatConfig.paChannel.validation.appIdRequired\": \"App ID is required\",\n \"chatConfig.paChannel.validation.appSecretRequired\": \"App Secret is required\",\n \"chatConfig.paChannel.validation.botTokenRequired\": \"Bot Token is required\",\n \"chatConfig.paChannel.qr.hint\": \"Scan the QR code with WeChat to get a bot token\",\n \"chatConfig.paChannel.qr.get\": \"Get QR Code\",\n \"chatConfig.paChannel.qr.generating\": \"Generating QR code...\",\n \"chatConfig.paChannel.qr.scan\": \"Scan with WeChat\",\n \"chatConfig.paChannel.qr.scanned\": \"Scanned! Confirm on your phone...\",\n \"chatConfig.paChannel.qr.expiresIn\": \"Expires in {{time}}\",\n \"chatConfig.paChannel.qr.expired\": \"QR code expired\",\n \"chatConfig.paChannel.qr.refreshStatus\": \"Refresh Status\",\n \"chatConfig.paChannel.qr.loginConfirmed\": \"Login confirmed!\",\n \"chatConfig.paChannel.qr.tokenFilled\": \"Bot token has been filled automatically\",\n \"chatConfig.paChannel.qr.expiredGetNew\": \"QR code expired. Get a new one.\",\n \"chatConfig.paChannel.qr.retry\": \"Retry\",\n \"chatConfig.paChannel.qr.loadFailed\": \"Failed to load QR code\",\n \"chatConfig.paChannel.qr.getFailed\": \"Failed to get QR code\",\n \"chatConfig.paChannel.qr.statusFailed\": \"Failed to check QR status\"\n }\n}\n","{\n \"messages\": {\n \"chatConfig.field.name\": \"名称\",\n \"chatConfig.field.description\": \"描述\",\n \"chatConfig.field.displayName\": \"显示名称\",\n \"chatConfig.field.connectionKey\": \"连接 Key\",\n \"chatConfig.field.host\": \"主机\",\n \"chatConfig.field.port\": \"端口\",\n \"chatConfig.field.username\": \"用户名\",\n \"chatConfig.field.password\": \"密码\",\n \"chatConfig.field.serverUrl\": \"服务器 URL\",\n \"chatConfig.field.apiKey\": \"API Key\",\n \"chatConfig.field.optionalDescription\": \"可选描述\",\n \"chatConfig.config.updated\": \"配置已更新\",\n \"chatConfig.config.created\": \"配置已创建\",\n \"chatConfig.config.deleted\": \"配置已删除\",\n \"chatConfig.config.deleteFailed\": \"删除配置失败\",\n \"chatConfig.config.saveFailed\": \"保存配置失败\",\n \"chatConfig.config.missingId\": \"无法删除:缺少配置 id\",\n \"chatConfig.agentType.executor\": \"执行器\",\n \"chatConfig.agentType.orchestrator\": \"编排器\",\n \"chatConfig.agentType.team\": \"团队\",\n \"chatConfig.agentType.workflow\": \"工作流\",\n \"chatConfig.agentType.a2aRemote\": \"A2A 远程\",\n \"chatConfig.keyValue.key\": \"键\",\n \"chatConfig.keyValue.value\": \"值\",\n \"chatConfig.keyValue.add\": \"添加\",\n \"chatConfig.keyValue.removeEntry\": \"移除条目\",\n \"chatConfig.connectionList.empty\": \"没有“{{type}}”连接\",\n \"chatConfig.connectionList.selectAll\": \"全选\",\n \"chatConfig.connectionList.deselectAll\": \"取消全选\",\n \"chatConfig.connectionList.clear\": \"清空\",\n \"chatConfig.connectionsHub.title\": \"插件\",\n \"chatConfig.connectionsHub.tab.all\": \"全部({{count}})\",\n \"chatConfig.connectionsHub.tab.connections\": \"连接({{count}})\",\n \"chatConfig.connectionsHub.tab.tools\": \"工具({{count}})\",\n \"chatConfig.connectionsHub.empty.connections.title\": \"没有连接类插件\",\n \"chatConfig.connectionsHub.empty.connections.description\": \"没有注册支持连接管理的插件\",\n \"chatConfig.connectionsHub.empty.tools.title\": \"没有工具类插件\",\n \"chatConfig.connectionsHub.empty.tools.description\": \"没有注册纯工具类插件\",\n \"chatConfig.connectionsHub.empty.all.title\": \"没有插件\",\n \"chatConfig.connectionsHub.empty.all.description\": \"没有注册任何插件\",\n \"chatConfig.connectionsHub.capability.test\": \"测试\",\n \"chatConfig.connectionsHub.capability.discover\": \"发现\",\n \"chatConfig.connectionsHub.capability.connection\": \"连接\",\n \"chatConfig.connectionsHub.capability.tool\": \"工具\",\n \"chatConfig.subAgentInherit.hint\": \"选择如何处理来自父智能体的每个子智能体:\",\n \"chatConfig.subAgentInherit.clone\": \"克隆为新智能体\",\n \"chatConfig.subAgentInherit.reuse\": \"复用\",\n \"chatConfig.subAgentInherit.cloneKeyPlaceholder\": \"输入克隆智能体的 key\",\n \"chatConfig.project.create.title\": \"新建项目\",\n \"chatConfig.project.field.name\": \"项目名称\",\n \"chatConfig.project.field.namePlaceholder\": \"输入项目名称\",\n \"chatConfig.project.validation.nameRequired\": \"请输入项目名称\",\n \"chatConfig.project.validation.nameMax\": \"项目名称不能超过 50 个字符\",\n \"chatConfig.project.field.visibility\": \"可见性\",\n \"chatConfig.project.kind.business\": \"业务\",\n \"chatConfig.project.kind.business.description\": \"仅受邀成员可见。\",\n \"chatConfig.project.kind.public\": \"公开\",\n \"chatConfig.project.kind.public.description\": \"本工作区内所有人可见。\",\n \"chatConfig.project.field.description\": \"描述(可选)\",\n \"chatConfig.project.field.descriptionPlaceholder\": \"输入项目描述\",\n \"chatConfig.workflow.create.title\": \"新建工作流\",\n \"chatConfig.workflow.create.titleProcessing\": \"新建处理工作流\",\n \"chatConfig.workflow.field.purpose\": \"用途\",\n \"chatConfig.workflow.field.purposePlaceholder\": \"描述这个工作流要做什么。名称和 key 会自动生成。\",\n \"chatConfig.workflow.validation.purposeRequired\": \"请描述工作流的用途\",\n \"chatConfig.workflow.middleware.topologyName\": \"拓扑\",\n \"chatConfig.workflow.middleware.topologyDescription\": \"工作流拓扑\",\n \"chatConfig.skill.create.title\": \"新建技能\",\n \"chatConfig.skill.edit.title\": \"编辑技能\",\n \"chatConfig.skill.created\": \"技能创建成功\",\n \"chatConfig.skill.updated\": \"技能更新成功\",\n \"chatConfig.skill.createFailed\": \"创建技能失败\",\n \"chatConfig.skill.updateFailed\": \"更新技能失败\",\n \"chatConfig.skill.createError\": \"创建技能时发生错误\",\n \"chatConfig.skill.updateError\": \"更新技能时发生错误\",\n \"chatConfig.skill.field.name\": \"名称\",\n \"chatConfig.skill.field.description\": \"描述\",\n \"chatConfig.skill.field.license\": \"许可证\",\n \"chatConfig.skill.field.compatibility\": \"兼容性\",\n \"chatConfig.skill.field.metadata\": \"元数据\",\n \"chatConfig.skill.field.content\": \"内容\",\n \"chatConfig.skill.placeholder.description\": \"描述\",\n \"chatConfig.skill.placeholder.license\": \"许可证\",\n \"chatConfig.skill.placeholder.compatibility\": \"兼容性\",\n \"chatConfig.skill.placeholder.content\": \"内容\",\n \"chatConfig.skill.validation.nameRequired\": \"请输入技能名称\",\n \"chatConfig.skill.validation.namePattern\": \"名称必须为小写字母数字,并使用单个连字符分隔(例如 'my-skill')\",\n \"chatConfig.skill.validation.nameLength\": \"名称长度必须为 1-64 个字符\",\n \"chatConfig.skill.validation.descriptionRequired\": \"请输入技能描述\",\n \"chatConfig.skill.metadata.add\": \"添加\",\n \"chatConfig.skill.metadata.empty\": \"还没有元数据。使用「添加」创建一条。\",\n \"chatConfig.skill.metadata.row\": \"元数据 {{index}}\",\n \"chatConfig.skill.action.save\": \"保存修改\",\n \"chatConfig.skill.action.create\": \"创建技能\",\n \"chatConfig.skillPicker.title\": \"技能\",\n \"chatConfig.skillPicker.selectTitle\": \"选择技能\",\n \"chatConfig.skillPicker.empty\": \"暂无可用技能\",\n \"chatConfig.databasePicker.title\": \"数据库\",\n \"chatConfig.databasePicker.selectTitle\": \"选择数据库\",\n \"chatConfig.databasePicker.empty\": \"暂无可用数据库\",\n \"chatConfig.channelInstall.title\": \"渠道接入\",\n \"chatConfig.channelInstall.add\": \"添加接入\",\n \"chatConfig.channelInstall.editTitle\": \"编辑接入\",\n \"chatConfig.channelInstall.addTitle\": \"添加接入\",\n \"chatConfig.channelInstall.empty.title\": \"暂无渠道接入\",\n \"chatConfig.channelInstall.empty.description\": \"点击「添加接入」创建一个\",\n \"chatConfig.channelInstall.unsupported\": \"暂不支持该渠道的配置界面\",\n \"chatConfig.channelInstall.loadFailed\": \"加载渠道接入失败\",\n \"chatConfig.channelInstall.deleted\": \"接入已删除\",\n \"chatConfig.channelInstall.deleteFailed\": \"删除接入失败\",\n \"chatConfig.channelInstall.updated\": \"接入已更新\",\n \"chatConfig.channelInstall.updateFailed\": \"更新接入失败\",\n \"chatConfig.channelInstall.created\": \"接入已创建\",\n \"chatConfig.channelInstall.createFailed\": \"创建接入失败\",\n \"chatConfig.channelInstall.delete.title\": \"删除渠道接入\",\n \"chatConfig.channelInstall.delete.description\": \"确定要删除「{{name}}」吗?\",\n \"chatConfig.channelInstall.field.channel\": \"渠道\",\n \"chatConfig.channelInstall.field.name\": \"名称\",\n \"chatConfig.channelInstall.field.appId\": \"App ID\",\n \"chatConfig.channelInstall.field.appSecret\": \"App Secret\",\n \"chatConfig.channelInstall.field.verificationToken\": \"Verification Token\",\n \"chatConfig.channelInstall.field.encryptKey\": \"Encrypt Key\",\n \"chatConfig.channelInstall.validation.appIdRequired\": \"App ID 为必填项\",\n \"chatConfig.channelInstall.validation.appSecretRequired\": \"App Secret 为必填项\",\n \"chatConfig.connection.loadFailed\": \"加载连接失败\",\n \"chatConfig.connection.testPassed\": \"连接测试通过:{{message}}\",\n \"chatConfig.connection.testFailed\": \"连接测试失败\",\n \"chatConfig.connection.testError\": \"测试连接失败\",\n \"chatConfig.connection.missingKey\": \"无法删除:缺少连接 key\",\n \"chatConfig.connection.deleted\": \"连接已删除\",\n \"chatConfig.connection.deleteFailed\": \"删除连接失败\",\n \"chatConfig.connection.noSchema.title\": \"未定义连接结构\",\n \"chatConfig.connection.noSchema.description\": \"该插件类型不支持连接管理\",\n \"chatConfig.connection.action.test\": \"测试\",\n \"chatConfig.connection.status.online\": \"在线\",\n \"chatConfig.connection.status.offline\": \"离线\",\n \"chatConfig.connection.updated\": \"更新于 {{date}}\",\n \"chatConfig.connection.add\": \"添加连接\",\n \"chatConfig.connection.empty.title\": \"尚未配置连接\",\n \"chatConfig.connection.empty.description\": \"点击「添加连接」创建一个\",\n \"chatConfig.connection.delete.title\": \"删除连接\",\n \"chatConfig.connection.delete.confirm\": \"删除「{{name}}」?\",\n \"chatConfig.connectionForm.testRequestFailed\": \"测试请求失败\",\n \"chatConfig.connectionForm.keyRequired\": \"连接 key 为必填项\",\n \"chatConfig.connectionForm.updated\": \"连接已更新\",\n \"chatConfig.connectionForm.created\": \"连接已创建\",\n \"chatConfig.connectionForm.saveFailed\": \"保存连接失败\",\n \"chatConfig.connectionForm.selectPlaceholder\": \"选择{{title}}\",\n \"chatConfig.connectionForm.enterPlaceholder\": \"输入{{title}}\",\n \"chatConfig.connectionForm.step.details\": \"连接详情\",\n \"chatConfig.connectionForm.step.verify\": \"验证\",\n \"chatConfig.connectionForm.editTitle\": \"编辑 {{type}} 连接\",\n \"chatConfig.connectionForm.addTitle\": \"添加 {{type}} 连接\",\n \"chatConfig.connectionForm.save\": \"保存修改\",\n \"chatConfig.connectionForm.finish\": \"完成\",\n \"chatConfig.connectionForm.testing\": \"正在测试连接……\",\n \"chatConfig.connectionForm.availableResources\": \"可用资源\",\n \"chatConfig.connectionForm.selectedCount\": \"(已选 {{count}} 项)\",\n \"chatConfig.connectionForm.retryTest\": \"重新测试\",\n \"chatConfig.database.title\": \"数据库连接\",\n \"chatConfig.database.loadFailed\": \"加载数据库配置失败\",\n \"chatConfig.database.testSuccess\": \"已成功连接到 {{host}}({{latency}}ms)\",\n \"chatConfig.database.connectionFailed\": \"连接失败:{{error}}\",\n \"chatConfig.database.empty.title\": \"暂无数据库配置\",\n \"chatConfig.database.keyAndId\": \"Key:{{key}} | ID:{{id}}\",\n \"chatConfig.database.connectionStringMode\": \"连接串模式\",\n \"chatConfig.database.testing\": \"测试中……\",\n \"chatConfig.database.editTitle\": \"编辑数据库配置\",\n \"chatConfig.database.addTitle\": \"添加数据库配置\",\n \"chatConfig.database.field.type\": \"数据库类型\",\n \"chatConfig.database.field.connectionString\": \"连接串\",\n \"chatConfig.database.priorityMode\": \"优先模式\",\n \"chatConfig.database.note.important\": \"重要:\",\n \"chatConfig.database.note.whenProvided\": \"提供连接串时,它会\",\n \"chatConfig.database.note.priorityOver\": \"优先于\",\n \"chatConfig.database.note.suffix\": \"下方所有单独连接参数。后端采用相同的优先级逻辑。\",\n \"chatConfig.database.field.individualParams\": \"单独连接参数\",\n \"chatConfig.database.ignoredWhenString\": \"设置连接串后该项会被忽略\",\n \"chatConfig.database.field.name\": \"数据库名称\",\n \"chatConfig.database.delete.title\": \"删除数据库配置\",\n \"chatConfig.database.delete.description\": \"确定要删除「{{name}}」吗?\",\n \"chatConfig.metrics.title\": \"指标服务器连接\",\n \"chatConfig.metrics.loadFailed\": \"加载指标配置失败\",\n \"chatConfig.metrics.testSuccess\": \"已成功连接到 {{serverUrl}}({{latency}}ms)\",\n \"chatConfig.metrics.empty.title\": \"暂无指标配置\",\n \"chatConfig.metrics.delete.title\": \"删除指标配置\",\n \"chatConfig.metrics.step.basic\": \"基本信息\",\n \"chatConfig.metrics.step.dataSources\": \"选择数据源\",\n \"chatConfig.metrics.serverUrlRequired\": \"请输入服务器 URL\",\n \"chatConfig.metrics.fetchDataSourcesFailed\": \"获取数据源失败\",\n \"chatConfig.metrics.editTitle\": \"编辑指标配置\",\n \"chatConfig.metrics.addTitle\": \"添加指标配置\",\n \"chatConfig.metrics.field.serverType\": \"服务器类型\",\n \"chatConfig.metrics.field.authentication\": \"认证\",\n \"chatConfig.metrics.optional\": \"可选\",\n \"chatConfig.metrics.placeholder.apiKey\": \"用于认证的可选 API Key\",\n \"chatConfig.metrics.placeholder.username\": \"用于基本认证的可选用户名\",\n \"chatConfig.metrics.placeholder.password\": \"用于基本认证的可选密码\",\n \"chatConfig.metrics.fetchingDataSources\": \"正在获取数据源……\",\n \"chatConfig.metrics.field.dataSources\": \"数据源\",\n \"chatConfig.metrics.selectedCount\": \"已选:{{count}}\",\n \"chatConfig.metrics.connected\": \"已连接\",\n \"chatConfig.metrics.metricsAvailable\": \"共 {{count}} 个指标可用\",\n \"chatConfig.metrics.loadingMetrics\": \"正在加载指标……\",\n \"chatConfig.metrics.loadMetricsFailed\": \"加载指标失败\",\n \"chatConfig.metrics.selectDataSourceHint\": \"点击左侧的数据源查看其指标\",\n \"chatConfig.metrics.previous\": \"上一步\",\n \"chatConfig.metrics.save\": \"保存修改\",\n \"chatConfig.metrics.type.semantic\": \"语义\",\n \"chatConfig.metricsDataSource.select\": \"选择数据源\",\n \"chatConfig.metricsDataSource.noneAvailable\": \"暂无可用数据源\",\n \"chatConfig.metricsDataSource.title\": \"选择指标数据源\",\n \"chatConfig.metricsDataSource.empty\": \"暂无指标数据源\",\n \"chatConfig.metricsDataSource.disconnected\": \"未连接\",\n \"chatConfig.metricsDataSource.selected\": \"已选\",\n \"chatConfig.mcp.title\": \"MCP 服务器连接\",\n \"chatConfig.mcp.loadFailed\": \"加载 MCP 服务器配置失败\",\n \"chatConfig.mcp.testSuccess\": \"已成功连接({{latency}}ms)\",\n \"chatConfig.mcp.disconnected\": \"{{name}} 已断开连接\",\n \"chatConfig.mcp.connected\": \"{{name}} 已连接\",\n \"chatConfig.mcp.connectFailed\": \"连接失败\",\n \"chatConfig.mcp.toggleFailed\": \"切换连接状态失败\",\n \"chatConfig.mcp.action.test\": \"测试连接\",\n \"chatConfig.mcp.toolsCount\": \"{{count}} 个工具\",\n \"chatConfig.mcp.empty.title\": \"暂无 MCP 服务器配置\",\n \"chatConfig.mcp.delete.title\": \"删除 MCP 服务器配置\",\n \"chatConfig.mcp.step.connection\": \"连接\",\n \"chatConfig.mcp.step.tools\": \"选择工具\",\n \"chatConfig.mcp.commandRequired\": \"请输入 stdio 传输方式所需的命令\",\n \"chatConfig.mcp.urlRequired\": \"请输入 HTTP/SSE 传输方式所需的 URL\",\n \"chatConfig.mcp.fetchToolsFailed\": \"获取工具失败\",\n \"chatConfig.mcp.fetchToolsError\": \"从 MCP 服务器获取工具失败\",\n \"chatConfig.mcp.editTitle\": \"编辑 MCP 服务器配置\",\n \"chatConfig.mcp.addTitle\": \"添加 MCP 服务器配置\",\n \"chatConfig.mcp.field.transport\": \"传输类型\",\n \"chatConfig.mcp.transport.stdio\": \"STDIO(命令)\",\n \"chatConfig.mcp.transport.http\": \"HTTP\",\n \"chatConfig.mcp.transport.sse\": \"SSE(Server-Sent Events)\",\n \"chatConfig.mcp.field.command\": \"命令\",\n \"chatConfig.mcp.field.args\": \"参数(每行一个)\",\n \"chatConfig.mcp.field.env\": \"环境变量\",\n \"chatConfig.mcp.envHint\": \"传入服务器进程(例如 API 令牌)。值会加密存储。\",\n \"chatConfig.mcp.addVariable\": \"添加变量\",\n \"chatConfig.mcp.sseDeprecated\": \"MCP 规范已废弃 SSE —— 新服务器建议使用 Streamable HTTP(HTTP)。\",\n \"chatConfig.mcp.field.headers\": \"请求头\",\n \"chatConfig.mcp.headersHint\": \"随每个请求发送(例如用于认证的 Authorization)。值会加密存储。\",\n \"chatConfig.mcp.addHeader\": \"添加请求头\",\n \"chatConfig.mcp.advanced\": \"高级选项\",\n \"chatConfig.mcp.field.timeout\": \"超时时间(ms)\",\n \"chatConfig.mcp.field.retryAttempts\": \"重试次数\",\n \"chatConfig.mcp.connecting\": \"正在连接 MCP 服务器并获取工具……\",\n \"chatConfig.mcp.noTools\": \"暂无可用工具。请检查你的连接设置。\",\n \"chatConfig.mcp.availableTools\": \"可用工具\",\n \"chatConfig.mcp.selectedTools\": \"已选:{{selected}} / {{total}}\",\n \"chatConfig.mcp.parameters\": \"参数:{{list}}\",\n \"chatConfig.mcp.previous\": \"上一步\",\n \"chatConfig.mcp.save\": \"保存修改\",\n \"chatConfig.midForm.selectAll\": \"全选\",\n \"chatConfig.midForm.clear\": \"清空\",\n \"chatConfig.midForm.selectedOfTotal\": \"已选 {{selected}} / {{total}}\",\n \"chatConfig.midForm.tools\": \"工具\",\n \"chatConfig.midForm.skills.title\": \"技能库\",\n \"chatConfig.midForm.skills.search\": \"搜索技能……\",\n \"chatConfig.midForm.skills.empty\": \"暂无可用技能\",\n \"chatConfig.midForm.databases.title\": \"数据库\",\n \"chatConfig.midForm.databases.search\": \"搜索数据库……\",\n \"chatConfig.midForm.databases.empty\": \"暂无可用数据库\",\n \"chatConfig.midForm.metrics.title\": \"指标服务器\",\n \"chatConfig.midForm.metrics.search\": \"搜索服务器……\",\n \"chatConfig.midForm.metrics.empty\": \"暂无可用服务器\",\n \"chatConfig.midForm.collections.title\": \"集合\",\n \"chatConfig.midForm.collections.search\": \"搜索集合……\",\n \"chatConfig.midForm.collections.empty\": \"暂无可用集合\",\n \"chatConfig.midForm.topology.title\": \"依赖关系\",\n \"chatConfig.midForm.topology.edges\": \"{{count}} 条边\",\n \"chatConfig.midForm.topology.empty\": \"尚未定义依赖关系\",\n \"chatConfig.midForm.topology.addTitle\": \"添加依赖\",\n \"chatConfig.midForm.topology.fromPlaceholder\": \"源智能体 ID\",\n \"chatConfig.midForm.topology.toPlaceholder\": \"目标智能体 ID\",\n \"chatConfig.midForm.topology.purposePlaceholder\": \"用途(例如:归类发票字段)\",\n \"chatConfig.midForm.topology.addEdge\": \"添加边\",\n \"chatConfig.midForm.connections.title\": \"连接\",\n \"chatConfig.midForm.section.config\": \"配置\",\n \"chatConfig.midForm.section.resources\": \"资源授权\",\n \"chatConfig.midForm.section.tools\": \"工具授权\",\n \"chatConfig.midForm.enabled\": \"已启用\",\n \"chatConfig.midForm.disabled\": \"已禁用\",\n \"chatConfig.midForm.scope.global\": \"全局\",\n \"chatConfig.midForm.scope.agent\": \"智能体\",\n \"chatConfig.midForm.scope.project\": \"项目\",\n \"chatConfig.agentModal.title\": \"配置智能体\",\n \"chatConfig.agentModal.tab.basic\": \"基本\",\n \"chatConfig.agentModal.tab.tools\": \"工具\",\n \"chatConfig.agentModal.tab.skills\": \"技能\",\n \"chatConfig.agentModal.tab.subAgents\": \"子智能体\",\n \"chatConfig.agentModal.field.agentType\": \"智能体类型\",\n \"chatConfig.agentModal.field.systemPrompt\": \"系统提示词\",\n \"chatConfig.agentModal.systemPromptPlaceholder\": \"输入该智能体的系统提示词……\",\n \"chatConfig.agentModal.systemPromptHint\": \"定义智能体的行为、能力和约束\",\n \"chatConfig.agentModal.selectedOfTotal\": \"已选 {{selected}} / {{total}}\",\n \"chatConfig.agentModal.selectAll\": \"全选\",\n \"chatConfig.agentModal.deselectAll\": \"取消全选\",\n \"chatConfig.agentModal.noTools\": \"暂无可用工具\",\n \"chatConfig.agentModal.noSkills\": \"暂无可用技能\",\n \"chatConfig.agentModal.noOtherAgents\": \"暂无其他智能体\",\n \"chatConfig.agentModal.approve\": \"审批\",\n \"chatConfig.agentModal.noDescription\": \"暂无描述\",\n \"chatConfig.agentModal.hierarchy\": \"智能体层级\",\n \"chatConfig.agentModal.currentAgent\": \"当前智能体\",\n \"chatConfig.agentModal.currentTag\": \"当前\",\n \"chatConfig.agentModal.type.react\": \"React\",\n \"chatConfig.agentModal.type.deepAgent\": \"Deep Agent\",\n \"chatConfig.agentModal.type.workflow\": \"工作流\",\n \"chatConfig.agentModal.toolsCount\": \"{{count}} 个工具\",\n \"chatConfig.agentModal.skillsCount\": \"{{count}} 个技能\",\n \"chatConfig.agentModal.subAgentsCount\": \"{{count}} 个子智能体\",\n \"chatConfig.agentModal.structureTree\": \"结构树\",\n \"chatConfig.agentModal.tip\": \"提示\",\n \"chatConfig.agentModal.tipBody\": \"Deep Agent 类型允许你把任务委派给子智能体。在「子智能体」标签页中选择智能体来构建层级。\",\n \"chatConfig.agentModal.changesHint\": \"修改将更新智能体配置\",\n \"chatConfig.agentModal.saveConfiguration\": \"保存配置\",\n \"chatConfig.agentPanel.category.data\": \"数据与知识\",\n \"chatConfig.agentPanel.category.execution\": \"执行与交互\",\n \"chatConfig.agentPanel.category.workflow\": \"工作流与编排\",\n \"chatConfig.agentPanel.category.assistant\": \"助手与评测\",\n \"chatConfig.agentPanel.category.other\": \"其他\",\n \"chatConfig.agentPanel.nav.basic\": \"基本信息\",\n \"chatConfig.agentPanel.nav.prompt\": \"系统提示词\",\n \"chatConfig.agentPanel.nav.tools\": \"常用工具\",\n \"chatConfig.agentPanel.nav.capabilities\": \"能力\",\n \"chatConfig.agentPanel.nav.subAgents\": \"子智能体\",\n \"chatConfig.agentPanel.navAriaLabel\": \"智能体配置分区\",\n \"chatConfig.agentPanel.basic.title\": \"基本信息\",\n \"chatConfig.agentPanel.basic.desc\": \"该智能体的核心身份与行为\",\n \"chatConfig.agentPanel.field.name\": \"名称\",\n \"chatConfig.agentPanel.field.agentType\": \"智能体类型\",\n \"chatConfig.agentPanel.field.description\": \"描述\",\n \"chatConfig.agentPanel.validation.nameRequired\": \"请输入智能体名称\",\n \"chatConfig.agentPanel.validation.descriptionRequired\": \"请输入智能体描述\",\n \"chatConfig.agentPanel.placeholder.name\": \"输入智能体名称……\",\n \"chatConfig.agentPanel.placeholder.description\": \"输入智能体描述……\",\n \"chatConfig.agentPanel.typeDesc.react\": \"执行器:直接使用工具执行任务。适用于搜索、代码执行、数据检索等单步操作。\",\n \"chatConfig.agentPanel.typeDesc.deepAgent\": \"编排器:维护一份待办清单来规划并把任务分派给子智能体。适用于结构化的多步工作流。\",\n \"chatConfig.agentPanel.typeDesc.team\": \"团队:创建带依赖关系的任务并动态派生队友,队友之间通过信箱通信。适用于需要探索和发散思考的任务。\",\n \"chatConfig.agentPanel.typeDesc.processing\": \"工作流:按预定义的拓扑顺序委派给子智能体。适用于确定性的多步流程。\",\n \"chatConfig.agentPanel.prompt.title\": \"系统提示词\",\n \"chatConfig.agentPanel.prompt.desc\": \"定义智能体的行为、能力和约束\",\n \"chatConfig.agentPanel.prompt.expand\": \"展开\",\n \"chatConfig.agentPanel.prompt.placeholder\": \"输入该智能体的系统提示词……\",\n \"chatConfig.agentPanel.prompt.chars\": \"{{count}} 个字符\",\n \"chatConfig.agentPanel.tools.title\": \"常用工具\",\n \"chatConfig.agentPanel.tools.desc\": \"选择该智能体可以直接调用的工具\",\n \"chatConfig.agentPanel.tools.search\": \"搜索工具……\",\n \"chatConfig.agentPanel.tools.selected\": \"已选 {{selected}} / {{total}}\",\n \"chatConfig.agentPanel.subAgents.title\": \"子智能体\",\n \"chatConfig.agentPanel.subAgents.desc\": \"选择该智能体可以委派的子智能体\",\n \"chatConfig.agentPanel.subAgents.search\": \"搜索子智能体……\",\n \"chatConfig.agentPanel.subAgents.selected\": \"已选 {{selected}} / {{total}}\",\n \"chatConfig.agentPanel.noTools\": \"暂无可用工具\",\n \"chatConfig.agentPanel.noCapabilities\": \"暂无可用能力\",\n \"chatConfig.agentPanel.noOtherAgents\": \"暂无其他智能体\",\n \"chatConfig.agentPanel.noMatching\": \"没有匹配结果\",\n \"chatConfig.agentPanel.selectAll\": \"全选\",\n \"chatConfig.agentPanel.clear\": \"清空\",\n \"chatConfig.agentPanel.approve\": \"审批\",\n \"chatConfig.agentPanel.noDescription\": \"暂无描述\",\n \"chatConfig.agentPanel.configWorkbench\": \"配置工作台\",\n \"chatConfig.agentPanel.deleteAgent\": \"删除智能体\",\n \"chatConfig.agentPanel.loadingConfig\": \"正在加载智能体配置……\",\n \"chatConfig.agentPanel.footer.saveHint\": \"修改会保存到该智能体\",\n \"chatConfig.agentPanel.footer.viewing\": \"正在查看智能体配置\",\n \"chatConfig.agentPanel.done\": \"完成\",\n \"chatConfig.agentPanel.delete.title\": \"删除智能体\",\n \"chatConfig.agentPanel.delete.confirmPrefix\": \"确定要删除\",\n \"chatConfig.agentPanel.delete.confirmSuffix\": \"吗?此操作无法撤销。\",\n \"chatConfig.agentPanel.deleteFailed\": \"删除助手失败\",\n \"chatConfig.createAssistant.title\": \"新建助手\",\n \"chatConfig.createAssistant.createExtend\": \"创建(扩展)\",\n \"chatConfig.createAssistant.startLearning\": \"开始学习\",\n \"chatConfig.createAssistant.parentAgent\": \"父智能体\",\n \"chatConfig.createAssistant.inheritHint\": \"未修改的字段将继承自父智能体。\",\n \"chatConfig.createAssistant.learnHint\": \"描述该智能体应该做什么。\",\n \"chatConfig.createAssistant.referenceFiles\": \"参考文件\",\n \"chatConfig.createAssistant.referenceFilesHint\": \"可选 —— 会上传到共享训练工作区并附加到本轮学习;架构师会将其作为本轮材料读取。\",\n \"chatConfig.createAssistant.field.key\": \"Key(ID)\",\n \"chatConfig.createAssistant.field.name\": \"名称\",\n \"chatConfig.createAssistant.field.description\": \"描述\",\n \"chatConfig.createAssistant.field.agentType\": \"智能体类型\",\n \"chatConfig.createAssistant.field.connectionMode\": \"连接方式\",\n \"chatConfig.createAssistant.mode.remoteUrl\": \"远程 URL\",\n \"chatConfig.createAssistant.mode.localManaged\": \"本地托管\",\n \"chatConfig.createAssistant.field.template\": \"模板\",\n \"chatConfig.createAssistant.templatePlaceholder\": \"选择一个模板……\",\n \"chatConfig.createAssistant.noTemplates\": \"暂无模板。请使用下方的「自定义命令」。\",\n \"chatConfig.createAssistant.customCommand\": \"+ 自定义命令\",\n \"chatConfig.createAssistant.hideCustomCommand\": \"- 隐藏自定义命令\",\n \"chatConfig.createAssistant.field.executable\": \"可执行文件\",\n \"chatConfig.createAssistant.field.arguments\": \"参数\",\n \"chatConfig.createAssistant.field.workingDirectory\": \"工作目录\",\n \"chatConfig.createAssistant.field.agentCardUrl\": \"Agent Card URL\",\n \"chatConfig.createAssistant.field.apiKeyOptional\": \"API Key(可选)\",\n \"chatConfig.createAssistant.apiKeyPlaceholder\": \"用于认证的 API key\",\n \"chatConfig.createAssistant.field.timeout\": \"超时时间(ms)\",\n \"chatConfig.createAssistant.field.systemPrompt\": \"系统提示词\",\n \"chatConfig.createAssistant.field.systemPromptInherit\": \"系统提示词(保持不变则继承自父智能体)\",\n \"chatConfig.createAssistant.systemPromptInheritPlaceholder\": \"留空则继承父智能体的提示词,或输入新提示词以覆盖……\",\n \"chatConfig.createAssistant.systemPromptPlaceholder\": \"输入该智能体的系统提示词……\",\n \"chatConfig.createAssistant.subAgents\": \"子智能体\",\n \"chatConfig.createAssistant.descriptionPlaceholder\": \"输入该助手的描述……\",\n \"chatConfig.createAssistant.typeDesc.react\": \"执行器:直接使用工具执行任务。适用于搜索、代码执行、数据检索等单步操作。\",\n \"chatConfig.createAssistant.typeDesc.deepAgent\": \"编排器:维护一份顺序待办清单来规划并把待办项分派给子智能体。适用于结构化的多步工作流。\",\n \"chatConfig.createAssistant.typeDesc.team\": \"团队:创建带依赖关系的任务并动态派生出队友。如同蜂群,队友之间通过信箱通信。适用于需要探索和发散思考的任务。\",\n \"chatConfig.createAssistant.typeDesc.processing\": \"工作流:按预定义顺序委派给子智能体,从而强制固定的工作流拓扑。适用于有校验委派路径的确定性多步流程。\",\n \"chatConfig.createAssistant.typeDesc.a2aRemote\": \"A2A 远程:委派给外部的 A2A 兼容智能体服务器。适用于本地 CLI 工具(Claude Code、Codex、OpenCode)或远程智能体。\",\n \"chatConfig.createAssistant.validation.keyRequired\": \"请输入唯一的 key\",\n \"chatConfig.createAssistant.validation.keyPattern\": \"Key 必须以字母开头,且只能包含字母、数字、下划线或连字符\",\n \"chatConfig.createAssistant.validation.nameRequired\": \"请输入名称\",\n \"chatConfig.createAssistant.validation.descriptionRequired\": \"请输入描述\",\n \"chatConfig.createAssistant.validation.systemPromptRequired\": \"请输入系统提示词\",\n \"chatConfig.createAssistant.validation.urlRequired\": \"请输入 A2A 服务器 URL\",\n \"chatConfig.createAssistant.validation.executableRequired\": \"可执行文件为必填项\",\n \"chatConfig.createAssistant.a2aUrlWarning\": \"请先输入 A2A 服务器 URL\",\n \"chatConfig.createAssistant.connectedTo\": \"已连接到「{{name}}」\",\n \"chatConfig.createAssistant.connectionFailed\": \"连接失败\",\n \"chatConfig.createAssistant.connectionTestFailed\": \"连接测试失败\",\n \"chatConfig.createAssistant.trainingGoalRequired\": \"请描述训练目标\",\n \"chatConfig.createAssistant.noTrainingProject\": \"暂无共享训练项目\",\n \"chatConfig.createAssistant.agentCreated\": \"智能体已创建 —— 架构师开始构建\",\n \"chatConfig.createAssistant.createdByExtending\": \"已通过扩展「{{name}}」创建助手\",\n \"chatConfig.createAssistant.created\": \"助手创建成功\",\n \"chatConfig.createAssistant.createFailed\": \"创建助手失败\",\n \"chatConfig.createAssistant.createError\": \"创建助手时发生错误\",\n \"chatConfig.createAssistant.requiredFields\": \"请填写必填字段:{{fields}}\",\n \"chatConfig.createAssistant.requiredFieldsGeneric\": \"请填写必填字段\",\n \"chatConfig.createAssistant.noParentAgent\": \"未选择父智能体\",\n \"chatConfig.createAssistant.agentCreateFailed\": \"创建智能体失败\",\n \"chatConfig.createAssistant.cloneFetchFailed\": \"获取用于克隆的子智能体「{{key}}」失败\",\n \"chatConfig.createAssistant.cloneFailed\": \"克隆子智能体「{{key}}」失败\",\n \"chatConfig.createAssistant.cloneKeyRequired\": \"请为克隆的子智能体「{{key}}」提供一个 key\",\n \"chatConfig.createAssistant.cloneKeyInvalid\": \"克隆的子智能体「{{originalKey}}」的 key「{{key}}」无效。Key 必须以字母开头,且只能包含字母、数字、下划线或连字符。\",\n \"chatConfig.parentAgent.selectPlaceholder\": \"选择要扩展的父智能体...\",\n \"chatConfig.settings.defaultConnectionName\": \"默认\",\n \"chatConfig.settings.serverNamePlaceholder\": \"例如:生产服务器\",\n \"chatConfig.settings.title\": \"设置\",\n \"chatConfig.settings.menu.environment\": \"环境变量\",\n \"chatConfig.settings.menu.models\": \"模型配置\",\n \"chatConfig.settings.menu.environment.desc\": \"管理网关服务器的环境变量\",\n \"chatConfig.settings.menu.models.desc\": \"配置网关级默认模型注册表\",\n \"chatConfig.settings.saveConfiguration\": \"保存配置\",\n \"chatConfig.settings.addServer\": \"添加服务器\",\n \"chatConfig.settings.addNewServer\": \"添加新服务器\",\n \"chatConfig.settings.serverName\": \"服务器名称\",\n \"chatConfig.settings.serverNameHint\": \"可选:留空则使用 URL 作为名称\",\n \"chatConfig.settings.serverUrl\": \"服务器 URL *\",\n \"chatConfig.settings.serverUrlHint\": \"输入网关服务器的完整 URL\",\n \"chatConfig.settings.apiKey\": \"API Key\",\n \"chatConfig.settings.apiKeyPlaceholder\": \"可选:输入用于认证的 API Key\",\n \"chatConfig.settings.apiKeyHint\": \"可选:用于服务器认证的 API Key\",\n \"chatConfig.settings.pleaseEnterServerUrl\": \"请输入服务器 URL\",\n \"chatConfig.settings.serverAdded\": \"服务器添加成功\",\n \"chatConfig.settings.serverDeleted\": \"服务器已删除\",\n \"chatConfig.settings.connectFirst\": \"请先连接一个服务器\",\n \"chatConfig.settings.loadConfigFailed\": \"加载当前配置失败\",\n \"chatConfig.settings.saveFailed\": \"保存配置失败\",\n \"chatConfig.settings.restartWarning\": \"配置已保存。请重启服务器使 {{services}} 生效。\",\n \"chatConfig.settings.savedApplied\": \"配置已保存并生效\",\n \"chatConfig.settings.modelSaved\": \"模型配置已保存并注册成功\",\n \"chatConfig.settings.modelSaveFailed\": \"保存模型配置失败\",\n \"chatConfig.settings.alert.title\": \"配置生效方式\",\n \"chatConfig.settings.alert.immediate\": \"立即生效:\",\n \"chatConfig.settings.alert.restart\": \"需要重启:\",\n \"chatConfig.settings.alert.restartDetail\": \"PORT(修改端口必须重启服务器)\",\n \"chatConfig.settings.envHint\": \"以 .env 格式(key=value)配置环境变量,每行一个变量。密码字段留空则保持当前值。\",\n \"chatConfig.settings.modelsHint\": \"配置模型注册表。每个模型将使用提供的 key 注册,可供智能体使用。\",\n \"chatConfig.settings.model\": \"模型 {{index}}\",\n \"chatConfig.settings.remove\": \"移除\",\n \"chatConfig.settings.field.key\": \"Key *\",\n \"chatConfig.settings.field.keyHint\": \"该模型的唯一标识符\",\n \"chatConfig.settings.field.provider\": \"提供商 *\",\n \"chatConfig.settings.field.modelName\": \"模型名称 *\",\n \"chatConfig.settings.field.apiKeyHintStored\": \"服务器上已存储一个 key,且不会回传。留空则保留,或输入新 key 替换它。\",\n \"chatConfig.settings.field.apiKeyHintNew\": \"模型提供商的 API Key。留空则使用环境变量。\",\n \"chatConfig.settings.apiKeyPlaceholderConfigured\": \"已配置 —— 留空则保持不变\",\n \"chatConfig.settings.apiKeyPlaceholderNew\": \"输入你的 API Key\",\n \"chatConfig.settings.field.baseUrl\": \"Base URL\",\n \"chatConfig.settings.field.baseUrlHint\": \"可选:API 的自定义 Base URL\",\n \"chatConfig.settings.field.streaming\": \"启用流式输出\",\n \"chatConfig.settings.field.maxTokens\": \"最大 Token 数\",\n \"chatConfig.settings.field.temperature\": \"温度\",\n \"chatConfig.settings.addModel\": \"+ 添加模型\",\n \"chatConfig.settings.connecting\": \"连接中……\",\n \"chatConfig.settings.connectingTo\": \"正在连接到 {{url}}\",\n \"chatConfig.settings.notConnected\": \"未连接\",\n \"chatConfig.settings.connectFailedDetail\": \"连接 {{url}} 失败。请检查服务器 URL 后重试。\",\n \"chatConfig.settings.clickReconnect\": \"点击「重新连接」以连接到 {{url}}\",\n \"chatConfig.settings.reconnect\": \"重新连接\",\n \"chatConfig.settings.error.serverError\": \"服务器返回错误\",\n \"chatConfig.settings.error.timeout\": \"连接超时\",\n \"chatConfig.settings.error.connectFailed\": \"连接服务器失败\",\n \"chatConfig.paChannel.title\": \"连接渠道\",\n \"chatConfig.paChannel.channels\": \"渠道\",\n \"chatConfig.paChannel.noChannels\": \"暂无渠道\",\n \"chatConfig.paChannel.connect\": \"连接\",\n \"chatConfig.paChannel.selectHint\": \"从左侧选择一个渠道,或添加新渠道\",\n \"chatConfig.paChannel.chooseType\": \"选择渠道类型\",\n \"chatConfig.paChannel.editChannel\": \"编辑渠道\",\n \"chatConfig.paChannel.newChannel\": \"新建{{channel}}\",\n \"chatConfig.paChannel.channel.lark\": \"飞书\",\n \"chatConfig.paChannel.channel.wechat\": \"微信\",\n \"chatConfig.paChannel.channel.wecom\": \"企业微信\",\n \"chatConfig.paChannel.wechatBot\": \"微信机器人\",\n \"chatConfig.paChannel.feishuBot\": \"飞书机器人\",\n \"chatConfig.paChannel.wecomBot\": \"企业微信机器人\",\n \"chatConfig.paChannel.field.botId\": \"机器人 Bot ID\",\n \"chatConfig.paChannel.field.secret\": \"长连接 Secret\",\n \"chatConfig.paChannel.placeholder.botId\": \"企业微信后台获取的 Bot ID\",\n \"chatConfig.paChannel.placeholder.secret\": \"企业微信后台获取的长连接 Secret\",\n \"chatConfig.paChannel.wecomConnectHint\": \"使用「智能机器人」的长连接(API)模式,无需公网回调地址;开启后由网关维护长连接。\",\n \"chatConfig.paChannel.validation.botIdRequired\": \"Bot ID 为必填项\",\n \"chatConfig.paChannel.validation.secretRequired\": \"Secret 为必填项\",\n \"chatConfig.paChannel.field.channelType\": \"渠道类型\",\n \"chatConfig.paChannel.field.displayName\": \"显示名称\",\n \"chatConfig.paChannel.field.appId\": \"App ID\",\n \"chatConfig.paChannel.field.appSecret\": \"App Secret\",\n \"chatConfig.paChannel.field.verificationToken\": \"Verification Token\",\n \"chatConfig.paChannel.field.encryptKey\": \"Encrypt Key\",\n \"chatConfig.paChannel.field.botToken\": \"Bot Token\",\n \"chatConfig.paChannel.field.uin\": \"UIN\",\n \"chatConfig.paChannel.enabled\": \"已启用\",\n \"chatConfig.paChannel.listenerActive\": \"监听服务运行中\",\n \"chatConfig.paChannel.listenerStopped\": \"监听服务已停止\",\n \"chatConfig.paChannel.anyoneCanMessage\": \"任何人都可以发消息\",\n \"chatConfig.paChannel.anyoneCanMessageHint\": \"启用后,任何能访问该渠道的人都可以与你的助手对话\",\n \"chatConfig.paChannel.whoCanChat\": \"谁可以对话\",\n \"chatConfig.paChannel.whoCanChatHint\": \"只有你在这里添加的人才能给你的助手发消息\",\n \"chatConfig.paChannel.noContacts\": \"尚未添加联系人\",\n \"chatConfig.paChannel.addContact\": \"添加联系人\",\n \"chatConfig.paChannel.add\": \"添加\",\n \"chatConfig.paChannel.required\": \"必填\",\n \"chatConfig.paChannel.placeholder.wechatOpenId\": \"微信 Open ID\",\n \"chatConfig.paChannel.placeholder.feishuOpenId\": \"飞书 Open ID\",\n \"chatConfig.paChannel.placeholder.wecomUserId\": \"企业微信 UserID\",\n \"chatConfig.paChannel.placeholder.displayName\": \"显示名称(可选)\",\n \"chatConfig.paChannel.placeholder.appSecret\": \"你的 app secret\",\n \"chatConfig.paChannel.placeholder.optional\": \"可选\",\n \"chatConfig.paChannel.placeholder.botToken\": \"扫码后自动填充\",\n \"chatConfig.paChannel.placeholder.uin\": \"扫码登录后自动填充\",\n \"chatConfig.paChannel.addBindingHint\": \"保存后回到这里添加你想对话的人。\",\n \"chatConfig.paChannel.removeChannel\": \"移除该渠道?\",\n \"chatConfig.paChannel.removeChannelDesc\": \"该接入的所有绑定也会一并丢失。\",\n \"chatConfig.paChannel.save\": \"保存\",\n \"chatConfig.paChannel.bindingAdded\": \"绑定已添加\",\n \"chatConfig.paChannel.bindingAddFailed\": \"添加绑定失败\",\n \"chatConfig.paChannel.bindingRemoved\": \"绑定已移除\",\n \"chatConfig.paChannel.bindingRemoveFailed\": \"移除绑定失败\",\n \"chatConfig.paChannel.bindingsLoadFailed\": \"加载绑定失败\",\n \"chatConfig.paChannel.installationsLoadFailed\": \"加载渠道接入失败\",\n \"chatConfig.paChannel.channelEnabled\": \"渠道已启用\",\n \"chatConfig.paChannel.channelDisabled\": \"渠道已禁用\",\n \"chatConfig.paChannel.toggleFailed\": \"切换渠道状态失败\",\n \"chatConfig.paChannel.installationUpdated\": \"接入已更新\",\n \"chatConfig.paChannel.installationUpdateFailed\": \"更新接入失败\",\n \"chatConfig.paChannel.installationCreated\": \"接入已创建\",\n \"chatConfig.paChannel.installationCreateFailed\": \"创建接入失败\",\n \"chatConfig.paChannel.installationSaveFailed\": \"保存接入失败\",\n \"chatConfig.paChannel.installationDeleted\": \"接入已删除\",\n \"chatConfig.paChannel.installationDeleteFailed\": \"删除接入失败\",\n \"chatConfig.paChannel.addUsersHint\": \"现在添加可以访问该渠道的用户\",\n \"chatConfig.paChannel.validation.appIdRequired\": \"App ID 为必填项\",\n \"chatConfig.paChannel.validation.appSecretRequired\": \"App Secret 为必填项\",\n \"chatConfig.paChannel.validation.botTokenRequired\": \"Bot Token 为必填项\",\n \"chatConfig.paChannel.qr.hint\": \"用微信扫描二维码以获取 Bot Token\",\n \"chatConfig.paChannel.qr.get\": \"获取二维码\",\n \"chatConfig.paChannel.qr.generating\": \"正在生成二维码……\",\n \"chatConfig.paChannel.qr.scan\": \"用微信扫码\",\n \"chatConfig.paChannel.qr.scanned\": \"已扫描!请在手机上确认……\",\n \"chatConfig.paChannel.qr.expiresIn\": \"{{time}} 后过期\",\n \"chatConfig.paChannel.qr.expired\": \"二维码已过期\",\n \"chatConfig.paChannel.qr.refreshStatus\": \"刷新状态\",\n \"chatConfig.paChannel.qr.loginConfirmed\": \"登录已确认!\",\n \"chatConfig.paChannel.qr.tokenFilled\": \"Bot Token 已自动填充\",\n \"chatConfig.paChannel.qr.expiredGetNew\": \"二维码已过期。请重新获取。\",\n \"chatConfig.paChannel.qr.retry\": \"重试\",\n \"chatConfig.paChannel.qr.loadFailed\": \"加载二维码失败\",\n \"chatConfig.paChannel.qr.getFailed\": \"获取二维码失败\",\n \"chatConfig.paChannel.qr.statusFailed\": \"查询二维码状态失败\"\n }\n}\n","{\n \"messages\": {\n \"chatMenu.workspace.personalAssistant\": \"Personal Assistant\",\n \"chatMenu.workspace.projects\": \"Projects\",\n \"chatMenu.workspace.metrics\": \"Metrics\",\n \"chatMenu.workspace.database\": \"Database\",\n \"chatMenu.workspace.plugins\": \"Plugins\",\n \"chatMenu.workspace.modelProviders\": \"Model Providers\",\n \"chatMenu.workspace.runtime\": \"Runtime\",\n \"chatMenu.workspace.inbox\": \"Inbox\",\n \"chatMenu.workspace.automations\": \"Automations\",\n \"chatMenu.workspace.shares\": \"Shares\",\n \"chatMenu.workspace.migration\": \"Migration\",\n \"chatMenu.workspace.eval\": \"Eval\",\n \"chatMenu.workspace.assistants\": \"Agents\",\n \"chatMenu.workspace.skills\": \"Skills\",\n \"chatMenu.workspace.collections\": \"Collections\",\n \"chatMenu.workspace.mcp\": \"MCP\",\n \"chatMenu.workspace.apiKeys\": \"API Keys\",\n \"chatMenu.workspace.auditLog\": \"Audit Log\",\n \"chatMenu.workspace.runtimeProfiles\": \"Runtime Profiles\",\n \"chatMenu.workspace.tools\": \"Tools\",\n \"chatMenu.workspace.tasks\": \"Tasks\",\n \"chatMenu.group.dataSource\": \"DataSource\",\n \"chatMenu.group.process\": \"Process\",\n \"chatMenu.group.knowledge\": \"Knowledge\",\n \"chatMenu.group.settings\": \"Settings\",\n \"chatMenu.workspace.unpinFromMenu\": \"Unpin from Menu\",\n \"chatMenu.workspace.unpinnedSuccess\": \"Unpinned from menu\"\n }\n}\n","{\n \"messages\": {\n \"chatMenu.workspace.personalAssistant\": \"个人助理\",\n \"chatMenu.workspace.projects\": \"项目\",\n \"chatMenu.workspace.metrics\": \"指标\",\n \"chatMenu.workspace.database\": \"数据库\",\n \"chatMenu.workspace.plugins\": \"插件\",\n \"chatMenu.workspace.modelProviders\": \"模型服务商\",\n \"chatMenu.workspace.runtime\": \"运行时\",\n \"chatMenu.workspace.inbox\": \"收件箱\",\n \"chatMenu.workspace.automations\": \"自动化\",\n \"chatMenu.workspace.shares\": \"分享\",\n \"chatMenu.workspace.migration\": \"数据迁移\",\n \"chatMenu.workspace.eval\": \"评测\",\n \"chatMenu.workspace.assistants\": \"智能体\",\n \"chatMenu.workspace.skills\": \"技能\",\n \"chatMenu.workspace.collections\": \"集合\",\n \"chatMenu.workspace.mcp\": \"MCP\",\n \"chatMenu.workspace.apiKeys\": \"API Key\",\n \"chatMenu.workspace.auditLog\": \"审计日志\",\n \"chatMenu.workspace.runtimeProfiles\": \"运行时配置\",\n \"chatMenu.workspace.tools\": \"工具\",\n \"chatMenu.workspace.tasks\": \"任务\",\n \"chatMenu.group.dataSource\": \"数据源\",\n \"chatMenu.group.process\": \"流程\",\n \"chatMenu.group.knowledge\": \"知识库\",\n \"chatMenu.group.settings\": \"设置\",\n \"chatMenu.workspace.unpinFromMenu\": \"从菜单取消固定\",\n \"chatMenu.workspace.unpinnedSuccess\": \"已从菜单取消固定\"\n }\n}\n","{\n \"messages\": {\n \"chatWorkspace.assistantFlow.cliNotInstalled\": \"{{label}} CLI is not installed\",\n \"chatWorkspace.assistantFlow.deleted\": \"Assistant deleted successfully\",\n \"chatWorkspace.assistantFlow.deleteFailed\": \"Failed to delete assistant\",\n \"chatWorkspace.assistantFlow.disabled\": \"{{label}} is disabled\",\n \"chatWorkspace.assistantFlow.loading\": \"Loading assistants...\",\n \"chatWorkspace.assistantFlow.localProviderFailed\": \"Failed to update local A2A provider\",\n \"chatWorkspace.assistantFlow.saveFailed\": \"Failed to save agent configuration\",\n \"chatWorkspace.assistantFlow.saveSuccess\": \"Agent configuration saved successfully\",\n \"chatWorkspace.assistantNode.action.restart\": \"Restart\",\n \"chatWorkspace.assistantNode.action.start\": \"Start\",\n \"chatWorkspace.assistantNode.action.stop\": \"Stop\",\n \"chatWorkspace.assistantNode.availableTools\": \"Available Tools ({{count}})\",\n \"chatWorkspace.assistantNode.chat\": \"Chat\",\n \"chatWorkspace.assistantNode.modelEngine\": \"Model Engine\",\n \"chatWorkspace.assistantNode.more\": \"+{{count}} more\",\n \"chatWorkspace.assistantNode.status.disabled\": \"Disabled\",\n \"chatWorkspace.assistantNode.status.notInstalled\": \"Not Installed\",\n \"chatWorkspace.assistantNode.status.starting\": \"Starting...\",\n \"chatWorkspace.assistantNode.subAgentArchitecture\": \"Sub-Agent Architecture ({{count}})\",\n \"chatWorkspace.assistantNode.systemPrompt\": \"SYSTEM PROMPT\",\n \"chatWorkspace.assistantNode.toolsCount\": \"{{count}} Tools\",\n \"chatWorkspace.assistantNode.type.a2aRemote\": \"A2A Remote\",\n \"chatWorkspace.assistantNode.type.deepAgent\": \"Orchestrator\",\n \"chatWorkspace.assistantNode.type.planExecute\": \"PLAN EXECUTE\",\n \"chatWorkspace.assistantNode.type.processing\": \"Workflow\",\n \"chatWorkspace.assistantNode.type.react\": \"Executor\",\n \"chatWorkspace.assistantNode.type.sequential\": \"SEQUENTIAL\",\n \"chatWorkspace.collections.col.embedding\": \"Embedding\",\n \"chatWorkspace.collections.col.entries\": \"Entries\",\n \"chatWorkspace.collections.col.fields\": \"Fields\",\n \"chatWorkspace.collections.col.label\": \"Label\",\n \"chatWorkspace.collections.col.name\": \"Name\",\n \"chatWorkspace.collections.created\": \"Collection created\",\n \"chatWorkspace.collections.deleteBody\": \"This will remove the collection and all its entries.\",\n \"chatWorkspace.collections.deleted\": \"Collection deleted\",\n \"chatWorkspace.collections.deleteFailed\": \"Failed to delete\",\n \"chatWorkspace.collections.deleteTitle\": \"Delete this collection?\",\n \"chatWorkspace.collections.editTitle\": \"Edit Collection\",\n \"chatWorkspace.collections.empty\": \"No collections yet\",\n \"chatWorkspace.collections.form.addField\": \"Add Field\",\n \"chatWorkspace.collections.form.customFields\": \"Custom Fields\",\n \"chatWorkspace.collections.form.displayName\": \"Display Name\",\n \"chatWorkspace.collections.form.embeddingModel\": \"Embedding Model\",\n \"chatWorkspace.collections.form.embeddingRequired\": \"Embedding model is required\",\n \"chatWorkspace.collections.form.fieldKey\": \"Field key\",\n \"chatWorkspace.collections.form.keyRequired\": \"Key required\",\n \"chatWorkspace.collections.form.labelPlaceholder\": \"e.g. Disease Knowledge Base\",\n \"chatWorkspace.collections.form.labelRequired\": \"Label is required\",\n \"chatWorkspace.collections.form.name\": \"Name\",\n \"chatWorkspace.collections.form.namePattern\": \"Lowercase letters, numbers, underscores only\",\n \"chatWorkspace.collections.form.nameRequired\": \"Name is required\",\n \"chatWorkspace.collections.form.required\": \"Required\",\n \"chatWorkspace.collections.form.selectEmbedding\": \"Select embedding model\",\n \"chatWorkspace.collections.form.typeRequired\": \"Type required\",\n \"chatWorkspace.collections.new\": \"New Collection\",\n \"chatWorkspace.collections.noEmbedding\": \"No embedding models registered\",\n \"chatWorkspace.collections.noEmbeddingBody\": \"Register an embedding model in gateway startup to enable collection creation and vector search.\",\n \"chatWorkspace.collections.noEmbeddingTitle\": \"No embedding models registered\",\n \"chatWorkspace.collections.saveFailed\": \"Failed to save\",\n \"chatWorkspace.collections.title\": \"Collections\",\n \"chatWorkspace.collections.updated\": \"Collection updated\",\n \"chatWorkspace.entries.actionFailed\": \"Failed\",\n \"chatWorkspace.entries.add\": \"Add\",\n \"chatWorkspace.entries.addFirst\": \"Add your first entry\",\n \"chatWorkspace.entries.clearFilter\": \"Clear filter\",\n \"chatWorkspace.entries.clearSearchFilters\": \"Clear search & filters\",\n \"chatWorkspace.entries.col.content\": \"Content\",\n \"chatWorkspace.entries.col.score\": \"Score\",\n \"chatWorkspace.entries.collapse\": \"Collapse\",\n \"chatWorkspace.entries.contentPlaceholder\": \"Text content to index…\",\n \"chatWorkspace.entries.created\": \"Entry created\",\n \"chatWorkspace.entries.deleted\": \"Deleted\",\n \"chatWorkspace.entries.deleteTitle\": \"Delete?\",\n \"chatWorkspace.entries.editTitle\": \"Edit Entry\",\n \"chatWorkspace.entries.empty\": \"No entries yet\",\n \"chatWorkspace.entries.expand\": \"Expand\",\n \"chatWorkspace.entries.filterField\": \"Filter {{field}}…\",\n \"chatWorkspace.entries.filterPlaceholder\": \"Filter…\",\n \"chatWorkspace.entries.loadFailed\": \"Failed to load entries\",\n \"chatWorkspace.entries.newTitle\": \"New Entry\",\n \"chatWorkspace.entries.noCollection\": \"No collection selected\",\n \"chatWorkspace.entries.noMatches\": \"No matching entries\",\n \"chatWorkspace.entries.reset\": \"Reset\",\n \"chatWorkspace.entries.searchFailed\": \"Search failed\",\n \"chatWorkspace.entries.semantic\": \"semantic\",\n \"chatWorkspace.entries.semanticLimit\": \"Semantic search returns at most 50 results\",\n \"chatWorkspace.entries.semanticPlaceholder\": \"Semantic search…\",\n \"chatWorkspace.entries.updated\": \"Entry updated\",\n \"chatWorkspace.file.created\": \"Created: {{date}}\",\n \"chatWorkspace.file.folder\": \"folder\",\n \"chatWorkspace.file.modified\": \"Modified: {{date}}\",\n \"chatWorkspace.fileBrowser.aria.collapse\": \"collapse {{name}}\",\n \"chatWorkspace.fileBrowser.aria.expand\": \"expand {{name}}\",\n \"chatWorkspace.fileBrowser.aria.open\": \"open {{name}}\",\n \"chatWorkspace.fileBrowser.aria.toggle\": \"toggle {{name}}\",\n \"chatWorkspace.fileBrowser.ascending\": \"Ascending\",\n \"chatWorkspace.fileBrowser.clickToRefresh\": \"Click to refresh\",\n \"chatWorkspace.fileBrowser.descending\": \"Descending\",\n \"chatWorkspace.fileBrowser.download\": \"Download\",\n \"chatWorkspace.fileBrowser.downloadFolderFailed\": \"Failed to download folder\",\n \"chatWorkspace.fileBrowser.emptyFolder\": \"No files in this folder\",\n \"chatWorkspace.fileBrowser.files\": \"Files\",\n \"chatWorkspace.fileBrowser.noMatch\": \"No files match \\\"{{query}}\\\"\",\n \"chatWorkspace.fileBrowser.preview\": \"Preview\",\n \"chatWorkspace.fileBrowser.root\": \"Root\",\n \"chatWorkspace.fileBrowser.searchPlaceholder\": \"Search files…\",\n \"chatWorkspace.fileBrowser.selectFile\": \"Select a file to view content\",\n \"chatWorkspace.fileBrowser.selectProject\": \"Please select a project to browse files\",\n \"chatWorkspace.fileBrowser.share\": \"Share\",\n \"chatWorkspace.fileBrowser.sort.created\": \"Created\",\n \"chatWorkspace.fileBrowser.sort.modified\": \"Modified\",\n \"chatWorkspace.fileBrowser.sort.name\": \"Name\",\n \"chatWorkspace.fileBrowser.title\": \"File Browser\",\n \"chatWorkspace.personalAssistant.channelSettings\": \"Channel settings\",\n \"chatWorkspace.personalAssistant.create\": \"Create My Assistant\",\n \"chatWorkspace.personalAssistant.customPlaceholder\": \"Describe in your own words...\",\n \"chatWorkspace.personalAssistant.deleteBody\": \"This will permanently delete your assistant, all chat history, and your personal project. This action cannot be undone.\",\n \"chatWorkspace.personalAssistant.deleted\": \"Personal assistant deleted\",\n \"chatWorkspace.personalAssistant.deleteOk\": \"Delete Everything\",\n \"chatWorkspace.personalAssistant.deleteTitle\": \"Delete your personal assistant?\",\n \"chatWorkspace.personalAssistant.done\": \"Done!\",\n \"chatWorkspace.personalAssistant.emptyQuestion\": \"What can I help you with?\",\n \"chatWorkspace.personalAssistant.emptyStateQuestion\": \"Today is {{date}} — What can I help you with?\",\n \"chatWorkspace.personalAssistant.fieldName\": \"Name\",\n \"chatWorkspace.personalAssistant.fieldPersonality\": \"Personality\",\n \"chatWorkspace.personalAssistant.greeting\": \"Hey\",\n \"chatWorkspace.personalAssistant.networkError\": \"Network error\",\n \"chatWorkspace.personalAssistant.notSet\": \"(not set)\",\n \"chatWorkspace.personalAssistant.personality.custom.desc\": \"Describe your own — a mix or something completely unique.\",\n \"chatWorkspace.personalAssistant.personality.custom.title\": \"Custom\",\n \"chatWorkspace.personalAssistant.personality.energeticMotivator.desc\": \"High-energy hype machine. Celebrates wins, never lets you give up.\",\n \"chatWorkspace.personalAssistant.personality.energeticMotivator.title\": \"Energetic Motivator\",\n \"chatWorkspace.personalAssistant.personality.warmCaring.desc\": \"Gentle, patient, emotionally supportive — like a close friend who always has your back.\",\n \"chatWorkspace.personalAssistant.personality.warmCaring.title\": \"Warm & Caring\",\n \"chatWorkspace.personalAssistant.personality.wiseMentor.desc\": \"Calm, thoughtful, insightful. Asks the right questions.\",\n \"chatWorkspace.personalAssistant.personality.wiseMentor.title\": \"Wise Mentor\",\n \"chatWorkspace.personalAssistant.personality.wittyPlayful.desc\": \"Quick with a joke, a little mischievous, keeps things light.\",\n \"chatWorkspace.personalAssistant.personality.wittyPlayful.title\": \"Witty & Playful\",\n \"chatWorkspace.personalAssistant.stepName.body\": \"This is the name you'll use every day — your go-to nickname for your AI sidekick.\",\n \"chatWorkspace.personalAssistant.stepName.placeholder\": \"e.g. \\\"Jarvis\\\", \\\"Buddy\\\"\",\n \"chatWorkspace.personalAssistant.stepName.title\": \"What would you like to call them?\",\n \"chatWorkspace.personalAssistant.stepReady.body\": \"Your assistant will have private memory and learn about you over time.\",\n \"chatWorkspace.personalAssistant.stepReady.title\": \"Almost ready!\",\n \"chatWorkspace.personalAssistant.stepVibe.body\": \"Pick the personality that feels right. This shapes how they talk and support you.\",\n \"chatWorkspace.personalAssistant.stepVibe.title\": \"What's their vibe?\",\n \"chatWorkspace.personalAssistant.todayIs\": \"Today is {{date}}\",\n \"chatWorkspace.pin.groupPlaceholder\": \"Group (optional, select or type new)\",\n \"chatWorkspace.pin.namePlaceholder\": \"Menu name (required)\",\n \"chatWorkspace.pin.nameRequired\": \"Please enter a menu name\",\n \"chatWorkspace.pin.pin\": \"Pin to Menu\",\n \"chatWorkspace.pin.pinAction\": \"Pin\",\n \"chatWorkspace.pin.pinFailed\": \"Failed to pin\",\n \"chatWorkspace.pin.pinned\": \"Pinned to menu\",\n \"chatWorkspace.pin.title\": \"Pin to Menu\",\n \"chatWorkspace.pin.unpin\": \"Unpin from Menu\",\n \"chatWorkspace.pin.unpinFailed\": \"Failed to unpin\",\n \"chatWorkspace.pin.unpinned\": \"Unpinned from menu\",\n \"chatWorkspace.projects.create\": \"Create Project\",\n \"chatWorkspace.projects.created\": \"Created {{date}}\",\n \"chatWorkspace.projects.createdToast\": \"Project \\\"{{name}}\\\" created\",\n \"chatWorkspace.projects.createFailed\": \"Failed to create project\",\n \"chatWorkspace.projects.createTitle\": \"Create New Project\",\n \"chatWorkspace.projects.emptyDescription\": \"Create your first project to get started\",\n \"chatWorkspace.projects.emptyTitle\": \"No projects yet\",\n \"chatWorkspace.projects.itemName\": \"project\",\n \"chatWorkspace.projects.kind.public\": \"Public\",\n \"chatWorkspace.projects.kind.training\": \"Training\",\n \"chatWorkspace.projects.nameLabel\": \"Project Name\",\n \"chatWorkspace.projects.namePlaceholder\": \"e.g., Q4 Analysis, Marketing Campaign...\",\n \"chatWorkspace.projects.nameRequired\": \"Project name is required\",\n \"chatWorkspace.projects.nameTooLong\": \"Name must be {{max}} characters or less\",\n \"chatWorkspace.projects.new\": \"New Project\",\n \"chatWorkspace.projects.settings\": \"Project Settings\",\n \"chatWorkspace.projects.title\": \"Projects\",\n \"chatWorkspace.shares.col.actions\": \"Actions\",\n \"chatWorkspace.shares.col.expires\": \"Expires\",\n \"chatWorkspace.shares.col.status\": \"Status\",\n \"chatWorkspace.shares.col.title\": \"Title\",\n \"chatWorkspace.shares.col.token\": \"Token\",\n \"chatWorkspace.shares.copyLink\": \"Copy Link\",\n \"chatWorkspace.shares.fallbackFileName\": \"file\",\n \"chatWorkspace.shares.loadFailed\": \"Failed to load shares\",\n \"chatWorkspace.shares.never\": \"Never\",\n \"chatWorkspace.shares.passwordProtected\": \"Password protected\",\n \"chatWorkspace.shares.revoke\": \"Revoke\",\n \"chatWorkspace.shares.revokeBody\": \"This link will stop working immediately.\",\n \"chatWorkspace.shares.revoked\": \"Share revoked\",\n \"chatWorkspace.shares.revokeTitle\": \"Revoke share?\",\n \"chatWorkspace.shares.status.active\": \"Active\",\n \"chatWorkspace.shares.status.expired\": \"Expired\",\n \"chatWorkspace.shares.status.revoked\": \"Revoked\",\n \"chatWorkspace.shares.title\": \"My Shares\",\n \"chatWorkspace.skillNode.add\": \"Add\",\n \"chatWorkspace.skillNode.contentPlaceholder\": \"Enter skill content here...\",\n \"chatWorkspace.skillNode.contentSection\": \"CONTENT\",\n \"chatWorkspace.skillNode.copyId\": \"Copy ID\",\n \"chatWorkspace.skillNode.deleted\": \"Skill deleted successfully\",\n \"chatWorkspace.skillNode.deleteFailed\": \"An error occurred while deleting the skill\",\n \"chatWorkspace.skillNode.edit\": \"Edit Skill\",\n \"chatWorkspace.skillNode.idMissing\": \"Skill ID is missing\",\n \"chatWorkspace.skillNode.keyPlaceholder\": \"Key\",\n \"chatWorkspace.skillNode.meta\": \"Meta {{index}}\",\n \"chatWorkspace.skillNode.metadataCount\": \"Metadata ({{count}})\",\n \"chatWorkspace.skillNode.noMetadata\": \"No metadata yet. Use Add to create one.\",\n \"chatWorkspace.skillNode.updated\": \"Skill updated successfully\",\n \"chatWorkspace.skillNode.updateError\": \"An error occurred while updating the skill\",\n \"chatWorkspace.skillNode.updateFailed\": \"Failed to update skill\",\n \"chatWorkspace.skillNode.valuePlaceholder\": \"Value\",\n \"chatWorkspace.skills.deleteConfirm\": \"Are you sure you want to delete \\\"{{name}}\\\"?\",\n \"chatWorkspace.skills.deleted\": \"Skill deleted\",\n \"chatWorkspace.skills.deleteFailed\": \"Failed to delete skill\",\n \"chatWorkspace.skills.deleteTitle\": \"Delete Skill\",\n \"chatWorkspace.skills.editTitle\": \"Edit Skill\",\n \"chatWorkspace.skills.emptyDescription\": \"Click \\\"New Skill\\\" to create one\",\n \"chatWorkspace.skills.emptyTitle\": \"No skills yet\",\n \"chatWorkspace.skills.field.compatibility\": \"Compatibility\",\n \"chatWorkspace.skills.field.content\": \"Content\",\n \"chatWorkspace.skills.field.description\": \"Description\",\n \"chatWorkspace.skills.field.license\": \"License\",\n \"chatWorkspace.skills.field.metadata\": \"Metadata\",\n \"chatWorkspace.skills.field.name\": \"Name\",\n \"chatWorkspace.skills.field.skillMd\": \"SKILL.md\",\n \"chatWorkspace.skills.graph\": \"Graph\",\n \"chatWorkspace.skills.itemName\": \"skill\",\n \"chatWorkspace.skills.loadFailed\": \"Failed to load skills\",\n \"chatWorkspace.skills.new\": \"New Skill\",\n \"chatWorkspace.skills.saveChanges\": \"Save Changes\",\n \"chatWorkspace.skills.subCount\": \"{{count}} sub\",\n \"chatWorkspace.skills.title\": \"Skills\",\n \"chatWorkspace.skills.updated\": \"Skill updated\",\n \"chatWorkspace.skills.updateFailed\": \"Failed to update skill\",\n \"chatWorkspace.toolNode.approval\": \"Approval\",\n \"chatWorkspace.toolNode.copyId\": \"Copy ID\",\n \"chatWorkspace.toolNode.direct\": \"Direct\",\n \"chatWorkspace.toolNode.directReturn\": \"Direct Return\",\n \"chatWorkspace.toolNode.inputSchema\": \"INPUT SCHEMA\",\n \"chatWorkspace.toolNode.requiresApproval\": \"Requires Approval\",\n \"chatWorkspace.toolNode.schema\": \"Schema\",\n \"chatWorkspace.toolNode.useTool\": \"Use Tool\",\n \"chatWorkspace.tools.empty\": \"No tools available\",\n \"chatWorkspace.tools.errorTitle\": \"Error Loading Tools\",\n \"chatWorkspace.tools.invalidResponse\": \"Invalid response format\",\n \"chatWorkspace.tools.refreshTitle\": \"Refresh tools\",\n \"chatWorkspace.tools.requiresApproval\": \"Requires approval\",\n \"chatWorkspace.topologyAutomation.copilot\": \"Copilot\",\n \"chatWorkspace.topologyAutomation.createWorkflow\": \"Create Workflow\",\n \"chatWorkspace.topologyAutomation.deleteBody\": \"This will delete the workflow and all associated topology. This action cannot be undone.\",\n \"chatWorkspace.topologyAutomation.deleteTitle\": \"Delete workflow\",\n \"chatWorkspace.topologyAutomation.deleteFailed\": \"Failed to delete workflow\",\n \"chatWorkspace.topologyAutomation.incoming\": \"{{count}} in\",\n \"chatWorkspace.topologyAutomation.loading\": \"Loading workflows...\",\n \"chatWorkspace.topologyAutomation.noDefinitions\": \"No workflow definitions found.\",\n \"chatWorkspace.topologyAutomation.noDescription\": \"No description set. Use the Workflow Builder to add a spec for this workflow.\",\n \"chatWorkspace.topologyAutomation.noDescriptionShort\": \"No description\",\n \"chatWorkspace.topologyAutomation.outgoing\": \"{{count}} out\",\n \"chatWorkspace.topologyAutomation.selectWorkflow\": \"Select a workflow to view its topology\",\n \"chatWorkspace.topologyAutomation.stepsCount\": \"{{count}} steps\",\n \"chatWorkspace.topologyAutomation.title\": \"Workflows\",\n \"chatWorkspace.topologyRuntime.autoRefresh\": \"Auto-refresh\",\n \"chatWorkspace.topologyRuntime.completed\": \"Completed\",\n \"chatWorkspace.topologyRuntime.daysAgo\": \"{{count}}d ago\",\n \"chatWorkspace.topologyRuntime.deleteRunBody\": \"Delete this workflow run and all its step records?\",\n \"chatWorkspace.topologyRuntime.deleteRunFailed\": \"Failed to delete run\",\n \"chatWorkspace.topologyRuntime.deleteRunTitle\": \"Delete run\",\n \"chatWorkspace.topologyRuntime.duration\": \"Duration\",\n \"chatWorkspace.topologyRuntime.empty\": \"No workflow runs yet.\",\n \"chatWorkspace.topologyRuntime.ended\": \"Ended: {{time}}\",\n \"chatWorkspace.topologyRuntime.flowView\": \"Flow View\",\n \"chatWorkspace.topologyRuntime.hoursAgo\": \"{{count}}h ago\",\n \"chatWorkspace.topologyRuntime.input\": \"Input\",\n \"chatWorkspace.topologyRuntime.justNow\": \"just now\",\n \"chatWorkspace.topologyRuntime.loadFailed\": \"Failed to load workflow runs\",\n \"chatWorkspace.topologyRuntime.minutesAgo\": \"{{count}}m ago\",\n \"chatWorkspace.topologyRuntime.noStepRecords\": \"No step records yet\",\n \"chatWorkspace.topologyRuntime.output\": \"Output\",\n \"chatWorkspace.topologyRuntime.pipelineExecution\": \"Pipeline Execution\",\n \"chatWorkspace.topologyRuntime.purpose\": \"Purpose: {{purpose}}\",\n \"chatWorkspace.topologyRuntime.refreshNow\": \"Refresh now\",\n \"chatWorkspace.topologyRuntime.runStatus.cancelled\": \"Cancelled\",\n \"chatWorkspace.topologyRuntime.runStatus.completed\": \"Completed\",\n \"chatWorkspace.topologyRuntime.runStatus.failed\": \"Failed\",\n \"chatWorkspace.topologyRuntime.runStatus.interrupted\": \"Awaiting Input\",\n \"chatWorkspace.topologyRuntime.runStatus.running\": \"Running\",\n \"chatWorkspace.topologyRuntime.started\": \"Started: {{time}}\",\n \"chatWorkspace.topologyRuntime.startedLabel\": \"Started\",\n \"chatWorkspace.topologyRuntime.stepDetail\": \"Step Detail\",\n \"chatWorkspace.topologyRuntime.title\": \"Workflow Runs\",\n \"chatWorkspace.workflowAutomation.copilot\": \"Copilot\",\n \"chatWorkspace.workflowAutomation.createWorkflow\": \"Create Workflow\",\n \"chatWorkspace.workflowAutomation.deleteBody\": \"This will permanently delete this workflow agent.\",\n \"chatWorkspace.workflowAutomation.deleteTitle\": \"Delete workflow\",\n \"chatWorkspace.workflowAutomation.emptyTitle\": \"No workflows yet\",\n \"chatWorkspace.workflowAutomation.filterPlaceholder\": \"Filter workflows...\",\n \"chatWorkspace.workflowAutomation.loadFailed\": \"Failed to load workflows\",\n \"chatWorkspace.workflowAutomation.loading\": \"Loading workflows...\",\n \"chatWorkspace.workflowAutomation.loadingDsl\": \"Loading workflow DSL...\",\n \"chatWorkspace.workflowAutomation.noDefinitions\": \"No workflow definitions found.\",\n \"chatWorkspace.workflowAutomation.noDescription\": \"No description set.\",\n \"chatWorkspace.workflowAutomation.noMatch\": \"No workflows match your search\",\n \"chatWorkspace.workflowAutomation.selectWorkflow\": \"Select a workflow to view its graph\",\n \"chatWorkspace.workflowAutomation.title\": \"Workflows\",\n \"chatWorkspace.workflowCanvas.ended\": \"Ended: {{time}}\",\n \"chatWorkspace.workflowCanvas.input\": \"Input\",\n \"chatWorkspace.workflowCanvas.noIo\": \"No input/output data\",\n \"chatWorkspace.workflowCanvas.noNodes\": \"No nodes in workflow\",\n \"chatWorkspace.workflowCanvas.output\": \"Output\",\n \"chatWorkspace.workflowCanvas.parallel\": \"Parallel\",\n \"chatWorkspace.workflowCanvas.purpose\": \"Purpose: {{purpose}}\",\n \"chatWorkspace.workflowCanvas.started\": \"Started: {{time}}\",\n \"chatWorkspace.workflowCanvas.stepDetail\": \"Step Detail\",\n \"chatWorkspace.workflowCanvas.tabIo\": \"Input / Output\",\n \"chatWorkspace.workflowNode.askTooltip\": \"This step requires human approval before continuing\",\n \"chatWorkspace.workflowNode.inline\": \"inline\",\n \"chatWorkspace.workflowNode.items\": \"Items\",\n \"chatWorkspace.workflowNode.noSchema\": \"No schema defined\",\n \"chatWorkspace.workflowNode.output\": \"Output\",\n \"chatWorkspace.workflowNode.pending\": \"pending\",\n \"chatWorkspace.workflowNode.properties\": \"Properties\",\n \"chatWorkspace.workflowNode.refDelegated\": \"Delegated to agent: {{name}}\",\n \"chatWorkspace.workflowNode.refDeleted\": \"Agent \\\"{{ref}}\\\" no longer exists\",\n \"chatWorkspace.workflowNode.refDeletedTag\": \"[deleted] {{ref}}\",\n \"chatWorkspace.workflowNode.stepStatus.completed\": \"This step completed successfully\",\n \"chatWorkspace.workflowNode.stepStatus.failed\": \"This step encountered an error\",\n \"chatWorkspace.workflowNode.stepStatus.interrupted\": \"This step is waiting for human input\",\n \"chatWorkspace.workflowNode.stepStatus.running\": \"This step is currently executing\",\n \"chatWorkspace.workflowNode.stepStatus.skipped\": \"This step was skipped (condition not met)\",\n \"chatWorkspace.workflowNode.terminal.failed\": \"Failed\",\n \"chatWorkspace.workflowNode.terminal.stop\": \"Stop\",\n \"chatWorkspace.workflowNode.terminal.success\": \"Success\",\n \"chatWorkspace.workflowNode.when\": \"When: {{condition}}\",\n \"chatWorkspace.workspace.current\": \"Current Workspace\",\n \"chatWorkspace.workspace.noAssets\": \"No assets yet\",\n \"chatWorkspace.workspace.preview\": \"Preview: {{name}}\",\n \"chatWorkspace.workspace.projectAssets\": \"Project Assets\",\n \"chatWorkspace.workspace.select\": \"Select Workspace\",\n \"chatWorkspace.workspace.selectBeforeUpload\": \"Please select a workspace and project before uploading assets.\",\n \"chatWorkspace.workspace.selectBeforeUploadProject\": \"Please select a workspace and project before uploading.\",\n \"chatWorkspace.workspace.selectFirst\": \"Please select a workspace and project first.\",\n \"chatWorkspace.workspace.selectWorkspaceFirst\": \"Please select a workspace first\",\n \"chatWorkspace.workspace.loadWorkspacesFailed\": \"Failed to load workspaces\",\n \"chatWorkspace.workspace.loadProjectsFailed\": \"Failed to load projects\",\n \"chatWorkspace.workspace.createWorkspaceFailed\": \"Failed to create workspace\",\n \"chatWorkspace.workspace.updateWorkspaceFailed\": \"Failed to update workspace\",\n \"chatWorkspace.workspace.deleteWorkspaceFailed\": \"Failed to delete workspace\",\n \"chatWorkspace.workspace.updateProjectFailed\": \"Failed to update project\",\n \"chatWorkspace.workspace.deleteProjectFailed\": \"Failed to delete project\",\n \"chatWorkspace.workspace.loadFilesFailed\": \"Failed to load files\",\n \"chatWorkspace.workspace.storage\": \"Storage\",\n \"chatWorkspace.workspace.upload\": \"Upload\",\n \"chatWorkspace.workspace.uploaded\": \"Uploaded \\\"{{name}}\\\" successfully\",\n \"chatWorkspace.workspace.uploadFailed\": \"Failed to upload file\",\n \"chatWorkspace.workspace.uploading\": \"Uploading...\",\n \"chatWorkspace.inbox.title\": \"User Inbox\",\n \"chatWorkspace.inbox.subtitle\": \"Tasks requiring your attention\",\n \"chatWorkspace.inbox.empty\": \"Inbox is empty\"\n }\n}\n","{\n \"messages\": {\n \"chatWorkspace.assistantFlow.cliNotInstalled\": \"{{label}} CLI 尚未安装\",\n \"chatWorkspace.assistantFlow.deleted\": \"助手已删除\",\n \"chatWorkspace.assistantFlow.deleteFailed\": \"删除助手失败\",\n \"chatWorkspace.assistantFlow.disabled\": \"{{label}} 已被禁用\",\n \"chatWorkspace.assistantFlow.loading\": \"正在加载助手...\",\n \"chatWorkspace.assistantFlow.localProviderFailed\": \"更新本地 A2A 提供方失败\",\n \"chatWorkspace.assistantFlow.saveFailed\": \"保存智能体配置失败\",\n \"chatWorkspace.assistantFlow.saveSuccess\": \"智能体配置已保存\",\n \"chatWorkspace.assistantNode.action.restart\": \"重启\",\n \"chatWorkspace.assistantNode.action.start\": \"启动\",\n \"chatWorkspace.assistantNode.action.stop\": \"停止\",\n \"chatWorkspace.assistantNode.availableTools\": \"可用工具({{count}})\",\n \"chatWorkspace.assistantNode.chat\": \"对话\",\n \"chatWorkspace.assistantNode.modelEngine\": \"模型引擎\",\n \"chatWorkspace.assistantNode.more\": \"还有 {{count}} 个\",\n \"chatWorkspace.assistantNode.status.disabled\": \"已禁用\",\n \"chatWorkspace.assistantNode.status.notInstalled\": \"未安装\",\n \"chatWorkspace.assistantNode.status.starting\": \"正在启动...\",\n \"chatWorkspace.assistantNode.subAgentArchitecture\": \"子智能体架构({{count}})\",\n \"chatWorkspace.assistantNode.systemPrompt\": \"系统提示词\",\n \"chatWorkspace.assistantNode.toolsCount\": \"{{count}} 个工具\",\n \"chatWorkspace.assistantNode.type.a2aRemote\": \"A2A 远程\",\n \"chatWorkspace.assistantNode.type.deepAgent\": \"编排器\",\n \"chatWorkspace.assistantNode.type.planExecute\": \"计划执行\",\n \"chatWorkspace.assistantNode.type.processing\": \"工作流\",\n \"chatWorkspace.assistantNode.type.react\": \"执行器\",\n \"chatWorkspace.assistantNode.type.sequential\": \"顺序执行\",\n \"chatWorkspace.collections.col.embedding\": \"向量模型\",\n \"chatWorkspace.collections.col.entries\": \"条目数\",\n \"chatWorkspace.collections.col.fields\": \"字段\",\n \"chatWorkspace.collections.col.label\": \"标签\",\n \"chatWorkspace.collections.col.name\": \"名称\",\n \"chatWorkspace.collections.created\": \"集合已创建\",\n \"chatWorkspace.collections.deleteBody\": \"这将删除该集合及其所有条目。\",\n \"chatWorkspace.collections.deleted\": \"集合已删除\",\n \"chatWorkspace.collections.deleteFailed\": \"删除失败\",\n \"chatWorkspace.collections.deleteTitle\": \"删除这个集合?\",\n \"chatWorkspace.collections.editTitle\": \"编辑集合\",\n \"chatWorkspace.collections.empty\": \"暂无集合\",\n \"chatWorkspace.collections.form.addField\": \"添加字段\",\n \"chatWorkspace.collections.form.customFields\": \"自定义字段\",\n \"chatWorkspace.collections.form.displayName\": \"显示名称\",\n \"chatWorkspace.collections.form.embeddingModel\": \"向量模型\",\n \"chatWorkspace.collections.form.embeddingRequired\": \"请选择向量模型\",\n \"chatWorkspace.collections.form.fieldKey\": \"字段名\",\n \"chatWorkspace.collections.form.keyRequired\": \"请填写字段名\",\n \"chatWorkspace.collections.form.labelPlaceholder\": \"例如:疾病知识库\",\n \"chatWorkspace.collections.form.labelRequired\": \"请填写标签\",\n \"chatWorkspace.collections.form.name\": \"名称\",\n \"chatWorkspace.collections.form.namePattern\": \"仅允许小写字母、数字和下划线\",\n \"chatWorkspace.collections.form.nameRequired\": \"请填写名称\",\n \"chatWorkspace.collections.form.required\": \"必填\",\n \"chatWorkspace.collections.form.selectEmbedding\": \"选择向量模型\",\n \"chatWorkspace.collections.form.typeRequired\": \"请选择类型\",\n \"chatWorkspace.collections.new\": \"新建集合\",\n \"chatWorkspace.collections.noEmbedding\": \"未注册向量模型\",\n \"chatWorkspace.collections.noEmbeddingBody\": \"请在网关启动配置中注册向量模型,以启用集合创建与向量检索。\",\n \"chatWorkspace.collections.noEmbeddingTitle\": \"未注册向量模型\",\n \"chatWorkspace.collections.saveFailed\": \"保存失败\",\n \"chatWorkspace.collections.title\": \"集合\",\n \"chatWorkspace.collections.updated\": \"集合已更新\",\n \"chatWorkspace.entries.actionFailed\": \"操作失败\",\n \"chatWorkspace.entries.add\": \"新增\",\n \"chatWorkspace.entries.addFirst\": \"添加第一条记录\",\n \"chatWorkspace.entries.clearFilter\": \"清除筛选\",\n \"chatWorkspace.entries.clearSearchFilters\": \"清除搜索与筛选\",\n \"chatWorkspace.entries.col.content\": \"内容\",\n \"chatWorkspace.entries.col.score\": \"得分\",\n \"chatWorkspace.entries.collapse\": \"收起\",\n \"chatWorkspace.entries.contentPlaceholder\": \"要索引的文本内容…\",\n \"chatWorkspace.entries.created\": \"记录已创建\",\n \"chatWorkspace.entries.deleted\": \"已删除\",\n \"chatWorkspace.entries.deleteTitle\": \"确认删除?\",\n \"chatWorkspace.entries.editTitle\": \"编辑记录\",\n \"chatWorkspace.entries.empty\": \"暂无记录\",\n \"chatWorkspace.entries.expand\": \"展开\",\n \"chatWorkspace.entries.filterField\": \"筛选 {{field}}…\",\n \"chatWorkspace.entries.filterPlaceholder\": \"筛选…\",\n \"chatWorkspace.entries.loadFailed\": \"加载记录失败\",\n \"chatWorkspace.entries.newTitle\": \"新建记录\",\n \"chatWorkspace.entries.noCollection\": \"未选择集合\",\n \"chatWorkspace.entries.noMatches\": \"没有匹配的记录\",\n \"chatWorkspace.entries.reset\": \"重置\",\n \"chatWorkspace.entries.searchFailed\": \"搜索失败\",\n \"chatWorkspace.entries.semantic\": \"语义搜索\",\n \"chatWorkspace.entries.semanticLimit\": \"语义搜索最多返回 50 条结果\",\n \"chatWorkspace.entries.semanticPlaceholder\": \"语义搜索…\",\n \"chatWorkspace.entries.updated\": \"记录已更新\",\n \"chatWorkspace.file.created\": \"创建时间:{{date}}\",\n \"chatWorkspace.file.folder\": \"文件夹\",\n \"chatWorkspace.file.modified\": \"修改时间:{{date}}\",\n \"chatWorkspace.fileBrowser.aria.collapse\": \"收起 {{name}}\",\n \"chatWorkspace.fileBrowser.aria.expand\": \"展开 {{name}}\",\n \"chatWorkspace.fileBrowser.aria.open\": \"打开 {{name}}\",\n \"chatWorkspace.fileBrowser.aria.toggle\": \"展开或收起 {{name}}\",\n \"chatWorkspace.fileBrowser.ascending\": \"升序\",\n \"chatWorkspace.fileBrowser.clickToRefresh\": \"点击刷新\",\n \"chatWorkspace.fileBrowser.descending\": \"降序\",\n \"chatWorkspace.fileBrowser.download\": \"下载\",\n \"chatWorkspace.fileBrowser.downloadFolderFailed\": \"下载文件夹失败\",\n \"chatWorkspace.fileBrowser.emptyFolder\": \"此文件夹中没有文件\",\n \"chatWorkspace.fileBrowser.files\": \"文件\",\n \"chatWorkspace.fileBrowser.noMatch\": \"没有匹配「{{query}}」的文件\",\n \"chatWorkspace.fileBrowser.preview\": \"预览\",\n \"chatWorkspace.fileBrowser.root\": \"根目录\",\n \"chatWorkspace.fileBrowser.searchPlaceholder\": \"搜索文件…\",\n \"chatWorkspace.fileBrowser.selectFile\": \"选择一个文件以查看内容\",\n \"chatWorkspace.fileBrowser.selectProject\": \"请先选择项目以浏览文件\",\n \"chatWorkspace.fileBrowser.share\": \"分享\",\n \"chatWorkspace.fileBrowser.sort.created\": \"创建时间\",\n \"chatWorkspace.fileBrowser.sort.modified\": \"修改时间\",\n \"chatWorkspace.fileBrowser.sort.name\": \"名称\",\n \"chatWorkspace.fileBrowser.title\": \"文件浏览器\",\n \"chatWorkspace.personalAssistant.channelSettings\": \"渠道设置\",\n \"chatWorkspace.personalAssistant.create\": \"创建我的助理\",\n \"chatWorkspace.personalAssistant.customPlaceholder\": \"用你自己的话描述…\",\n \"chatWorkspace.personalAssistant.deleteBody\": \"这将永久删除你的助理、所有对话记录以及你的个人项目。此操作无法撤销。\",\n \"chatWorkspace.personalAssistant.deleted\": \"个人助理已删除\",\n \"chatWorkspace.personalAssistant.deleteOk\": \"全部删除\",\n \"chatWorkspace.personalAssistant.deleteTitle\": \"删除你的个人助理?\",\n \"chatWorkspace.personalAssistant.done\": \"完成!\",\n \"chatWorkspace.personalAssistant.emptyQuestion\": \"有什么可以帮你的?\",\n \"chatWorkspace.personalAssistant.emptyStateQuestion\": \"今天是 {{date}} — 有什么可以帮你的?\",\n \"chatWorkspace.personalAssistant.fieldName\": \"名称\",\n \"chatWorkspace.personalAssistant.fieldPersonality\": \"性格\",\n \"chatWorkspace.personalAssistant.greeting\": \"嗨\",\n \"chatWorkspace.personalAssistant.networkError\": \"网络错误\",\n \"chatWorkspace.personalAssistant.notSet\": \"(未设置)\",\n \"chatWorkspace.personalAssistant.personality.custom.desc\": \"自定义描述——可以是多种性格的混合,也可以完全不同。\",\n \"chatWorkspace.personalAssistant.personality.custom.title\": \"自定义\",\n \"chatWorkspace.personalAssistant.personality.energeticMotivator.desc\": \"充满能量、永远为你打气。为你的每个成就欢呼,从不让你放弃。\",\n \"chatWorkspace.personalAssistant.personality.energeticMotivator.title\": \"活力打气筒\",\n \"chatWorkspace.personalAssistant.personality.warmCaring.desc\": \"温柔、耐心、善解人意——像一位始终支持你的挚友。\",\n \"chatWorkspace.personalAssistant.personality.warmCaring.title\": \"温暖贴心\",\n \"chatWorkspace.personalAssistant.personality.wiseMentor.desc\": \"冷静、深思、有洞察力,总能问到点子上。\",\n \"chatWorkspace.personalAssistant.personality.wiseMentor.title\": \"智慧导师\",\n \"chatWorkspace.personalAssistant.personality.wittyPlayful.desc\": \"妙语连珠,带点调皮,让气氛轻松起来。\",\n \"chatWorkspace.personalAssistant.personality.wittyPlayful.title\": \"风趣调皮\",\n \"chatWorkspace.personalAssistant.stepName.body\": \"这是你每天都会用到的名字——你 AI 伙伴的专属昵称。\",\n \"chatWorkspace.personalAssistant.stepName.placeholder\": \"例如「贾维斯」「小伙伴」\",\n \"chatWorkspace.personalAssistant.stepName.title\": \"你想怎么称呼它?\",\n \"chatWorkspace.personalAssistant.stepReady.body\": \"你的助理拥有独立记忆,并会随着时间逐渐了解你。\",\n \"chatWorkspace.personalAssistant.stepReady.title\": \"快完成了!\",\n \"chatWorkspace.personalAssistant.stepVibe.body\": \"选择一个合适的性格,它会决定助理的说话方式和支持你的风格。\",\n \"chatWorkspace.personalAssistant.stepVibe.title\": \"你想要什么性格?\",\n \"chatWorkspace.personalAssistant.todayIs\": \"今天是 {{date}}\",\n \"chatWorkspace.pin.groupPlaceholder\": \"分组(可选,选择或输入新分组)\",\n \"chatWorkspace.pin.namePlaceholder\": \"菜单名称(必填)\",\n \"chatWorkspace.pin.nameRequired\": \"请输入菜单名称\",\n \"chatWorkspace.pin.pin\": \"固定到菜单\",\n \"chatWorkspace.pin.pinAction\": \"固定\",\n \"chatWorkspace.pin.pinFailed\": \"固定失败\",\n \"chatWorkspace.pin.pinned\": \"已固定到菜单\",\n \"chatWorkspace.pin.title\": \"固定到菜单\",\n \"chatWorkspace.pin.unpin\": \"从菜单取消固定\",\n \"chatWorkspace.pin.unpinFailed\": \"取消固定失败\",\n \"chatWorkspace.pin.unpinned\": \"已从菜单取消固定\",\n \"chatWorkspace.projects.create\": \"创建项目\",\n \"chatWorkspace.projects.created\": \"创建于 {{date}}\",\n \"chatWorkspace.projects.createdToast\": \"项目「{{name}}」已创建\",\n \"chatWorkspace.projects.createFailed\": \"创建项目失败\",\n \"chatWorkspace.projects.createTitle\": \"新建项目\",\n \"chatWorkspace.projects.emptyDescription\": \"创建第一个项目即可开始\",\n \"chatWorkspace.projects.emptyTitle\": \"暂无项目\",\n \"chatWorkspace.projects.itemName\": \"项目\",\n \"chatWorkspace.projects.kind.public\": \"公开\",\n \"chatWorkspace.projects.kind.training\": \"训练\",\n \"chatWorkspace.projects.nameLabel\": \"项目名称\",\n \"chatWorkspace.projects.namePlaceholder\": \"例如:Q4 分析、市场推广活动...\",\n \"chatWorkspace.projects.nameRequired\": \"请填写项目名称\",\n \"chatWorkspace.projects.nameTooLong\": \"名称不得超过 {{max}} 个字符\",\n \"chatWorkspace.projects.new\": \"新建项目\",\n \"chatWorkspace.projects.settings\": \"项目设置\",\n \"chatWorkspace.projects.title\": \"项目\",\n \"chatWorkspace.shares.col.actions\": \"操作\",\n \"chatWorkspace.shares.col.expires\": \"过期时间\",\n \"chatWorkspace.shares.col.status\": \"状态\",\n \"chatWorkspace.shares.col.title\": \"标题\",\n \"chatWorkspace.shares.col.token\": \"Token\",\n \"chatWorkspace.shares.copyLink\": \"复制链接\",\n \"chatWorkspace.shares.fallbackFileName\": \"文件\",\n \"chatWorkspace.shares.loadFailed\": \"加载分享失败\",\n \"chatWorkspace.shares.never\": \"永不过期\",\n \"chatWorkspace.shares.passwordProtected\": \"已设置密码保护\",\n \"chatWorkspace.shares.revoke\": \"撤销\",\n \"chatWorkspace.shares.revokeBody\": \"此链接将立即失效。\",\n \"chatWorkspace.shares.revoked\": \"分享已撤销\",\n \"chatWorkspace.shares.revokeTitle\": \"撤销分享?\",\n \"chatWorkspace.shares.status.active\": \"有效\",\n \"chatWorkspace.shares.status.expired\": \"已过期\",\n \"chatWorkspace.shares.status.revoked\": \"已撤销\",\n \"chatWorkspace.shares.title\": \"我的分享\",\n \"chatWorkspace.skillNode.add\": \"新增\",\n \"chatWorkspace.skillNode.contentPlaceholder\": \"在此输入技能内容...\",\n \"chatWorkspace.skillNode.contentSection\": \"内容\",\n \"chatWorkspace.skillNode.copyId\": \"复制 ID\",\n \"chatWorkspace.skillNode.deleted\": \"技能已删除\",\n \"chatWorkspace.skillNode.deleteFailed\": \"删除技能时出错\",\n \"chatWorkspace.skillNode.edit\": \"编辑技能\",\n \"chatWorkspace.skillNode.idMissing\": \"缺少技能 ID\",\n \"chatWorkspace.skillNode.keyPlaceholder\": \"键\",\n \"chatWorkspace.skillNode.meta\": \"元数据 {{index}}\",\n \"chatWorkspace.skillNode.metadataCount\": \"元数据({{count}})\",\n \"chatWorkspace.skillNode.noMetadata\": \"暂无元数据。点击「新增」添加一条。\",\n \"chatWorkspace.skillNode.updated\": \"技能已更新\",\n \"chatWorkspace.skillNode.updateError\": \"更新技能时出错\",\n \"chatWorkspace.skillNode.updateFailed\": \"更新技能失败\",\n \"chatWorkspace.skillNode.valuePlaceholder\": \"值\",\n \"chatWorkspace.skills.deleteConfirm\": \"确定要删除「{{name}}」吗?\",\n \"chatWorkspace.skills.deleted\": \"技能已删除\",\n \"chatWorkspace.skills.deleteFailed\": \"删除技能失败\",\n \"chatWorkspace.skills.deleteTitle\": \"删除技能\",\n \"chatWorkspace.skills.editTitle\": \"编辑技能\",\n \"chatWorkspace.skills.emptyDescription\": \"点击「新建技能」创建一个\",\n \"chatWorkspace.skills.emptyTitle\": \"暂无技能\",\n \"chatWorkspace.skills.field.compatibility\": \"兼容性\",\n \"chatWorkspace.skills.field.content\": \"内容\",\n \"chatWorkspace.skills.field.description\": \"描述\",\n \"chatWorkspace.skills.field.license\": \"许可证\",\n \"chatWorkspace.skills.field.metadata\": \"元数据\",\n \"chatWorkspace.skills.field.name\": \"名称\",\n \"chatWorkspace.skills.field.skillMd\": \"SKILL.md\",\n \"chatWorkspace.skills.graph\": \"图谱\",\n \"chatWorkspace.skills.itemName\": \"技能\",\n \"chatWorkspace.skills.loadFailed\": \"加载技能失败\",\n \"chatWorkspace.skills.new\": \"新建技能\",\n \"chatWorkspace.skills.saveChanges\": \"保存修改\",\n \"chatWorkspace.skills.subCount\": \"{{count}} 个子技能\",\n \"chatWorkspace.skills.title\": \"技能\",\n \"chatWorkspace.skills.updated\": \"技能已更新\",\n \"chatWorkspace.skills.updateFailed\": \"更新技能失败\",\n \"chatWorkspace.toolNode.approval\": \"需审批\",\n \"chatWorkspace.toolNode.copyId\": \"复制 ID\",\n \"chatWorkspace.toolNode.direct\": \"直接返回\",\n \"chatWorkspace.toolNode.directReturn\": \"直接返回\",\n \"chatWorkspace.toolNode.inputSchema\": \"输入 Schema\",\n \"chatWorkspace.toolNode.requiresApproval\": \"需要审批\",\n \"chatWorkspace.toolNode.schema\": \"Schema\",\n \"chatWorkspace.toolNode.useTool\": \"使用工具\",\n \"chatWorkspace.tools.empty\": \"暂无可用工具\",\n \"chatWorkspace.tools.errorTitle\": \"加载工具出错\",\n \"chatWorkspace.tools.invalidResponse\": \"响应格式无效\",\n \"chatWorkspace.tools.refreshTitle\": \"刷新工具\",\n \"chatWorkspace.tools.requiresApproval\": \"需要审批\",\n \"chatWorkspace.topologyAutomation.copilot\": \"Copilot\",\n \"chatWorkspace.topologyAutomation.createWorkflow\": \"新建工作流\",\n \"chatWorkspace.topologyAutomation.deleteBody\": \"这将删除该工作流及其关联的全部拓扑。此操作无法撤销。\",\n \"chatWorkspace.topologyAutomation.deleteTitle\": \"删除工作流\",\n \"chatWorkspace.topologyAutomation.deleteFailed\": \"删除工作流失败\",\n \"chatWorkspace.topologyAutomation.incoming\": \"入边 {{count}}\",\n \"chatWorkspace.topologyAutomation.loading\": \"正在加载工作流...\",\n \"chatWorkspace.topologyAutomation.noDefinitions\": \"未找到工作流定义。\",\n \"chatWorkspace.topologyAutomation.noDescription\": \"未设置描述。请使用工作流构建器为该工作流添加说明。\",\n \"chatWorkspace.topologyAutomation.noDescriptionShort\": \"暂无描述\",\n \"chatWorkspace.topologyAutomation.outgoing\": \"出边 {{count}}\",\n \"chatWorkspace.topologyAutomation.selectWorkflow\": \"选择一个工作流以查看其拓扑\",\n \"chatWorkspace.topologyAutomation.stepsCount\": \"{{count}} 个步骤\",\n \"chatWorkspace.topologyAutomation.title\": \"工作流\",\n \"chatWorkspace.topologyRuntime.autoRefresh\": \"自动刷新\",\n \"chatWorkspace.topologyRuntime.completed\": \"完成时间\",\n \"chatWorkspace.topologyRuntime.daysAgo\": \"{{count}} 天前\",\n \"chatWorkspace.topologyRuntime.deleteRunBody\": \"删除这次工作流运行及其所有步骤记录?\",\n \"chatWorkspace.topologyRuntime.deleteRunFailed\": \"删除运行记录失败\",\n \"chatWorkspace.topologyRuntime.deleteRunTitle\": \"删除运行记录\",\n \"chatWorkspace.topologyRuntime.duration\": \"耗时\",\n \"chatWorkspace.topologyRuntime.empty\": \"暂无工作流运行记录。\",\n \"chatWorkspace.topologyRuntime.ended\": \"结束:{{time}}\",\n \"chatWorkspace.topologyRuntime.flowView\": \"流程视图\",\n \"chatWorkspace.topologyRuntime.hoursAgo\": \"{{count}} 小时前\",\n \"chatWorkspace.topologyRuntime.input\": \"输入\",\n \"chatWorkspace.topologyRuntime.justNow\": \"刚刚\",\n \"chatWorkspace.topologyRuntime.loadFailed\": \"加载工作流运行记录失败\",\n \"chatWorkspace.topologyRuntime.minutesAgo\": \"{{count}} 分钟前\",\n \"chatWorkspace.topologyRuntime.noStepRecords\": \"暂无步骤记录\",\n \"chatWorkspace.topologyRuntime.output\": \"输出\",\n \"chatWorkspace.topologyRuntime.pipelineExecution\": \"流水线执行\",\n \"chatWorkspace.topologyRuntime.purpose\": \"用途:{{purpose}}\",\n \"chatWorkspace.topologyRuntime.refreshNow\": \"立即刷新\",\n \"chatWorkspace.topologyRuntime.runStatus.cancelled\": \"已取消\",\n \"chatWorkspace.topologyRuntime.runStatus.completed\": \"已完成\",\n \"chatWorkspace.topologyRuntime.runStatus.failed\": \"失败\",\n \"chatWorkspace.topologyRuntime.runStatus.interrupted\": \"等待输入\",\n \"chatWorkspace.topologyRuntime.runStatus.running\": \"运行中\",\n \"chatWorkspace.topologyRuntime.started\": \"开始:{{time}}\",\n \"chatWorkspace.topologyRuntime.startedLabel\": \"开始时间\",\n \"chatWorkspace.topologyRuntime.stepDetail\": \"步骤详情\",\n \"chatWorkspace.topologyRuntime.title\": \"工作流运行记录\",\n \"chatWorkspace.workflowAutomation.copilot\": \"Copilot\",\n \"chatWorkspace.workflowAutomation.createWorkflow\": \"新建工作流\",\n \"chatWorkspace.workflowAutomation.deleteBody\": \"这将永久删除该工作流智能体。\",\n \"chatWorkspace.workflowAutomation.deleteTitle\": \"删除工作流\",\n \"chatWorkspace.workflowAutomation.emptyTitle\": \"暂无工作流\",\n \"chatWorkspace.workflowAutomation.filterPlaceholder\": \"筛选工作流...\",\n \"chatWorkspace.workflowAutomation.loadFailed\": \"加载工作流失败\",\n \"chatWorkspace.workflowAutomation.loading\": \"正在加载工作流...\",\n \"chatWorkspace.workflowAutomation.loadingDsl\": \"正在加载工作流 DSL...\",\n \"chatWorkspace.workflowAutomation.noDefinitions\": \"未找到工作流定义。\",\n \"chatWorkspace.workflowAutomation.noDescription\": \"未设置描述。\",\n \"chatWorkspace.workflowAutomation.noMatch\": \"没有匹配的工作流\",\n \"chatWorkspace.workflowAutomation.selectWorkflow\": \"选择一个工作流以查看其图谱\",\n \"chatWorkspace.workflowAutomation.title\": \"工作流\",\n \"chatWorkspace.workflowCanvas.ended\": \"结束:{{time}}\",\n \"chatWorkspace.workflowCanvas.input\": \"输入\",\n \"chatWorkspace.workflowCanvas.noIo\": \"暂无输入/输出数据\",\n \"chatWorkspace.workflowCanvas.noNodes\": \"工作流中没有节点\",\n \"chatWorkspace.workflowCanvas.output\": \"输出\",\n \"chatWorkspace.workflowCanvas.parallel\": \"并行\",\n \"chatWorkspace.workflowCanvas.purpose\": \"用途:{{purpose}}\",\n \"chatWorkspace.workflowCanvas.started\": \"开始:{{time}}\",\n \"chatWorkspace.workflowCanvas.stepDetail\": \"步骤详情\",\n \"chatWorkspace.workflowCanvas.tabIo\": \"输入 / 输出\",\n \"chatWorkspace.workflowNode.askTooltip\": \"此步骤需要人工确认后才能继续\",\n \"chatWorkspace.workflowNode.inline\": \"内联\",\n \"chatWorkspace.workflowNode.items\": \"数组项\",\n \"chatWorkspace.workflowNode.noSchema\": \"未定义 Schema\",\n \"chatWorkspace.workflowNode.output\": \"输出\",\n \"chatWorkspace.workflowNode.pending\": \"待执行\",\n \"chatWorkspace.workflowNode.properties\": \"属性\",\n \"chatWorkspace.workflowNode.refDelegated\": \"委派给智能体:{{name}}\",\n \"chatWorkspace.workflowNode.refDeleted\": \"智能体「{{ref}}」已不存在\",\n \"chatWorkspace.workflowNode.refDeletedTag\": \"[已删除] {{ref}}\",\n \"chatWorkspace.workflowNode.stepStatus.completed\": \"此步骤已成功完成\",\n \"chatWorkspace.workflowNode.stepStatus.failed\": \"此步骤发生错误\",\n \"chatWorkspace.workflowNode.stepStatus.interrupted\": \"此步骤正在等待人工输入\",\n \"chatWorkspace.workflowNode.stepStatus.running\": \"此步骤正在执行中\",\n \"chatWorkspace.workflowNode.stepStatus.skipped\": \"此步骤被跳过(条件未满足)\",\n \"chatWorkspace.workflowNode.terminal.failed\": \"失败\",\n \"chatWorkspace.workflowNode.terminal.stop\": \"停止\",\n \"chatWorkspace.workflowNode.terminal.success\": \"成功\",\n \"chatWorkspace.workflowNode.when\": \"条件:{{condition}}\",\n \"chatWorkspace.workspace.current\": \"当前工作区\",\n \"chatWorkspace.workspace.noAssets\": \"暂无资源\",\n \"chatWorkspace.workspace.preview\": \"预览:{{name}}\",\n \"chatWorkspace.workspace.projectAssets\": \"项目资源\",\n \"chatWorkspace.workspace.select\": \"选择工作区\",\n \"chatWorkspace.workspace.selectBeforeUpload\": \"请先选择工作区和项目,然后再上传资源。\",\n \"chatWorkspace.workspace.selectBeforeUploadProject\": \"请先选择工作区和项目,然后再上传。\",\n \"chatWorkspace.workspace.selectFirst\": \"请先选择工作区和项目。\",\n \"chatWorkspace.workspace.selectWorkspaceFirst\": \"请先选择工作区\",\n \"chatWorkspace.workspace.loadWorkspacesFailed\": \"加载工作区失败\",\n \"chatWorkspace.workspace.loadProjectsFailed\": \"加载项目失败\",\n \"chatWorkspace.workspace.createWorkspaceFailed\": \"创建工作区失败\",\n \"chatWorkspace.workspace.updateWorkspaceFailed\": \"更新工作区失败\",\n \"chatWorkspace.workspace.deleteWorkspaceFailed\": \"删除工作区失败\",\n \"chatWorkspace.workspace.updateProjectFailed\": \"更新项目失败\",\n \"chatWorkspace.workspace.deleteProjectFailed\": \"删除项目失败\",\n \"chatWorkspace.workspace.loadFilesFailed\": \"加载文件失败\",\n \"chatWorkspace.workspace.storage\": \"存储\",\n \"chatWorkspace.workspace.upload\": \"上传\",\n \"chatWorkspace.workspace.uploaded\": \"已成功上传「{{name}}」\",\n \"chatWorkspace.workspace.uploadFailed\": \"上传文件失败\",\n \"chatWorkspace.workspace.uploading\": \"上传中...\",\n \"chatWorkspace.inbox.title\": \"用户收件箱\",\n \"chatWorkspace.inbox.subtitle\": \"需要你处理的任务\",\n \"chatWorkspace.inbox.empty\": \"收件箱暂无内容\"\n }\n}\n","{\n \"messages\": {\n \"common.confirm\": \"Confirm\",\n \"common.cancel\": \"Cancel\",\n \"common.submit\": \"Submit\",\n \"common.close\": \"Close\",\n \"common.back\": \"Back\",\n \"common.next\": \"Next\",\n \"common.save\": \"Save\",\n \"common.saved\": \"Saved\",\n \"common.delete\": \"Delete\",\n \"common.edit\": \"Edit\",\n \"common.create\": \"Create\",\n \"common.copy\": \"Copy\",\n \"common.copied\": \"Copied\",\n \"common.rename\": \"Rename\",\n \"common.refresh\": \"Refresh\",\n \"common.retry\": \"Retry\",\n \"common.loading\": \"Loading...\",\n \"common.saving\": \"Saving...\",\n \"common.search\": \"Search\",\n \"common.empty\": \"No data\",\n \"common.error\": \"Something went wrong\",\n \"common.unsavedChanges\": \"You have unsaved changes\",\n \"common.yes\": \"Yes\",\n \"common.no\": \"No\",\n \"common.ok\": \"OK\",\n \"common.time.justNow\": \"just now\",\n \"common.time.minutesAgo\": \"{{count}}m ago\",\n \"common.time.hoursAgo\": \"{{count}}h ago\",\n \"common.time.daysAgo\": \"{{count}}d ago\",\n \"common.time.monthsAgo\": \"{{count}}mo ago\",\n \"common.time.yearsAgo\": \"{{count}}y ago\",\n \"common.item.project_one\": \"project\",\n \"common.item.project_other\": \"projects\",\n \"common.item.skill_one\": \"skill\",\n \"common.item.skill_other\": \"skills\",\n \"common.item.connection_one\": \"connection\",\n \"common.item.connection_other\": \"connections\",\n \"common.item.plugin_one\": \"plugin\",\n \"common.item.plugin_other\": \"plugins\",\n \"common.item.provider_one\": \"provider\",\n \"common.item.provider_other\": \"providers\",\n \"common.item.profile_one\": \"profile\",\n \"common.item.profile_other\": \"profiles\",\n \"common.item.agent_one\": \"agent\",\n \"common.item.agent_other\": \"agents\",\n \"common.item.key_one\": \"key\",\n \"common.item.key_other\": \"keys\",\n \"common.item.app_one\": \"app\",\n \"common.item.app_other\": \"apps\",\n \"common.item.case_one\": \"case\",\n \"common.item.case_other\": \"cases\",\n \"common.item.project\": \"projects\",\n \"common.item.skill\": \"skills\",\n \"common.item.connection\": \"connections\",\n \"common.item.plugin\": \"plugins\",\n \"common.item.provider\": \"providers\",\n \"common.item.profile\": \"profiles\",\n \"common.item.agent\": \"agents\",\n \"common.item.key\": \"keys\",\n \"common.item.app\": \"apps\",\n \"common.item.case\": \"cases\",\n \"common.itemCount\": \"{{n}} {{item}}\"\n }\n}\n","{\n \"messages\": {\n \"common.confirm\": \"确定\",\n \"common.cancel\": \"取消\",\n \"common.submit\": \"提交\",\n \"common.close\": \"关闭\",\n \"common.back\": \"返回\",\n \"common.next\": \"下一步\",\n \"common.save\": \"保存\",\n \"common.saved\": \"已保存\",\n \"common.delete\": \"删除\",\n \"common.edit\": \"编辑\",\n \"common.create\": \"新建\",\n \"common.copy\": \"复制\",\n \"common.copied\": \"已复制\",\n \"common.rename\": \"重命名\",\n \"common.refresh\": \"刷新\",\n \"common.retry\": \"重试\",\n \"common.loading\": \"加载中...\",\n \"common.saving\": \"保存中...\",\n \"common.search\": \"搜索\",\n \"common.empty\": \"暂无数据\",\n \"common.error\": \"出错了\",\n \"common.unsavedChanges\": \"有未保存的更改\",\n \"common.yes\": \"是\",\n \"common.no\": \"否\",\n \"common.ok\": \"确定\",\n \"common.time.justNow\": \"刚刚\",\n \"common.time.minutesAgo\": \"{{count}} 分钟前\",\n \"common.time.hoursAgo\": \"{{count}} 小时前\",\n \"common.time.daysAgo\": \"{{count}} 天前\",\n \"common.time.monthsAgo\": \"{{count}} 个月前\",\n \"common.time.yearsAgo\": \"{{count}} 年前\",\n \"common.item.project_one\": \"项目\",\n \"common.item.project_other\": \"项目\",\n \"common.item.skill_one\": \"技能\",\n \"common.item.skill_other\": \"技能\",\n \"common.item.connection_one\": \"连接\",\n \"common.item.connection_other\": \"连接\",\n \"common.item.plugin_one\": \"插件\",\n \"common.item.plugin_other\": \"插件\",\n \"common.item.provider_one\": \"服务商\",\n \"common.item.provider_other\": \"服务商\",\n \"common.item.profile_one\": \"运行时配置\",\n \"common.item.profile_other\": \"运行时配置\",\n \"common.item.agent_one\": \"智能体\",\n \"common.item.agent_other\": \"智能体\",\n \"common.item.key_one\": \"密钥\",\n \"common.item.key_other\": \"密钥\",\n \"common.item.app_one\": \"应用\",\n \"common.item.app_other\": \"应用\",\n \"common.item.case_one\": \"用例\",\n \"common.item.case_other\": \"用例\",\n \"common.item.project\": \"项目\",\n \"common.item.skill\": \"技能\",\n \"common.item.connection\": \"连接\",\n \"common.item.plugin\": \"插件\",\n \"common.item.provider\": \"服务商\",\n \"common.item.profile\": \"运行时配置\",\n \"common.item.agent\": \"智能体\",\n \"common.item.key\": \"密钥\",\n \"common.item.app\": \"应用\",\n \"common.item.case\": \"用例\",\n \"common.itemCount\": \"{{n}} 个{{item}}\"\n }\n}\n","{\n \"messages\": {\n \"cospace.nav.aria\": \"CoSpace navigation\",\n \"cospace.nav.rooms\": \"Rooms\",\n \"cospace.nav.orgs\": \"Orgs\",\n \"cospace.nav.me\": \"Me\",\n \"cospace.orgs.selectPrompt\": \"Select a bot or member to view details\",\n \"cospace.orgs.back\": \"Back to orgs\",\n \"cospace.orgs.startChatFailed\": \"Failed to start direct chat\",\n \"cospace.orgs.invalidResponse\": \"Invalid direct chat response\",\n \"cospace.orgs.listTitleBots\": \"Bots ({{count}})\",\n \"cospace.orgs.listTitleMembers\": \"Members ({{count}})\",\n \"cospace.orgs.empty\": \"No bots or members available\",\n \"cospace.orgs.loadFailed\": \"Failed to load orgs\",\n \"cospace.orgs.hasDirectChat\": \"Has direct chat\",\n \"cospace.orgs.typeBot\": \"Bot\",\n \"cospace.orgs.typeMember\": \"Member\",\n \"cospace.orgs.roleCoordinator\": \"Coordinator\",\n \"cospace.orgs.roleSpecialist\": \"Specialist\",\n \"cospace.detail.sectionDetails\": \"Details\",\n \"cospace.detail.mentionName\": \"Mention name\",\n \"cospace.detail.responsibility\": \"Responsibility\",\n \"cospace.detail.assistantId\": \"Assistant ID\",\n \"cospace.detail.email\": \"Email\",\n \"cospace.detail.userId\": \"User ID\",\n \"cospace.detail.joined\": \"Joined\",\n \"cospace.detail.openDirectChat\": \"Open direct chat\",\n \"cospace.detail.startDirectChat\": \"Start direct chat\",\n \"cospace.rooms.selectPrompt\": \"Select a room to start chatting\",\n \"cospace.rooms.newGroup\": \"New Group\",\n \"cospace.rooms.searchPlaceholder\": \"Search rooms...\",\n \"cospace.rooms.groupRooms\": \"Group Rooms\",\n \"cospace.rooms.directRooms\": \"Direct Rooms\",\n \"cospace.rooms.noMatch\": \"No rooms match your search\",\n \"cospace.rooms.empty\": \"No rooms available\",\n \"cospace.group.title\": \"New Group\",\n \"cospace.group.namePlaceholder\": \"Group name\",\n \"cospace.group.created\": \"Group created\",\n \"cospace.group.createFailed\": \"Failed to create group\",\n \"cospace.group.missingProjectId\": \"Group created but no project id was returned\"\n }\n}\n","{\n \"messages\": {\n \"cospace.nav.aria\": \"CoSpace 导航\",\n \"cospace.nav.rooms\": \"会话\",\n \"cospace.nav.orgs\": \"组织\",\n \"cospace.nav.me\": \"我\",\n \"cospace.orgs.selectPrompt\": \"选择一个机器人或成员以查看详情\",\n \"cospace.orgs.back\": \"返回组织列表\",\n \"cospace.orgs.startChatFailed\": \"发起即时会话失败\",\n \"cospace.orgs.invalidResponse\": \"即时会话响应无效\",\n \"cospace.orgs.listTitleBots\": \"机器人({{count}})\",\n \"cospace.orgs.listTitleMembers\": \"成员({{count}})\",\n \"cospace.orgs.empty\": \"没有可用的机器人或成员\",\n \"cospace.orgs.loadFailed\": \"加载组织失败\",\n \"cospace.orgs.hasDirectChat\": \"已有即时会话\",\n \"cospace.orgs.typeBot\": \"机器人\",\n \"cospace.orgs.typeMember\": \"成员\",\n \"cospace.orgs.roleCoordinator\": \"协调者\",\n \"cospace.orgs.roleSpecialist\": \"专家\",\n \"cospace.detail.sectionDetails\": \"详情\",\n \"cospace.detail.mentionName\": \"提及名\",\n \"cospace.detail.responsibility\": \"职责\",\n \"cospace.detail.assistantId\": \"助手 ID\",\n \"cospace.detail.email\": \"邮箱\",\n \"cospace.detail.userId\": \"用户 ID\",\n \"cospace.detail.joined\": \"加入时间\",\n \"cospace.detail.openDirectChat\": \"打开即时会话\",\n \"cospace.detail.startDirectChat\": \"发起即时会话\",\n \"cospace.rooms.selectPrompt\": \"选择一个会话开始聊天\",\n \"cospace.rooms.newGroup\": \"新建群组\",\n \"cospace.rooms.searchPlaceholder\": \"搜索会话...\",\n \"cospace.rooms.groupRooms\": \"群组会话\",\n \"cospace.rooms.directRooms\": \"即时会话\",\n \"cospace.rooms.noMatch\": \"没有匹配的会话\",\n \"cospace.rooms.empty\": \"暂无可用会话\",\n \"cospace.group.title\": \"新建群组\",\n \"cospace.group.namePlaceholder\": \"群组名称\",\n \"cospace.group.created\": \"群组已创建\",\n \"cospace.group.createFailed\": \"创建群组失败\",\n \"cospace.group.missingProjectId\": \"群组已创建,但未返回项目 ID\"\n }\n}\n","{\n \"messages\": {}\n}\n","{\n \"messages\": {}\n}\n","{\n \"messages\": {\n \"eval.status.running\": \"Running\",\n \"eval.status.completed\": \"Completed\",\n \"eval.status.failed\": \"Failed\",\n \"eval.status.aborted\": \"Aborted\",\n \"eval.action.add\": \"Add\",\n \"eval.cases.title\": \"Test Cases\",\n \"eval.suites.title\": \"Test Suites\",\n \"eval.recentRuns.title\": \"Recent Runs\",\n \"eval.rubricCount\": \"{{count}} rubric{{s}}\",\n \"eval.delete.irreversible\": \"This action cannot be undone.\",\n \"eval.run.passed\": \"passed\",\n \"eval.run.failed\": \"failed\",\n \"eval.run.passSummary\": \"{{passed}}/{{total}} passed\",\n \"eval.run.score\": \"Score: {{score}}\",\n \"eval.run.deleteTitle\": \"Delete this run?\",\n \"eval.run.deleteDescription\": \"Run results will be permanently deleted.\",\n \"eval.run.deleted\": \"Run deleted\",\n \"eval.dashboard.title\": \"Evaluation Dashboard\",\n \"eval.dashboard.breadcrumb\": \"Dashboard\",\n \"eval.dashboard.selectProject\": \"Select Project\",\n \"eval.dashboard.goToSuites\": \"Go to Suites\",\n \"eval.dashboard.totalRuns\": \"Total Runs\",\n \"eval.dashboard.latestPassRate\": \"Latest Pass Rate\",\n \"eval.dashboard.notAvailable\": \"N/A\",\n \"eval.dashboard.suitesSection\": \"Evaluation Suites\",\n \"eval.dashboard.viewAll\": \"View All\",\n \"eval.dashboard.noRuns\": \"No runs yet. Go to Suites to run your first evaluation.\",\n \"eval.suite.newSuite\": \"New Suite\",\n \"eval.suite.runAll\": \"Run All\",\n \"eval.suite.createSuite\": \"Create Suite\",\n \"eval.suite.namePlaceholder\": \"Suite name\",\n \"eval.suite.empty\": \"No test suites yet\",\n \"eval.suite.casesLabel\": \"Cases\",\n \"eval.suite.deleteTitle\": \"Delete suite?\",\n \"eval.suite.cardDeleteTitle\": \"Delete this suite?\",\n \"eval.suite.cardSubtitle\": \"Server-side agent testing\",\n \"eval.suite.testCaseCount\": \"{{count}} test cases\",\n \"eval.suite.breadcrumb\": \"Suites\",\n \"eval.suite.fallbackTitle\": \"Suite\",\n \"eval.project.label\": \"Project\",\n \"eval.project.nameLabel\": \"Project Name\",\n \"eval.project.namePlaceholder\": \"e.g. Production Agents\",\n \"eval.project.namePlaceholderStaging\": \"e.g. Staging\",\n \"eval.project.targetServer\": \"Target Server\",\n \"eval.project.nameRequired\": \"Name is required\",\n \"eval.project.newProject\": \"New Project\",\n \"eval.project.newProjectPlus\": \"+ New Project\",\n \"eval.project.select\": \"Select project\",\n \"eval.project.inProcess\": \"In-Process\",\n \"eval.project.judgeModel\": \"Scoring Model\",\n \"eval.project.judgeModelLabel\": \"Scoring Model: {{model}}\",\n \"eval.project.judgeModelRequired\": \"Please select a scoring model\",\n \"eval.project.judgeModelPlaceholder\": \"Select a registered model\",\n \"eval.project.concurrency\": \"Concurrency\",\n \"eval.project.concurrencyLabel\": \"Concurrency: {{value}}\",\n \"eval.project.deleteTitle\": \"Delete this project?\",\n \"eval.project.notFound\": \"Project not found\",\n \"eval.project.runEvaluation\": \"Run Evaluation\",\n \"eval.project.suitesCount\": \"Test Suites ({{count}})\",\n \"eval.project.caseCount\": \"{{count}} cases\",\n \"eval.project.deleteSuiteTitle\": \"Delete this suite and all its cases?\",\n \"eval.project.runs\": \"Runs\",\n \"eval.project.noRuns\": \"No runs yet\",\n \"eval.projects.title\": \"Evaluation Projects\",\n \"eval.projects.subtitle\": \"Test your agents against benchmark cases\",\n \"eval.projects.empty\": \"No evaluation projects yet. Create one to start testing your agents.\",\n \"eval.projects.create\": \"Create Project\",\n \"eval.projects.createTitle\": \"Create Evaluation Project\",\n \"eval.case.add\": \"Add Case\",\n \"eval.case.addTitle\": \"Add Test Case\",\n \"eval.case.editTitle\": \"Edit Test Case\",\n \"eval.case.runAll\": \"Run All Cases\",\n \"eval.case.inputMessage\": \"Input Message\",\n \"eval.case.inputPlaceholder\": \"What to send to the agent\",\n \"eval.case.agent\": \"Agent\",\n \"eval.case.agentPlaceholder\": \"Select agent\",\n \"eval.case.outputType\": \"Output Type\",\n \"eval.case.outputType.messageContent\": \"Message Content\",\n \"eval.case.outputType.fileContent\": \"File Content\",\n \"eval.case.expectedOutput\": \"Expected Output\",\n \"eval.case.expectedOutputPlaceholder\": \"Describe expected output\",\n \"eval.case.expectedOutputDescription\": \"Expected output description\",\n \"eval.case.assertionDefault\": \"Response should be relevant and accurate\",\n \"eval.case.untitled\": \"Untitled case\",\n \"eval.case.emptyTitle\": \"No test cases\",\n \"eval.case.emptyDescription\": \"Add your first test case to get started\",\n \"eval.case.deleteTitle\": \"Delete case?\",\n \"eval.case.deleteTestCaseTitle\": \"Delete test case?\",\n \"eval.case.userMessagePlaceholder\": \"User message (e.g. Summarize this doc)\",\n \"eval.case.agentIdsPlaceholder\": \"Agent IDs (comma-separated)\",\n \"eval.case.loadAgentsFailed\": \"Failed to load agents\",\n \"eval.case.created\": \"Case created\",\n \"eval.case.updated\": \"Case updated\",\n \"eval.case.deleted\": \"Case deleted\",\n \"eval.results.title\": \"Run Results\",\n \"eval.results.loading\": \"Loading validation results…\",\n \"eval.results.finalizing\": \"Finalizing validation results…\",\n \"eval.results.notFound\": \"Evaluation run not found\",\n \"eval.results.refreshFailed\": \"Validation results could not be refreshed\",\n \"eval.results.disconnected\": \"Live updates disconnected\",\n \"eval.results.disconnectedDescription\": \"Validation may still be running. Persisted results remain visible while live updates are unavailable.\",\n \"eval.results.reconnect\": \"Reconnect\",\n \"eval.results.casesProgress\": \"{{completed}} / {{total}} cases\",\n \"eval.results.passedCount\": \"{{count}} passed\",\n \"eval.results.failedCount\": \"{{count}} failed\",\n \"eval.results.totalCases\": \"Total Cases\",\n \"eval.results.passed\": \"Passed\",\n \"eval.results.failed\": \"Failed\",\n \"eval.results.avgScore\": \"Avg Score\",\n \"eval.results.passRate\": \"Pass Rate\",\n \"eval.results.error\": \"Error: {{message}}\",\n \"eval.results.envTag\": \"env: {{id}}\",\n \"eval.results.deleteRun\": \"Delete Run\",\n \"eval.results.deleteFailed\": \"Failed to delete run\",\n \"eval.results.caseResults\": \"Case Results\",\n \"eval.results.empty\": \"No results yet\",\n \"eval.results.interrupted\": \"Interrupted\",\n \"eval.results.judgeSummary\": \"Judge Summary\",\n \"eval.results.dimensionScores\": \"Dimension Scores ({{count}} rubric{{s}})\",\n \"eval.results.noDetail\": \"No detail available\",\n \"eval.runEnv.title\": \"Select Test Environment\",\n \"eval.runEnv.description\": \"Choose the workspace project environment this evaluation run executes in\",\n \"eval.runEnv.required\": \"Please select a test environment first\",\n \"eval.runEnv.run\": \"Run\",\n \"eval.error.fetchRunsFailed\": \"Failed to fetch evaluation runs\",\n \"eval.error.invalidRunsResponse\": \"Invalid evaluation runs response\",\n \"eval.error.fetchSuitesFailed\": \"Failed to fetch evaluation suites\",\n \"eval.error.invalidSuitesResponse\": \"Invalid evaluation suites response\",\n \"eval.error.fetchRunDetailFailed\": \"Failed to fetch evaluation run detail\",\n \"eval.error.invalidRunDetailResponse\": \"Evaluation run detail response is missing or malformed\",\n \"eval.error.unknownSuite\": \"Unknown suite\",\n \"eval.error.aborted\": \"Evaluation aborted\",\n \"eval.error.failed\": \"Evaluation failed\",\n \"eval.error.streamFailed\": \"Evaluation stream failed\",\n \"eval.error.streamDisconnected\": \"Evaluation stream disconnected\"\n }\n}\n","{\n \"messages\": {\n \"eval.status.running\": \"运行中\",\n \"eval.status.completed\": \"已完成\",\n \"eval.status.failed\": \"失败\",\n \"eval.status.aborted\": \"已中止\",\n \"eval.action.add\": \"添加\",\n \"eval.cases.title\": \"测试用例\",\n \"eval.suites.title\": \"测试套件\",\n \"eval.recentRuns.title\": \"最近运行\",\n \"eval.rubricCount\": \"{{count}} 项指标\",\n \"eval.delete.irreversible\": \"此操作无法撤销。\",\n \"eval.run.passed\": \"通过\",\n \"eval.run.failed\": \"失败\",\n \"eval.run.passSummary\": \"{{passed}}/{{total}} 通过\",\n \"eval.run.score\": \"评分:{{score}}\",\n \"eval.run.deleteTitle\": \"删除此运行?\",\n \"eval.run.deleteDescription\": \"运行结果将被永久删除。\",\n \"eval.run.deleted\": \"运行已删除\",\n \"eval.dashboard.title\": \"评测看板\",\n \"eval.dashboard.breadcrumb\": \"看板\",\n \"eval.dashboard.selectProject\": \"选择项目\",\n \"eval.dashboard.goToSuites\": \"前往套件\",\n \"eval.dashboard.totalRuns\": \"运行总数\",\n \"eval.dashboard.latestPassRate\": \"最新通过率\",\n \"eval.dashboard.notAvailable\": \"暂无\",\n \"eval.dashboard.suitesSection\": \"评测套件\",\n \"eval.dashboard.viewAll\": \"查看全部\",\n \"eval.dashboard.noRuns\": \"暂无运行记录。前往「套件」发起第一次评测。\",\n \"eval.suite.newSuite\": \"新建套件\",\n \"eval.suite.runAll\": \"全部运行\",\n \"eval.suite.createSuite\": \"创建套件\",\n \"eval.suite.namePlaceholder\": \"套件名称\",\n \"eval.suite.empty\": \"暂无测试套件\",\n \"eval.suite.casesLabel\": \"用例\",\n \"eval.suite.deleteTitle\": \"删除套件?\",\n \"eval.suite.cardDeleteTitle\": \"删除此套件?\",\n \"eval.suite.cardSubtitle\": \"服务端智能体测试\",\n \"eval.suite.testCaseCount\": \"{{count}} 个测试用例\",\n \"eval.suite.breadcrumb\": \"套件\",\n \"eval.suite.fallbackTitle\": \"套件\",\n \"eval.project.label\": \"项目\",\n \"eval.project.nameLabel\": \"项目名称\",\n \"eval.project.namePlaceholder\": \"例如:生产环境智能体\",\n \"eval.project.namePlaceholderStaging\": \"例如:预发布环境\",\n \"eval.project.targetServer\": \"目标服务器\",\n \"eval.project.nameRequired\": \"请输入名称\",\n \"eval.project.newProject\": \"新建项目\",\n \"eval.project.newProjectPlus\": \"+ 新建项目\",\n \"eval.project.select\": \"选择项目\",\n \"eval.project.inProcess\": \"内网直连 (In-Process)\",\n \"eval.project.judgeModel\": \"评分模型\",\n \"eval.project.judgeModelLabel\": \"评分模型:{{model}}\",\n \"eval.project.judgeModelRequired\": \"请选择评分模型\",\n \"eval.project.judgeModelPlaceholder\": \"选择已注册的模型\",\n \"eval.project.concurrency\": \"并发数\",\n \"eval.project.concurrencyLabel\": \"并发数:{{value}}\",\n \"eval.project.deleteTitle\": \"删除此项目?\",\n \"eval.project.notFound\": \"未找到项目\",\n \"eval.project.runEvaluation\": \"运行评测\",\n \"eval.project.suitesCount\": \"测试套件({{count}})\",\n \"eval.project.caseCount\": \"{{count}} 个用例\",\n \"eval.project.deleteSuiteTitle\": \"删除此套件及其所有用例?\",\n \"eval.project.runs\": \"运行记录\",\n \"eval.project.noRuns\": \"暂无运行记录\",\n \"eval.projects.title\": \"评测项目\",\n \"eval.projects.subtitle\": \"用基准用例测试你的智能体\",\n \"eval.projects.empty\": \"暂无评测项目。创建一个即可开始测试你的智能体。\",\n \"eval.projects.create\": \"创建项目\",\n \"eval.projects.createTitle\": \"创建评测项目\",\n \"eval.case.add\": \"添加用例\",\n \"eval.case.addTitle\": \"添加测试用例\",\n \"eval.case.editTitle\": \"编辑测试用例\",\n \"eval.case.runAll\": \"运行全部用例\",\n \"eval.case.inputMessage\": \"输入消息\",\n \"eval.case.inputPlaceholder\": \"要发送给智能体的内容\",\n \"eval.case.agent\": \"智能体\",\n \"eval.case.agentPlaceholder\": \"选择智能体\",\n \"eval.case.outputType\": \"输出类型\",\n \"eval.case.outputType.messageContent\": \"消息内容\",\n \"eval.case.outputType.fileContent\": \"文件内容\",\n \"eval.case.expectedOutput\": \"期望输出\",\n \"eval.case.expectedOutputPlaceholder\": \"描述期望输出\",\n \"eval.case.expectedOutputDescription\": \"期望输出描述\",\n \"eval.case.assertionDefault\": \"回答应相关且准确\",\n \"eval.case.untitled\": \"未命名用例\",\n \"eval.case.emptyTitle\": \"暂无测试用例\",\n \"eval.case.emptyDescription\": \"添加第一个测试用例即可开始\",\n \"eval.case.deleteTitle\": \"删除用例?\",\n \"eval.case.deleteTestCaseTitle\": \"删除测试用例?\",\n \"eval.case.userMessagePlaceholder\": \"用户消息(例如:总结这份文档)\",\n \"eval.case.agentIdsPlaceholder\": \"智能体 ID(逗号分隔)\",\n \"eval.case.loadAgentsFailed\": \"加载智能体失败\",\n \"eval.case.created\": \"用例已创建\",\n \"eval.case.updated\": \"用例已更新\",\n \"eval.case.deleted\": \"用例已删除\",\n \"eval.results.title\": \"运行结果\",\n \"eval.results.loading\": \"正在加载评测结果…\",\n \"eval.results.finalizing\": \"正在汇总评测结果…\",\n \"eval.results.notFound\": \"未找到评测运行\",\n \"eval.results.refreshFailed\": \"无法刷新评测结果\",\n \"eval.results.disconnected\": \"实时更新已断开\",\n \"eval.results.disconnectedDescription\": \"评测可能仍在进行中。实时更新不可用期间,已保存的结果仍会显示。\",\n \"eval.results.reconnect\": \"重新连接\",\n \"eval.results.casesProgress\": \"{{completed}} / {{total}} 个用例\",\n \"eval.results.passedCount\": \"{{count}} 个通过\",\n \"eval.results.failedCount\": \"{{count}} 个失败\",\n \"eval.results.totalCases\": \"用例总数\",\n \"eval.results.passed\": \"通过\",\n \"eval.results.failed\": \"失败\",\n \"eval.results.avgScore\": \"平均分\",\n \"eval.results.passRate\": \"通过率\",\n \"eval.results.error\": \"错误:{{message}}\",\n \"eval.results.envTag\": \"环境:{{id}}\",\n \"eval.results.deleteRun\": \"删除运行\",\n \"eval.results.deleteFailed\": \"删除运行失败\",\n \"eval.results.caseResults\": \"用例结果\",\n \"eval.results.empty\": \"暂无结果\",\n \"eval.results.interrupted\": \"已中断\",\n \"eval.results.judgeSummary\": \"评审摘要\",\n \"eval.results.dimensionScores\": \"维度评分({{count}} 项指标)\",\n \"eval.results.noDetail\": \"暂无详情\",\n \"eval.runEnv.title\": \"选择测试环境\",\n \"eval.runEnv.description\": \"选择本次评估运行的工作区项目环境\",\n \"eval.runEnv.required\": \"请先选择测试环境\",\n \"eval.runEnv.run\": \"运行\",\n \"eval.error.fetchRunsFailed\": \"获取评测运行失败\",\n \"eval.error.invalidRunsResponse\": \"评测运行响应无效\",\n \"eval.error.fetchSuitesFailed\": \"获取评测套件失败\",\n \"eval.error.invalidSuitesResponse\": \"评测套件响应无效\",\n \"eval.error.fetchRunDetailFailed\": \"获取评测运行详情失败\",\n \"eval.error.invalidRunDetailResponse\": \"评测运行详情响应缺失或格式错误\",\n \"eval.error.unknownSuite\": \"未知套件\",\n \"eval.error.aborted\": \"评测已中止\",\n \"eval.error.failed\": \"评测失败\",\n \"eval.error.streamFailed\": \"评测流失败\",\n \"eval.error.streamDisconnected\": \"评测流已断开\"\n }\n}\n","{\n \"messages\": {\n \"genui.taskStatus.pending\": \"Pending\",\n \"genui.taskStatus.inProgress\": \"In Progress\",\n \"genui.taskStatus.claimed\": \"Claimed\",\n \"genui.taskStatus.completed\": \"Completed\",\n \"genui.taskStatus.failed\": \"Failed\",\n \"genui.date.justNow\": \"Just now\",\n \"genui.date.justNowLower\": \"just now\",\n \"genui.date.yesterday\": \"Yesterday\",\n \"genui.date.yesterdayLower\": \"yesterday\",\n \"genui.date.minutesAgo\": \"{{count}}m ago\",\n \"genui.date.hoursAgo\": \"{{count}}h ago\",\n \"genui.date.daysAgo\": \"{{count}} days ago\",\n \"genui.share.action\": \"Share\",\n \"genui.share.title\": \"Share Resource\",\n \"genui.share.revokeConfirm\": \"Revoke this share?\",\n \"genui.share.empty\": \"No active shares yet\",\n \"genui.share.createNew\": \"Create New Share\",\n \"genui.share.create\": \"Create Share\",\n \"genui.share.createFailed\": \"Failed to create share\",\n \"genui.share.revoked\": \"Share revoked\",\n \"genui.share.revokeFailed\": \"Failed to revoke\",\n \"genui.share.open\": \"Open\",\n \"genui.share.backToShares\": \"Back to shares\",\n \"genui.share.clipboardPassword\": \"Password: {{password}}\",\n \"genui.share.clipboardPasswordProtected\": \"Password protected\",\n \"genui.share.field.title\": \"Title\",\n \"genui.share.field.visibility\": \"Visibility\",\n \"genui.share.field.password\": \"Password\",\n \"genui.share.field.expires\": \"Expires\",\n \"genui.share.field.maxAccess\": \"Max accesses (empty = unlimited)\",\n \"genui.share.visibility.public\": \"Public\",\n \"genui.share.visibility.password\": \"Password\",\n \"genui.share.expiresValue\": \"Expires: {{value}}\",\n \"genui.share.expiry.never\": \"Never\",\n \"genui.share.expiry.1h\": \"1 hour\",\n \"genui.share.expiry.24h\": \"24 hours\",\n \"genui.share.expiry.7d\": \"7 days\",\n \"genui.share.expiry.30d\": \"30 days\",\n \"genui.markdown.copyContent\": \"Copy Content\",\n \"genui.markdown.downloadFile\": \"Download File\",\n \"genui.markdown.exportPdf\": \"Export as PDF\",\n \"genui.markdown.exportImage\": \"Export as Image\",\n \"genui.markdown.copiedToClipboard\": \"Copied to clipboard\",\n \"genui.markdown.generatingImage\": \"Generating image...\",\n \"genui.markdown.imageExported\": \"Image exported successfully\",\n \"genui.markdown.imageExportFailed\": \"Failed to generate image\",\n \"genui.markdown.generatingPdf\": \"Generating PDF...\",\n \"genui.markdown.pdfExported\": \"PDF exported successfully\",\n \"genui.markdown.pdfExportFailed\": \"Failed to generate PDF\",\n \"genui.file.loadFailed\": \"Failed to load file\",\n \"genui.file.loadFailedStatus\": \"Failed: {{status}}\",\n \"genui.file.unknown\": \"Unknown file\",\n \"genui.file.downloadFile\": \"Download File\",\n \"genui.file.audioUnsupported\": \"Your browser does not support the audio element.\",\n \"genui.file.videoUnsupported\": \"Your browser does not support the video element.\",\n \"genui.fileExplorer.selectToPreview\": \"Select a file to preview\",\n \"genui.fileExplorer.root\": \"<root>\",\n \"genui.embed.defaultTitle\": \"Embedded File\",\n \"genui.embed.invalidConfig\": \"Invalid embed configuration\",\n \"genui.embed.invalidConfigHint\": \"Please provide a valid file path or URL\",\n \"genui.attachment.download\": \"Download\",\n \"genui.attachment.downloadNamed\": \"Download {{name}}\",\n \"genui.attachment.preview\": \"Preview: {{name}}\",\n \"genui.attachment.previewUnsupported\": \"Preview not supported. Please download to view.\",\n \"genui.attachment.showLess\": \"Show Less\",\n \"genui.attachment.showMore\": \"Show More ({{count}})\",\n \"genui.attachment.containsFiles\": \"Contains {{count}} file(s)\",\n \"genui.dataTable.exportCsv\": \"Export CSV\",\n \"genui.dataTable.expand\": \"Expand\",\n \"genui.dataTable.details\": \"Details:\",\n \"genui.dataTable.subTableData\": \"Sub-table Data:\",\n \"genui.search.query\": \"Search: \\\"{{query}}\\\"\",\n \"genui.search.collection\": \"Collection: {{collection}}\",\n \"genui.search.more\": \"more\",\n \"genui.search.score\": \"Score: {{score}}\",\n \"genui.chart.dataDetails\": \"Data Details\",\n \"genui.chart.title\": \"Chart\",\n \"genui.chart.seriesDefault\": \"Series {{n}}\",\n \"genui.chart.itemDefault\": \"Item {{n}}\",\n \"genui.chart.countSeries\": \"Count\",\n \"genui.hitl.pendingFeedback\": \"Pending Feedback\",\n \"genui.pending.count\": \"{{count}} pending\",\n \"genui.pending.sendNow\": \"Send now\",\n \"genui.pending.deleted\": \"Message deleted\",\n \"genui.pending.sendFailed\": \"Failed to send, please retry\",\n \"genui.pending.deleteFailed\": \"Failed to delete, please retry\",\n \"genui.contentPreview.showAll\": \"Show all content\",\n \"genui.contentPreview.showLess\": \"Show less\",\n \"genui.executeCode.title\": \"Execute Code\",\n \"genui.executeCode.codeView\": \"Code View\",\n \"genui.editFile.title\": \"Edit\",\n \"genui.editFile.diffView\": \"Diff View\",\n \"genui.writeFile.title\": \"New\",\n \"genui.writeFile.diffView\": \"Diff View\",\n \"genui.internetSearch.title\": \"Internet Search\",\n \"genui.browserView.viewBrowser\": \"View Browser\",\n \"genui.confirm.reject\": \"Reject\",\n \"genui.showWidget.defaultTitle\": \"Widget\",\n \"genui.showWidget.openInSideApp\": \"Open in side app\",\n \"genui.toolCall.response\": \"Response:\",\n \"genui.toolCall.parseArgsFailed\": \"Error parsing args\",\n \"genui.toolCard.invalidData\": \"Invalid tool data\",\n \"genui.toolCard.parameters\": \"Parameters ({{count}})\",\n \"genui.toolCard.noParameters\": \"No parameters\",\n \"genui.clarify.submitted\": \"Answers submitted\",\n \"genui.clarify.noQuestions\": \"No questions available\",\n \"genui.clarify.questionProgress\": \"Question {{current}} of {{total}}\",\n \"genui.clarify.answerPlaceholder\": \"Enter your answer...\",\n \"genui.clarify.otherOption\": \"Other (please specify)\",\n \"genui.clarify.uploadHint\": \"Click or drag file to this area to upload\",\n \"genui.clarify.uploaded\": \"Uploaded: {{name}}\",\n \"genui.clarify.uploadPending\": \"File will be uploaded to the sandbox\",\n \"genui.clarify.previous\": \"Previous\",\n \"genui.clarify.skip\": \"Skip\",\n \"genui.todos.title\": \"TODOs\",\n \"genui.todos.done\": \"{{completed}}/{{total}} Done\",\n \"genui.todo.empty\": \"No todo items available\",\n \"genui.todo.collapse\": \"Collapse\",\n \"genui.todo.showAll\": \"Show all {{count}} items ({{hidden}} hidden)\",\n \"genui.todo.summary\": \"Total items: {{total}} | Completed: {{completed}} | In Progress: {{inProgress}} | Pending: {{pending}}\",\n \"genui.taskBoard.title\": \"Task Board\",\n \"genui.taskBoard.subtitle\": \"Track team progress and task status\",\n \"genui.taskBoard.addTask\": \"Add Task\",\n \"genui.taskBoard.emptyColumn\": \"No tasks\",\n \"genui.taskBoardCard.deps\": \"Deps:\",\n \"genui.taskBoardCard.none\": \"none\",\n \"genui.taskCard.untitled\": \"Task\",\n \"genui.taskCard.response\": \"Response\",\n \"genui.taskCard.dispatchFailed\": \"Task dispatch failed\",\n \"genui.taskCard.dispatched\": \"Dispatched to the project queue\",\n \"genui.taskCard.running\": \"Running…\",\n \"genui.taskReview.legacyTitle\": \"Legacy task review\",\n \"genui.taskReview.legacyHint\": \"Open the associated agent conversation to continue if a thread is available.\",\n \"genui.taskReview.readyTitle\": \"Task Ready for Review\",\n \"genui.taskReview.submitted\": \"Review submitted. Waiting for agent to process...\",\n \"genui.taskReview.submitFailed\": \"Review could not be submitted. Please try again.\",\n \"genui.taskReview.result\": \"Result:\",\n \"genui.taskReview.requestChangesLabel\": \"Request Changes — Feedback:\",\n \"genui.taskReview.feedbackPlaceholder\": \"Describe what needs to be changed...\",\n \"genui.taskReview.approve\": \"Approve\",\n \"genui.taskReview.requestChanges\": \"Request Changes\",\n \"genui.taskReview.approvedMessage\": \"Task approved\",\n \"genui.taskReview.changesRequestedMessage\": \"Changes requested: {{note}}\",\n \"genui.taskManage.verb.create\": \"CREATE TASK\",\n \"genui.taskManage.verb.update\": \"UPDATE TASK\",\n \"genui.taskManage.verb.setStatus\": \"SET STATUS\",\n \"genui.taskManage.verb.list\": \"LIST TASKS\",\n \"genui.taskManage.verb.delete\": \"DELETE TASK\",\n \"genui.taskManage.verb.fallback\": \"MANAGE TASK\",\n \"genui.taskManage.verb.get\": \"GET TASK\",\n \"genui.taskManage.verb.getShort\": \"TASK\",\n \"genui.taskManage.verb.addActivity\": \"ADD ACTIVITY\",\n \"genui.taskManage.listTitle\": \"TASK LIST\",\n \"genui.taskManage.activity\": \"ACTIVITY\",\n \"genui.taskManage.countOne\": \"task\",\n \"genui.taskManage.countOther\": \"tasks\",\n \"genui.taskManage.deleted\": \"Deleted task\",\n \"genui.taskManage.failed\": \"manage_task failed\",\n \"genui.taskManage.review\": \"Review {{action}}\",\n \"genui.taskManage.more\": \"+{{count}} more\",\n \"genui.taskManage.stat.priority\": \"priority\",\n \"genui.taskManage.stat.status\": \"status\",\n \"genui.taskManage.stat.deps\": \"deps\",\n \"genui.taskManage.stat.tasks\": \"tasks\",\n \"genui.taskManage.stat.inProgress\": \"in progress\",\n \"genui.taskManage.stat.completed\": \"completed\",\n \"genui.taskManage.inProgressCompleted\": \"{{inProgress}} in progress · {{completed}} completed\",\n \"genui.evalCard.report\": \"TEST REPORT\",\n \"genui.evalCard.passRate\": \"pass rate\",\n \"genui.evalCard.passed\": \"passed\",\n \"genui.evalCard.failed\": \"failed\",\n \"genui.evalCard.avgScore\": \"avg score\",\n \"genui.evalCard.interrupted\": \"{{count}} interrupted\",\n \"genui.evalCard.holdoutNotice\": \"Hold-out run — per-case results withheld. Aggregates only.\",\n \"genui.evalCard.noFailingCases\": \"No failing cases\",\n \"genui.evalCard.noResults\": \"No results yet\",\n \"genui.evalCard.unknownCase\": \"unknown case\",\n \"genui.evalCard.unknownSuite\": \"Unknown\",\n \"genui.evalCard.readFailed\": \"read_eval failed\",\n \"genui.evalManage.verb.create\": \"Create\",\n \"genui.evalManage.verb.update\": \"Update\",\n \"genui.evalManage.projectTitle\": \"{{verb}} Evaluation Project\",\n \"genui.evalManage.suiteTitle\": \"{{verb}} Test Suite\",\n \"genui.evalManage.caseTitle\": \"{{verb}} Test Case\",\n \"genui.evalManage.defaultProject\": \"Eval Project\",\n \"genui.evalManage.defaultSuite\": \"Eval Suite\",\n \"genui.evalManage.deletedProject\": \"Deleted evaluation project\",\n \"genui.evalManage.deletedSuite\": \"Deleted test suite\",\n \"genui.evalManage.deletedCase\": \"Deleted test case\",\n \"genui.evalManage.stepCount\": \"{{count}} step{{s}}\",\n \"genui.evalManage.rubricCount\": \"{{count}} rubric{{s}}\",\n \"genui.evalManage.stat.cases\": \"cases\",\n \"genui.evalManage.stat.suites\": \"suites\",\n \"genui.evalManage.stat.runs\": \"runs\",\n \"genui.evalManage.stat.passRate\": \"pass rate\",\n \"genui.evalManage.stat.latestPass\": \"latest pass\",\n \"genui.evalManage.stat.latestRun\": \"latest run\",\n \"genui.evalManage.failed\": \"manage_eval failed\",\n \"genui.evalRun.title.start\": \"START TEST RUN\",\n \"genui.evalRun.title.resume\": \"RESUME TEST RUN\",\n \"genui.evalRun.title.status\": \"CHECK TEST STATUS\",\n \"genui.evalRun.title.abort\": \"ABORT TEST RUN\",\n \"genui.evalRun.syncCall\": \"Sync call\",\n \"genui.evalRun.asyncTask\": \"Async task\",\n \"genui.evalRun.passRateInline\": \"{{rate}}% pass\",\n \"genui.evalRun.passedCount\": \"{{count}} passed\",\n \"genui.evalRun.failedCount\": \"{{count}} failed\",\n \"genui.evalRun.avgInline\": \"avg {{score}}\",\n \"genui.evalRun.casesProgress\": \"{{completed}}/{{total}} cases\",\n \"genui.evalRun.aborted\": \"✓ Run aborted\",\n \"genui.evalRun.abortFailed\": \"✗ Abort failed\",\n \"genui.evalRun.stat.passRate\": \"pass rate\",\n \"genui.evalRun.stat.passed\": \"passed\",\n \"genui.evalRun.stat.failed\": \"failed\",\n \"genui.evalRun.stat.avgScore\": \"avg score\",\n \"genui.evalRun.failed\": \"run_eval failed\",\n \"genui.schedule.title\": \"Scheduled Tasks\",\n \"genui.schedule.loading\": \"Loading scheduled tasks...\",\n \"genui.schedule.empty\": \"No scheduled tasks for this thread\",\n \"genui.schedule.pause\": \"Pause\",\n \"genui.schedule.resume\": \"Resume\",\n \"genui.schedule.cancel\": \"Cancel\",\n \"genui.schedule.cancelConfirm\": \"Cancel this scheduled task?\",\n \"genui.schedule.irreversible\": \"This action cannot be undone.\",\n \"genui.schedule.executionType\": \"Execution Type\",\n \"genui.schedule.recurring\": \"Recurring\",\n \"genui.schedule.oneTime\": \"One-time\",\n \"genui.schedule.cronExpression\": \"Cron Expression\",\n \"genui.schedule.nextRunTooltip\": \"Next run: {{time}}\",\n \"genui.schedule.nextRun\": \"Next: {{time}}\",\n \"genui.schedule.executeAtTooltip\": \"Execute at: {{time}}\",\n \"genui.schedule.executeAt\": \"At: {{time}}\",\n \"genui.schedule.runCount\": \"Run count\",\n \"genui.schedule.runs\": \"Runs: {{count}}\",\n \"genui.schedule.refreshFailed\": \"Failed to refresh scheduled tasks\",\n \"genui.schedule.cancelled\": \"Task cancelled successfully\",\n \"genui.schedule.cancelFailed\": \"Failed to cancel task\",\n \"genui.schedule.paused\": \"Task paused successfully\",\n \"genui.schedule.pauseFailed\": \"Failed to pause task\",\n \"genui.schedule.resumed\": \"Task resumed successfully\",\n \"genui.schedule.resumeFailed\": \"Failed to resume task\",\n \"genui.mailbox.title\": \"Mailbox\",\n \"genui.mailbox.empty\": \"No messages\",\n \"genui.mailbox.summary\": \"{{messages}} messages • {{senders}} senders\",\n \"genui.mailbox.unreadSuffix\": \" • {{count}} unread\",\n \"genui.mailbox.messageCount\": \"{{count}} messages\",\n \"genui.mailbox.unreadCount\": \"({{count}} unread)\",\n \"genui.mailbox.toLine\": \"To: {{to}} • {{type}}\",\n \"genui.mailbox.unread\": \"Unread\",\n \"genui.mailbox.messageFrom\": \"Message from {{from}}\",\n \"genui.mailbox.messageContent\": \"Message Content\",\n \"genui.mailbox.field.from\": \"From\",\n \"genui.mailbox.field.to\": \"To\",\n \"genui.mailbox.field.time\": \"Time\",\n \"genui.mailbox.field.type\": \"Type\",\n \"genui.teamChat.defaultName\": \"Team Chat\",\n \"genui.teamChat.memberCount\": \"{{count}} member{{s}}\",\n \"genui.teamChat.teamMembers\": \"Team Members\",\n \"genui.teamChat.you\": \"You\",\n \"genui.teamChat.youSuffix\": \"(You)\",\n \"genui.teamChat.inputPlaceholder\": \"Type a message... (@mention someone)\",\n \"genui.teamChat.send\": \"Send\",\n \"genui.teamMember.defaultName\": \"Team Member\",\n \"genui.teamGraph.workbench\": \"Workbench\",\n \"genui.teamGraph.unnamed\": \"Unnamed\",\n \"genui.teamGraph.unknownRole\": \"unknown\",\n \"genui.teamGraph.pendingTasks\": \"Pending Tasks ({{count}})\",\n \"genui.teamMenu.dashboard\": \"Dashboard\",\n \"genui.teamMenu.inbox\": \"Inbox\",\n \"genui.teamMenu.issues\": \"Issues\",\n \"genui.teamMenu.org\": \"Org\",\n \"genui.teamMenu.groupTeammates\": \"Teammates\",\n \"genui.teamMenu.groupTeam\": \"Team\",\n \"genui.teamMenu.expand\": \"Expand\",\n \"genui.teamMenu.collapse\": \"Collapse\",\n \"genui.teamDashboard.title\": \"Team Dashboard\",\n \"genui.teamDashboard.subtitle\": \"Overview of team activities and tasks\",\n \"genui.teamDashboard.teamSummary\": \"Team ID: {{teamId}} • {{tasks}} tasks • {{activities}} activities\",\n \"genui.teamDashboard.totalTasks\": \"Total Tasks\",\n \"genui.teamDashboard.activities\": \"Activities\",\n \"genui.teamDashboard.recentActivities\": \"Recent Activities\",\n \"genui.teamDashboard.noRecentActivities\": \"No recent activities\",\n \"genui.teamDashboard.recentTasks\": \"Recent Tasks\",\n \"genui.teamDashboard.noRecentTasks\": \"No recent tasks\",\n \"genui.teamDashboard.broadcast\": \"[broadcast]\",\n \"genui.issues.title\": \"Issues\",\n \"genui.issues.summary\": \"{{tasks}} tasks • Team: {{teamId}}\",\n \"genui.issues.noAssignee\": \"No assignee\",\n \"genui.issues.noIssuesFound\": \"No issues found\",\n \"genui.teamOrg.title\": \"Team Organization\",\n \"genui.teamOrg.summary\": \"{{members}} members • {{tasks}} tasks\",\n \"genui.teamOrg.legend\": \"Legend\",\n \"genui.teamOrg.lead\": \"Lead\",\n \"genui.teamOrg.teamLead\": \"Team Lead\",\n \"genui.teamOrg.teammate\": \"Teammate\",\n \"genui.teamOrg.legendCompleted\": \"✓ Completed\",\n \"genui.teamOrg.legendInProgress\": \"⟳ In Progress\",\n \"genui.teamOrg.legendPending\": \"○ Pending\",\n \"genui.taskDetail.statusUpdated\": \"Status Updated\",\n \"genui.taskDetail.taskCreatedTitle\": \"Task Created\",\n \"genui.taskDetail.changedTo\": \"Changed to {{status}} on {{date}}\",\n \"genui.taskDetail.changedStatus\": \"Changed status to {{status}}\",\n \"genui.taskDetail.taskCreated\": \"Task created\",\n \"genui.taskDetail.noComments\": \"No comments yet\",\n \"genui.taskDetail.result\": \"Result\",\n \"genui.taskDetail.error\": \"Error\",\n \"genui.taskDetail.systemAuthor\": \"System\",\n \"genui.taskDetail.comments\": \"Comments\",\n \"genui.taskDetail.activity\": \"Activity\",\n \"genui.taskDetail.field.status\": \"Status\",\n \"genui.taskDetail.field.assignee\": \"Assignee\",\n \"genui.taskDetail.field.created\": \"Created\",\n \"genui.taskDetail.field.updated\": \"Updated\",\n \"genui.taskDetail.unassigned\": \"Unassigned\",\n \"genui.taskDetail.dependencies\": \"Dependencies\",\n \"genui.streamingHtml.defaultTitle\": \"Streaming HTML Content\"\n }\n}\n","{\n \"messages\": {\n \"genui.taskStatus.pending\": \"待处理\",\n \"genui.taskStatus.inProgress\": \"进行中\",\n \"genui.taskStatus.claimed\": \"已认领\",\n \"genui.taskStatus.completed\": \"已完成\",\n \"genui.taskStatus.failed\": \"失败\",\n \"genui.date.justNow\": \"刚刚\",\n \"genui.date.justNowLower\": \"刚刚\",\n \"genui.date.yesterday\": \"昨天\",\n \"genui.date.yesterdayLower\": \"昨天\",\n \"genui.date.minutesAgo\": \"{{count}} 分钟前\",\n \"genui.date.hoursAgo\": \"{{count}} 小时前\",\n \"genui.date.daysAgo\": \"{{count}} 天前\",\n \"genui.share.action\": \"分享\",\n \"genui.share.title\": \"分享资源\",\n \"genui.share.revokeConfirm\": \"撤销此分享?\",\n \"genui.share.empty\": \"暂无有效分享\",\n \"genui.share.createNew\": \"新建分享\",\n \"genui.share.create\": \"创建分享\",\n \"genui.share.createFailed\": \"创建分享失败\",\n \"genui.share.revoked\": \"分享已撤销\",\n \"genui.share.revokeFailed\": \"撤销失败\",\n \"genui.share.open\": \"打开\",\n \"genui.share.backToShares\": \"返回分享列表\",\n \"genui.share.clipboardPassword\": \"密码:{{password}}\",\n \"genui.share.clipboardPasswordProtected\": \"密码保护\",\n \"genui.share.field.title\": \"标题\",\n \"genui.share.field.visibility\": \"可见性\",\n \"genui.share.field.password\": \"密码\",\n \"genui.share.field.expires\": \"有效期\",\n \"genui.share.field.maxAccess\": \"最大访问次数(留空表示不限)\",\n \"genui.share.visibility.public\": \"公开\",\n \"genui.share.visibility.password\": \"密码\",\n \"genui.share.expiresValue\": \"有效期至:{{value}}\",\n \"genui.share.expiry.never\": \"永不过期\",\n \"genui.share.expiry.1h\": \"1 小时\",\n \"genui.share.expiry.24h\": \"24 小时\",\n \"genui.share.expiry.7d\": \"7 天\",\n \"genui.share.expiry.30d\": \"30 天\",\n \"genui.markdown.copyContent\": \"复制内容\",\n \"genui.markdown.downloadFile\": \"下载文件\",\n \"genui.markdown.exportPdf\": \"导出为 PDF\",\n \"genui.markdown.exportImage\": \"导出为图片\",\n \"genui.markdown.copiedToClipboard\": \"已复制到剪贴板\",\n \"genui.markdown.generatingImage\": \"正在生成图片...\",\n \"genui.markdown.imageExported\": \"图片导出成功\",\n \"genui.markdown.imageExportFailed\": \"生成图片失败\",\n \"genui.markdown.generatingPdf\": \"正在生成 PDF...\",\n \"genui.markdown.pdfExported\": \"PDF 导出成功\",\n \"genui.markdown.pdfExportFailed\": \"生成 PDF 失败\",\n \"genui.file.loadFailed\": \"文件加载失败\",\n \"genui.file.loadFailedStatus\": \"加载失败:{{status}}\",\n \"genui.file.unknown\": \"未知文件\",\n \"genui.file.downloadFile\": \"下载文件\",\n \"genui.file.audioUnsupported\": \"您的浏览器不支持音频元素。\",\n \"genui.file.videoUnsupported\": \"您的浏览器不支持视频元素。\",\n \"genui.fileExplorer.selectToPreview\": \"选择一个文件以预览\",\n \"genui.fileExplorer.root\": \"<根目录>\",\n \"genui.embed.defaultTitle\": \"嵌入文件\",\n \"genui.embed.invalidConfig\": \"嵌入配置无效\",\n \"genui.embed.invalidConfigHint\": \"请提供有效的文件路径或 URL\",\n \"genui.attachment.download\": \"下载\",\n \"genui.attachment.downloadNamed\": \"下载 {{name}}\",\n \"genui.attachment.preview\": \"预览:{{name}}\",\n \"genui.attachment.previewUnsupported\": \"暂不支持预览,请下载后查看。\",\n \"genui.attachment.showLess\": \"收起\",\n \"genui.attachment.showMore\": \"显示更多({{count}})\",\n \"genui.attachment.containsFiles\": \"包含 {{count}} 个文件\",\n \"genui.dataTable.exportCsv\": \"导出 CSV\",\n \"genui.dataTable.expand\": \"展开\",\n \"genui.dataTable.details\": \"详情:\",\n \"genui.dataTable.subTableData\": \"子表数据:\",\n \"genui.search.query\": \"搜索:\\\"{{query}}\\\"\",\n \"genui.search.collection\": \"集合:{{collection}}\",\n \"genui.search.more\": \"更多\",\n \"genui.search.score\": \"评分:{{score}}\",\n \"genui.chart.dataDetails\": \"数据详情\",\n \"genui.chart.title\": \"图表\",\n \"genui.chart.seriesDefault\": \"系列 {{n}}\",\n \"genui.chart.itemDefault\": \"条目 {{n}}\",\n \"genui.chart.countSeries\": \"数量\",\n \"genui.hitl.pendingFeedback\": \"待处理反馈\",\n \"genui.pending.count\": \"{{count}} 条待发送\",\n \"genui.pending.sendNow\": \"立即发送\",\n \"genui.pending.deleted\": \"消息已删除\",\n \"genui.pending.sendFailed\": \"发送失败,请重试\",\n \"genui.pending.deleteFailed\": \"删除失败,请重试\",\n \"genui.contentPreview.showAll\": \"展开全部内容\",\n \"genui.contentPreview.showLess\": \"收起\",\n \"genui.executeCode.title\": \"执行代码\",\n \"genui.executeCode.codeView\": \"代码视图\",\n \"genui.editFile.title\": \"编辑\",\n \"genui.editFile.diffView\": \"差异视图\",\n \"genui.writeFile.title\": \"新建\",\n \"genui.writeFile.diffView\": \"差异视图\",\n \"genui.internetSearch.title\": \"联网搜索\",\n \"genui.browserView.viewBrowser\": \"查看浏览器\",\n \"genui.confirm.reject\": \"拒绝\",\n \"genui.showWidget.defaultTitle\": \"小组件\",\n \"genui.showWidget.openInSideApp\": \"在侧边应用打开\",\n \"genui.toolCall.response\": \"响应:\",\n \"genui.toolCall.parseArgsFailed\": \"参数解析错误\",\n \"genui.toolCard.invalidData\": \"工具数据无效\",\n \"genui.toolCard.parameters\": \"参数({{count}})\",\n \"genui.toolCard.noParameters\": \"无参数\",\n \"genui.clarify.submitted\": \"答案已提交\",\n \"genui.clarify.noQuestions\": \"暂无问题\",\n \"genui.clarify.questionProgress\": \"第 {{current}} 题,共 {{total}} 题\",\n \"genui.clarify.answerPlaceholder\": \"请输入您的回答...\",\n \"genui.clarify.otherOption\": \"其他(请说明)\",\n \"genui.clarify.uploadHint\": \"点击或拖拽文件到此区域上传\",\n \"genui.clarify.uploaded\": \"已上传:{{name}}\",\n \"genui.clarify.uploadPending\": \"文件将上传至沙箱\",\n \"genui.clarify.previous\": \"上一步\",\n \"genui.clarify.skip\": \"跳过\",\n \"genui.todos.title\": \"待办事项\",\n \"genui.todos.done\": \"{{completed}}/{{total}} 已完成\",\n \"genui.todo.empty\": \"暂无待办事项\",\n \"genui.todo.collapse\": \"收起\",\n \"genui.todo.showAll\": \"显示全部 {{count}} 项(另有 {{hidden}} 项未显示)\",\n \"genui.todo.summary\": \"共 {{total}} 项 | 已完成:{{completed}} | 进行中:{{inProgress}} | 待处理:{{pending}}\",\n \"genui.taskBoard.title\": \"任务看板\",\n \"genui.taskBoard.subtitle\": \"跟踪团队进度与任务状态\",\n \"genui.taskBoard.addTask\": \"添加任务\",\n \"genui.taskBoard.emptyColumn\": \"暂无任务\",\n \"genui.taskBoardCard.deps\": \"依赖:\",\n \"genui.taskBoardCard.none\": \"无\",\n \"genui.taskCard.untitled\": \"任务\",\n \"genui.taskCard.response\": \"响应\",\n \"genui.taskCard.dispatchFailed\": \"任务派发失败\",\n \"genui.taskCard.dispatched\": \"已进入项目队列\",\n \"genui.taskCard.running\": \"运行中…\",\n \"genui.taskReview.legacyTitle\": \"旧版任务审核\",\n \"genui.taskReview.legacyHint\": \"如有可用会话,请打开关联的智能体对话以继续。\",\n \"genui.taskReview.readyTitle\": \"任务待审核\",\n \"genui.taskReview.submitted\": \"审核已提交,正在等待智能体处理...\",\n \"genui.taskReview.submitFailed\": \"审核提交失败,请重试。\",\n \"genui.taskReview.result\": \"结果:\",\n \"genui.taskReview.requestChangesLabel\": \"请求修改 —— 反馈:\",\n \"genui.taskReview.feedbackPlaceholder\": \"请描述需要修改的内容...\",\n \"genui.taskReview.approve\": \"通过\",\n \"genui.taskReview.requestChanges\": \"请求修改\",\n \"genui.taskReview.approvedMessage\": \"任务已通过\",\n \"genui.taskReview.changesRequestedMessage\": \"已请求修改:{{note}}\",\n \"genui.taskManage.verb.create\": \"创建任务\",\n \"genui.taskManage.verb.update\": \"更新任务\",\n \"genui.taskManage.verb.setStatus\": \"设置状态\",\n \"genui.taskManage.verb.list\": \"任务列表\",\n \"genui.taskManage.verb.delete\": \"删除任务\",\n \"genui.taskManage.verb.fallback\": \"管理任务\",\n \"genui.taskManage.verb.get\": \"获取任务\",\n \"genui.taskManage.verb.getShort\": \"任务\",\n \"genui.taskManage.verb.addActivity\": \"添加动态\",\n \"genui.taskManage.listTitle\": \"任务列表\",\n \"genui.taskManage.activity\": \"动态\",\n \"genui.taskManage.countOne\": \"个任务\",\n \"genui.taskManage.countOther\": \"个任务\",\n \"genui.taskManage.deleted\": \"已删除任务\",\n \"genui.taskManage.failed\": \"manage_task 执行失败\",\n \"genui.taskManage.review\": \"审核{{action}}\",\n \"genui.taskManage.more\": \"另有 {{count}} 项\",\n \"genui.taskManage.stat.priority\": \"优先级\",\n \"genui.taskManage.stat.status\": \"状态\",\n \"genui.taskManage.stat.deps\": \"依赖\",\n \"genui.taskManage.stat.tasks\": \"任务\",\n \"genui.taskManage.stat.inProgress\": \"进行中\",\n \"genui.taskManage.stat.completed\": \"已完成\",\n \"genui.taskManage.inProgressCompleted\": \"{{inProgress}} 个进行中 · {{completed}} 个已完成\",\n \"genui.evalCard.report\": \"测试报告\",\n \"genui.evalCard.passRate\": \"通过率\",\n \"genui.evalCard.passed\": \"通过\",\n \"genui.evalCard.failed\": \"失败\",\n \"genui.evalCard.avgScore\": \"平均分\",\n \"genui.evalCard.interrupted\": \"{{count}} 个已中断\",\n \"genui.evalCard.holdoutNotice\": \"留出集运行 —— 逐用例结果已隐藏,仅显示汇总数据。\",\n \"genui.evalCard.noFailingCases\": \"无失败用例\",\n \"genui.evalCard.noResults\": \"暂无结果\",\n \"genui.evalCard.unknownCase\": \"未知用例\",\n \"genui.evalCard.unknownSuite\": \"未知\",\n \"genui.evalCard.readFailed\": \"read_eval 执行失败\",\n \"genui.evalManage.verb.create\": \"创建\",\n \"genui.evalManage.verb.update\": \"更新\",\n \"genui.evalManage.projectTitle\": \"{{verb}}评测项目\",\n \"genui.evalManage.suiteTitle\": \"{{verb}}评测套件\",\n \"genui.evalManage.caseTitle\": \"{{verb}}评测用例\",\n \"genui.evalManage.defaultProject\": \"评测项目\",\n \"genui.evalManage.defaultSuite\": \"评测套件\",\n \"genui.evalManage.deletedProject\": \"已删除评测项目\",\n \"genui.evalManage.deletedSuite\": \"已删除评测套件\",\n \"genui.evalManage.deletedCase\": \"已删除评测用例\",\n \"genui.evalManage.stepCount\": \"{{count}} 个步骤\",\n \"genui.evalManage.rubricCount\": \"{{count}} 条评分标准\",\n \"genui.evalManage.stat.cases\": \"用例\",\n \"genui.evalManage.stat.suites\": \"套件\",\n \"genui.evalManage.stat.runs\": \"运行\",\n \"genui.evalManage.stat.passRate\": \"通过率\",\n \"genui.evalManage.stat.latestPass\": \"最近通过率\",\n \"genui.evalManage.stat.latestRun\": \"最近运行\",\n \"genui.evalManage.failed\": \"manage_eval 执行失败\",\n \"genui.evalRun.title.start\": \"启动测试运行\",\n \"genui.evalRun.title.resume\": \"恢复测试运行\",\n \"genui.evalRun.title.status\": \"查看测试状态\",\n \"genui.evalRun.title.abort\": \"中止测试运行\",\n \"genui.evalRun.syncCall\": \"同步调用\",\n \"genui.evalRun.asyncTask\": \"异步任务\",\n \"genui.evalRun.passRateInline\": \"{{rate}}% 通过\",\n \"genui.evalRun.passedCount\": \"{{count}} 个通过\",\n \"genui.evalRun.failedCount\": \"{{count}} 个失败\",\n \"genui.evalRun.avgInline\": \"平均 {{score}}\",\n \"genui.evalRun.casesProgress\": \"{{completed}}/{{total}} 用例\",\n \"genui.evalRun.aborted\": \"✓ 运行已中止\",\n \"genui.evalRun.abortFailed\": \"✗ 中止失败\",\n \"genui.evalRun.stat.passRate\": \"通过率\",\n \"genui.evalRun.stat.passed\": \"通过\",\n \"genui.evalRun.stat.failed\": \"失败\",\n \"genui.evalRun.stat.avgScore\": \"平均分\",\n \"genui.evalRun.failed\": \"run_eval 执行失败\",\n \"genui.schedule.title\": \"定时任务\",\n \"genui.schedule.loading\": \"正在加载定时任务...\",\n \"genui.schedule.empty\": \"此会话暂无定时任务\",\n \"genui.schedule.pause\": \"暂停\",\n \"genui.schedule.resume\": \"恢复\",\n \"genui.schedule.cancel\": \"取消\",\n \"genui.schedule.cancelConfirm\": \"取消此定时任务?\",\n \"genui.schedule.irreversible\": \"此操作无法撤销。\",\n \"genui.schedule.executionType\": \"执行类型\",\n \"genui.schedule.recurring\": \"周期性\",\n \"genui.schedule.oneTime\": \"单次\",\n \"genui.schedule.cronExpression\": \"Cron 表达式\",\n \"genui.schedule.nextRunTooltip\": \"下次运行:{{time}}\",\n \"genui.schedule.nextRun\": \"下次:{{time}}\",\n \"genui.schedule.executeAtTooltip\": \"执行时间:{{time}}\",\n \"genui.schedule.executeAt\": \"时间:{{time}}\",\n \"genui.schedule.runCount\": \"运行次数\",\n \"genui.schedule.runs\": \"已运行:{{count}}\",\n \"genui.schedule.refreshFailed\": \"刷新定时任务失败\",\n \"genui.schedule.cancelled\": \"任务已取消\",\n \"genui.schedule.cancelFailed\": \"取消任务失败\",\n \"genui.schedule.paused\": \"任务已暂停\",\n \"genui.schedule.pauseFailed\": \"暂停任务失败\",\n \"genui.schedule.resumed\": \"任务已恢复\",\n \"genui.schedule.resumeFailed\": \"恢复任务失败\",\n \"genui.mailbox.title\": \"收件箱\",\n \"genui.mailbox.empty\": \"暂无消息\",\n \"genui.mailbox.summary\": \"{{messages}} 条消息 • {{senders}} 位发送者\",\n \"genui.mailbox.unreadSuffix\": \" • {{count}} 条未读\",\n \"genui.mailbox.messageCount\": \"{{count}} 条消息\",\n \"genui.mailbox.unreadCount\": \"({{count}} 条未读)\",\n \"genui.mailbox.toLine\": \"收件人:{{to}} • {{type}}\",\n \"genui.mailbox.unread\": \"未读\",\n \"genui.mailbox.messageFrom\": \"来自 {{from}} 的消息\",\n \"genui.mailbox.messageContent\": \"消息内容\",\n \"genui.mailbox.field.from\": \"发件人\",\n \"genui.mailbox.field.to\": \"收件人\",\n \"genui.mailbox.field.time\": \"时间\",\n \"genui.mailbox.field.type\": \"类型\",\n \"genui.teamChat.defaultName\": \"团队聊天\",\n \"genui.teamChat.memberCount\": \"{{count}} 名成员\",\n \"genui.teamChat.teamMembers\": \"团队成员\",\n \"genui.teamChat.you\": \"你\",\n \"genui.teamChat.youSuffix\": \"(你)\",\n \"genui.teamChat.inputPlaceholder\": \"输入消息...(@提及某人)\",\n \"genui.teamChat.send\": \"发送\",\n \"genui.teamMember.defaultName\": \"团队成员\",\n \"genui.teamGraph.workbench\": \"工作台\",\n \"genui.teamGraph.unnamed\": \"未命名\",\n \"genui.teamGraph.unknownRole\": \"未知\",\n \"genui.teamGraph.pendingTasks\": \"待处理任务({{count}})\",\n \"genui.teamMenu.dashboard\": \"仪表盘\",\n \"genui.teamMenu.inbox\": \"收件箱\",\n \"genui.teamMenu.issues\": \"任务列表\",\n \"genui.teamMenu.org\": \"组织架构\",\n \"genui.teamMenu.groupTeammates\": \"团队成员\",\n \"genui.teamMenu.groupTeam\": \"团队\",\n \"genui.teamMenu.expand\": \"展开\",\n \"genui.teamMenu.collapse\": \"收起\",\n \"genui.teamDashboard.title\": \"团队仪表盘\",\n \"genui.teamDashboard.subtitle\": \"团队活动与任务概览\",\n \"genui.teamDashboard.teamSummary\": \"团队 ID:{{teamId}} • {{tasks}} 个任务 • {{activities}} 条动态\",\n \"genui.teamDashboard.totalTasks\": \"任务总数\",\n \"genui.teamDashboard.activities\": \"动态\",\n \"genui.teamDashboard.recentActivities\": \"最近动态\",\n \"genui.teamDashboard.noRecentActivities\": \"暂无最近动态\",\n \"genui.teamDashboard.recentTasks\": \"最近任务\",\n \"genui.teamDashboard.noRecentTasks\": \"暂无最近任务\",\n \"genui.teamDashboard.broadcast\": \"[广播]\",\n \"genui.issues.title\": \"任务列表\",\n \"genui.issues.summary\": \"{{tasks}} 个任务 • 团队:{{teamId}}\",\n \"genui.issues.noAssignee\": \"未指派\",\n \"genui.issues.noIssuesFound\": \"未找到任务\",\n \"genui.teamOrg.title\": \"团队组织架构\",\n \"genui.teamOrg.summary\": \"{{members}} 名成员 • {{tasks}} 个任务\",\n \"genui.teamOrg.legend\": \"图例\",\n \"genui.teamOrg.lead\": \"负责人\",\n \"genui.teamOrg.teamLead\": \"团队负责人\",\n \"genui.teamOrg.teammate\": \"团队成员\",\n \"genui.teamOrg.legendCompleted\": \"✓ 已完成\",\n \"genui.teamOrg.legendInProgress\": \"⟳ 进行中\",\n \"genui.teamOrg.legendPending\": \"○ 待处理\",\n \"genui.taskDetail.statusUpdated\": \"状态已更新\",\n \"genui.taskDetail.taskCreatedTitle\": \"任务已创建\",\n \"genui.taskDetail.changedTo\": \"{{date}} 变更为{{status}}\",\n \"genui.taskDetail.changedStatus\": \"状态变更为 {{status}}\",\n \"genui.taskDetail.taskCreated\": \"任务已创建\",\n \"genui.taskDetail.noComments\": \"暂无评论\",\n \"genui.taskDetail.result\": \"结果\",\n \"genui.taskDetail.error\": \"错误\",\n \"genui.taskDetail.systemAuthor\": \"系统\",\n \"genui.taskDetail.comments\": \"评论\",\n \"genui.taskDetail.activity\": \"动态\",\n \"genui.taskDetail.field.status\": \"状态\",\n \"genui.taskDetail.field.assignee\": \"负责人\",\n \"genui.taskDetail.field.created\": \"创建时间\",\n \"genui.taskDetail.field.updated\": \"更新时间\",\n \"genui.taskDetail.unassigned\": \"未指派\",\n \"genui.taskDetail.dependencies\": \"依赖项\",\n \"genui.streamingHtml.defaultTitle\": \"流式 HTML 内容\"\n }\n}\n","{\n \"messages\": {\n \"governance.deleteAgent\": \"Delete Agent\",\n \"governance.delete.irreversible\": \"This action cannot be undone.\",\n \"governance.list.title\": \"Agents\",\n \"governance.list.tab.all\": \"All\",\n \"governance.list.tab.capability\": \"Capability\",\n \"governance.list.tab.orchestrator\": \"Orchestrator\",\n \"governance.list.tab.team\": \"Team\",\n \"governance.list.tab.workflow\": \"Workflow\",\n \"governance.list.action.playground\": \"Playground\",\n \"governance.list.action.eval\": \"Eval\",\n \"governance.list.viewMode.graph\": \"Graph\",\n \"governance.list.filter.domain\": \"Domain\",\n \"governance.list.filter.allDomains\": \"All domains\",\n \"governance.list.filter.status\": \"Status\",\n \"governance.list.filter.allStatuses\": \"All statuses\",\n \"governance.list.status.enabled\": \"Enabled\",\n \"governance.list.status.draft\": \"Draft\",\n \"governance.list.status.disabled\": \"Disabled\",\n \"governance.list.typeIconTitle\": \"{{type}} agent\",\n \"governance.list.statusTooltip\": \"Status: {{status}}\",\n \"governance.list.create\": \"New Agent\",\n \"governance.list.emptyTitle\": \"No agents yet\",\n \"governance.list.emptyDescription\": \"Click \\\"New Agent\\\" to create one\",\n \"governance.workbench.loadFailed\": \"Failed to load agents\",\n \"governance.workbench.agentFallback\": \"Agent\",\n \"governance.detail.viewDescription\": \"View description\",\n \"governance.detail.testInPlayground\": \"Test in Playground\",\n \"governance.detail.evalSuite\": \"Eval Suite\",\n \"governance.detail.webApps\": \"Web Apps\",\n \"governance.detail.configuration\": \"Configuration\",\n \"governance.detail.playground\": \"Playground\",\n \"governance.detail.runResults\": \"Run Results\",\n \"governance.detail.loadFailed\": \"Failed to load agent\",\n \"governance.detail.saveFailed\": \"Failed to save agent\",\n \"governance.detail.deleteFailed\": \"Failed to delete agent\",\n \"governance.detail.deleted\": \"Agent deleted\",\n \"governance.detail.missingId\": \"Missing agent id\",\n \"governance.detail.notFound\": \"Agent not found\",\n \"governance.detail.backToList\": \"Back to list\",\n \"governance.detail.noDescription\": \"No description set.\",\n \"governance.detail.removeNodeSaveFailed\": \"Failed to save after removing node\",\n \"governance.detail.discardTitle\": \"Discard unsaved configuration?\",\n \"governance.detail.discardBody\": \"You have unsaved configuration changes. Discard them and continue?\",\n \"governance.detail.discard\": \"Discard\",\n \"governance.detail.continueEditing\": \"Continue editing\",\n \"governance.detail.deleteConfirm\": \"Are you sure you want to delete \\\"{{name}}\\\"? This action cannot be undone.\",\n \"governance.detail.listCardMessage\": \"Assistants\",\n \"governance.creation.title\": \"Choose how to create your agent\",\n \"governance.creation.subtitle\": \"Choose the path that best fits the agent you want to build.\",\n \"governance.creation.manual.title\": \"Manual Configuration\",\n \"governance.creation.manual.description\": \"Define the agent's identity, type, tools, and system prompt yourself.\",\n \"governance.creation.external.title\": \"External Agent\",\n \"governance.creation.external.description\": \"Connect an existing A2A-compatible agent by URL or manage a local runtime.\",\n \"governance.creation.learn.title\": \"Learn with Agent Architect\",\n \"governance.creation.learn.description\": \"Describe the goal and let Agent Architect build and evaluate the agent with training context.\",\n \"governance.creation.notNow\": \"Not now\",\n \"governance.dock.close\": \"Close dock\",\n \"governance.dock.resize\": \"Resize panel\",\n \"governance.overlay.runtime\": \"Runtime\",\n \"governance.overlay.runtimeChartTitle\": \"Click for 30-day chart\",\n \"governance.overlay.runtimePanel\": \"Runtime — last 30 days\",\n \"governance.overlay.threads\": \"threads\",\n \"governance.overlay.evalQuality\": \"Eval quality\",\n \"governance.overlay.evalChartTitle\": \"Click for score trend\",\n \"governance.overlay.learningWorkflow\": \"Learning workflow\",\n \"governance.overlay.stat.score\": \"score\",\n \"governance.overlay.stat.pass\": \"pass\",\n \"governance.overlay.stat.runs\": \"runs\",\n \"governance.overview.runtimeTitle\": \"Runtime\",\n \"governance.overview.runtimeSubtitle\": \"Conversations · activity\",\n \"governance.overview.threads\": \"threads\",\n \"governance.overview.lastActive\": \"last active\",\n \"governance.overview.evalQualityTitle\": \"Eval Quality\",\n \"governance.overview.evalQualitySubtitle\": \"Quality · score trend\",\n \"governance.overview.stat.score\": \"score\",\n \"governance.overview.stat.passRate\": \"pass rate\",\n \"governance.overview.stat.runs\": \"runs\",\n \"governance.overview.singleRun\": \"Single run — trend needs 2+ runs\",\n \"governance.overview.usageTitle\": \"Usage Activity\",\n \"governance.overview.usageSubtitle\": \"Last 14 days · dark = last 7\",\n \"governance.overview.configTitle\": \"Configuration\",\n \"governance.overview.configSubtitle\": \"Scale · composition\",\n \"governance.overview.stat.tools\": \"tools\",\n \"governance.overview.stat.subagents\": \"subagents\",\n \"governance.overview.stat.middleware\": \"middleware\",\n \"governance.overview.stat.age\": \"age\",\n \"governance.overview.staticConfig\": \"Static config, no trend\",\n \"governance.overview.noEvalProject\": \"This agent has no eval project yet — create one in the Eval Suite tab\",\n \"governance.cardStats.scoreEmpty\": \"score —\",\n \"governance.cardStats.threadsEmpty\": \"threads —\",\n \"governance.cardStats.evalScore\": \"eval score\",\n \"governance.cardStats.threads\": \"threads\",\n \"governance.cardStats.threads7d\": \"7d threads\",\n \"governance.cardStats.evalTooltip\": \"Eval score: {{score}} · pass rate {{passRate}} · {{runs}} runs\",\n \"governance.cardStats.conversationsTooltip\": \"Conversations: {{total}} total · {{last7d}} in 7d · {{last30d}} in 30d\",\n \"governance.cardStats.conversationsTooltipActive\": \"Conversations: {{total}} total · {{last7d}} in 7d · {{last30d}} in 30d · last active {{lastActive}}\",\n \"governance.evalQuality.noRuns\": \"No eval runs yet\",\n \"governance.evalQuality.scoreByRun\": \"Score by run\",\n \"governance.evalQuality.roundTrend\": \"Score by learning round\",\n \"governance.evalQuality.latestRun\": \"Latest run\",\n \"governance.evalQuality.passCount\": \"{{passed}}/{{total}} passed\",\n \"governance.evalQuality.latestScore\": \"latest score\",\n \"governance.evalQuality.passSummary\": \"pass · {{passed}}/{{total}}\",\n \"governance.evalQuality.interrupted\": \"interrupted\",\n \"governance.evalInsights.interrupted\": \"{{count}} interrupted\",\n \"governance.evalInsights.allPassed\": \"All cases passed\",\n \"governance.configGraph.emptyGroup\": \"empty\",\n \"governance.configGraph.removeItem\": \"Remove {{label}}\",\n \"governance.nodeGroup.agent\": \"Agent\",\n \"governance.nodeGroup.tool\": \"Tool\",\n \"governance.nodeGroup.capability\": \"Capability\",\n \"governance.nodeGroup.subagent\": \"Sub-Agent\",\n \"governance.nodeGroup.skill\": \"Skill\",\n \"governance.nodeGroup.model\": \"Model\",\n \"governance.nodeGroup.eval\": \"Eval Suite\",\n \"governance.nodeDock.toolUnavailable\": \"Tool details unavailable.\",\n \"governance.nodeDock.subagentUnavailable\": \"Sub-agent details unavailable.\",\n \"governance.nodeDock.skillUnavailable\": \"Skill details unavailable.\",\n \"governance.nodeDock.description\": \"Description\",\n \"governance.nodeDock.parameters\": \"Parameters\",\n \"governance.nodeDock.noDescription\": \"No description\",\n \"governance.nodeDock.model\": \"Model\",\n \"governance.nodeDock.content\": \"Content\",\n \"governance.nodeDock.prompt\": \"Prompt\",\n \"governance.nodeDock.capabilitySaved\": \"Capability saved\",\n \"governance.nodeDock.capabilitySaveFailed\": \"Failed to save capability\",\n \"governance.nodeDock.agentSaved\": \"Agent saved\",\n \"governance.nodeDock.removeFromAgent\": \"Remove from agent\",\n \"governance.nodeDock.confirmRemove\": \"Confirm remove\",\n \"governance.copilot.label\": \"Architect\",\n \"governance.copilot.open\": \"Open copilot\",\n \"governance.copilot.expand\": \"Expand architect copilot\",\n \"governance.workflow.noDsl\": \"No workflow DSL yet — ask the architect to design one\",\n \"governance.workflow.builderLabel\": \"Builder\",\n \"governance.zone.pinAria\": \"Pin {{zone}} zone\",\n \"governance.zone.unpinAria\": \"Unpin {{zone}} zone\",\n \"governance.canvas.zone.copilot\": \"COPILOT\",\n \"governance.canvas.zone.learning\": \"LEARNING\",\n \"governance.canvas.zone.evaluation\": \"EVALUATION\",\n \"governance.canvas.quickNav.title\": \"Quick navigation\",\n \"governance.canvas.quickNav.kbdShortcut\": \"⌘/Ctrl + 1–4\",\n \"governance.canvas.quickNav.focusZone\": \"focus a zone\",\n \"governance.canvas.quickNav.clickDot\": \"Click a dot\",\n \"governance.canvas.quickNav.dragLabel\": \"Drag a zone label\",\n \"governance.canvas.quickNav.moveBlock\": \"move the block\",\n \"governance.canvas.quickNav.pinLabel\": \"📌 Click a zone label\",\n \"governance.canvas.quickNav.pinHelp\": \"pin it into the side split (click again to unpin)\",\n \"governance.canvas.quickNav.legend\": \"① Config ② Learning ③ Evaluation ④ Copilot\",\n \"governance.canvas.startTutorial\": \"Start tutorial\",\n \"governance.canvas.resetLayout\": \"Reset layout\",\n \"governance.canvas.dot.config\": \"Config\",\n \"governance.canvas.dot.learning\": \"Learning\",\n \"governance.canvas.dot.testing\": \"Evaluation\",\n \"governance.canvas.dot.copilot\": \"Copilot\",\n \"governance.canvas.fitZoneAria\": \"Fit {{zone}} zone\",\n \"governance.canvas.helpToggleAria\": \"Quick navigation guide\",\n \"governance.tour.welcome.title\": \"Welcome to the training canvas\",\n \"governance.tour.welcome.description\": \"Four zones you can arrange freely. Press Next to learn the basics in 3 quick steps.\",\n \"governance.tour.zones.title\": \"Switch zones\",\n \"governance.tour.zones.description\": \"Press ⌘/Ctrl + 2 or 4 — or click a dot in the pill below — to jump between zones.\",\n \"governance.tour.move.title\": \"Move a zone\",\n \"governance.tour.move.description\": \"Grab a zone label above any block and drag it anywhere. Positions reset next session.\",\n \"governance.tour.pin.title\": \"Pin the copilot\",\n \"governance.tour.pin.description\": \"Click 📌 on the COPILOT label to dock it into the right split. Click again to unpin.\",\n \"governance.tour.skip\": \"Skip tour\",\n \"governance.tour.done\": \"Done\",\n \"governance.tour.next\": \"Next\",\n \"governance.testing.suites\": \"Evaluation suites\",\n \"governance.testing.caseCount\": \"{{count}} cases\",\n \"governance.evalPanel.createTitle\": \"Create Eval Project\",\n \"governance.evalPanel.createProject\": \"Create eval project\",\n \"governance.evalPanel.noProject\": \"This agent has no eval project yet\",\n \"governance.evalPanel.projectName\": \"Project Name\",\n \"governance.evalPanel.judgeModel\": \"Judge Model\",\n \"governance.evalPanel.judgeModelRequired\": \"Please select a judge model\",\n \"governance.evalPanel.modelPlaceholder\": \"Select a registered model\",\n \"governance.evalPanel.createFailed\": \"Failed to create eval project\",\n \"governance.evalPanel.newSuite\": \"New Suite\",\n \"governance.evalPanel.runAll\": \"Run All\",\n \"governance.evalPanel.suiteNamePlaceholder\": \"Suite name\",\n \"governance.evalPanel.kindTag\": \"eval\",\n \"governance.webApps.title\": \"Web Apps\",\n \"governance.webApps.create\": \"Create Web App\",\n \"governance.webApps.action.enable\": \"Enable\",\n \"governance.webApps.action.disable\": \"Disable\",\n \"governance.webApps.action.preview\": \"Preview\",\n \"governance.webApps.action.integrationGuide\": \"Integration guide\",\n \"governance.webApps.action.copyId\": \"Copy Web App ID\",\n \"governance.webApps.projectsCount\": \"{{count}} project{{s}} · react_sdk\",\n \"governance.webApps.emptyTitle\": \"No Web Apps\",\n \"governance.webApps.emptyDescription\": \"Create a React SDK publication for this agent.\",\n \"governance.webApps.warningTitle\": \"Unverified identity\",\n \"governance.webApps.warningDescription\": \"Web Apps trust the external user ID supplied by the embedding application. Do not use it as proof of authentication.\",\n \"governance.webApps.deleteTitle\": \"Delete Web App\",\n \"governance.webApps.deleteBody\": \"Delete “{{name}}”? This action cannot be undone.\",\n \"governance.webApps.previewTitle\": \"Preview\",\n \"governance.webApps.previewFrameTitle\": \"Web App preview\",\n \"governance.webApps.gatewayUnavailable\": \"Gateway URL unavailable\",\n \"governance.webApps.draftPreviewTitle\": \"Draft preview\",\n \"governance.webApps.draftPreviewDescription\": \"This renders the in-page console chat so you can inspect draft content. Enable the publication to preview the exact embed experience external users get.\",\n \"governance.webApps.guideTitle\": \"Integration guide\",\n \"governance.webApps.copyExamples\": \"Copy examples\",\n \"governance.webApps.guide.zeroCodeTab\": \"Zero-code script loader\",\n \"governance.webApps.guide.zeroCodeIntro\": \"One script tag — the full Console-style chat runs in an isolated iframe on the gateway origin. No build step, no npm install.\",\n \"governance.webApps.guide.settingsTitle\": \"Configuration — window.AxiomChatSettings\",\n \"governance.webApps.guide.jsApiTitle\": \"JS API — window.AxiomChat\",\n \"governance.webApps.guide.jsApiBody\": \"Property and command forms are equivalent; register callbacks or actions before the loader loads with the array form ({{example}} — replayed in order on load).\",\n \"governance.webApps.guide.eventsTitle\": \"Events\",\n \"governance.webApps.guide.hostTrustTitle\": \"Host trust and limits\",\n \"governance.webApps.guide.hostTrustBody\": \"The host page can send messages and read new conversation content — only embed on trusted pages. One streaming reply at a time; loading the loader twice is unsupported. Not available yet: unread callbacks, runtime theme updates, verified setIdentity, token-level streaming events.\",\n \"governance.webApps.guide.npmTab\": \"npm SDK\",\n \"governance.webApps.guide.npmIntro\": \"React applications — the same chat stack as a first-class component in your page, fully composable.\",\n \"governance.webApps.guide.fullChat\": \"Full chat — AgentChatApp\",\n \"governance.webApps.guide.composable\": \"Composable widgets\",\n \"governance.webApps.guide.hooks\": \"Hooks\",\n \"governance.webApps.guide.col.key\": \"Key\",\n \"governance.webApps.guide.col.type\": \"Type\",\n \"governance.webApps.guide.col.description\": \"Description\",\n \"governance.webApps.guide.col.api\": \"API\",\n \"governance.webApps.guide.col.behavior\": \"Behavior\",\n \"governance.webApps.guide.col.register\": \"Register\",\n \"governance.webApps.guide.col.payload\": \"Payload\",\n \"governance.webApps.guide.col.when\": \"When\",\n \"governance.webApps.guide.setting.webAppId\": \"Publication id (not the Agent id). Missing → the loader warns and does not start.\",\n \"governance.webApps.guide.setting.userId\": \"Stable per-user subject. ^[A-Za-z0-9._:@-]+$, ≤128 chars. Missing/invalid → the chat does not start and onError fires with USER_ID_REQUIRED.\",\n \"governance.webApps.guide.setting.gatewayUrl\": \"Gateway URL (defaults to the loader script's own origin). Trailing slashes are trimmed.\",\n \"governance.webApps.guide.setting.mode\": \"Bubble popup (default) or embed into the containerSelector element.\",\n \"governance.webApps.guide.setting.containerSelector\": \"Required for inline mode. Falls back to body with a console warning when not found.\",\n \"governance.webApps.guide.setting.bubble\": \"false = no launcher button; drive the panel with open()/hide().\",\n \"governance.webApps.guide.setting.widthHeight\": \"Bubble panel size, clamped to the viewport (min 240).\",\n \"governance.webApps.guide.setting.position\": \"Horizontal anchor for the launcher and panel.\",\n \"governance.webApps.guide.setting.offset\": \"Viewport margin. Nested form also supported: offset: { x, y }.\",\n \"governance.webApps.guide.setting.zIndex\": \"Panel stacking (the launcher sits at zIndex + 1).\",\n \"governance.webApps.guide.setting.welcome\": \"Chat empty-state welcome; overrides the publication appearance.welcomeMessage.\",\n \"governance.webApps.guide.setting.quicks\": \"Chat empty-state quick prompts (≤6; label 1-40, text 1-500; invalid entries dropped). Overrides appearance.quickPrompts entirely when provided; clicking one sends its text.\",\n \"governance.webApps.guide.api.open\": \"Show, hide, or toggle the panel. No-ops in inline mode (the chat is always visible in its container).\",\n \"governance.webApps.guide.api.sendMessage\": \"Send a message programmatically — rendered in the UI like a typed message and streamed from the server. Trimmed non-empty, ≤32768 chars; automatically queued while the chat is busy; before onReady it is buffered and flushed on ready. Send failures show the chat's own inline error banner.\",\n \"governance.webApps.guide.api.mount\": \"Mount additional independent chats (different webAppIds) on one page; returns an instance handle with the full API (open/hide/toggle/sendMessage/onReady/onMessage/onError). get(id) retrieves a mounted handle; without global settings the default-instance delegates warn and no-op.\",\n \"governance.webApps.guide.event.onReady\": \"The chat can send/receive (handshake complete, thread ready). Buffered sends flush immediately after.\",\n \"governance.webApps.guide.event.onMessage\": \"Per accepted message: your sent message (server echo) and each completed AI reply (final text — not per-token). Boot-time history is not replayed; the baseline resets per thread. Structured content is not included.\",\n \"governance.webApps.guide.event.onError\": \"WEB_APP_NOT_FOUND · WEB_APP_DISABLED · USER_ID_REQUIRED · PROJECT_NOT_ALLOWED · MODEL_NOT_ALLOWED · FEATURE_DISABLED · INVALID_REQUEST · STREAM_FAILED\",\n \"governance.webApp.createTitle\": \"Create Web App\",\n \"governance.webApp.editTitle\": \"Edit Web App\",\n \"governance.webApp.name\": \"Name\",\n \"governance.webApp.nameMax\": \"Name must be 120 characters or fewer\",\n \"governance.webApp.description\": \"Description\",\n \"governance.webApp.descriptionMax\": \"Description must be 1000 characters or fewer\",\n \"governance.webApp.projectScope\": \"Project scope\",\n \"governance.webApp.projectSelector\": \"Project selector\",\n \"governance.webApp.allowedProjects\": \"Allowed projects\",\n \"governance.webApp.selectProject\": \"Select at least one project\",\n \"governance.webApp.selectValidProjects\": \"Select valid allowed projects\",\n \"governance.webApp.defaultInAllowed\": \"Default project must be in allowed projects\",\n \"governance.webApp.defaultProject\": \"Default project\",\n \"governance.webApp.selectValidDefaultProject\": \"Select a valid default project\",\n \"governance.webApp.modelScope\": \"Model scope (optional)\",\n \"governance.webApp.modelSelector\": \"Model selector\",\n \"governance.webApp.allowedModels\": \"Allowed models\",\n \"governance.webApp.selectModel\": \"Select at least one model\",\n \"governance.webApp.selectValidModels\": \"Select valid allowed models\",\n \"governance.webApp.defaultModel\": \"Default model\",\n \"governance.webApp.selectValidDefaultModel\": \"Select a valid default model\",\n \"governance.webApp.features\": \"Features\",\n \"governance.webApp.feature.threadManagement\": \"threadManagement\",\n \"governance.webApp.feature.attachments\": \"attachments\",\n \"governance.webApp.feature.hitl\": \"hitl\",\n \"governance.webApp.feature.genUI\": \"genUI\",\n \"governance.webApp.feature.files\": \"files\",\n \"governance.webApp.appearance\": \"Appearance\",\n \"governance.webApp.title\": \"Title\",\n \"governance.webApp.titleMax\": \"Title must be 120 characters or fewer\",\n \"governance.webApp.welcomeMessage\": \"Welcome message\",\n \"governance.webApp.welcomeMessageMax\": \"Welcome message must be 1000 characters or fewer\",\n \"governance.webApp.primaryColor\": \"Primary color\",\n \"governance.webApp.colorFormat\": \"Use a #RRGGBB color\",\n \"governance.webApp.quickPrompts\": \"Quick prompts\",\n \"governance.webApp.quickPromptLabelRequired\": \"Quick prompt label is required\",\n \"governance.webApp.quickPromptLabelMax\": \"Quick prompt label must be 40 characters or fewer\",\n \"governance.webApp.quickPromptLabelAria\": \"Quick prompt label {{index}}\",\n \"governance.webApp.labelPlaceholder\": \"Label\",\n \"governance.webApp.quickPromptTextRequired\": \"Quick prompt message is required\",\n \"governance.webApp.quickPromptTextMax\": \"Quick prompt message must be 500 characters or fewer\",\n \"governance.webApp.quickPromptTextAria\": \"Quick prompt message {{index}}\",\n \"governance.webApp.messagePlaceholder\": \"Message text\",\n \"governance.webApp.removeQuickPromptAria\": \"Remove quick prompt {{index}}\",\n \"governance.webApp.remove\": \"Remove\",\n \"governance.webApp.addQuickPrompt\": \"Add quick prompt\",\n \"governance.webApp.identity\": \"Identity\",\n \"governance.webApp.identityPolicy\": \"Identity policy\",\n \"governance.webApp.identityUnverified\": \"Unverified (header)\",\n \"governance.webApp.identityBoth\": \"Verified token or header (migration)\",\n \"governance.webApp.identityVerified\": \"Verified tokens only\",\n \"governance.webApp.trustedIssuers\": \"Trusted issuers (JSON)\",\n \"governance.webApp.trustedIssuersTooltip\": \"Required when the policy includes verified tokens. Example: [{\\\"iss\\\":\\\"https://host.example.com\\\",\\\"aud\\\":\\\"<webAppId>\\\",\\\"alg\\\":\\\"HS256\\\",\\\"secret\\\":\\\"...\\\"}]\",\n \"governance.webApp.issuersEmpty\": \"Provide a non-empty JSON array of issuers\",\n \"governance.webApp.issuersInvalid\": \"Trusted issuers must be a valid JSON array\",\n \"governance.webApp.integrationType\": \"Integration type: react_sdk\",\n \"governance.learning.projectLabel\": \"Learning project\",\n \"governance.learning.noProject\": \"No learning project is available\",\n \"governance.learning.noProjectDescription\": \"A learning project is required before starting a learning task.\",\n \"governance.learning.uploadFailed\": \"Failed to upload \\\"{{name}}\\\"\",\n \"governance.learning.uploadHint\": \"Click or drag files to this area to upload\",\n \"governance.learning.uploadNote\": \"Files are stored in the selected project under /project/uploads\",\n \"governance.learning.activityLoadFailed\": \"Activity could not be loaded. Please try again shortly.\",\n \"governance.learning.activityCapacity\": \"Too many activity requests are still pending. Please try again shortly.\",\n \"governance.learning.commandFailedSuffix\": \"{{message}}, but the task list could not be refreshed\",\n \"governance.learning.cmd.retry\": \"Task retry started\",\n \"governance.learning.cmd.cancel\": \"Task cancelled\",\n \"governance.learning.cmd.start\": \"Task started\",\n \"governance.learning.cmd.reopen\": \"Task reopened\",\n \"governance.learning.cmd.delete\": \"Task deleted\",\n \"governance.learning.cmd.comment\": \"Comment added\",\n \"governance.learning.cmd.updated\": \"Task updated\",\n \"governance.learning.createdRefreshFailed\": \"Task created, but the task list could not be refreshed\",\n \"governance.learning.tasksTitle\": \"Learning Tasks\",\n \"governance.learning.newTask\": \"New Learning Task\",\n \"governance.learning.empty\": \"No learning tasks yet\",\n \"governance.learning.openWorkflow\": \"Open workflow view\",\n \"governance.learning.openReviewTasks\": \"Open {{count}} task{{s}} waiting for approval\",\n \"governance.learning.reviewCount\": \"{{count}} item{{s}} waiting for approval\",\n \"governance.learning.created\": \"Learning task created. Preparing the Architect…\",\n \"governance.learning.createFailed\": \"Failed to create the learning task. Please try again.\",\n \"governance.learning.inProgress\": \"A learning task is already in progress. Complete it before starting a new one.\",\n \"governance.learning.goalLabel\": \"Learning Goal for This Round\",\n \"governance.learning.goalRequired\": \"Please describe what you want this agent to learn or improve in this round\",\n \"governance.learning.goalPlaceholder\": \"e.g. Improve the agent's accuracy when handling price disputes based on the price protection policy\",\n \"governance.learning.referenceMaterials\": \"Reference Materials\",\n \"governance.learning.referenceMaterialsHint\": \"Optional. These materials will be used as reference for this learning round.\",\n \"governance.learning.start\": \"Start Learning\",\n \"governance.learning.noTasks\": \"No tasks\",\n \"governance.learning.selectRound\": \"Select round\",\n \"governance.learning.tasksCount\": \"{{done}}/{{total}} tasks\",\n \"governance.learning.tasksDone\": \"{{done}}/{{total}} tasks done\",\n \"governance.learning.waiting\": \"{{count}} waiting\",\n \"governance.learning.back\": \"‹ Back\",\n \"governance.learning.depBadgeDone\": \"⬦ {{count}} deps ✓\",\n \"governance.learning.depBadgeWaiting\": \"⬦ waits {{count}}\",\n \"governance.learning.expandNested\": \"Expand {{count}} nested tasks in {{title}}\",\n \"governance.learning.status.pending\": \"Pending\",\n \"governance.learning.status.running\": \"Running\",\n \"governance.learning.status.review\": \"Review\",\n \"governance.learning.status.failed\": \"Failed\",\n \"governance.learning.status.interrupted\": \"Interrupted\",\n \"governance.learning.status.done\": \"Done\",\n \"governance.learning.status.cancelled\": \"Cancelled\",\n \"governance.learning.roundCreateFailed\": \"Failed to create learning round task\",\n \"governance.learning.threadCreateFailed\": \"Failed to create training thread\",\n \"governance.canvas.zone.config\": \"CONFIG\",\n \"governance.canvas.dock.learningTasks\": \"Learning tasks\",\n \"governance.pinnedRail.openEval\": \"Open eval quality\",\n \"governance.pinnedRail.openLearning\": \"Open full learning graph\",\n \"governance.pinnedRail.new\": \"New\",\n \"governance.configGraph.allSkills\": \"All skills\",\n \"governance.configGraph.allSkillsDescription\": \"Agent can load any available skill\",\n \"governance.evalQuality.target\": \"target {{score}}\",\n \"governance.overview.unnamed\": \"Unnamed\",\n \"governance.webApps.requestFailed\": \"Request failed\",\n \"governance.webApps.clipboardUnavailable\": \"Clipboard unavailable\",\n \"governance.webApps.status.active\": \"Active\",\n \"governance.webApps.status.disabled\": \"Disabled\",\n \"governance.webApps.status.draft\": \"Draft\"\n }\n}\n","{\n \"messages\": {\n \"governance.deleteAgent\": \"删除智能体\",\n \"governance.delete.irreversible\": \"此操作无法撤销。\",\n \"governance.list.title\": \"智能体\",\n \"governance.list.tab.all\": \"全部\",\n \"governance.list.tab.capability\": \"能力型\",\n \"governance.list.tab.orchestrator\": \"编排型\",\n \"governance.list.tab.team\": \"团队\",\n \"governance.list.tab.workflow\": \"工作流\",\n \"governance.list.action.playground\": \"演练场\",\n \"governance.list.action.eval\": \"评测\",\n \"governance.list.viewMode.graph\": \"关系图\",\n \"governance.list.filter.domain\": \"领域\",\n \"governance.list.filter.allDomains\": \"全部领域\",\n \"governance.list.filter.status\": \"状态\",\n \"governance.list.filter.allStatuses\": \"全部状态\",\n \"governance.list.status.enabled\": \"已启用\",\n \"governance.list.status.draft\": \"草稿\",\n \"governance.list.status.disabled\": \"已停用\",\n \"governance.list.typeIconTitle\": \"{{type}} 类型智能体\",\n \"governance.list.statusTooltip\": \"状态:{{status}}\",\n \"governance.list.create\": \"新建智能体\",\n \"governance.list.emptyTitle\": \"暂无智能体\",\n \"governance.list.emptyDescription\": \"点击「新建智能体」即可创建\",\n \"governance.workbench.loadFailed\": \"加载智能体失败\",\n \"governance.workbench.agentFallback\": \"智能体\",\n \"governance.detail.viewDescription\": \"查看描述\",\n \"governance.detail.testInPlayground\": \"在演练场测试\",\n \"governance.detail.evalSuite\": \"评测套件\",\n \"governance.detail.webApps\": \"Web 应用\",\n \"governance.detail.configuration\": \"配置\",\n \"governance.detail.playground\": \"演练场\",\n \"governance.detail.runResults\": \"运行结果\",\n \"governance.detail.loadFailed\": \"加载智能体失败\",\n \"governance.detail.saveFailed\": \"保存智能体失败\",\n \"governance.detail.deleteFailed\": \"删除智能体失败\",\n \"governance.detail.deleted\": \"智能体已删除\",\n \"governance.detail.missingId\": \"缺少智能体 ID\",\n \"governance.detail.notFound\": \"未找到智能体\",\n \"governance.detail.backToList\": \"返回列表\",\n \"governance.detail.noDescription\": \"未设置描述。\",\n \"governance.detail.removeNodeSaveFailed\": \"移除节点后保存失败\",\n \"governance.detail.discardTitle\": \"放弃未保存的配置?\",\n \"governance.detail.discardBody\": \"你还有未保存的配置更改。要放弃并继续吗?\",\n \"governance.detail.discard\": \"放弃\",\n \"governance.detail.continueEditing\": \"继续编辑\",\n \"governance.detail.deleteConfirm\": \"确定要删除「{{name}}」吗?此操作无法撤销。\",\n \"governance.detail.listCardMessage\": \"智能体列表\",\n \"governance.creation.title\": \"选择创建智能体的方式\",\n \"governance.creation.subtitle\": \"选择最符合你要构建的智能体的方式。\",\n \"governance.creation.manual.title\": \"手动配置\",\n \"governance.creation.manual.description\": \"自行定义智能体的身份、类型、工具和系统提示词。\",\n \"governance.creation.external.title\": \"外部智能体\",\n \"governance.creation.external.description\": \"通过 URL 接入已有的 A2A 兼容智能体,或管理本地运行时。\",\n \"governance.creation.learn.title\": \"让 Agent Architect 帮你构建\",\n \"governance.creation.learn.description\": \"描述目标,让 Agent Architect 结合训练上下文构建并评测该智能体。\",\n \"governance.creation.notNow\": \"暂不\",\n \"governance.dock.close\": \"关闭面板\",\n \"governance.dock.resize\": \"调整面板宽度\",\n \"governance.overlay.runtime\": \"运行时\",\n \"governance.overlay.runtimeChartTitle\": \"点击查看 30 天图表\",\n \"governance.overlay.runtimePanel\": \"运行时 — 最近 30 天\",\n \"governance.overlay.threads\": \"会话\",\n \"governance.overlay.evalQuality\": \"评测质量\",\n \"governance.overlay.evalChartTitle\": \"点击查看评分趋势\",\n \"governance.overlay.learningWorkflow\": \"学习工作流\",\n \"governance.overlay.stat.score\": \"评分\",\n \"governance.overlay.stat.pass\": \"通过率\",\n \"governance.overlay.stat.runs\": \"运行\",\n \"governance.overview.runtimeTitle\": \"运行时\",\n \"governance.overview.runtimeSubtitle\": \"对话 · 活跃度\",\n \"governance.overview.threads\": \"会话\",\n \"governance.overview.lastActive\": \"最近活跃\",\n \"governance.overview.evalQualityTitle\": \"评测质量\",\n \"governance.overview.evalQualitySubtitle\": \"质量 · 评分趋势\",\n \"governance.overview.stat.score\": \"评分\",\n \"governance.overview.stat.passRate\": \"通过率\",\n \"governance.overview.stat.runs\": \"运行\",\n \"governance.overview.singleRun\": \"仅有一次运行 — 趋势需要 2 次以上\",\n \"governance.overview.usageTitle\": \"使用活跃度\",\n \"governance.overview.usageSubtitle\": \"最近 14 天 · 深色 = 最近 7 天\",\n \"governance.overview.configTitle\": \"配置\",\n \"governance.overview.configSubtitle\": \"规模 · 组成\",\n \"governance.overview.stat.tools\": \"工具\",\n \"governance.overview.stat.subagents\": \"子智能体\",\n \"governance.overview.stat.middleware\": \"中间件\",\n \"governance.overview.stat.age\": \"时长\",\n \"governance.overview.staticConfig\": \"静态配置,无趋势\",\n \"governance.overview.noEvalProject\": \"该智能体还没有评测项目 — 请在「评测套件」标签页中创建\",\n \"governance.cardStats.scoreEmpty\": \"评分 —\",\n \"governance.cardStats.threadsEmpty\": \"会话 —\",\n \"governance.cardStats.evalScore\": \"评测评分\",\n \"governance.cardStats.threads\": \"会话\",\n \"governance.cardStats.threads7d\": \"7 天会话\",\n \"governance.cardStats.evalTooltip\": \"评测评分:{{score}} · 通过率 {{passRate}} · {{runs}} 次运行\",\n \"governance.cardStats.conversationsTooltip\": \"对话:共 {{total}} · 7 天内 {{last7d}} · 30 天内 {{last30d}}\",\n \"governance.cardStats.conversationsTooltipActive\": \"对话:共 {{total}} · 7 天内 {{last7d}} · 30 天内 {{last30d}} · 最近活跃 {{lastActive}}\",\n \"governance.evalQuality.noRuns\": \"暂无评测运行\",\n \"governance.evalQuality.scoreByRun\": \"按运行查看评分\",\n \"governance.evalQuality.roundTrend\": \"按学习轮次查看评分\",\n \"governance.evalQuality.latestRun\": \"最近运行\",\n \"governance.evalQuality.passCount\": \"{{passed}}/{{total}} 通过\",\n \"governance.evalQuality.latestScore\": \"最新评分\",\n \"governance.evalQuality.passSummary\": \"通过 · {{passed}}/{{total}}\",\n \"governance.evalQuality.interrupted\": \"已中断\",\n \"governance.evalInsights.interrupted\": \"{{count}} 个已中断\",\n \"governance.evalInsights.allPassed\": \"全部用例通过\",\n \"governance.configGraph.emptyGroup\": \"空\",\n \"governance.configGraph.removeItem\": \"移除 {{label}}\",\n \"governance.nodeGroup.agent\": \"智能体\",\n \"governance.nodeGroup.tool\": \"工具\",\n \"governance.nodeGroup.capability\": \"能力\",\n \"governance.nodeGroup.subagent\": \"子智能体\",\n \"governance.nodeGroup.skill\": \"技能\",\n \"governance.nodeGroup.model\": \"模型\",\n \"governance.nodeGroup.eval\": \"评测套件\",\n \"governance.nodeDock.toolUnavailable\": \"无法获取工具详情。\",\n \"governance.nodeDock.subagentUnavailable\": \"无法获取子智能体详情。\",\n \"governance.nodeDock.skillUnavailable\": \"无法获取技能详情。\",\n \"governance.nodeDock.description\": \"描述\",\n \"governance.nodeDock.parameters\": \"参数\",\n \"governance.nodeDock.noDescription\": \"无描述\",\n \"governance.nodeDock.model\": \"模型\",\n \"governance.nodeDock.content\": \"内容\",\n \"governance.nodeDock.prompt\": \"提示词\",\n \"governance.nodeDock.capabilitySaved\": \"能力已保存\",\n \"governance.nodeDock.capabilitySaveFailed\": \"保存能力失败\",\n \"governance.nodeDock.agentSaved\": \"智能体已保存\",\n \"governance.nodeDock.removeFromAgent\": \"从智能体移除\",\n \"governance.nodeDock.confirmRemove\": \"确认移除\",\n \"governance.copilot.label\": \"Architect\",\n \"governance.copilot.open\": \"打开 Copilot\",\n \"governance.copilot.expand\": \"展开 Agent Architect Copilot\",\n \"governance.workflow.noDsl\": \"暂无工作流 DSL — 让 Agent Architect 帮你设计一个\",\n \"governance.workflow.builderLabel\": \"构建器\",\n \"governance.zone.pinAria\": \"将 {{zone}} 区域固定到侧栏\",\n \"governance.zone.unpinAria\": \"取消固定 {{zone}} 区域\",\n \"governance.canvas.zone.copilot\": \"COPILOT\",\n \"governance.canvas.zone.learning\": \"LEARNING\",\n \"governance.canvas.zone.evaluation\": \"EVALUATION\",\n \"governance.canvas.quickNav.title\": \"快速导航\",\n \"governance.canvas.quickNav.kbdShortcut\": \"⌘/Ctrl + 1–4\",\n \"governance.canvas.quickNav.focusZone\": \"聚焦某个区域\",\n \"governance.canvas.quickNav.clickDot\": \"点击圆点\",\n \"governance.canvas.quickNav.dragLabel\": \"拖拽区域标签\",\n \"governance.canvas.quickNav.moveBlock\": \"移动整个区块\",\n \"governance.canvas.quickNav.pinLabel\": \"📌 点击区域标签\",\n \"governance.canvas.quickNav.pinHelp\": \"将其固定到侧边分栏(再次点击取消固定)\",\n \"governance.canvas.quickNav.legend\": \"① 配置 ② 学习 ③ 评测 ④ Copilot\",\n \"governance.canvas.startTutorial\": \"开始引导\",\n \"governance.canvas.resetLayout\": \"重置布局\",\n \"governance.canvas.dot.config\": \"配置\",\n \"governance.canvas.dot.learning\": \"学习\",\n \"governance.canvas.dot.testing\": \"评测\",\n \"governance.canvas.dot.copilot\": \"Copilot\",\n \"governance.canvas.fitZoneAria\": \"定位到 {{zone}} 区域\",\n \"governance.canvas.helpToggleAria\": \"快速导航指南\",\n \"governance.tour.welcome.title\": \"欢迎使用训练画布\",\n \"governance.tour.welcome.description\": \"四个可自由排布的区域。点击「下一步」,用 3 个快速步骤了解基本用法。\",\n \"governance.tour.zones.title\": \"切换区域\",\n \"governance.tour.zones.description\": \"按 ⌘/Ctrl + 2 或 4,或点击下方胶囊中的圆点,在区域之间跳转。\",\n \"governance.tour.move.title\": \"移动区域\",\n \"governance.tour.move.description\": \"抓住任意区块上方的区域标签,拖到任意位置。位置会在下次会话时重置。\",\n \"governance.tour.pin.title\": \"固定 Copilot\",\n \"governance.tour.pin.description\": \"点击 COPILOT 标签上的 📌,将其停靠到右侧分栏。再次点击可取消固定。\",\n \"governance.tour.skip\": \"跳过引导\",\n \"governance.tour.done\": \"完成\",\n \"governance.tour.next\": \"下一步\",\n \"governance.testing.suites\": \"评测套件\",\n \"governance.testing.caseCount\": \"{{count}} 个用例\",\n \"governance.evalPanel.createTitle\": \"创建评测项目\",\n \"governance.evalPanel.createProject\": \"创建评测项目\",\n \"governance.evalPanel.noProject\": \"该智能体还没有评测项目\",\n \"governance.evalPanel.projectName\": \"项目名称\",\n \"governance.evalPanel.judgeModel\": \"评分模型\",\n \"governance.evalPanel.judgeModelRequired\": \"请选择评分模型\",\n \"governance.evalPanel.modelPlaceholder\": \"选择已注册的模型\",\n \"governance.evalPanel.createFailed\": \"创建评测项目失败\",\n \"governance.evalPanel.newSuite\": \"新建套件\",\n \"governance.evalPanel.runAll\": \"全部运行\",\n \"governance.evalPanel.suiteNamePlaceholder\": \"套件名称\",\n \"governance.evalPanel.kindTag\": \"评测\",\n \"governance.webApps.title\": \"Web 应用\",\n \"governance.webApps.create\": \"创建 Web 应用\",\n \"governance.webApps.action.enable\": \"启用\",\n \"governance.webApps.action.disable\": \"停用\",\n \"governance.webApps.action.preview\": \"预览\",\n \"governance.webApps.action.integrationGuide\": \"集成指南\",\n \"governance.webApps.action.copyId\": \"复制 Web 应用 ID\",\n \"governance.webApps.projectsCount\": \"{{count}} 个项目{{s}} · react_sdk\",\n \"governance.webApps.emptyTitle\": \"暂无 Web 应用\",\n \"governance.webApps.emptyDescription\": \"为该智能体创建一个 React SDK 发布项。\",\n \"governance.webApps.warningTitle\": \"未验证身份\",\n \"governance.webApps.warningDescription\": \"Web 应用信任嵌入方提供的用户 ID。请勿将其作为身份认证的依据。\",\n \"governance.webApps.deleteTitle\": \"删除 Web 应用\",\n \"governance.webApps.deleteBody\": \"删除「{{name}}」?此操作无法撤销。\",\n \"governance.webApps.previewTitle\": \"预览\",\n \"governance.webApps.previewFrameTitle\": \"Web 应用预览\",\n \"governance.webApps.gatewayUnavailable\": \"网关地址不可用\",\n \"governance.webApps.draftPreviewTitle\": \"草稿预览\",\n \"governance.webApps.draftPreviewDescription\": \"这里渲染的是页面内控制台对话,方便你查看草稿内容。启用该发布项后,即可预览外部用户看到的真实嵌入效果。\",\n \"governance.webApps.guideTitle\": \"集成指南\",\n \"governance.webApps.copyExamples\": \"复制示例\",\n \"governance.webApps.guide.zeroCodeTab\": \"零代码脚本加载器\",\n \"governance.webApps.guide.zeroCodeIntro\": \"只需一个 script 标签 — 完整的控制台风格对话会在网关源上的独立 iframe 中运行。无需构建步骤,无需 npm install。\",\n \"governance.webApps.guide.settingsTitle\": \"配置 — window.AxiomChatSettings\",\n \"governance.webApps.guide.jsApiTitle\": \"JS API — window.AxiomChat\",\n \"governance.webApps.guide.jsApiBody\": \"属性形式与命令形式等价;可在加载器加载前用数组形式注册回调或动作({{example}} — 加载后按顺序回放)。\",\n \"governance.webApps.guide.eventsTitle\": \"事件\",\n \"governance.webApps.guide.hostTrustTitle\": \"宿主信任与限制\",\n \"governance.webApps.guide.hostTrustBody\": \"宿主页面可以发送消息并读取新的对话内容 — 仅在可信页面上嵌入。同一时间只支持一个流式回复;不支持重复加载加载器。暂未提供:未读回调、运行时主题更新、已验证的 setIdentity、token 级别的流式事件。\",\n \"governance.webApps.guide.npmTab\": \"npm SDK\",\n \"governance.webApps.guide.npmIntro\": \"React 应用 — 与页面中一等公民组件相同的对话栈,完全可组合。\",\n \"governance.webApps.guide.fullChat\": \"完整对话 — AgentChatApp\",\n \"governance.webApps.guide.composable\": \"可组合组件\",\n \"governance.webApps.guide.hooks\": \"Hooks\",\n \"governance.webApps.guide.col.key\": \"键\",\n \"governance.webApps.guide.col.type\": \"类型\",\n \"governance.webApps.guide.col.description\": \"说明\",\n \"governance.webApps.guide.col.api\": \"API\",\n \"governance.webApps.guide.col.behavior\": \"行为\",\n \"governance.webApps.guide.col.register\": \"注册\",\n \"governance.webApps.guide.col.payload\": \"负载\",\n \"governance.webApps.guide.col.when\": \"触发时机\",\n \"governance.webApps.guide.setting.webAppId\": \"发布项 ID(不是智能体 ID)。缺失时加载器会告警并且不启动。\",\n \"governance.webApps.guide.setting.userId\": \"稳定的按用户主体标识。^[A-Za-z0-9._:@-]+$,≤128 个字符。缺失或非法时对话不会启动,并触发 onError 与 USER_ID_REQUIRED。\",\n \"governance.webApps.guide.setting.gatewayUrl\": \"网关地址(默认为加载器脚本自身的源)。末尾斜杠会被去掉。\",\n \"governance.webApps.guide.setting.mode\": \"气泡弹窗(默认)或嵌入到 containerSelector 指定的元素中。\",\n \"governance.webApps.guide.setting.containerSelector\": \"内联模式下必填。找不到元素时回退到 body 并输出控制台告警。\",\n \"governance.webApps.guide.setting.bubble\": \"false = 不显示启动按钮;改用 open()/hide() 控制面板。\",\n \"governance.webApps.guide.setting.widthHeight\": \"气泡面板尺寸,会按视口裁剪(最小 240)。\",\n \"governance.webApps.guide.setting.position\": \"启动按钮和面板的水平锚点。\",\n \"governance.webApps.guide.setting.offset\": \"视口边距。也支持嵌套写法:offset: { x, y }。\",\n \"governance.webApps.guide.setting.zIndex\": \"面板层级(启动按钮位于 zIndex + 1)。\",\n \"governance.webApps.guide.setting.welcome\": \"对话空状态欢迎语;覆盖发布项的 appearance.welcomeMessage。\",\n \"governance.webApps.guide.setting.quicks\": \"对话空状态的快捷提示词(≤6 条;label 1-40,text 1-500;非法项会被丢弃)。提供后会完全覆盖 appearance.quickPrompts;点击其中一条会发送其文本。\",\n \"governance.webApps.guide.api.open\": \"显示、隐藏或切换面板。内联模式下为空操作(对话始终在其容器中可见)。\",\n \"governance.webApps.guide.api.sendMessage\": \"以编程方式发送消息 — 在 UI 中与手动输入的消息一样渲染,并由服务端流式返回。去除空白后需非空,≤32768 个字符;对话繁忙时会自动排队;在 onReady 之前会先缓冲,就绪后立即发出。发送失败会显示对话自带的行内错误横幅。\",\n \"governance.webApps.guide.api.mount\": \"在同一页面上挂载多个相互独立的对话(不同的 webAppId);返回带完整 API 的实例句柄(open/hide/toggle/sendMessage/onReady/onMessage/onError)。get(id) 取出已挂载的句柄;没有全局配置时,默认实例上的委托方法会告警并空操作。\",\n \"governance.webApps.guide.event.onReady\": \"对话已可收发(握手完成,会话就绪)。缓冲的发送会在此后立即发出。\",\n \"governance.webApps.guide.event.onMessage\": \"每收到一条被接受的消息时触发:你发送的消息(服务端回显)以及每条完成的 AI 回复(最终文本 — 非逐 token)。启动时的历史记录不会回放;基线按会话重置。不包含结构化内容。\",\n \"governance.webApps.guide.event.onError\": \"WEB_APP_NOT_FOUND · WEB_APP_DISABLED · USER_ID_REQUIRED · PROJECT_NOT_ALLOWED · MODEL_NOT_ALLOWED · FEATURE_DISABLED · INVALID_REQUEST · STREAM_FAILED\",\n \"governance.webApp.createTitle\": \"创建 Web 应用\",\n \"governance.webApp.editTitle\": \"编辑 Web 应用\",\n \"governance.webApp.name\": \"名称\",\n \"governance.webApp.nameMax\": \"名称不能超过 120 个字符\",\n \"governance.webApp.description\": \"描述\",\n \"governance.webApp.descriptionMax\": \"描述不能超过 1000 个字符\",\n \"governance.webApp.projectScope\": \"项目范围\",\n \"governance.webApp.projectSelector\": \"项目选择器\",\n \"governance.webApp.allowedProjects\": \"允许的项目\",\n \"governance.webApp.selectProject\": \"请至少选择一个项目\",\n \"governance.webApp.selectValidProjects\": \"请选择有效的允许项目\",\n \"governance.webApp.defaultInAllowed\": \"默认项目必须包含在允许的项目中\",\n \"governance.webApp.defaultProject\": \"默认项目\",\n \"governance.webApp.selectValidDefaultProject\": \"请选择有效的默认项目\",\n \"governance.webApp.modelScope\": \"模型范围(可选)\",\n \"governance.webApp.modelSelector\": \"模型选择器\",\n \"governance.webApp.allowedModels\": \"允许的模型\",\n \"governance.webApp.selectModel\": \"请至少选择一个模型\",\n \"governance.webApp.selectValidModels\": \"请选择有效的允许模型\",\n \"governance.webApp.defaultModel\": \"默认模型\",\n \"governance.webApp.selectValidDefaultModel\": \"请选择有效的默认模型\",\n \"governance.webApp.features\": \"功能\",\n \"governance.webApp.feature.threadManagement\": \"会话管理\",\n \"governance.webApp.feature.attachments\": \"附件\",\n \"governance.webApp.feature.hitl\": \"人工介入 (HITL)\",\n \"governance.webApp.feature.genUI\": \"生成式 UI\",\n \"governance.webApp.feature.files\": \"文件\",\n \"governance.webApp.appearance\": \"外观\",\n \"governance.webApp.title\": \"标题\",\n \"governance.webApp.titleMax\": \"标题不能超过 120 个字符\",\n \"governance.webApp.welcomeMessage\": \"欢迎语\",\n \"governance.webApp.welcomeMessageMax\": \"欢迎语不能超过 1000 个字符\",\n \"governance.webApp.primaryColor\": \"主色\",\n \"governance.webApp.colorFormat\": \"请使用 #RRGGBB 格式的颜色\",\n \"governance.webApp.quickPrompts\": \"快捷提示词\",\n \"governance.webApp.quickPromptLabelRequired\": \"请输入快捷提示词标签\",\n \"governance.webApp.quickPromptLabelMax\": \"快捷提示词标签不能超过 40 个字符\",\n \"governance.webApp.quickPromptLabelAria\": \"快捷提示词标签 {{index}}\",\n \"governance.webApp.labelPlaceholder\": \"标签\",\n \"governance.webApp.quickPromptTextRequired\": \"请输入快捷提示词内容\",\n \"governance.webApp.quickPromptTextMax\": \"快捷提示词内容不能超过 500 个字符\",\n \"governance.webApp.quickPromptTextAria\": \"快捷提示词内容 {{index}}\",\n \"governance.webApp.messagePlaceholder\": \"消息文本\",\n \"governance.webApp.removeQuickPromptAria\": \"移除快捷提示词 {{index}}\",\n \"governance.webApp.remove\": \"移除\",\n \"governance.webApp.addQuickPrompt\": \"添加快捷提示词\",\n \"governance.webApp.identity\": \"身份\",\n \"governance.webApp.identityPolicy\": \"身份策略\",\n \"governance.webApp.identityUnverified\": \"不验证(请求头)\",\n \"governance.webApp.identityBoth\": \"验证令牌或请求头(迁移)\",\n \"governance.webApp.identityVerified\": \"仅验证令牌\",\n \"governance.webApp.trustedIssuers\": \"可信签发方(JSON)\",\n \"governance.webApp.trustedIssuersTooltip\": \"当策略包含验证令牌时必填。示例:[{\\\"iss\\\":\\\"https://host.example.com\\\",\\\"aud\\\":\\\"<webAppId>\\\",\\\"alg\\\":\\\"HS256\\\",\\\"secret\\\":\\\"...\\\"}]\",\n \"governance.webApp.issuersEmpty\": \"请提供非空的签发方 JSON 数组\",\n \"governance.webApp.issuersInvalid\": \"可信签发方必须是合法的 JSON 数组\",\n \"governance.webApp.integrationType\": \"集成类型:react_sdk\",\n \"governance.learning.projectLabel\": \"学习项目\",\n \"governance.learning.noProject\": \"没有可用的学习项目\",\n \"governance.learning.noProjectDescription\": \"开始学习任务前需要先选择一个学习项目。\",\n \"governance.learning.uploadFailed\": \"上传「{{name}}」失败\",\n \"governance.learning.uploadHint\": \"点击或拖拽文件到此区域上传\",\n \"governance.learning.uploadNote\": \"文件会存放在所选项目的 /project/uploads 下\",\n \"governance.learning.activityLoadFailed\": \"无法加载活动记录。请稍后重试。\",\n \"governance.learning.activityCapacity\": \"待处理的活动请求过多,请稍后重试。\",\n \"governance.learning.commandFailedSuffix\": \"{{message}},但任务列表刷新失败\",\n \"governance.learning.cmd.retry\": \"任务已重新开始\",\n \"governance.learning.cmd.cancel\": \"任务已取消\",\n \"governance.learning.cmd.start\": \"任务已启动\",\n \"governance.learning.cmd.reopen\": \"任务已重新打开\",\n \"governance.learning.cmd.delete\": \"任务已删除\",\n \"governance.learning.cmd.comment\": \"评论已添加\",\n \"governance.learning.cmd.updated\": \"任务已更新\",\n \"governance.learning.createdRefreshFailed\": \"任务已创建,但任务列表刷新失败\",\n \"governance.learning.tasksTitle\": \"学习任务\",\n \"governance.learning.newTask\": \"新建学习任务\",\n \"governance.learning.empty\": \"暂无学习任务\",\n \"governance.learning.openWorkflow\": \"打开工作流视图\",\n \"governance.learning.openReviewTasks\": \"打开 {{count}} 个待审批任务{{s}}\",\n \"governance.learning.reviewCount\": \"{{count}} 项待审批{{s}}\",\n \"governance.learning.created\": \"学习任务已创建。正在准备 Agent Architect…\",\n \"governance.learning.createFailed\": \"创建学习任务失败。请重试。\",\n \"governance.learning.inProgress\": \"已有学习任务正在进行中。请先完成它再开始新的任务。\",\n \"governance.learning.goalLabel\": \"本轮学习目标\",\n \"governance.learning.goalRequired\": \"请描述你希望该智能体在这一轮学习或改进什么\",\n \"governance.learning.goalPlaceholder\": \"例如:基于价格保护策略,提升智能体处理价格争议时的准确度\",\n \"governance.learning.referenceMaterials\": \"参考材料\",\n \"governance.learning.referenceMaterialsHint\": \"可选。这些材料将作为本轮学习的参考资料。\",\n \"governance.learning.start\": \"开始学习\",\n \"governance.learning.noTasks\": \"暂无任务\",\n \"governance.learning.selectRound\": \"选择轮次\",\n \"governance.learning.tasksCount\": \"{{done}}/{{total}} 个任务\",\n \"governance.learning.tasksDone\": \"{{done}}/{{total}} 个任务已完成\",\n \"governance.learning.waiting\": \"{{count}} 项待处理\",\n \"governance.learning.back\": \"‹ 返回\",\n \"governance.learning.depBadgeDone\": \"⬦ {{count}} 项依赖 ✓\",\n \"governance.learning.depBadgeWaiting\": \"⬦ 等待 {{count}}\",\n \"governance.learning.expandNested\": \"在「{{title}}」中展开 {{count}} 个嵌套任务\",\n \"governance.learning.status.pending\": \"待处理\",\n \"governance.learning.status.running\": \"运行中\",\n \"governance.learning.status.review\": \"待审核\",\n \"governance.learning.status.failed\": \"失败\",\n \"governance.learning.status.interrupted\": \"已中断\",\n \"governance.learning.status.done\": \"已完成\",\n \"governance.learning.status.cancelled\": \"已取消\",\n \"governance.learning.roundCreateFailed\": \"创建学习轮次任务失败\",\n \"governance.learning.threadCreateFailed\": \"创建训练会话失败\",\n \"governance.canvas.zone.config\": \"CONFIG\",\n \"governance.canvas.dock.learningTasks\": \"学习任务\",\n \"governance.pinnedRail.openEval\": \"打开评测质量\",\n \"governance.pinnedRail.openLearning\": \"打开完整学习图谱\",\n \"governance.pinnedRail.new\": \"新建\",\n \"governance.configGraph.allSkills\": \"全部技能\",\n \"governance.configGraph.allSkillsDescription\": \"智能体可加载任意可用技能\",\n \"governance.evalQuality.target\": \"目标 {{score}}\",\n \"governance.overview.unnamed\": \"未命名\",\n \"governance.webApps.requestFailed\": \"请求失败\",\n \"governance.webApps.clipboardUnavailable\": \"剪贴板不可用\",\n \"governance.webApps.status.active\": \"已启用\",\n \"governance.webApps.status.disabled\": \"已停用\",\n \"governance.webApps.status.draft\": \"草稿\"\n }\n}\n","{\n \"messages\": {\n \"integration.chat.loadFailed\": \"Unable to load the assistant\",\n \"integration.sidebar.newThread\": \"New Thread\",\n \"integration.sidebar.history\": \"History\",\n \"integration.sidebar.historyTitle\": \"Conversation History\",\n \"integration.attach.files\": \"Attach files\",\n \"integration.attach.uploading\": \"Uploading...\",\n \"integration.attach.remove\": \"Remove\",\n \"integration.attach.removeNamed\": \"Remove {{name}}\",\n \"integration.composer.message\": \"Message\",\n \"integration.composer.placeholder\": \"Ask a question\",\n \"integration.composer.send\": \"Send message\",\n \"integration.composer.stop\": \"Stop response\",\n \"integration.composer.retryFailed\": \"Retry failed message\",\n \"integration.interrupt.aria\": \"Human review\",\n \"integration.interrupt.approve\": \"Approve\",\n \"integration.interrupt.reject\": \"Reject\",\n \"integration.interrupt.feedback\": \"Feedback\",\n \"integration.interrupt.detailsUnavailable\": \"Additional review details are unavailable.\",\n \"integration.interrupt.submitFailed\": \"Unable to submit review\",\n \"integration.markdown.unsupported\": \"Unsupported message content\",\n \"integration.markdown.image\": \"Image\",\n \"integration.messages.aria\": \"Messages\",\n \"integration.messages.empty\": \"Start a conversation\",\n \"integration.messages.activity\": \"Activity\",\n \"integration.messages.roleYou\": \"You\",\n \"integration.messages.roleAssistant\": \"Assistant\",\n \"integration.messages.tool\": \"Tool\",\n \"integration.model.label\": \"Model\",\n \"integration.project.label\": \"Project\",\n \"integration.threads.aria\": \"Conversations\",\n \"integration.threads.new\": \"New conversation\",\n \"integration.threads.empty\": \"No conversations yet\",\n \"integration.threads.defaultName\": \"Conversation {{index}}\",\n \"integration.threads.open\": \"Open {{name}}\",\n \"integration.threads.rename\": \"Rename\",\n \"integration.threads.renameNamed\": \"Rename {{name}}\",\n \"integration.threads.delete\": \"Delete\",\n \"integration.threads.deleteNamed\": \"Delete {{name}}\",\n \"integration.threads.renameTitle\": \"Rename conversation\",\n \"integration.threads.nameLabel\": \"Conversation name\",\n \"integration.threads.deleteTitle\": \"Delete conversation?\",\n \"integration.threads.deleteConfirm\": \"This conversation and its messages will be permanently deleted.\",\n \"integration.genui.callout\": \"Callout\",\n \"integration.genui.dataTable\": \"Data table\",\n \"integration.error.requestFailed\": \"Request failed\",\n \"integration.error.identityTokenFailed\": \"Identity token provider failed\",\n \"integration.error.notReady\": \"Web App is not ready\",\n \"integration.error.projectSelectionDisabled\": \"Project selection is disabled\",\n \"integration.error.projectNotAllowed\": \"Project is not allowed\",\n \"integration.error.modelSelectionDisabled\": \"Model selection is disabled\",\n \"integration.error.modelNotAllowed\": \"Model is not allowed\",\n \"integration.error.threadManagementDisabled\": \"Thread management is disabled\",\n \"integration.error.threadOtherProject\": \"Thread belongs to another project\",\n \"integration.error.threadNotFound\": \"Thread not found\",\n \"integration.error.streamError\": \"Stream error\",\n \"integration.error.alreadyStreaming\": \"A message is already streaming\",\n \"integration.error.noActiveThread\": \"No active thread\",\n \"integration.error.contentRequired\": \"Message content is required\",\n \"integration.error.noFailedMessage\": \"No failed message to retry\",\n \"integration.error.attachmentsDisabled\": \"Attachments are disabled\",\n \"integration.error.humanReviewDisabled\": \"Human review is disabled\",\n \"integration.error.interruptNotFound\": \"Interrupt not found\",\n \"integration.error.streamFailed\": \"Stream failed\",\n \"integration.error.invalidServerResponse\": \"Invalid server response\",\n \"integration.chat.creatingConversation\": \"Creating conversation...\",\n \"integration.interrupt.approvedMessage\": \"Approved\",\n \"integration.interrupt.changesRequestedMessage\": \"Changes requested\",\n \"integration.embed.guidance\": \"Open this chat from the host page embed to start chatting.\",\n \"integration.embed.webAppNotFound\": \"The embed page URL does not contain a valid web app id\",\n \"integration.embed.userIdRequired\": \"A valid embed user identity is required\"\n }\n}\n","{\n \"messages\": {\n \"integration.chat.loadFailed\": \"无法加载助手\",\n \"integration.sidebar.newThread\": \"新建会话\",\n \"integration.sidebar.history\": \"历史记录\",\n \"integration.sidebar.historyTitle\": \"会话历史\",\n \"integration.attach.files\": \"添加附件\",\n \"integration.attach.uploading\": \"上传中...\",\n \"integration.attach.remove\": \"移除\",\n \"integration.attach.removeNamed\": \"移除 {{name}}\",\n \"integration.composer.message\": \"消息\",\n \"integration.composer.placeholder\": \"问一个问题\",\n \"integration.composer.send\": \"发送消息\",\n \"integration.composer.stop\": \"停止回复\",\n \"integration.composer.retryFailed\": \"重试失败的消息\",\n \"integration.interrupt.aria\": \"人工审核\",\n \"integration.interrupt.approve\": \"通过\",\n \"integration.interrupt.reject\": \"驳回\",\n \"integration.interrupt.feedback\": \"反馈\",\n \"integration.interrupt.detailsUnavailable\": \"暂无更多审核详情。\",\n \"integration.interrupt.submitFailed\": \"提交审核失败\",\n \"integration.markdown.unsupported\": \"不支持的消息内容\",\n \"integration.markdown.image\": \"图片\",\n \"integration.messages.aria\": \"消息\",\n \"integration.messages.empty\": \"开始一段对话\",\n \"integration.messages.activity\": \"活动\",\n \"integration.messages.roleYou\": \"你\",\n \"integration.messages.roleAssistant\": \"助手\",\n \"integration.messages.tool\": \"工具\",\n \"integration.model.label\": \"模型\",\n \"integration.project.label\": \"项目\",\n \"integration.threads.aria\": \"会话\",\n \"integration.threads.new\": \"新建会话\",\n \"integration.threads.empty\": \"暂无会话\",\n \"integration.threads.defaultName\": \"会话 {{index}}\",\n \"integration.threads.open\": \"打开 {{name}}\",\n \"integration.threads.rename\": \"重命名\",\n \"integration.threads.renameNamed\": \"重命名 {{name}}\",\n \"integration.threads.delete\": \"删除\",\n \"integration.threads.deleteNamed\": \"删除 {{name}}\",\n \"integration.threads.renameTitle\": \"重命名会话\",\n \"integration.threads.nameLabel\": \"会话名称\",\n \"integration.threads.deleteTitle\": \"删除会话?\",\n \"integration.threads.deleteConfirm\": \"该会话及其消息将被永久删除。\",\n \"integration.genui.callout\": \"提示框\",\n \"integration.genui.dataTable\": \"数据表格\",\n \"integration.error.requestFailed\": \"请求失败\",\n \"integration.error.identityTokenFailed\": \"身份令牌提供方失败\",\n \"integration.error.notReady\": \"Web App 尚未就绪\",\n \"integration.error.projectSelectionDisabled\": \"项目选择已禁用\",\n \"integration.error.projectNotAllowed\": \"不允许使用该项目\",\n \"integration.error.modelSelectionDisabled\": \"模型选择已禁用\",\n \"integration.error.modelNotAllowed\": \"不允许使用该模型\",\n \"integration.error.threadManagementDisabled\": \"会话管理已禁用\",\n \"integration.error.threadOtherProject\": \"会话属于另一个项目\",\n \"integration.error.threadNotFound\": \"未找到会话\",\n \"integration.error.streamError\": \"流错误\",\n \"integration.error.alreadyStreaming\": \"已有消息正在流式传输\",\n \"integration.error.noActiveThread\": \"没有活跃会话\",\n \"integration.error.contentRequired\": \"消息内容不能为空\",\n \"integration.error.noFailedMessage\": \"没有可重试的失败消息\",\n \"integration.error.attachmentsDisabled\": \"附件功能已禁用\",\n \"integration.error.humanReviewDisabled\": \"人工审核已禁用\",\n \"integration.error.interruptNotFound\": \"未找到中断\",\n \"integration.error.streamFailed\": \"流式传输失败\",\n \"integration.error.invalidServerResponse\": \"服务器响应无效\",\n \"integration.chat.creatingConversation\": \"正在创建对话...\",\n \"integration.interrupt.approvedMessage\": \"已通过\",\n \"integration.interrupt.changesRequestedMessage\": \"已请求修改\",\n \"integration.embed.guidance\": \"请从宿主页面嵌入中打开此对话以开始聊天。\",\n \"integration.embed.webAppNotFound\": \"嵌入页面 URL 不包含有效的 Web App ID\",\n \"integration.embed.userIdRequired\": \"需要有效的嵌入用户身份\"\n }\n}\n","{\n \"messages\": {\n \"mcpapp.fallbackTitle\": \"MCP App\",\n \"mcpapp.openInSideApp\": \"Open in side app\",\n \"mcpapp.unavailable\": \"MCP App unavailable\",\n \"mcpapp.unavailableDescription\": \"MCP Apps require the gateway sandbox to be served from a different origin than the console.\",\n \"mcpapp.failedToLoad\": \"MCP App failed to load: {{error}}\",\n \"mcpapp.resourceLoadFailed\": \"Failed to load MCP app resource\",\n \"mcpapp.toolResultAlt\": \"tool result\"\n }\n}\n","{\n \"messages\": {\n \"mcpapp.fallbackTitle\": \"MCP App\",\n \"mcpapp.openInSideApp\": \"在侧栏中打开\",\n \"mcpapp.unavailable\": \"MCP App 不可用\",\n \"mcpapp.unavailableDescription\": \"MCP App 要求网关沙箱与控制台由不同源(origin)提供服务。\",\n \"mcpapp.failedToLoad\": \"MCP App 加载失败:{{error}}\",\n \"mcpapp.resourceLoadFailed\": \"加载 MCP App 资源失败\",\n \"mcpapp.toolResultAlt\": \"工具执行结果\"\n }\n}\n","{\n \"messages\": {\n \"migration.page.title\": \"Configuration Migration\",\n \"migration.page.subtitle\": \"Export tenant configuration to a tar.gz archive, or import a previous archive\",\n \"migration.export.title\": \"Export\",\n \"migration.export.description\": \"Select configuration types and specific entities to export. Download a tar.gz archive to import into another tenant.\",\n \"migration.import.title\": \"Import\",\n \"migration.import.description\": \"Upload a previously exported tar.gz archive. Preview conflicts and choose how to handle duplicates before applying.\",\n \"migration.export.heading\": \"Export Configuration\",\n \"migration.import.heading\": \"Import Configuration\",\n \"migration.step.types\": \"Types\",\n \"migration.step.entities\": \"Entities\",\n \"migration.step.download\": \"Download\",\n \"migration.step.upload\": \"Upload\",\n \"migration.step.review\": \"Review\",\n \"migration.step.apply\": \"Apply\",\n \"migration.step.done\": \"Done\",\n \"migration.export.ready\": \"Export ready\",\n \"migration.export.readyHint\": \"Your configuration has been exported to a tar.gz archive.\",\n \"migration.export.download\": \"Download archive\",\n \"migration.export.depAlert\": \"Additional types required for dependencies\",\n \"migration.export.missing\": \"Missing:\",\n \"migration.export.cascadeParents\": \"CASCADE parents:\",\n \"migration.export.includeAndExport\": \"Include and export\",\n \"migration.export.selectedCount\": \"{{selected}} of {{total}} selected\",\n \"migration.export.exportEntities\": \"Export {{count}} entities\",\n \"migration.export.loadingEntities\": \"Loading entities...\",\n \"migration.export.selectAll\": \"Select all\",\n \"migration.export.clear\": \"Clear\",\n \"migration.export.itemName\": \"entity\",\n \"migration.export.dependsOn\": \"depends on {{list}}\",\n \"migration.export.categoryCore\": \"Core\",\n \"migration.export.categoryPlugins\": \"Plugins\",\n \"migration.export.next\": \"Next: select entities ({{count}} {{noun}})\",\n \"migration.export.nextTypeOne\": \"type\",\n \"migration.export.nextTypeOther\": \"types\",\n \"migration.import.complete\": \"Import complete\",\n \"migration.import.created\": \"{{count}} created\",\n \"migration.import.skipped\": \"{{count}} skipped\",\n \"migration.import.failed\": \"{{count}} failed\",\n \"migration.import.done\": \"Done\",\n \"migration.import.apply\": \"Apply import\",\n \"migration.import.dropHint\": \"Click or drag a tar.gz export archive here\",\n \"migration.import.dropHintSub\": \"Upload a previously exported configuration archive\",\n \"migration.import.errorCount\": \"{{count}} {{noun}}\",\n \"migration.import.errorOne\": \"error\",\n \"migration.import.errorOther\": \"errors\",\n \"migration.import.summaryNew\": \"{{newCount}} new, {{conflictCount}} conflicts\",\n \"migration.import.summaryErrors\": \", {{count}} errors\",\n \"migration.conflict.heading\": \"Conflicts ({{count}})\",\n \"migration.conflict.newItems\": \"New items ({{count}})\",\n \"migration.conflict.type\": \"Type\",\n \"migration.conflict.nameId\": \"Name/ID\",\n \"migration.conflict.name\": \"Name\",\n \"migration.conflict.conflict\": \"Conflict\",\n \"migration.conflict.idExists\": \"ID exists\",\n \"migration.conflict.uniqueConstraint\": \"Unique constraint\",\n \"migration.conflict.action\": \"Action\",\n \"migration.conflict.skip\": \"Skip\",\n \"migration.conflict.overwrite\": \"Overwrite\",\n \"migration.conflict.rename\": \"Rename\",\n \"migration.conflict.newId\": \"New ID\",\n \"migration.export.itemName_one\": \"entity\",\n \"migration.export.itemName_other\": \"entities\",\n \"migration.import.selectArchiveFirst\": \"Select and preview a tar.gz archive first\"\n }\n}\n","{\n \"messages\": {\n \"migration.page.title\": \"配置数据迁移\",\n \"migration.page.subtitle\": \"将租户配置导出为 tar.gz 归档,或导入先前导出的归档\",\n \"migration.export.title\": \"导出\",\n \"migration.export.description\": \"选择要导出的配置类型和具体实体。下载 tar.gz 归档后可导入到另一个租户。\",\n \"migration.import.title\": \"导入\",\n \"migration.import.description\": \"上传先前导出的 tar.gz 归档。应用前可预览冲突并选择重复项的处理方式。\",\n \"migration.export.heading\": \"导出配置\",\n \"migration.import.heading\": \"导入配置\",\n \"migration.step.types\": \"类型\",\n \"migration.step.entities\": \"实体\",\n \"migration.step.download\": \"下载\",\n \"migration.step.upload\": \"上传\",\n \"migration.step.review\": \"检查\",\n \"migration.step.apply\": \"应用\",\n \"migration.step.done\": \"完成\",\n \"migration.export.ready\": \"导出已就绪\",\n \"migration.export.readyHint\": \"你的配置已导出为 tar.gz 归档。\",\n \"migration.export.download\": \"下载归档\",\n \"migration.export.depAlert\": \"依赖项需要额外类型\",\n \"migration.export.missing\": \"缺失:\",\n \"migration.export.cascadeParents\": \"CASCADE 父级:\",\n \"migration.export.includeAndExport\": \"包含并导出\",\n \"migration.export.selectedCount\": \"已选择 {{selected}} / {{total}}\",\n \"migration.export.exportEntities\": \"导出 {{count}} 个实体\",\n \"migration.export.loadingEntities\": \"正在加载实体...\",\n \"migration.export.selectAll\": \"全选\",\n \"migration.export.clear\": \"清空\",\n \"migration.export.itemName\": \"实体\",\n \"migration.export.dependsOn\": \"依赖 {{list}}\",\n \"migration.export.categoryCore\": \"核心\",\n \"migration.export.categoryPlugins\": \"插件\",\n \"migration.export.next\": \"下一步:选择实体({{count}} 个{{noun}})\",\n \"migration.export.nextTypeOne\": \"类型\",\n \"migration.export.nextTypeOther\": \"类型\",\n \"migration.import.complete\": \"导入完成\",\n \"migration.import.created\": \"已创建 {{count}} 个\",\n \"migration.import.skipped\": \"已跳过 {{count}} 个\",\n \"migration.import.failed\": \"失败 {{count}} 个\",\n \"migration.import.done\": \"完成\",\n \"migration.import.apply\": \"应用导入\",\n \"migration.import.dropHint\": \"点击或将 tar.gz 导出归档拖到此处\",\n \"migration.import.dropHintSub\": \"上传先前导出的配置归档\",\n \"migration.import.errorCount\": \"{{count}} 个{{noun}}\",\n \"migration.import.errorOne\": \"错误\",\n \"migration.import.errorOther\": \"错误\",\n \"migration.import.summaryNew\": \"{{newCount}} 个新增,{{conflictCount}} 个冲突\",\n \"migration.import.summaryErrors\": \",{{count}} 个错误\",\n \"migration.conflict.heading\": \"冲突({{count}})\",\n \"migration.conflict.newItems\": \"新增项({{count}})\",\n \"migration.conflict.type\": \"类型\",\n \"migration.conflict.nameId\": \"名称/ID\",\n \"migration.conflict.name\": \"名称\",\n \"migration.conflict.conflict\": \"冲突\",\n \"migration.conflict.idExists\": \"ID 已存在\",\n \"migration.conflict.uniqueConstraint\": \"唯一约束冲突\",\n \"migration.conflict.action\": \"处理方式\",\n \"migration.conflict.skip\": \"跳过\",\n \"migration.conflict.overwrite\": \"覆盖\",\n \"migration.conflict.rename\": \"重命名\",\n \"migration.conflict.newId\": \"新的 ID\",\n \"migration.export.itemName_one\": \"实体\",\n \"migration.export.itemName_other\": \"实体\",\n \"migration.import.selectArchiveFirst\": \"请先选择并预览 tar.gz 归档\"\n }\n}\n","{\n \"messages\": {\n \"projectRoom.section.members\": \"Members\",\n \"projectRoom.section.tasks\": \"Tasks\",\n \"projectRoom.section.files\": \"Files\",\n \"projectRoom.header.moreActions\": \"More actions\",\n \"projectRoom.header.refreshRoom\": \"Refresh room\",\n \"projectRoom.shell.title\": \"Project Room\",\n \"projectRoom.shell.selectProject\": \"Select a project to open its room.\",\n \"projectRoom.shell.backToRooms\": \"Back to rooms\",\n \"projectRoom.shell.loadingRoom\": \"Loading room\",\n \"projectRoom.shell.loadingStateAria\": \"Room loading state\",\n \"projectRoom.shell.announcementsAria\": \"New message announcements\",\n \"projectRoom.shell.conversationAria\": \"Room conversation\",\n \"projectRoom.shell.newMessageFrom\": \"New message from {{author}}\",\n \"projectRoom.shell.roomUpdate\": \"Room update: {{text}}\",\n \"projectRoom.shell.thinkingOne\": \"{{name}} is thinking…\",\n \"projectRoom.shell.thinkingOther\": \"{{count}} agents are thinking…\",\n \"projectRoom.shell.task\": \"Task\",\n \"projectRoom.shell.authorAssistant\": \"an assistant\",\n \"projectRoom.shell.authorSomeone\": \"someone\",\n \"projectRoom.shell.authorRoom\": \"the room\",\n \"projectRoom.shell.blockedRevoked\": \"Your access to this project was revoked.\",\n \"projectRoom.shell.blockedViewer\": \"Viewers cannot post messages\",\n \"projectRoom.shell.blockedNotMember\": \"You are not a member of this project room.\",\n \"projectRoom.shell.blockedGeneric\": \"You cannot post messages in this room.\",\n \"projectRoom.composer.sectionAria\": \"Compose project room message\",\n \"projectRoom.composer.messageTheRoom\": \"Message the room\",\n \"projectRoom.composer.attachFiles\": \"Attach files\",\n \"projectRoom.composer.attachments\": \"Attachments\",\n \"projectRoom.composer.addFiles\": \"Add files\",\n \"projectRoom.composer.addFilesHint\": \"Tap to choose a file, take a photo, or record a video\",\n \"projectRoom.composer.uploadFailed\": \"upload failed\",\n \"projectRoom.composer.fileTooLarge\": \"{{name}} is too large (max {{max}}MB)\",\n \"projectRoom.composer.replyingTo\": \"Replying to {{author}}: {{preview}}\",\n \"projectRoom.composer.cancelReply\": \"Cancel reply\",\n \"projectRoom.composer.blockedDefault\": \"You cannot post messages in this room.\",\n \"projectRoom.composer.sendFailed\": \"Failed to send the message\",\n \"projectRoom.message.reply\": \"Reply\",\n \"projectRoom.message.sent\": \"Sent\",\n \"projectRoom.message.notDelivered\": \"Not delivered to an assistant\",\n \"projectRoom.message.retryDelivery\": \"Retry delivery\",\n \"projectRoom.message.earlierMessage\": \"Earlier message\",\n \"projectRoom.message.replyingToEarlier\": \"Replying to an earlier message\",\n \"projectRoom.agent.viewAgentWork\": \"View agent work\",\n \"projectRoom.taskEvent.openDetails\": \"{{label}}: {{title}}. Open task details\",\n \"projectRoom.timeline.aria\": \"Project room timeline\",\n \"projectRoom.timeline.loadOlder\": \"Load older messages\",\n \"projectRoom.timeline.loadingOlder\": \"Loading older messages\",\n \"projectRoom.timeline.requestFailed\": \"The room request failed.\",\n \"projectRoom.timeline.loadingMessages\": \"Loading messages\",\n \"projectRoom.timeline.noMessages\": \"No messages yet\",\n \"projectRoom.timeline.newMessages\": \"New messages\",\n \"projectRoom.files.aria\": \"Project files\",\n \"projectRoom.files.projectAssets\": \"Project Assets\",\n \"projectRoom.files.selectProjectFirst\": \"Please select a workspace and project first.\",\n \"projectRoom.files.selectProjectBeforeUpload\": \"Please select a workspace and project before uploading.\",\n \"projectRoom.files.preview\": \"Preview: {{name}}\",\n \"projectRoom.files.uploaded\": \"Uploaded \\\"{{name}}\\\" successfully\",\n \"projectRoom.files.uploadFailed\": \"Failed to upload file\",\n \"projectRoom.tasks.aria\": \"Project tasks\",\n \"projectRoom.tasks.detailAria\": \"Task detail\",\n \"projectRoom.tasks.listAria\": \"Project task list\",\n \"projectRoom.tasks.empty\": \"No tasks in this project yet\",\n \"projectRoom.tasks.openTask\": \"Open task {{title}}\",\n \"projectRoom.tasks.owner\": \"{{role}} {{id}}\",\n \"projectRoom.tasks.ownerAgent\": \"Agent\",\n \"projectRoom.tasks.blockedBy\": \"Blocked by {{count}} {{noun}}\",\n \"projectRoom.tasks.blockedByOne\": \"task\",\n \"projectRoom.tasks.blockedByOther\": \"tasks\",\n \"projectRoom.tasks.dependenciesMet\": \"Dependencies met\",\n \"projectRoom.tasks.activityFailed\": \"Activity could not be loaded. Please try again shortly.\",\n \"projectRoom.roster.aria\": \"Project room roster\",\n \"projectRoom.roster.botsHeading\": \"Bots\",\n \"projectRoom.roster.botsAria\": \"Bots\",\n \"projectRoom.roster.peopleHeading\": \"People\",\n \"projectRoom.roster.humansAria\": \"Humans\",\n \"projectRoom.roster.removedBotsHeading\": \"Removed bots\",\n \"projectRoom.roster.removedBotsAria\": \"Removed bots\",\n \"projectRoom.roster.searchPlaceholder\": \"Search members…\",\n \"projectRoom.roster.searchAria\": \"Search members\",\n \"projectRoom.roster.add\": \"Add\",\n \"projectRoom.roster.remove\": \"Remove\",\n \"projectRoom.roster.noBots\": \"No bots in this room yet.\",\n \"projectRoom.roster.noBotsMatch\": \"No bots match your search.\",\n \"projectRoom.roster.noHumans\": \"No humans in this room yet.\",\n \"projectRoom.roster.noPeopleMatch\": \"No people match your search.\",\n \"projectRoom.roster.builtIn\": \"Built-in\",\n \"projectRoom.roster.builtInCoordinator\": \"Built-in coordinator\",\n \"projectRoom.roster.specialist\": \"Specialist\",\n \"projectRoom.roster.viewAgentWorkFor\": \"View agent work for {{name}}\",\n \"projectRoom.roster.moreActionsFor\": \"More actions for {{name}}\",\n \"projectRoom.roster.addHuman\": \"Add human\",\n \"projectRoom.roster.editHuman\": \"Edit human\",\n \"projectRoom.roster.removeHuman\": \"Remove human\",\n \"projectRoom.roster.addBot\": \"Add bot\",\n \"projectRoom.roster.editBot\": \"Edit bot\",\n \"projectRoom.roster.removeBot\": \"Remove bot\",\n \"projectRoom.roster.resume\": \"Resume\",\n \"projectRoom.roster.pause\": \"Pause\",\n \"projectRoom.roster.editMention\": \"Edit mention\",\n \"projectRoom.roster.editRole\": \"Edit role\",\n \"projectRoom.roster.loading\": \"Loading…\",\n \"projectRoom.roster.noAvailablePeople\": \"No available people\",\n \"projectRoom.roster.fieldUser\": \"User\",\n \"projectRoom.roster.fieldRole\": \"Role\",\n \"projectRoom.roster.fieldAssistant\": \"Assistant\",\n \"projectRoom.roster.fieldMentionName\": \"Mention name\",\n \"projectRoom.roster.selectPerson\": \"Select a person\",\n \"projectRoom.roster.roleRequired\": \"Role is required\",\n \"projectRoom.roster.assistantRequired\": \"Assistant is required\",\n \"projectRoom.roster.mentionNameRequired\": \"Mention name is required\",\n \"projectRoom.roster.mentionPlaceholder\": \"Used as @mention in the room\",\n \"projectRoom.roster.removeMemberConfirm\": \"Remove member {{name}} from this project? They will lose access to the room.\",\n \"projectRoom.roster.removeBotConfirm\": \"Remove bot {{title}} from this room? Its message history remains visible.\",\n \"projectRoom.roster.requestFailed\": \"The request failed. Try again.\",\n \"projectRoom.roster.availability.working\": \"Working\",\n \"projectRoom.roster.availability.waiting\": \"Waiting\",\n \"projectRoom.roster.availability.available\": \"Available\",\n \"projectRoom.roster.availability.paused\": \"Paused\",\n \"projectRoom.roster.availability.removed\": \"Removed\",\n \"projectRoom.roster.role.owner\": \"Owner\",\n \"projectRoom.roster.role.owner.description\": \"Full control: settings, members, and messages.\",\n \"projectRoom.roster.role.admin\": \"Admin\",\n \"projectRoom.roster.role.admin.description\": \"Manage settings and members; can send messages.\",\n \"projectRoom.roster.role.member\": \"Member\",\n \"projectRoom.roster.role.member.description\": \"Send messages and work in the project.\",\n \"projectRoom.roster.role.viewer\": \"Viewer\",\n \"projectRoom.roster.role.viewer.description\": \"Read-only access.\",\n \"projectRoom.connection.reconnecting\": \"Reconnecting…\",\n \"projectRoom.connection.superseded\": \"This workspace is open in another tab.\",\n \"projectRoom.connection.revoked\": \"Workspace access revoked.\",\n \"projectRoom.author.system\": \"System\",\n \"projectRoom.author.removedAssistant\": \"Removed assistant\",\n \"projectRoom.author.removedMember\": \"Removed member\",\n \"projectRoom.agent.workCardDescription\": \"Room conversation with {{name}}\",\n \"projectRoom.time.yesterday\": \"Yesterday\",\n \"projectRoom.error.accessRevoked\": \"Project access was revoked.\",\n \"projectRoom.error.superseded\": \"This room was opened in another tab.\",\n \"projectRoom.error.noProject\": \"No project selected\",\n \"projectRoom.error.messageRequired\": \"Message text is required\",\n \"projectRoom.error.membershipNotFound\": \"Membership not found\",\n \"projectRoom.error.botNotFound\": \"Bot membership not found\",\n \"projectRoom.notification.newMessage\": \"New message\"\n }\n}\n","{\n \"messages\": {\n \"projectRoom.section.members\": \"成员\",\n \"projectRoom.section.tasks\": \"任务\",\n \"projectRoom.section.files\": \"文件\",\n \"projectRoom.header.moreActions\": \"更多操作\",\n \"projectRoom.header.refreshRoom\": \"刷新空间\",\n \"projectRoom.shell.title\": \"项目空间\",\n \"projectRoom.shell.selectProject\": \"请选择一个项目以打开它的空间。\",\n \"projectRoom.shell.backToRooms\": \"返回空间列表\",\n \"projectRoom.shell.loadingRoom\": \"正在加载空间\",\n \"projectRoom.shell.loadingStateAria\": \"空间加载状态\",\n \"projectRoom.shell.announcementsAria\": \"新消息播报\",\n \"projectRoom.shell.conversationAria\": \"空间对话\",\n \"projectRoom.shell.newMessageFrom\": \"来自 {{author}} 的新消息\",\n \"projectRoom.shell.roomUpdate\": \"空间更新:{{text}}\",\n \"projectRoom.shell.thinkingOne\": \"{{name}} 正在思考…\",\n \"projectRoom.shell.thinkingOther\": \"{{count}} 个智能体正在思考…\",\n \"projectRoom.shell.task\": \"任务\",\n \"projectRoom.shell.authorAssistant\": \"一个助手\",\n \"projectRoom.shell.authorSomeone\": \"某位成员\",\n \"projectRoom.shell.authorRoom\": \"空间\",\n \"projectRoom.shell.blockedRevoked\": \"你对这个项目的访问权限已被撤销。\",\n \"projectRoom.shell.blockedViewer\": \"访客不能发送消息\",\n \"projectRoom.shell.blockedNotMember\": \"你不是这个项目空间的成员。\",\n \"projectRoom.shell.blockedGeneric\": \"你不能在这个空间发送消息。\",\n \"projectRoom.composer.sectionAria\": \"撰写项目空间消息\",\n \"projectRoom.composer.messageTheRoom\": \"给空间发消息\",\n \"projectRoom.composer.attachFiles\": \"添加附件\",\n \"projectRoom.composer.attachments\": \"附件\",\n \"projectRoom.composer.addFiles\": \"添加文件\",\n \"projectRoom.composer.addFilesHint\": \"点击选择文件、拍照或录制视频\",\n \"projectRoom.composer.uploadFailed\": \"上传失败\",\n \"projectRoom.composer.fileTooLarge\": \"{{name}} 过大(上限 {{max}}MB)\",\n \"projectRoom.composer.replyingTo\": \"回复 {{author}}:{{preview}}\",\n \"projectRoom.composer.cancelReply\": \"取消回复\",\n \"projectRoom.composer.blockedDefault\": \"你不能在这个空间发送消息。\",\n \"projectRoom.composer.sendFailed\": \"消息发送失败\",\n \"projectRoom.message.reply\": \"回复\",\n \"projectRoom.message.sent\": \"已发送\",\n \"projectRoom.message.notDelivered\": \"未送达任何助手\",\n \"projectRoom.message.retryDelivery\": \"重新发送\",\n \"projectRoom.message.earlierMessage\": \"较早的消息\",\n \"projectRoom.message.replyingToEarlier\": \"正在回复较早的消息\",\n \"projectRoom.agent.viewAgentWork\": \"查看智能体工作\",\n \"projectRoom.taskEvent.openDetails\": \"{{label}}:{{title}}。打开任务详情\",\n \"projectRoom.timeline.aria\": \"项目空间时间线\",\n \"projectRoom.timeline.loadOlder\": \"加载更早的消息\",\n \"projectRoom.timeline.loadingOlder\": \"正在加载更早的消息\",\n \"projectRoom.timeline.requestFailed\": \"空间请求失败。\",\n \"projectRoom.timeline.loadingMessages\": \"正在加载消息\",\n \"projectRoom.timeline.noMessages\": \"暂无消息\",\n \"projectRoom.timeline.newMessages\": \"新消息\",\n \"projectRoom.files.aria\": \"项目文件\",\n \"projectRoom.files.projectAssets\": \"项目资产\",\n \"projectRoom.files.selectProjectFirst\": \"请先选择工作区和项目。\",\n \"projectRoom.files.selectProjectBeforeUpload\": \"请先选择工作区和项目再上传。\",\n \"projectRoom.files.preview\": \"预览:{{name}}\",\n \"projectRoom.files.uploaded\": \"已成功上传“{{name}}”\",\n \"projectRoom.files.uploadFailed\": \"文件上传失败\",\n \"projectRoom.tasks.aria\": \"项目任务\",\n \"projectRoom.tasks.detailAria\": \"任务详情\",\n \"projectRoom.tasks.listAria\": \"项目任务列表\",\n \"projectRoom.tasks.empty\": \"这个项目中暂无任务\",\n \"projectRoom.tasks.openTask\": \"打开任务 {{title}}\",\n \"projectRoom.tasks.owner\": \"{{role}} {{id}}\",\n \"projectRoom.tasks.ownerAgent\": \"智能体\",\n \"projectRoom.tasks.blockedBy\": \"被 {{count}} 个{{noun}}阻塞\",\n \"projectRoom.tasks.blockedByOne\": \"任务\",\n \"projectRoom.tasks.blockedByOther\": \"任务\",\n \"projectRoom.tasks.dependenciesMet\": \"依赖已满足\",\n \"projectRoom.tasks.activityFailed\": \"活动加载失败,请稍后重试。\",\n \"projectRoom.roster.aria\": \"项目空间成员\",\n \"projectRoom.roster.botsHeading\": \"机器人\",\n \"projectRoom.roster.botsAria\": \"机器人\",\n \"projectRoom.roster.peopleHeading\": \"成员\",\n \"projectRoom.roster.humansAria\": \"人类成员\",\n \"projectRoom.roster.removedBotsHeading\": \"已移除的机器人\",\n \"projectRoom.roster.removedBotsAria\": \"已移除的机器人\",\n \"projectRoom.roster.searchPlaceholder\": \"搜索成员…\",\n \"projectRoom.roster.searchAria\": \"搜索成员\",\n \"projectRoom.roster.add\": \"添加\",\n \"projectRoom.roster.remove\": \"移除\",\n \"projectRoom.roster.noBots\": \"这个空间还没有机器人。\",\n \"projectRoom.roster.noBotsMatch\": \"没有匹配的机器人。\",\n \"projectRoom.roster.noHumans\": \"这个空间还没有人类成员。\",\n \"projectRoom.roster.noPeopleMatch\": \"没有匹配的成员。\",\n \"projectRoom.roster.builtIn\": \"内置\",\n \"projectRoom.roster.builtInCoordinator\": \"内置协调者\",\n \"projectRoom.roster.specialist\": \"专家\",\n \"projectRoom.roster.viewAgentWorkFor\": \"查看 {{name}} 的智能体工作\",\n \"projectRoom.roster.moreActionsFor\": \"{{name}} 的更多操作\",\n \"projectRoom.roster.addHuman\": \"添加人类成员\",\n \"projectRoom.roster.editHuman\": \"编辑人类成员\",\n \"projectRoom.roster.removeHuman\": \"移除人类成员\",\n \"projectRoom.roster.addBot\": \"添加机器人\",\n \"projectRoom.roster.editBot\": \"编辑机器人\",\n \"projectRoom.roster.removeBot\": \"移除机器人\",\n \"projectRoom.roster.resume\": \"恢复\",\n \"projectRoom.roster.pause\": \"暂停\",\n \"projectRoom.roster.editMention\": \"编辑提及名\",\n \"projectRoom.roster.editRole\": \"编辑角色\",\n \"projectRoom.roster.loading\": \"加载中…\",\n \"projectRoom.roster.noAvailablePeople\": \"没有可用的人员\",\n \"projectRoom.roster.fieldUser\": \"用户\",\n \"projectRoom.roster.fieldRole\": \"角色\",\n \"projectRoom.roster.fieldAssistant\": \"助手\",\n \"projectRoom.roster.fieldMentionName\": \"提及名\",\n \"projectRoom.roster.selectPerson\": \"选择人员\",\n \"projectRoom.roster.roleRequired\": \"请选择角色\",\n \"projectRoom.roster.assistantRequired\": \"请选择助手\",\n \"projectRoom.roster.mentionNameRequired\": \"请填写提及名\",\n \"projectRoom.roster.mentionPlaceholder\": \"在空间中作为 @提及 使用\",\n \"projectRoom.roster.removeMemberConfirm\": \"将成员 {{name}} 从该项目移除?该成员将无法再访问这个空间。\",\n \"projectRoom.roster.removeBotConfirm\": \"将机器人 {{title}} 从这个空间移除?它的消息记录仍然可见。\",\n \"projectRoom.roster.requestFailed\": \"请求失败,请重试。\",\n \"projectRoom.roster.availability.working\": \"工作中\",\n \"projectRoom.roster.availability.waiting\": \"等待中\",\n \"projectRoom.roster.availability.available\": \"可用\",\n \"projectRoom.roster.availability.paused\": \"已暂停\",\n \"projectRoom.roster.availability.removed\": \"已移除\",\n \"projectRoom.roster.role.owner\": \"所有者\",\n \"projectRoom.roster.role.owner.description\": \"完全控制:设置、成员和消息。\",\n \"projectRoom.roster.role.admin\": \"管理员\",\n \"projectRoom.roster.role.admin.description\": \"管理设置和成员,可以发送消息。\",\n \"projectRoom.roster.role.member\": \"成员\",\n \"projectRoom.roster.role.member.description\": \"发送消息并参与项目协作。\",\n \"projectRoom.roster.role.viewer\": \"访客\",\n \"projectRoom.roster.role.viewer.description\": \"只读访问。\",\n \"projectRoom.connection.reconnecting\": \"正在重新连接…\",\n \"projectRoom.connection.superseded\": \"该工作区已在另一个标签页中打开。\",\n \"projectRoom.connection.revoked\": \"工作区访问权限已被撤销。\",\n \"projectRoom.author.system\": \"系统\",\n \"projectRoom.author.removedAssistant\": \"已移除的助手\",\n \"projectRoom.author.removedMember\": \"已移除的成员\",\n \"projectRoom.agent.workCardDescription\": \"与 {{name}} 的空间对话\",\n \"projectRoom.time.yesterday\": \"昨天\",\n \"projectRoom.error.accessRevoked\": \"项目访问权限已被撤销。\",\n \"projectRoom.error.superseded\": \"该空间已在另一个标签页中打开。\",\n \"projectRoom.error.noProject\": \"未选择项目\",\n \"projectRoom.error.messageRequired\": \"消息内容不能为空\",\n \"projectRoom.error.membershipNotFound\": \"未找到成员关系\",\n \"projectRoom.error.botNotFound\": \"未找到机器人成员关系\",\n \"projectRoom.notification.newMessage\": \"新消息\"\n }\n}\n","{\n \"messages\": {\n \"tasks.title\": \"Tasks\",\n \"tasks.inbox\": \"Inbox\",\n \"tasks.newTask\": \"New Task\",\n \"tasks.empty\": \"No tasks\",\n \"tasks.hideCompleted\": \"Hide completed\",\n \"tasks.button.open\": \"Open tasks\",\n \"tasks.allProjects\": \"All Projects\",\n \"tasks.view.board\": \"Board\",\n \"tasks.view.list\": \"List\",\n \"tasks.view.graph\": \"Graph\",\n \"tasks.owner.agent\": \"Agent\",\n \"tasks.owner.user\": \"User\",\n \"tasks.owner.me\": \"Me\",\n \"tasks.status.pending\": \"Pending\",\n \"tasks.status.in_progress\": \"In Progress\",\n \"tasks.status.review\": \"Review\",\n \"tasks.status.failed\": \"Failed\",\n \"tasks.status.interrupted\": \"Interrupted\",\n \"tasks.status.completed\": \"Completed\",\n \"tasks.status.cancelled\": \"Cancelled\",\n \"tasks.priority.high\": \"High\",\n \"tasks.priority.medium\": \"Medium\",\n \"tasks.priority.low\": \"Low\",\n \"tasks.origin.agent\": \"Agent\",\n \"tasks.origin.user\": \"User\",\n \"tasks.origin.project\": \"Project\",\n \"tasks.origin.learning\": \"Learning\",\n \"tasks.origin.title\": \"Origin: {{origin}}\",\n \"tasks.action.ariaLabel\": \"Task actions\",\n \"tasks.action.start\": \"Start\",\n \"tasks.action.stop\": \"Stop\",\n \"tasks.action.reopen\": \"Reopen\",\n \"tasks.create.project\": \"Project\",\n \"tasks.create.projectPlaceholder\": \"Select a project\",\n \"tasks.create.projectRequired\": \"Please select a project\",\n \"tasks.create.titleLabel\": \"Task Title\",\n \"tasks.create.titlePlaceholder\": \"Enter task title\",\n \"tasks.create.titleRequired\": \"Please enter task title\",\n \"tasks.create.description\": \"Description\",\n \"tasks.create.descriptionPlaceholder\": \"Enter description (optional)\",\n \"tasks.create.requireReview\": \"Require Review\",\n \"tasks.start.title\": \"Start task\",\n \"tasks.start.agentAria\": \"Agent\",\n \"tasks.start.agentPlaceholder\": \"Select an agent\",\n \"tasks.start.noAgents\": \"No eligible agents in this project\",\n \"tasks.start.loadFailed\": \"Agents could not be loaded.\",\n \"tasks.error.load\": \"Tasks could not be loaded. Please try again.\",\n \"tasks.error.refresh\": \"Tasks could not be refreshed. Your current tasks are still available.\",\n \"tasks.error.activity\": \"Activity could not be loaded. Please try again shortly.\",\n \"tasks.error.action\": \"Task action failed. Please retry.\",\n \"tasks.error.create\": \"Operation failed, please retry\",\n \"tasks.created\": \"Task created\",\n \"tasks.activity.result\": \"Result\",\n \"tasks.activity.beliefImpact\": \"Belief Impact\",\n \"tasks.activity.reported\": \"reported {{value}}\",\n \"tasks.activity.notAvailable\": \"n/a\",\n \"tasks.activity.viewChat\": \"View Chat\",\n \"tasks.belief.title\": \"Belief State (Last reconciled snapshot)\",\n \"tasks.belief.key\": \"Key\",\n \"tasks.belief.probability\": \"Probability\",\n \"tasks.belief.target\": \"Target\",\n \"tasks.belief.basis\": \"Basis\",\n \"tasks.detail.noDescription\": \"No task description\",\n \"tasks.detail.statusSummary\": \"Status: {{status}}\",\n \"tasks.detail.acceptance\": \"Acceptance ✓ {{done}}/{{total}}\",\n \"tasks.detail.waitingApproval\": \"Waiting for approval\",\n \"tasks.detail.approvalLoading\": \"Approval evidence is loading...\",\n \"tasks.detail.approvalUnavailable\": \"Approval evidence is unavailable.\",\n \"tasks.detail.noText\": \"No text provided\",\n \"tasks.detail.threadUnavailable\": \"The agent conversation is unavailable because no thread is associated with this task.\",\n \"tasks.detail.failureReason\": \"Failure Reason\",\n \"tasks.detail.noResult\": \"No result recorded\",\n \"tasks.detail.noFailureReason\": \"No failure reason recorded\",\n \"tasks.detail.artifacts\": \"Artifacts\",\n \"tasks.detail.references\": \"References\",\n \"tasks.detail.otherFiles\": \"Other files\",\n \"tasks.detail.noFiles\": \"No files attached\",\n \"tasks.detail.noConversation\": \"No conversation associated\",\n \"tasks.detail.activity\": \"Activity ({{count}})\",\n \"tasks.detail.noActivity\": \"No activity yet\",\n \"tasks.detail.completionEvidence\": \"Completion evidence recorded\",\n \"tasks.detail.attempt\": \"Attempt #{{attempt}}\",\n \"tasks.detail.viewAllActivity\": \"View all {{count}} activity items\",\n \"tasks.detail.showFewerActivity\": \"Show fewer activity items\",\n \"tasks.detail.viewAllSubtasks\": \"View all {{count}} subtasks\",\n \"tasks.detail.showFewerSubtasks\": \"Show fewer subtasks\",\n \"tasks.detail.subtaskProgress\": \"{{done}}/{{total}} completed\",\n \"tasks.detail.noSubtasks\": \"No subtasks\",\n \"tasks.detail.created\": \"Created\",\n \"tasks.detail.due\": \"Due\",\n \"tasks.detail.dependency\": \"Dependency\",\n \"tasks.detail.dependencyUnavailable\": \"Dependency unavailable\",\n \"tasks.detail.dependencyAria\": \"Dependency: {{title}}, status {{status}}\",\n \"tasks.detail.noDependencies\": \"No dependencies\",\n \"tasks.detail.subtaskAria\": \"{{title}}, status {{status}}\",\n \"tasks.detail.statusAria\": \"Updating task status; current status {{status}}\",\n \"tasks.detail.updating\": \"Updating · {{status}}\",\n \"tasks.workbench.taskCommand\": \"Task command\",\n \"tasks.workbench.parentAria\": \"Parent: {{title}}\",\n \"tasks.workbench.updated\": \"Updated\",\n \"tasks.workbench.viewAgentWork\": \"View agent work\",\n \"tasks.region.taskContent\": \"Task Content\",\n \"tasks.region.context\": \"Context\",\n \"tasks.region.output\": \"Output details\",\n \"tasks.region.subtasks\": \"Subtasks\",\n \"tasks.region.activity\": \"Activity\",\n \"tasks.fact.state\": \"State\",\n \"tasks.fact.status\": \"Status\",\n \"tasks.fact.priority\": \"Priority\",\n \"tasks.fact.reviewPolicy\": \"Review policy\",\n \"tasks.fact.waitingApproval\": \"Waiting approval\",\n \"tasks.fact.failureReasonRecorded\": \"Failure reason recorded\",\n \"tasks.fact.notSet\": \"Not set\",\n \"tasks.fact.overdue\": \"Overdue\",\n \"tasks.fact.execution\": \"Execution\",\n \"tasks.fact.statusDistribution\": \"Status distribution\",\n \"tasks.fact.dependencies\": \"Dependencies\",\n \"tasks.fact.dependenciesValue\": \"{{completed}} completed / {{known}} known / {{unavailable}} unavailable\",\n \"tasks.fact.latestActivity\": \"Latest activity\",\n \"tasks.fact.maxAttempt\": \"Maximum attempt\",\n \"tasks.fact.none\": \"None\",\n \"tasks.fact.output\": \"Output\",\n \"tasks.fact.resultRecorded\": \"Result recorded\",\n \"tasks.fact.failureRecorded\": \"Failure recorded\",\n \"tasks.fact.files\": \"Files\",\n \"tasks.fact.conversation\": \"Conversation\",\n \"tasks.outline.openTask\": \"Open task {{title}}, status {{status}}, priority {{priority}}, {{dependencies}}\",\n \"tasks.outline.noDependencies\": \"no dependencies\",\n \"tasks.outline.dependencySummary\": \"{{count}} {{state}} {{noun}}\",\n \"tasks.outline.incomplete\": \"incomplete\",\n \"tasks.outline.completed\": \"completed\",\n \"tasks.outline.dependencyOne\": \"dependency\",\n \"tasks.outline.dependencyOther\": \"dependencies\",\n \"tasks.outline.toggleAria\": \"{{action}} subtasks for {{title}}\",\n \"tasks.outline.expand\": \"Expand\",\n \"tasks.outline.collapse\": \"Collapse\",\n \"tasks.composer.attachFiles\": \"Attach files\",\n \"tasks.composer.attachments\": \"Attachments\",\n \"tasks.composer.addFiles\": \"Add files\",\n \"tasks.composer.addFilesHint\": \"Tap to choose a file, take a photo, or record a video\",\n \"tasks.composer.uploadFailed\": \"upload failed\",\n \"tasks.composer.fileTooLarge\": \"{{name}} is too large (max {{max}}MB)\",\n \"tasks.composer.commentAria\": \"Add a comment\",\n \"tasks.composer.commentPlaceholder\": \"Add a comment…\",\n \"tasks.composer.sendFailed\": \"Comment could not be sent. Please retry.\",\n \"tasks.composer.sendComment\": \"Send comment\"\n }\n}\n","{\n \"messages\": {\n \"tasks.title\": \"任务\",\n \"tasks.inbox\": \"收件箱\",\n \"tasks.newTask\": \"新建任务\",\n \"tasks.empty\": \"暂无任务\",\n \"tasks.hideCompleted\": \"隐藏已完成\",\n \"tasks.button.open\": \"打开任务\",\n \"tasks.allProjects\": \"全部项目\",\n \"tasks.view.board\": \"看板\",\n \"tasks.view.list\": \"列表\",\n \"tasks.view.graph\": \"图谱\",\n \"tasks.owner.agent\": \"智能体\",\n \"tasks.owner.user\": \"用户\",\n \"tasks.owner.me\": \"我\",\n \"tasks.status.pending\": \"待处理\",\n \"tasks.status.in_progress\": \"进行中\",\n \"tasks.status.review\": \"待审核\",\n \"tasks.status.failed\": \"失败\",\n \"tasks.status.interrupted\": \"已中断\",\n \"tasks.status.completed\": \"已完成\",\n \"tasks.status.cancelled\": \"已取消\",\n \"tasks.priority.high\": \"高\",\n \"tasks.priority.medium\": \"中\",\n \"tasks.priority.low\": \"低\",\n \"tasks.origin.agent\": \"智能体\",\n \"tasks.origin.user\": \"用户\",\n \"tasks.origin.project\": \"项目\",\n \"tasks.origin.learning\": \"学习\",\n \"tasks.origin.title\": \"来源:{{origin}}\",\n \"tasks.action.ariaLabel\": \"任务操作\",\n \"tasks.action.start\": \"开始\",\n \"tasks.action.stop\": \"停止\",\n \"tasks.action.reopen\": \"重新打开\",\n \"tasks.create.project\": \"项目\",\n \"tasks.create.projectPlaceholder\": \"选择项目\",\n \"tasks.create.projectRequired\": \"请选择项目\",\n \"tasks.create.titleLabel\": \"任务标题\",\n \"tasks.create.titlePlaceholder\": \"输入任务标题\",\n \"tasks.create.titleRequired\": \"请输入任务标题\",\n \"tasks.create.description\": \"描述\",\n \"tasks.create.descriptionPlaceholder\": \"输入描述(可选)\",\n \"tasks.create.requireReview\": \"需要审核\",\n \"tasks.start.title\": \"开始任务\",\n \"tasks.start.agentAria\": \"智能体\",\n \"tasks.start.agentPlaceholder\": \"选择智能体\",\n \"tasks.start.noAgents\": \"此项目中没有可用的智能体\",\n \"tasks.start.loadFailed\": \"无法加载智能体。\",\n \"tasks.error.load\": \"任务加载失败,请重试。\",\n \"tasks.error.refresh\": \"任务刷新失败,当前任务仍然可用。\",\n \"tasks.error.activity\": \"活动加载失败,请稍后重试。\",\n \"tasks.error.action\": \"任务操作失败,请重试。\",\n \"tasks.error.create\": \"操作失败,请重试\",\n \"tasks.created\": \"任务已创建\",\n \"tasks.activity.result\": \"结果\",\n \"tasks.activity.beliefImpact\": \"信念影响\",\n \"tasks.activity.reported\": \"报告 {{value}}\",\n \"tasks.activity.notAvailable\": \"不适用\",\n \"tasks.activity.viewChat\": \"查看对话\",\n \"tasks.belief.title\": \"信念状态(最近一次校准快照)\",\n \"tasks.belief.key\": \"键\",\n \"tasks.belief.probability\": \"概率\",\n \"tasks.belief.target\": \"目标\",\n \"tasks.belief.basis\": \"依据\",\n \"tasks.detail.noDescription\": \"暂无任务描述\",\n \"tasks.detail.statusSummary\": \"状态:{{status}}\",\n \"tasks.detail.acceptance\": \"验收 ✓ {{done}}/{{total}}\",\n \"tasks.detail.waitingApproval\": \"等待审批\",\n \"tasks.detail.approvalLoading\": \"审批证据加载中...\",\n \"tasks.detail.approvalUnavailable\": \"审批证据不可用。\",\n \"tasks.detail.noText\": \"未提供文本\",\n \"tasks.detail.threadUnavailable\": \"此任务未关联对话线程,无法查看智能体对话。\",\n \"tasks.detail.failureReason\": \"失败原因\",\n \"tasks.detail.noResult\": \"未记录结果\",\n \"tasks.detail.noFailureReason\": \"未记录失败原因\",\n \"tasks.detail.artifacts\": \"产物\",\n \"tasks.detail.references\": \"参考\",\n \"tasks.detail.otherFiles\": \"其他文件\",\n \"tasks.detail.noFiles\": \"未附加文件\",\n \"tasks.detail.noConversation\": \"未关联对话\",\n \"tasks.detail.activity\": \"活动({{count}})\",\n \"tasks.detail.noActivity\": \"暂无活动\",\n \"tasks.detail.completionEvidence\": \"已记录完成证据\",\n \"tasks.detail.attempt\": \"第 {{attempt}} 次尝试\",\n \"tasks.detail.viewAllActivity\": \"查看全部 {{count}} 条活动\",\n \"tasks.detail.showFewerActivity\": \"收起活动\",\n \"tasks.detail.viewAllSubtasks\": \"查看全部 {{count}} 个子任务\",\n \"tasks.detail.showFewerSubtasks\": \"收起子任务\",\n \"tasks.detail.subtaskProgress\": \"已完成 {{done}}/{{total}}\",\n \"tasks.detail.noSubtasks\": \"暂无子任务\",\n \"tasks.detail.created\": \"创建时间\",\n \"tasks.detail.due\": \"截止时间\",\n \"tasks.detail.dependency\": \"依赖\",\n \"tasks.detail.dependencyUnavailable\": \"依赖不可用\",\n \"tasks.detail.dependencyAria\": \"依赖:{{title}},状态 {{status}}\",\n \"tasks.detail.noDependencies\": \"无依赖\",\n \"tasks.detail.subtaskAria\": \"{{title}},状态 {{status}}\",\n \"tasks.detail.statusAria\": \"正在更新任务状态;当前状态 {{status}}\",\n \"tasks.detail.updating\": \"更新中 · {{status}}\",\n \"tasks.workbench.taskCommand\": \"任务操作\",\n \"tasks.workbench.parentAria\": \"上级:{{title}}\",\n \"tasks.workbench.updated\": \"更新于\",\n \"tasks.workbench.viewAgentWork\": \"查看智能体工作\",\n \"tasks.region.taskContent\": \"任务内容\",\n \"tasks.region.context\": \"上下文\",\n \"tasks.region.output\": \"输出详情\",\n \"tasks.region.subtasks\": \"子任务\",\n \"tasks.region.activity\": \"活动\",\n \"tasks.fact.state\": \"概览\",\n \"tasks.fact.status\": \"状态\",\n \"tasks.fact.priority\": \"优先级\",\n \"tasks.fact.reviewPolicy\": \"审核策略\",\n \"tasks.fact.waitingApproval\": \"等待审批\",\n \"tasks.fact.failureReasonRecorded\": \"已记录失败原因\",\n \"tasks.fact.notSet\": \"未设置\",\n \"tasks.fact.overdue\": \"已逾期\",\n \"tasks.fact.execution\": \"执行\",\n \"tasks.fact.statusDistribution\": \"状态分布\",\n \"tasks.fact.dependencies\": \"依赖\",\n \"tasks.fact.dependenciesValue\": \"已完成 {{completed}} / 已知 {{known}} / 不可用 {{unavailable}}\",\n \"tasks.fact.latestActivity\": \"最近活动\",\n \"tasks.fact.maxAttempt\": \"最大尝试次数\",\n \"tasks.fact.none\": \"无\",\n \"tasks.fact.output\": \"输出\",\n \"tasks.fact.resultRecorded\": \"已记录结果\",\n \"tasks.fact.failureRecorded\": \"已记录失败\",\n \"tasks.fact.files\": \"文件\",\n \"tasks.fact.conversation\": \"对话\",\n \"tasks.outline.openTask\": \"打开任务 {{title}},状态 {{status}},优先级 {{priority}},{{dependencies}}\",\n \"tasks.outline.noDependencies\": \"无依赖\",\n \"tasks.outline.dependencySummary\": \"{{count}} {{state}}{{noun}}\",\n \"tasks.outline.incomplete\": \"个未完成\",\n \"tasks.outline.completed\": \"个已完成\",\n \"tasks.outline.dependencyOne\": \"依赖\",\n \"tasks.outline.dependencyOther\": \"依赖\",\n \"tasks.outline.toggleAria\": \"{{action}}{{title}}的子任务\",\n \"tasks.outline.expand\": \"展开\",\n \"tasks.outline.collapse\": \"收起\",\n \"tasks.composer.attachFiles\": \"添加附件\",\n \"tasks.composer.attachments\": \"附件\",\n \"tasks.composer.addFiles\": \"添加文件\",\n \"tasks.composer.addFilesHint\": \"点击选择文件、拍照或录制视频\",\n \"tasks.composer.uploadFailed\": \"上传失败\",\n \"tasks.composer.fileTooLarge\": \"{{name}} 过大(上限 {{max}}MB)\",\n \"tasks.composer.commentAria\": \"添加评论\",\n \"tasks.composer.commentPlaceholder\": \"添加评论…\",\n \"tasks.composer.sendFailed\": \"评论发送失败,请重试。\",\n \"tasks.composer.sendComment\": \"发送评论\"\n }\n}\n","{\n \"messages\": {\n \"training.newTraining\": \"New Training\",\n \"training.scoreSuffix\": \"{{score}} score\",\n \"training.cards.title\": \"Training Center\",\n \"training.cards.itemName\": \"Agent\",\n \"training.cards.passRate\": \"{{rate}}% pass\",\n \"training.cards.notTrained\": \"Not trained\",\n \"training.round.qualityTrend\": \"Quality Trend\",\n \"training.round.newRound\": \"+ New Round\",\n \"training.round.empty\": \"No training rounds yet\",\n \"training.round.finish\": \"Finish Round\",\n \"training.round.finishConfirm\": \"Finish this round?\",\n \"training.round.finished\": \"Round finished\",\n \"training.round.finishFailed\": \"Failed to finish round\",\n \"training.round.headerFallback\": \"Training\",\n \"training.round.chatDescription\": \"Training log\",\n \"training.tab.evaluation\": \"Evaluation\",\n \"training.tab.tasks\": \"Tasks\",\n \"training.tab.changes\": \"Changes\",\n \"training.status.completed\": \"Completed\",\n \"training.status.cancelled\": \"Cancelled\",\n \"training.status.in_progress\": \"In Progress\",\n \"training.status.pending\": \"Pending\",\n \"training.status.review\": \"Review\",\n \"training.status.failed\": \"Failed\",\n \"training.status.interrupted\": \"Interrupted\",\n \"training.results.noRuns\": \"No eval runs yet\",\n \"training.results.viewLatest\": \"View latest run cases\",\n \"training.results.unknownStatus\": \"unknown\",\n \"training.results.noSubtasks\": \"No subtasks yet — the architect will track its work here with manage_task.\",\n \"training.results.configChanges\": \"Config changes (from tool-call records)\",\n \"training.agent.currentConfig\": \"Current Config\",\n \"training.agent.toolCount\": \"{{count}} tools\",\n \"training.agent.answerSample\": \"Answer Sample\",\n \"training.agent.passed\": \"Passed\",\n \"training.agent.failed\": \"Failed\",\n \"training.agent.clickCaseHint\": \"Click a case in the Evaluation tab to see the agent's answer\",\n \"training.form.goal\": \"Training Goal\",\n \"training.form.goalRequired\": \"Please describe the training goal\",\n \"training.form.goalPlaceholder\": \"e.g. Make it handle price disputes and know the price protection policy\",\n \"training.form.start\": \"Start Training\",\n \"training.form.agentCreated\": \"Agent created and training started\",\n \"training.form.createAgentFailed\": \"Failed to create agent\",\n \"training.form.roundCreated\": \"Training round created\",\n \"training.form.createRoundFailed\": \"Failed to create round\",\n \"training.form.newRoundTitle\": \"New Training Round · {{agentId}}\",\n \"training.form.activeRound\": \"There is an active round \\\"{{title}}\\\". Finish it before starting a new one.\",\n \"training.cards.itemName_one\": \"agent\",\n \"training.cards.itemName_other\": \"agents\"\n }\n}\n","{\n \"messages\": {\n \"training.newTraining\": \"新建训练\",\n \"training.scoreSuffix\": \"{{score}} 分\",\n \"training.cards.title\": \"训练中心\",\n \"training.cards.itemName\": \"智能体\",\n \"training.cards.passRate\": \"通过率 {{rate}}%\",\n \"training.cards.notTrained\": \"未训练\",\n \"training.round.qualityTrend\": \"质量趋势\",\n \"training.round.newRound\": \"+ 新建轮次\",\n \"training.round.empty\": \"暂无训练轮次\",\n \"training.round.finish\": \"结束轮次\",\n \"training.round.finishConfirm\": \"结束本轮训练?\",\n \"training.round.finished\": \"轮次已结束\",\n \"training.round.finishFailed\": \"结束轮次失败\",\n \"training.round.headerFallback\": \"训练\",\n \"training.round.chatDescription\": \"训练日志\",\n \"training.tab.evaluation\": \"评测\",\n \"training.tab.tasks\": \"任务\",\n \"training.tab.changes\": \"变更\",\n \"training.status.completed\": \"已完成\",\n \"training.status.cancelled\": \"已取消\",\n \"training.status.in_progress\": \"进行中\",\n \"training.status.pending\": \"待处理\",\n \"training.status.review\": \"待审核\",\n \"training.status.failed\": \"失败\",\n \"training.status.interrupted\": \"已中断\",\n \"training.results.noRuns\": \"暂无评测运行\",\n \"training.results.viewLatest\": \"查看最新运行的用例\",\n \"training.results.unknownStatus\": \"未知\",\n \"training.results.noSubtasks\": \"暂无子任务 —— 架构师会用 manage_task 在这里跟踪它的工作。\",\n \"training.results.configChanges\": \"配置变更(来自工具调用记录)\",\n \"training.agent.currentConfig\": \"当前配置\",\n \"training.agent.toolCount\": \"{{count}} 个工具\",\n \"training.agent.answerSample\": \"回答示例\",\n \"training.agent.passed\": \"通过\",\n \"training.agent.failed\": \"未通过\",\n \"training.agent.clickCaseHint\": \"在「评测」页签中点击某个用例,即可查看该智能体的回答\",\n \"training.form.goal\": \"训练目标\",\n \"training.form.goalRequired\": \"请描述训练目标\",\n \"training.form.goalPlaceholder\": \"例如:让它能处理价格争议,并了解价格保护政策\",\n \"training.form.start\": \"开始训练\",\n \"training.form.agentCreated\": \"智能体已创建,训练已开始\",\n \"training.form.createAgentFailed\": \"创建智能体失败\",\n \"training.form.roundCreated\": \"训练轮次已创建\",\n \"training.form.createRoundFailed\": \"创建轮次失败\",\n \"training.form.newRoundTitle\": \"新建训练轮次 · {{agentId}}\",\n \"training.form.activeRound\": \"存在进行中的轮次「{{title}}」。请先结束它再开始新的轮次。\",\n \"training.cards.itemName_one\": \"智能体\",\n \"training.cards.itemName_other\": \"智能体\"\n }\n}\n","import React, { useCallback, useEffect, useReducer, useRef } from \"react\";\nimport { AgentWebAppContext, featureDisabled } from \"./AgentWebAppContext\";\nimport { AgentWebAppRuntimeClient } from \"./client\";\nimport { AgentWebAppRuntimeClientError } from \"./error\";\nimport { formatErrorMessage } from \"../../utils/errorMessage\";\nimport { useT } from \"../../i18n\";\nimport type { SdkTFunction } from \"../../i18n\";\nimport { agentWebAppReducer, initialAgentWebAppState } from \"./state/agentWebAppReducer\";\nimport type {\n AgentWebAppBootstrap,\n AgentWebAppInterruptResponse,\n AgentWebAppRuntimeThread,\n AgentWebAppStreamEvent,\n} from \"./types\";\n\nexport type AgentWebAppIdentity =\n | { mode: \"unverified\"; userId: string; displayName?: string }\n | { mode: \"verified\"; tokenProvider: () => Promise<string> };\n\nexport interface AgentWebAppProviderProps {\n gatewayUrl: string;\n webAppId: string;\n identity: AgentWebAppIdentity;\n children: React.ReactNode;\n onError?: (error: AgentWebAppRuntimeClientError) => void;\n fetch?: typeof globalThis.fetch;\n}\n\nfunction validateProps(props: AgentWebAppProviderProps): void {\n if (!props.gatewayUrl.trim()) throw new Error(\"AgentWebAppProvider requires gatewayUrl\");\n try { new URL(props.gatewayUrl); } catch { throw new Error(\"AgentWebAppProvider gatewayUrl must be a valid URL\"); }\n if (props.identity.mode === \"unverified\") {\n if (!props.identity.userId.trim()) throw new Error(\"AgentWebAppProvider requires identity.userId\");\n } else if (typeof props.identity.tokenProvider !== \"function\") {\n throw new Error(\"AgentWebAppProvider requires identity.tokenProvider\");\n }\n if (!props.fetch && typeof globalThis.fetch !== \"function\") throw new Error(\"AgentWebAppProvider requires a fetch implementation\");\n}\n\nfunction runtimeError(error: unknown, t: SdkTFunction): AgentWebAppRuntimeClientError {\n if (error instanceof AgentWebAppRuntimeClientError) return error;\n return new AgentWebAppRuntimeClientError(\"INTERNAL_ERROR\", t(\"integration.error.requestFailed\"), true);\n}\n\nfunction isAbortError(error: unknown): boolean {\n return typeof error === \"object\" && error !== null && \"name\" in error && error.name === \"AbortError\";\n}\n\nfunction newestThread(threads: AgentWebAppRuntimeThread[]): AgentWebAppRuntimeThread | null {\n return threads.reduce<AgentWebAppRuntimeThread | null>((latest, item) => !latest || item.updatedAt > latest.updatedAt ? item : latest, null);\n}\n\nfunction requestProjectId(bootstrap: AgentWebAppBootstrap | null, projectId: string | null | undefined): string | undefined {\n return bootstrap?.webApp.features.projectSelector ? projectId ?? undefined : undefined;\n}\n\nfunction requestModelKey(bootstrap: AgentWebAppBootstrap | null, modelKey: string | null | undefined): string | undefined {\n return bootstrap?.webApp.features.modelSelector ? modelKey ?? undefined : undefined;\n}\n\nexport function AgentWebAppProvider(props: AgentWebAppProviderProps): React.ReactElement {\n validateProps(props);\n const scopeKey = `${props.gatewayUrl}\\u0000${props.webAppId}\\u0000${props.identity.mode === \"unverified\" ? props.identity.userId : \"verified:token\"}`;\n return <ScopedAgentWebAppProvider key={scopeKey} {...props} />;\n}\n\nfunction ScopedAgentWebAppProvider({ gatewayUrl, webAppId, identity, children, onError, fetch: fetchImplementation }: AgentWebAppProviderProps): React.ReactElement {\n const t = useT();\n const [state, dispatch] = useReducer(agentWebAppReducer, initialAgentWebAppState);\n const stateRef = useRef(state);\n stateRef.current = state;\n const generationRef = useRef(0);\n const threadGenerationRef = useRef(0);\n const streamGenerationRef = useRef(0);\n const controllersRef = useRef(new Set<AbortController>());\n const threadControllersRef = useRef(new Set<AbortController>());\n const streamRef = useRef<{ controller: AbortController; threadId: string; projectId?: string } | null>(null);\n const errorNotifiedRef = useRef<AgentWebAppRuntimeClientError | null>(null);\n const identityRef = useRef(identity);\n identityRef.current = identity;\n const clientRef = useRef<AgentWebAppRuntimeClient>();\n if (!clientRef.current) {\n clientRef.current = new AgentWebAppRuntimeClient({\n gatewayUrl,\n webAppId,\n identityProvider: {\n getIdentity: async () => {\n const current = identityRef.current;\n if (current.mode !== \"verified\") return { externalUserId: current.userId };\n try {\n return { bearerToken: await current.tokenProvider() };\n } catch {\n throw new AgentWebAppRuntimeClientError(\"USER_ID_REQUIRED\", t(\"integration.error.identityTokenFailed\"), true);\n }\n },\n },\n translate: t,\n ...(fetchImplementation ? { fetch: fetchImplementation } : {}),\n });\n }\n const client = clientRef.current;\n\n const controlled = useCallback(async <T,>(operation: (signal: AbortSignal) => Promise<T>): Promise<T> => {\n const controller = new AbortController();\n controllersRef.current.add(controller);\n try { return await operation(controller.signal); }\n finally { controllersRef.current.delete(controller); }\n }, []);\n\n const threadControlled = useCallback(async <T,>(operation: (signal: AbortSignal) => Promise<T>): Promise<T> => {\n const controller = new AbortController();\n threadControllersRef.current.add(controller);\n try { return await operation(controller.signal); }\n finally { threadControllersRef.current.delete(controller); }\n }, []);\n\n const invalidateThreadWork = useCallback((): number => {\n const generation = ++threadGenerationRef.current;\n for (const controller of threadControllersRef.current) controller.abort();\n threadControllersRef.current.clear();\n return generation;\n }, []);\n\n const report = useCallback((error: unknown): AgentWebAppRuntimeClientError => {\n const normalized = runtimeError(error, t);\n dispatch({ type: \"ERROR_SET\", error: normalized });\n return normalized;\n }, [t]);\n\n const stopActiveStream = useCallback(async ({ abortBackend }: { abortBackend: boolean }): Promise<void> => {\n const active = streamRef.current;\n if (!active) return;\n streamGenerationRef.current += 1;\n streamRef.current = null;\n active.controller.abort();\n dispatch({ type: \"STREAM_SET\", streaming: false, assistantMessageId: null });\n if (abortBackend) await client.abort(active.threadId, active.projectId ? { projectId: active.projectId } : {});\n }, [client]);\n\n const loadMessages = useCallback(async (thread: AgentWebAppRuntimeThread, generation = generationRef.current, threadGeneration = threadGenerationRef.current, bootstrap = stateRef.current.bootstrap): Promise<void> => {\n dispatch({ type: \"MESSAGES_LOADING\", loading: true });\n try {\n const projectId = requestProjectId(bootstrap, thread.projectId);\n const result = await threadControlled((signal) => client.getMessages(thread.id, projectId ? { projectId } : {}, signal));\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"MESSAGES_SET\", messages: result.messages });\n } catch (error) {\n if (!isAbortError(error) && generation === generationRef.current && threadGeneration === threadGenerationRef.current) report(error);\n } finally {\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"MESSAGES_LOADING\", loading: false });\n }\n }, [client, report, threadControlled]);\n\n const loadManagedThreads = useCallback(async (projectId: string, generation = generationRef.current, threadGeneration = threadGenerationRef.current, bootstrap = stateRef.current.bootstrap): Promise<void> => {\n dispatch({ type: \"THREADS_LOADING\", loading: true });\n try {\n const selectedProjectId = requestProjectId(bootstrap, projectId);\n const result = await threadControlled((signal) => client.listThreads(selectedProjectId ? { projectId: selectedProjectId } : {}, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n const latest = newestThread(result.records);\n if (streamRef.current && latest?.id !== stateRef.current.activeThread?.id) await stopActiveStream({ abortBackend: true });\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n dispatch({ type: \"THREADS_SET\", threads: result.records });\n const currentActive = stateRef.current.activeThread;\n if (latest && latest.id === currentActive?.id) {\n dispatch({ type: \"ACTIVE_THREAD_UPDATED\", thread: latest });\n } else {\n threadGeneration = invalidateThreadWork();\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: latest });\n if (latest) await loadMessages(latest, generation, threadGeneration, bootstrap);\n }\n } catch (error) {\n if (!isAbortError(error) && generation === generationRef.current && threadGeneration === threadGenerationRef.current) report(error);\n } finally {\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"THREADS_LOADING\", loading: false });\n }\n }, [client, invalidateThreadWork, loadMessages, report, stopActiveStream, threadControlled]);\n\n const bootstrapRuntime = useCallback(async (): Promise<void> => {\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) report(error); }\n const generation = ++generationRef.current;\n for (const controller of controllersRef.current) controller.abort();\n controllersRef.current.clear();\n invalidateThreadWork();\n dispatch({ type: \"BOOTSTRAP_LOADING\" });\n try {\n const result = await controlled((signal) => client.bootstrap({}, signal));\n if (generation !== generationRef.current) return;\n const projectId = result.webApp.defaultProjectId;\n const modelKey = result.webApp.defaultModelKey ?? result.models[0]?.key ?? null;\n dispatch({ type: \"BOOTSTRAP_READY\", bootstrap: result, projectId, modelKey });\n if (result.webApp.features.threadManagement) {\n await loadManagedThreads(projectId, generation, threadGenerationRef.current, result);\n } else {\n const implicit = result.thread ?? null;\n dispatch({ type: \"THREADS_SET\", threads: implicit ? [implicit] : [] });\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: implicit });\n if (implicit) await loadMessages(implicit, generation, threadGenerationRef.current, result);\n }\n } catch (error) {\n if (!isAbortError(error) && generation === generationRef.current) report(error);\n } finally {\n if (generation === generationRef.current) dispatch({ type: \"BOOTSTRAP_SETTLED\" });\n }\n }, [client, controlled, invalidateThreadWork, loadManagedThreads, loadMessages, report, stopActiveStream]);\n\n useEffect(() => {\n void bootstrapRuntime();\n return () => {\n generationRef.current += 1;\n for (const controller of controllersRef.current) controller.abort();\n controllersRef.current.clear();\n invalidateThreadWork();\n void stopActiveStream({ abortBackend: true }).catch(() => undefined);\n };\n }, [bootstrapRuntime, invalidateThreadWork, stopActiveStream]);\n\n useEffect(() => {\n const error = state.errors.current;\n if (error && error !== errorNotifiedRef.current) {\n errorNotifiedRef.current = error;\n onError?.(error);\n }\n }, [onError, state.errors.current]);\n\n const abort = useCallback(async (): Promise<void> => {\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n }, [report, stopActiveStream]);\n\n const selectProject = useCallback(async (projectId: string): Promise<void> => {\n const current = stateRef.current;\n const bootstrap = current.bootstrap;\n if (!bootstrap) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.notReady\"), true));\n if (!bootstrap.webApp.features.projectSelector) throw featureDisabled(t(\"integration.error.projectSelectionDisabled\"));\n if (!bootstrap.projects.some((project) => project.id === projectId)) throw report(new AgentWebAppRuntimeClientError(\"PROJECT_NOT_ALLOWED\", t(\"integration.error.projectNotAllowed\"), false));\n if (projectId === current.projectId) return;\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n const generation = generationRef.current;\n const threadGeneration = invalidateThreadWork();\n dispatch({ type: \"PROJECT_SELECTED\", projectId });\n if (bootstrap.webApp.features.threadManagement) await loadManagedThreads(projectId, generation, threadGeneration, bootstrap);\n else {\n const selectedProjectId = requestProjectId(bootstrap, projectId);\n const selectedModelKey = requestModelKey(bootstrap, current.modelKey);\n const result = await threadControlled((signal) => client.bootstrap({ ...(selectedProjectId ? { projectId: selectedProjectId } : {}), ...(selectedModelKey ? { modelKey: selectedModelKey } : {}) }, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n const implicit = result.thread ?? null;\n dispatch({ type: \"THREADS_SET\", threads: implicit ? [implicit] : [] });\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: implicit });\n if (implicit) await loadMessages(implicit, generation, threadGeneration, result);\n }\n }, [client, invalidateThreadWork, loadManagedThreads, loadMessages, report, stopActiveStream, threadControlled, t]);\n\n const selectModel = useCallback((modelKey: string): void => {\n const bootstrap = stateRef.current.bootstrap;\n if (!bootstrap) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.notReady\"), true));\n if (!bootstrap.webApp.features.modelSelector) throw featureDisabled(t(\"integration.error.modelSelectionDisabled\"));\n if (!bootstrap.models.some((model) => model.key === modelKey)) throw report(new AgentWebAppRuntimeClientError(\"MODEL_NOT_ALLOWED\", t(\"integration.error.modelNotAllowed\"), false));\n dispatch({ type: \"MODEL_SELECTED\", modelKey });\n }, [report, t]);\n\n const requireThreadManagement = useCallback((): void => {\n if (!stateRef.current.bootstrap?.webApp.features.threadManagement) throw featureDisabled(t(\"integration.error.threadManagementDisabled\"));\n }, [t]);\n\n const refreshThreads = useCallback(async (): Promise<void> => {\n requireThreadManagement();\n const projectId = stateRef.current.projectId;\n if (projectId) await loadManagedThreads(projectId, generationRef.current, threadGenerationRef.current, stateRef.current.bootstrap);\n }, [loadManagedThreads, requireThreadManagement]);\n\n const selectThread = useCallback(async (thread: AgentWebAppRuntimeThread): Promise<void> => {\n if (thread.projectId !== stateRef.current.projectId) throw report(new AgentWebAppRuntimeClientError(\"PROJECT_NOT_ALLOWED\", t(\"integration.error.threadOtherProject\"), false));\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n const generation = generationRef.current;\n const threadGeneration = invalidateThreadWork();\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread });\n await loadMessages(thread, generation, threadGeneration, stateRef.current.bootstrap);\n }, [invalidateThreadWork, loadMessages, report, stopActiveStream, t]);\n\n const createThread = useCallback(async (label?: string): Promise<AgentWebAppRuntimeThread> => {\n requireThreadManagement();\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n const threadGeneration = invalidateThreadWork();\n const generation = generationRef.current;\n const projectId = stateRef.current.projectId;\n const selectedProjectId = requestProjectId(stateRef.current.bootstrap, projectId);\n const created = await threadControlled((signal) => client.createThread({ ...(selectedProjectId ? { projectId: selectedProjectId } : {}), ...(label ? { label } : {}) }, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return created;\n dispatch({ type: \"THREAD_UPSERT\", thread: created });\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: created });\n return created;\n }, [client, invalidateThreadWork, report, requireThreadManagement, stopActiveStream, threadControlled, t]);\n\n const renameThread = useCallback(async (threadId: string, label: string): Promise<AgentWebAppRuntimeThread> => {\n requireThreadManagement();\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n const generation = generationRef.current;\n const threadGeneration = threadGenerationRef.current;\n const existing = stateRef.current.threads.find((item) => item.id === threadId);\n if (!existing) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.threadNotFound\"), false));\n const projectId = requestProjectId(stateRef.current.bootstrap, existing.projectId);\n const updated = await threadControlled((signal) => client.updateThread(threadId, { ...(projectId ? { projectId } : {}), label }, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return updated;\n dispatch({ type: \"THREAD_UPSERT\", thread: updated });\n return updated;\n }, [client, report, requireThreadManagement, threadControlled, t]);\n\n const deleteThread = useCallback(async (threadId: string): Promise<void> => {\n requireThreadManagement();\n const existing = stateRef.current.threads.find((item) => item.id === threadId);\n if (!existing) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.threadNotFound\"), false));\n if (stateRef.current.activeThread?.id === threadId) {\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n invalidateThreadWork();\n }\n const generation = generationRef.current;\n const threadGeneration = threadGenerationRef.current;\n const projectId = requestProjectId(stateRef.current.bootstrap, existing.projectId);\n await threadControlled((signal) => client.deleteThread(threadId, projectId ? { projectId } : {}, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n dispatch({ type: \"THREAD_DELETED\", threadId });\n const remaining = stateRef.current.threads.filter((item) => item.id !== threadId);\n const next = newestThread(remaining);\n if (stateRef.current.activeThread?.id === threadId && next) {\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: next });\n await loadMessages(next);\n }\n }, [client, invalidateThreadWork, loadMessages, report, requireThreadManagement, stopActiveStream, threadControlled, t]);\n\n const handleStreamEvent = useCallback((event: AgentWebAppStreamEvent, assistantId: string, generation: number, streamGeneration: number): void => {\n if (generation !== generationRef.current || streamGeneration !== streamGenerationRef.current) return;\n switch (event.type) {\n case \"message.delta\": dispatch({ type: \"ASSISTANT_DELTA\", id: assistantId, text: event.text }); break;\n case \"message.completed\": dispatch({ type: \"ASSISTANT_COMPLETED\", temporaryId: assistantId, messageId: event.messageId }); break;\n case \"tool.started\": dispatch({ type: \"TOOL_STARTED\", id: event.id, name: event.name }); break;\n case \"tool.completed\": dispatch({ type: \"TOOL_COMPLETED\", id: event.id }); break;\n case \"interrupt.created\": if (stateRef.current.bootstrap?.webApp.features.hitl) dispatch({ type: \"INTERRUPT_ADD\", interrupt: event.interrupt }); break;\n case \"genui.render\": if (stateRef.current.bootstrap?.webApp.features.genUI) dispatch({ type: \"ASSISTANT_GENUI\", id: assistantId, block: event.block }); break;\n case \"error\": break;\n case \"stream.completed\": break;\n }\n }, []);\n\n const consumePublicStream = useCallback(async (input: {\n threadId: string; projectId?: string; assistantId: string; generation: number; streamGeneration: number;\n run(onEvent: (event: AgentWebAppStreamEvent) => void, signal: AbortSignal): Promise<void>;\n }): Promise<string> => {\n const controller = new AbortController();\n let eventError: AgentWebAppRuntimeClientError | null = null;\n let currentAssistantId = input.assistantId;\n streamRef.current = { controller, threadId: input.threadId, ...(input.projectId ? { projectId: input.projectId } : {}) };\n dispatch({ type: \"STREAM_SET\", streaming: true, assistantMessageId: input.assistantId });\n try {\n await input.run((event) => {\n if (event.type === \"error\") {\n if (input.generation === generationRef.current && input.streamGeneration === streamGenerationRef.current) {\n eventError = new AgentWebAppRuntimeClientError(event.error.code, formatErrorMessage(event.error.message, t(\"integration.error.streamError\")), event.error.retryable);\n }\n return;\n }\n if (event.type === \"message.completed\") currentAssistantId = event.messageId;\n handleStreamEvent(event, input.assistantId, input.generation, input.streamGeneration);\n }, controller.signal);\n if (eventError) throw eventError;\n return currentAssistantId;\n } finally {\n if (streamRef.current?.controller === controller) streamRef.current = null;\n if (input.generation === generationRef.current && input.streamGeneration === streamGenerationRef.current) dispatch({ type: \"STREAM_SET\", streaming: false });\n }\n }, [handleStreamEvent, t]);\n\n const send = useCallback(async (content: string, attachmentRefs?: string[]): Promise<void> => {\n const current = stateRef.current;\n if (streamRef.current || current.stream.isStreaming) throw new AgentWebAppRuntimeClientError(\"STREAM_CONFLICT\", t(\"integration.error.alreadyStreaming\"), false);\n if (!current.activeThread || !current.projectId) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.noActiveThread\"), false));\n if (!content.trim()) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.contentRequired\"), false));\n const generation = generationRef.current;\n const streamGeneration = ++streamGenerationRef.current;\n const assistantId = `pending-assistant-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n const userId = `pending-user-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n const refs = attachmentRefs ?? current.attachments.map((attachment) => attachment.ref);\n const projectId = requestProjectId(current.bootstrap, current.projectId);\n const modelKey = requestModelKey(current.bootstrap, current.modelKey);\n let currentAssistantId = assistantId;\n dispatch({ type: \"MESSAGE_APPEND\", message: { id: userId, role: \"human\", content } });\n try {\n currentAssistantId = await consumePublicStream({\n threadId: current.activeThread.id, projectId, assistantId, generation, streamGeneration,\n run: (onEvent, signal) => client.streamMessage(current.activeThread!.id, {\n content,\n ...(projectId ? { projectId } : {}),\n ...(modelKey ? { modelKey } : {}),\n ...(refs.length ? { attachmentRefs: refs } : {}),\n }, onEvent, signal),\n });\n if (generation === generationRef.current && streamGeneration === streamGenerationRef.current) {\n dispatch({ type: \"ATTACHMENTS_REMOVE\", refs });\n dispatch({ type: \"FAILED_SEND_SET\", failedSend: null });\n }\n } catch (error) {\n if (generation === generationRef.current && streamGeneration === streamGenerationRef.current) {\n dispatch({ type: \"MESSAGES_REMOVE\", ids: [userId, assistantId, `${assistantId}-genui`, currentAssistantId, `${currentAssistantId}-genui`] });\n if (!isAbortError(error)) {\n dispatch({ type: \"FAILED_SEND_SET\", failedSend: { text: content, attachmentIds: refs } });\n throw report(error);\n }\n }\n }\n }, [client, consumePublicStream, report, t]);\n\n const sendMessage = useCallback(async (content: string): Promise<void> => send(content), [send]);\n\n const retryLastMessage = useCallback(async (): Promise<void> => {\n const failed = stateRef.current.lastFailedSend;\n if (!failed) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.noFailedMessage\"), false));\n await send(failed.text, failed.attachmentIds);\n }, [report, send, t]);\n\n const uploadAttachment = useCallback(async (file: Blob): Promise<void> => {\n const current = stateRef.current;\n const generation = generationRef.current;\n const threadGeneration = threadGenerationRef.current;\n if (!current.bootstrap?.webApp.features.attachments) throw featureDisabled(t(\"integration.error.attachmentsDisabled\"));\n if (!current.activeThread) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.noActiveThread\"), false));\n dispatch({ type: \"ATTACHMENTS_LOADING\", loading: true });\n try {\n const projectId = requestProjectId(current.bootstrap, current.activeThread.projectId);\n const attachment = await threadControlled((signal) => client.uploadAttachment(current.activeThread!.id, file, projectId ? { projectId } : {}, signal));\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"ATTACHMENT_ADD\", attachment });\n } catch (error) {\n if (!isAbortError(error) && generation === generationRef.current && threadGeneration === threadGenerationRef.current) throw report(error);\n } finally { if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"ATTACHMENTS_LOADING\", loading: false }); }\n }, [client, report, threadControlled, t]);\n\n const resumeInterrupt = useCallback(async (interruptId: string, response: AgentWebAppInterruptResponse, message: string): Promise<void> => {\n const current = stateRef.current;\n const generation = generationRef.current;\n const threadGeneration = threadGenerationRef.current;\n if (streamRef.current || current.stream.isStreaming) throw report(new AgentWebAppRuntimeClientError(\"STREAM_CONFLICT\", t(\"integration.error.alreadyStreaming\"), false));\n if (!current.bootstrap?.webApp.features.hitl) throw featureDisabled(t(\"integration.error.humanReviewDisabled\"));\n if (!current.activeThread || !current.projectId) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.noActiveThread\"), false));\n if (!current.interrupts.some((item) => item.id === interruptId)) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.interruptNotFound\"), false));\n const activeThread = current.activeThread;\n const projectId = requestProjectId(current.bootstrap, current.projectId);\n const modelKey = requestModelKey(current.bootstrap, current.modelKey);\n const streamGeneration = ++streamGenerationRef.current;\n const assistantId = `pending-assistant-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n dispatch({ type: \"INTERRUPTS_LOADING\", loading: true });\n try {\n await consumePublicStream({\n threadId: activeThread.id, projectId, assistantId, generation, streamGeneration,\n run: (onEvent, signal) => client.resumeInterrupt(activeThread.id, interruptId, {\n ...(projectId ? { projectId } : {}),\n ...(modelKey ? { modelKey } : {}), message, response,\n }, onEvent, signal),\n });\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n dispatch({ type: \"INTERRUPT_REMOVE\", interruptId });\n await loadMessages(activeThread, generation, threadGeneration);\n } catch (error) {\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) {\n dispatch({ type: \"MESSAGES_REMOVE\", ids: [assistantId, `${assistantId}-genui`] });\n if (!isAbortError(error)) throw report(error);\n }\n } finally {\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"INTERRUPTS_LOADING\", loading: false });\n }\n }, [client, consumePublicStream, loadMessages, report, t]);\n\n const value = {\n ...state,\n retry: bootstrapRuntime,\n selectProject,\n selectModel,\n refreshThreads,\n selectThread,\n createThread,\n renameThread,\n deleteThread,\n sendMessage,\n retryLastMessage,\n abort,\n uploadAttachment,\n removeAttachment: (ref: string) => dispatch({ type: \"ATTACHMENT_REMOVE\", ref }),\n clearAttachments: () => dispatch({ type: \"ATTACHMENTS_CLEAR\" }),\n resumeInterrupt,\n clearError: () => dispatch({ type: \"ERROR_SET\", error: null }),\n };\n return <AgentWebAppContext.Provider value={value}>{children}</AgentWebAppContext.Provider>;\n}\n","import { createContext } from \"react\";\nimport type { AgentWebAppInterruptResponse, AgentWebAppRuntimeThread } from \"./types\";\nimport { AgentWebAppRuntimeClientError } from \"./error\";\nimport type { AgentWebAppState } from \"./state/agentWebAppReducer\";\n\nexport interface AgentWebAppContextValue extends AgentWebAppState {\n retry(): Promise<void>;\n selectProject(projectId: string): Promise<void>;\n selectModel(modelKey: string): void;\n refreshThreads(): Promise<void>;\n selectThread(thread: AgentWebAppRuntimeThread): Promise<void>;\n createThread(label?: string): Promise<AgentWebAppRuntimeThread>;\n renameThread(threadId: string, label: string): Promise<AgentWebAppRuntimeThread>;\n deleteThread(threadId: string): Promise<void>;\n sendMessage(content: string): Promise<void>;\n retryLastMessage(): Promise<void>;\n abort(): Promise<void>;\n uploadAttachment(file: Blob): Promise<void>;\n removeAttachment(ref: string): void;\n clearAttachments(): void;\n resumeInterrupt(interruptId: string, response: AgentWebAppInterruptResponse, message: string): Promise<void>;\n clearError(): void;\n}\n\nexport const AgentWebAppContext = createContext<AgentWebAppContextValue | null>(null);\n\nexport function featureDisabled(message: string): AgentWebAppRuntimeClientError {\n return new AgentWebAppRuntimeClientError(\"FEATURE_DISABLED\", message, false, 403);\n}\n","import type { AgentWebAppErrorCode } from \"./types\";\n\nexport class AgentWebAppRuntimeClientError extends Error {\n readonly code: AgentWebAppErrorCode;\n readonly retryable: boolean;\n readonly status?: number;\n\n constructor(code: AgentWebAppErrorCode, message: string, retryable: boolean, status?: number) {\n super(message);\n this.name = \"AgentWebAppRuntimeClientError\";\n this.code = code;\n this.retryable = retryable;\n this.status = status;\n }\n}\n\nexport function streamFailed(): AgentWebAppRuntimeClientError {\n return new AgentWebAppRuntimeClientError(\"STREAM_FAILED\", \"Stream failed\", true);\n}\n","import { streamFailed } from \"./error\";\nimport {\n MessageChunkTypes,\n createAgentWebAppStreamProjectionContext,\n parseAgentWebAppGenUIBlock,\n projectAgentWebAppChunk,\n type AgentWebAppStreamProjectionContext,\n} from \"@axiom-lattice/protocols\";\nimport type {\n AgentWebAppError,\n AgentWebAppErrorCode,\n AgentWebAppInterrupt,\n AgentWebAppStreamEvent,\n AgentWebAppStreamEventHandler,\n} from \"./types\";\n\nconst errorCodes = new Set<AgentWebAppErrorCode>([\n \"WEB_APP_NOT_FOUND\", \"WEB_APP_DISABLED\", \"USER_ID_REQUIRED\", \"INVALID_USER_ID\",\n \"PROJECT_NOT_ALLOWED\", \"PROJECT_SELECTOR_DISABLED\", \"MODEL_NOT_ALLOWED\", \"FEATURE_DISABLED\",\n \"THREAD_NOT_FOUND\", \"STREAM_CONFLICT\", \"STREAM_FAILED\", \"INVALID_REQUEST\", \"INTERNAL_ERROR\",\n]);\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction exact(value: Record<string, unknown>, keys: string[]): boolean {\n const actual = Object.keys(value);\n return actual.length === keys.length && keys.every((key) => key in value);\n}\n\nfunction validError(value: unknown): value is AgentWebAppError {\n return record(value)\n && exact(value, [\"code\", \"message\", \"retryable\"])\n && typeof value.code === \"string\" && errorCodes.has(value.code as AgentWebAppErrorCode)\n && typeof value.message === \"string\" && typeof value.retryable === \"boolean\";\n}\n\nfunction validInterrupt(value: unknown): value is AgentWebAppInterrupt {\n if (!record(value)) return false;\n const keys = value.data === undefined ? [\"id\", \"type\", \"prompt\"] : [\"id\", \"type\", \"prompt\", \"data\"];\n return exact(value, keys) && typeof value.id === \"string\" && typeof value.type === \"string\"\n && typeof value.prompt === \"string\" && (value.data === undefined || record(value.data));\n}\n\nconst nativeChunkTypes = new Set<string>([\n MessageChunkTypes.HUMAN, MessageChunkTypes.AI, MessageChunkTypes.TOOL,\n MessageChunkTypes.INTERRUPT, MessageChunkTypes.MESSAGE_COMPLETED,\n MessageChunkTypes.MESSAGE_FAILED, MessageChunkTypes.THREAD_IDLE,\n]);\n\nfunction parseEvents(data: string, projection: AgentWebAppStreamProjectionContext): AgentWebAppStreamEvent[] {\n let value: unknown;\n try { value = JSON.parse(data); } catch { throw streamFailed(); }\n if (!record(value) || typeof value.type !== \"string\") throw streamFailed();\n // Native run-protocol chunk (the gateway's messages/stream since Phase 2).\n if (nativeChunkTypes.has(value.type) || (value.type === \"error\" && record(value.data) && !record(value.error))) {\n const projected = projectAgentWebAppChunk(value as never, projection);\n if (projected.length === 0) return [];\n return projected;\n }\n // Legacy projected public event (gateway /v1 path or an older gateway).\n switch (value.type) {\n case \"message.delta\":\n if (exact(value, [\"type\", \"text\"]) && typeof value.text === \"string\") return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"message.completed\":\n if (exact(value, [\"type\", \"messageId\"]) && typeof value.messageId === \"string\") return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"tool.started\":\n if (exact(value, [\"type\", \"id\", \"name\"]) && typeof value.id === \"string\" && typeof value.name === \"string\") return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"tool.completed\":\n if (exact(value, [\"type\", \"id\"]) && typeof value.id === \"string\") return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"interrupt.created\":\n if (exact(value, [\"type\", \"interrupt\"]) && validInterrupt(value.interrupt)) return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"genui.render\":\n if (exact(value, [\"type\", \"block\"]) && parseAgentWebAppGenUIBlock(value.block)) return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"error\":\n if (exact(value, [\"type\", \"error\"]) && validError(value.error)) return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"stream.completed\":\n if (exact(value, [\"type\"])) return [value as unknown as AgentWebAppStreamEvent];\n break;\n }\n throw streamFailed();\n}\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof Error && error.name === \"AbortError\";\n}\n\nexport async function parseAgentWebAppEventStream(\n body: ReadableStream<Uint8Array>,\n onEvent: AgentWebAppStreamEventHandler,\n): Promise<void> {\n const projection = createAgentWebAppStreamProjectionContext({ allowGenUI: true, allowInterrupts: true });\n const reader = body.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n let completed = false;\n let reachedEof = false;\n try {\n while (!completed) {\n let result: ReadableStreamReadResult<Uint8Array>;\n try { result = await reader.read(); }\n catch (error) {\n if (isAbortError(error)) return;\n throw streamFailed();\n }\n if (result.done) reachedEof = true;\n try { buffer += decoder.decode(result.value, { stream: !result.done }); }\n catch { throw streamFailed(); }\n const blocks = buffer.split(/\\r?\\n\\r?\\n/);\n buffer = result.done ? \"\" : blocks.pop() ?? \"\";\n for (const block of blocks) {\n const data = block.split(/\\r?\\n/)\n .filter((line) => line === \"data\" || line.startsWith(\"data:\"))\n .map((line) => line === \"data\" ? \"\" : line.slice(5).replace(/^ /, \"\"));\n if (data.length === 0) continue;\n for (const event of parseEvents(data.join(\"\\n\"), projection)) {\n await onEvent(event);\n completed = event.type === \"stream.completed\";\n if (completed) break;\n }\n if (completed) break;\n }\n if (result.done) break;\n }\n if (!completed) throw streamFailed();\n } finally {\n if (!reachedEof) {\n try { await reader.cancel(); } catch { /* Best-effort cleanup must not replace the primary outcome. */ }\n }\n reader.releaseLock();\n }\n}\n","import { AgentWebAppRuntimeClientError } from \"./error\";\nimport { parseAgentWebAppEventStream } from \"./sse-parser\";\nimport { parseAgentWebAppGenUIBlock } from \"@axiom-lattice/protocols\";\nimport type { SdkTFunction } from \"../../i18n\";\nimport type {\n AgentWebAppAttachment,\n AgentWebAppBootstrap,\n AgentWebAppCreateThreadInput,\n AgentWebAppError,\n AgentWebAppMessageList,\n AgentWebAppProjectSelection,\n AgentWebAppResumeInterruptInput,\n AgentWebAppRuntimeClientOptions,\n AgentWebAppRuntimeSelection,\n AgentWebAppRuntimeThread,\n AgentWebAppStreamEventHandler,\n AgentWebAppStreamMessageInput,\n AgentWebAppThreadList,\n AgentWebAppUpdateThreadInput,\n} from \"./types\";\n\ninterface ErrorEnvelope { success: false; error: AgentWebAppError }\n\nconst errorCodes = new Set<AgentWebAppError[\"code\"]>([\n \"WEB_APP_NOT_FOUND\", \"WEB_APP_DISABLED\", \"USER_ID_REQUIRED\", \"INVALID_USER_ID\",\n \"PROJECT_NOT_ALLOWED\", \"PROJECT_SELECTOR_DISABLED\", \"MODEL_NOT_ALLOWED\", \"FEATURE_DISABLED\",\n \"THREAD_NOT_FOUND\", \"STREAM_CONFLICT\", \"STREAM_FAILED\", \"INVALID_REQUEST\", \"INTERNAL_ERROR\",\n]);\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction exact(value: Record<string, unknown>, required: string[], optional: string[] = []): boolean {\n const keys = Object.keys(value);\n return required.every((key) => key in value) && keys.every((key) => required.includes(key) || optional.includes(key));\n}\n\nfunction string(value: unknown): value is string { return typeof value === \"string\"; }\n\nfunction parseThread(value: unknown): AgentWebAppRuntimeThread | undefined {\n if (!record(value) || !exact(value, [\"id\", \"projectId\", \"createdAt\", \"updatedAt\"], [\"label\"])) return undefined;\n if (!string(value.id) || !string(value.projectId) || (value.label !== undefined && !string(value.label))) return undefined;\n if (!string(value.createdAt) || !string(value.updatedAt)) return undefined;\n const createdAt = new Date(value.createdAt); const updatedAt = new Date(value.updatedAt);\n if (Number.isNaN(createdAt.getTime()) || Number.isNaN(updatedAt.getTime())) return undefined;\n return { id: value.id, projectId: value.projectId, ...(value.label === undefined ? {} : { label: value.label }), createdAt, updatedAt };\n}\n\nfunction isErrorEnvelope(value: unknown): value is ErrorEnvelope {\n if (!record(value) || value.success !== false || !record(value.error)) return false;\n const error = value.error;\n return exact(value, [\"success\", \"error\"])\n && exact(error, [\"code\", \"message\", \"retryable\"])\n && typeof error.code === \"string\" && errorCodes.has(error.code as AgentWebAppError[\"code\"])\n && typeof error.message === \"string\" && typeof error.retryable === \"boolean\";\n}\n\nfunction validFeatures(value: unknown): boolean {\n if (!record(value)) return false;\n const keys = [\"projectSelector\", \"modelSelector\", \"threadManagement\", \"attachments\", \"hitl\", \"genUI\"];\n return exact(value, keys, [\"files\"]) && keys.every((key) => typeof value[key] === \"boolean\")\n && (value.files === undefined || typeof value.files === \"boolean\");\n}\n\nfunction validQuickPrompts(value: unknown): boolean {\n return Array.isArray(value)\n && value.length <= 6\n && value.every((prompt) => record(prompt)\n && exact(prompt, [\"label\", \"text\"])\n && string(prompt.label) && prompt.label.length >= 1 && prompt.label.length <= 40\n && string(prompt.text) && prompt.text.length >= 1 && prompt.text.length <= 500);\n}\n\nfunction validAppearance(value: unknown): boolean {\n return record(value) && exact(value, [], [\"title\", \"welcomeMessage\", \"primaryColor\", \"quickPrompts\"])\n && (value.title === undefined || string(value.title))\n && (value.welcomeMessage === undefined || string(value.welcomeMessage))\n && (value.primaryColor === undefined || string(value.primaryColor))\n && (value.quickPrompts === undefined || validQuickPrompts(value.quickPrompts));\n}\n\nfunction parseBootstrap(value: unknown): AgentWebAppBootstrap | undefined {\n if (!record(value) || !exact(value, [\"webApp\", \"projects\", \"models\"], [\"thread\"]) || !record(value.webApp)) return undefined;\n const webApp = value.webApp;\n if (!exact(webApp, [\"id\", \"name\", \"assistant\", \"defaultProjectId\", \"features\", \"appearance\", \"identityAssurance\"], [\"description\", \"defaultModelKey\"])\n || !string(webApp.id) || !string(webApp.name) || !string(webApp.defaultProjectId)\n || (webApp.description !== undefined && !string(webApp.description)) || (webApp.defaultModelKey !== undefined && !string(webApp.defaultModelKey))\n || webApp.identityAssurance !== \"unverified\" || !record(webApp.assistant)\n || !exact(webApp.assistant, [\"id\", \"name\"], [\"description\"]) || !string(webApp.assistant.id) || !string(webApp.assistant.name)\n || (webApp.assistant.description !== undefined && !string(webApp.assistant.description))\n || !validFeatures(webApp.features) || !validAppearance(webApp.appearance)\n || !Array.isArray(value.projects) || !value.projects.every((item) => record(item) && exact(item, [\"id\", \"name\"]) && string(item.id) && string(item.name))\n || !Array.isArray(value.models) || !value.models.every((item) => record(item) && exact(item, [\"key\", \"label\"]) && string(item.key) && string(item.label))) return undefined;\n const thread = value.thread === undefined ? undefined : parseThread(value.thread);\n if (value.thread !== undefined && !thread) return undefined;\n return { ...value, ...(thread ? { thread } : {}) } as unknown as AgentWebAppBootstrap;\n}\n\nfunction parseThreadList(value: unknown): AgentWebAppThreadList | undefined {\n if (!record(value) || !exact(value, [\"records\", \"total\"]) || !Array.isArray(value.records) || typeof value.total !== \"number\") return undefined;\n const records = value.records.map(parseThread);\n return records.every((item): item is AgentWebAppRuntimeThread => item !== undefined) ? { records, total: value.total } : undefined;\n}\n\nfunction validMessage(value: unknown): boolean {\n return record(value) && string(value.id) && (value.role === \"human\" || value.role === \"ai\")\n && (value.content === undefined || string(value.content)\n || (Array.isArray(value.content) && value.content.every((block) => parseAgentWebAppGenUIBlock(block) !== undefined)));\n}\n\nfunction parseMessages(value: unknown): AgentWebAppMessageList | undefined {\n return record(value) && exact(value, [\"messages\"]) && Array.isArray(value.messages) && value.messages.every(validMessage)\n ? value as unknown as AgentWebAppMessageList : undefined;\n}\n\nfunction parseAttachment(value: unknown): AgentWebAppAttachment | undefined {\n return record(value) && exact(value, [\"ref\", \"name\", \"mimeType\", \"size\"])\n && string(value.ref) && string(value.name) && string(value.mimeType) && typeof value.size === \"number\"\n ? value as unknown as AgentWebAppAttachment : undefined;\n}\n\nfunction objectWith<T>(keys: string[], checks: (value: Record<string, unknown>) => boolean): (value: unknown) => T | undefined {\n return (value) => record(value) && exact(value, keys) && checks(value) ? value as unknown as T : undefined;\n}\n\nexport class AgentWebAppRuntimeClient {\n private readonly baseUrl: string;\n private readonly fetchImplementation: typeof globalThis.fetch;\n private readonly translate?: SdkTFunction;\n\n constructor(private readonly options: AgentWebAppRuntimeClientOptions) {\n this.baseUrl = `${options.gatewayUrl.replace(/\\/+$/, \"\")}/api/web-apps/${encodeURIComponent(options.webAppId)}/runtime`;\n this.fetchImplementation = options.fetch ?? globalThis.fetch.bind(globalThis);\n this.translate = options.translate;\n }\n\n async bootstrap(selection: AgentWebAppRuntimeSelection = {}, signal?: AbortSignal): Promise<AgentWebAppBootstrap> {\n return this.request(\"bootstrap\", parseBootstrap, { query: selection, signal });\n }\n\n async listThreads(selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<AgentWebAppThreadList> {\n return this.request(\"threads\", parseThreadList, { query: selection, signal });\n }\n\n async createThread(input: AgentWebAppCreateThreadInput = {}, signal?: AbortSignal): Promise<AgentWebAppRuntimeThread> {\n return this.request(\"threads\", parseThread, { method: \"POST\", body: input, signal });\n }\n\n async updateThread(threadId: string, input: AgentWebAppUpdateThreadInput, signal?: AbortSignal): Promise<AgentWebAppRuntimeThread> {\n return this.request(`threads/${encodeURIComponent(threadId)}`, parseThread, { method: \"PATCH\", body: input, signal });\n }\n\n async deleteThread(threadId: string, selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<void> {\n await this.request(`threads/${encodeURIComponent(threadId)}`, objectWith<{ id: string }>([\"id\"], (value) => string(value.id)), { method: \"DELETE\", query: selection, signal });\n }\n\n async getMessages(threadId: string, selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<AgentWebAppMessageList> {\n return this.request(`threads/${encodeURIComponent(threadId)}/messages`, parseMessages, { query: selection, signal });\n }\n\n async streamMessage(threadId: string, input: AgentWebAppStreamMessageInput, onEvent: AgentWebAppStreamEventHandler, signal?: AbortSignal): Promise<void> {\n return this.streamRequest(`threads/${encodeURIComponent(threadId)}/messages/stream`, input, onEvent, signal);\n }\n\n async resumeInterrupt(threadId: string, interruptId: string, input: AgentWebAppResumeInterruptInput, onEvent: AgentWebAppStreamEventHandler, signal?: AbortSignal): Promise<void> {\n return this.streamRequest(`threads/${encodeURIComponent(threadId)}/interrupts/${encodeURIComponent(interruptId)}/resume`, input, onEvent, signal);\n }\n\n private async streamRequest(path: string, body: object, onEvent: AgentWebAppStreamEventHandler, signal?: AbortSignal): Promise<void> {\n let response: Response;\n try {\n response = await this.fetchRequest(path, { method: \"POST\", body, signal });\n } catch (error) {\n if (isAbortError(error)) throw error;\n if (error instanceof AgentWebAppRuntimeClientError) throw error;\n throw new AgentWebAppRuntimeClientError(\"STREAM_FAILED\", this.translate?.(\"integration.error.streamFailed\") ?? \"Stream failed\", true);\n }\n if (!response.ok) await this.throwResponseError(response);\n if (!response.body || !response.headers.get(\"content-type\")?.toLowerCase().includes(\"text/event-stream\")) {\n if (response.body) try { await response.body.cancel(); } catch { /* Best effort. */ }\n throw new AgentWebAppRuntimeClientError(\"STREAM_FAILED\", this.translate?.(\"integration.error.streamFailed\") ?? \"Stream failed\", true, response.status);\n }\n await parseAgentWebAppEventStream(response.body, onEvent);\n }\n\n async abort(threadId: string, selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<void> {\n await this.request(`threads/${encodeURIComponent(threadId)}/abort`, objectWith<{ aborted: boolean }>([\"aborted\"], (value) => typeof value.aborted === \"boolean\"), { method: \"POST\", query: selection, signal });\n }\n\n async uploadAttachment(threadId: string, file: Blob, selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<AgentWebAppAttachment> {\n const form = new FormData();\n const filename = typeof File !== \"undefined\" && file instanceof File ? file.name : \"attachment\";\n form.append(\"file\", file, filename);\n return this.request(`threads/${encodeURIComponent(threadId)}/attachments`, parseAttachment, { method: \"POST\", query: selection, body: form, signal });\n }\n\n private async request<T>(path: string, parse: (value: unknown) => T | undefined, init: RequestOptions = {}): Promise<T> {\n let response: Response;\n try { response = await this.fetchRequest(path, init); }\n catch (error) {\n if (isAbortError(error)) throw error;\n if (error instanceof AgentWebAppRuntimeClientError) throw error;\n throw new AgentWebAppRuntimeClientError(\"INTERNAL_ERROR\", this.translate?.(\"integration.error.requestFailed\") ?? \"Request failed\", true);\n }\n let value: unknown;\n try { value = await response.json(); } catch { throw this.internalError(response.status); }\n if (isErrorEnvelope(value)) {\n throw new AgentWebAppRuntimeClientError(value.error.code, value.error.message, value.error.retryable, response.status);\n }\n if (!response.ok || !record(value) || !exact(value, [\"success\", \"data\"]) || value.success !== true) throw this.internalError(response.status);\n const data = parse(value.data);\n if (data === undefined) throw this.internalError(response.status);\n return data;\n }\n\n private async fetchRequest(path: string, options: RequestOptions): Promise<Response> {\n const identity = await this.options.identityProvider.getIdentity(options.signal);\n const url = new URL(`${this.baseUrl}/${path}`);\n for (const [key, value] of Object.entries(options.query ?? {})) if (value !== undefined) url.searchParams.set(key, value);\n const headers = new Headers();\n if (identity.bearerToken !== undefined) {\n headers.set(\"Authorization\", `Bearer ${identity.bearerToken}`);\n } else {\n headers.set(\"X-Axiom-External-User-Id\", identity.externalUserId ?? \"\");\n }\n let body: BodyInit | undefined;\n if (options.body instanceof FormData) body = options.body;\n else if (options.body !== undefined) { headers.set(\"Content-Type\", \"application/json\"); body = JSON.stringify(options.body); }\n return this.fetchImplementation(url, { method: options.method ?? \"GET\", headers, body, signal: options.signal, credentials: \"omit\" });\n }\n\n private async throwResponseError(response: Response): Promise<never> {\n let value: unknown;\n try { value = await response.json(); } catch { throw this.internalError(response.status); }\n if (isErrorEnvelope(value)) throw new AgentWebAppRuntimeClientError(value.error.code, value.error.message, value.error.retryable, response.status);\n throw this.internalError(response.status);\n }\n\n private internalError(status?: number): AgentWebAppRuntimeClientError {\n return new AgentWebAppRuntimeClientError(\"INTERNAL_ERROR\", this.translate?.(\"integration.error.invalidServerResponse\") ?? \"Invalid server response\", false, status);\n }\n}\n\nfunction isAbortError(error: unknown): boolean {\n return typeof error === \"object\" && error !== null && \"name\" in error && error.name === \"AbortError\";\n}\n\ninterface RequestOptions {\n method?: \"GET\" | \"POST\" | \"PATCH\" | \"DELETE\";\n query?: { projectId?: string; modelKey?: string };\n body?: object | FormData;\n signal?: AbortSignal;\n}\n","const WRAPPER_PREFIXES: RegExp[] = [\n /^Error in middleware\\s+(?:\"[^\"]*\"|'[^']*'|[^:]+)\\s*:\\s*/,\n /^Caused by:\\s*/i,\n /^Error:\\s*/i,\n];\n\nfunction isMessageCarrier(value: unknown): value is { message: string } {\n return (\n typeof value === \"object\" &&\n value !== null &&\n typeof (value as { message?: unknown }).message === \"string\"\n );\n}\n\n/**\n * Unwrap a nested error chain to its root cause.\n *\n * LangChain's `wrapToolCall` prepends `Error in middleware \"<name>\": ` to\n * `error.message` at every middleware layer, so an upstream provider failure\n * arrives as a long chain such as\n * `Error in middleware \"A\": Error in middleware \"B\": 402 Insufficient Balance`.\n * For display we want only the innermost message.\n */\nexport function rootErrorMessage(message: string): string {\n if (typeof message !== \"string\" || message.length === 0) {\n return message;\n }\n\n const trimmed = message.trim();\n let current = trimmed;\n let stripped = true;\n while (stripped) {\n stripped = false;\n for (const prefix of WRAPPER_PREFIXES) {\n const next = current.replace(prefix, \"\");\n if (next !== current) {\n current = next.trim();\n stripped = true;\n break;\n }\n }\n }\n\n return current.length > 0 ? current : trimmed;\n}\n\n/**\n * Normalize any thrown value into a single display-ready root-cause string.\n */\nexport function formatErrorMessage(error: unknown, fallback = \"\"): string {\n let raw: string;\n if (error instanceof Error) {\n raw = error.message;\n } else if (typeof error === \"string\") {\n raw = error;\n } else if (isMessageCarrier(error)) {\n raw = error.message;\n } else if (error === null || error === undefined) {\n raw = \"\";\n } else {\n raw = String(error);\n }\n\n return rootErrorMessage(raw) || fallback;\n}\n","import { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport type { TFunction as I18nextT } from \"i18next\";\nimport type { TParams, LatticeLocale } from \"@axiom-lattice/i18n\";\nimport type { TranslationKey } from \"./translationKeys\";\nimport { fromI18nextLocale, namespaceOf } from \"./instance\";\n\n/**\n * The translator the SDK hands out: same call shape as before, but the key is\n * now constrained to the keys that actually exist.\n *\n * That constraint is the whole point of M5 — it turns `t(\"auth.login.titel\")`\n * into a compile error instead of a raw key rendered to the user, which is the\n * gap the hand-rolled implementation left open (it checked the *dictionary* for\n * missing translations, never the *call site* for typos).\n */\nexport interface SdkTFunction {\n (key: TranslationKey, params?: TParams): string;\n /** Active locale. Use for `Intl.*` / `toLocaleDateString`. */\n locale: LatticeLocale;\n}\n\n/**\n * Wrap i18next's `t` in the shape the SDK's components already use.\n *\n * The public contract is unchanged — `(key, params?) => string`, plus a\n * `locale` property for the browser-native formatters — which is what keeps the\n * ~2400 call sites and every component's `import { useT } from \".../i18n\"`\n * untouched through the migration.\n *\n * The one thing this adds over i18next's own `t` is deriving the namespace from\n * the key's first segment, so `t(\"auth.login.title\")` keeps working as written\n * while i18next still loads only the `auth` namespace. See `./instance.ts`.\n */\nfunction wrap(i18nextT: I18nextT, language: string | undefined): SdkTFunction {\n const t = ((key: TranslationKey, params?: TParams): string =>\n // `ns` first so a caller's interpolation params cannot shadow it.\n i18nextT(key, { ns: namespaceOf(key), ...(params as Record<string, unknown>) })) as SdkTFunction;\n\n t.locale = fromI18nextLocale(language ?? \"en\");\n return t;\n}\n\n/**\n * Translate copy in the active locale.\n *\n * Safe with no provider above: react-i18next falls back to its default instance\n * and, failing that, renders the key rather than throwing. The SDK's test suite\n * relies on that — it renders components bare — and `src/__tests__/setup.ts`\n * initialises that default instance in English so assertions still see real copy\n * rather than keys.\n */\nexport function useT(): SdkTFunction {\n const { t, i18n } = useTranslation();\n const language = i18n?.language;\n return useMemo(() => wrap(t, language), [t, language]);\n}\n","/**\n * The SDK's i18next instance.\n *\n * Auto-namespacing is the load-bearing idea here. Components write fully\n * qualified keys — `t(\"auth.login.title\")` — and the first segment (`auth`) is\n * also the namespace the dictionary is filed under. So `useT()` derives the\n * namespace from the key and hands it to i18next, which lets the ~2400\n * existing call sites stay exactly as they are while i18next still loads\n * dictionaries one namespace at a time.\n *\n * The alternative — merging all 18 namespaces into one — would also leave call\n * sites untouched, but it throws away the namespace boundary that i18next's\n * tooling (`i18next-cli extract/status/types`) is built around, and it makes\n * every chunk carry every module's copy.\n *\n * The instance is created with `createInstance()`, never the default export:\n * a shared package must not read or clobber its host's locale. For the same\n * reason `initReactI18next` is **not** used here — its `init()` writes the\n * instance into react-i18next's module-level singleton, which would swap the\n * host's instance out from under it. `<I18nextProvider>` is the supported way\n * to hand an instance down.\n */\n\nimport { createInstance } from \"i18next\";\nimport type { i18n as I18nInstance, ResourceKey } from \"i18next\";\nimport type { LatticeLocale } from \"@axiom-lattice/i18n\";\n\n/** Shipped locales, in the SDK's tag vocabulary. */\nexport const SUPPORTED_LOCALES: LatticeLocale[] = [\"en-US\", \"zh-CN\"];\n\n/** i18next speaks short tags; the SDK speaks BCP-47. */\nexport function toI18nextLocale(locale: LatticeLocale): string {\n return locale === \"zh-CN\" ? \"zh\" : \"en\";\n}\n\nexport function fromI18nextLocale(language: string): LatticeLocale {\n return language.startsWith(\"zh\") ? \"zh-CN\" : \"en-US\";\n}\n\n/**\n * Namespaces, one per dictionary module.\n *\n * Kept as an explicit list rather than discovered from the filesystem: it is\n * what lets the dynamic import below stay a *literal* pattern, which is what\n * Vite and Rollup require to emit a chunk per namespace.\n */\nexport const NAMESPACES = [\n /**\n * The shared verbs — confirm/cancel/save/delete/… — that used to live in\n * `@axiom-lattice/i18n`'s own dictionary. They keep the `common.` prefix and\n * become a namespace of their own so `namespaceOf` routes them somewhere they\n * actually exist; without this they fell through to the first namespace and\n * rendered as raw keys.\n */\n \"common\",\n \"a2a\", \"auth\", \"capability\", \"chat\", \"chatConfig\", \"chatMenu\", \"chatWorkspace\",\n \"cospace\", \"entities\", \"eval\", \"genui\", \"governance\", \"integration\", \"mcpapp\",\n \"migration\", \"projectRoom\", \"tasks\", \"training\",\n] as const;\n\n/**\n * Which namespace a key belongs to.\n *\n * `\"auth.login.title\"` → `\"auth\"`. A key with no dotted prefix falls back to\n * the first namespace, which keeps `i18next.t` from being handed `undefined`\n * and keeps unknown keys resolving (to themselves) instead of throwing.\n */\nexport function namespaceOf(key: string): string {\n const [head] = key.split(\".\");\n return (NAMESPACES as readonly string[]).includes(head) ? head : NAMESPACES[0];\n}\n\n/**\n * Loads the dictionary for one namespace in one language.\n *\n * A plain object satisfying i18next's backend contract — no\n * `i18next-resources-to-backend` dependency for eight lines of code. The\n * `import()` argument is a literal pattern with a literal extension, so the\n * bundler emits one chunk per namespace+language and loads them on demand.\n */\nconst namespaceBackend = {\n type: \"backend\" as const,\n read(\n language: string,\n namespace: string,\n callback: (error: unknown, resources: ResourceKey | null) => void\n ): void {\n void import(`./locales/${namespace}/${language}.json`)\n .then((mod) => {\n /**\n * Each file is `{ messages: { \"a.b.c\": \"…\" } }`, not the flat object\n * directly. The wrapper exists for the bundler: Vite's JSON plugin emits\n * a *named export* per top-level key, and our keys contain dots, so\n * `export { \"a2a.audit.action\": … }` is not valid JavaScript and the\n * build fails. One level of nesting makes the only top-level key a\n * legal identifier. Keys inside stay flat, so call sites are unaffected.\n */\n const body = (mod.default ?? mod) as { messages?: ResourceKey };\n callback(null, (body.messages ?? body) as ResourceKey);\n })\n .catch((error: unknown) => callback(error, null));\n },\n};\n\n/**\n * Exported for the jest setup, which registers this same loader on\n * react-i18next's default instance. Sharing it keeps the test environment from\n * drifting away from what the app does at runtime.\n */\nexport { namespaceBackend };\n\n/**\n * Build an instance for `locale`.\n *\n * `init()` is awaited so `changeLanguage` resolves only once the namespaces the\n * caller asked for are in hand — callers use that to avoid painting keys.\n */\nexport async function createSdkI18n(locale: LatticeLocale): Promise<I18nInstance> {\n const instance = createInstance();\n\n await instance.use(namespaceBackend).init({\n lng: toI18nextLocale(locale),\n fallbackLng: \"en\",\n ns: [...NAMESPACES],\n defaultNS: NAMESPACES[0],\n /**\n * Keys are stored flat and fully qualified (\"auth.login.title\"), so there\n * is no separator for i18next to split on — splitting would look for\n * `auth` → `login` → `title` as nested objects, which is not the shape.\n */\n keySeparator: false,\n nsSeparator: false,\n interpolation: { escapeValue: false },\n // The backend is the only source; an empty `resources` would make i18next\n // treat bundled resources as authoritative and never call it.\n returnNull: false,\n });\n\n return instance;\n}\n","import { createContext, useContext } from \"react\";\nimport type { LatticeLocale } from \"@axiom-lattice/i18n\";\nimport { SUPPORTED_LOCALES } from \"./instance\";\n\nexport interface LocaleBridgeValue {\n /** Active locale. */\n locale: LatticeLocale;\n /** Locales this build can render. */\n setLocale: (locale: LatticeLocale) => void;\n supportedLocales: LatticeLocale[];\n}\n\n/**\n * Bridges the locale *selection* to the component tree.\n *\n * i18next owns the translations and hands them down through `I18nextProvider`;\n * this context carries only the bits i18next has no opinion about — which\n * locales the build ships, and how a switch is initiated.\n *\n * It exists because `useLocale()` is part of the SDK's public surface (the\n * language switcher reads it) and its shape predates i18next. Keeping the shape\n * is what lets that component survive the migration untouched.\n *\n * The no-provider value is deliberately inert rather than throwing: rendered\n * with no provider, `useLocale()` reports `en-US` and a no-op setter, matching\n * how `useT()` degrades.\n */\nconst INERT_LOCALE_BRIDGE: LocaleBridgeValue = {\n locale: \"en-US\",\n setLocale: () => undefined,\n supportedLocales: SUPPORTED_LOCALES,\n};\n\n/**\n * `null` is the sentinel for \"no provider above\".\n *\n * The old default was the inert object itself, which made \"nobody has provided\n * yet\" indistinguishable from \"someone provided the inert default\" — a\n * distinction a provider that defaults on the tree's behalf needs (see\n * `AxiomLatticeProvider`, which supplies a real provider only when it is the\n * outermost). `useLocale()` below hides the sentinel, so the public contract is\n * unchanged.\n */\nexport const LocaleBridgeContext = createContext<LocaleBridgeValue | null>(null);\n\n/**\n * Read and switch the active locale.\n *\n * @example\n * const { locale, setLocale, supportedLocales } = useLocale();\n */\nexport function useLocale(): LocaleBridgeValue {\n return useContext(LocaleBridgeContext) ?? INERT_LOCALE_BRIDGE;\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { createInstance } from \"i18next\";\nimport type { i18n as I18nInstance } from \"i18next\";\nimport { I18nextProvider } from \"react-i18next\";\nimport type { Dictionary, LatticeLocale } from \"@axiom-lattice/i18n\";\nimport { NAMESPACES, SUPPORTED_LOCALES, toI18nextLocale, namespaceBackend } from \"./instance\";\nimport { LocaleBridgeContext } from \"./useLocale\";\n\nexport interface LatticeLocaleProviderProps {\n /** Active locale. Defaults to `\"en-US\"` — the source language. */\n locale?: LatticeLocale;\n /**\n * Host-supplied copy layered **over** the shipped dictionary, per locale.\n *\n * Kept from the hand-rolled provider so hosts do not change: it is applied as\n * an i18next resource bundle for that namespace-free `translation` scope.\n */\n overrides?: Partial<Record<LatticeLocale, Dictionary>>;\n /** Forwarded to `onLocaleChange` hosts that persist the choice themselves. */\n storageKey?: string;\n /** Called when the user picks a locale, before the host re-renders. */\n onLocaleChange?: (locale: LatticeLocale) => void;\n children: React.ReactNode;\n}\n\n/**\n * Supplies the SDK's i18next instance to every `useT()` below it.\n *\n * The props are the ones the hand-rolled provider had, so hosts and\n * `AgentChatApp` keep working unchanged; only the implementation moved.\n *\n * The instance is private to this provider (`createInstance`, never the default\n * export) so the SDK neither reads nor replaces its host's locale. Namespaces\n * are fetched before `children` render, which is what stops the first paint\n * from showing raw keys.\n */\nexport function LatticeLocaleProvider({\n locale = \"en-US\",\n overrides,\n storageKey,\n onLocaleChange,\n children,\n}: LatticeLocaleProviderProps): React.ReactElement | null {\n const [ready, setReady] = useState(false);\n const instance = useMemo<I18nInstance>(() => createInstance(), []);\n\n useEffect(() => {\n let cancelled = false;\n setReady(false);\n\n void instance\n .use(namespaceBackend)\n .init({\n lng: toI18nextLocale(locale),\n fallbackLng: \"en\",\n ns: [...NAMESPACES],\n defaultNS: NAMESPACES[0],\n // Dictionaries are stored flat and fully qualified, so there is no\n // separator to split on. See ./instance.ts.\n keySeparator: false,\n nsSeparator: false,\n interpolation: { escapeValue: false },\n resources: overrides\n ? {\n [toI18nextLocale(locale)]: {\n [NAMESPACES[0]]: (overrides[locale] ?? {}) as Record<string, string>,\n },\n }\n : undefined,\n })\n .then(() => instance.loadNamespaces([...NAMESPACES]))\n .then(() => {\n if (!cancelled) setReady(true);\n })\n .catch(() => {\n // A namespace that fails to load must not blank the app; render with\n // whatever arrived and let missing keys fall back to their key text.\n if (!cancelled) setReady(true);\n });\n\n return () => {\n cancelled = true;\n };\n }, [instance, locale, overrides]);\n\n /**\n * Switching is delegated, not handled here.\n *\n * The provider cannot swap locale in place — the dictionaries for the new\n * locale have not been fetched — so the host decides what happens: it stores\n * the choice and reloads, and the reload re-enters this component with the\n * new `locale`. That mirrors the hand-rolled provider, whose `setLocale` also\n * only persisted and notified.\n */\n const bridge = useMemo(\n () => ({\n locale,\n supportedLocales: SUPPORTED_LOCALES,\n setLocale: (next: LatticeLocale) => {\n if (!SUPPORTED_LOCALES.includes(next)) return;\n if (storageKey && typeof window !== \"undefined\") {\n try {\n window.localStorage.setItem(storageKey, next);\n } catch {\n // Private mode / disabled storage: the switch still notifies the\n // host, it just will not survive a reload.\n }\n }\n onLocaleChange?.(next);\n },\n }),\n [locale, storageKey, onLocaleChange]\n );\n\n if (!ready) return null;\n\n return (\n <LocaleBridgeContext.Provider value={bridge}>\n <I18nextProvider i18n={instance}>{children}</I18nextProvider>\n </LocaleBridgeContext.Provider>\n );\n}\n","import type {\n AgentWebAppAttachment,\n AgentWebAppBootstrap,\n AgentWebAppInterrupt,\n AgentWebAppGenUIBlock,\n AgentWebAppRuntimeMessage,\n AgentWebAppRuntimeThread,\n} from \"../types\";\nimport type { AgentWebAppRuntimeClientError } from \"../error\";\n\nexport interface AgentWebAppToolState {\n id: string;\n name?: string;\n status: \"running\" | \"completed\";\n}\n\nexport interface AgentWebAppFailedSend {\n text: string;\n attachmentIds: string[];\n}\n\nexport interface AgentWebAppState {\n bootstrap: AgentWebAppBootstrap | null;\n projectId: string | null;\n modelKey: string | null;\n threads: AgentWebAppRuntimeThread[];\n activeThread: AgentWebAppRuntimeThread | null;\n messages: AgentWebAppRuntimeMessage[];\n stream: { isStreaming: boolean; assistantMessageId: string | null; tools: AgentWebAppToolState[] };\n lastFailedSend: AgentWebAppFailedSend | null;\n attachments: AgentWebAppAttachment[];\n interrupts: AgentWebAppInterrupt[];\n errors: { current: AgentWebAppRuntimeClientError | null };\n loading: { bootstrap: boolean; threads: boolean; messages: boolean; attachments: boolean; interrupts: boolean };\n}\n\nexport const initialAgentWebAppState: AgentWebAppState = {\n bootstrap: null,\n projectId: null,\n modelKey: null,\n threads: [],\n activeThread: null,\n messages: [],\n stream: { isStreaming: false, assistantMessageId: null, tools: [] },\n lastFailedSend: null,\n attachments: [],\n interrupts: [],\n errors: { current: null },\n loading: { bootstrap: true, threads: false, messages: false, attachments: false, interrupts: false },\n};\n\nexport type AgentWebAppAction =\n | { type: \"BOOTSTRAP_LOADING\" }\n | { type: \"BOOTSTRAP_READY\"; bootstrap: AgentWebAppBootstrap; projectId: string; modelKey: string | null }\n | { type: \"BOOTSTRAP_SETTLED\" }\n | { type: \"PROJECT_SELECTED\"; projectId: string }\n | { type: \"MODEL_SELECTED\"; modelKey: string }\n | { type: \"THREADS_LOADING\"; loading: boolean }\n | { type: \"THREADS_SET\"; threads: AgentWebAppRuntimeThread[] }\n | { type: \"THREAD_UPSERT\"; thread: AgentWebAppRuntimeThread }\n | { type: \"THREAD_DELETED\"; threadId: string }\n | { type: \"ACTIVE_THREAD_SET\"; thread: AgentWebAppRuntimeThread | null }\n | { type: \"ACTIVE_THREAD_UPDATED\"; thread: AgentWebAppRuntimeThread }\n | { type: \"MESSAGES_LOADING\"; loading: boolean }\n | { type: \"MESSAGES_SET\"; messages: AgentWebAppRuntimeMessage[] }\n | { type: \"MESSAGE_APPEND\"; message: AgentWebAppRuntimeMessage }\n | { type: \"MESSAGES_REMOVE\"; ids: string[] }\n | { type: \"ASSISTANT_DELTA\"; id: string; text: string }\n | { type: \"ASSISTANT_GENUI\"; id: string; block: AgentWebAppGenUIBlock }\n | { type: \"ASSISTANT_COMPLETED\"; temporaryId: string; messageId: string }\n | { type: \"STREAM_SET\"; streaming: boolean; assistantMessageId?: string | null }\n | { type: \"TOOL_STARTED\"; id: string; name: string }\n | { type: \"TOOL_COMPLETED\"; id: string }\n | { type: \"ATTACHMENTS_LOADING\"; loading: boolean }\n | { type: \"ATTACHMENT_ADD\"; attachment: AgentWebAppAttachment }\n | { type: \"ATTACHMENT_REMOVE\"; ref: string }\n | { type: \"ATTACHMENTS_CLEAR\" }\n | { type: \"ATTACHMENTS_REMOVE\"; refs: string[] }\n | { type: \"INTERRUPT_ADD\"; interrupt: AgentWebAppInterrupt }\n | { type: \"INTERRUPT_REMOVE\"; interruptId: string }\n | { type: \"INTERRUPTS_LOADING\"; loading: boolean }\n | { type: \"ERROR_SET\"; error: AgentWebAppRuntimeClientError | null }\n | { type: \"FAILED_SEND_SET\"; failedSend: AgentWebAppFailedSend | null };\n\nexport function agentWebAppReducer(state: AgentWebAppState, action: AgentWebAppAction): AgentWebAppState {\n switch (action.type) {\n case \"BOOTSTRAP_LOADING\": return { ...initialAgentWebAppState, loading: { ...initialAgentWebAppState.loading, bootstrap: true } };\n case \"BOOTSTRAP_READY\": return { ...state, bootstrap: action.bootstrap, projectId: action.projectId, modelKey: action.modelKey, loading: { ...state.loading, bootstrap: false } };\n case \"BOOTSTRAP_SETTLED\": return { ...state, loading: { ...state.loading, bootstrap: false } };\n case \"PROJECT_SELECTED\": return { ...state, projectId: action.projectId, threads: [], activeThread: null, messages: [], attachments: [], interrupts: [], stream: initialAgentWebAppState.stream, lastFailedSend: null, loading: { ...state.loading, messages: false, attachments: false, interrupts: false } };\n case \"MODEL_SELECTED\": return { ...state, modelKey: action.modelKey };\n case \"THREADS_LOADING\": return { ...state, loading: { ...state.loading, threads: action.loading } };\n case \"THREADS_SET\": return { ...state, threads: action.threads, loading: { ...state.loading, threads: false } };\n case \"THREAD_UPSERT\": return { ...state, threads: [action.thread, ...state.threads.filter((item) => item.id !== action.thread.id)], activeThread: state.activeThread?.id === action.thread.id ? action.thread : state.activeThread };\n case \"THREAD_DELETED\": return { ...state, threads: state.threads.filter((item) => item.id !== action.threadId), activeThread: state.activeThread?.id === action.threadId ? null : state.activeThread, messages: state.activeThread?.id === action.threadId ? [] : state.messages, lastFailedSend: state.activeThread?.id === action.threadId ? null : state.lastFailedSend };\n case \"ACTIVE_THREAD_SET\": return { ...state, activeThread: action.thread, messages: [], attachments: [], interrupts: [], stream: initialAgentWebAppState.stream, lastFailedSend: null, loading: { ...state.loading, messages: false, attachments: false, interrupts: false } };\n case \"ACTIVE_THREAD_UPDATED\": return { ...state, activeThread: action.thread };\n case \"MESSAGES_LOADING\": return { ...state, loading: { ...state.loading, messages: action.loading } };\n case \"MESSAGES_SET\": return { ...state, messages: action.messages, loading: { ...state.loading, messages: false } };\n case \"MESSAGE_APPEND\": return { ...state, messages: [...state.messages, action.message] };\n case \"MESSAGES_REMOVE\": return { ...state, messages: state.messages.filter((message) => !action.ids.includes(message.id)) };\n case \"ASSISTANT_DELTA\": {\n const index = state.messages.findIndex((message) => message.id === action.id);\n if (index < 0) return { ...state, messages: [...state.messages, { id: action.id, role: \"ai\", content: action.text }] };\n return { ...state, messages: state.messages.map((message, itemIndex) => itemIndex === index ? { ...message, content: `${message.content ?? \"\"}${action.text}` } : message) };\n }\n case \"ASSISTANT_GENUI\": {\n const widgetMessageId = `${action.id}-genui`;\n const index = state.messages.findIndex((message) => message.id === widgetMessageId);\n if (index < 0) return { ...state, messages: [...state.messages, { id: widgetMessageId, role: \"ai\", content: [action.block] }] };\n return { ...state, messages: state.messages.map((message, itemIndex) => itemIndex === index\n ? { ...message, content: [...(Array.isArray(message.content) ? message.content : []), action.block] }\n : message) };\n }\n case \"ASSISTANT_COMPLETED\": return { ...state, messages: state.messages.map((message) => message.id === action.temporaryId\n ? { ...message, id: action.messageId }\n : message.id === `${action.temporaryId}-genui` ? { ...message, id: `${action.messageId}-genui` } : message), stream: { ...state.stream, assistantMessageId: action.messageId } };\n case \"STREAM_SET\": return { ...state, stream: { ...state.stream, isStreaming: action.streaming, assistantMessageId: action.assistantMessageId === undefined ? state.stream.assistantMessageId : action.assistantMessageId, ...(action.streaming ? { tools: [] } : {}) } };\n case \"TOOL_STARTED\": return { ...state, stream: { ...state.stream, tools: [...state.stream.tools.filter((tool) => tool.id !== action.id), { id: action.id, name: action.name, status: \"running\" }] } };\n case \"TOOL_COMPLETED\": return { ...state, stream: { ...state.stream, tools: state.stream.tools.map((tool) => tool.id === action.id ? { ...tool, status: \"completed\" } : tool) } };\n case \"ATTACHMENTS_LOADING\": return { ...state, loading: { ...state.loading, attachments: action.loading } };\n case \"ATTACHMENT_ADD\": return { ...state, attachments: [...state.attachments, action.attachment], loading: { ...state.loading, attachments: false } };\n case \"ATTACHMENT_REMOVE\": return { ...state, attachments: state.attachments.filter((item) => item.ref !== action.ref) };\n case \"ATTACHMENTS_CLEAR\": return { ...state, attachments: [] };\n case \"ATTACHMENTS_REMOVE\": return { ...state, attachments: state.attachments.filter((item) => !action.refs.includes(item.ref)) };\n case \"INTERRUPT_ADD\": return { ...state, interrupts: [...state.interrupts.filter((item) => item.id !== action.interrupt.id), action.interrupt] };\n case \"INTERRUPT_REMOVE\": return { ...state, interrupts: state.interrupts.filter((item) => item.id !== action.interruptId), loading: { ...state.loading, interrupts: false } };\n case \"INTERRUPTS_LOADING\": return { ...state, loading: { ...state.loading, interrupts: action.loading } };\n case \"ERROR_SET\": return { ...state, errors: { current: action.error }, loading: action.error && !state.bootstrap ? { ...state.loading, bootstrap: false } : state.loading };\n case \"FAILED_SEND_SET\": return { ...state, lastFailedSend: action.failedSend };\n }\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useAgentWebApp() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useAgentWebApp must be used within AgentWebAppProvider\");\n return context;\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetAttachments() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetAttachments must be used within AgentWebAppProvider\");\n return {\n attachments: context.attachments,\n isLoading: context.loading.attachments,\n error: context.errors.current,\n uploadAttachment: context.uploadAttachment,\n removeAttachment: context.removeAttachment,\n clearAttachments: context.clearAttachments,\n };\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetChat() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetChat must be used within AgentWebAppProvider\");\n return {\n activeThread: context.activeThread,\n messages: context.messages,\n tools: context.stream.tools,\n isStreaming: context.stream.isStreaming,\n isLoading: context.loading.messages,\n lastFailedSend: context.lastFailedSend,\n error: context.errors.current,\n sendMessage: context.sendMessage,\n retry: context.retryLastMessage,\n abort: context.abort,\n };\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetInterrupts() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetInterrupts must be used within AgentWebAppProvider\");\n return {\n interrupts: context.interrupts,\n isLoading: context.loading.interrupts,\n error: context.errors.current,\n resumeInterrupt: context.resumeInterrupt,\n };\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetProject() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetProject must be used within AgentWebAppProvider\");\n return {\n bootstrap: context.bootstrap,\n projectId: context.projectId,\n modelKey: context.modelKey,\n selectProject: context.selectProject,\n selectModel: context.selectModel,\n isLoading: context.loading.bootstrap || context.loading.threads,\n error: context.errors.current,\n };\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetThreads() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetThreads must be used within AgentWebAppProvider\");\n return {\n threads: context.threads,\n activeThread: context.activeThread,\n isLoading: context.loading.bootstrap || context.loading.threads,\n error: context.errors.current,\n refreshThreads: context.refreshThreads,\n selectThread: context.selectThread,\n createThread: context.createThread,\n renameThread: context.renameThread,\n deleteThread: context.deleteThread,\n };\n}\n","import React, { useRef, useState } from \"react\";\nimport { useWidgetAttachments } from \"../hooks/useWidgetAttachments\";\nimport { useWidgetChat } from \"../hooks/useWidgetChat\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetAttachmentsProps { className?: string; attachLabel?: string; }\n\nexport function WidgetAttachments({ className, attachLabel }: WidgetAttachmentsProps): React.ReactElement | null {\n const t = useT();\n const { bootstrap } = useWidgetProject();\n const { activeThread } = useWidgetChat();\n const { attachments, isLoading, uploadAttachment, removeAttachment } = useWidgetAttachments();\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n if (!bootstrap?.webApp.features.attachments) return null;\n const label = attachLabel ?? t(\"integration.attach.files\");\n const upload = async (event: React.ChangeEvent<HTMLInputElement>): Promise<void> => {\n if (pendingRef.current) return;\n pendingRef.current = true;\n setPending(true);\n setError(null);\n try { for (const file of Array.from(event.target.files ?? [])) await uploadAttachment(file); }\n catch (uploadError) { setError(widgetErrorMessage(uploadError, t)); }\n finally { pendingRef.current = false; setPending(false); if (inputRef.current) inputRef.current.value = \"\"; }\n };\n return <div className={className}>{attachments.length > 0 && <div className=\"axiom-web-app__attachments\">{attachments.map((attachment) => <span className=\"axiom-web-app__attachment\" key={attachment.ref}>{attachment.name}<button type=\"button\" aria-label={t(\"integration.attach.removeNamed\", { name: attachment.name })} onClick={() => removeAttachment(attachment.ref)}>{t(\"integration.attach.remove\")}</button></span>)}</div>}{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}<label className=\"axiom-web-app__attach\"><span>{isLoading || pending ? t(\"integration.attach.uploading\") : label}</span><input ref={inputRef} type=\"file\" multiple aria-label={label} disabled={!activeThread || isLoading || pending} onChange={(event) => void upload(event)} /></label></div>;\n}\n","import { formatErrorMessage } from \"../../../utils/errorMessage\";\nimport type { SdkTFunction } from \"../../../i18n\";\n\nexport function widgetErrorMessage(error: unknown, t: SdkTFunction): string {\n return formatErrorMessage(error, t(\"integration.error.requestFailed\"));\n}\n","import React, { useRef, useState } from \"react\";\nimport { useWidgetChat } from \"../hooks/useWidgetChat\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetComposerProps { className?: string; messageLabel?: string; placeholder?: string; sendLabel?: string; abortLabel?: string; leadingSlot?: React.ReactNode; }\n\nexport function WidgetComposer({ className, messageLabel, placeholder, sendLabel, abortLabel, leadingSlot }: WidgetComposerProps): React.ReactElement {\n const t = useT();\n const { activeThread, isStreaming, sendMessage, abort, retry, lastFailedSend } = useWidgetChat();\n const pendingRef = useRef(false);\n const draftRef = useRef(\"\");\n const [pending, setPending] = useState(false);\n const [text, setText] = useState(\"\");\n const [error, setError] = useState<string | null>(null);\n const run = async (operation: () => Promise<void>): Promise<void> => {\n if (pendingRef.current) return;\n pendingRef.current = true; setPending(true); setError(null);\n try { await operation(); }\n catch (operationError) { setError(widgetErrorMessage(operationError, t)); }\n finally { pendingRef.current = false; setPending(false); }\n };\n const submit = (event: React.FormEvent): void => {\n event.preventDefault();\n const content = text.trim();\n if (!content || isStreaming) return;\n draftRef.current = \"\";\n setText(\"\");\n void (async () => {\n if (pendingRef.current) return;\n pendingRef.current = true; setPending(true); setError(null);\n try { await sendMessage(content); }\n catch (sendError) {\n setError(widgetErrorMessage(sendError, t));\n if (draftRef.current === \"\") { draftRef.current = content; setText(content); }\n } finally { pendingRef.current = false; setPending(false); }\n })();\n };\n return <form className={`axiom-web-app__composer${className ? ` ${className}` : \"\"}`} onSubmit={submit}>{leadingSlot}{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}<label className=\"axiom-web-app__composer-input\"><span className=\"axiom-web-app__sr-only\">{messageLabel ?? t(\"integration.composer.message\")}</span><textarea aria-label={messageLabel ?? t(\"integration.composer.message\")} value={text} placeholder={placeholder ?? t(\"integration.composer.placeholder\")} disabled={!activeThread} onChange={(event) => { draftRef.current = event.target.value; setText(event.target.value); }} /></label><div className=\"axiom-web-app__composer-actions\">{lastFailedSend && <button type=\"button\" onClick={() => void run(retry)} disabled={isStreaming || pending}>{t(\"integration.composer.retryFailed\")}</button>}{isStreaming ? <button type=\"button\" disabled={pending} onClick={() => void run(abort)}>{abortLabel ?? t(\"integration.composer.stop\")}</button> : <button type=\"submit\" disabled={!activeThread || !text.trim() || pending}>{sendLabel ?? t(\"integration.composer.send\")}</button>}</div></form>;\n}\n","import { useRef, useState } from \"react\";\n\nexport type ReviewDecision = \"approve\" | \"reject\";\n\nexport interface ReviewDecisionState {\n feedback: string;\n setFeedback(value: string): void;\n pending: ReviewDecision | null;\n submitted: boolean;\n error: unknown;\n submit(decision: ReviewDecision): Promise<boolean>;\n}\n\n/** Shared decision state for Console and WebApp review adapters. */\nexport function useReviewDecision(\n onSubmit: (decision: ReviewDecision, trimmedFeedback: string) => void | Promise<void>,\n): ReviewDecisionState {\n const submittingRef = useRef(false);\n const [feedback, setFeedback] = useState(\"\");\n const [pending, setPending] = useState<ReviewDecision | null>(null);\n const [submitted, setSubmitted] = useState(false);\n const [error, setError] = useState<unknown>(null);\n\n const submit = async (decision: ReviewDecision): Promise<boolean> => {\n if (submittingRef.current) return false;\n submittingRef.current = true;\n setPending(decision);\n setError(null);\n try {\n await Promise.resolve(onSubmit(decision, feedback.trim()));\n setSubmitted(true);\n return true;\n } catch (submitError) {\n setError(submitError);\n return false;\n } finally {\n submittingRef.current = false;\n setPending(null);\n }\n };\n\n return { feedback, setFeedback, pending, submitted, error, submit };\n}\n","import React from \"react\";\nimport type { AgentWebAppInterrupt, AgentWebAppInterruptResponse } from \"../types\";\nimport { useReviewDecision } from \"../../../components/shared/useReviewDecision\";\nimport { formatErrorMessage } from \"../../../utils/errorMessage\";\nimport { useT } from \"../../../i18n\";\nimport type { SdkTFunction } from \"../../../i18n\";\n\nexport interface WidgetInterruptViewProps {\n interrupt: AgentWebAppInterrupt;\n onSubmit(interruptId: string, response: AgentWebAppInterruptResponse, message: string): Promise<void>;\n className?: string;\n approveLabel?: string;\n rejectLabel?: string;\n feedbackLabel?: string;\n disabled?: boolean;\n}\n\nfunction errorMessage(error: unknown, t: SdkTFunction): string {\n return formatErrorMessage(error, t(\"integration.interrupt.submitFailed\"));\n}\n\nexport function WidgetInterruptView({ interrupt, onSubmit, className, approveLabel, rejectLabel, feedbackLabel, disabled = false }: WidgetInterruptViewProps): React.ReactElement {\n const t = useT();\n const review = useReviewDecision(async (decision, feedback) => {\n const approved = decision === \"approve\";\n await onSubmit(interrupt.id, { approved, ...(feedback ? { feedback } : {}) }, feedback || (approved ? t(\"integration.interrupt.approvedMessage\") : t(\"integration.interrupt.changesRequestedMessage\")));\n });\n\n const submit = async (approved: boolean): Promise<void> => {\n if (disabled) return;\n await review.submit(approved ? \"approve\" : \"reject\");\n };\n\n return (\n <section className={`axiom-web-app__interrupt${className ? ` ${className}` : \"\"}`} aria-label={t(\"integration.interrupt.aria\")}>\n <strong>{interrupt.prompt}</strong>\n {interrupt.data && <p className=\"axiom-web-app__interrupt-fallback\">{t(\"integration.interrupt.detailsUnavailable\")}</p>}\n <label className=\"axiom-web-app__feedback\">\n <span>{feedbackLabel ?? t(\"integration.interrupt.feedback\")}</span>\n <textarea value={review.feedback} disabled={disabled || review.pending !== null} onChange={(event) => review.setFeedback(event.target.value)} />\n </label>\n {review.error !== null && <p className=\"axiom-web-app__error\" role=\"alert\">{errorMessage(review.error, t)}</p>}\n <div className=\"axiom-web-app__interrupt-actions\">\n <button type=\"button\" disabled={disabled || review.pending !== null} onClick={() => void submit(false)}>{rejectLabel ?? t(\"integration.interrupt.reject\")}</button>\n <button type=\"button\" disabled={disabled || review.pending !== null} onClick={() => void submit(true)}>{approveLabel ?? t(\"integration.interrupt.approve\")}</button>\n </div>\n </section>\n );\n}\n","import React from \"react\";\nimport type { AgentWebAppInterrupt } from \"../types\";\nimport { useWidgetInterrupts } from \"../hooks/useWidgetInterrupts\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { WidgetInterruptView } from \"./WidgetInterruptView\";\n\nexport interface WidgetInterruptProps { interrupt: AgentWebAppInterrupt; className?: string; approveLabel?: string; rejectLabel?: string; feedbackLabel?: string; }\n\nexport function WidgetInterrupt(props: WidgetInterruptProps): React.ReactElement | null {\n const { bootstrap } = useWidgetProject();\n const { isLoading, resumeInterrupt } = useWidgetInterrupts();\n if (!bootstrap?.webApp.features.hitl) return null;\n return <WidgetInterruptView {...props} disabled={isLoading} onSubmit={resumeInterrupt} />;\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { clsx } from 'clsx';\nimport React, { useMemo } from 'react';\nimport { Parser, Renderer } from \"./core\";\nimport DebugPanel from \"./DebugPanel\";\nimport { useStreaming } from \"./hooks\";\nimport \"./index.css\";\nconst XMarkdown = /*#__PURE__*/React.memo(props => {\n const {\n streaming,\n config,\n components,\n paragraphTag,\n content,\n children,\n rootClassName,\n className,\n style,\n openLinksInNewTab,\n dompurifyConfig,\n protectCustomTagNewlines,\n escapeRawHtml,\n debug\n } = props;\n\n // ============================ style ============================\n const mergedCls = clsx('x-markdown', rootClassName, className);\n\n // ============================ Streaming ============================\n const displayContent = useStreaming(content || children || '', {\n streaming,\n components\n });\n // ============================ Render ============================\n const parser = useMemo(() => new Parser({\n markedConfig: config,\n paragraphTag,\n openLinksInNewTab,\n components,\n protectCustomTagNewlines,\n escapeRawHtml\n }), [config, paragraphTag, openLinksInNewTab, components, protectCustomTagNewlines, escapeRawHtml]);\n const renderer = useMemo(() => new Renderer({\n components: components,\n dompurifyConfig,\n streaming\n }), [components, dompurifyConfig, streaming]);\n const htmlString = useMemo(() => {\n if (!displayContent) return '';\n return parser.parse(displayContent);\n }, [displayContent, parser]);\n if (!displayContent) return null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: mergedCls,\n style: style\n }, renderer.render(htmlString)), debug ? /*#__PURE__*/React.createElement(DebugPanel, null) : null);\n});\nif (process.env.NODE_ENV !== 'production') {\n XMarkdown.displayName = 'XMarkdown';\n}\nexport default XMarkdown;","import { Marked } from 'marked';\nexport const other = {\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeTest: /[&<>\"'/]/,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n escapeReplace: /[&<>\"'/]/g,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n completeFencedCode: /^ {0,3}(`{3,}|~{3,})([\\s\\S]*?)\\n {0,3}\\1[ \\n\\t]*$/\n};\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst getEscapeReplacement = ch => escapeReplacements[ch];\nexport function escapeHtml(html, encode) {\n if (encode) {\n if (other.escapeTest.test(html)) {\n return html.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html)) {\n return html.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nclass Parser {\n options;\n markdownInstance;\n constructor(options = {}) {\n const {\n markedConfig = {}\n } = options;\n this.options = options;\n this.markdownInstance = new Marked();\n this.configureLinkRenderer();\n this.configureParagraphRenderer();\n this.configureCodeRenderer();\n this.configureHtmlEscapeRenderer();\n // user config at last\n this.markdownInstance.use(markedConfig);\n }\n configureHtmlEscapeRenderer() {\n if (!this.options.escapeRawHtml) return;\n const renderer = {\n html(token) {\n const {\n raw = '',\n text = ''\n } = token;\n return escapeHtml(raw || text, true);\n }\n };\n this.markdownInstance.use({\n renderer\n });\n }\n configureLinkRenderer() {\n if (!this.options.openLinksInNewTab) return;\n const renderer = {\n link({\n href,\n title,\n tokens\n }) {\n const text = this.parser.parseInline(tokens);\n const titleAttr = title ? ` title=\"${title}\"` : '';\n return `<a href=\"${href}\"${titleAttr} target=\"_blank\" rel=\"noopener noreferrer\">${text}</a>`;\n }\n };\n this.markdownInstance.use({\n renderer\n });\n }\n configureParagraphRenderer() {\n const {\n paragraphTag\n } = this.options;\n if (!paragraphTag) return;\n const renderer = {\n paragraph({\n tokens\n }) {\n return `<${paragraphTag}>${this.parser.parseInline(tokens)}</${paragraphTag}>\\n`;\n }\n };\n this.markdownInstance.use({\n renderer\n });\n }\n configureCodeRenderer() {\n const renderer = {\n code({\n text,\n raw,\n lang,\n escaped,\n codeBlockStyle\n }) {\n const infoString = (lang || '').trim();\n const langString = infoString.match(other.notSpaceStart)?.[0];\n const code = `${text.replace(other.endingNewline, '')}\\n`;\n const isIndentedCode = codeBlockStyle === 'indented';\n // if code is indented, it's done because it has no end tag\n const streamStatus = isIndentedCode || other.completeFencedCode.test(raw) ? 'done' : 'loading';\n const escapedCode = escaped ? code : escapeHtml(code, true);\n const classAttr = langString ? ` class=\"language-${escapeHtml(langString)}\"` : '';\n const dataAttrs = ` data-block=\"true\" data-state=\"${streamStatus}\"` + (infoString ? ` data-lang=\"${escapeHtml(infoString)}\"` : '');\n return `<pre><code${dataAttrs}${classAttr}>${escapedCode}</code></pre>\\n`;\n }\n };\n this.markdownInstance.use({\n renderer\n });\n }\n protectCustomTags(content) {\n const placeholders = new Map();\n const customTagNames = Object.keys(this.options.components || {});\n if (customTagNames.length === 0) {\n return {\n protected: content,\n placeholders\n };\n }\n let placeholderIndex = 0;\n const tagNamePattern = customTagNames.map(name => name.toLowerCase().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|');\n const openTagRegex = new RegExp(`<(${tagNamePattern})(?:\\\\s[^>]*)?>`, 'gi');\n const closeTagRegex = new RegExp(`</(${tagNamePattern})>`, 'gi');\n const positions = [];\n let match;\n openTagRegex.lastIndex = 0;\n match = openTagRegex.exec(content);\n while (match !== null) {\n positions.push({\n index: match.index,\n type: 'open',\n tagName: match[1].toLowerCase(),\n match: match[0]\n });\n match = openTagRegex.exec(content);\n }\n closeTagRegex.lastIndex = 0;\n match = closeTagRegex.exec(content);\n while (match !== null) {\n positions.push({\n index: match.index,\n type: 'close',\n tagName: match[1].toLowerCase(),\n match: match[0]\n });\n match = closeTagRegex.exec(content);\n }\n positions.sort((a, b) => a.index - b.index);\n const stack = [];\n const result = [];\n let lastIndex = 0;\n positions.forEach(pos => {\n if (pos.type === 'open') {\n // Self-closing tags don't have inner content, so they shouldn't be pushed to the stack.\n if (!pos.match.endsWith('/>')) {\n stack.push({\n tagName: pos.tagName,\n start: pos.index,\n openTag: pos.match\n });\n }\n } else if (pos.type === 'close' && stack.length > 0 && stack[stack.length - 1].tagName === pos.tagName) {\n const open = stack.pop();\n if (stack.length === 0) {\n const startPos = open.start;\n const endPos = pos.index + pos.match.length;\n const openTag = open.openTag;\n const closeTag = pos.match;\n const innerContent = content.slice(startPos + openTag.length, pos.index);\n if (lastIndex < startPos) {\n result.push(content.slice(lastIndex, startPos));\n }\n if (innerContent.includes('\\n\\n')) {\n const protectedInner = innerContent.replace(/\\n\\n/g, () => {\n const ph = `__X_MD_PLACEHOLDER_${placeholderIndex++}__`;\n placeholders.set(ph, '\\n\\n');\n return ph;\n });\n result.push(openTag + protectedInner + closeTag);\n } else {\n result.push(openTag + innerContent + closeTag);\n }\n lastIndex = endPos;\n }\n }\n });\n if (lastIndex < content.length) {\n result.push(content.slice(lastIndex));\n }\n return {\n protected: result.join(''),\n placeholders\n };\n }\n restorePlaceholders(content, placeholders) {\n if (placeholders.size === 0) {\n return content;\n }\n return content.replace(/__X_MD_PLACEHOLDER_\\d+__/g, match => placeholders.get(match) ?? match);\n }\n parse(content) {\n if (this.options.protectCustomTagNewlines) {\n const {\n protected: protectedContent,\n placeholders\n } = this.protectCustomTags(content);\n const parsed = this.markdownInstance.parse(protectedContent);\n return this.restorePlaceholders(parsed, placeholders);\n }\n return this.markdownInstance.parse(content);\n }\n}\nexport default Parser;","import DOMPurify from 'dompurify';\nimport parseHtml, { domToReact } from 'html-react-parser';\nimport React from 'react';\nimport AnimationText from \"../AnimationText\";\nclass Renderer {\n options;\n static NON_WHITESPACE_REGEX = /[^\\r\\n\\s]+/;\n constructor(options) {\n this.options = options;\n }\n\n /**\n * Detect unclosed tags using regular expressions\n */\n detectUnclosedTags(htmlString) {\n const unclosedTags = new Set();\n const stack = [];\n const tagRegex = /<\\/?([a-zA-Z][a-zA-Z0-9-]*)(?:\\s[^>]*)?>/g;\n let match = tagRegex.exec(htmlString);\n while (match !== null) {\n const [fullMatch, tagName] = match;\n const isClosing = fullMatch.startsWith('</');\n const isSelfClosing = fullMatch.endsWith('/>');\n if (this.options.components?.[tagName.toLowerCase()]) {\n if (isClosing) {\n // Found closing tag, pop from stack\n const lastIndex = stack.lastIndexOf(tagName.toLowerCase());\n if (lastIndex !== -1) {\n stack.splice(lastIndex, 1);\n }\n } else if (!isSelfClosing) {\n // Found opening tag, push to stack\n stack.push(tagName.toLowerCase());\n }\n }\n match = tagRegex.exec(htmlString);\n }\n\n // Remaining tags in stack are unclosed\n stack.forEach(tag => {\n unclosedTags.add(tag);\n });\n return unclosedTags;\n }\n\n /**\n * Configure DOMPurify to preserve components and target attributes, filter everything else\n */\n configureDOMPurify() {\n const customComponents = Object.keys(this.options.components || {});\n const userConfig = this.options.dompurifyConfig || {};\n const allowedTags = Array.isArray(userConfig.ADD_TAGS) ? userConfig.ADD_TAGS : [];\n const addAttr = Array.isArray(userConfig.ADD_ATTR) ? userConfig.ADD_ATTR : [];\n return {\n ...userConfig,\n ADD_TAGS: Array.from(new Set([...customComponents, ...allowedTags])),\n ADD_ATTR: Array.from(new Set(['target', 'rel', ...addAttr]))\n };\n }\n createReplaceElement(unclosedTags, cidRef) {\n const {\n enableAnimation,\n animationConfig\n } = this.options.streaming || {};\n return domNode => {\n const key = `x-markdown-component-${cidRef.current++}`;\n\n // Check if it's a text node with data\n const isValidTextNode = domNode.type === 'text' && domNode.data && Renderer.NON_WHITESPACE_REGEX.test(domNode.data);\n // Skip animation for text nodes inside custom components to preserve their internal structure\n const parentTagName = domNode.parent?.name;\n const isParentCustomComponent = parentTagName && this.options.components?.[parentTagName];\n const shouldReplaceText = enableAnimation && isValidTextNode && !isParentCustomComponent;\n if (shouldReplaceText) {\n return /*#__PURE__*/React.createElement(AnimationText, {\n text: domNode.data,\n key,\n animationConfig\n });\n }\n if (!('name' in domNode)) return;\n const {\n name,\n attribs,\n children\n } = domNode;\n const renderElement = this.options.components?.[name];\n if (renderElement) {\n const streamStatus = unclosedTags?.has(name) ? 'loading' : 'done';\n const props = {\n domNode,\n streamStatus,\n key,\n ...attribs,\n ...(attribs.disabled !== undefined && {\n disabled: true\n }),\n ...(attribs.checked !== undefined && {\n checked: true\n })\n };\n\n // Handle class and className merging\n const classes = [props.className, props.classname, props.class].filter(Boolean).join(' ').trim();\n props.className = classes || '';\n if (name === 'code') {\n const {\n 'data-block': block = 'false',\n 'data-state': codeStreamStatus = 'done'\n } = attribs || {};\n props.block = block === 'true';\n props.streamStatus = codeStreamStatus === 'loading' ? 'loading' : 'done';\n const langFromData = attribs?.['data-lang'];\n const langFromClass = attribs?.class?.match(/(?:^|\\s)language-([^\\s]+)/)?.[1] ?? attribs?.class?.match(/(?:^|\\s)lang-([^\\s]+)/)?.[1];\n const lang = langFromData || langFromClass;\n if (lang) {\n props.lang = lang;\n }\n }\n if (children) {\n props.children = this.processChildren(children, unclosedTags, cidRef);\n }\n return /*#__PURE__*/React.createElement(renderElement, props);\n }\n };\n }\n processChildren(children, unclosedTags, cidRef) {\n return domToReact(children, {\n replace: this.createReplaceElement(unclosedTags, cidRef)\n });\n }\n processHtml(htmlString) {\n const unclosedTags = this.detectUnclosedTags(htmlString);\n const cidRef = {\n current: 0\n };\n\n // Use DOMPurify to clean HTML while preserving custom components and target attributes\n const purifyConfig = this.configureDOMPurify();\n const cleanHtml = DOMPurify.sanitize(htmlString, purifyConfig);\n return parseHtml(cleanHtml, {\n replace: this.createReplaceElement(unclosedTags, cidRef)\n });\n }\n render(html) {\n return this.processHtml(html);\n }\n}\nexport default Renderer;","import React, { useEffect, useMemo, useRef, useState } from 'react';\nconst AnimationText = /*#__PURE__*/React.memo(props => {\n const {\n text,\n animationConfig\n } = props;\n const {\n fadeDuration = 200,\n easing = 'ease-in-out'\n } = animationConfig || {};\n const [chunks, setChunks] = useState([]);\n const prevTextRef = useRef('');\n useEffect(() => {\n if (text === prevTextRef.current) return;\n if (!(prevTextRef.current && text.indexOf(prevTextRef.current) === 0)) {\n setChunks([text]);\n prevTextRef.current = text;\n return;\n }\n const newText = text.slice(prevTextRef.current.length);\n if (!newText) return;\n setChunks(prev => [...prev, newText]);\n prevTextRef.current = text;\n }, [text]);\n const animationStyle = useMemo(() => ({\n animation: `x-markdown-fade-in ${fadeDuration}ms ${easing} forwards`,\n color: 'inherit'\n }), [fadeDuration, easing]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, chunks.map((text, index) => /*#__PURE__*/React.createElement(\"span\", {\n style: animationStyle,\n key: `animation-text-${index}`\n }, text)));\n});\nexport default AnimationText;","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport \"./DebugPanel.css\";\nconst CONSTANTS = {\n FPS_THRESHOLD: {\n GOOD: 55,\n WARNING: 40\n },\n COLORS: {\n GOOD: '#52c41a',\n WARNING: '#faad14',\n DANGER: '#ff4d4f'\n },\n CHART: {\n WIDTH: 750,\n HEIGHT: 400,\n PADDING: 80\n }\n};\nconst getInitialPosition = () => {\n if (typeof window === 'undefined') {\n return {\n x: 12,\n y: 12\n };\n }\n return {\n x: window.innerWidth - 220,\n y: window.innerHeight / 2 - 100\n };\n};\nconst DebugPanel = () => {\n const [fps, setFps] = useState(0);\n const [memory, setMemory] = useState(0);\n const [isRecording, setIsRecording] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [records, setRecords] = useState([]);\n const [position, setPosition] = useState(getInitialPosition());\n const [isMounted, setIsMounted] = useState(false);\n const recordingRef = useRef([]);\n const frameTimesRef = useRef([]);\n const lastTimeRef = useRef(0);\n const frameCountRef = useRef(0);\n const animationRef = useRef(undefined);\n const dragRef = useRef({\n isDragging: false,\n startX: 0,\n startY: 0,\n initialX: 0,\n initialY: 0\n });\n useEffect(() => {\n // 仅在客户端运行\n if (typeof window === 'undefined') return;\n\n // 仅在客户端初始化\n if (!isMounted) {\n setIsMounted(true);\n lastTimeRef.current = performance.now();\n }\n const update = () => {\n const now = performance.now();\n const delta = now - lastTimeRef.current;\n frameTimesRef.current.push(delta);\n if (frameTimesRef.current.length > 60) frameTimesRef.current.shift();\n frameCountRef.current++;\n if (delta >= 1000) {\n const currentFps = Math.round(frameCountRef.current * 1000 / delta);\n const currentMemory = getMemoryUsage();\n setFps(currentFps);\n setMemory(currentMemory);\n if (isRecording) {\n recordingRef.current.push({\n timestamp: Date.now(),\n fps: currentFps,\n memory: currentMemory\n });\n }\n frameCountRef.current = 0;\n lastTimeRef.current = now;\n }\n animationRef.current = requestAnimationFrame(update);\n };\n animationRef.current = requestAnimationFrame(update);\n return () => {\n if (animationRef.current !== undefined) {\n cancelAnimationFrame(animationRef.current);\n }\n };\n }, [isRecording, isMounted]);\n const getMemoryUsage = () => {\n const perf = performance;\n return perf.memory ? Math.round(perf.memory.usedJSHeapSize / 1024 / 1024) : 0;\n };\n const formatMemory = mb => {\n if (mb < 1) return `${Math.round(mb * 1024)} KB`;\n if (mb >= 1024) return `${(mb / 1024).toFixed(2)} GB`;\n return `${mb.toFixed(2)} MB`;\n };\n const getFpsColor = value => {\n if (value >= CONSTANTS.FPS_THRESHOLD.GOOD) return CONSTANTS.COLORS.GOOD;\n if (value >= CONSTANTS.FPS_THRESHOLD.WARNING) return CONSTANTS.COLORS.WARNING;\n return CONSTANTS.COLORS.DANGER;\n };\n const toggleRecording = useCallback(() => {\n if (isRecording) {\n setIsRecording(false);\n setRecords([...recordingRef.current]);\n setShowModal(true);\n } else {\n recordingRef.current = [];\n setIsRecording(true);\n }\n }, [isRecording]);\n const handleMouseDown = useCallback(e => {\n if (e.target.closest('.x-markdown-debug-action')) return;\n dragRef.current = {\n isDragging: true,\n startX: e.clientX,\n startY: e.clientY,\n initialX: position.x,\n initialY: position.y\n };\n }, [position]);\n const handleMouseMove = useCallback(e => {\n if (!dragRef.current.isDragging) return;\n const dx = e.clientX - dragRef.current.startX;\n const dy = e.clientY - dragRef.current.startY;\n setPosition({\n x: dragRef.current.initialX + dx,\n y: dragRef.current.initialY + dy\n });\n }, []);\n const handleMouseUp = useCallback(() => {\n dragRef.current.isDragging = false;\n }, []);\n useEffect(() => {\n // 仅在客户端运行\n if (typeof window === 'undefined') return;\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n }, [handleMouseMove, handleMouseUp]);\n const PerformanceChart = () => {\n if (!records.length) return null;\n const {\n WIDTH,\n HEIGHT,\n PADDING\n } = CONSTANTS.CHART;\n const chartWidth = WIDTH - PADDING * 2;\n const chartHeight = HEIGHT - PADDING * 2;\n const startTime = records[0]?.timestamp ?? 0;\n const endTime = records[records.length - 1]?.timestamp ?? 0;\n const duration = endTime - startTime || 1;\n const maxFps = Math.max(...records.map(r => r.fps), 60);\n const maxMemory = Math.max(...records.map(r => r.memory), 0) * 1.1;\n const avgFps = records.length > 0 ? records.reduce((sum, r) => sum + r.fps, 0) / records.length : 0;\n const avgMemory = records.length > 0 ? records.reduce((sum, r) => sum + r.memory, 0) / records.length : 0;\n const minFps = records.length > 0 ? Math.min(...records.map(r => r.fps)) : 0;\n const maxFpsValue = records.length > 0 ? Math.max(...records.map(r => r.fps)) : 0;\n const createPoints = (key, max) => records.map(r => {\n const x = PADDING + (r.timestamp - startTime) / duration * chartWidth;\n const y = PADDING + chartHeight - r[key] / max * chartHeight;\n return `${x},${y}`;\n }).join(' ');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-modal-content\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stats-summary\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-item\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-label\"\n }, \"Duration\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-value\"\n }, (duration / 1000).toFixed(2), \"s\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-item\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-label\"\n }, \"FPS Avg\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-value\",\n style: {\n color: getFpsColor(avgFps)\n }\n }, avgFps.toFixed(1))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-item\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-label\"\n }, \"FPS Range\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-value\"\n }, minFps, \" - \", maxFpsValue)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-item\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-label\"\n }, \"Memory Avg\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-value\"\n }, formatMemory(avgMemory)))), /*#__PURE__*/React.createElement(\"svg\", {\n width: WIDTH,\n height: HEIGHT,\n className: \"x-markdown-debug-chart-full\",\n role: \"img\",\n \"aria-label\": \"Performance chart showing FPS and memory usage over time\"\n }, /*#__PURE__*/React.createElement(\"title\", null, \"Performance Chart\"), [0, 0.25, 0.5, 0.75, 1].map(ratio => /*#__PURE__*/React.createElement(\"g\", {\n key: ratio\n }, /*#__PURE__*/React.createElement(\"line\", {\n x1: PADDING,\n y1: PADDING + chartHeight * ratio,\n x2: WIDTH - PADDING,\n y2: PADDING + chartHeight * ratio,\n stroke: \"rgba(255,255,255,0.1)\",\n strokeWidth: \"1\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: PADDING + chartWidth * ratio,\n y1: PADDING,\n x2: PADDING + chartWidth * ratio,\n y2: HEIGHT - PADDING,\n stroke: \"rgba(255,255,255,0.1)\",\n strokeWidth: \"1\"\n }))), /*#__PURE__*/React.createElement(\"polyline\", {\n points: createPoints('fps', maxFps),\n fill: \"none\",\n stroke: CONSTANTS.COLORS.GOOD,\n strokeWidth: \"2\",\n className: \"fps-line\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n points: createPoints('memory', maxMemory),\n fill: \"none\",\n stroke: \"#1890ff\",\n strokeWidth: \"2\",\n className: \"memory-line\"\n }), /*#__PURE__*/React.createElement(\"text\", {\n x: PADDING - 10,\n y: PADDING,\n fill: CONSTANTS.COLORS.GOOD,\n fontSize: \"12\",\n textAnchor: \"end\"\n }, maxFps.toFixed(0)), /*#__PURE__*/React.createElement(\"text\", {\n x: PADDING - 10,\n y: HEIGHT - PADDING,\n fill: CONSTANTS.COLORS.GOOD,\n fontSize: \"12\",\n textAnchor: \"end\"\n }, \"0\"), /*#__PURE__*/React.createElement(\"text\", {\n x: PADDING - 10,\n y: PADDING - 15,\n fill: CONSTANTS.COLORS.GOOD,\n fontSize: \"14\",\n fontWeight: \"bold\",\n textAnchor: \"end\"\n }, \"FPS\"), /*#__PURE__*/React.createElement(\"text\", {\n x: WIDTH - PADDING + 10,\n y: PADDING + 20,\n fill: \"#1890ff\",\n fontSize: \"12\",\n textAnchor: \"start\"\n }, formatMemory(maxMemory)), /*#__PURE__*/React.createElement(\"text\", {\n x: WIDTH - PADDING + 10,\n y: HEIGHT - PADDING,\n fill: \"#1890ff\",\n fontSize: \"12\",\n textAnchor: \"start\"\n }, formatMemory(0)), /*#__PURE__*/React.createElement(\"text\", {\n x: WIDTH - PADDING + 10,\n y: PADDING + 5,\n fill: \"#1890ff\",\n fontSize: \"14\",\n fontWeight: \"bold\",\n textAnchor: \"start\"\n }, \"Memory\"), /*#__PURE__*/React.createElement(\"text\", {\n x: PADDING,\n y: HEIGHT - PADDING + 20,\n fill: \"rgba(255,255,255,0.6)\",\n fontSize: \"12\",\n textAnchor: \"middle\"\n }, \"0s\"), /*#__PURE__*/React.createElement(\"text\", {\n x: WIDTH - PADDING,\n y: HEIGHT - PADDING + 20,\n fill: \"rgba(255,255,255,0.6)\",\n fontSize: \"12\",\n textAnchor: \"middle\"\n }, (duration / 1000).toFixed(1), \"s\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-legend\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-legend-item\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-legend-color\",\n style: {\n backgroundColor: CONSTANTS.COLORS.GOOD\n }\n }), /*#__PURE__*/React.createElement(\"span\", null, \"FPS\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-legend-item\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-legend-color\",\n style: {\n backgroundColor: '#1890ff'\n }\n }), /*#__PURE__*/React.createElement(\"span\", null, \"Memory\"))));\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-panel\",\n style: {\n left: position.x,\n top: position.y,\n cursor: dragRef.current.isDragging ? 'grabbing' : 'grab'\n },\n onMouseDown: handleMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-row\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-label\"\n }, \"FPS\"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-value\",\n style: {\n color: getFpsColor(fps)\n }\n }, fps)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-row\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-label\"\n }, \"Memory\"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-value\"\n }, formatMemory(memory))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-actions\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: `x-markdown-debug-action x-markdown-debug-record-btn ${isRecording ? 'recording' : ''}`,\n onClick: toggleRecording\n }, isRecording ? '⏹ Stop' : '⏺ Record'), records.length > 0 && !isRecording && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"x-markdown-debug-action\",\n onClick: () => setShowModal(true)\n }, \"\\uD83D\\uDCCA View\"))), showModal && records.length > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-modal-overlay\",\n onClick: () => setShowModal(false)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-modal\",\n onClick: e => e.stopPropagation()\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-modal-header\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n color: '#fff',\n fontSize: 18,\n fontWeight: '600'\n }\n }, \"Performance Recording\"), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"x-markdown-debug-close-btn\",\n onClick: () => setShowModal(false)\n }, \"\\u2715\")), /*#__PURE__*/React.createElement(PerformanceChart, null))) : null);\n};\nexport default DebugPanel;","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { StreamCacheTokenType } from \"../interface\";\n\n/* ------------ Type ------------ */\n\n/**\n * When a token is about to be committed, if a non-empty string is returned,\n * only that prefix is committed and the rest of the pending content is left\n * for subsequent recognition (used for handover scenarios like list followed by `).\n * Returns null to commit the entire pending content by default.\n */\n\n/* ------------ Constants ------------ */\n// Validates whether a token is still incomplete in the streaming context.\n// Returns true if the token is syntactically incomplete; false if it is complete or invalid.\nconst STREAM_INCOMPLETE_REGEX = {\n image: [/^!\\[[^\\]\\r\\n]{0,1000}$/, /^!\\[[^\\r\\n]{0,1000}\\]\\(*[^)\\r\\n]{0,1000}$/],\n link: [/^\\[[^\\]\\r\\n]{0,1000}$/, /^\\[[^\\r\\n]{0,1000}\\]\\(*[^)\\r\\n]{0,1000}$/],\n html: [/^<\\/$/, /^<\\/?[a-zA-Z][a-zA-Z0-9-]{0,100}[^>\\r\\n]{0,1000}$/],\n commonEmphasis: [/^(\\*{1,3}|_{1,3})(?!\\s)(?!.*\\1$)[^\\r\\n]{0,1000}$/],\n // regex2 matches cases like \"- **\" (list item with emphasis start).\n list: [/^[-+*]\\s{0,3}$/, /^[-+*]\\s{1,3}(\\*{1,3}|_{1,3})(?!\\s)(?!.*\\1$)[^\\r\\n]{0,1000}$/],\n 'inline-code': [/^`[^`\\r\\n]{0,300}$/]\n};\nconst isTableInComplete = markdown => {\n if (markdown.includes('\\n\\n')) return false;\n const lines = markdown.split('\\n');\n if (lines.length <= 1) return true;\n const [header, separator] = lines;\n const trimmedHeader = header.trim();\n if (!/^\\|.*\\|$/.test(trimmedHeader)) return false;\n const trimmedSeparator = separator.trim();\n const columns = trimmedSeparator.split('|').map(col => col.trim()).filter(Boolean);\n const separatorRegex = /^:?-+:?$/;\n return columns.every((col, index) => index === columns.length - 1 ? col === ':' || separatorRegex.test(col) : separatorRegex.test(col));\n};\nconst tokenRecognizerMap = {\n [StreamCacheTokenType.Link]: {\n tokenType: StreamCacheTokenType.Link,\n isStartOfToken: markdown => markdown.startsWith('['),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.link.some(re => re.test(markdown))\n },\n [StreamCacheTokenType.Image]: {\n tokenType: StreamCacheTokenType.Image,\n isStartOfToken: markdown => markdown.startsWith('!'),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.image.some(re => re.test(markdown))\n },\n [StreamCacheTokenType.Html]: {\n tokenType: StreamCacheTokenType.Html,\n isStartOfToken: markdown => markdown.startsWith('<'),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.html.some(re => re.test(markdown))\n },\n [StreamCacheTokenType.Emphasis]: {\n tokenType: StreamCacheTokenType.Emphasis,\n isStartOfToken: markdown => markdown.startsWith('*') || markdown.startsWith('_'),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.commonEmphasis.some(re => re.test(markdown))\n },\n [StreamCacheTokenType.List]: {\n tokenType: StreamCacheTokenType.List,\n isStartOfToken: markdown => /^[-+*]/.test(markdown),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.list.some(re => re.test(markdown)),\n // On backtick after list, commit only the prefix; treat the rest as inline code.\n getCommitPrefix: pending => {\n const listPrefix = pending.match(/^([-+*]\\s{0,3})/)?.[1];\n const rest = listPrefix ? pending.slice(listPrefix.length) : '';\n return listPrefix && rest.startsWith('`') ? listPrefix : null;\n }\n },\n [StreamCacheTokenType.Table]: {\n tokenType: StreamCacheTokenType.Table,\n isStartOfToken: markdown => markdown.startsWith('|'),\n isStreamingValid: isTableInComplete\n },\n [StreamCacheTokenType.InlineCode]: {\n tokenType: StreamCacheTokenType.InlineCode,\n isStartOfToken: markdown => markdown.startsWith('`'),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX['inline-code'].some(re => re.test(markdown))\n }\n};\nconst recognize = (cache, tokenType) => {\n const recognizer = tokenRecognizerMap[tokenType];\n if (!recognizer) return;\n const {\n token,\n pending\n } = cache;\n if (token === StreamCacheTokenType.Text && recognizer.isStartOfToken(pending)) {\n cache.token = tokenType;\n return;\n }\n if (token === tokenType && !recognizer.isStreamingValid(pending)) {\n const prefix = recognizer.getCommitPrefix?.(pending);\n if (prefix) {\n cache.completeMarkdown += prefix;\n cache.pending = pending.slice(prefix.length);\n cache.token = StreamCacheTokenType.Text;\n return;\n }\n commitCache(cache);\n }\n};\nconst recognizeHandlers = Object.values(tokenRecognizerMap).map(rec => ({\n tokenType: rec.tokenType,\n recognize: cache => recognize(cache, rec.tokenType)\n}));\n\n/* ------------ Utils ------------ */\nconst getInitialCache = () => ({\n pending: '',\n token: StreamCacheTokenType.Text,\n processedLength: 0,\n completeMarkdown: ''\n});\nconst commitCache = cache => {\n if (cache.pending) {\n cache.completeMarkdown += cache.pending;\n cache.pending = '';\n }\n cache.token = StreamCacheTokenType.Text;\n};\nconst isInCodeBlock = (text, isFinalChunk = false) => {\n const lines = text.split('\\n');\n let inFenced = false;\n let fenceChar = '';\n let fenceLen = 0;\n for (let i = 0; i < lines.length; i++) {\n const rawLine = lines[i];\n const line = rawLine.endsWith('\\r') ? rawLine.slice(0, -1) : rawLine;\n const match = line.match(/^(`{3,}|~{3,})(.*)$/);\n if (match) {\n const fence = match[1];\n const after = match[2];\n const char = fence[0];\n const len = fence.length;\n if (!inFenced) {\n inFenced = true;\n fenceChar = char;\n fenceLen = len;\n } else {\n // Check if this is a valid closing fence\n const isValidEnd = char === fenceChar && len >= fenceLen && /^\\s*$/.test(after);\n if (isValidEnd) {\n // In streaming context, only close if this is the final chunk\n // or if there are more lines after this fence\n if (isFinalChunk || i < lines.length - 1) {\n inFenced = false;\n fenceChar = '';\n fenceLen = 0;\n }\n // Otherwise, keep the fence open for potential streaming continuation\n }\n }\n }\n }\n return inFenced;\n};\nconst sanitizeForURIComponent = input => {\n let result = '';\n for (let i = 0; i < input.length; i++) {\n const charCode = input.charCodeAt(i);\n\n // 处理代理对:保留合法,跳过孤立\n if (charCode >= 0xd800 && charCode <= 0xdbff) {\n // High surrogate\n // Check for a following low surrogate to form a valid pair\n if (i + 1 < input.length && input.charCodeAt(i + 1) >= 0xdc00 && input.charCodeAt(i + 1) <= 0xdfff) {\n result += input[i] + input[i + 1];\n i++; // Skip the low surrogate as it's already processed\n }\n // Lone high surrogates are otherwise skipped\n } else if (charCode < 0xdc00 || charCode > 0xdfff) {\n // Append characters that are not lone low surrogates\n result += input[i];\n }\n // Lone low surrogates are otherwise skipped\n }\n return result;\n};\nconst safeEncodeURIComponent = str => {\n try {\n return encodeURIComponent(str);\n } catch (e) {\n if (e instanceof URIError) {\n return encodeURIComponent(sanitizeForURIComponent(str));\n }\n return '';\n }\n};\n\n/* ------------ Main Hook ------------ */\nconst useStreaming = (input, config) => {\n const {\n streaming,\n components = {}\n } = config || {};\n const {\n hasNextChunk: enableCache = false,\n incompleteMarkdownComponentMap\n } = streaming || {};\n const [output, setOutput] = useState('');\n const cacheRef = useRef(getInitialCache());\n const handleIncompleteMarkdown = useCallback(cache => {\n const {\n token,\n pending\n } = cache;\n if (token === StreamCacheTokenType.Text) return;\n /**\n * An image tag starts with '!', if it's the only character, it's incomplete and should be stripped.\n * !\n * ^\n */\n if (token === StreamCacheTokenType.Image && pending === '!') return undefined;\n\n /**\n * If a table has more than two lines (header, separator, and at least one row),\n * it's considered complete enough to not be replaced by a placeholder.\n * | column1 | column2 |\\n| -- | --|\\n\n * ^\n */\n if (token === StreamCacheTokenType.Table && pending.split('\\n').length > 2) {\n return pending;\n }\n const componentMap = incompleteMarkdownComponentMap || {};\n const componentName = componentMap[token] || `incomplete-${token}`;\n const encodedPending = safeEncodeURIComponent(pending);\n return components?.[componentName] ? `<${componentName} data-raw=\"${encodedPending}\" />` : undefined;\n }, [incompleteMarkdownComponentMap, components]);\n const processStreaming = useCallback(text => {\n if (!text) {\n setOutput('');\n cacheRef.current = getInitialCache();\n return;\n }\n const expectedPrefix = cacheRef.current.completeMarkdown + cacheRef.current.pending;\n // Reset cache if input doesn't continue from previous state\n if (!text.startsWith(expectedPrefix)) {\n cacheRef.current = getInitialCache();\n }\n const cache = cacheRef.current;\n const chunk = text.slice(cache.processedLength);\n if (!chunk) return;\n cache.processedLength += chunk.length;\n for (const char of chunk) {\n cache.pending += char;\n const isContentInCodeBlock = isInCodeBlock(cache.completeMarkdown + cache.pending);\n if (isContentInCodeBlock) {\n commitCache(cache);\n continue;\n }\n if (cache.token === StreamCacheTokenType.Text) {\n for (const handler of recognizeHandlers) handler.recognize(cache);\n } else {\n const handler = recognizeHandlers.find(handler => handler.tokenType === cache.token);\n handler?.recognize(cache);\n // After commit (e.g. list → Text), re-run all recognizers so pending (e.g. \"`\") becomes the new token (e.g. inline-code)\n const tokenAfterRecognize = cache.token;\n if (tokenAfterRecognize === StreamCacheTokenType.Text) {\n for (const h of recognizeHandlers) h.recognize(cache);\n }\n }\n if (cache.token === StreamCacheTokenType.Text) {\n commitCache(cache);\n }\n }\n const incompletePlaceholder = handleIncompleteMarkdown(cache);\n setOutput(cache.completeMarkdown + (incompletePlaceholder || ''));\n }, [handleIncompleteMarkdown]);\n useEffect(() => {\n if (typeof input !== 'string') {\n console.error(`X-Markdown: input must be string, not ${typeof input}.`);\n setOutput('');\n return;\n }\n enableCache ? processStreaming(input) : setOutput(input);\n }, [input, enableCache, processStreaming]);\n return output;\n};\nexport default useStreaming;","export let StreamCacheTokenType = /*#__PURE__*/function (StreamCacheTokenType) {\n StreamCacheTokenType[\"Text\"] = \"text\";\n StreamCacheTokenType[\"Link\"] = \"link\";\n StreamCacheTokenType[\"Image\"] = \"image\";\n StreamCacheTokenType[\"Html\"] = \"html\";\n StreamCacheTokenType[\"Emphasis\"] = \"emphasis\";\n StreamCacheTokenType[\"List\"] = \"list\";\n StreamCacheTokenType[\"Table\"] = \"table\";\n StreamCacheTokenType[\"InlineCode\"] = \"inline-code\";\n return StreamCacheTokenType;\n}({});","import XMarkdown, { type ComponentProps, type XMarkdownProps } from \"@ant-design/x-markdown\";\nimport React from \"react\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetMarkdownProps {\n content: unknown;\n className?: string;\n unsupportedLabel?: string;\n}\n\nfunction safeUrl(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n try {\n const url = new URL(value, \"https://axiom.invalid\");\n return url.protocol === \"http:\" || url.protocol === \"https:\" || url.protocol === \"mailto:\" ? value : null;\n } catch {\n return null;\n }\n}\n\nconst SafeLink: React.FC<ComponentProps<{ href?: string }>> = ({ href, children }) => {\n const safeHref = safeUrl(href);\n return safeHref ? <a href={safeHref} target=\"_blank\" rel=\"noopener noreferrer\">{children}</a> : <span>{children}</span>;\n};\n\nconst SafeImage: React.FC<ComponentProps<{ src?: string; alt?: string }>> = ({ src, alt }) => {\n const t = useT();\n const safeHref = safeUrl(src);\n const label = alt?.trim() || t(\"integration.markdown.image\");\n return safeHref ? <a href={safeHref} target=\"_blank\" rel=\"noopener noreferrer\">{label}</a> : <span>{label}</span>;\n};\n\nconst SafeCode: React.FC<ComponentProps> = ({ children }) => <code>{children}</code>;\n\nconst REVIEWED_MARKDOWN_COMPONENTS = Object.freeze<XMarkdownProps[\"components\"]>({\n a: SafeLink,\n code: SafeCode,\n img: SafeImage,\n});\n\nexport function WidgetMarkdown({ content, className, unsupportedLabel }: WidgetMarkdownProps): React.ReactElement {\n const t = useT();\n if (typeof content !== \"string\") return <span className={className}>{unsupportedLabel ?? t(\"integration.markdown.unsupported\")}</span>;\n return <XMarkdown className={className} content={content} components={REVIEWED_MARKDOWN_COMPONENTS} paragraphTag=\"div\" escapeRawHtml />;\n}\n","import React from \"react\";\nimport type { AgentWebAppGenUIBlock } from \"../types\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetGenUIRendererProps { block: AgentWebAppGenUIBlock }\n\n/** Immutable semantic renderer for the reviewed V1 declarative widget allowlist. */\nexport function WidgetGenUIRenderer({ block }: WidgetGenUIRendererProps): React.ReactElement {\n const t = useT();\n const widget = block.widget;\n if (widget.kind === \"callout\") {\n return <aside className={`axiom-web-app__callout axiom-web-app__callout--${widget.tone ?? \"info\"}`} aria-label={widget.title ?? t(\"integration.genui.callout\")}>\n {widget.title && <strong>{widget.title}</strong>}<p>{widget.text}</p>\n </aside>;\n }\n return <table className=\"axiom-web-app__data-table\" aria-label={widget.caption ?? t(\"integration.genui.dataTable\")}>\n {widget.caption && <caption>{widget.caption}</caption>}\n <thead><tr>{widget.columns.map((column, index) => <th key={`${index}-${column}`} scope=\"col\">{column}</th>)}</tr></thead>\n <tbody>{widget.rows.map((row, rowIndex) => <tr key={rowIndex}>{row.map((cell, columnIndex) => <td key={columnIndex}>{cell}</td>)}</tr>)}</tbody>\n </table>;\n}\n","import React from \"react\";\nimport type { AgentWebAppRuntimeMessage } from \"../types\";\nimport { useWidgetChat } from \"../hooks/useWidgetChat\";\nimport { WidgetMarkdown } from \"./WidgetMarkdown\";\nimport { WidgetGenUIRenderer } from \"./WidgetGenUIRenderer\";\nimport { useT } from \"../../../i18n\";\nimport type { SdkTFunction } from \"../../../i18n\";\n\nexport interface WidgetMessageListProps { className?: string; listLabel?: string; emptyLabel?: string; toolActivityLabel?: string; emptySlot?: React.ReactNode; }\n\nfunction roleName(message: AgentWebAppRuntimeMessage, t: SdkTFunction): string {\n if (message.role === \"human\") return t(\"integration.messages.roleYou\");\n if (message.role === \"ai\") return t(\"integration.messages.roleAssistant\");\n return message.role;\n}\n\nexport function WidgetMessageList({ className, listLabel, emptyLabel, toolActivityLabel, emptySlot }: WidgetMessageListProps): React.ReactElement {\n const t = useT();\n const { messages, tools, isLoading } = useWidgetChat();\n return <div className={`axiom-web-app__message-area${className ? ` ${className}` : \"\"}`}><div className=\"axiom-web-app__messages\" role=\"log\" aria-label={listLabel ?? t(\"integration.messages.aria\")} aria-live=\"polite\">{!isLoading && messages.length === 0 && (emptySlot || <p className=\"axiom-web-app__empty\">{emptyLabel ?? t(\"integration.messages.empty\")}</p>)}{messages.map((message) => <article className={`axiom-web-app__message axiom-web-app__message--${message.role}`} key={message.id}><span className=\"axiom-web-app__message-role\">{roleName(message, t)}</span><div className=\"axiom-web-app__message-content\">{Array.isArray(message.content) ? message.content.map((block, index) => <WidgetGenUIRenderer key={index} block={block} />) : <WidgetMarkdown content={message.content ?? \"\"} />}</div></article>)}</div>{tools.length > 0 && <section className=\"axiom-web-app__tools\" aria-label={toolActivityLabel ?? t(\"integration.messages.activity\")}>{tools.map((tool) => <div className=\"axiom-web-app__tool\" key={tool.id}><span aria-hidden=\"true\">{tool.status === \"running\" ? \"...\" : \"OK\"}</span> {tool.name || t(\"integration.messages.tool\")}</div>)}</section>}</div>;\n}\n","import React, { useState } from \"react\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetModelSelectorProps { className?: string; label?: string; }\n\nexport function WidgetModelSelector({ className, label }: WidgetModelSelectorProps): React.ReactElement | null {\n const t = useT();\n const { bootstrap, modelKey, selectModel, isLoading } = useWidgetProject();\n const [error, setError] = useState<string | null>(null);\n if (!bootstrap?.webApp.features.modelSelector) return null;\n const fieldLabel = label ?? t(\"integration.model.label\");\n const select = (key: string): void => {\n setError(null);\n try { selectModel(key); } catch (selectionError) { setError(widgetErrorMessage(selectionError, t)); }\n };\n return <div className={className}><label className=\"axiom-web-app__field\"><span>{fieldLabel}</span><select aria-label={fieldLabel} value={modelKey ?? \"\"} disabled={isLoading} onChange={(event) => select(event.target.value)}>{bootstrap.models.map((model) => <option key={model.key} value={model.key}>{model.label}</option>)}</select></label>{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}</div>;\n}\n","import React, { useRef, useState } from \"react\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetProjectSelectorProps { className?: string; label?: string; }\n\nexport function WidgetProjectSelector({ className, label }: WidgetProjectSelectorProps): React.ReactElement | null {\n const t = useT();\n const { bootstrap, projectId, selectProject, isLoading } = useWidgetProject();\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState<string | null>(null);\n if (!bootstrap?.webApp.features.projectSelector) return null;\n const fieldLabel = label ?? t(\"integration.project.label\");\n const select = async (id: string): Promise<void> => {\n if (pendingRef.current) return;\n pendingRef.current = true; setPending(true); setError(null);\n try { await selectProject(id); }\n catch (selectionError) { setError(widgetErrorMessage(selectionError, t)); }\n finally { pendingRef.current = false; setPending(false); }\n };\n return <div className={className}><label className=\"axiom-web-app__field\"><span>{fieldLabel}</span><select aria-label={fieldLabel} value={projectId ?? \"\"} disabled={isLoading || pending} onChange={(event) => void select(event.target.value)}>{bootstrap.projects.map((project) => <option key={project.id} value={project.id}>{project.name}</option>)}</select></label>{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}</div>;\n}\n","import React, { useRef, useState } from \"react\";\nimport { Modal } from \"antd\";\nimport type { AgentWebAppRuntimeThread } from \"../types\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { useWidgetThreads } from \"../hooks/useWidgetThreads\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\nimport type { SdkTFunction } from \"../../../i18n\";\n\nexport interface WidgetThreadListProps { className?: string; navigationLabel?: string; newThreadLabel?: string; emptyLabel?: string; }\nfunction threadName(thread: AgentWebAppRuntimeThread, index: number, t: SdkTFunction): string { return thread.label?.trim() || t(\"integration.threads.defaultName\", { index: index + 1 }); }\n\nexport function WidgetThreadList({ className, navigationLabel, newThreadLabel, emptyLabel }: WidgetThreadListProps): React.ReactElement | null {\n const t = useT();\n const { bootstrap } = useWidgetProject();\n const { threads, activeThread, isLoading, selectThread, createThread, renameThread, deleteThread } = useWidgetThreads();\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [renameTarget, setRenameTarget] = useState<AgentWebAppRuntimeThread | null>(null);\n const [renameValue, setRenameValue] = useState(\"\");\n const [deleteTarget, setDeleteTarget] = useState<AgentWebAppRuntimeThread | null>(null);\n if (!bootstrap?.webApp.features.threadManagement) return null;\n const run = async (operation: () => Promise<unknown>, complete?: () => void): Promise<void> => {\n if (pendingRef.current) return;\n pendingRef.current = true; setPending(true); setError(null);\n try { await operation(); complete?.(); }\n catch (operationError) { setError(widgetErrorMessage(operationError, t)); }\n finally { pendingRef.current = false; setPending(false); }\n };\n return <nav className={`axiom-web-app__sidebar${className ? ` ${className}` : \"\"}`} aria-label={navigationLabel ?? t(\"integration.threads.aria\")}>{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}<button className=\"axiom-web-app__new-thread\" type=\"button\" disabled={isLoading || pending} onClick={() => void run(() => createThread())}>{newThreadLabel ?? t(\"integration.threads.new\")}</button><div className=\"axiom-web-app__thread-list\">{!isLoading && threads.length === 0 && <p className=\"axiom-web-app__empty\">{emptyLabel ?? t(\"integration.threads.empty\")}</p>}{threads.map((thread, index) => { const name = threadName(thread, index, t); return <div className={`axiom-web-app__thread${activeThread?.id === thread.id ? \" axiom-web-app__thread--active\" : \"\"}`} key={thread.id}><button type=\"button\" disabled={pending} className=\"axiom-web-app__thread-select\" aria-label={t(\"integration.threads.open\", { name })} aria-current={activeThread?.id === thread.id ? \"page\" : undefined} onClick={() => void run(() => selectThread(thread))}><span className=\"axiom-web-app__thread-label\" title={name}>{name}</span></button><button type=\"button\" disabled={pending} className=\"axiom-web-app__thread-rename\" aria-label={t(\"integration.threads.renameNamed\", { name })} onClick={() => { setRenameTarget(thread); setRenameValue(name); }}>{t(\"integration.threads.rename\")}</button><button type=\"button\" disabled={pending} className=\"axiom-web-app__thread-delete\" aria-label={t(\"integration.threads.deleteNamed\", { name })} onClick={() => setDeleteTarget(thread)}>{t(\"integration.threads.delete\")}</button></div>; })}</div><Modal title={t(\"integration.threads.renameTitle\")} open={renameTarget !== null} onCancel={() => { if (!pending) setRenameTarget(null); }} onOk={() => renameTarget && void run(() => renameThread(renameTarget.id, renameValue.trim()), () => setRenameTarget(null))} okText={t(\"common.save\")} cancelText={t(\"common.cancel\")} okButtonProps={{ loading: pending, disabled: !renameValue.trim() }} cancelButtonProps={{ disabled: pending }}><label className=\"axiom-web-app__modal-field\"><span>{t(\"integration.threads.nameLabel\")}</span><input aria-label={t(\"integration.threads.nameLabel\")} value={renameValue} disabled={pending} onChange={(event) => setRenameValue(event.target.value)} /></label></Modal><Modal title={t(\"integration.threads.deleteTitle\")} open={deleteTarget !== null} onCancel={() => { if (!pending) setDeleteTarget(null); }} onOk={() => deleteTarget && void run(() => deleteThread(deleteTarget.id), () => setDeleteTarget(null))} okText={t(\"common.delete\")} cancelText={t(\"common.cancel\")} okButtonProps={{ danger: true, loading: pending }} cancelButtonProps={{ disabled: pending }}><p>{t(\"integration.threads.deleteConfirm\")}</p></Modal></nav>;\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/agentic/agentic/packages/react-sdk/dist/web-app.js","../src/i18n/locales/a2a/en.json","../src/i18n/locales/a2a/zh.json","../src/i18n/locales/auth/en.json","../src/i18n/locales/auth/zh.json","../src/i18n/locales/capability/en.json","../src/i18n/locales/capability/zh.json","../src/i18n/locales/chat/en.json","../src/i18n/locales/chat/zh.json","../src/i18n/locales/chatConfig/en.json","../src/i18n/locales/chatConfig/zh.json","../src/i18n/locales/chatMenu/en.json","../src/i18n/locales/chatMenu/zh.json","../src/i18n/locales/chatWorkspace/en.json","../src/i18n/locales/chatWorkspace/zh.json","../src/i18n/locales/common/en.json","../src/i18n/locales/common/zh.json","../src/i18n/locales/cospace/en.json","../src/i18n/locales/cospace/zh.json","../src/i18n/locales/entities/en.json","../src/i18n/locales/entities/zh.json","../src/i18n/locales/eval/en.json","../src/i18n/locales/eval/zh.json","../src/i18n/locales/genui/en.json","../src/i18n/locales/genui/zh.json","../src/i18n/locales/governance/en.json","../src/i18n/locales/governance/zh.json","../src/i18n/locales/integration/en.json","../src/i18n/locales/integration/zh.json","../src/i18n/locales/mcpapp/en.json","../src/i18n/locales/mcpapp/zh.json","../src/i18n/locales/migration/en.json","../src/i18n/locales/migration/zh.json","../src/i18n/locales/projectRoom/en.json","../src/i18n/locales/projectRoom/zh.json","../src/i18n/locales/tasks/en.json","../src/i18n/locales/tasks/zh.json","../src/i18n/locales/training/en.json","../src/i18n/locales/training/zh.json","../src/integrations/web-app/AgentWebAppProvider.tsx","../src/integrations/web-app/AgentWebAppContext.ts","../src/integrations/web-app/error.ts","../src/integrations/web-app/sse-parser.ts","../src/integrations/web-app/client.ts","../src/utils/errorMessage.ts","../src/i18n/useT.ts","../src/i18n/instance.ts","../src/i18n/useLocale.ts","../src/i18n/LatticeLocaleProvider.tsx","../src/integrations/web-app/state/agentWebAppReducer.ts","../src/integrations/web-app/hooks/useAgentWebApp.ts","../src/integrations/web-app/hooks/useWidgetAttachments.ts","../src/integrations/web-app/hooks/useWidgetChat.ts","../src/integrations/web-app/hooks/useWidgetInterrupts.ts","../src/integrations/web-app/hooks/useWidgetProject.ts","../src/integrations/web-app/hooks/useWidgetThreads.ts","../src/integrations/web-app/components/WidgetAttachments.tsx","../src/integrations/web-app/components/widget-utils.ts","../src/integrations/web-app/components/WidgetComposer.tsx","../src/components/shared/useReviewDecision.ts","../src/integrations/web-app/components/WidgetInterruptView.tsx","../src/integrations/web-app/components/WidgetInterrupt.tsx","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/index.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/core/Parser.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/core/Renderer.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/AnimationText.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/DebugPanel/DebugPanel.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/hooks/useStreaming.js","../../../node_modules/.pnpm/@ant-design+x-markdown@2.3.0_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ant-design/x-markdown/es/XMarkdown/interface.js","../src/integrations/web-app/components/WidgetMarkdown.tsx","../src/integrations/web-app/components/WidgetGenUIRenderer.tsx","../src/integrations/web-app/components/WidgetMessageList.tsx","../src/integrations/web-app/components/WidgetModelSelector.tsx","../src/integrations/web-app/components/WidgetProjectSelector.tsx","../src/integrations/web-app/components/WidgetThreadList.tsx"],"names":["require_en","require_zh","errorCodes","record","exact","parseAgentWebAppGenUIBlock","isAbortError","jsx","useContext","useRef","jsxs","StreamCacheTokenType","useMemo"],"mappings":"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AAA;AACA,IAAA;AACC,IAAA;AACS,MAAA;AACf,IAAA;AACH,EAAA;AACa,EAAA;AACC,IAAA;AACd,EAAA;AACF;AACO;AjEwgQa;AACA;AmE7pQJ;AAEE;AACD,EAAA;AACP,IAAA;AACG,IAAA;AACX,EAAA;AACQ,EAAA;AACA,IAAA;AACG,IAAA;AACD,IAAA;AACV,EAAA;AACO,EAAA;AACE,IAAA;AACC,IAAA;AACC,IAAA;AACX,EAAA;AACF;AACM;AACO,EAAA;AACF,IAAA;AACF,MAAA;AACA,MAAA;AACL,IAAA;AACF,EAAA;AACO,EAAA;AACK,IAAA;AACA,IAAA;AACZ,EAAA;AACF;AACmB;AACC,EAAA;AACH,EAAA;AACR,EAAA;AACW,EAAA;AACF,EAAA;AACC,EAAA;AACC,EAAA;AACZ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACUE,EAAAA;AACF,IAAA;AACJ,IAAA;AACA,IAAA;AACE,IAAA;AACA,IAAA;AACX,EAAA;AACe,EAAA;AAEH,IAAA;AAGK,IAAA;AACD,MAAA;AACD,MAAA;AACd,IAAA;AACe,IAAA;AACD,MAAA;AACE,MAAA;AACA,MAAA;AACV,MAAA;AACU,MAAA;AACD,MAAA;AACL,QAAA;AACA,QAAA;AACC,QAAA;AACG,QAAA;AACN,QAAA;AACF,UAAA;AACE,YAAA;AACK,YAAA;AACG,YAAA;AACT,UAAA;AACH,QAAA;AACA,QAAA;AACY,QAAA;AACd,MAAA;AACa,MAAA;AACf,IAAA;AACa,IAAA;AACA,IAAA;AACP,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACe,EAAA;AACX,EAAA;AACS,IAAA;AACD,IAAA;AACd,EAAA;AACM,EAAA;AACQ,IAAA;AACI,IAAA;AACH,IAAA;AACf,EAAA;AACM,EAAA;AACS,IAAA;AACA,IAAA;AACN,IAAA;AACT,EAAA;AACM,EAAA;AACA,IAAA;AACF,MAAA;AACY,MAAA;AACC,MAAA;AACR,IAAA;AACQ,MAAA;AACb,MAAA;AACF,IAAA;AACc,EAAA;AACV,EAAA;AACS,IAAA;AACL,IAAA;AACM,MAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACZ,IAAA;AACW,EAAA;AACP,EAAA;AACS,IAAA;AACA,IAAA;AACA,IAAA;AACD,IAAA;AACC,MAAA;AACA,MAAA;AACZ,IAAA;AACE,EAAA;AACC,EAAA;AACY,IAAA;AACb,EAAA;AACW,EAAA;AAEH,IAAA;AACF,IAAA;AACA,IAAA;AACI,IAAA;AACF,MAAA;AACA,MAAA;AACX,IAAA;AACE,EAAA;AACE,EAAA;AACS,IAAA;AACP,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACY,IAAA;AACR,IAAA;AACA,IAAA;AACA,IAAA;AACU,IAAA;AACV,IAAA;AACS,IAAA;AACT,IAAA;AACS,IAAA;AACT,IAAA;AACS,IAAA;AACT,IAAA;AACA,IAAA;AACM,MAAA;AACA,MAAA;AACC,MAAA;AACF,IAAA;AACS,IAAA;AACP,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACgB,IAAA;AAChB,MAAA;AACE,IAAA;AACF,MAAA;AACG,IAAA;AACH,MAAA;AACe,IAAA;AACf,MAAA;AACJ,MAAA;AACE,QAAA;AACT,MAAA;AACQ,IAAA;AACG,MAAA;AACG,IAAA;AACH,MAAA;AACC,IAAA;AACD,MAAA;AACF,IAAA;AACE,MAAA;AACG,IAAA;AACH,MAAA;AACE,IAAA;AACF,MAAA;AACG,IAAA;AACP,MAAA;AACC,MAAA;AACG,MAAA;AACL,MAAA;AACQ,MAAA;AACA,IAAA;AACT,MAAA;AACS,IAAA;AACV,MAAA;AACU,MAAA;AACF,MAAA;AACE,MAAA;AACN,MAAA;AACK,MAAA;AACE,IAAA;AACD,MAAA;AACV,MAAA;AACU,MAAA;AACD,MAAA;AACL,MAAA;AACK,MAAA;AACI,IAAA;AACT,MAAA;AACF,MAAA;AACE,MAAA;AACK,MAAA;AACF,MAAA;AACI,IAAA;AACP,MAAA;AACF,MAAA;AACE,MAAA;AACK,MAAA;AACF,MAAA;AACI,IAAA;AACF,MAAA;AACV,MAAA;AACG,MAAA;AACI,MAAA;AACE,MAAA;AACJ,IAAA;AACK,MAAA;AACD,MAAA;AACN,MAAA;AACI,MAAA;AACE,MAAA;AACQ,IAAA;AACP,MAAA;AACA,MAAA;AACP,MAAA;AACI,MAAA;AACE,MAAA;AACA,MAAA;AACU,IAAA;AACX,MAAA;AACE,MAAA;AACP,MAAA;AACI,MAAA;AACE,MAAA;AACE,IAAA;AACH,MAAA;AACC,MAAA;AACN,MAAA;AACI,MAAA;AACE,MAAA;AACE,IAAA;AACH,MAAA;AACE,MAAA;AACP,MAAA;AACI,MAAA;AACE,MAAA;AACA,MAAA;AACa,IAAA;AACtB,MAAA;AACS,MAAA;AACN,MAAA;AACI,MAAA;AACE,MAAA;AACS,IAAA;AACV,MAAA;AACC,MAAA;AACN,MAAA;AACI,MAAA;AACE,MAAA;AACC,IAAA;AACF,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACJ,MAAA;AACL,QAAA;AACF,MAAA;AACe,IAAA;AACJ,MAAA;AACG,IAAA;AACH,MAAA;AACJ,MAAA;AACL,QAAA;AACF,MAAA;AACe,IAAA;AACnB,EAAA;AACoB,EAAA;AACP,IAAA;AACJ,IAAA;AACC,MAAA;AACQ,MAAA;AACN,MAAA;AACV,IAAA;AACa,IAAA;AACC,EAAA;AACH,IAAA;AACG,EAAA;AACH,IAAA;AACW,EAAA;AACX,IAAA;AACJ,IAAA;AACE,MAAA;AACT,IAAA;AACqB,EAAA;AACV,IAAA;AACG,EAAA;AACH,IAAA;AACc,EAAA;AACd,IAAA;AACG,EAAA;AACH,IAAA;AACG,EAAA;AACR,IAAA;AACK,IAAA;AACF,IAAA;AACM,EAAA;AACT,IAAA;AACK,IAAA;AACI,IAAA;AACd,EAAA;AACU,IAAA;AACI,IAAA;AACD,EAAA;AACH,IAAA;AACG,IAAA;AACA,EAAA;AACH,IAAA;AACG,EAAA;AACP,IAAA;AACE,MAAA;AACG,MAAA;AACE,MAAA;AACd,IAAA;AACC,EAAA;AACK,IAAA;AACK,IAAA;AACI,IAAA;AACW,EAAA;AAC9B;AACO;AnE0pQa;AACA;AoE7/QX;ApE+/QW;AACA;AqEhgRT;AACTE,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACAA,EAAAA;AACOA,EAAAA;AACL;ArEkgRgB;AACA;AoE9/Qd;AACI,EAAA;AACD,EAAA;AACS,EAAA;AACC,EAAA;AAAkD;AAE5D,EAAA;AACS,EAAA;AAClB;AACM;AACS,EAAA;AACC,EAAA;AACJ,EAAA;AACK,EAAA;AACT,EAAA;AACU,EAAA;AACV,EAAA;AACU,EAAA;AACV,EAAA;AACS,EAAA;AACjB;AACM;AACH,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AAAuF;AAEvF,IAAA;AACQ,MAAA;AACO,MAAA;AACN,MAAA;AACT,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACC,EAAA;AACY,IAAA;AACK,IAAA;AAChB,IAAA;AACF,EAAA;AACF;AACmB;AACX,EAAA;AACW,EAAA;AACX,EAAA;AACJ,IAAA;AACA,IAAA;AACE,EAAA;AACU,EAAA;AACE,IAAA;AACd,IAAA;AACF,EAAA;AACc,EAAA;AACG,IAAA;AACH,IAAA;AACJ,MAAA;AACA,MAAA;AACQ,MAAA;AACd,MAAA;AACF,IAAA;AACY,IAAA;AACd,EAAA;AACF;AACM;AACW,EAAA;AACJ,EAAA;AACX;AAGI;AACK,EAAA;AACF,EAAA;AACU,EAAA;AACC,EAAA;AACpB;AACoB;AACR,EAAA;AACF,IAAA;AACU,IAAA;AAClB,EAAA;AACc,EAAA;AAChB;AACsB;AACN,EAAA;AACC,EAAA;AACC,EAAA;AACD,EAAA;AACC,EAAA;AACE,IAAA;AACH,IAAA;AACC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","file":"/home/runner/work/agentic/agentic/packages/react-sdk/dist/web-app.js","sourcesContent":[null,"{\n \"messages\": {\n \"a2a.list.title\": \"API Keys\",\n \"a2a.list.create\": \"New Key\",\n \"a2a.list.defaultLabel\": \"A2A key\",\n \"a2a.list.enabled\": \"Enabled\",\n \"a2a.list.disabled\": \"Disabled\",\n \"a2a.list.unknownProject\": \"Unknown project\",\n \"a2a.list.allAssistants\": \"All exposed assistants\",\n \"a2a.list.createdAt\": \"Created {{date}}\",\n \"a2a.list.emptyTitle\": \"No A2A keys yet\",\n \"a2a.list.emptyDescription\": \"Click \\\"New Key\\\" to issue one\",\n \"a2a.list.action.exposure\": \"View exposure\",\n \"a2a.list.action.disable\": \"Disable\",\n \"a2a.list.action.enable\": \"Enable\",\n \"a2a.list.action.rotate\": \"Rotate\",\n \"a2a.list.loadFailed\": \"Failed to load A2A keys\",\n \"a2a.list.disableFailed\": \"Failed to update A2A key\",\n \"a2a.list.disableDone\": \"A2A key disabled\",\n \"a2a.list.enableDone\": \"A2A key enabled\",\n \"a2a.list.deleteDone\": \"A2A key deleted\",\n \"a2a.list.deleteFailed\": \"Failed to delete A2A key\",\n \"a2a.list.rotateFailed\": \"Failed to rotate A2A key\",\n \"a2a.list.deleteTitle\": \"Delete API Key\",\n \"a2a.list.deleteBody\": \"Are you sure you want to delete this A2A key? Requests using it will start failing.\",\n \"a2a.list.rotateTitle\": \"Rotate API Key\",\n \"a2a.list.rotateBody\": \"Rotating this key invalidates the current value and generates a new one. The new key will be shown only once.\",\n \"a2a.list.newKeyTitle\": \"New API Key\",\n \"a2a.list.copyNow\": \"Copy your new key now — it cannot be shown again.\",\n \"a2a.list.copy\": \"Copy\",\n \"a2a.list.copiedToClipboard\": \"Copied to clipboard\",\n \"a2a.list.copyFailed\": \"Failed to copy\",\n \"a2a.editor.title.edit\": \"Edit API Key\",\n \"a2a.editor.title.create\": \"Create API Key\",\n \"a2a.editor.intro\": \"Choose what this key can access. You can change it later.\",\n \"a2a.editor.name\": \"Name\",\n \"a2a.editor.namePlaceholder\": \"e.g. production\",\n \"a2a.editor.project\": \"Working project\",\n \"a2a.editor.projectRequired\": \"Project is required\",\n \"a2a.editor.projectHint\": \"Sandbox and agent calls run in this project. Knowledge base and plugins apply tenant-wide.\",\n \"a2a.editor.projectPlaceholder\": \"Select project\",\n \"a2a.editor.grants\": \"Resource authorization\",\n \"a2a.editor.abilityTitle\": \"This key will be able to\",\n \"a2a.editor.abilityEmpty\": \"Nothing yet – select resources.\",\n \"a2a.editor.newKeyAria\": \"New API key\",\n \"a2a.editor.updated\": \"API key updated\",\n \"a2a.editor.saveFailedUpdate\": \"Failed to update API key\",\n \"a2a.editor.saveFailedCreate\": \"Failed to create API key\",\n \"a2a.editor.howToUse\": \"How to use\",\n \"a2a.editor.done\": \"Done\",\n \"a2a.editor.submit.edit\": \"Save Changes\",\n \"a2a.editor.submit.create\": \"Create Key\",\n \"a2a.exposure.title\": \"Exposed resources — {{name}}\",\n \"a2a.exposure.noData\": \"No exposure data\",\n \"a2a.exposure.tab.a2aCount\": \"A2A ({{count}})\",\n \"a2a.exposure.tenantToolsUnavailable\": \"Tenant plugin tools unavailable\",\n \"a2a.exposure.tenantToolsBody\": \"The tenant sandbox plugin catalog could not be read. Global tools are unaffected; tenant plugin tools are currently not exposed.\",\n \"a2a.exposure.uiTitle\": \"Interactive UI (MCP Apps)\",\n \"a2a.exposure.uiBodyLead\": \"Some exposed tools provide an interactive UI (an MCP App). The UI capability is advertised through the non-standard\",\n \"a2a.exposure.uiBodyMiddle\": \"capability because the official MCP SDK does not yet expose the standard\",\n \"a2a.exposure.uiBodyTail\": \"field. Only hosts that implement the MCP Apps UI extension (e.g. Claude, ChatGPT) will render the interface; hosts that check only standard capability negotiation will not, and will use the tool's text output instead.\",\n \"a2a.exposure.howToConnect\": \"How to connect\",\n \"a2a.exposure.authenticate\": \"Authenticate every request with your API key:\",\n \"a2a.exposure.mcpClient\": \"MCP client (Claude Desktop / Cursor)\",\n \"a2a.exposure.rawRequest\": \"Raw request (curl)\",\n \"a2a.exposure.tools\": \"Tools\",\n \"a2a.exposure.noTools\": \"No tools exposed.\",\n \"a2a.exposure.readOnly\": \"read-only\",\n \"a2a.exposure.noAgents\": \"No agents exposed over A2A\",\n \"a2a.exposure.skills\": \"Skills\",\n \"a2a.exposure.endpoints\": \"Endpoints\",\n \"a2a.grants.loading\": \"Loading resources…\",\n \"a2a.grants.empty\": \"No grantable resources\",\n \"a2a.grants.scopeProject\": \"project-scoped\",\n \"a2a.grants.scopeTenant\": \"tenant-wide\",\n \"a2a.grants.selected\": \"{{selected}} / {{total}} selected\",\n \"a2a.grants.selectAll\": \"Select All\",\n \"a2a.grants.clear\": \"Clear\",\n \"a2a.grants.readOnly\": \"read-only\",\n \"a2a.grants.readOnlyHint\": \"Selected permissions are read-only (clients may call without confirmation).\",\n \"a2a.audit.time\": \"Time\",\n \"a2a.audit.domain\": \"Domain\",\n \"a2a.audit.action\": \"Action\",\n \"a2a.audit.credential\": \"Credential\",\n \"a2a.audit.status\": \"Status\",\n \"a2a.audit.duration\": \"Duration\",\n \"a2a.audit.allDomains\": \"All domains\",\n \"a2a.audit.allStatuses\": \"All statuses\"\n }\n}\n","{\n \"messages\": {\n \"a2a.list.title\": \"API Key\",\n \"a2a.list.create\": \"新建 Key\",\n \"a2a.list.defaultLabel\": \"A2A key\",\n \"a2a.list.enabled\": \"已启用\",\n \"a2a.list.disabled\": \"已停用\",\n \"a2a.list.unknownProject\": \"未知项目\",\n \"a2a.list.allAssistants\": \"所有已暴露的助手\",\n \"a2a.list.createdAt\": \"创建于 {{date}}\",\n \"a2a.list.emptyTitle\": \"暂无 A2A key\",\n \"a2a.list.emptyDescription\": \"点击「新建 Key」创建一个\",\n \"a2a.list.action.exposure\": \"查看暴露范围\",\n \"a2a.list.action.disable\": \"停用\",\n \"a2a.list.action.enable\": \"启用\",\n \"a2a.list.action.rotate\": \"轮换\",\n \"a2a.list.loadFailed\": \"加载 A2A key 失败\",\n \"a2a.list.disableFailed\": \"更新 A2A key 失败\",\n \"a2a.list.disableDone\": \"A2A key 已停用\",\n \"a2a.list.enableDone\": \"A2A key 已启用\",\n \"a2a.list.deleteDone\": \"A2A key 已删除\",\n \"a2a.list.deleteFailed\": \"删除 A2A key 失败\",\n \"a2a.list.rotateFailed\": \"轮换 A2A key 失败\",\n \"a2a.list.deleteTitle\": \"删除 API Key\",\n \"a2a.list.deleteBody\": \"确定要删除这个 A2A key 吗?使用它的请求将开始失败。\",\n \"a2a.list.rotateTitle\": \"轮换 API Key\",\n \"a2a.list.rotateBody\": \"轮换该 key 会使其当前值失效并生成新值。新 key 只会显示一次。\",\n \"a2a.list.newKeyTitle\": \"新建 API Key\",\n \"a2a.list.copyNow\": \"请立即复制你的新 key——它不会再次显示。\",\n \"a2a.list.copy\": \"复制\",\n \"a2a.list.copiedToClipboard\": \"已复制到剪贴板\",\n \"a2a.list.copyFailed\": \"复制失败\",\n \"a2a.editor.title.edit\": \"编辑 API Key\",\n \"a2a.editor.title.create\": \"新建 API Key\",\n \"a2a.editor.intro\": \"选择这个 key 可以访问什么。之后可以随时修改。\",\n \"a2a.editor.name\": \"名称\",\n \"a2a.editor.namePlaceholder\": \"例如 production\",\n \"a2a.editor.project\": \"所属项目\",\n \"a2a.editor.projectRequired\": \"项目为必选项\",\n \"a2a.editor.projectHint\": \"沙箱和智能体调用在该项目中运行。知识库和插件则对整个租户生效。\",\n \"a2a.editor.projectPlaceholder\": \"选择项目\",\n \"a2a.editor.grants\": \"资源授权\",\n \"a2a.editor.abilityTitle\": \"这个 key 将能够\",\n \"a2a.editor.abilityEmpty\": \"暂无——请选择资源。\",\n \"a2a.editor.newKeyAria\": \"新 API key\",\n \"a2a.editor.updated\": \"API key 已更新\",\n \"a2a.editor.saveFailedUpdate\": \"更新 API key 失败\",\n \"a2a.editor.saveFailedCreate\": \"新建 API key 失败\",\n \"a2a.editor.howToUse\": \"如何使用\",\n \"a2a.editor.done\": \"完成\",\n \"a2a.editor.submit.edit\": \"保存更改\",\n \"a2a.editor.submit.create\": \"创建 Key\",\n \"a2a.exposure.title\": \"暴露的资源 —— {{name}}\",\n \"a2a.exposure.noData\": \"无暴露数据\",\n \"a2a.exposure.tab.a2aCount\": \"A2A({{count}})\",\n \"a2a.exposure.tenantToolsUnavailable\": \"租户插件工具不可用\",\n \"a2a.exposure.tenantToolsBody\": \"无法读取租户沙箱插件目录。全局工具不受影响;租户插件工具当前未暴露。\",\n \"a2a.exposure.uiTitle\": \"交互式 UI(MCP Apps)\",\n \"a2a.exposure.uiBodyLead\": \"部分已暴露的工具提供交互式 UI(即 MCP App)。该 UI 能力通过非标准的\",\n \"a2a.exposure.uiBodyMiddle\": \"能力字段声明,因为官方 MCP SDK 尚未暴露标准的\",\n \"a2a.exposure.uiBodyTail\": \"字段。只有实现了 MCP Apps UI 扩展的宿主(如 Claude、ChatGPT)才会渲染该界面;仅检查标准能力协商的宿主不会渲染,而是使用工具的文本输出。\",\n \"a2a.exposure.howToConnect\": \"如何连接\",\n \"a2a.exposure.authenticate\": \"每个请求都需要用 API key 进行认证:\",\n \"a2a.exposure.mcpClient\": \"MCP 客户端(Claude Desktop / Cursor)\",\n \"a2a.exposure.rawRequest\": \"原始请求(curl)\",\n \"a2a.exposure.tools\": \"工具\",\n \"a2a.exposure.noTools\": \"未暴露任何工具。\",\n \"a2a.exposure.readOnly\": \"只读\",\n \"a2a.exposure.noAgents\": \"没有通过 A2A 暴露的智能体\",\n \"a2a.exposure.skills\": \"技能\",\n \"a2a.exposure.endpoints\": \"端点\",\n \"a2a.grants.loading\": \"正在加载资源…\",\n \"a2a.grants.empty\": \"没有可授权的资源\",\n \"a2a.grants.scopeProject\": \"项目级\",\n \"a2a.grants.scopeTenant\": \"租户级\",\n \"a2a.grants.selected\": \"已选 {{selected}} / {{total}}\",\n \"a2a.grants.selectAll\": \"全选\",\n \"a2a.grants.clear\": \"清空\",\n \"a2a.grants.readOnly\": \"只读\",\n \"a2a.grants.readOnlyHint\": \"选中的权限为只读(客户端可在无需确认的情况下调用)。\",\n \"a2a.audit.time\": \"时间\",\n \"a2a.audit.domain\": \"领域\",\n \"a2a.audit.action\": \"操作\",\n \"a2a.audit.credential\": \"凭证\",\n \"a2a.audit.status\": \"状态\",\n \"a2a.audit.duration\": \"耗时\",\n \"a2a.audit.allDomains\": \"所有领域\",\n \"a2a.audit.allStatuses\": \"所有状态\"\n }\n}\n","{\n \"messages\": {\n \"auth.login.title\": \"Welcome Back\",\n \"auth.login.subtitle\": \"Sign in to your account\",\n \"auth.login.submit\": \"Sign In\",\n \"auth.login.forgotPassword\": \"Forgot password?\",\n \"auth.login.noAccount\": \"Don't have an account?\",\n \"auth.login.createOne\": \"Create one\",\n \"auth.register.title\": \"Create Account\",\n \"auth.register.subtitle\": \"Start your journey with us\",\n \"auth.register.submit\": \"Create Account\",\n \"auth.register.hasAccount\": \"Already have an account?\",\n \"auth.register.success\": \"Account created successfully\",\n \"auth.changePassword.title\": \"Change Password\",\n \"auth.changePassword.submit\": \"Change Password\",\n \"auth.changePassword.success\": \"Password changed successfully\",\n \"auth.changePassword.failed\": \"Failed to change password\",\n \"auth.changePassword.currentRequired\": \"Please enter current password\",\n \"auth.changePassword.newRequired\": \"Please enter new password\",\n \"auth.changePassword.confirmRequired\": \"Please confirm new password\",\n \"auth.changePassword.tooShort\": \"Password must be at least 6 characters\",\n \"auth.field.email\": \"Email\",\n \"auth.field.password\": \"Password\",\n \"auth.field.fullName\": \"Full name\",\n \"auth.field.confirmPassword\": \"Confirm password\",\n \"auth.field.currentPassword\": \"Current password\",\n \"auth.field.newPassword\": \"New password\",\n \"auth.field.confirmNewPassword\": \"Confirm new password\",\n \"auth.field.name\": \"Name\",\n \"auth.field.description\": \"Description\",\n \"auth.field.logoUrl\": \"Logo URL\",\n \"auth.tenant.title\": \"Select Your Tenant\",\n \"auth.tenant.selectTitle\": \"Select Tenant\",\n \"auth.tenant.chooseDescription\": \"Choose a tenant to continue\",\n \"auth.tenant.description\": \"Welcome, {{name}}! Choose a tenant to continue\",\n \"auth.tenant.empty.title\": \"Welcome, {{name}}!\",\n \"auth.tenant.empty.noAccess\": \"You don't have access to any tenants yet.\",\n \"auth.tenant.empty.contactAdmin\": \"Please contact your administrator to be assigned to a tenant.\",\n \"auth.tenant.searchPlaceholder\": \"Search tenant...\",\n \"auth.tenant.searchAriaLabel\": \"Search tenants\",\n \"auth.tenant.noMatch\": \"No tenants match\",\n \"auth.tenant.noMatchHint\": \"Try a different search.\",\n \"auth.tenant.showAll\": \"Show all tenants\",\n \"auth.tenant.noWorkspaces\": \"No workspaces available\",\n \"auth.tenant.noWorkspacesHint\": \"Contact your administrator to be added to a tenant.\",\n \"auth.tenant.countOne\": \"tenant\",\n \"auth.tenant.countOther\": \"tenants\",\n \"auth.tenant.logout\": \"Log Out\",\n \"auth.tenant.editTitle\": \"Edit Tenant\",\n \"auth.tenantSettings.title\": \"Tenant Settings\",\n \"auth.tenantSettings.general\": \"General\",\n \"auth.tenantSettings.save\": \"Save Settings\",\n \"auth.tenantSettings.updated\": \"Tenant updated\",\n \"auth.tenantSettings.updateFailed\": \"Failed to update tenant\",\n \"auth.tenantSettings.namePlaceholder\": \"Tenant name\",\n \"auth.tenantSettings.nameRequired\": \"Tenant name is required\",\n \"auth.tenantSettings.descriptionPlaceholder\": \"Brief description\",\n \"auth.tenantSettings.logoUrlHelp\": \"e.g. https://example.com/logo.png or data:image/png;base64,iVBORw...\",\n \"auth.tenantSettings.coordinatorMentionLabel\": \"Coordinator mention name\",\n \"auth.tenantSettings.coordinatorMentionHelp\": \"Handle for the room coordinator bot (e.g. @room-coordinator). Lowercase; 2–32 chars; letters/digits/_/-, starting with a letter. Applies to newly created group rooms.\",\n \"auth.tenantSettings.coordinatorMentionInvalid\": \"Lowercase; 2–32 chars; start with a letter\",\n \"auth.user.profile\": \"Profile\",\n \"auth.user.settings\": \"Settings\",\n \"auth.user.changePassword\": \"Change password\",\n \"auth.user.logout\": \"Log out\",\n \"auth.user.notifications\": \"Notifications\",\n \"auth.user.language\": \"Language\",\n \"auth.user.editTenant\": \"Edit Tenant\",\n \"auth.user.switchTenant\": \"Switch Tenant\",\n \"auth.user.currentWorkspace\": \"Current Workspace\",\n \"auth.user.loggingOut\": \"Logging out...\",\n \"auth.protected.title\": \"Authentication Required\",\n \"auth.protected.description\": \"Please log in to access this page.\",\n \"auth.notifications.on\": \"On\",\n \"auth.notifications.off\": \"Off\",\n \"auth.tenantLogo.alt\": \"{{name}} logo\",\n \"auth.tenantLogo.altFallback\": \"Tenant logo\",\n \"auth.appSwitcher.title\": \"Switch App\",\n \"auth.appSwitcher.search\": \"Search apps\",\n \"auth.appSwitcher.empty\": \"No apps registered\",\n \"auth.appSwitcher.current\": \"Current\",\n \"auth.modelProviders.title\": \"Model Providers\",\n \"auth.modelProviders.add\": \"Add Provider\",\n \"auth.modelProviders.apiKey\": \"API Key\",\n \"auth.modelProviders.baseUrl\": \"Base URL\",\n \"auth.modelProviders.modelName\": \"Model Name\",\n \"auth.modelProviders.edit\": \"Edit Provider\",\n \"auth.modelProviders.deleteTitle\": \"Delete model provider\",\n \"auth.modelProviders.loadFailed\": \"Failed to load model providers\",\n \"auth.modelProviders.empty\": \"No model providers\",\n \"auth.modelProviders.emptyHint\": \"Click \\\"Add Provider\\\" to connect an upstream\",\n \"auth.modelProviders.namePlaceholder\": \"e.g., openai-prod\",\n \"auth.modelProviders.nameHelp\": \"Unique within this tenant. Shown as the model key prefix.\",\n \"auth.modelProviders.displayName\": \"Display Name\",\n \"auth.modelProviders.displayNamePlaceholder\": \"e.g., OpenAI (production)\",\n \"auth.modelProviders.baseUrlPlaceholder\": \"e.g., https://api.openai.com/v1\",\n \"auth.modelProviders.baseUrlHelp\": \"The base address only — not a full endpoint path such as /v1/models or /v1/chat/completions; the gateway appends the path itself. Any OpenAI-compatible upstream works, including a self-hosted vLLM or Ollama on a private address.\",\n \"auth.modelProviders.testLatency\": \"Test latency\",\n \"auth.modelProviders.listModels\": \"List models\",\n \"auth.modelProviders.enabledCount\": \"{{enabled}} / {{total}} enabled\",\n \"auth.modelProviders.keyConfigured\": \"Configured — not shown\",\n \"auth.modelProviders.keyReplacedOnSave\": \"The new key replaces the stored one on save.\",\n \"auth.modelProviders.keyStoredOnServer\": \"A key is stored on the server and is never sent back.\",\n \"auth.modelProviders.keyStoredOnServerHint\": \"A key is stored on the server (ends in {{hint}}) and is never sent back.\",\n \"auth.modelProviders.replaceKey\": \"Replace key\",\n \"auth.modelProviders.keyNotStored\": \"Optional. Leave blank for a server that needs no authentication — a self-hosted Ollama, vLLM or LM Studio, for example. Stored encrypted and never sent back to the browser.\",\n \"auth.modelProviders.requestProtocol\": \"Request protocol\",\n \"auth.modelProviders.requestProtocolHelp\": \"Decides the route and the request body. Chat Completions posts messages to /v1/chat/completions; the Responses API posts input to /v1/responses. Getting it wrong shows up as unrecognised parameters, a missing route, or endless retries.\",\n \"auth.modelProviders.styleChatCompletions\": \"Chat Completions (/v1/chat/completions)\",\n \"auth.modelProviders.styleResponses\": \"Responses (/v1/responses)\",\n \"auth.modelProviders.saveProvider\": \"Save provider\",\n \"auth.modelProviders.createProvider\": \"Create provider\",\n \"auth.modelProviders.templateHint\": \"Pick a service to prefill its base URL, or Custom to fill everything in yourself. Every field stays editable afterwards.\",\n \"auth.modelProviders.templateCustom\": \"Custom\",\n \"auth.modelProviders.templateOllama\": \"Ollama (local)\",\n \"auth.modelProviders.templateVllm\": \"vLLM (local)\",\n \"auth.modelProviders.templateLmstudio\": \"LM Studio (local)\",\n \"auth.modelProviders.syncApiModels\": \"Sync API models\",\n \"auth.modelProviders.saveSelection\": \"Save selection\",\n \"auth.modelProviders.selectAllNew\": \"Select all new\",\n \"auth.modelProviders.clear\": \"Clear\",\n \"auth.modelProviders.newSelected\": \"{{selected}} of {{total}} new selected\",\n \"auth.modelProviders.droppedBanner\": \"{{count}} dropped upstream — kept and flagged, not deleted\",\n \"auth.modelProviders.droppedUpstream\": \"dropped upstream\",\n \"auth.modelProviders.configured\": \"configured\",\n \"auth.modelProviders.readingUpstream\": \"Reading the upstream model list…\",\n \"auth.modelProviders.noModelsYet\": \"No models yet. Use \\\"Sync API models\\\" to pull the list, or add one by hand.\",\n \"auth.modelProviders.remove\": \"Remove\",\n \"auth.modelProviders.removeModelTitle\": \"Remove \\\"{{modelId}}\\\"?\",\n \"auth.modelProviders.referencesStopResolving\": \"Any agent or eval configuration referencing it will stop resolving.\",\n \"auth.modelProviders.referencesStopResolvingPlural\": \"Any agent or eval configuration referencing them will stop resolving.\",\n \"auth.modelProviders.removeDefaultModel\": \"This is the tenant's default model. Make another model the default first, then remove this one.\",\n \"auth.modelProviders.removed\": \"Model removed\",\n \"auth.modelProviders.removeFailed\": \"Failed to remove model\",\n \"auth.modelProviders.models\": \"Models\",\n \"auth.modelProviders.modelsFor\": \"Models — {{name}}\",\n \"auth.modelProviders.modelsAdded\": \"{{count}} model(s) added\",\n \"auth.modelProviders.modelsAddedTo\": \"{{count}} model(s) added to {{name}}\",\n \"auth.modelProviders.noNewModels\": \"No new models to add\",\n \"auth.modelProviders.noNewModelsFor\": \"No new models for {{name}}\",\n \"auth.modelProviders.saveModelsFailed\": \"Failed to save models\",\n \"auth.modelProviders.nameAndBaseUrlRequired\": \"Name and Base URL are required\",\n \"auth.modelProviders.replacementKeyRequired\": \"Enter the replacement key, or cancel the replacement\",\n \"auth.modelProviders.created\": \"Model provider created\",\n \"auth.modelProviders.updated\": \"Model provider updated\",\n \"auth.modelProviders.deleted\": \"Model provider deleted\",\n \"auth.modelProviders.saveFailed\": \"Failed to save model provider\",\n \"auth.modelProviders.updateFailed\": \"Failed to update provider\",\n \"auth.modelProviders.deleteFailed\": \"Failed to delete model provider\",\n \"auth.modelProviders.probeFailed\": \"Probe failed\",\n \"auth.modelProviders.modelCount\": \"{{count}} models ({{enabled}} enabled)\",\n \"auth.modelProviders.disabledSuffix\": \" · disabled\",\n \"auth.modelProviders.deleteConfirm\": \"Delete {{name}}?\",\n \"auth.modelProviders.deleteAlsoModels\": \"This also deletes the {{count}} models it provides.\",\n \"auth.modelProviders.probeFailure.authFailed\": \"The upstream rejected these credentials (401/403). Check the API key is correct, current, and allowed to call this service.\",\n \"auth.modelProviders.probeFailure.unreachable\": \"The base URL is unreachable. Usually a typo, or a full endpoint path pasted where the base address belongs.\",\n \"auth.modelProviders.probeFailure.redirectBlocked\": \"The upstream redirected. Enter the final address directly — the gateway does not follow redirects.\",\n \"auth.modelProviders.probeFailure.timeout\": \"The upstream did not respond in time. The service may be down, or the link slow.\",\n \"auth.modelProviders.probeFailure.rateLimited\": \"The upstream rate limited the request (429). Try again shortly.\",\n \"auth.modelProviders.probeFailure.invalidResponse\": \"The upstream answered, but not with a model list. Confirm the address serves an OpenAI-compatible /v1/models.\",\n \"auth.modelProviders.probeFailure.generic\": \"Check the base URL and API key, and that the request protocol matches what the upstream serves.\",\n \"auth.modelProviders.visionTitle\": \"Vision\",\n \"auth.modelProviders.visionEnabled\": \"Enabled\",\n \"auth.modelProviders.visionDisabled\": \"Disabled\",\n \"auth.modelProviders.visionHelp\": \"Reads images. Agents refuse to open image files with a model that does not have this on.\",\n \"auth.modelProviders.visionTurnOn\": \"Turn on\",\n \"auth.modelProviders.visionTurnOff\": \"Turn off\",\n \"auth.modelProviders.visionAriaOn\": \"Reads images. Click to turn off.\",\n \"auth.modelProviders.visionAriaOff\": \"No image support. Click to enable.\",\n \"auth.modelProviders.visionMarked\": \"Model marked as reading images\",\n \"auth.modelProviders.visionCleared\": \"Image support cleared\",\n \"auth.modelProviders.visionUpdateFailed\": \"Failed to update model\",\n \"auth.modelProviders.addModel\": \"Add model\",\n \"auth.modelProviders.editModel\": \"Edit model\",\n \"auth.modelProviders.modelIdLabel\": \"Model ID\",\n \"auth.modelProviders.modelIdHelp\": \"Exactly as the upstream names it — a mismatch surfaces later as \\\"model not found\\\". It is sent as typed: an upstream that publishes no list gives nothing to check it against.\",\n \"auth.modelProviders.extraConfigLabel\": \"Extra config\",\n \"auth.modelProviders.extraConfigHelp\": \"A JSON object merged over the provider's settings — temperature, maxTokens, modelKwargs and so on. Empty means no per-model config. It cannot change where the request goes: the provider's address and credential always win.\",\n \"auth.modelProviders.modelIdRequired\": \"Model ID is required\",\n \"auth.modelProviders.extraInvalidJson\": \"Extra config is not valid JSON\",\n \"auth.modelProviders.extraNotObject\": \"Extra config must be a JSON object\",\n \"auth.modelProviders.modelAdded\": \"Model added\",\n \"auth.modelProviders.modelUpdated\": \"Model updated\",\n \"auth.modelProviders.modelSaveFailed\": \"Failed to save model\",\n \"auth.modelProviders.badgeDefault\": \"default\",\n \"auth.modelProviders.badgeCustomConfig\": \"custom config\",\n \"auth.modelProviders.ariaEnabled\": \"Enabled\",\n \"auth.modelProviders.ariaEditModelConfig\": \"Edit model config\",\n \"auth.modelProviders.ariaRemoveModel\": \"Remove {{modelId}}\",\n \"auth.modelProviders.ariaDefaultNotRemovable\": \"Default model cannot be removed\",\n \"auth.modelProviders.defaultModelTitle\": \"Default model\",\n \"auth.modelProviders.defaultModelHelp\": \"Used wherever something needs a model and none is chosen: an agent with no model configured, the personal assistant, an eval run with no judge model, and reading an image.\",\n \"auth.modelProviders.defaultModelPlaceholder\": \"Not set — the deployment's default model is used\",\n \"auth.modelProviders.defaultModelEmpty\": \"Add a provider and its models first\",\n \"auth.modelProviders.defaultModelUpdated\": \"Default model updated\",\n \"auth.modelProviders.defaultModelFailed\": \"Failed to set the default model\",\n \"auth.error.passwordMismatch\": \"Passwords do not match\",\n \"auth.error.registerFailed\": \"Registration failed\",\n \"auth.error.invalidCredentials\": \"Invalid email or password\",\n \"auth.error.generic\": \"Something went wrong. Please try again.\",\n \"auth.error.loginFailed\": \"Login failed\",\n \"auth.error.unauthorized\": \"Unauthorized\",\n \"auth.error.selectTenantFailed\": \"Failed to select tenant\",\n \"auth.error.fetchTenantsFailed\": \"Failed to fetch tenants\",\n \"auth.error.fetchUsersFailed\": \"Failed to fetch users\",\n \"auth.error.refreshUserFailed\": \"Failed to refresh user\",\n \"auth.error.changePasswordFailed\": \"Failed to change password\",\n \"auth.success.registered\": \"Registration successful!\"\n }\n}\n","{\n \"messages\": {\n \"auth.login.title\": \"欢迎回来\",\n \"auth.login.subtitle\": \"登录你的账号\",\n \"auth.login.submit\": \"登录\",\n \"auth.login.forgotPassword\": \"忘记密码?\",\n \"auth.login.noAccount\": \"还没有账号?\",\n \"auth.login.createOne\": \"立即注册\",\n \"auth.register.title\": \"创建账号\",\n \"auth.register.subtitle\": \"开启你的使用之旅\",\n \"auth.register.submit\": \"创建账号\",\n \"auth.register.hasAccount\": \"已经有账号了?\",\n \"auth.register.success\": \"账号创建成功\",\n \"auth.changePassword.title\": \"修改密码\",\n \"auth.changePassword.submit\": \"修改密码\",\n \"auth.changePassword.success\": \"密码修改成功\",\n \"auth.changePassword.failed\": \"修改密码失败\",\n \"auth.changePassword.currentRequired\": \"请输入当前密码\",\n \"auth.changePassword.newRequired\": \"请输入新密码\",\n \"auth.changePassword.confirmRequired\": \"请再次输入新密码\",\n \"auth.changePassword.tooShort\": \"密码至少需要 6 个字符\",\n \"auth.field.email\": \"邮箱\",\n \"auth.field.password\": \"密码\",\n \"auth.field.fullName\": \"姓名\",\n \"auth.field.confirmPassword\": \"确认密码\",\n \"auth.field.currentPassword\": \"当前密码\",\n \"auth.field.newPassword\": \"新密码\",\n \"auth.field.confirmNewPassword\": \"确认新密码\",\n \"auth.field.name\": \"名称\",\n \"auth.field.description\": \"描述\",\n \"auth.field.logoUrl\": \"Logo URL\",\n \"auth.tenant.title\": \"选择租户\",\n \"auth.tenant.selectTitle\": \"选择租户\",\n \"auth.tenant.chooseDescription\": \"请选择要继续的租户\",\n \"auth.tenant.description\": \"欢迎,{{name}}!请选择要进入的租户\",\n \"auth.tenant.empty.title\": \"欢迎,{{name}}!\",\n \"auth.tenant.empty.noAccess\": \"你还没有任何租户的访问权限。\",\n \"auth.tenant.empty.contactAdmin\": \"请联系管理员为你分配租户。\",\n \"auth.tenant.searchPlaceholder\": \"搜索租户...\",\n \"auth.tenant.searchAriaLabel\": \"搜索租户\",\n \"auth.tenant.noMatch\": \"没有匹配的租户\",\n \"auth.tenant.noMatchHint\": \"换个关键词试试。\",\n \"auth.tenant.showAll\": \"显示全部租户\",\n \"auth.tenant.noWorkspaces\": \"暂无可用工作区\",\n \"auth.tenant.noWorkspacesHint\": \"请联系管理员将你加入某个租户。\",\n \"auth.tenant.countOne\": \"个租户\",\n \"auth.tenant.countOther\": \"个租户\",\n \"auth.tenant.logout\": \"退出登录\",\n \"auth.tenant.editTitle\": \"编辑租户\",\n \"auth.tenantSettings.title\": \"租户设置\",\n \"auth.tenantSettings.general\": \"通用\",\n \"auth.tenantSettings.save\": \"保存设置\",\n \"auth.tenantSettings.updated\": \"租户已更新\",\n \"auth.tenantSettings.updateFailed\": \"更新租户失败\",\n \"auth.tenantSettings.namePlaceholder\": \"租户名称\",\n \"auth.tenantSettings.nameRequired\": \"请输入租户名称\",\n \"auth.tenantSettings.descriptionPlaceholder\": \"简要描述\",\n \"auth.tenantSettings.logoUrlHelp\": \"例如 https://example.com/logo.png 或 data:image/png;base64,iVBORw...\",\n \"auth.tenantSettings.coordinatorMentionLabel\": \"协调者提及名\",\n \"auth.tenantSettings.coordinatorMentionHelp\": \"群聊协调机器人使用的标识(例如 @room-coordinator)。小写;2–32 个字符;仅限字母/数字/_/-,以字母开头。仅对新创建的群组房间生效。\",\n \"auth.tenantSettings.coordinatorMentionInvalid\": \"小写;2–32 个字符;以字母开头\",\n \"auth.user.profile\": \"个人资料\",\n \"auth.user.settings\": \"设置\",\n \"auth.user.changePassword\": \"修改密码\",\n \"auth.user.logout\": \"退出登录\",\n \"auth.user.notifications\": \"通知\",\n \"auth.user.language\": \"语言\",\n \"auth.user.editTenant\": \"编辑租户\",\n \"auth.user.switchTenant\": \"切换租户\",\n \"auth.user.currentWorkspace\": \"当前工作区\",\n \"auth.user.loggingOut\": \"正在退出登录...\",\n \"auth.protected.title\": \"需要登录\",\n \"auth.protected.description\": \"请登录后访问此页面。\",\n \"auth.notifications.on\": \"开启\",\n \"auth.notifications.off\": \"关闭\",\n \"auth.tenantLogo.alt\": \"{{name}} 的标志\",\n \"auth.tenantLogo.altFallback\": \"租户标志\",\n \"auth.appSwitcher.title\": \"切换应用\",\n \"auth.appSwitcher.search\": \"搜索应用\",\n \"auth.appSwitcher.empty\": \"暂无已注册的应用\",\n \"auth.appSwitcher.current\": \"当前\",\n \"auth.modelProviders.title\": \"模型服务商\",\n \"auth.modelProviders.add\": \"添加服务商\",\n \"auth.modelProviders.apiKey\": \"API Key\",\n \"auth.modelProviders.baseUrl\": \"Base URL\",\n \"auth.modelProviders.modelName\": \"模型名称\",\n \"auth.modelProviders.edit\": \"编辑服务商\",\n \"auth.modelProviders.deleteTitle\": \"删除模型服务商\",\n \"auth.modelProviders.loadFailed\": \"加载模型服务商失败\",\n \"auth.modelProviders.empty\": \"暂无模型服务商\",\n \"auth.modelProviders.emptyHint\": \"点击「添加服务商」接入一个上游\",\n \"auth.modelProviders.namePlaceholder\": \"例如 openai-prod\",\n \"auth.modelProviders.nameHelp\": \"在本租户内唯一。会作为模型 key 的前缀展示。\",\n \"auth.modelProviders.displayName\": \"显示名称\",\n \"auth.modelProviders.displayNamePlaceholder\": \"例如 OpenAI (production)\",\n \"auth.modelProviders.baseUrlPlaceholder\": \"例如 https://api.openai.com/v1\",\n \"auth.modelProviders.baseUrlHelp\": \"只填基础地址 — 不要填 /v1/models 或 /v1/chat/completions 这类完整端点路径;网关会自行拼接路径。任何兼容 OpenAI 的上游都可以,包括私有地址上自建的 vLLM 或 Ollama。\",\n \"auth.modelProviders.testLatency\": \"测试延迟\",\n \"auth.modelProviders.listModels\": \"列出模型\",\n \"auth.modelProviders.enabledCount\": \"已启用 {{enabled}} / {{total}}\",\n \"auth.modelProviders.keyConfigured\": \"已配置 — 不展示\",\n \"auth.modelProviders.keyReplacedOnSave\": \"保存后新密钥会替换已存储的密钥。\",\n \"auth.modelProviders.keyStoredOnServer\": \"服务器已存储一个密钥,且不会回传。\",\n \"auth.modelProviders.keyStoredOnServerHint\": \"服务器已存储一个密钥(以 {{hint}} 结尾),且不会回传。\",\n \"auth.modelProviders.replaceKey\": \"替换密钥\",\n \"auth.modelProviders.keyNotStored\": \"可选。无需认证的服务可留空 —— 例如自建的 Ollama、vLLM 或 LM Studio。加密存储,且不会回传给浏览器。\",\n \"auth.modelProviders.requestProtocol\": \"请求协议\",\n \"auth.modelProviders.requestProtocolHelp\": \"决定请求的路由和请求体。Chat Completions 会把 messages 发到 /v1/chat/completions;Responses API 会把 input 发到 /v1/responses。选错会表现为参数无法识别、路由不存在,或无限重试。\",\n \"auth.modelProviders.styleChatCompletions\": \"Chat Completions(/v1/chat/completions)\",\n \"auth.modelProviders.styleResponses\": \"Responses(/v1/responses)\",\n \"auth.modelProviders.saveProvider\": \"保存服务商\",\n \"auth.modelProviders.createProvider\": \"创建服务商\",\n \"auth.modelProviders.templateHint\": \"选择一个服务商以预填其 Base URL,或选择「自定义」自行填写全部内容。之后每个字段都仍可编辑。\",\n \"auth.modelProviders.templateCustom\": \"自定义\",\n \"auth.modelProviders.templateOllama\": \"Ollama(本地)\",\n \"auth.modelProviders.templateVllm\": \"vLLM(本地)\",\n \"auth.modelProviders.templateLmstudio\": \"LM Studio(本地)\",\n \"auth.modelProviders.syncApiModels\": \"同步 API 模型\",\n \"auth.modelProviders.saveSelection\": \"保存选择\",\n \"auth.modelProviders.selectAllNew\": \"全选新增项\",\n \"auth.modelProviders.clear\": \"清空\",\n \"auth.modelProviders.newSelected\": \"已选 {{selected}} / {{total}} 个新增项\",\n \"auth.modelProviders.droppedBanner\": \"{{count}} 个已从上游下架 — 保留并标记,不删除\",\n \"auth.modelProviders.droppedUpstream\": \"已从上游下架\",\n \"auth.modelProviders.configured\": \"已配置\",\n \"auth.modelProviders.readingUpstream\": \"正在读取上游模型列表…\",\n \"auth.modelProviders.noModelsYet\": \"暂无模型。使用「同步 API 模型」拉取列表,或手动添加一个。\",\n \"auth.modelProviders.remove\": \"移除\",\n \"auth.modelProviders.removeModelTitle\": \"移除「{{modelId}}」?\",\n \"auth.modelProviders.referencesStopResolving\": \"任何引用它的智能体或评测配置都将无法解析。\",\n \"auth.modelProviders.referencesStopResolvingPlural\": \"任何引用它们的智能体或评测配置都将无法解析。\",\n \"auth.modelProviders.removeDefaultModel\": \"这是该租户的默认模型。请先将默认模型改为其它模型,再移除它。\",\n \"auth.modelProviders.removed\": \"模型已移除\",\n \"auth.modelProviders.removeFailed\": \"移除模型失败\",\n \"auth.modelProviders.models\": \"模型\",\n \"auth.modelProviders.modelsFor\": \"模型 — {{name}}\",\n \"auth.modelProviders.modelsAdded\": \"已添加 {{count}} 个模型\",\n \"auth.modelProviders.modelsAddedTo\": \"已向 {{name}} 添加 {{count}} 个模型\",\n \"auth.modelProviders.noNewModels\": \"没有新增模型\",\n \"auth.modelProviders.noNewModelsFor\": \"{{name}} 没有新增模型\",\n \"auth.modelProviders.saveModelsFailed\": \"保存模型失败\",\n \"auth.modelProviders.nameAndBaseUrlRequired\": \"名称和 Base URL 为必填项\",\n \"auth.modelProviders.replacementKeyRequired\": \"请输入替换用的密钥,或取消替换\",\n \"auth.modelProviders.created\": \"模型服务商已创建\",\n \"auth.modelProviders.updated\": \"模型服务商已更新\",\n \"auth.modelProviders.deleted\": \"模型服务商已删除\",\n \"auth.modelProviders.saveFailed\": \"保存模型服务商失败\",\n \"auth.modelProviders.updateFailed\": \"更新服务商失败\",\n \"auth.modelProviders.deleteFailed\": \"删除模型服务商失败\",\n \"auth.modelProviders.probeFailed\": \"探测失败\",\n \"auth.modelProviders.modelCount\": \"{{count}} 个模型(已启用 {{enabled}} 个)\",\n \"auth.modelProviders.disabledSuffix\": \" · 已禁用\",\n \"auth.modelProviders.deleteConfirm\": \"删除 {{name}}?\",\n \"auth.modelProviders.deleteAlsoModels\": \"这也会删除它提供的 {{count}} 个模型。\",\n \"auth.modelProviders.probeFailure.authFailed\": \"上游拒绝了这组凭据(401/403)。请检查 API Key 是否正确、有效,且有权调用该服务。\",\n \"auth.modelProviders.probeFailure.unreachable\": \"无法访问该 Base URL。通常是拼写错误,或把完整端点路径填到了基础地址的位置。\",\n \"auth.modelProviders.probeFailure.redirectBlocked\": \"上游返回了重定向。请直接填写最终地址 — 网关不会跟随重定向。\",\n \"auth.modelProviders.probeFailure.timeout\": \"上游未及时响应。服务可能已不可用,或网络较慢。\",\n \"auth.modelProviders.probeFailure.rateLimited\": \"上游对请求做了限流(429)。请稍后重试。\",\n \"auth.modelProviders.probeFailure.invalidResponse\": \"上游有响应,但返回的不是模型列表。请确认该地址提供兼容 OpenAI 的 /v1/models。\",\n \"auth.modelProviders.probeFailure.generic\": \"请检查 Base URL 和 API Key,并确认请求协议与上游提供的协议一致。\",\n \"auth.modelProviders.visionTitle\": \"视觉理解\",\n \"auth.modelProviders.visionEnabled\": \"已开启\",\n \"auth.modelProviders.visionDisabled\": \"未开启\",\n \"auth.modelProviders.visionHelp\": \"具备图像理解能力。未开启时,智能体在接收图片、设计稿或截屏时会直接拒绝执行。\",\n \"auth.modelProviders.visionTurnOn\": \"开启视觉\",\n \"auth.modelProviders.visionTurnOff\": \"关闭视觉\",\n \"auth.modelProviders.visionAriaOn\": \"已开启视觉。点击关闭。\",\n \"auth.modelProviders.visionAriaOff\": \"未开启视觉。点击开启。\",\n \"auth.modelProviders.visionMarked\": \"已标记为可读图\",\n \"auth.modelProviders.visionCleared\": \"已清除读图能力\",\n \"auth.modelProviders.visionUpdateFailed\": \"更新模型失败\",\n \"auth.modelProviders.addModel\": \"添加模型\",\n \"auth.modelProviders.editModel\": \"编辑模型\",\n \"auth.modelProviders.modelIdLabel\": \"模型 ID\",\n \"auth.modelProviders.modelIdHelp\": \"必须与上游命名完全一致 —— 不一致会在调用时报「model not found」。它按原样发送:不提供模型列表的上游没有可供校验的依据。\",\n \"auth.modelProviders.extraConfigLabel\": \"额外配置\",\n \"auth.modelProviders.extraConfigHelp\": \"会合并到服务商配置之上的 JSON 对象 —— temperature、maxTokens、modelKwargs 等。留空表示不做模型级配置。它不能改变请求去向:服务商的地址与凭据始终优先。\",\n \"auth.modelProviders.modelIdRequired\": \"模型 ID 为必填项\",\n \"auth.modelProviders.extraInvalidJson\": \"额外配置不是合法的 JSON\",\n \"auth.modelProviders.extraNotObject\": \"额外配置必须是 JSON 对象\",\n \"auth.modelProviders.modelAdded\": \"模型已添加\",\n \"auth.modelProviders.modelUpdated\": \"模型已更新\",\n \"auth.modelProviders.modelSaveFailed\": \"保存模型失败\",\n \"auth.modelProviders.badgeDefault\": \"默认\",\n \"auth.modelProviders.badgeCustomConfig\": \"自定义配置\",\n \"auth.modelProviders.ariaEnabled\": \"已启用\",\n \"auth.modelProviders.ariaEditModelConfig\": \"编辑模型配置\",\n \"auth.modelProviders.ariaRemoveModel\": \"移除 {{modelId}}\",\n \"auth.modelProviders.ariaDefaultNotRemovable\": \"默认模型不可移除\",\n \"auth.modelProviders.defaultModelTitle\": \"默认模型\",\n \"auth.modelProviders.defaultModelHelp\": \"在需要模型但未指定时使用:未配置模型的智能体、个人助手、未指定评委模型的评测运行,以及读取图片。\",\n \"auth.modelProviders.defaultModelPlaceholder\": \"未设置 —— 将使用部署级默认模型\",\n \"auth.modelProviders.defaultModelEmpty\": \"请先添加服务商及其模型\",\n \"auth.modelProviders.defaultModelUpdated\": \"默认模型已更新\",\n \"auth.modelProviders.defaultModelFailed\": \"设置默认模型失败\",\n \"auth.error.passwordMismatch\": \"两次输入的密码不一致\",\n \"auth.error.registerFailed\": \"注册失败\",\n \"auth.error.invalidCredentials\": \"邮箱或密码错误\",\n \"auth.error.generic\": \"出错了,请重试。\",\n \"auth.error.loginFailed\": \"登录失败\",\n \"auth.error.unauthorized\": \"未授权\",\n \"auth.error.selectTenantFailed\": \"选择租户失败\",\n \"auth.error.fetchTenantsFailed\": \"获取租户列表失败\",\n \"auth.error.fetchUsersFailed\": \"获取用户列表失败\",\n \"auth.error.refreshUserFailed\": \"刷新用户信息失败\",\n \"auth.error.changePasswordFailed\": \"修改密码失败\",\n \"auth.success.registered\": \"注册成功!\"\n }\n}\n","{\n \"messages\": {\n \"capability.status.enabled\": \"Enabled\",\n \"capability.status.disabled\": \"Disabled\",\n \"capability.action.remove\": \"Remove {{name}}\",\n \"capability.action.removeLabel\": \"Remove\",\n \"capability.action.moveUp\": \"Move {{name}} up\",\n \"capability.action.moveDown\": \"Move {{name}} down\",\n \"capability.sections.config\": \"Config\",\n \"capability.sections.resources\": \"Resources Permission\",\n \"capability.sections.tools\": \"Tools Permission\",\n \"capability.form.title.edit\": \"Edit Runtime Profile\",\n \"capability.form.title.create\": \"Create Runtime Profile\",\n \"capability.form.sectionsAria\": \"Runtime Profile sections\",\n \"capability.form.section.profile\": \"Profile\",\n \"capability.form.profileDescription\": \"Identity and description of this Runtime Profile\",\n \"capability.form.addCapability\": \"Add capability\",\n \"capability.form.allAdded\": \"All eligible capabilities added\",\n \"capability.form.duplicateCapability\": \"This capability type is already selected\",\n \"capability.form.name\": \"Name\",\n \"capability.form.namePlaceholder\": \"Enter profile name…\",\n \"capability.form.nameRequired\": \"Name is required\",\n \"capability.form.description\": \"Description\",\n \"capability.form.descriptionPlaceholder\": \"Enter profile description…\",\n \"capability.form.enableCapability\": \"Enable {{name}} capability\",\n \"capability.form.removeCapability\": \"Remove {{name}} capability\",\n \"capability.form.submit.edit\": \"Save Profile\",\n \"capability.form.submit.create\": \"Create Profile\",\n \"capability.form.submitFailed\": \"Failed to save capability bundle\",\n \"capability.form.summary.tools\": \"{{selected}}/{{total}} tools\",\n \"capability.form.summary.toolCount\": \"{{count}} tools\",\n \"capability.form.summary.resources\": \"{{count}} resources\",\n \"capability.list.title\": \"Runtime Profiles\",\n \"capability.list.create\": \"New Runtime Profile\",\n \"capability.list.capabilities\": \"{{count}} capabilities\",\n \"capability.list.loadFailed\": \"Failed to load capability bundles\",\n \"capability.list.invalidTitle\": \"Invalid capability bundle\",\n \"capability.list.deleteInvalid\": \"Delete invalid bundle {{id}}\",\n \"capability.list.deleteTitle\": \"Delete Runtime Profile\",\n \"capability.list.deleteConfirm\": \"Delete {{name}}?\",\n \"capability.list.deleteFailed\": \"Failed to delete capability bundle.\",\n \"capability.list.bundleInUse\": \"This bundle is referenced by a project and cannot be deleted.\",\n \"capability.intro.whatIsThis\": \"What is this?\",\n \"capability.intro.title\": \"What is a Runtime Profile?\",\n \"capability.intro.closeAria\": \"Close introduction\",\n \"capability.intro.bodyLead\": \"A Runtime Profile is a\",\n \"capability.intro.bodyStrong\": \"reusable environment configuration\",\n \"capability.intro.bodyTail\": \". It controls how AI agents behave inside a project — which resources they can access, what tools they are permitted to use, and how they work.\",\n \"capability.intro.settings.label\": \"Settings\",\n \"capability.intro.settings.detail\": \"Control how it works\",\n \"capability.intro.access.label\": \"Access\",\n \"capability.intro.access.detail\": \"Authorization to connect to resources\",\n \"capability.intro.permissions.label\": \"Permissions\",\n \"capability.intro.permissions.detail\": \"Authorization to use tools on those resources\",\n \"capability.intro.footnote\": \"One or more profiles can be applied to a project. Their permissions and access are combined — no duplication.\",\n \"capability.intro.gotIt\": \"Got it\",\n \"capability.overrides.empty\": \"No field overrides.\",\n \"capability.overrides.overriddenBy\": \"Overridden by {{name}}\",\n \"capability.preview.source\": \"Source: {{name}}\",\n \"capability.preview.toolsSelected\": \"{{selected}} / {{total}} selected\",\n \"capability.preview.emptyToolSet\": \"Empty tool set (invalid)\",\n \"capability.preview.unrestricted\": \"Unrestricted\",\n \"capability.preview.allowTool\": \"Allow {{name}}\",\n \"capability.preview.unavailable\": \"Preview unavailable\",\n \"capability.preview.noneSelected\": \"No capabilities selected.\",\n \"capability.preview.overrides\": \"Overrides ({{count}})\",\n \"capability.diagram.figureTitle\": \"Profiles compose the runtime environment\",\n \"capability.diagram.figureDesc\": \"Profiles stack in order to form the environment an Agent runs in. When it runs, the Agent can only use the tools it was built with — permissions the environment opens beyond that stay unavailable.\",\n \"capability.diagram.ariaLabel\": \"Profiles combine into an environment and define what the Agent can use\",\n \"capability.diagram.profileA\": \"1. Profile A\",\n \"capability.diagram.profileB\": \"2. Profile B\",\n \"capability.diagram.profileC\": \"3. Profile C\",\n \"capability.diagram.toolsQueryWrite\": \"tools: query, write\",\n \"capability.diagram.toolsDelete\": \"tools: delete\",\n \"capability.diagram.toolsQuery\": \"tools: query\",\n \"capability.diagram.laterFieldsWin\": \"later fields win\",\n \"capability.diagram.combinedAccess\": \"Combined access\",\n \"capability.diagram.agentDefinition\": \"Agent definition\",\n \"capability.diagram.blocked\": \"(blocked)\",\n \"capability.diagram.notOpened\": \"(not opened)\",\n \"capability.diagram.availableToAgent\": \"Available to the Agent\",\n \"capability.diagram.runtimeEnvironment\": \"Runtime Environment\",\n \"capability.diagram.fields.title\": \"Fields\",\n \"capability.diagram.fields.line1\": \"Applied top to bottom; later ordinary fields win (later value overrides earlier).\",\n \"capability.diagram.fields.line2\": \"Nested ordinary fields use recursive later-value override.\",\n \"capability.diagram.tools.title\": \"Tools\",\n \"capability.diagram.tools.line1\": \"Tools selected in Profiles are combined for the environment.\",\n \"capability.diagram.tools.line2\": \"The Agent can only use tools included in its own definition.\",\n \"capability.diagram.connections.title\": \"Connections\",\n \"capability.diagram.connections.line1\": \"Connections selected in Profiles are combined into the environment.\",\n \"capability.diagram.connections.line2\": \"When Connect All is enabled, the environment automatically uses all available connections.\",\n \"capability.project.settings\": \"Project Settings\",\n \"capability.project.settingsTitle\": \"Project Settings: {{name}}\",\n \"capability.project.settingsAria\": \"Project settings\",\n \"capability.project.section.general\": \"General\",\n \"capability.project.section.members\": \"Members\",\n \"capability.project.section.runtime\": \"Runtime\",\n \"capability.project.settingsUnavailable\": \"Project settings are unavailable for this project.\",\n \"capability.project.runtimeTitle\": \"Project Runtime Environment\",\n \"capability.project.previewWarning\": \"Preview changes before saving this draft.\",\n \"capability.project.actionFailed\": \"Capability action failed\",\n \"capability.project.saved\": \"Runtime environment saved\",\n \"capability.project.saveFailed\": \"Failed to save runtime environment\",\n \"capability.project.preview\": \"Preview\",\n \"capability.project.saveEnvironment\": \"Save Environment\",\n \"capability.project.compositionRules\": \"Composition Rules\",\n \"capability.project.configureProfiles\": \"Configure Runtime Profiles\",\n \"capability.project.addProfileAria\": \"Add Runtime Profile\",\n \"capability.project.selectProfile\": \"Select a Runtime Profile\",\n \"capability.project.capabilityOne\": \"1 capability\",\n \"capability.project.capabilityMany\": \"{{count}} capabilities\",\n \"capability.project.missingFromInventory\": \"Missing from inventory\",\n \"capability.general.ariaLabel\": \"Project general settings\",\n \"capability.general.name\": \"Name\",\n \"capability.general.namePlaceholder\": \"Project name\",\n \"capability.general.nameRequired\": \"Please enter a project name\",\n \"capability.general.nameMax\": \"Project name must be less than 50 characters\",\n \"capability.general.description\": \"Description\",\n \"capability.general.descriptionPlaceholder\": \"Project description\",\n \"capability.general.kind\": \"Kind\",\n \"capability.general.kindHint\": \"Kind decides who can see this project.\",\n \"capability.general.kind.business.label\": \"Business\",\n \"capability.general.kind.business.description\": \"Only invited members can see it.\",\n \"capability.general.kind.public.label\": \"Public\",\n \"capability.general.kind.public.description\": \"Visible to everyone in this workspace.\",\n \"capability.general.kind.personal.label\": \"Personal\",\n \"capability.general.kind.personal.description\": \"Created automatically when you start a 1:1 chat.\",\n \"capability.general.kind.training.label\": \"Training\",\n \"capability.general.kind.training.description\": \"Created automatically by training flows.\",\n \"capability.general.saveChanges\": \"Save changes\",\n \"capability.general.saved\": \"Project settings saved\",\n \"capability.general.saveFailed\": \"Failed to save project settings\",\n \"capability.members.loadFailed\": \"Failed to load project members\",\n \"capability.members.actionFailed\": \"Project member action failed\",\n \"capability.members.sectionAria\": \"Project members\",\n \"capability.members.people\": \"People\",\n \"capability.members.addPerson\": \"Add person\",\n \"capability.members.peopleHint\": \"Workspace users who can open this project and its room.\",\n \"capability.members.noMembers\": \"No members yet\",\n \"capability.members.roleFor\": \"Role for {{name}}\",\n \"capability.members.botsSectionAria\": \"Project bots\",\n \"capability.members.bots\": \"Bots\",\n \"capability.members.addBot\": \"Add bot\",\n \"capability.members.botsHint\": \"Agents that work in this project. Mention them in the room with @.\",\n \"capability.members.noBots\": \"No bots in this project yet\",\n \"capability.members.builtIn\": \"Built-in\",\n \"capability.members.pausedSuffix\": \" · paused\",\n \"capability.members.editMention\": \"Edit mention\",\n \"capability.members.editMentionFor\": \"Edit mention for {{name}}\",\n \"capability.members.resume\": \"Resume\",\n \"capability.members.pause\": \"Pause\",\n \"capability.members.resumeNamed\": \"Resume {{name}}\",\n \"capability.members.pauseNamed\": \"Pause {{name}}\",\n \"capability.members.add\": \"Add\",\n \"capability.members.user\": \"User\",\n \"capability.members.selectUser\": \"Select a workspace user\",\n \"capability.members.selectUserRequired\": \"Select a workspace user\",\n \"capability.members.allUsersAreMembers\": \"Every workspace user is already a member\",\n \"capability.members.role\": \"Role\",\n \"capability.members.assistant\": \"Assistant\",\n \"capability.members.selectAssistant\": \"Select an assistant\",\n \"capability.members.selectAssistantRequired\": \"Select an assistant\",\n \"capability.members.mentionName\": \"Mention name\",\n \"capability.members.mentionNameRequired\": \"Enter a mention name\",\n \"capability.members.mentionNameHint\": \"How you @ this bot in the room, e.g. @poetry_writer. Defaults from the assistant name.\",\n \"capability.members.removeBotTitle\": \"Remove bot?\",\n \"capability.members.removeMemberTitle\": \"Remove member?\",\n \"capability.members.removeMemberBody\": \"{{name}} will lose access to this project.\",\n \"capability.members.removeBotBody\": \"{{name}} (@{{mention}}) will be removed from this project.\",\n \"capability.members.memberAdded\": \"Member added\",\n \"capability.members.botAdded\": \"Bot added\",\n \"capability.members.botUpdated\": \"Bot updated\",\n \"capability.members.roleUpdated\": \"Member role updated\",\n \"capability.members.botResumed\": \"Bot resumed\",\n \"capability.members.botPaused\": \"Bot paused\",\n \"capability.members.memberRemoved\": \"Member removed\",\n \"capability.members.botRemoved\": \"Bot removed\",\n \"capability.project.inventoryLoadFailed\": \"Failed to load capability bundle inventory\",\n \"capability.project.capabilitiesLoadFailed\": \"Failed to load project capabilities\",\n \"capability.project.capabilitiesPreviewFailed\": \"Failed to preview project capabilities\",\n \"capability.project.capabilitiesSaveFailed\": \"Failed to save project capabilities\",\n \"capability.project.previewRequired\": \"Preview the current bundle order before saving\",\n \"capability.project.resolvePreviewErrors\": \"Resolve preview errors before saving\"\n }\n}\n","{\n \"messages\": {\n \"capability.status.enabled\": \"已启用\",\n \"capability.status.disabled\": \"已停用\",\n \"capability.action.remove\": \"移除 {{name}}\",\n \"capability.action.removeLabel\": \"移除\",\n \"capability.action.moveUp\": \"上移 {{name}}\",\n \"capability.action.moveDown\": \"下移 {{name}}\",\n \"capability.sections.config\": \"配置\",\n \"capability.sections.resources\": \"资源权限\",\n \"capability.sections.tools\": \"工具权限\",\n \"capability.form.title.edit\": \"编辑运行时配置\",\n \"capability.form.title.create\": \"新建运行时配置\",\n \"capability.form.sectionsAria\": \"运行时配置分区\",\n \"capability.form.section.profile\": \"概况\",\n \"capability.form.profileDescription\": \"该运行时配置的名称与描述\",\n \"capability.form.addCapability\": \"添加能力\",\n \"capability.form.allAdded\": \"已添加所有符合条件的能力\",\n \"capability.form.duplicateCapability\": \"该能力类型已选择\",\n \"capability.form.name\": \"名称\",\n \"capability.form.namePlaceholder\": \"请输入配置名称…\",\n \"capability.form.nameRequired\": \"名称为必填项\",\n \"capability.form.description\": \"描述\",\n \"capability.form.descriptionPlaceholder\": \"请输入配置描述…\",\n \"capability.form.enableCapability\": \"启用 {{name}} 能力\",\n \"capability.form.removeCapability\": \"移除 {{name}} 能力\",\n \"capability.form.submit.edit\": \"保存配置\",\n \"capability.form.submit.create\": \"新建配置\",\n \"capability.form.submitFailed\": \"保存运行时配置失败\",\n \"capability.form.summary.tools\": \"{{selected}}/{{total}} 个工具\",\n \"capability.form.summary.toolCount\": \"{{count}} 个工具\",\n \"capability.form.summary.resources\": \"{{count}} 个资源\",\n \"capability.list.title\": \"运行时配置\",\n \"capability.list.create\": \"新建运行时配置\",\n \"capability.list.capabilities\": \"{{count}} 项能力\",\n \"capability.list.loadFailed\": \"加载运行时配置失败\",\n \"capability.list.invalidTitle\": \"运行时配置无效\",\n \"capability.list.deleteInvalid\": \"删除无效配置 {{id}}\",\n \"capability.list.deleteTitle\": \"删除运行时配置\",\n \"capability.list.deleteConfirm\": \"删除 {{name}}?\",\n \"capability.list.deleteFailed\": \"删除运行时配置失败。\",\n \"capability.list.bundleInUse\": \"该配置已被项目引用,无法删除。\",\n \"capability.intro.whatIsThis\": \"这是什么?\",\n \"capability.intro.title\": \"什么是运行时配置?\",\n \"capability.intro.closeAria\": \"关闭说明\",\n \"capability.intro.bodyLead\": \"运行时配置是\",\n \"capability.intro.bodyStrong\": \"可复用的环境配置\",\n \"capability.intro.bodyTail\": \"。它控制 AI 智能体在项目中的行为——可以访问哪些资源、允许使用哪些工具,以及如何工作。\",\n \"capability.intro.settings.label\": \"设置\",\n \"capability.intro.settings.detail\": \"控制它的工作方式\",\n \"capability.intro.access.label\": \"访问\",\n \"capability.intro.access.detail\": \"连接资源的授权\",\n \"capability.intro.permissions.label\": \"权限\",\n \"capability.intro.permissions.detail\": \"在这些资源上使用工具的授权\",\n \"capability.intro.footnote\": \"一个项目可以应用多个配置。它们的权限与访问范围会合并——不会重复。\",\n \"capability.intro.gotIt\": \"知道了\",\n \"capability.overrides.empty\": \"没有字段覆盖。\",\n \"capability.overrides.overriddenBy\": \"被 {{name}} 覆盖\",\n \"capability.preview.source\": \"来源:{{name}}\",\n \"capability.preview.toolsSelected\": \"已选 {{selected}} / {{total}}\",\n \"capability.preview.emptyToolSet\": \"工具集为空(无效)\",\n \"capability.preview.unrestricted\": \"不限制\",\n \"capability.preview.allowTool\": \"允许 {{name}}\",\n \"capability.preview.unavailable\": \"预览不可用\",\n \"capability.preview.noneSelected\": \"未选择任何能力。\",\n \"capability.preview.overrides\": \"覆盖项({{count}})\",\n \"capability.diagram.figureTitle\": \"多个配置共同构成运行时环境\",\n \"capability.diagram.figureDesc\": \"配置按顺序叠加,构成智能体运行所处的环境。运行时,智能体只能使用它自带定义中的工具——环境额外开放的权限不会被使用。\",\n \"capability.diagram.ariaLabel\": \"配置合并为环境并定义智能体可以使用的内容\",\n \"capability.diagram.profileA\": \"1. 配置 A\",\n \"capability.diagram.profileB\": \"2. 配置 B\",\n \"capability.diagram.profileC\": \"3. 配置 C\",\n \"capability.diagram.toolsQueryWrite\": \"工具:query、write\",\n \"capability.diagram.toolsDelete\": \"工具:delete\",\n \"capability.diagram.toolsQuery\": \"工具:query\",\n \"capability.diagram.laterFieldsWin\": \"靠后的字段生效\",\n \"capability.diagram.combinedAccess\": \"合并后的访问范围\",\n \"capability.diagram.agentDefinition\": \"智能体定义\",\n \"capability.diagram.blocked\": \"(被阻止)\",\n \"capability.diagram.notOpened\": \"(未开放)\",\n \"capability.diagram.availableToAgent\": \"智能体可用\",\n \"capability.diagram.runtimeEnvironment\": \"运行时环境\",\n \"capability.diagram.fields.title\": \"字段\",\n \"capability.diagram.fields.line1\": \"自上而下应用;靠后的普通字段生效(后值覆盖前值)。\",\n \"capability.diagram.fields.line2\": \"嵌套的普通字段采用递归的后值覆盖。\",\n \"capability.diagram.tools.title\": \"工具\",\n \"capability.diagram.tools.line1\": \"各配置中选择的工具会合并到环境中。\",\n \"capability.diagram.tools.line2\": \"智能体只能使用其自身定义中包含的工具。\",\n \"capability.diagram.connections.title\": \"连接\",\n \"capability.diagram.connections.line1\": \"各配置中选择的连接会合并到环境中。\",\n \"capability.diagram.connections.line2\": \"启用「全部连接」后,环境会自动使用所有可用的连接。\",\n \"capability.project.settings\": \"项目设置\",\n \"capability.project.settingsTitle\": \"项目设置:{{name}}\",\n \"capability.project.settingsAria\": \"项目设置\",\n \"capability.project.section.general\": \"通用\",\n \"capability.project.section.members\": \"成员\",\n \"capability.project.section.runtime\": \"运行时\",\n \"capability.project.settingsUnavailable\": \"无法获取该项目的设置。\",\n \"capability.project.runtimeTitle\": \"项目运行时环境\",\n \"capability.project.previewWarning\": \"请先预览更改,再保存此草稿。\",\n \"capability.project.actionFailed\": \"能力操作失败\",\n \"capability.project.saved\": \"运行时环境已保存\",\n \"capability.project.saveFailed\": \"保存运行时环境失败\",\n \"capability.project.preview\": \"预览\",\n \"capability.project.saveEnvironment\": \"保存环境\",\n \"capability.project.compositionRules\": \"组合规则\",\n \"capability.project.configureProfiles\": \"配置运行时配置\",\n \"capability.project.addProfileAria\": \"添加运行时配置\",\n \"capability.project.selectProfile\": \"选择运行时配置\",\n \"capability.project.capabilityOne\": \"1 项能力\",\n \"capability.project.capabilityMany\": \"{{count}} 项能力\",\n \"capability.project.missingFromInventory\": \"清单中不存在\",\n \"capability.general.ariaLabel\": \"项目通用设置\",\n \"capability.general.name\": \"名称\",\n \"capability.general.namePlaceholder\": \"项目名称\",\n \"capability.general.nameRequired\": \"请输入项目名称\",\n \"capability.general.nameMax\": \"项目名称不能超过 50 个字符\",\n \"capability.general.description\": \"描述\",\n \"capability.general.descriptionPlaceholder\": \"项目描述\",\n \"capability.general.kind\": \"类型\",\n \"capability.general.kindHint\": \"类型决定谁可以看到该项目。\",\n \"capability.general.kind.business.label\": \"业务\",\n \"capability.general.kind.business.description\": \"仅受邀成员可见。\",\n \"capability.general.kind.public.label\": \"公开\",\n \"capability.general.kind.public.description\": \"工作区内所有人可见。\",\n \"capability.general.kind.personal.label\": \"个人\",\n \"capability.general.kind.personal.description\": \"发起一对一聊天时自动创建。\",\n \"capability.general.kind.training.label\": \"训练\",\n \"capability.general.kind.training.description\": \"由训练流程自动创建。\",\n \"capability.general.saveChanges\": \"保存更改\",\n \"capability.general.saved\": \"项目设置已保存\",\n \"capability.general.saveFailed\": \"保存项目设置失败\",\n \"capability.members.loadFailed\": \"加载项目成员失败\",\n \"capability.members.actionFailed\": \"项目成员操作失败\",\n \"capability.members.sectionAria\": \"项目成员\",\n \"capability.members.people\": \"成员\",\n \"capability.members.addPerson\": \"添加成员\",\n \"capability.members.peopleHint\": \"可以打开该项目及其会话的工作区用户。\",\n \"capability.members.noMembers\": \"暂无成员\",\n \"capability.members.roleFor\": \"{{name}} 的角色\",\n \"capability.members.botsSectionAria\": \"项目机器人\",\n \"capability.members.bots\": \"机器人\",\n \"capability.members.addBot\": \"添加机器人\",\n \"capability.members.botsHint\": \"在该项目中工作的智能体。在会话中用 @ 提及它们。\",\n \"capability.members.noBots\": \"该项目暂无机器人\",\n \"capability.members.builtIn\": \"内置\",\n \"capability.members.pausedSuffix\": \" · 已暂停\",\n \"capability.members.editMention\": \"编辑提及名\",\n \"capability.members.editMentionFor\": \"编辑 {{name}} 的提及名\",\n \"capability.members.resume\": \"恢复\",\n \"capability.members.pause\": \"暂停\",\n \"capability.members.resumeNamed\": \"恢复 {{name}}\",\n \"capability.members.pauseNamed\": \"暂停 {{name}}\",\n \"capability.members.add\": \"添加\",\n \"capability.members.user\": \"用户\",\n \"capability.members.selectUser\": \"选择工作区用户\",\n \"capability.members.selectUserRequired\": \"请选择工作区用户\",\n \"capability.members.allUsersAreMembers\": \"所有工作区用户都已是成员\",\n \"capability.members.role\": \"角色\",\n \"capability.members.assistant\": \"助手\",\n \"capability.members.selectAssistant\": \"选择助手\",\n \"capability.members.selectAssistantRequired\": \"请选择助手\",\n \"capability.members.mentionName\": \"提及名\",\n \"capability.members.mentionNameRequired\": \"请输入提及名\",\n \"capability.members.mentionNameHint\": \"在会话中 @ 该机器人时使用的名称,例如 @poetry_writer。默认取自助手名称。\",\n \"capability.members.removeBotTitle\": \"移除机器人?\",\n \"capability.members.removeMemberTitle\": \"移除成员?\",\n \"capability.members.removeMemberBody\": \"{{name}} 将失去该项目的访问权限。\",\n \"capability.members.removeBotBody\": \"{{name}}(@{{mention}})将从该项目中移除。\",\n \"capability.members.memberAdded\": \"成员已添加\",\n \"capability.members.botAdded\": \"机器人已添加\",\n \"capability.members.botUpdated\": \"机器人已更新\",\n \"capability.members.roleUpdated\": \"成员角色已更新\",\n \"capability.members.botResumed\": \"机器人已恢复\",\n \"capability.members.botPaused\": \"机器人已暂停\",\n \"capability.members.memberRemoved\": \"成员已移除\",\n \"capability.members.botRemoved\": \"机器人已移除\",\n \"capability.project.inventoryLoadFailed\": \"加载运行时配置清单失败\",\n \"capability.project.capabilitiesLoadFailed\": \"加载项目运行时配置失败\",\n \"capability.project.capabilitiesPreviewFailed\": \"预览项目运行时配置失败\",\n \"capability.project.capabilitiesSaveFailed\": \"保存项目运行时配置失败\",\n \"capability.project.previewRequired\": \"保存前请先预览当前配置顺序\",\n \"capability.project.resolvePreviewErrors\": \"保存前请先解决预览错误\"\n }\n}\n","{\n \"messages\": {\n \"chat.empty.createConversationFirst\": \"Please create a conversation first\",\n \"chat.empty.question\": \"Ready to turn data into insightful charts in seconds?\",\n \"chat.empty.welcomePrefix\": \"Hey\",\n \"chat.empty.userFallback\": \"there\",\n \"chat.sender.attachments\": \"Attachments\",\n \"chat.sender.uploadFile\": \"Upload File\",\n \"chat.sender.rootDirectory\": \"Root Directory\",\n \"chat.sender.filesUploading\": \"Files are still uploading...\",\n \"chat.sender.uploadFailed\": \"{{name}} file upload failed.{{reason}}\",\n \"chat.sender.fileTooLarge\": \"File must be smaller than 100MB! {{name}} is too large.\",\n \"chat.sender.thinking\": \"{{frame}} Thinking...\",\n \"chat.sender.messagesWaiting\": \"{{count}} messages waiting...\",\n \"chat.sender.placeholder\": \"Type / to see available skills, or @ to reference files\",\n \"chat.sender.moreMatches\": \"...and {{count}} more — keep typing to narrow\",\n \"chat.error.streamError\": \"Stream error\",\n \"chat.stop.superseded\": \"Response interrupted by a new message.\",\n \"chat.stop.stopped\": \"Response stopped.\",\n \"chat.layout.toggleMenu\": \"Toggle menu\",\n \"chat.layout.closeDetail\": \"Close detail panel\",\n \"chat.layout.closeTools\": \"Close tool panel\",\n \"chat.menu.branding\": \"Menu\",\n \"chat.menu.expandSidebar\": \"Expand sidebar\",\n \"chat.menu.collapseSidebar\": \"Collapse sidebar\",\n \"chat.menu.newThread\": \"New Thread\",\n \"chat.agent.fallbackName\": \"Agent\",\n \"chat.agent.selectTitle\": \"Select Agent\",\n \"chat.agent.empty\": \"No agents available\",\n \"chat.model.label\": \"Model\",\n \"chat.model.placeholder\": \"Model\",\n \"chat.workspace.selectPlaceholder\": \"Workspace\",\n \"chat.workspace.selectTitle\": \"Select Workspace\",\n \"chat.project.selectPlaceholder\": \"Project\",\n \"chat.project.selectTitle\": \"Select Project\",\n \"chat.project.empty\": \"No projects\",\n \"chat.project.nameRequired\": \"Project name is required\",\n \"chat.project.nameTooLong\": \"Name must be {{max}} characters or less\",\n \"chat.project.selectWorkspaceFirst\": \"Please select a workspace first\",\n \"chat.project.created\": \"Project \\\"{{name}}\\\" created\",\n \"chat.project.createFailed\": \"Failed to create project\",\n \"chat.project.createTitle\": \"Create New Project\",\n \"chat.project.namePlaceholder\": \"Enter project name\",\n \"chat.thread.create\": \"Create New Conversation\",\n \"chat.thread.createFailed\": \"Failed to create new thread\",\n \"chat.thread.history\": \"Conversation History\",\n \"chat.thread.refreshHistory\": \"Refresh Conversation History\",\n \"chat.thread.searchPlaceholder\": \"Search conversations…\",\n \"chat.thread.sortName\": \"Name\",\n \"chat.thread.sortUpdated\": \"Updated\",\n \"chat.thread.sortCreated\": \"Created\",\n \"chat.thread.sortAscending\": \"Ascending\",\n \"chat.thread.sortDescending\": \"Descending\",\n \"chat.thread.loading\": \"Loading conversations...\",\n \"chat.thread.noMatch\": \"No conversations match \\\"{{query}}\\\"\",\n \"chat.thread.empty\": \"No conversations yet\",\n \"chat.thread.nameLabel\": \"Conversation name\",\n \"chat.thread.saveName\": \"Save name\",\n \"chat.thread.cancelRename\": \"Cancel rename\",\n \"chat.thread.rename\": \"Rename conversation\",\n \"chat.thread.renamed\": \"Conversation renamed\",\n \"chat.thread.renameFailed\": \"Failed to rename conversation\",\n \"chat.thread.delete\": \"Delete conversation\",\n \"chat.thread.deleteTitle\": \"Delete Conversation\",\n \"chat.thread.deleteConfirm\": \"Are you sure you want to delete this conversation? This action cannot be undone.\",\n \"chat.thread.deleted\": \"Conversation deleted\",\n \"chat.thread.deleteFailed\": \"Failed to delete conversation\",\n \"chat.pin.pin\": \"Pin to Menu\",\n \"chat.pin.unpin\": \"Unpin from Menu\",\n \"chat.pin.pinTitle\": \"Pin to Menu\",\n \"chat.pin.enterName\": \"Please enter a menu name\",\n \"chat.pin.pinned\": \"Pinned to menu\",\n \"chat.pin.unpinned\": \"Unpinned from menu\",\n \"chat.pin.pinFailed\": \"Failed to pin to menu\",\n \"chat.pin.unpinFailed\": \"Failed to unpin from menu\",\n \"chat.pin.namePlaceholder\": \"Menu name (required)\",\n \"chat.pin.groupPlaceholder\": \"Group (optional, select or type new)\",\n \"chat.sideApp.unnamed\": \"Unnamed\",\n \"chat.sideApp.allTabs\": \"All tabs\",\n \"chat.sideApp.close\": \"Close\",\n \"chat.sideApp.empty\": \"Select an app to start\",\n \"chat.sideApp.componentNotFound\": \"Component view not found\",\n \"chat.todo.title\": \"Todos\",\n \"chat.todo.noTasks\": \"No tasks\",\n \"chat.todo.inProgress\": \"{{count}} in progress\",\n \"chat.todo.completed\": \"{{count}} completed\",\n \"chat.todo.progressTooltip\": \"{{completed}} / {{total}} tasks completed\",\n \"chat.task.title\": \"Tasks\",\n \"chat.task.noTasks\": \"No tasks\",\n \"chat.task.inProgress\": \"{{count}} in progress\",\n \"chat.task.completed\": \"{{count}} completed\",\n \"chat.task.progressTooltip\": \"{{completed}} / {{total}} tasks completed\",\n \"chat.customMenu.invalid\": \"Invalid menu item\",\n \"chat.customMenu.empty\": \"(empty)\",\n \"chat.customMenu.htmlPage\": \"Custom HTML Page\",\n \"chat.customMenu.componentNotFound\": \"Component \\\"{{name}}\\\" not found\",\n \"chat.customMenu.invalidMcpApp\": \"Invalid MCP App menu item\",\n \"chat.customMenu.unknownType\": \"Unknown content type: {{type}}\",\n \"chat.customMenu.fileFallback\": \"File\",\n \"chat.team.workspace\": \"Team Workspace\",\n \"chat.team.title\": \"Teammates\",\n \"chat.team.member\": \"1 member\",\n \"chat.team.members\": \"{{count}} members\",\n \"chat.file.changed\": \"File Changed\",\n \"chat.file.explorer\": \"File Explorer\",\n \"chat.file.count\": \"{{count}} files\",\n \"chat.mailbox.title\": \"Team Mailbox\",\n \"chat.mailbox.label\": \"Mailbox\",\n \"chat.mailbox.count\": \"{{count}} mails\",\n \"chat.copilot.agentBuilder\": \"Agent Builder\",\n \"chat.copilot.viewing\": \"Viewing: {{name}}\",\n \"chat.copilot.close\": \"Close copilot\",\n \"chat.copilot.selectWorkflow\": \"Select a workflow to start\",\n \"chat.environment.title\": \"Environment\",\n \"chat.environment.tools\": \"Tools\",\n \"chat.environment.capabilities\": \"Capabilities\",\n \"chat.environment.subAgents\": \"Sub-agents\",\n \"chat.environment.runtime\": \"Runtime\",\n \"chat.environment.model\": \"Model: {{model}}\",\n \"chat.environment.db\": \"DB: {{db}}\",\n \"chat.environment.skills\": \"Skills: {{skills}}\",\n \"chat.environment.channels\": \"Channels\",\n \"chat.environment.noChannels\": \"No channels configured\",\n \"chat.viewToggle.chat\": \"Chat\",\n \"chat.viewToggle.graph\": \"Execution\",\n \"chat.viewToggle.aria\": \"Switch view\",\n \"chat.trace.backToCurrent\": \"Back to current\",\n \"chat.trace.collapseOlder\": \"Collapse older\",\n \"chat.trace.expandAll\": \"Expand all\",\n \"chat.trace.parallelBadge\": \"Parallel ×{{count}}\",\n \"chat.trace.jumpToChat\": \"Chat\",\n \"chat.trace.phase.understand\": \"Understand & plan\",\n \"chat.trace.phase.act\": \"Execute\",\n \"chat.trace.phase.delegate\": \"Delegate\",\n \"chat.trace.phase.answer\": \"Answer\",\n \"chat.trace.phase.earlier\": \"Earlier\",\n \"chat.trace.node.human\": \"User\",\n \"chat.trace.summary.steps\": \"{{count}} steps\",\n \"chat.trace.summary.steps_one\": \"{{count}} step\",\n \"chat.trace.summary.steps_other\": \"{{count}} steps\",\n \"chat.menu.history\": \"History\",\n \"chat.error.resumeStreamError\": \"Resume stream error\",\n \"chat.error.copySucceeded\": \"Error details copied\",\n \"chat.error.copyFailed\": \"Failed to copy\",\n \"chat.error.sectionFallback\": \"this section\",\n \"chat.error.renderFailed\": \"Failed to render {{label}}\",\n \"chat.error.details\": \"Error details\",\n \"chat.error.copyDetails\": \"Copy Details\",\n \"chat.error.boundary.sidebar\": \"Sidebar\",\n \"chat.error.boundary.chatPanel\": \"Chat panel\",\n \"chat.error.boundary.detailPanel\": \"Detail panel\",\n \"chat.error.boundary.toolsPanel\": \"Tools panel\",\n \"chat.error.boundary.thread\": \"Thread\",\n \"chat.error.boundary.chatShell\": \"Chat shell\",\n \"chat.agent.defaultName\": \"AI Assistant\",\n \"chat.file.toggleDirectory\": \"Toggle file directory\",\n \"chat.conversation.creating\": \"Creating conversation...\",\n \"chat.tools.loading\": \"Loading tools...\",\n \"chat.skills.loading\": \"Loading skills...\",\n \"chat.schedule.none\": \"No schedules\",\n \"chat.schedule.scheduledCount\": \"{{count}} scheduled\",\n \"chat.schedule.totalCount\": \"{{count}} total\",\n \"chat.topology.outgoing\": \"{{count}} out\",\n \"chat.topology.incoming\": \"{{count}} in\",\n \"chat.config.executableRequired\": \"Choose a template or enter a custom executable\",\n \"chat.voice.unavailable\": \"Voice input unavailable: No STT model configured\",\n \"chat.voice.transcribing\": \"Transcribing...\",\n \"chat.voice.retryHint\": \"Transcription failed, tap to retry\",\n \"chat.voice.rerecordHint\": \"Tap to re-record\",\n \"chat.voice.stopRecordingAuto\": \"Stop recording ({{seconds}}s, {{segments}} segments transcribed)\",\n \"chat.voice.stopRecording\": \"Stop recording ({{seconds}}s)\",\n \"chat.voice.start\": \"Start voice input\",\n \"chat.voice.noModel\": \"No STT model configured\",\n \"chat.voice.uploading\": \"Uploading...\",\n \"chat.voice.modeAuto\": \"Auto\",\n \"chat.voice.modeManual\": \"Manual\",\n \"chat.voice.segments\": \"{{count}} segments\",\n \"chat.voice.segments_one\": \"{{count}} segment\",\n \"chat.voice.segments_other\": \"{{count}} segments\",\n \"chat.voice.recordingStatus\": \"{{mode}} mode, recording {{time}}{{chunks}} — tap to stop\",\n \"chat.voice.errNotSupported\": \"Voice input not supported. Use Chrome, Edge, or Safari.\",\n \"chat.voice.errFormatNotSupported\": \"Audio recording format not supported in this browser.\",\n \"chat.voice.errRecordingFailed\": \"Recording failed, please try again.\",\n \"chat.voice.errRecordInitFailed\": \"Recording initialization failed.\",\n \"chat.voice.errMicPermission\": \"Please allow microphone access in browser settings\",\n \"chat.voice.errMicAccess\": \"Cannot access microphone\",\n \"chat.voice.errStopTimeout\": \"Stop recording timed out\",\n \"chat.voice.errTranscribeFailed\": \"Transcription failed\",\n \"chat.voice.errRetryFailed\": \"Retry failed\",\n \"chat.analysis.quickTitle\": \"Quick Analysis\",\n \"chat.analysis.categoriesTitle\": \"Analysis Categories\",\n \"chat.analysis.viewMore\": \"View more analysis options\",\n \"chat.analysis.category.sales\": \"Sales Analysis\",\n \"chat.analysis.category.financial\": \"Financial Analysis\",\n \"chat.analysis.category.operations\": \"Operations Analysis\",\n \"chat.analysis.sales.comprehensive.label\": \"Comprehensive Sales Analysis\",\n \"chat.analysis.sales.comprehensive.description\": \"Analyze sales revenue by specified dimensions with trend analysis and growth opportunities\",\n \"chat.analysis.sales.performance.label\": \"Sales Performance Analysis\",\n \"chat.analysis.sales.performance.description\": \"Aggregate omni-channel sales, evaluate performance achievement rate, and compare with historical growth\",\n \"chat.analysis.sales.topCustomers.label\": \"Top Customer Analysis\",\n \"chat.analysis.sales.topCustomers.description\": \"Identify top 10% customers by sales volume, analyze their purchase preferences and churn risks\",\n \"chat.analysis.sales.trend.label\": \"Sales Trend Analysis\",\n \"chat.analysis.sales.trend.description\": \"Analyze sales peaks and troughs through time series, forecast sales trends for the next quarter\",\n \"chat.analysis.sales.repPerformance.label\": \"Sales Representative Performance\",\n \"chat.analysis.sales.repPerformance.description\": \"Quantitatively evaluate conversion rates, average order value, and contract fulfillment efficiency of each sales representative\",\n \"chat.analysis.sales.regional.label\": \"Regional Sales Comparison\",\n \"chat.analysis.sales.regional.description\": \"Compare sales penetration across different geographic regions, identify markets with abnormal performance\",\n \"chat.analysis.sales.productVolume.label\": \"Product Volume Analysis\",\n \"chat.analysis.sales.productVolume.description\": \"Count sales quantities of each SKU, identify best-selling products and slow-moving inventory\",\n \"chat.analysis.financial.grossMargin.label\": \"Product Line Gross Margin Analysis\",\n \"chat.analysis.financial.grossMargin.description\": \"Compare gross margin levels across product lines, identify high-margin contributors and loss-making businesses\",\n \"chat.analysis.financial.customerProfitability.label\": \"Customer Profitability Analysis\",\n \"chat.analysis.financial.customerProfitability.description\": \"Analyze net profit contribution by different customer dimensions, identify core high-quality customers and high-service-cost customers\",\n \"chat.analysis.financial.monthlyReport.label\": \"Monthly Financial Report\",\n \"chat.analysis.financial.monthlyReport.description\": \"Based on this month's accounting data, automatically generate income statement, balance sheet, and cash flow statement summaries\",\n \"chat.analysis.financial.ratio.label\": \"Financial Ratio Analysis\",\n \"chat.analysis.financial.ratio.description\": \"Calculate and analyze key indicators such as current ratio, debt-to-asset ratio, and ROE to assess company financial health\",\n \"chat.analysis.financial.cashflow.label\": \"Cash Flow Analysis\",\n \"chat.analysis.financial.cashflow.description\": \"Track cash flows from operating, investing, and financing activities, analyze reasons for changes in net cash flow\",\n \"chat.analysis.financial.costStructure.label\": \"Cost Structure Analysis\",\n \"chat.analysis.financial.costStructure.description\": \"Break down direct costs and indirect expenses of products or services, identify core drivers affecting total costs\",\n \"chat.analysis.operations.supplierEvaluation.label\": \"Supplier Performance Evaluation\",\n \"chat.analysis.operations.supplierEvaluation.description\": \"Based on delivery quality, response speed, and price competitiveness, conduct comprehensive rating of core suppliers\",\n \"chat.analysis.operations.inventoryTurnover.label\": \"Inventory Turnover Analysis\",\n \"chat.analysis.operations.inventoryTurnover.description\": \"Calculate inventory turnover rate and days, identify slow-moving inventory materials to release capital\",\n \"chat.analysis.operations.deliveryOntime.label\": \"On-Time Delivery Analysis\",\n \"chat.analysis.operations.deliveryOntime.description\": \"Count order lead time from placement to delivery, analyze core links causing delayed deliveries\",\n \"chat.analysis.operations.procurementCost.label\": \"Procurement Cost Analysis\",\n \"chat.analysis.operations.procurementCost.description\": \"Monitor raw material procurement price fluctuations, analyze impact of procurement premiums or savings on profit\",\n \"chat.analysis.operations.productionEfficiency.label\": \"Production Efficiency Analysis\",\n \"chat.analysis.operations.productionEfficiency.description\": \"Calculate Overall Equipment Effectiveness (OEE) or per capita output, identify efficiency bottlenecks on production lines\",\n \"chat.analysis.operations.orderFulfillment.label\": \"Order Fulfillment Analysis\",\n \"chat.analysis.operations.orderFulfillment.description\": \"Analyze the full process from order receipt to final delivery, optimize order processing response time\",\n \"chat.skillCategory.businessAnalysis\": \"Business Analysis\",\n \"chat.skillCategory.codeGeneration\": \"Code Generation\",\n \"chat.skillCategory.documentProcessing\": \"Document Processing\",\n \"chat.skillCategory.dataAnalysis\": \"Data Analysis\",\n \"chat.skillCategory.toolOperations\": \"Tool Operations\",\n \"chat.skillCategory.general\": \"General Skills\",\n \"chat.skillCategory.global\": \"Global Skills\",\n \"chat.skillCategory.viewMore\": \"View more skill categories\",\n \"chat.skillCategory.quickActions\": \"✨ Quick actions\"\n }\n}\n","{\n \"messages\": {\n \"chat.empty.createConversationFirst\": \"请先创建一个对话\",\n \"chat.empty.question\": \"准备好几秒内把数据变成有洞察力的图表了吗?\",\n \"chat.empty.welcomePrefix\": \"你好\",\n \"chat.empty.userFallback\": \"朋友\",\n \"chat.sender.attachments\": \"附件\",\n \"chat.sender.uploadFile\": \"上传文件\",\n \"chat.sender.rootDirectory\": \"根目录\",\n \"chat.sender.filesUploading\": \"文件仍在上传中…\",\n \"chat.sender.uploadFailed\": \"{{name}} 文件上传失败。{{reason}}\",\n \"chat.sender.fileTooLarge\": \"文件必须小于 100MB!{{name}} 过大。\",\n \"chat.sender.thinking\": \"{{frame}} 思考中…\",\n \"chat.sender.messagesWaiting\": \"{{count}} 条消息等待中…\",\n \"chat.sender.placeholder\": \"输入 / 查看可用技能,或输入 @ 引用文件\",\n \"chat.sender.moreMatches\": \"…还有 {{count}} 个匹配项 — 继续输入以缩小范围\",\n \"chat.error.streamError\": \"流式传输错误\",\n \"chat.stop.superseded\": \"响应已被新消息打断。\",\n \"chat.stop.stopped\": \"响应已停止。\",\n \"chat.layout.toggleMenu\": \"切换菜单\",\n \"chat.layout.closeDetail\": \"关闭详情面板\",\n \"chat.layout.closeTools\": \"关闭工具面板\",\n \"chat.menu.branding\": \"菜单\",\n \"chat.menu.expandSidebar\": \"展开侧边栏\",\n \"chat.menu.collapseSidebar\": \"收起侧边栏\",\n \"chat.menu.newThread\": \"新建会话\",\n \"chat.agent.fallbackName\": \"智能体\",\n \"chat.agent.selectTitle\": \"选择智能体\",\n \"chat.agent.empty\": \"暂无可用智能体\",\n \"chat.model.label\": \"模型\",\n \"chat.model.placeholder\": \"模型\",\n \"chat.workspace.selectPlaceholder\": \"工作区\",\n \"chat.workspace.selectTitle\": \"选择工作区\",\n \"chat.project.selectPlaceholder\": \"项目\",\n \"chat.project.selectTitle\": \"选择项目\",\n \"chat.project.empty\": \"暂无项目\",\n \"chat.project.nameRequired\": \"请输入项目名称\",\n \"chat.project.nameTooLong\": \"名称不得超过 {{max}} 个字符\",\n \"chat.project.selectWorkspaceFirst\": \"请先选择一个工作区\",\n \"chat.project.created\": \"项目「{{name}}」已创建\",\n \"chat.project.createFailed\": \"创建项目失败\",\n \"chat.project.createTitle\": \"新建项目\",\n \"chat.project.namePlaceholder\": \"请输入项目名称\",\n \"chat.thread.create\": \"新建对话\",\n \"chat.thread.createFailed\": \"新建会话失败\",\n \"chat.thread.history\": \"历史对话\",\n \"chat.thread.refreshHistory\": \"刷新历史对话\",\n \"chat.thread.searchPlaceholder\": \"搜索对话…\",\n \"chat.thread.sortName\": \"名称\",\n \"chat.thread.sortUpdated\": \"更新时间\",\n \"chat.thread.sortCreated\": \"创建时间\",\n \"chat.thread.sortAscending\": \"升序\",\n \"chat.thread.sortDescending\": \"降序\",\n \"chat.thread.loading\": \"正在加载对话…\",\n \"chat.thread.noMatch\": \"没有与「{{query}}」匹配的对话\",\n \"chat.thread.empty\": \"暂无对话\",\n \"chat.thread.nameLabel\": \"对话名称\",\n \"chat.thread.saveName\": \"保存名称\",\n \"chat.thread.cancelRename\": \"取消重命名\",\n \"chat.thread.rename\": \"重命名对话\",\n \"chat.thread.renamed\": \"对话已重命名\",\n \"chat.thread.renameFailed\": \"重命名对话失败\",\n \"chat.thread.delete\": \"删除对话\",\n \"chat.thread.deleteTitle\": \"删除对话\",\n \"chat.thread.deleteConfirm\": \"确定要删除该对话吗?此操作无法撤销。\",\n \"chat.thread.deleted\": \"对话已删除\",\n \"chat.thread.deleteFailed\": \"删除对话失败\",\n \"chat.pin.pin\": \"固定到菜单\",\n \"chat.pin.unpin\": \"从菜单取消固定\",\n \"chat.pin.pinTitle\": \"固定到菜单\",\n \"chat.pin.enterName\": \"请输入菜单名称\",\n \"chat.pin.pinned\": \"已固定到菜单\",\n \"chat.pin.unpinned\": \"已从菜单取消固定\",\n \"chat.pin.pinFailed\": \"固定到菜单失败\",\n \"chat.pin.unpinFailed\": \"从菜单取消固定失败\",\n \"chat.pin.namePlaceholder\": \"菜单名称(必填)\",\n \"chat.pin.groupPlaceholder\": \"分组(可选,可选择或输入新分组)\",\n \"chat.sideApp.unnamed\": \"未命名\",\n \"chat.sideApp.allTabs\": \"所有标签页\",\n \"chat.sideApp.close\": \"关闭\",\n \"chat.sideApp.empty\": \"选择一个应用开始使用\",\n \"chat.sideApp.componentNotFound\": \"未找到组件视图\",\n \"chat.todo.title\": \"待办\",\n \"chat.todo.noTasks\": \"暂无任务\",\n \"chat.todo.inProgress\": \"{{count}} 项进行中\",\n \"chat.todo.completed\": \"已完成 {{count}} 项\",\n \"chat.todo.progressTooltip\": \"已完成 {{completed}} / {{total}} 项任务\",\n \"chat.task.title\": \"任务\",\n \"chat.task.noTasks\": \"暂无任务\",\n \"chat.task.inProgress\": \"{{count}} 项进行中\",\n \"chat.task.completed\": \"已完成 {{count}} 项\",\n \"chat.task.progressTooltip\": \"已完成 {{completed}} / {{total}} 项任务\",\n \"chat.customMenu.invalid\": \"无效的菜单项\",\n \"chat.customMenu.empty\": \"(空)\",\n \"chat.customMenu.htmlPage\": \"自定义 HTML 页面\",\n \"chat.customMenu.componentNotFound\": \"未找到组件「{{name}}」\",\n \"chat.customMenu.invalidMcpApp\": \"无效的 MCP 应用菜单项\",\n \"chat.customMenu.unknownType\": \"未知的内容类型:{{type}}\",\n \"chat.customMenu.fileFallback\": \"文件\",\n \"chat.team.workspace\": \"团队工作区\",\n \"chat.team.title\": \"团队成员\",\n \"chat.team.member\": \"1 位成员\",\n \"chat.team.members\": \"{{count}} 位成员\",\n \"chat.file.changed\": \"文件已变更\",\n \"chat.file.explorer\": \"文件浏览器\",\n \"chat.file.count\": \"{{count}} 个文件\",\n \"chat.mailbox.title\": \"团队收件箱\",\n \"chat.mailbox.label\": \"收件箱\",\n \"chat.mailbox.count\": \"{{count}} 封邮件\",\n \"chat.copilot.agentBuilder\": \"智能体构建器\",\n \"chat.copilot.viewing\": \"正在查看:{{name}}\",\n \"chat.copilot.close\": \"关闭副驾驶\",\n \"chat.copilot.selectWorkflow\": \"选择一个工作流开始\",\n \"chat.environment.title\": \"运行环境\",\n \"chat.environment.tools\": \"工具\",\n \"chat.environment.capabilities\": \"能力\",\n \"chat.environment.subAgents\": \"子智能体\",\n \"chat.environment.runtime\": \"运行时\",\n \"chat.environment.model\": \"模型:{{model}}\",\n \"chat.environment.db\": \"数据库:{{db}}\",\n \"chat.environment.skills\": \"技能:{{skills}}\",\n \"chat.environment.channels\": \"渠道\",\n \"chat.environment.noChannels\": \"未配置渠道\",\n \"chat.viewToggle.chat\": \"对话\",\n \"chat.viewToggle.graph\": \"执行过程\",\n \"chat.viewToggle.aria\": \"视图切换\",\n \"chat.trace.backToCurrent\": \"回到当前\",\n \"chat.trace.collapseOlder\": \"收起更早\",\n \"chat.trace.expandAll\": \"展开全部\",\n \"chat.trace.parallelBadge\": \"并发 ×{{count}}\",\n \"chat.trace.jumpToChat\": \"对话\",\n \"chat.trace.phase.understand\": \"理解与规划\",\n \"chat.trace.phase.act\": \"执行\",\n \"chat.trace.phase.delegate\": \"委派\",\n \"chat.trace.phase.answer\": \"回答\",\n \"chat.trace.phase.earlier\": \"更早\",\n \"chat.trace.node.human\": \"用户\",\n \"chat.trace.summary.steps\": \"{{count}} 个步骤\",\n \"chat.trace.summary.steps_one\": \"{{count}} 个步骤\",\n \"chat.trace.summary.steps_other\": \"{{count}} 个步骤\",\n \"chat.menu.history\": \"历史\",\n \"chat.error.resumeStreamError\": \"恢复流式传输错误\",\n \"chat.error.copySucceeded\": \"已复制错误详情\",\n \"chat.error.copyFailed\": \"复制失败\",\n \"chat.error.sectionFallback\": \"此区域\",\n \"chat.error.renderFailed\": \"渲染 {{label}} 失败\",\n \"chat.error.details\": \"错误详情\",\n \"chat.error.copyDetails\": \"复制详情\",\n \"chat.error.boundary.sidebar\": \"侧边栏\",\n \"chat.error.boundary.chatPanel\": \"对话面板\",\n \"chat.error.boundary.detailPanel\": \"详情面板\",\n \"chat.error.boundary.toolsPanel\": \"工具面板\",\n \"chat.error.boundary.thread\": \"会话\",\n \"chat.error.boundary.chatShell\": \"对话外壳\",\n \"chat.agent.defaultName\": \"AI 助手\",\n \"chat.file.toggleDirectory\": \"切换文件目录\",\n \"chat.conversation.creating\": \"正在创建对话…\",\n \"chat.tools.loading\": \"正在加载工具…\",\n \"chat.skills.loading\": \"正在加载技能…\",\n \"chat.schedule.none\": \"暂无定时任务\",\n \"chat.schedule.scheduledCount\": \"已安排 {{count}} 项\",\n \"chat.schedule.totalCount\": \"共 {{count}} 项\",\n \"chat.topology.outgoing\": \"{{count}} 出\",\n \"chat.topology.incoming\": \"{{count}} 入\",\n \"chat.config.executableRequired\": \"请选择一个模板或输入自定义可执行文件\",\n \"chat.voice.unavailable\": \"语音输入不可用:未配置 STT 模型\",\n \"chat.voice.transcribing\": \"转录中…\",\n \"chat.voice.retryHint\": \"转录失败,点击重试\",\n \"chat.voice.rerecordHint\": \"点击重新录制\",\n \"chat.voice.stopRecordingAuto\": \"停止录制({{seconds}} 秒,已转录 {{segments}} 段)\",\n \"chat.voice.stopRecording\": \"停止录制({{seconds}} 秒)\",\n \"chat.voice.start\": \"开始语音输入\",\n \"chat.voice.noModel\": \"未配置 STT 模型\",\n \"chat.voice.uploading\": \"上传中…\",\n \"chat.voice.modeAuto\": \"自动\",\n \"chat.voice.modeManual\": \"手动\",\n \"chat.voice.segments\": \"{{count}} 段\",\n \"chat.voice.segments_one\": \"{{count}} 段\",\n \"chat.voice.segments_other\": \"{{count}} 段\",\n \"chat.voice.recordingStatus\": \"{{mode}}模式,录制中 {{time}}{{chunks}} — 点击停止\",\n \"chat.voice.errNotSupported\": \"不支持语音输入,请使用 Chrome、Edge 或 Safari。\",\n \"chat.voice.errFormatNotSupported\": \"此浏览器不支持该音频录制格式。\",\n \"chat.voice.errRecordingFailed\": \"录制失败,请重试。\",\n \"chat.voice.errRecordInitFailed\": \"录制初始化失败。\",\n \"chat.voice.errMicPermission\": \"请在浏览器设置中允许麦克风权限\",\n \"chat.voice.errMicAccess\": \"无法访问麦克风\",\n \"chat.voice.errStopTimeout\": \"停止录制超时\",\n \"chat.voice.errTranscribeFailed\": \"转录失败\",\n \"chat.voice.errRetryFailed\": \"重试失败\",\n \"chat.analysis.quickTitle\": \"快速分析\",\n \"chat.analysis.categoriesTitle\": \"分析类别\",\n \"chat.analysis.viewMore\": \"查看更多分析选项\",\n \"chat.analysis.category.sales\": \"销售分析\",\n \"chat.analysis.category.financial\": \"财务分析\",\n \"chat.analysis.category.operations\": \"运营分析\",\n \"chat.analysis.sales.comprehensive.label\": \"综合销售分析\",\n \"chat.analysis.sales.comprehensive.description\": \"按指定维度分析销售收入,并进行趋势分析与增长机会识别\",\n \"chat.analysis.sales.performance.label\": \"销售业绩分析\",\n \"chat.analysis.sales.performance.description\": \"汇总全渠道销售额,评估业绩达成率,并与历史增长对比\",\n \"chat.analysis.sales.topCustomers.label\": \"大客户分析\",\n \"chat.analysis.sales.topCustomers.description\": \"识别销售额前 10% 的客户,分析其购买偏好与流失风险\",\n \"chat.analysis.sales.trend.label\": \"销售趋势分析\",\n \"chat.analysis.sales.trend.description\": \"通过时间序列分析销售峰谷,预测下一季度销售趋势\",\n \"chat.analysis.sales.repPerformance.label\": \"销售人员业绩\",\n \"chat.analysis.sales.repPerformance.description\": \"量化评估每位销售人员的转化率、客单价与合同履约效率\",\n \"chat.analysis.sales.regional.label\": \"区域销售对比\",\n \"chat.analysis.sales.regional.description\": \"对比不同地理区域的销售渗透率,识别表现异常的市场\",\n \"chat.analysis.sales.productVolume.label\": \"商品销量分析\",\n \"chat.analysis.sales.productVolume.description\": \"统计各 SKU 的销量,识别畅销商品与滞销库存\",\n \"chat.analysis.financial.grossMargin.label\": \"产品线毛利分析\",\n \"chat.analysis.financial.grossMargin.description\": \"对比各产品线的毛利水平,识别高毛利贡献与亏损业务\",\n \"chat.analysis.financial.customerProfitability.label\": \"客户盈利分析\",\n \"chat.analysis.financial.customerProfitability.description\": \"按不同客户维度分析净利润贡献,识别核心优质客户与高服务成本客户\",\n \"chat.analysis.financial.monthlyReport.label\": \"月度财务报告\",\n \"chat.analysis.financial.monthlyReport.description\": \"基于本月核算数据,自动生成利润表、资产负债表与现金流量表摘要\",\n \"chat.analysis.financial.ratio.label\": \"财务比率分析\",\n \"chat.analysis.financial.ratio.description\": \"计算并分析流动比率、资产负债率、ROE 等关键指标,评估公司财务健康度\",\n \"chat.analysis.financial.cashflow.label\": \"现金流分析\",\n \"chat.analysis.financial.cashflow.description\": \"追踪经营、投资与筹资活动现金流,分析净现金流变动的原因与趋势\",\n \"chat.analysis.financial.costStructure.label\": \"成本结构分析\",\n \"chat.analysis.financial.costStructure.description\": \"拆解产品或服务的直接成本与间接费用,识别影响总成本的核心驱动因素\",\n \"chat.analysis.operations.supplierEvaluation.label\": \"供应商绩效评估\",\n \"chat.analysis.operations.supplierEvaluation.description\": \"基于交付质量、响应速度与价格竞争力,对核心供应商进行综合评级\",\n \"chat.analysis.operations.inventoryTurnover.label\": \"库存周转分析\",\n \"chat.analysis.operations.inventoryTurnover.description\": \"计算库存周转率与周转天数,识别呆滞库存物料以释放资金\",\n \"chat.analysis.operations.deliveryOntime.label\": \"准时交付分析\",\n \"chat.analysis.operations.deliveryOntime.description\": \"统计订单从下单到交付的周期,分析导致延迟交付的核心环节\",\n \"chat.analysis.operations.procurementCost.label\": \"采购成本分析\",\n \"chat.analysis.operations.procurementCost.description\": \"监控原材料采购价格波动,分析采购溢价或节约对利润的影响\",\n \"chat.analysis.operations.productionEfficiency.label\": \"生产效率分析\",\n \"chat.analysis.operations.productionEfficiency.description\": \"计算设备综合效率(OEE)或人均产出,识别产线效率瓶颈\",\n \"chat.analysis.operations.orderFulfillment.label\": \"订单履约分析\",\n \"chat.analysis.operations.orderFulfillment.description\": \"分析从接单到最终交付的全流程,优化订单处理响应时间\",\n \"chat.skillCategory.businessAnalysis\": \"业务分析\",\n \"chat.skillCategory.codeGeneration\": \"代码生成\",\n \"chat.skillCategory.documentProcessing\": \"文档处理\",\n \"chat.skillCategory.dataAnalysis\": \"数据分析\",\n \"chat.skillCategory.toolOperations\": \"工具操作\",\n \"chat.skillCategory.general\": \"通用技能\",\n \"chat.skillCategory.global\": \"全局技能\",\n \"chat.skillCategory.viewMore\": \"查看更多技能分类\",\n \"chat.skillCategory.quickActions\": \"✨ 快捷操作\"\n }\n}\n","{\n \"messages\": {\n \"chatConfig.field.name\": \"Name\",\n \"chatConfig.field.description\": \"Description\",\n \"chatConfig.field.displayName\": \"Display Name\",\n \"chatConfig.field.connectionKey\": \"Connection Key\",\n \"chatConfig.field.host\": \"Host\",\n \"chatConfig.field.port\": \"Port\",\n \"chatConfig.field.username\": \"Username\",\n \"chatConfig.field.password\": \"Password\",\n \"chatConfig.field.serverUrl\": \"Server URL\",\n \"chatConfig.field.apiKey\": \"API Key\",\n \"chatConfig.field.optionalDescription\": \"Optional description\",\n \"chatConfig.config.updated\": \"Configuration updated\",\n \"chatConfig.config.created\": \"Configuration created\",\n \"chatConfig.config.deleted\": \"Configuration deleted\",\n \"chatConfig.config.deleteFailed\": \"Failed to delete configuration\",\n \"chatConfig.config.saveFailed\": \"Failed to save configuration\",\n \"chatConfig.config.missingId\": \"Cannot delete: configuration id is missing\",\n \"chatConfig.agentType.executor\": \"Executor\",\n \"chatConfig.agentType.orchestrator\": \"Orchestrator\",\n \"chatConfig.agentType.team\": \"Team\",\n \"chatConfig.agentType.workflow\": \"Workflow\",\n \"chatConfig.agentType.a2aRemote\": \"A2A Remote\",\n \"chatConfig.keyValue.key\": \"Key\",\n \"chatConfig.keyValue.value\": \"Value\",\n \"chatConfig.keyValue.add\": \"Add\",\n \"chatConfig.keyValue.removeEntry\": \"Remove entry\",\n \"chatConfig.connectionList.empty\": \"No \\\"{{type}}\\\" connections\",\n \"chatConfig.connectionList.selectAll\": \"Select All\",\n \"chatConfig.connectionList.deselectAll\": \"Deselect All\",\n \"chatConfig.connectionList.clear\": \"Clear\",\n \"chatConfig.connectionsHub.title\": \"Plugins\",\n \"chatConfig.connectionsHub.tab.all\": \"All ({{count}})\",\n \"chatConfig.connectionsHub.tab.connections\": \"Connections ({{count}})\",\n \"chatConfig.connectionsHub.tab.tools\": \"Tools ({{count}})\",\n \"chatConfig.connectionsHub.empty.connections.title\": \"No connection plugins\",\n \"chatConfig.connectionsHub.empty.connections.description\": \"No plugins with connection management registered\",\n \"chatConfig.connectionsHub.empty.tools.title\": \"No tool plugins\",\n \"chatConfig.connectionsHub.empty.tools.description\": \"No tool-only plugins registered\",\n \"chatConfig.connectionsHub.empty.all.title\": \"No plugins\",\n \"chatConfig.connectionsHub.empty.all.description\": \"No plugins registered\",\n \"chatConfig.connectionsHub.capability.test\": \"test\",\n \"chatConfig.connectionsHub.capability.discover\": \"discover\",\n \"chatConfig.connectionsHub.capability.connection\": \"connection\",\n \"chatConfig.connectionsHub.capability.tool\": \"tool\",\n \"chatConfig.subAgentInherit.hint\": \"Choose how to handle each sub-agent from the parent:\",\n \"chatConfig.subAgentInherit.clone\": \"Clone as new\",\n \"chatConfig.subAgentInherit.reuse\": \"Reuse\",\n \"chatConfig.subAgentInherit.cloneKeyPlaceholder\": \"Enter key for the cloned agent\",\n \"chatConfig.project.create.title\": \"New Project\",\n \"chatConfig.project.field.name\": \"Project name\",\n \"chatConfig.project.field.namePlaceholder\": \"Enter project name\",\n \"chatConfig.project.validation.nameRequired\": \"Please enter a project name\",\n \"chatConfig.project.validation.nameMax\": \"Project name must be less than 50 characters\",\n \"chatConfig.project.field.visibility\": \"Visibility\",\n \"chatConfig.project.kind.business\": \"Business\",\n \"chatConfig.project.kind.business.description\": \"Only invited members can see it.\",\n \"chatConfig.project.kind.public\": \"Public\",\n \"chatConfig.project.kind.public.description\": \"Visible to everyone in this workspace.\",\n \"chatConfig.project.field.description\": \"Description (optional)\",\n \"chatConfig.project.field.descriptionPlaceholder\": \"Enter project description\",\n \"chatConfig.workflow.create.title\": \"New Workflow\",\n \"chatConfig.workflow.create.titleProcessing\": \"New Processing Workflow\",\n \"chatConfig.workflow.field.purpose\": \"Purpose\",\n \"chatConfig.workflow.field.purposePlaceholder\": \"Describe what this workflow should do. Name and key will be generated automatically.\",\n \"chatConfig.workflow.validation.purposeRequired\": \"Please describe the workflow purpose\",\n \"chatConfig.workflow.middleware.topologyName\": \"Topology\",\n \"chatConfig.workflow.middleware.topologyDescription\": \"Workflow topology\",\n \"chatConfig.skill.create.title\": \"Create New Skill\",\n \"chatConfig.skill.edit.title\": \"Edit Skill\",\n \"chatConfig.skill.created\": \"Skill created successfully\",\n \"chatConfig.skill.updated\": \"Skill updated successfully\",\n \"chatConfig.skill.createFailed\": \"Failed to create skill\",\n \"chatConfig.skill.updateFailed\": \"Failed to update skill\",\n \"chatConfig.skill.createError\": \"An error occurred while creating the skill\",\n \"chatConfig.skill.updateError\": \"An error occurred while updating the skill\",\n \"chatConfig.skill.field.name\": \"Name\",\n \"chatConfig.skill.field.description\": \"Description\",\n \"chatConfig.skill.field.license\": \"License\",\n \"chatConfig.skill.field.compatibility\": \"Compatibility\",\n \"chatConfig.skill.field.metadata\": \"Metadata\",\n \"chatConfig.skill.field.content\": \"Content\",\n \"chatConfig.skill.placeholder.description\": \"Description\",\n \"chatConfig.skill.placeholder.license\": \"License\",\n \"chatConfig.skill.placeholder.compatibility\": \"Compatibility\",\n \"chatConfig.skill.placeholder.content\": \"Content\",\n \"chatConfig.skill.validation.nameRequired\": \"Please enter skill name\",\n \"chatConfig.skill.validation.namePattern\": \"Name must be lowercase alphanumeric with single hyphens (e.g., 'my-skill')\",\n \"chatConfig.skill.validation.nameLength\": \"Name must be 1-64 characters\",\n \"chatConfig.skill.validation.descriptionRequired\": \"Please enter skill description\",\n \"chatConfig.skill.metadata.add\": \"Add\",\n \"chatConfig.skill.metadata.empty\": \"No metadata yet. Use Add to create one.\",\n \"chatConfig.skill.metadata.row\": \"Meta {{index}}\",\n \"chatConfig.skill.action.save\": \"Save Changes\",\n \"chatConfig.skill.action.create\": \"Create Skill\",\n \"chatConfig.skillPicker.title\": \"Skills\",\n \"chatConfig.skillPicker.selectTitle\": \"Select Skills\",\n \"chatConfig.skillPicker.empty\": \"No skills available\",\n \"chatConfig.databasePicker.title\": \"Database\",\n \"chatConfig.databasePicker.selectTitle\": \"Select Database\",\n \"chatConfig.databasePicker.empty\": \"No databases available\",\n \"chatConfig.channelInstall.title\": \"Channel Installations\",\n \"chatConfig.channelInstall.add\": \"Add Installation\",\n \"chatConfig.channelInstall.editTitle\": \"Edit Installation\",\n \"chatConfig.channelInstall.addTitle\": \"Add Installation\",\n \"chatConfig.channelInstall.empty.title\": \"No channel installations\",\n \"chatConfig.channelInstall.empty.description\": \"Click \\\"Add Installation\\\" to create one\",\n \"chatConfig.channelInstall.unsupported\": \"Unsupported channel configuration UI\",\n \"chatConfig.channelInstall.loadFailed\": \"Failed to load channel installations\",\n \"chatConfig.channelInstall.deleted\": \"Installation deleted\",\n \"chatConfig.channelInstall.deleteFailed\": \"Failed to delete installation\",\n \"chatConfig.channelInstall.updated\": \"Installation updated\",\n \"chatConfig.channelInstall.updateFailed\": \"Failed to update installation\",\n \"chatConfig.channelInstall.created\": \"Installation created\",\n \"chatConfig.channelInstall.createFailed\": \"Failed to create installation\",\n \"chatConfig.channelInstall.delete.title\": \"Delete Channel Installation\",\n \"chatConfig.channelInstall.delete.description\": \"Are you sure you want to delete \\\"{{name}}\\\"?\",\n \"chatConfig.channelInstall.field.channel\": \"Channel\",\n \"chatConfig.channelInstall.field.name\": \"Name\",\n \"chatConfig.channelInstall.field.appId\": \"App ID\",\n \"chatConfig.channelInstall.field.appSecret\": \"App Secret\",\n \"chatConfig.channelInstall.field.verificationToken\": \"Verification Token\",\n \"chatConfig.channelInstall.field.encryptKey\": \"Encrypt Key\",\n \"chatConfig.channelInstall.validation.appIdRequired\": \"App ID is required\",\n \"chatConfig.channelInstall.validation.appSecretRequired\": \"App Secret is required\",\n \"chatConfig.connection.loadFailed\": \"Failed to load connections\",\n \"chatConfig.connection.testPassed\": \"Connection test passed: {{message}}\",\n \"chatConfig.connection.testFailed\": \"Connection test failed\",\n \"chatConfig.connection.testError\": \"Failed to test connection\",\n \"chatConfig.connection.missingKey\": \"Cannot delete: connection key is missing\",\n \"chatConfig.connection.deleted\": \"Connection deleted\",\n \"chatConfig.connection.deleteFailed\": \"Failed to delete connection\",\n \"chatConfig.connection.noSchema.title\": \"No connection schema defined\",\n \"chatConfig.connection.noSchema.description\": \"This plugin type does not support connection management\",\n \"chatConfig.connection.action.test\": \"Test\",\n \"chatConfig.connection.status.online\": \"Online\",\n \"chatConfig.connection.status.offline\": \"Offline\",\n \"chatConfig.connection.updated\": \"Updated {{date}}\",\n \"chatConfig.connection.add\": \"Add Connection\",\n \"chatConfig.connection.empty.title\": \"No connections configured\",\n \"chatConfig.connection.empty.description\": \"Click \\\"Add Connection\\\" to create one\",\n \"chatConfig.connection.delete.title\": \"Delete Connection\",\n \"chatConfig.connection.delete.confirm\": \"Delete \\\"{{name}}\\\"?\",\n \"chatConfig.connectionForm.testRequestFailed\": \"Test request failed\",\n \"chatConfig.connectionForm.keyRequired\": \"Connection key is required\",\n \"chatConfig.connectionForm.updated\": \"Connection updated\",\n \"chatConfig.connectionForm.created\": \"Connection created\",\n \"chatConfig.connectionForm.saveFailed\": \"Failed to save connection\",\n \"chatConfig.connectionForm.selectPlaceholder\": \"Select {{title}}\",\n \"chatConfig.connectionForm.enterPlaceholder\": \"Enter {{title}}\",\n \"chatConfig.connectionForm.step.details\": \"Connection Details\",\n \"chatConfig.connectionForm.step.verify\": \"Verify\",\n \"chatConfig.connectionForm.editTitle\": \"Edit {{type}} Connection\",\n \"chatConfig.connectionForm.addTitle\": \"Add {{type}} Connection\",\n \"chatConfig.connectionForm.save\": \"Save Changes\",\n \"chatConfig.connectionForm.finish\": \"Finish\",\n \"chatConfig.connectionForm.testing\": \"Testing connection...\",\n \"chatConfig.connectionForm.availableResources\": \"Available Resources\",\n \"chatConfig.connectionForm.selectedCount\": \" ({{count}} selected)\",\n \"chatConfig.connectionForm.retryTest\": \"Retry Test\",\n \"chatConfig.database.title\": \"Database Connections\",\n \"chatConfig.database.loadFailed\": \"Failed to load database configurations\",\n \"chatConfig.database.testSuccess\": \"Successfully connected to {{host}} ({{latency}}ms)\",\n \"chatConfig.database.connectionFailed\": \"Connection failed: {{error}}\",\n \"chatConfig.database.empty.title\": \"No database configurations\",\n \"chatConfig.database.keyAndId\": \"Key: {{key}} | ID: {{id}}\",\n \"chatConfig.database.connectionStringMode\": \"Connection String Mode\",\n \"chatConfig.database.testing\": \"Testing...\",\n \"chatConfig.database.editTitle\": \"Edit Database Configuration\",\n \"chatConfig.database.addTitle\": \"Add Database Configuration\",\n \"chatConfig.database.field.type\": \"Database Type\",\n \"chatConfig.database.field.connectionString\": \"Connection String\",\n \"chatConfig.database.priorityMode\": \"Priority Mode\",\n \"chatConfig.database.note.important\": \"Important:\",\n \"chatConfig.database.note.whenProvided\": \"When connection string is provided, it takes\",\n \"chatConfig.database.note.priorityOver\": \"priority over\",\n \"chatConfig.database.note.suffix\": \"all individual connection parameters below. The backend implements the same priority logic.\",\n \"chatConfig.database.field.individualParams\": \"Individual Connection Parameters\",\n \"chatConfig.database.ignoredWhenString\": \"Ignored when connection string is set\",\n \"chatConfig.database.field.name\": \"Database Name\",\n \"chatConfig.database.delete.title\": \"Delete Database Configuration\",\n \"chatConfig.database.delete.description\": \"Are you sure you want to delete \\\"{{name}}\\\"?\",\n \"chatConfig.metrics.title\": \"Metrics Server Connections\",\n \"chatConfig.metrics.loadFailed\": \"Failed to load metrics configurations\",\n \"chatConfig.metrics.testSuccess\": \"Successfully connected to {{serverUrl}} ({{latency}}ms)\",\n \"chatConfig.metrics.empty.title\": \"No metrics configurations\",\n \"chatConfig.metrics.delete.title\": \"Delete Metrics Configuration\",\n \"chatConfig.metrics.step.basic\": \"Basic Info\",\n \"chatConfig.metrics.step.dataSources\": \"Select Data Sources\",\n \"chatConfig.metrics.serverUrlRequired\": \"Please enter the server URL\",\n \"chatConfig.metrics.fetchDataSourcesFailed\": \"Failed to fetch data sources\",\n \"chatConfig.metrics.editTitle\": \"Edit Metrics Configuration\",\n \"chatConfig.metrics.addTitle\": \"Add Metrics Configuration\",\n \"chatConfig.metrics.field.serverType\": \"Server Type\",\n \"chatConfig.metrics.field.authentication\": \"Authentication\",\n \"chatConfig.metrics.optional\": \"Optional\",\n \"chatConfig.metrics.placeholder.apiKey\": \"Optional API key for authentication\",\n \"chatConfig.metrics.placeholder.username\": \"Optional username for basic auth\",\n \"chatConfig.metrics.placeholder.password\": \"Optional password for basic auth\",\n \"chatConfig.metrics.fetchingDataSources\": \"Fetching data sources...\",\n \"chatConfig.metrics.field.dataSources\": \"Data Sources\",\n \"chatConfig.metrics.selectedCount\": \"Selected: {{count}}\",\n \"chatConfig.metrics.connected\": \"Connected\",\n \"chatConfig.metrics.metricsAvailable\": \"{{count}} metrics available\",\n \"chatConfig.metrics.loadingMetrics\": \"Loading metrics...\",\n \"chatConfig.metrics.loadMetricsFailed\": \"Failed to load metrics\",\n \"chatConfig.metrics.selectDataSourceHint\": \"Click a data source on the left to view its metrics\",\n \"chatConfig.metrics.previous\": \"Previous\",\n \"chatConfig.metrics.save\": \"Save Changes\",\n \"chatConfig.metrics.type.semantic\": \"Semantic\",\n \"chatConfig.metricsDataSource.select\": \"Select Data Source\",\n \"chatConfig.metricsDataSource.noneAvailable\": \"No data sources available\",\n \"chatConfig.metricsDataSource.title\": \"Select Metrics Data Source\",\n \"chatConfig.metricsDataSource.empty\": \"No Metrics Data Sources Available\",\n \"chatConfig.metricsDataSource.disconnected\": \"Disconnected\",\n \"chatConfig.metricsDataSource.selected\": \"Selected\",\n \"chatConfig.mcp.title\": \"MCP Server Connections\",\n \"chatConfig.mcp.loadFailed\": \"Failed to load MCP server configurations\",\n \"chatConfig.mcp.testSuccess\": \"Successfully connected ({{latency}}ms)\",\n \"chatConfig.mcp.disconnected\": \"{{name}} disconnected\",\n \"chatConfig.mcp.connected\": \"{{name}} connected\",\n \"chatConfig.mcp.connectFailed\": \"Failed to connect\",\n \"chatConfig.mcp.toggleFailed\": \"Failed to toggle connection\",\n \"chatConfig.mcp.action.test\": \"Test Connection\",\n \"chatConfig.mcp.toolsCount\": \"{{count}} tools\",\n \"chatConfig.mcp.empty.title\": \"No MCP server configurations\",\n \"chatConfig.mcp.delete.title\": \"Delete MCP Server Configuration\",\n \"chatConfig.mcp.step.connection\": \"Connection\",\n \"chatConfig.mcp.step.tools\": \"Select Tools\",\n \"chatConfig.mcp.commandRequired\": \"Please enter the command for stdio transport\",\n \"chatConfig.mcp.urlRequired\": \"Please enter the URL for HTTP/SSE transport\",\n \"chatConfig.mcp.fetchToolsFailed\": \"Failed to fetch tools\",\n \"chatConfig.mcp.fetchToolsError\": \"Failed to fetch tools from MCP server\",\n \"chatConfig.mcp.editTitle\": \"Edit MCP Server Configuration\",\n \"chatConfig.mcp.addTitle\": \"Add MCP Server Configuration\",\n \"chatConfig.mcp.field.transport\": \"Transport Type\",\n \"chatConfig.mcp.transport.stdio\": \"STDIO (Command)\",\n \"chatConfig.mcp.transport.http\": \"HTTP\",\n \"chatConfig.mcp.transport.sse\": \"SSE (Server-Sent Events)\",\n \"chatConfig.mcp.field.command\": \"Command\",\n \"chatConfig.mcp.field.args\": \"Arguments (one per line)\",\n \"chatConfig.mcp.field.env\": \"Environment Variables\",\n \"chatConfig.mcp.envHint\": \"Passed to the server process (e.g. API tokens). Values are stored encrypted.\",\n \"chatConfig.mcp.addVariable\": \"Add Variable\",\n \"chatConfig.mcp.sseDeprecated\": \"SSE is deprecated by the MCP specification — prefer Streamable HTTP (HTTP) for new servers.\",\n \"chatConfig.mcp.field.headers\": \"Headers\",\n \"chatConfig.mcp.headersHint\": \"Sent with every request (e.g. Authorization for authentication). Values are stored encrypted.\",\n \"chatConfig.mcp.addHeader\": \"Add Header\",\n \"chatConfig.mcp.advanced\": \"Advanced Options\",\n \"chatConfig.mcp.field.timeout\": \"Timeout (ms)\",\n \"chatConfig.mcp.field.retryAttempts\": \"Retry Attempts\",\n \"chatConfig.mcp.connecting\": \"Connecting to MCP server and fetching tools...\",\n \"chatConfig.mcp.noTools\": \"No tools available. Please check your connection settings.\",\n \"chatConfig.mcp.availableTools\": \"Available Tools\",\n \"chatConfig.mcp.selectedTools\": \"Selected: {{selected}} / {{total}}\",\n \"chatConfig.mcp.parameters\": \"Parameters: {{list}}\",\n \"chatConfig.mcp.previous\": \"Previous\",\n \"chatConfig.mcp.save\": \"Save Changes\",\n \"chatConfig.midForm.selectAll\": \"Select All\",\n \"chatConfig.midForm.clear\": \"Clear\",\n \"chatConfig.midForm.selectedOfTotal\": \"{{selected}} / {{total}} selected\",\n \"chatConfig.midForm.tools\": \"Tools\",\n \"chatConfig.midForm.skills.title\": \"Skill Library\",\n \"chatConfig.midForm.skills.search\": \"Search skills…\",\n \"chatConfig.midForm.skills.empty\": \"No skills available\",\n \"chatConfig.midForm.databases.title\": \"Databases\",\n \"chatConfig.midForm.databases.search\": \"Search databases…\",\n \"chatConfig.midForm.databases.empty\": \"No databases available\",\n \"chatConfig.midForm.metrics.title\": \"Metrics Servers\",\n \"chatConfig.midForm.metrics.search\": \"Search servers…\",\n \"chatConfig.midForm.metrics.empty\": \"No servers available\",\n \"chatConfig.midForm.collections.title\": \"Collections\",\n \"chatConfig.midForm.collections.search\": \"Search collections…\",\n \"chatConfig.midForm.collections.empty\": \"No collections available\",\n \"chatConfig.midForm.topology.title\": \"Dependencies\",\n \"chatConfig.midForm.topology.edges\": \"{{count}} edges\",\n \"chatConfig.midForm.topology.empty\": \"No dependencies defined yet\",\n \"chatConfig.midForm.topology.addTitle\": \"Add Dependency\",\n \"chatConfig.midForm.topology.fromPlaceholder\": \"Source Agent ID\",\n \"chatConfig.midForm.topology.toPlaceholder\": \"Target Agent ID\",\n \"chatConfig.midForm.topology.purposePlaceholder\": \"Purpose (e.g. classify invoice fields)\",\n \"chatConfig.midForm.topology.addEdge\": \"Add Edge\",\n \"chatConfig.midForm.connections.title\": \"Connections\",\n \"chatConfig.midForm.section.config\": \"Config\",\n \"chatConfig.midForm.section.resources\": \"Resources Permission\",\n \"chatConfig.midForm.section.tools\": \"Tools Permission\",\n \"chatConfig.midForm.enabled\": \"Enabled\",\n \"chatConfig.midForm.disabled\": \"Disabled\",\n \"chatConfig.midForm.scope.global\": \"Global\",\n \"chatConfig.midForm.scope.agent\": \"Agent\",\n \"chatConfig.midForm.scope.project\": \"Project\",\n \"chatConfig.agentModal.title\": \"Configure Agent\",\n \"chatConfig.agentModal.tab.basic\": \"Basic\",\n \"chatConfig.agentModal.tab.tools\": \"Tools\",\n \"chatConfig.agentModal.tab.skills\": \"Skills\",\n \"chatConfig.agentModal.tab.subAgents\": \"Sub-Agents\",\n \"chatConfig.agentModal.field.agentType\": \"Agent Type\",\n \"chatConfig.agentModal.field.systemPrompt\": \"System Prompt\",\n \"chatConfig.agentModal.systemPromptPlaceholder\": \"Enter the system prompt for this agent...\",\n \"chatConfig.agentModal.systemPromptHint\": \"Define the agent's behavior, capabilities, and constraints\",\n \"chatConfig.agentModal.selectedOfTotal\": \"{{selected}} of {{total}} selected\",\n \"chatConfig.agentModal.selectAll\": \"Select All\",\n \"chatConfig.agentModal.deselectAll\": \"Deselect All\",\n \"chatConfig.agentModal.noTools\": \"No tools available\",\n \"chatConfig.agentModal.noSkills\": \"No skills available\",\n \"chatConfig.agentModal.noOtherAgents\": \"No other agents available\",\n \"chatConfig.agentModal.approve\": \"Approve\",\n \"chatConfig.agentModal.noDescription\": \"No description\",\n \"chatConfig.agentModal.hierarchy\": \"Agent Hierarchy\",\n \"chatConfig.agentModal.currentAgent\": \"Current Agent\",\n \"chatConfig.agentModal.currentTag\": \"Current\",\n \"chatConfig.agentModal.type.react\": \"React\",\n \"chatConfig.agentModal.type.deepAgent\": \"Deep Agent\",\n \"chatConfig.agentModal.type.workflow\": \"Workflow\",\n \"chatConfig.agentModal.toolsCount\": \"{{count}} tools\",\n \"chatConfig.agentModal.skillsCount\": \"{{count}} skills\",\n \"chatConfig.agentModal.subAgentsCount\": \"{{count}} sub-agents\",\n \"chatConfig.agentModal.structureTree\": \"Structure Tree\",\n \"chatConfig.agentModal.tip\": \"Tip\",\n \"chatConfig.agentModal.tipBody\": \"Deep Agent type allows you to delegate tasks to sub-agents. Select agents from the Sub-Agents tab to build your hierarchy.\",\n \"chatConfig.agentModal.changesHint\": \"Changes will update the agent configuration\",\n \"chatConfig.agentModal.saveConfiguration\": \"Save Configuration\",\n \"chatConfig.agentPanel.category.data\": \"Data & Knowledge\",\n \"chatConfig.agentPanel.category.execution\": \"Execution & Interaction\",\n \"chatConfig.agentPanel.category.workflow\": \"Workflow & Orchestration\",\n \"chatConfig.agentPanel.category.assistant\": \"Assistant & Evaluation\",\n \"chatConfig.agentPanel.category.other\": \"Other\",\n \"chatConfig.agentPanel.nav.basic\": \"Basic Info\",\n \"chatConfig.agentPanel.nav.prompt\": \"System Prompt\",\n \"chatConfig.agentPanel.nav.tools\": \"Common Tools\",\n \"chatConfig.agentPanel.nav.capabilities\": \"Capabilities\",\n \"chatConfig.agentPanel.nav.subAgents\": \"Sub-Agents\",\n \"chatConfig.agentPanel.navAriaLabel\": \"Agent configuration sections\",\n \"chatConfig.agentPanel.basic.title\": \"Basic Info\",\n \"chatConfig.agentPanel.basic.desc\": \"Core identity and behavior of this agent\",\n \"chatConfig.agentPanel.field.name\": \"Name\",\n \"chatConfig.agentPanel.field.agentType\": \"Agent Type\",\n \"chatConfig.agentPanel.field.description\": \"Description\",\n \"chatConfig.agentPanel.validation.nameRequired\": \"Please enter agent name\",\n \"chatConfig.agentPanel.validation.descriptionRequired\": \"Please enter agent description\",\n \"chatConfig.agentPanel.placeholder.name\": \"Enter agent name…\",\n \"chatConfig.agentPanel.placeholder.description\": \"Enter agent description…\",\n \"chatConfig.agentPanel.typeDesc.react\": \"Executor: Executes tasks directly using tools. Best for single-step operations like search, code execution, and data retrieval.\",\n \"chatConfig.agentPanel.typeDesc.deepAgent\": \"Orchestrator: Maintains a todo list to plan and delegate tasks to sub-agents. Best for structured multi-step workflows.\",\n \"chatConfig.agentPanel.typeDesc.team\": \"Team: Creates tasks with dependencies and dynamically spawns teammates who communicate via mailbox. Best for exploration and divergent thinking.\",\n \"chatConfig.agentPanel.typeDesc.processing\": \"Workflow: Delegates to sub-agents in a predefined topology order. Best for deterministic multi-step processes.\",\n \"chatConfig.agentPanel.prompt.title\": \"System Prompt\",\n \"chatConfig.agentPanel.prompt.desc\": \"Define the agent's behavior, capabilities, and constraints\",\n \"chatConfig.agentPanel.prompt.expand\": \"Expand\",\n \"chatConfig.agentPanel.prompt.placeholder\": \"Enter the system prompt for this agent…\",\n \"chatConfig.agentPanel.prompt.chars\": \"{{count}} chars\",\n \"chatConfig.agentPanel.tools.title\": \"Common Tools\",\n \"chatConfig.agentPanel.tools.desc\": \"Choose the tools this agent can call directly\",\n \"chatConfig.agentPanel.tools.search\": \"Search tools…\",\n \"chatConfig.agentPanel.tools.selected\": \"Selected {{selected}} / {{total}}\",\n \"chatConfig.agentPanel.subAgents.title\": \"Sub-Agents\",\n \"chatConfig.agentPanel.subAgents.desc\": \"Choose sub-agents this agent can delegate to\",\n \"chatConfig.agentPanel.subAgents.search\": \"Search sub-agents…\",\n \"chatConfig.agentPanel.subAgents.selected\": \"Selected {{selected}} / {{total}}\",\n \"chatConfig.agentPanel.noTools\": \"No tools available\",\n \"chatConfig.agentPanel.noCapabilities\": \"No capabilities available\",\n \"chatConfig.agentPanel.noOtherAgents\": \"No other agents available\",\n \"chatConfig.agentPanel.noMatching\": \"No matching results\",\n \"chatConfig.agentPanel.selectAll\": \"Select All\",\n \"chatConfig.agentPanel.clear\": \"Clear\",\n \"chatConfig.agentPanel.approve\": \"Approve\",\n \"chatConfig.agentPanel.noDescription\": \"No description\",\n \"chatConfig.agentPanel.configWorkbench\": \"Config Workbench\",\n \"chatConfig.agentPanel.deleteAgent\": \"Delete Agent\",\n \"chatConfig.agentPanel.loadingConfig\": \"Loading agent configuration...\",\n \"chatConfig.agentPanel.footer.saveHint\": \"Changes will be saved to this agent\",\n \"chatConfig.agentPanel.footer.viewing\": \"Viewing agent configuration\",\n \"chatConfig.agentPanel.done\": \"Done\",\n \"chatConfig.agentPanel.delete.title\": \"Delete Agent\",\n \"chatConfig.agentPanel.delete.confirmPrefix\": \"Are you sure you want to delete\",\n \"chatConfig.agentPanel.delete.confirmSuffix\": \"? This action cannot be undone.\",\n \"chatConfig.agentPanel.deleteFailed\": \"Failed to delete assistant\",\n \"chatConfig.createAssistant.title\": \"Create New Assistant\",\n \"chatConfig.createAssistant.createExtend\": \"Create (Extend)\",\n \"chatConfig.createAssistant.startLearning\": \"Start Learning\",\n \"chatConfig.createAssistant.parentAgent\": \"Parent Agent\",\n \"chatConfig.createAssistant.inheritHint\": \"Fields left unchanged will be inherited from the parent agent.\",\n \"chatConfig.createAssistant.learnHint\": \"Describe what the agent should do.\",\n \"chatConfig.createAssistant.referenceFiles\": \"Reference Files\",\n \"chatConfig.createAssistant.referenceFilesHint\": \"Optional — uploaded to the shared training workspace and attached to the learning round; the architect reads them as round material.\",\n \"chatConfig.createAssistant.field.key\": \"Key (ID)\",\n \"chatConfig.createAssistant.field.name\": \"Name\",\n \"chatConfig.createAssistant.field.description\": \"Description\",\n \"chatConfig.createAssistant.field.agentType\": \"Agent Type\",\n \"chatConfig.createAssistant.field.connectionMode\": \"Connection Mode\",\n \"chatConfig.createAssistant.mode.remoteUrl\": \"Remote URL\",\n \"chatConfig.createAssistant.mode.localManaged\": \"Local Managed\",\n \"chatConfig.createAssistant.field.template\": \"Template\",\n \"chatConfig.createAssistant.templatePlaceholder\": \"Choose a template...\",\n \"chatConfig.createAssistant.noTemplates\": \"No templates. Use \\\"Custom Command\\\" below.\",\n \"chatConfig.createAssistant.customCommand\": \"+ Custom Command\",\n \"chatConfig.createAssistant.hideCustomCommand\": \"- Hide Custom Command\",\n \"chatConfig.createAssistant.field.executable\": \"Executable\",\n \"chatConfig.createAssistant.field.arguments\": \"Arguments\",\n \"chatConfig.createAssistant.field.workingDirectory\": \"Working directory\",\n \"chatConfig.createAssistant.field.agentCardUrl\": \"Agent Card URL\",\n \"chatConfig.createAssistant.field.apiKeyOptional\": \"API Key (optional)\",\n \"chatConfig.createAssistant.apiKeyPlaceholder\": \"API key for authentication\",\n \"chatConfig.createAssistant.field.timeout\": \"Timeout (ms)\",\n \"chatConfig.createAssistant.field.systemPrompt\": \"System Prompt\",\n \"chatConfig.createAssistant.field.systemPromptInherit\": \"System Prompt (leave unchanged to inherit from parent)\",\n \"chatConfig.createAssistant.systemPromptInheritPlaceholder\": \"Leave empty to inherit parent's prompt, or enter a new prompt to override...\",\n \"chatConfig.createAssistant.systemPromptPlaceholder\": \"Enter the system prompt for this agent...\",\n \"chatConfig.createAssistant.subAgents\": \"Sub-Agents\",\n \"chatConfig.createAssistant.descriptionPlaceholder\": \"Enter a description for this assistant...\",\n \"chatConfig.createAssistant.typeDesc.react\": \"Executor: Directly executes tasks using tools. Best for single-step operations like search, code execution, and data retrieval.\",\n \"chatConfig.createAssistant.typeDesc.deepAgent\": \"Orchestrator: Manages a sequential todo list to plan and assign todo items to sub-agents. Best for structured multi-step workflows.\",\n \"chatConfig.createAssistant.typeDesc.team\": \"Team: Creates tasks with dependencies and dynamically spawns teammates. Like a swarm, teammates communicate via mailbox. Best for tasks requiring exploration and divergent thinking.\",\n \"chatConfig.createAssistant.typeDesc.processing\": \"Workflow: Enforces a fixed workflow topology by delegating to sub-agents in a predefined order. Best for deterministic multi-step processes with validated delegation paths.\",\n \"chatConfig.createAssistant.typeDesc.a2aRemote\": \"A2A Remote: Delegates to an external A2A-compatible agent server. Use for local CLI tools (Claude Code, Codex, OpenCode) or remote agents.\",\n \"chatConfig.createAssistant.validation.keyRequired\": \"Please enter a unique key\",\n \"chatConfig.createAssistant.validation.keyPattern\": \"Key must start with a letter and contain only letters, numbers, underscores, or hyphens\",\n \"chatConfig.createAssistant.validation.nameRequired\": \"Please enter a name\",\n \"chatConfig.createAssistant.validation.descriptionRequired\": \"Please enter a description\",\n \"chatConfig.createAssistant.validation.systemPromptRequired\": \"Please enter a system prompt\",\n \"chatConfig.createAssistant.validation.urlRequired\": \"Please enter the A2A server URL\",\n \"chatConfig.createAssistant.validation.executableRequired\": \"Executable is required\",\n \"chatConfig.createAssistant.a2aUrlWarning\": \"Please enter an A2A server URL first\",\n \"chatConfig.createAssistant.connectedTo\": \"Connected to \\\"{{name}}\\\"\",\n \"chatConfig.createAssistant.connectionFailed\": \"Connection failed\",\n \"chatConfig.createAssistant.connectionTestFailed\": \"Connection test failed\",\n \"chatConfig.createAssistant.trainingGoalRequired\": \"Please describe the training goal\",\n \"chatConfig.createAssistant.noTrainingProject\": \"No shared training project available\",\n \"chatConfig.createAssistant.agentCreated\": \"Agent created — architect started building\",\n \"chatConfig.createAssistant.createdByExtending\": \"Assistant created by extending \\\"{{name}}\\\"\",\n \"chatConfig.createAssistant.created\": \"Assistant created successfully\",\n \"chatConfig.createAssistant.createFailed\": \"Failed to create assistant\",\n \"chatConfig.createAssistant.createError\": \"An error occurred while creating the assistant\",\n \"chatConfig.createAssistant.requiredFields\": \"Please complete the required fields: {{fields}}\",\n \"chatConfig.createAssistant.requiredFieldsGeneric\": \"Please complete the required fields\",\n \"chatConfig.createAssistant.noParentAgent\": \"No parent agent selected\",\n \"chatConfig.createAssistant.agentCreateFailed\": \"Failed to create agent\",\n \"chatConfig.createAssistant.cloneFetchFailed\": \"Failed to fetch sub-agent \\\"{{key}}\\\" for cloning\",\n \"chatConfig.createAssistant.cloneFailed\": \"Failed to clone sub-agent \\\"{{key}}\\\"\",\n \"chatConfig.createAssistant.cloneKeyRequired\": \"Please provide a key for the cloned sub-agent \\\"{{key}}\\\"\",\n \"chatConfig.createAssistant.cloneKeyInvalid\": \"Invalid key \\\"{{key}}\\\" for cloned sub-agent \\\"{{originalKey}}\\\". Key must start with a letter and contain only letters, numbers, underscores, or hyphens.\",\n \"chatConfig.parentAgent.selectPlaceholder\": \"Select a parent agent to extend...\",\n \"chatConfig.settings.defaultConnectionName\": \"Default\",\n \"chatConfig.settings.serverNamePlaceholder\": \"e.g., Production Server\",\n \"chatConfig.settings.title\": \"Settings\",\n \"chatConfig.settings.menu.environment\": \"Environment Variables\",\n \"chatConfig.settings.menu.models\": \"Model Configuration\",\n \"chatConfig.settings.menu.environment.desc\": \"Manage environment variables for the gateway server\",\n \"chatConfig.settings.menu.models.desc\": \"Configure the gateway-wide default model registry\",\n \"chatConfig.settings.saveConfiguration\": \"Save Configuration\",\n \"chatConfig.settings.addServer\": \"Add Server\",\n \"chatConfig.settings.addNewServer\": \"Add New Server\",\n \"chatConfig.settings.serverName\": \"Server Name\",\n \"chatConfig.settings.serverNameHint\": \"Optional: Leave empty to use URL as name\",\n \"chatConfig.settings.serverUrl\": \"Server URL *\",\n \"chatConfig.settings.serverUrlHint\": \"Enter the full URL of the gateway server\",\n \"chatConfig.settings.apiKey\": \"API Key\",\n \"chatConfig.settings.apiKeyPlaceholder\": \"Optional: Enter API key for authentication\",\n \"chatConfig.settings.apiKeyHint\": \"Optional: API key for server authentication\",\n \"chatConfig.settings.pleaseEnterServerUrl\": \"Please enter a server URL\",\n \"chatConfig.settings.serverAdded\": \"Server added successfully\",\n \"chatConfig.settings.serverDeleted\": \"Server deleted\",\n \"chatConfig.settings.connectFirst\": \"Please connect to a server first\",\n \"chatConfig.settings.loadConfigFailed\": \"Failed to load current configuration\",\n \"chatConfig.settings.saveFailed\": \"Failed to save configuration\",\n \"chatConfig.settings.restartWarning\": \"Configuration saved. Please restart the server for {{services}} to take effect.\",\n \"chatConfig.settings.savedApplied\": \"Configuration saved and applied successfully\",\n \"chatConfig.settings.modelSaved\": \"Model configuration saved and registered successfully\",\n \"chatConfig.settings.modelSaveFailed\": \"Failed to save model configuration\",\n \"chatConfig.settings.alert.title\": \"Configuration Effect\",\n \"chatConfig.settings.alert.immediate\": \"Immediately effective:\",\n \"chatConfig.settings.alert.restart\": \"Requires restart:\",\n \"chatConfig.settings.alert.restartDetail\": \"PORT (server must be restarted to change port)\",\n \"chatConfig.settings.envHint\": \"Configure environment variables in .env format (key=value). One variable per line. Leave password fields empty to keep current values.\",\n \"chatConfig.settings.modelsHint\": \"Configure model lattices. Each model will be registered with the provided key and can be used by agents.\",\n \"chatConfig.settings.model\": \"Model {{index}}\",\n \"chatConfig.settings.remove\": \"Remove\",\n \"chatConfig.settings.field.key\": \"Key *\",\n \"chatConfig.settings.field.keyHint\": \"Unique identifier for this model\",\n \"chatConfig.settings.field.provider\": \"Provider *\",\n \"chatConfig.settings.field.modelName\": \"Model Name *\",\n \"chatConfig.settings.field.apiKeyHintStored\": \"A key is stored on the server and is never sent back. Leave blank to keep it, or type a new one to replace it.\",\n \"chatConfig.settings.field.apiKeyHintNew\": \"API key for the model provider. Leave empty to use environment variable.\",\n \"chatConfig.settings.apiKeyPlaceholderConfigured\": \"Configured — leave blank to keep\",\n \"chatConfig.settings.apiKeyPlaceholderNew\": \"Enter your API key\",\n \"chatConfig.settings.field.baseUrl\": \"Base URL\",\n \"chatConfig.settings.field.baseUrlHint\": \"Optional custom base URL for the API\",\n \"chatConfig.settings.field.streaming\": \"Enable Streaming\",\n \"chatConfig.settings.field.maxTokens\": \"Max Tokens\",\n \"chatConfig.settings.field.temperature\": \"Temperature\",\n \"chatConfig.settings.addModel\": \"+ Add Model\",\n \"chatConfig.settings.connecting\": \"Connecting...\",\n \"chatConfig.settings.connectingTo\": \"Connecting to {{url}}\",\n \"chatConfig.settings.notConnected\": \"Not Connected\",\n \"chatConfig.settings.connectFailedDetail\": \"Failed to connect to {{url}}. Please check the server URL and try again.\",\n \"chatConfig.settings.clickReconnect\": \"Click \\\"Reconnect\\\" to connect to {{url}}\",\n \"chatConfig.settings.reconnect\": \"Reconnect\",\n \"chatConfig.settings.error.serverError\": \"Server returned an error\",\n \"chatConfig.settings.error.timeout\": \"Connection timeout\",\n \"chatConfig.settings.error.connectFailed\": \"Failed to connect to server\",\n \"chatConfig.paChannel.title\": \"Connect Channels\",\n \"chatConfig.paChannel.channels\": \"Channels\",\n \"chatConfig.paChannel.noChannels\": \"No channels yet\",\n \"chatConfig.paChannel.connect\": \"Connect\",\n \"chatConfig.paChannel.selectHint\": \"Select a channel from the left or add a new one\",\n \"chatConfig.paChannel.chooseType\": \"Choose Channel Type\",\n \"chatConfig.paChannel.editChannel\": \"Edit Channel\",\n \"chatConfig.paChannel.newChannel\": \"New {{channel}}\",\n \"chatConfig.paChannel.channel.lark\": \"Feishu\",\n \"chatConfig.paChannel.channel.wechat\": \"WeChat\",\n \"chatConfig.paChannel.channel.wecom\": \"WeCom\",\n \"chatConfig.paChannel.wechatBot\": \"WeChat Bot\",\n \"chatConfig.paChannel.feishuBot\": \"Feishu Bot\",\n \"chatConfig.paChannel.wecomBot\": \"WeCom Bot\",\n \"chatConfig.paChannel.field.botId\": \"Bot ID\",\n \"chatConfig.paChannel.field.secret\": \"Secret\",\n \"chatConfig.paChannel.placeholder.botId\": \"Bot ID from the WeCom admin console\",\n \"chatConfig.paChannel.placeholder.secret\": \"Long-connection Secret from the WeCom admin console\",\n \"chatConfig.paChannel.wecomConnectHint\": \"Uses the smart-bot long-connection (API) mode — no public callback URL; the gateway maintains the connection.\",\n \"chatConfig.paChannel.validation.botIdRequired\": \"Bot ID is required\",\n \"chatConfig.paChannel.validation.secretRequired\": \"Secret is required\",\n \"chatConfig.paChannel.field.channelType\": \"Channel Type\",\n \"chatConfig.paChannel.field.displayName\": \"Display Name\",\n \"chatConfig.paChannel.field.appId\": \"App ID\",\n \"chatConfig.paChannel.field.appSecret\": \"App Secret\",\n \"chatConfig.paChannel.field.verificationToken\": \"Verification Token\",\n \"chatConfig.paChannel.field.encryptKey\": \"Encrypt Key\",\n \"chatConfig.paChannel.field.botToken\": \"Bot Token\",\n \"chatConfig.paChannel.field.uin\": \"UIN\",\n \"chatConfig.paChannel.enabled\": \"Enabled\",\n \"chatConfig.paChannel.listenerActive\": \"Listener service is active\",\n \"chatConfig.paChannel.listenerStopped\": \"Listener service is stopped\",\n \"chatConfig.paChannel.anyoneCanMessage\": \"Anyone can message\",\n \"chatConfig.paChannel.anyoneCanMessageHint\": \"When enabled, anyone with access to this channel can chat with your assistant\",\n \"chatConfig.paChannel.whoCanChat\": \"Who can chat\",\n \"chatConfig.paChannel.whoCanChatHint\": \"Only people you add here can message your assistant\",\n \"chatConfig.paChannel.noContacts\": \"No contacts added yet\",\n \"chatConfig.paChannel.addContact\": \"Add Contact\",\n \"chatConfig.paChannel.add\": \"Add\",\n \"chatConfig.paChannel.required\": \"Required\",\n \"chatConfig.paChannel.placeholder.wechatOpenId\": \"WeChat Open ID\",\n \"chatConfig.paChannel.placeholder.feishuOpenId\": \"Feishu Open ID\",\n \"chatConfig.paChannel.placeholder.wecomUserId\": \"WeCom User ID\",\n \"chatConfig.paChannel.placeholder.displayName\": \"Display name (optional)\",\n \"chatConfig.paChannel.placeholder.appSecret\": \"Your app secret\",\n \"chatConfig.paChannel.placeholder.optional\": \"Optional\",\n \"chatConfig.paChannel.placeholder.botToken\": \"Auto-filled after QR scan\",\n \"chatConfig.paChannel.placeholder.uin\": \"Auto-filled from QR login\",\n \"chatConfig.paChannel.addBindingHint\": \"Once saved, come back here to add the people you'd like to chat with.\",\n \"chatConfig.paChannel.removeChannel\": \"Remove this channel?\",\n \"chatConfig.paChannel.removeChannelDesc\": \"All bindings for this installation will also be lost.\",\n \"chatConfig.paChannel.save\": \"Save\",\n \"chatConfig.paChannel.bindingAdded\": \"Binding added\",\n \"chatConfig.paChannel.bindingAddFailed\": \"Failed to add binding\",\n \"chatConfig.paChannel.bindingRemoved\": \"Binding removed\",\n \"chatConfig.paChannel.bindingRemoveFailed\": \"Failed to remove binding\",\n \"chatConfig.paChannel.bindingsLoadFailed\": \"Failed to load bindings\",\n \"chatConfig.paChannel.installationsLoadFailed\": \"Failed to load channel installations\",\n \"chatConfig.paChannel.channelEnabled\": \"Channel enabled\",\n \"chatConfig.paChannel.channelDisabled\": \"Channel disabled\",\n \"chatConfig.paChannel.toggleFailed\": \"Failed to toggle channel\",\n \"chatConfig.paChannel.installationUpdated\": \"Installation updated\",\n \"chatConfig.paChannel.installationUpdateFailed\": \"Failed to update installation\",\n \"chatConfig.paChannel.installationCreated\": \"Installation created\",\n \"chatConfig.paChannel.installationCreateFailed\": \"Failed to create installation\",\n \"chatConfig.paChannel.installationSaveFailed\": \"Failed to save installation\",\n \"chatConfig.paChannel.installationDeleted\": \"Installation deleted\",\n \"chatConfig.paChannel.installationDeleteFailed\": \"Failed to delete installation\",\n \"chatConfig.paChannel.addUsersHint\": \"Now add users who can access this channel\",\n \"chatConfig.paChannel.validation.appIdRequired\": \"App ID is required\",\n \"chatConfig.paChannel.validation.appSecretRequired\": \"App Secret is required\",\n \"chatConfig.paChannel.validation.botTokenRequired\": \"Bot Token is required\",\n \"chatConfig.paChannel.qr.hint\": \"Scan the QR code with WeChat to get a bot token\",\n \"chatConfig.paChannel.qr.get\": \"Get QR Code\",\n \"chatConfig.paChannel.qr.generating\": \"Generating QR code...\",\n \"chatConfig.paChannel.qr.scan\": \"Scan with WeChat\",\n \"chatConfig.paChannel.qr.scanned\": \"Scanned! Confirm on your phone...\",\n \"chatConfig.paChannel.qr.expiresIn\": \"Expires in {{time}}\",\n \"chatConfig.paChannel.qr.expired\": \"QR code expired\",\n \"chatConfig.paChannel.qr.refreshStatus\": \"Refresh Status\",\n \"chatConfig.paChannel.qr.loginConfirmed\": \"Login confirmed!\",\n \"chatConfig.paChannel.qr.tokenFilled\": \"Bot token has been filled automatically\",\n \"chatConfig.paChannel.qr.expiredGetNew\": \"QR code expired. Get a new one.\",\n \"chatConfig.paChannel.qr.retry\": \"Retry\",\n \"chatConfig.paChannel.qr.loadFailed\": \"Failed to load QR code\",\n \"chatConfig.paChannel.qr.getFailed\": \"Failed to get QR code\",\n \"chatConfig.paChannel.qr.statusFailed\": \"Failed to check QR status\"\n }\n}\n","{\n \"messages\": {\n \"chatConfig.field.name\": \"名称\",\n \"chatConfig.field.description\": \"描述\",\n \"chatConfig.field.displayName\": \"显示名称\",\n \"chatConfig.field.connectionKey\": \"连接 Key\",\n \"chatConfig.field.host\": \"主机\",\n \"chatConfig.field.port\": \"端口\",\n \"chatConfig.field.username\": \"用户名\",\n \"chatConfig.field.password\": \"密码\",\n \"chatConfig.field.serverUrl\": \"服务器 URL\",\n \"chatConfig.field.apiKey\": \"API Key\",\n \"chatConfig.field.optionalDescription\": \"可选描述\",\n \"chatConfig.config.updated\": \"配置已更新\",\n \"chatConfig.config.created\": \"配置已创建\",\n \"chatConfig.config.deleted\": \"配置已删除\",\n \"chatConfig.config.deleteFailed\": \"删除配置失败\",\n \"chatConfig.config.saveFailed\": \"保存配置失败\",\n \"chatConfig.config.missingId\": \"无法删除:缺少配置 id\",\n \"chatConfig.agentType.executor\": \"执行器\",\n \"chatConfig.agentType.orchestrator\": \"编排器\",\n \"chatConfig.agentType.team\": \"团队\",\n \"chatConfig.agentType.workflow\": \"工作流\",\n \"chatConfig.agentType.a2aRemote\": \"A2A 远程\",\n \"chatConfig.keyValue.key\": \"键\",\n \"chatConfig.keyValue.value\": \"值\",\n \"chatConfig.keyValue.add\": \"添加\",\n \"chatConfig.keyValue.removeEntry\": \"移除条目\",\n \"chatConfig.connectionList.empty\": \"没有“{{type}}”连接\",\n \"chatConfig.connectionList.selectAll\": \"全选\",\n \"chatConfig.connectionList.deselectAll\": \"取消全选\",\n \"chatConfig.connectionList.clear\": \"清空\",\n \"chatConfig.connectionsHub.title\": \"插件\",\n \"chatConfig.connectionsHub.tab.all\": \"全部({{count}})\",\n \"chatConfig.connectionsHub.tab.connections\": \"连接({{count}})\",\n \"chatConfig.connectionsHub.tab.tools\": \"工具({{count}})\",\n \"chatConfig.connectionsHub.empty.connections.title\": \"没有连接类插件\",\n \"chatConfig.connectionsHub.empty.connections.description\": \"没有注册支持连接管理的插件\",\n \"chatConfig.connectionsHub.empty.tools.title\": \"没有工具类插件\",\n \"chatConfig.connectionsHub.empty.tools.description\": \"没有注册纯工具类插件\",\n \"chatConfig.connectionsHub.empty.all.title\": \"没有插件\",\n \"chatConfig.connectionsHub.empty.all.description\": \"没有注册任何插件\",\n \"chatConfig.connectionsHub.capability.test\": \"测试\",\n \"chatConfig.connectionsHub.capability.discover\": \"发现\",\n \"chatConfig.connectionsHub.capability.connection\": \"连接\",\n \"chatConfig.connectionsHub.capability.tool\": \"工具\",\n \"chatConfig.subAgentInherit.hint\": \"选择如何处理来自父智能体的每个子智能体:\",\n \"chatConfig.subAgentInherit.clone\": \"克隆为新智能体\",\n \"chatConfig.subAgentInherit.reuse\": \"复用\",\n \"chatConfig.subAgentInherit.cloneKeyPlaceholder\": \"输入克隆智能体的 key\",\n \"chatConfig.project.create.title\": \"新建项目\",\n \"chatConfig.project.field.name\": \"项目名称\",\n \"chatConfig.project.field.namePlaceholder\": \"输入项目名称\",\n \"chatConfig.project.validation.nameRequired\": \"请输入项目名称\",\n \"chatConfig.project.validation.nameMax\": \"项目名称不能超过 50 个字符\",\n \"chatConfig.project.field.visibility\": \"可见性\",\n \"chatConfig.project.kind.business\": \"业务\",\n \"chatConfig.project.kind.business.description\": \"仅受邀成员可见。\",\n \"chatConfig.project.kind.public\": \"公开\",\n \"chatConfig.project.kind.public.description\": \"本工作区内所有人可见。\",\n \"chatConfig.project.field.description\": \"描述(可选)\",\n \"chatConfig.project.field.descriptionPlaceholder\": \"输入项目描述\",\n \"chatConfig.workflow.create.title\": \"新建工作流\",\n \"chatConfig.workflow.create.titleProcessing\": \"新建处理工作流\",\n \"chatConfig.workflow.field.purpose\": \"用途\",\n \"chatConfig.workflow.field.purposePlaceholder\": \"描述这个工作流要做什么。名称和 key 会自动生成。\",\n \"chatConfig.workflow.validation.purposeRequired\": \"请描述工作流的用途\",\n \"chatConfig.workflow.middleware.topologyName\": \"拓扑\",\n \"chatConfig.workflow.middleware.topologyDescription\": \"工作流拓扑\",\n \"chatConfig.skill.create.title\": \"新建技能\",\n \"chatConfig.skill.edit.title\": \"编辑技能\",\n \"chatConfig.skill.created\": \"技能创建成功\",\n \"chatConfig.skill.updated\": \"技能更新成功\",\n \"chatConfig.skill.createFailed\": \"创建技能失败\",\n \"chatConfig.skill.updateFailed\": \"更新技能失败\",\n \"chatConfig.skill.createError\": \"创建技能时发生错误\",\n \"chatConfig.skill.updateError\": \"更新技能时发生错误\",\n \"chatConfig.skill.field.name\": \"名称\",\n \"chatConfig.skill.field.description\": \"描述\",\n \"chatConfig.skill.field.license\": \"许可证\",\n \"chatConfig.skill.field.compatibility\": \"兼容性\",\n \"chatConfig.skill.field.metadata\": \"元数据\",\n \"chatConfig.skill.field.content\": \"内容\",\n \"chatConfig.skill.placeholder.description\": \"描述\",\n \"chatConfig.skill.placeholder.license\": \"许可证\",\n \"chatConfig.skill.placeholder.compatibility\": \"兼容性\",\n \"chatConfig.skill.placeholder.content\": \"内容\",\n \"chatConfig.skill.validation.nameRequired\": \"请输入技能名称\",\n \"chatConfig.skill.validation.namePattern\": \"名称必须为小写字母数字,并使用单个连字符分隔(例如 'my-skill')\",\n \"chatConfig.skill.validation.nameLength\": \"名称长度必须为 1-64 个字符\",\n \"chatConfig.skill.validation.descriptionRequired\": \"请输入技能描述\",\n \"chatConfig.skill.metadata.add\": \"添加\",\n \"chatConfig.skill.metadata.empty\": \"还没有元数据。使用「添加」创建一条。\",\n \"chatConfig.skill.metadata.row\": \"元数据 {{index}}\",\n \"chatConfig.skill.action.save\": \"保存修改\",\n \"chatConfig.skill.action.create\": \"创建技能\",\n \"chatConfig.skillPicker.title\": \"技能\",\n \"chatConfig.skillPicker.selectTitle\": \"选择技能\",\n \"chatConfig.skillPicker.empty\": \"暂无可用技能\",\n \"chatConfig.databasePicker.title\": \"数据库\",\n \"chatConfig.databasePicker.selectTitle\": \"选择数据库\",\n \"chatConfig.databasePicker.empty\": \"暂无可用数据库\",\n \"chatConfig.channelInstall.title\": \"渠道接入\",\n \"chatConfig.channelInstall.add\": \"添加接入\",\n \"chatConfig.channelInstall.editTitle\": \"编辑接入\",\n \"chatConfig.channelInstall.addTitle\": \"添加接入\",\n \"chatConfig.channelInstall.empty.title\": \"暂无渠道接入\",\n \"chatConfig.channelInstall.empty.description\": \"点击「添加接入」创建一个\",\n \"chatConfig.channelInstall.unsupported\": \"暂不支持该渠道的配置界面\",\n \"chatConfig.channelInstall.loadFailed\": \"加载渠道接入失败\",\n \"chatConfig.channelInstall.deleted\": \"接入已删除\",\n \"chatConfig.channelInstall.deleteFailed\": \"删除接入失败\",\n \"chatConfig.channelInstall.updated\": \"接入已更新\",\n \"chatConfig.channelInstall.updateFailed\": \"更新接入失败\",\n \"chatConfig.channelInstall.created\": \"接入已创建\",\n \"chatConfig.channelInstall.createFailed\": \"创建接入失败\",\n \"chatConfig.channelInstall.delete.title\": \"删除渠道接入\",\n \"chatConfig.channelInstall.delete.description\": \"确定要删除「{{name}}」吗?\",\n \"chatConfig.channelInstall.field.channel\": \"渠道\",\n \"chatConfig.channelInstall.field.name\": \"名称\",\n \"chatConfig.channelInstall.field.appId\": \"App ID\",\n \"chatConfig.channelInstall.field.appSecret\": \"App Secret\",\n \"chatConfig.channelInstall.field.verificationToken\": \"Verification Token\",\n \"chatConfig.channelInstall.field.encryptKey\": \"Encrypt Key\",\n \"chatConfig.channelInstall.validation.appIdRequired\": \"App ID 为必填项\",\n \"chatConfig.channelInstall.validation.appSecretRequired\": \"App Secret 为必填项\",\n \"chatConfig.connection.loadFailed\": \"加载连接失败\",\n \"chatConfig.connection.testPassed\": \"连接测试通过:{{message}}\",\n \"chatConfig.connection.testFailed\": \"连接测试失败\",\n \"chatConfig.connection.testError\": \"测试连接失败\",\n \"chatConfig.connection.missingKey\": \"无法删除:缺少连接 key\",\n \"chatConfig.connection.deleted\": \"连接已删除\",\n \"chatConfig.connection.deleteFailed\": \"删除连接失败\",\n \"chatConfig.connection.noSchema.title\": \"未定义连接结构\",\n \"chatConfig.connection.noSchema.description\": \"该插件类型不支持连接管理\",\n \"chatConfig.connection.action.test\": \"测试\",\n \"chatConfig.connection.status.online\": \"在线\",\n \"chatConfig.connection.status.offline\": \"离线\",\n \"chatConfig.connection.updated\": \"更新于 {{date}}\",\n \"chatConfig.connection.add\": \"添加连接\",\n \"chatConfig.connection.empty.title\": \"尚未配置连接\",\n \"chatConfig.connection.empty.description\": \"点击「添加连接」创建一个\",\n \"chatConfig.connection.delete.title\": \"删除连接\",\n \"chatConfig.connection.delete.confirm\": \"删除「{{name}}」?\",\n \"chatConfig.connectionForm.testRequestFailed\": \"测试请求失败\",\n \"chatConfig.connectionForm.keyRequired\": \"连接 key 为必填项\",\n \"chatConfig.connectionForm.updated\": \"连接已更新\",\n \"chatConfig.connectionForm.created\": \"连接已创建\",\n \"chatConfig.connectionForm.saveFailed\": \"保存连接失败\",\n \"chatConfig.connectionForm.selectPlaceholder\": \"选择{{title}}\",\n \"chatConfig.connectionForm.enterPlaceholder\": \"输入{{title}}\",\n \"chatConfig.connectionForm.step.details\": \"连接详情\",\n \"chatConfig.connectionForm.step.verify\": \"验证\",\n \"chatConfig.connectionForm.editTitle\": \"编辑 {{type}} 连接\",\n \"chatConfig.connectionForm.addTitle\": \"添加 {{type}} 连接\",\n \"chatConfig.connectionForm.save\": \"保存修改\",\n \"chatConfig.connectionForm.finish\": \"完成\",\n \"chatConfig.connectionForm.testing\": \"正在测试连接……\",\n \"chatConfig.connectionForm.availableResources\": \"可用资源\",\n \"chatConfig.connectionForm.selectedCount\": \"(已选 {{count}} 项)\",\n \"chatConfig.connectionForm.retryTest\": \"重新测试\",\n \"chatConfig.database.title\": \"数据库连接\",\n \"chatConfig.database.loadFailed\": \"加载数据库配置失败\",\n \"chatConfig.database.testSuccess\": \"已成功连接到 {{host}}({{latency}}ms)\",\n \"chatConfig.database.connectionFailed\": \"连接失败:{{error}}\",\n \"chatConfig.database.empty.title\": \"暂无数据库配置\",\n \"chatConfig.database.keyAndId\": \"Key:{{key}} | ID:{{id}}\",\n \"chatConfig.database.connectionStringMode\": \"连接串模式\",\n \"chatConfig.database.testing\": \"测试中……\",\n \"chatConfig.database.editTitle\": \"编辑数据库配置\",\n \"chatConfig.database.addTitle\": \"添加数据库配置\",\n \"chatConfig.database.field.type\": \"数据库类型\",\n \"chatConfig.database.field.connectionString\": \"连接串\",\n \"chatConfig.database.priorityMode\": \"优先模式\",\n \"chatConfig.database.note.important\": \"重要:\",\n \"chatConfig.database.note.whenProvided\": \"提供连接串时,它会\",\n \"chatConfig.database.note.priorityOver\": \"优先于\",\n \"chatConfig.database.note.suffix\": \"下方所有单独连接参数。后端采用相同的优先级逻辑。\",\n \"chatConfig.database.field.individualParams\": \"单独连接参数\",\n \"chatConfig.database.ignoredWhenString\": \"设置连接串后该项会被忽略\",\n \"chatConfig.database.field.name\": \"数据库名称\",\n \"chatConfig.database.delete.title\": \"删除数据库配置\",\n \"chatConfig.database.delete.description\": \"确定要删除「{{name}}」吗?\",\n \"chatConfig.metrics.title\": \"指标服务器连接\",\n \"chatConfig.metrics.loadFailed\": \"加载指标配置失败\",\n \"chatConfig.metrics.testSuccess\": \"已成功连接到 {{serverUrl}}({{latency}}ms)\",\n \"chatConfig.metrics.empty.title\": \"暂无指标配置\",\n \"chatConfig.metrics.delete.title\": \"删除指标配置\",\n \"chatConfig.metrics.step.basic\": \"基本信息\",\n \"chatConfig.metrics.step.dataSources\": \"选择数据源\",\n \"chatConfig.metrics.serverUrlRequired\": \"请输入服务器 URL\",\n \"chatConfig.metrics.fetchDataSourcesFailed\": \"获取数据源失败\",\n \"chatConfig.metrics.editTitle\": \"编辑指标配置\",\n \"chatConfig.metrics.addTitle\": \"添加指标配置\",\n \"chatConfig.metrics.field.serverType\": \"服务器类型\",\n \"chatConfig.metrics.field.authentication\": \"认证\",\n \"chatConfig.metrics.optional\": \"可选\",\n \"chatConfig.metrics.placeholder.apiKey\": \"用于认证的可选 API Key\",\n \"chatConfig.metrics.placeholder.username\": \"用于基本认证的可选用户名\",\n \"chatConfig.metrics.placeholder.password\": \"用于基本认证的可选密码\",\n \"chatConfig.metrics.fetchingDataSources\": \"正在获取数据源……\",\n \"chatConfig.metrics.field.dataSources\": \"数据源\",\n \"chatConfig.metrics.selectedCount\": \"已选:{{count}}\",\n \"chatConfig.metrics.connected\": \"已连接\",\n \"chatConfig.metrics.metricsAvailable\": \"共 {{count}} 个指标可用\",\n \"chatConfig.metrics.loadingMetrics\": \"正在加载指标……\",\n \"chatConfig.metrics.loadMetricsFailed\": \"加载指标失败\",\n \"chatConfig.metrics.selectDataSourceHint\": \"点击左侧的数据源查看其指标\",\n \"chatConfig.metrics.previous\": \"上一步\",\n \"chatConfig.metrics.save\": \"保存修改\",\n \"chatConfig.metrics.type.semantic\": \"语义\",\n \"chatConfig.metricsDataSource.select\": \"选择数据源\",\n \"chatConfig.metricsDataSource.noneAvailable\": \"暂无可用数据源\",\n \"chatConfig.metricsDataSource.title\": \"选择指标数据源\",\n \"chatConfig.metricsDataSource.empty\": \"暂无指标数据源\",\n \"chatConfig.metricsDataSource.disconnected\": \"未连接\",\n \"chatConfig.metricsDataSource.selected\": \"已选\",\n \"chatConfig.mcp.title\": \"MCP 服务器连接\",\n \"chatConfig.mcp.loadFailed\": \"加载 MCP 服务器配置失败\",\n \"chatConfig.mcp.testSuccess\": \"已成功连接({{latency}}ms)\",\n \"chatConfig.mcp.disconnected\": \"{{name}} 已断开连接\",\n \"chatConfig.mcp.connected\": \"{{name}} 已连接\",\n \"chatConfig.mcp.connectFailed\": \"连接失败\",\n \"chatConfig.mcp.toggleFailed\": \"切换连接状态失败\",\n \"chatConfig.mcp.action.test\": \"测试连接\",\n \"chatConfig.mcp.toolsCount\": \"{{count}} 个工具\",\n \"chatConfig.mcp.empty.title\": \"暂无 MCP 服务器配置\",\n \"chatConfig.mcp.delete.title\": \"删除 MCP 服务器配置\",\n \"chatConfig.mcp.step.connection\": \"连接\",\n \"chatConfig.mcp.step.tools\": \"选择工具\",\n \"chatConfig.mcp.commandRequired\": \"请输入 stdio 传输方式所需的命令\",\n \"chatConfig.mcp.urlRequired\": \"请输入 HTTP/SSE 传输方式所需的 URL\",\n \"chatConfig.mcp.fetchToolsFailed\": \"获取工具失败\",\n \"chatConfig.mcp.fetchToolsError\": \"从 MCP 服务器获取工具失败\",\n \"chatConfig.mcp.editTitle\": \"编辑 MCP 服务器配置\",\n \"chatConfig.mcp.addTitle\": \"添加 MCP 服务器配置\",\n \"chatConfig.mcp.field.transport\": \"传输类型\",\n \"chatConfig.mcp.transport.stdio\": \"STDIO(命令)\",\n \"chatConfig.mcp.transport.http\": \"HTTP\",\n \"chatConfig.mcp.transport.sse\": \"SSE(Server-Sent Events)\",\n \"chatConfig.mcp.field.command\": \"命令\",\n \"chatConfig.mcp.field.args\": \"参数(每行一个)\",\n \"chatConfig.mcp.field.env\": \"环境变量\",\n \"chatConfig.mcp.envHint\": \"传入服务器进程(例如 API 令牌)。值会加密存储。\",\n \"chatConfig.mcp.addVariable\": \"添加变量\",\n \"chatConfig.mcp.sseDeprecated\": \"MCP 规范已废弃 SSE —— 新服务器建议使用 Streamable HTTP(HTTP)。\",\n \"chatConfig.mcp.field.headers\": \"请求头\",\n \"chatConfig.mcp.headersHint\": \"随每个请求发送(例如用于认证的 Authorization)。值会加密存储。\",\n \"chatConfig.mcp.addHeader\": \"添加请求头\",\n \"chatConfig.mcp.advanced\": \"高级选项\",\n \"chatConfig.mcp.field.timeout\": \"超时时间(ms)\",\n \"chatConfig.mcp.field.retryAttempts\": \"重试次数\",\n \"chatConfig.mcp.connecting\": \"正在连接 MCP 服务器并获取工具……\",\n \"chatConfig.mcp.noTools\": \"暂无可用工具。请检查你的连接设置。\",\n \"chatConfig.mcp.availableTools\": \"可用工具\",\n \"chatConfig.mcp.selectedTools\": \"已选:{{selected}} / {{total}}\",\n \"chatConfig.mcp.parameters\": \"参数:{{list}}\",\n \"chatConfig.mcp.previous\": \"上一步\",\n \"chatConfig.mcp.save\": \"保存修改\",\n \"chatConfig.midForm.selectAll\": \"全选\",\n \"chatConfig.midForm.clear\": \"清空\",\n \"chatConfig.midForm.selectedOfTotal\": \"已选 {{selected}} / {{total}}\",\n \"chatConfig.midForm.tools\": \"工具\",\n \"chatConfig.midForm.skills.title\": \"技能库\",\n \"chatConfig.midForm.skills.search\": \"搜索技能……\",\n \"chatConfig.midForm.skills.empty\": \"暂无可用技能\",\n \"chatConfig.midForm.databases.title\": \"数据库\",\n \"chatConfig.midForm.databases.search\": \"搜索数据库……\",\n \"chatConfig.midForm.databases.empty\": \"暂无可用数据库\",\n \"chatConfig.midForm.metrics.title\": \"指标服务器\",\n \"chatConfig.midForm.metrics.search\": \"搜索服务器……\",\n \"chatConfig.midForm.metrics.empty\": \"暂无可用服务器\",\n \"chatConfig.midForm.collections.title\": \"集合\",\n \"chatConfig.midForm.collections.search\": \"搜索集合……\",\n \"chatConfig.midForm.collections.empty\": \"暂无可用集合\",\n \"chatConfig.midForm.topology.title\": \"依赖关系\",\n \"chatConfig.midForm.topology.edges\": \"{{count}} 条边\",\n \"chatConfig.midForm.topology.empty\": \"尚未定义依赖关系\",\n \"chatConfig.midForm.topology.addTitle\": \"添加依赖\",\n \"chatConfig.midForm.topology.fromPlaceholder\": \"源智能体 ID\",\n \"chatConfig.midForm.topology.toPlaceholder\": \"目标智能体 ID\",\n \"chatConfig.midForm.topology.purposePlaceholder\": \"用途(例如:归类发票字段)\",\n \"chatConfig.midForm.topology.addEdge\": \"添加边\",\n \"chatConfig.midForm.connections.title\": \"连接\",\n \"chatConfig.midForm.section.config\": \"配置\",\n \"chatConfig.midForm.section.resources\": \"资源授权\",\n \"chatConfig.midForm.section.tools\": \"工具授权\",\n \"chatConfig.midForm.enabled\": \"已启用\",\n \"chatConfig.midForm.disabled\": \"已禁用\",\n \"chatConfig.midForm.scope.global\": \"全局\",\n \"chatConfig.midForm.scope.agent\": \"智能体\",\n \"chatConfig.midForm.scope.project\": \"项目\",\n \"chatConfig.agentModal.title\": \"配置智能体\",\n \"chatConfig.agentModal.tab.basic\": \"基本\",\n \"chatConfig.agentModal.tab.tools\": \"工具\",\n \"chatConfig.agentModal.tab.skills\": \"技能\",\n \"chatConfig.agentModal.tab.subAgents\": \"子智能体\",\n \"chatConfig.agentModal.field.agentType\": \"智能体类型\",\n \"chatConfig.agentModal.field.systemPrompt\": \"系统提示词\",\n \"chatConfig.agentModal.systemPromptPlaceholder\": \"输入该智能体的系统提示词……\",\n \"chatConfig.agentModal.systemPromptHint\": \"定义智能体的行为、能力和约束\",\n \"chatConfig.agentModal.selectedOfTotal\": \"已选 {{selected}} / {{total}}\",\n \"chatConfig.agentModal.selectAll\": \"全选\",\n \"chatConfig.agentModal.deselectAll\": \"取消全选\",\n \"chatConfig.agentModal.noTools\": \"暂无可用工具\",\n \"chatConfig.agentModal.noSkills\": \"暂无可用技能\",\n \"chatConfig.agentModal.noOtherAgents\": \"暂无其他智能体\",\n \"chatConfig.agentModal.approve\": \"审批\",\n \"chatConfig.agentModal.noDescription\": \"暂无描述\",\n \"chatConfig.agentModal.hierarchy\": \"智能体层级\",\n \"chatConfig.agentModal.currentAgent\": \"当前智能体\",\n \"chatConfig.agentModal.currentTag\": \"当前\",\n \"chatConfig.agentModal.type.react\": \"React\",\n \"chatConfig.agentModal.type.deepAgent\": \"Deep Agent\",\n \"chatConfig.agentModal.type.workflow\": \"工作流\",\n \"chatConfig.agentModal.toolsCount\": \"{{count}} 个工具\",\n \"chatConfig.agentModal.skillsCount\": \"{{count}} 个技能\",\n \"chatConfig.agentModal.subAgentsCount\": \"{{count}} 个子智能体\",\n \"chatConfig.agentModal.structureTree\": \"结构树\",\n \"chatConfig.agentModal.tip\": \"提示\",\n \"chatConfig.agentModal.tipBody\": \"Deep Agent 类型允许你把任务委派给子智能体。在「子智能体」标签页中选择智能体来构建层级。\",\n \"chatConfig.agentModal.changesHint\": \"修改将更新智能体配置\",\n \"chatConfig.agentModal.saveConfiguration\": \"保存配置\",\n \"chatConfig.agentPanel.category.data\": \"数据与知识\",\n \"chatConfig.agentPanel.category.execution\": \"执行与交互\",\n \"chatConfig.agentPanel.category.workflow\": \"工作流与编排\",\n \"chatConfig.agentPanel.category.assistant\": \"助手与评测\",\n \"chatConfig.agentPanel.category.other\": \"其他\",\n \"chatConfig.agentPanel.nav.basic\": \"基本信息\",\n \"chatConfig.agentPanel.nav.prompt\": \"系统提示词\",\n \"chatConfig.agentPanel.nav.tools\": \"常用工具\",\n \"chatConfig.agentPanel.nav.capabilities\": \"能力\",\n \"chatConfig.agentPanel.nav.subAgents\": \"子智能体\",\n \"chatConfig.agentPanel.navAriaLabel\": \"智能体配置分区\",\n \"chatConfig.agentPanel.basic.title\": \"基本信息\",\n \"chatConfig.agentPanel.basic.desc\": \"该智能体的核心身份与行为\",\n \"chatConfig.agentPanel.field.name\": \"名称\",\n \"chatConfig.agentPanel.field.agentType\": \"智能体类型\",\n \"chatConfig.agentPanel.field.description\": \"描述\",\n \"chatConfig.agentPanel.validation.nameRequired\": \"请输入智能体名称\",\n \"chatConfig.agentPanel.validation.descriptionRequired\": \"请输入智能体描述\",\n \"chatConfig.agentPanel.placeholder.name\": \"输入智能体名称……\",\n \"chatConfig.agentPanel.placeholder.description\": \"输入智能体描述……\",\n \"chatConfig.agentPanel.typeDesc.react\": \"执行器:直接使用工具执行任务。适用于搜索、代码执行、数据检索等单步操作。\",\n \"chatConfig.agentPanel.typeDesc.deepAgent\": \"编排器:维护一份待办清单来规划并把任务分派给子智能体。适用于结构化的多步工作流。\",\n \"chatConfig.agentPanel.typeDesc.team\": \"团队:创建带依赖关系的任务并动态派生队友,队友之间通过信箱通信。适用于需要探索和发散思考的任务。\",\n \"chatConfig.agentPanel.typeDesc.processing\": \"工作流:按预定义的拓扑顺序委派给子智能体。适用于确定性的多步流程。\",\n \"chatConfig.agentPanel.prompt.title\": \"系统提示词\",\n \"chatConfig.agentPanel.prompt.desc\": \"定义智能体的行为、能力和约束\",\n \"chatConfig.agentPanel.prompt.expand\": \"展开\",\n \"chatConfig.agentPanel.prompt.placeholder\": \"输入该智能体的系统提示词……\",\n \"chatConfig.agentPanel.prompt.chars\": \"{{count}} 个字符\",\n \"chatConfig.agentPanel.tools.title\": \"常用工具\",\n \"chatConfig.agentPanel.tools.desc\": \"选择该智能体可以直接调用的工具\",\n \"chatConfig.agentPanel.tools.search\": \"搜索工具……\",\n \"chatConfig.agentPanel.tools.selected\": \"已选 {{selected}} / {{total}}\",\n \"chatConfig.agentPanel.subAgents.title\": \"子智能体\",\n \"chatConfig.agentPanel.subAgents.desc\": \"选择该智能体可以委派的子智能体\",\n \"chatConfig.agentPanel.subAgents.search\": \"搜索子智能体……\",\n \"chatConfig.agentPanel.subAgents.selected\": \"已选 {{selected}} / {{total}}\",\n \"chatConfig.agentPanel.noTools\": \"暂无可用工具\",\n \"chatConfig.agentPanel.noCapabilities\": \"暂无可用能力\",\n \"chatConfig.agentPanel.noOtherAgents\": \"暂无其他智能体\",\n \"chatConfig.agentPanel.noMatching\": \"没有匹配结果\",\n \"chatConfig.agentPanel.selectAll\": \"全选\",\n \"chatConfig.agentPanel.clear\": \"清空\",\n \"chatConfig.agentPanel.approve\": \"审批\",\n \"chatConfig.agentPanel.noDescription\": \"暂无描述\",\n \"chatConfig.agentPanel.configWorkbench\": \"配置工作台\",\n \"chatConfig.agentPanel.deleteAgent\": \"删除智能体\",\n \"chatConfig.agentPanel.loadingConfig\": \"正在加载智能体配置……\",\n \"chatConfig.agentPanel.footer.saveHint\": \"修改会保存到该智能体\",\n \"chatConfig.agentPanel.footer.viewing\": \"正在查看智能体配置\",\n \"chatConfig.agentPanel.done\": \"完成\",\n \"chatConfig.agentPanel.delete.title\": \"删除智能体\",\n \"chatConfig.agentPanel.delete.confirmPrefix\": \"确定要删除\",\n \"chatConfig.agentPanel.delete.confirmSuffix\": \"吗?此操作无法撤销。\",\n \"chatConfig.agentPanel.deleteFailed\": \"删除助手失败\",\n \"chatConfig.createAssistant.title\": \"新建助手\",\n \"chatConfig.createAssistant.createExtend\": \"创建(扩展)\",\n \"chatConfig.createAssistant.startLearning\": \"开始学习\",\n \"chatConfig.createAssistant.parentAgent\": \"父智能体\",\n \"chatConfig.createAssistant.inheritHint\": \"未修改的字段将继承自父智能体。\",\n \"chatConfig.createAssistant.learnHint\": \"描述该智能体应该做什么。\",\n \"chatConfig.createAssistant.referenceFiles\": \"参考文件\",\n \"chatConfig.createAssistant.referenceFilesHint\": \"可选 —— 会上传到共享训练工作区并附加到本轮学习;架构师会将其作为本轮材料读取。\",\n \"chatConfig.createAssistant.field.key\": \"Key(ID)\",\n \"chatConfig.createAssistant.field.name\": \"名称\",\n \"chatConfig.createAssistant.field.description\": \"描述\",\n \"chatConfig.createAssistant.field.agentType\": \"智能体类型\",\n \"chatConfig.createAssistant.field.connectionMode\": \"连接方式\",\n \"chatConfig.createAssistant.mode.remoteUrl\": \"远程 URL\",\n \"chatConfig.createAssistant.mode.localManaged\": \"本地托管\",\n \"chatConfig.createAssistant.field.template\": \"模板\",\n \"chatConfig.createAssistant.templatePlaceholder\": \"选择一个模板……\",\n \"chatConfig.createAssistant.noTemplates\": \"暂无模板。请使用下方的「自定义命令」。\",\n \"chatConfig.createAssistant.customCommand\": \"+ 自定义命令\",\n \"chatConfig.createAssistant.hideCustomCommand\": \"- 隐藏自定义命令\",\n \"chatConfig.createAssistant.field.executable\": \"可执行文件\",\n \"chatConfig.createAssistant.field.arguments\": \"参数\",\n \"chatConfig.createAssistant.field.workingDirectory\": \"工作目录\",\n \"chatConfig.createAssistant.field.agentCardUrl\": \"Agent Card URL\",\n \"chatConfig.createAssistant.field.apiKeyOptional\": \"API Key(可选)\",\n \"chatConfig.createAssistant.apiKeyPlaceholder\": \"用于认证的 API key\",\n \"chatConfig.createAssistant.field.timeout\": \"超时时间(ms)\",\n \"chatConfig.createAssistant.field.systemPrompt\": \"系统提示词\",\n \"chatConfig.createAssistant.field.systemPromptInherit\": \"系统提示词(保持不变则继承自父智能体)\",\n \"chatConfig.createAssistant.systemPromptInheritPlaceholder\": \"留空则继承父智能体的提示词,或输入新提示词以覆盖……\",\n \"chatConfig.createAssistant.systemPromptPlaceholder\": \"输入该智能体的系统提示词……\",\n \"chatConfig.createAssistant.subAgents\": \"子智能体\",\n \"chatConfig.createAssistant.descriptionPlaceholder\": \"输入该助手的描述……\",\n \"chatConfig.createAssistant.typeDesc.react\": \"执行器:直接使用工具执行任务。适用于搜索、代码执行、数据检索等单步操作。\",\n \"chatConfig.createAssistant.typeDesc.deepAgent\": \"编排器:维护一份顺序待办清单来规划并把待办项分派给子智能体。适用于结构化的多步工作流。\",\n \"chatConfig.createAssistant.typeDesc.team\": \"团队:创建带依赖关系的任务并动态派生出队友。如同蜂群,队友之间通过信箱通信。适用于需要探索和发散思考的任务。\",\n \"chatConfig.createAssistant.typeDesc.processing\": \"工作流:按预定义顺序委派给子智能体,从而强制固定的工作流拓扑。适用于有校验委派路径的确定性多步流程。\",\n \"chatConfig.createAssistant.typeDesc.a2aRemote\": \"A2A 远程:委派给外部的 A2A 兼容智能体服务器。适用于本地 CLI 工具(Claude Code、Codex、OpenCode)或远程智能体。\",\n \"chatConfig.createAssistant.validation.keyRequired\": \"请输入唯一的 key\",\n \"chatConfig.createAssistant.validation.keyPattern\": \"Key 必须以字母开头,且只能包含字母、数字、下划线或连字符\",\n \"chatConfig.createAssistant.validation.nameRequired\": \"请输入名称\",\n \"chatConfig.createAssistant.validation.descriptionRequired\": \"请输入描述\",\n \"chatConfig.createAssistant.validation.systemPromptRequired\": \"请输入系统提示词\",\n \"chatConfig.createAssistant.validation.urlRequired\": \"请输入 A2A 服务器 URL\",\n \"chatConfig.createAssistant.validation.executableRequired\": \"可执行文件为必填项\",\n \"chatConfig.createAssistant.a2aUrlWarning\": \"请先输入 A2A 服务器 URL\",\n \"chatConfig.createAssistant.connectedTo\": \"已连接到「{{name}}」\",\n \"chatConfig.createAssistant.connectionFailed\": \"连接失败\",\n \"chatConfig.createAssistant.connectionTestFailed\": \"连接测试失败\",\n \"chatConfig.createAssistant.trainingGoalRequired\": \"请描述训练目标\",\n \"chatConfig.createAssistant.noTrainingProject\": \"暂无共享训练项目\",\n \"chatConfig.createAssistant.agentCreated\": \"智能体已创建 —— 架构师开始构建\",\n \"chatConfig.createAssistant.createdByExtending\": \"已通过扩展「{{name}}」创建助手\",\n \"chatConfig.createAssistant.created\": \"助手创建成功\",\n \"chatConfig.createAssistant.createFailed\": \"创建助手失败\",\n \"chatConfig.createAssistant.createError\": \"创建助手时发生错误\",\n \"chatConfig.createAssistant.requiredFields\": \"请填写必填字段:{{fields}}\",\n \"chatConfig.createAssistant.requiredFieldsGeneric\": \"请填写必填字段\",\n \"chatConfig.createAssistant.noParentAgent\": \"未选择父智能体\",\n \"chatConfig.createAssistant.agentCreateFailed\": \"创建智能体失败\",\n \"chatConfig.createAssistant.cloneFetchFailed\": \"获取用于克隆的子智能体「{{key}}」失败\",\n \"chatConfig.createAssistant.cloneFailed\": \"克隆子智能体「{{key}}」失败\",\n \"chatConfig.createAssistant.cloneKeyRequired\": \"请为克隆的子智能体「{{key}}」提供一个 key\",\n \"chatConfig.createAssistant.cloneKeyInvalid\": \"克隆的子智能体「{{originalKey}}」的 key「{{key}}」无效。Key 必须以字母开头,且只能包含字母、数字、下划线或连字符。\",\n \"chatConfig.parentAgent.selectPlaceholder\": \"选择要扩展的父智能体...\",\n \"chatConfig.settings.defaultConnectionName\": \"默认\",\n \"chatConfig.settings.serverNamePlaceholder\": \"例如:生产服务器\",\n \"chatConfig.settings.title\": \"设置\",\n \"chatConfig.settings.menu.environment\": \"环境变量\",\n \"chatConfig.settings.menu.models\": \"模型配置\",\n \"chatConfig.settings.menu.environment.desc\": \"管理网关服务器的环境变量\",\n \"chatConfig.settings.menu.models.desc\": \"配置网关级默认模型注册表\",\n \"chatConfig.settings.saveConfiguration\": \"保存配置\",\n \"chatConfig.settings.addServer\": \"添加服务器\",\n \"chatConfig.settings.addNewServer\": \"添加新服务器\",\n \"chatConfig.settings.serverName\": \"服务器名称\",\n \"chatConfig.settings.serverNameHint\": \"可选:留空则使用 URL 作为名称\",\n \"chatConfig.settings.serverUrl\": \"服务器 URL *\",\n \"chatConfig.settings.serverUrlHint\": \"输入网关服务器的完整 URL\",\n \"chatConfig.settings.apiKey\": \"API Key\",\n \"chatConfig.settings.apiKeyPlaceholder\": \"可选:输入用于认证的 API Key\",\n \"chatConfig.settings.apiKeyHint\": \"可选:用于服务器认证的 API Key\",\n \"chatConfig.settings.pleaseEnterServerUrl\": \"请输入服务器 URL\",\n \"chatConfig.settings.serverAdded\": \"服务器添加成功\",\n \"chatConfig.settings.serverDeleted\": \"服务器已删除\",\n \"chatConfig.settings.connectFirst\": \"请先连接一个服务器\",\n \"chatConfig.settings.loadConfigFailed\": \"加载当前配置失败\",\n \"chatConfig.settings.saveFailed\": \"保存配置失败\",\n \"chatConfig.settings.restartWarning\": \"配置已保存。请重启服务器使 {{services}} 生效。\",\n \"chatConfig.settings.savedApplied\": \"配置已保存并生效\",\n \"chatConfig.settings.modelSaved\": \"模型配置已保存并注册成功\",\n \"chatConfig.settings.modelSaveFailed\": \"保存模型配置失败\",\n \"chatConfig.settings.alert.title\": \"配置生效方式\",\n \"chatConfig.settings.alert.immediate\": \"立即生效:\",\n \"chatConfig.settings.alert.restart\": \"需要重启:\",\n \"chatConfig.settings.alert.restartDetail\": \"PORT(修改端口必须重启服务器)\",\n \"chatConfig.settings.envHint\": \"以 .env 格式(key=value)配置环境变量,每行一个变量。密码字段留空则保持当前值。\",\n \"chatConfig.settings.modelsHint\": \"配置模型注册表。每个模型将使用提供的 key 注册,可供智能体使用。\",\n \"chatConfig.settings.model\": \"模型 {{index}}\",\n \"chatConfig.settings.remove\": \"移除\",\n \"chatConfig.settings.field.key\": \"Key *\",\n \"chatConfig.settings.field.keyHint\": \"该模型的唯一标识符\",\n \"chatConfig.settings.field.provider\": \"提供商 *\",\n \"chatConfig.settings.field.modelName\": \"模型名称 *\",\n \"chatConfig.settings.field.apiKeyHintStored\": \"服务器上已存储一个 key,且不会回传。留空则保留,或输入新 key 替换它。\",\n \"chatConfig.settings.field.apiKeyHintNew\": \"模型提供商的 API Key。留空则使用环境变量。\",\n \"chatConfig.settings.apiKeyPlaceholderConfigured\": \"已配置 —— 留空则保持不变\",\n \"chatConfig.settings.apiKeyPlaceholderNew\": \"输入你的 API Key\",\n \"chatConfig.settings.field.baseUrl\": \"Base URL\",\n \"chatConfig.settings.field.baseUrlHint\": \"可选:API 的自定义 Base URL\",\n \"chatConfig.settings.field.streaming\": \"启用流式输出\",\n \"chatConfig.settings.field.maxTokens\": \"最大 Token 数\",\n \"chatConfig.settings.field.temperature\": \"温度\",\n \"chatConfig.settings.addModel\": \"+ 添加模型\",\n \"chatConfig.settings.connecting\": \"连接中……\",\n \"chatConfig.settings.connectingTo\": \"正在连接到 {{url}}\",\n \"chatConfig.settings.notConnected\": \"未连接\",\n \"chatConfig.settings.connectFailedDetail\": \"连接 {{url}} 失败。请检查服务器 URL 后重试。\",\n \"chatConfig.settings.clickReconnect\": \"点击「重新连接」以连接到 {{url}}\",\n \"chatConfig.settings.reconnect\": \"重新连接\",\n \"chatConfig.settings.error.serverError\": \"服务器返回错误\",\n \"chatConfig.settings.error.timeout\": \"连接超时\",\n \"chatConfig.settings.error.connectFailed\": \"连接服务器失败\",\n \"chatConfig.paChannel.title\": \"连接渠道\",\n \"chatConfig.paChannel.channels\": \"渠道\",\n \"chatConfig.paChannel.noChannels\": \"暂无渠道\",\n \"chatConfig.paChannel.connect\": \"连接\",\n \"chatConfig.paChannel.selectHint\": \"从左侧选择一个渠道,或添加新渠道\",\n \"chatConfig.paChannel.chooseType\": \"选择渠道类型\",\n \"chatConfig.paChannel.editChannel\": \"编辑渠道\",\n \"chatConfig.paChannel.newChannel\": \"新建{{channel}}\",\n \"chatConfig.paChannel.channel.lark\": \"飞书\",\n \"chatConfig.paChannel.channel.wechat\": \"微信\",\n \"chatConfig.paChannel.channel.wecom\": \"企业微信\",\n \"chatConfig.paChannel.wechatBot\": \"微信机器人\",\n \"chatConfig.paChannel.feishuBot\": \"飞书机器人\",\n \"chatConfig.paChannel.wecomBot\": \"企业微信机器人\",\n \"chatConfig.paChannel.field.botId\": \"机器人 Bot ID\",\n \"chatConfig.paChannel.field.secret\": \"长连接 Secret\",\n \"chatConfig.paChannel.placeholder.botId\": \"企业微信后台获取的 Bot ID\",\n \"chatConfig.paChannel.placeholder.secret\": \"企业微信后台获取的长连接 Secret\",\n \"chatConfig.paChannel.wecomConnectHint\": \"使用「智能机器人」的长连接(API)模式,无需公网回调地址;开启后由网关维护长连接。\",\n \"chatConfig.paChannel.validation.botIdRequired\": \"Bot ID 为必填项\",\n \"chatConfig.paChannel.validation.secretRequired\": \"Secret 为必填项\",\n \"chatConfig.paChannel.field.channelType\": \"渠道类型\",\n \"chatConfig.paChannel.field.displayName\": \"显示名称\",\n \"chatConfig.paChannel.field.appId\": \"App ID\",\n \"chatConfig.paChannel.field.appSecret\": \"App Secret\",\n \"chatConfig.paChannel.field.verificationToken\": \"Verification Token\",\n \"chatConfig.paChannel.field.encryptKey\": \"Encrypt Key\",\n \"chatConfig.paChannel.field.botToken\": \"Bot Token\",\n \"chatConfig.paChannel.field.uin\": \"UIN\",\n \"chatConfig.paChannel.enabled\": \"已启用\",\n \"chatConfig.paChannel.listenerActive\": \"监听服务运行中\",\n \"chatConfig.paChannel.listenerStopped\": \"监听服务已停止\",\n \"chatConfig.paChannel.anyoneCanMessage\": \"任何人都可以发消息\",\n \"chatConfig.paChannel.anyoneCanMessageHint\": \"启用后,任何能访问该渠道的人都可以与你的助手对话\",\n \"chatConfig.paChannel.whoCanChat\": \"谁可以对话\",\n \"chatConfig.paChannel.whoCanChatHint\": \"只有你在这里添加的人才能给你的助手发消息\",\n \"chatConfig.paChannel.noContacts\": \"尚未添加联系人\",\n \"chatConfig.paChannel.addContact\": \"添加联系人\",\n \"chatConfig.paChannel.add\": \"添加\",\n \"chatConfig.paChannel.required\": \"必填\",\n \"chatConfig.paChannel.placeholder.wechatOpenId\": \"微信 Open ID\",\n \"chatConfig.paChannel.placeholder.feishuOpenId\": \"飞书 Open ID\",\n \"chatConfig.paChannel.placeholder.wecomUserId\": \"企业微信 UserID\",\n \"chatConfig.paChannel.placeholder.displayName\": \"显示名称(可选)\",\n \"chatConfig.paChannel.placeholder.appSecret\": \"你的 app secret\",\n \"chatConfig.paChannel.placeholder.optional\": \"可选\",\n \"chatConfig.paChannel.placeholder.botToken\": \"扫码后自动填充\",\n \"chatConfig.paChannel.placeholder.uin\": \"扫码登录后自动填充\",\n \"chatConfig.paChannel.addBindingHint\": \"保存后回到这里添加你想对话的人。\",\n \"chatConfig.paChannel.removeChannel\": \"移除该渠道?\",\n \"chatConfig.paChannel.removeChannelDesc\": \"该接入的所有绑定也会一并丢失。\",\n \"chatConfig.paChannel.save\": \"保存\",\n \"chatConfig.paChannel.bindingAdded\": \"绑定已添加\",\n \"chatConfig.paChannel.bindingAddFailed\": \"添加绑定失败\",\n \"chatConfig.paChannel.bindingRemoved\": \"绑定已移除\",\n \"chatConfig.paChannel.bindingRemoveFailed\": \"移除绑定失败\",\n \"chatConfig.paChannel.bindingsLoadFailed\": \"加载绑定失败\",\n \"chatConfig.paChannel.installationsLoadFailed\": \"加载渠道接入失败\",\n \"chatConfig.paChannel.channelEnabled\": \"渠道已启用\",\n \"chatConfig.paChannel.channelDisabled\": \"渠道已禁用\",\n \"chatConfig.paChannel.toggleFailed\": \"切换渠道状态失败\",\n \"chatConfig.paChannel.installationUpdated\": \"接入已更新\",\n \"chatConfig.paChannel.installationUpdateFailed\": \"更新接入失败\",\n \"chatConfig.paChannel.installationCreated\": \"接入已创建\",\n \"chatConfig.paChannel.installationCreateFailed\": \"创建接入失败\",\n \"chatConfig.paChannel.installationSaveFailed\": \"保存接入失败\",\n \"chatConfig.paChannel.installationDeleted\": \"接入已删除\",\n \"chatConfig.paChannel.installationDeleteFailed\": \"删除接入失败\",\n \"chatConfig.paChannel.addUsersHint\": \"现在添加可以访问该渠道的用户\",\n \"chatConfig.paChannel.validation.appIdRequired\": \"App ID 为必填项\",\n \"chatConfig.paChannel.validation.appSecretRequired\": \"App Secret 为必填项\",\n \"chatConfig.paChannel.validation.botTokenRequired\": \"Bot Token 为必填项\",\n \"chatConfig.paChannel.qr.hint\": \"用微信扫描二维码以获取 Bot Token\",\n \"chatConfig.paChannel.qr.get\": \"获取二维码\",\n \"chatConfig.paChannel.qr.generating\": \"正在生成二维码……\",\n \"chatConfig.paChannel.qr.scan\": \"用微信扫码\",\n \"chatConfig.paChannel.qr.scanned\": \"已扫描!请在手机上确认……\",\n \"chatConfig.paChannel.qr.expiresIn\": \"{{time}} 后过期\",\n \"chatConfig.paChannel.qr.expired\": \"二维码已过期\",\n \"chatConfig.paChannel.qr.refreshStatus\": \"刷新状态\",\n \"chatConfig.paChannel.qr.loginConfirmed\": \"登录已确认!\",\n \"chatConfig.paChannel.qr.tokenFilled\": \"Bot Token 已自动填充\",\n \"chatConfig.paChannel.qr.expiredGetNew\": \"二维码已过期。请重新获取。\",\n \"chatConfig.paChannel.qr.retry\": \"重试\",\n \"chatConfig.paChannel.qr.loadFailed\": \"加载二维码失败\",\n \"chatConfig.paChannel.qr.getFailed\": \"获取二维码失败\",\n \"chatConfig.paChannel.qr.statusFailed\": \"查询二维码状态失败\"\n }\n}\n","{\n \"messages\": {\n \"chatMenu.workspace.personalAssistant\": \"Personal Assistant\",\n \"chatMenu.workspace.projects\": \"Projects\",\n \"chatMenu.workspace.metrics\": \"Metrics\",\n \"chatMenu.workspace.database\": \"Database\",\n \"chatMenu.workspace.plugins\": \"Plugins\",\n \"chatMenu.workspace.modelProviders\": \"Model Providers\",\n \"chatMenu.workspace.runtime\": \"Runtime\",\n \"chatMenu.workspace.inbox\": \"Inbox\",\n \"chatMenu.workspace.automations\": \"Automations\",\n \"chatMenu.workspace.shares\": \"Shares\",\n \"chatMenu.workspace.migration\": \"Migration\",\n \"chatMenu.workspace.eval\": \"Eval\",\n \"chatMenu.workspace.assistants\": \"Agents\",\n \"chatMenu.workspace.skills\": \"Skills\",\n \"chatMenu.workspace.collections\": \"Collections\",\n \"chatMenu.workspace.mcp\": \"MCP\",\n \"chatMenu.workspace.apiKeys\": \"API Keys\",\n \"chatMenu.workspace.auditLog\": \"Audit Log\",\n \"chatMenu.workspace.runtimeProfiles\": \"Runtime Profiles\",\n \"chatMenu.workspace.tools\": \"Tools\",\n \"chatMenu.workspace.tasks\": \"Tasks\",\n \"chatMenu.group.dataSource\": \"DataSource\",\n \"chatMenu.group.process\": \"Process\",\n \"chatMenu.group.knowledge\": \"Knowledge\",\n \"chatMenu.group.settings\": \"Settings\",\n \"chatMenu.workspace.unpinFromMenu\": \"Unpin from Menu\",\n \"chatMenu.workspace.unpinnedSuccess\": \"Unpinned from menu\"\n }\n}\n","{\n \"messages\": {\n \"chatMenu.workspace.personalAssistant\": \"个人助理\",\n \"chatMenu.workspace.projects\": \"项目\",\n \"chatMenu.workspace.metrics\": \"指标\",\n \"chatMenu.workspace.database\": \"数据库\",\n \"chatMenu.workspace.plugins\": \"插件\",\n \"chatMenu.workspace.modelProviders\": \"模型服务商\",\n \"chatMenu.workspace.runtime\": \"运行时\",\n \"chatMenu.workspace.inbox\": \"收件箱\",\n \"chatMenu.workspace.automations\": \"自动化\",\n \"chatMenu.workspace.shares\": \"分享\",\n \"chatMenu.workspace.migration\": \"数据迁移\",\n \"chatMenu.workspace.eval\": \"评测\",\n \"chatMenu.workspace.assistants\": \"智能体\",\n \"chatMenu.workspace.skills\": \"技能\",\n \"chatMenu.workspace.collections\": \"集合\",\n \"chatMenu.workspace.mcp\": \"MCP\",\n \"chatMenu.workspace.apiKeys\": \"API Key\",\n \"chatMenu.workspace.auditLog\": \"审计日志\",\n \"chatMenu.workspace.runtimeProfiles\": \"运行时配置\",\n \"chatMenu.workspace.tools\": \"工具\",\n \"chatMenu.workspace.tasks\": \"任务\",\n \"chatMenu.group.dataSource\": \"数据源\",\n \"chatMenu.group.process\": \"流程\",\n \"chatMenu.group.knowledge\": \"知识库\",\n \"chatMenu.group.settings\": \"设置\",\n \"chatMenu.workspace.unpinFromMenu\": \"从菜单取消固定\",\n \"chatMenu.workspace.unpinnedSuccess\": \"已从菜单取消固定\"\n }\n}\n","{\n \"messages\": {\n \"chatWorkspace.assistantFlow.cliNotInstalled\": \"{{label}} CLI is not installed\",\n \"chatWorkspace.assistantFlow.deleted\": \"Assistant deleted successfully\",\n \"chatWorkspace.assistantFlow.deleteFailed\": \"Failed to delete assistant\",\n \"chatWorkspace.assistantFlow.disabled\": \"{{label}} is disabled\",\n \"chatWorkspace.assistantFlow.loading\": \"Loading assistants...\",\n \"chatWorkspace.assistantFlow.localProviderFailed\": \"Failed to update local A2A provider\",\n \"chatWorkspace.assistantFlow.saveFailed\": \"Failed to save agent configuration\",\n \"chatWorkspace.assistantFlow.saveSuccess\": \"Agent configuration saved successfully\",\n \"chatWorkspace.assistantNode.action.restart\": \"Restart\",\n \"chatWorkspace.assistantNode.action.start\": \"Start\",\n \"chatWorkspace.assistantNode.action.stop\": \"Stop\",\n \"chatWorkspace.assistantNode.availableTools\": \"Available Tools ({{count}})\",\n \"chatWorkspace.assistantNode.chat\": \"Chat\",\n \"chatWorkspace.assistantNode.modelEngine\": \"Model Engine\",\n \"chatWorkspace.assistantNode.more\": \"+{{count}} more\",\n \"chatWorkspace.assistantNode.status.disabled\": \"Disabled\",\n \"chatWorkspace.assistantNode.status.notInstalled\": \"Not Installed\",\n \"chatWorkspace.assistantNode.status.starting\": \"Starting...\",\n \"chatWorkspace.assistantNode.subAgentArchitecture\": \"Sub-Agent Architecture ({{count}})\",\n \"chatWorkspace.assistantNode.systemPrompt\": \"SYSTEM PROMPT\",\n \"chatWorkspace.assistantNode.toolsCount\": \"{{count}} Tools\",\n \"chatWorkspace.assistantNode.type.a2aRemote\": \"A2A Remote\",\n \"chatWorkspace.assistantNode.type.deepAgent\": \"Orchestrator\",\n \"chatWorkspace.assistantNode.type.planExecute\": \"PLAN EXECUTE\",\n \"chatWorkspace.assistantNode.type.processing\": \"Workflow\",\n \"chatWorkspace.assistantNode.type.react\": \"Executor\",\n \"chatWorkspace.assistantNode.type.sequential\": \"SEQUENTIAL\",\n \"chatWorkspace.collections.col.embedding\": \"Embedding\",\n \"chatWorkspace.collections.col.entries\": \"Entries\",\n \"chatWorkspace.collections.col.fields\": \"Fields\",\n \"chatWorkspace.collections.col.label\": \"Label\",\n \"chatWorkspace.collections.col.name\": \"Name\",\n \"chatWorkspace.collections.created\": \"Collection created\",\n \"chatWorkspace.collections.deleteBody\": \"This will remove the collection and all its entries.\",\n \"chatWorkspace.collections.deleted\": \"Collection deleted\",\n \"chatWorkspace.collections.deleteFailed\": \"Failed to delete\",\n \"chatWorkspace.collections.deleteTitle\": \"Delete this collection?\",\n \"chatWorkspace.collections.editTitle\": \"Edit Collection\",\n \"chatWorkspace.collections.empty\": \"No collections yet\",\n \"chatWorkspace.collections.form.addField\": \"Add Field\",\n \"chatWorkspace.collections.form.customFields\": \"Custom Fields\",\n \"chatWorkspace.collections.form.displayName\": \"Display Name\",\n \"chatWorkspace.collections.form.embeddingModel\": \"Embedding Model\",\n \"chatWorkspace.collections.form.embeddingRequired\": \"Embedding model is required\",\n \"chatWorkspace.collections.form.fieldKey\": \"Field key\",\n \"chatWorkspace.collections.form.keyRequired\": \"Key required\",\n \"chatWorkspace.collections.form.labelPlaceholder\": \"e.g. Disease Knowledge Base\",\n \"chatWorkspace.collections.form.labelRequired\": \"Label is required\",\n \"chatWorkspace.collections.form.name\": \"Name\",\n \"chatWorkspace.collections.form.namePattern\": \"Lowercase letters, numbers, underscores only\",\n \"chatWorkspace.collections.form.nameRequired\": \"Name is required\",\n \"chatWorkspace.collections.form.required\": \"Required\",\n \"chatWorkspace.collections.form.selectEmbedding\": \"Select embedding model\",\n \"chatWorkspace.collections.form.typeRequired\": \"Type required\",\n \"chatWorkspace.collections.new\": \"New Collection\",\n \"chatWorkspace.collections.noEmbedding\": \"No embedding models registered\",\n \"chatWorkspace.collections.noEmbeddingBody\": \"Register an embedding model in gateway startup to enable collection creation and vector search.\",\n \"chatWorkspace.collections.noEmbeddingTitle\": \"No embedding models registered\",\n \"chatWorkspace.collections.saveFailed\": \"Failed to save\",\n \"chatWorkspace.collections.title\": \"Collections\",\n \"chatWorkspace.collections.updated\": \"Collection updated\",\n \"chatWorkspace.entries.actionFailed\": \"Failed\",\n \"chatWorkspace.entries.add\": \"Add\",\n \"chatWorkspace.entries.addFirst\": \"Add your first entry\",\n \"chatWorkspace.entries.clearFilter\": \"Clear filter\",\n \"chatWorkspace.entries.clearSearchFilters\": \"Clear search & filters\",\n \"chatWorkspace.entries.col.content\": \"Content\",\n \"chatWorkspace.entries.col.score\": \"Score\",\n \"chatWorkspace.entries.collapse\": \"Collapse\",\n \"chatWorkspace.entries.contentPlaceholder\": \"Text content to index…\",\n \"chatWorkspace.entries.created\": \"Entry created\",\n \"chatWorkspace.entries.deleted\": \"Deleted\",\n \"chatWorkspace.entries.deleteTitle\": \"Delete?\",\n \"chatWorkspace.entries.editTitle\": \"Edit Entry\",\n \"chatWorkspace.entries.empty\": \"No entries yet\",\n \"chatWorkspace.entries.expand\": \"Expand\",\n \"chatWorkspace.entries.filterField\": \"Filter {{field}}…\",\n \"chatWorkspace.entries.filterPlaceholder\": \"Filter…\",\n \"chatWorkspace.entries.loadFailed\": \"Failed to load entries\",\n \"chatWorkspace.entries.newTitle\": \"New Entry\",\n \"chatWorkspace.entries.noCollection\": \"No collection selected\",\n \"chatWorkspace.entries.noMatches\": \"No matching entries\",\n \"chatWorkspace.entries.reset\": \"Reset\",\n \"chatWorkspace.entries.searchFailed\": \"Search failed\",\n \"chatWorkspace.entries.semantic\": \"semantic\",\n \"chatWorkspace.entries.semanticLimit\": \"Semantic search returns at most 50 results\",\n \"chatWorkspace.entries.semanticPlaceholder\": \"Semantic search…\",\n \"chatWorkspace.entries.updated\": \"Entry updated\",\n \"chatWorkspace.file.created\": \"Created: {{date}}\",\n \"chatWorkspace.file.folder\": \"folder\",\n \"chatWorkspace.file.modified\": \"Modified: {{date}}\",\n \"chatWorkspace.fileBrowser.aria.collapse\": \"collapse {{name}}\",\n \"chatWorkspace.fileBrowser.aria.expand\": \"expand {{name}}\",\n \"chatWorkspace.fileBrowser.aria.open\": \"open {{name}}\",\n \"chatWorkspace.fileBrowser.aria.toggle\": \"toggle {{name}}\",\n \"chatWorkspace.fileBrowser.ascending\": \"Ascending\",\n \"chatWorkspace.fileBrowser.clickToRefresh\": \"Click to refresh\",\n \"chatWorkspace.fileBrowser.descending\": \"Descending\",\n \"chatWorkspace.fileBrowser.download\": \"Download\",\n \"chatWorkspace.fileBrowser.downloadFolderFailed\": \"Failed to download folder\",\n \"chatWorkspace.fileBrowser.emptyFolder\": \"No files in this folder\",\n \"chatWorkspace.fileBrowser.files\": \"Files\",\n \"chatWorkspace.fileBrowser.noMatch\": \"No files match \\\"{{query}}\\\"\",\n \"chatWorkspace.fileBrowser.preview\": \"Preview\",\n \"chatWorkspace.fileBrowser.root\": \"Root\",\n \"chatWorkspace.fileBrowser.searchPlaceholder\": \"Search files…\",\n \"chatWorkspace.fileBrowser.selectFile\": \"Select a file to view content\",\n \"chatWorkspace.fileBrowser.selectProject\": \"Please select a project to browse files\",\n \"chatWorkspace.fileBrowser.share\": \"Share\",\n \"chatWorkspace.fileBrowser.sort.created\": \"Created\",\n \"chatWorkspace.fileBrowser.sort.modified\": \"Modified\",\n \"chatWorkspace.fileBrowser.sort.name\": \"Name\",\n \"chatWorkspace.fileBrowser.title\": \"File Browser\",\n \"chatWorkspace.personalAssistant.channelSettings\": \"Channel settings\",\n \"chatWorkspace.personalAssistant.create\": \"Create My Assistant\",\n \"chatWorkspace.personalAssistant.customPlaceholder\": \"Describe in your own words...\",\n \"chatWorkspace.personalAssistant.deleteBody\": \"This will permanently delete your assistant, all chat history, and your personal project. This action cannot be undone.\",\n \"chatWorkspace.personalAssistant.deleted\": \"Personal assistant deleted\",\n \"chatWorkspace.personalAssistant.deleteOk\": \"Delete Everything\",\n \"chatWorkspace.personalAssistant.deleteTitle\": \"Delete your personal assistant?\",\n \"chatWorkspace.personalAssistant.done\": \"Done!\",\n \"chatWorkspace.personalAssistant.emptyQuestion\": \"What can I help you with?\",\n \"chatWorkspace.personalAssistant.emptyStateQuestion\": \"Today is {{date}} — What can I help you with?\",\n \"chatWorkspace.personalAssistant.fieldName\": \"Name\",\n \"chatWorkspace.personalAssistant.fieldPersonality\": \"Personality\",\n \"chatWorkspace.personalAssistant.greeting\": \"Hey\",\n \"chatWorkspace.personalAssistant.networkError\": \"Network error\",\n \"chatWorkspace.personalAssistant.notSet\": \"(not set)\",\n \"chatWorkspace.personalAssistant.personality.custom.desc\": \"Describe your own — a mix or something completely unique.\",\n \"chatWorkspace.personalAssistant.personality.custom.title\": \"Custom\",\n \"chatWorkspace.personalAssistant.personality.energeticMotivator.desc\": \"High-energy hype machine. Celebrates wins, never lets you give up.\",\n \"chatWorkspace.personalAssistant.personality.energeticMotivator.title\": \"Energetic Motivator\",\n \"chatWorkspace.personalAssistant.personality.warmCaring.desc\": \"Gentle, patient, emotionally supportive — like a close friend who always has your back.\",\n \"chatWorkspace.personalAssistant.personality.warmCaring.title\": \"Warm & Caring\",\n \"chatWorkspace.personalAssistant.personality.wiseMentor.desc\": \"Calm, thoughtful, insightful. Asks the right questions.\",\n \"chatWorkspace.personalAssistant.personality.wiseMentor.title\": \"Wise Mentor\",\n \"chatWorkspace.personalAssistant.personality.wittyPlayful.desc\": \"Quick with a joke, a little mischievous, keeps things light.\",\n \"chatWorkspace.personalAssistant.personality.wittyPlayful.title\": \"Witty & Playful\",\n \"chatWorkspace.personalAssistant.stepName.body\": \"This is the name you'll use every day — your go-to nickname for your AI sidekick.\",\n \"chatWorkspace.personalAssistant.stepName.placeholder\": \"e.g. \\\"Jarvis\\\", \\\"Buddy\\\"\",\n \"chatWorkspace.personalAssistant.stepName.title\": \"What would you like to call them?\",\n \"chatWorkspace.personalAssistant.stepReady.body\": \"Your assistant will have private memory and learn about you over time.\",\n \"chatWorkspace.personalAssistant.stepReady.title\": \"Almost ready!\",\n \"chatWorkspace.personalAssistant.stepVibe.body\": \"Pick the personality that feels right. This shapes how they talk and support you.\",\n \"chatWorkspace.personalAssistant.stepVibe.title\": \"What's their vibe?\",\n \"chatWorkspace.personalAssistant.todayIs\": \"Today is {{date}}\",\n \"chatWorkspace.pin.groupPlaceholder\": \"Group (optional, select or type new)\",\n \"chatWorkspace.pin.namePlaceholder\": \"Menu name (required)\",\n \"chatWorkspace.pin.nameRequired\": \"Please enter a menu name\",\n \"chatWorkspace.pin.pin\": \"Pin to Menu\",\n \"chatWorkspace.pin.pinAction\": \"Pin\",\n \"chatWorkspace.pin.pinFailed\": \"Failed to pin\",\n \"chatWorkspace.pin.pinned\": \"Pinned to menu\",\n \"chatWorkspace.pin.title\": \"Pin to Menu\",\n \"chatWorkspace.pin.unpin\": \"Unpin from Menu\",\n \"chatWorkspace.pin.unpinFailed\": \"Failed to unpin\",\n \"chatWorkspace.pin.unpinned\": \"Unpinned from menu\",\n \"chatWorkspace.projects.create\": \"Create Project\",\n \"chatWorkspace.projects.created\": \"Created {{date}}\",\n \"chatWorkspace.projects.createdToast\": \"Project \\\"{{name}}\\\" created\",\n \"chatWorkspace.projects.createFailed\": \"Failed to create project\",\n \"chatWorkspace.projects.createTitle\": \"Create New Project\",\n \"chatWorkspace.projects.emptyDescription\": \"Create your first project to get started\",\n \"chatWorkspace.projects.emptyTitle\": \"No projects yet\",\n \"chatWorkspace.projects.itemName\": \"project\",\n \"chatWorkspace.projects.kind.public\": \"Public\",\n \"chatWorkspace.projects.kind.training\": \"Training\",\n \"chatWorkspace.projects.nameLabel\": \"Project Name\",\n \"chatWorkspace.projects.namePlaceholder\": \"e.g., Q4 Analysis, Marketing Campaign...\",\n \"chatWorkspace.projects.nameRequired\": \"Project name is required\",\n \"chatWorkspace.projects.nameTooLong\": \"Name must be {{max}} characters or less\",\n \"chatWorkspace.projects.new\": \"New Project\",\n \"chatWorkspace.projects.settings\": \"Project Settings\",\n \"chatWorkspace.projects.title\": \"Projects\",\n \"chatWorkspace.shares.col.actions\": \"Actions\",\n \"chatWorkspace.shares.col.expires\": \"Expires\",\n \"chatWorkspace.shares.col.status\": \"Status\",\n \"chatWorkspace.shares.col.title\": \"Title\",\n \"chatWorkspace.shares.col.token\": \"Token\",\n \"chatWorkspace.shares.copyLink\": \"Copy Link\",\n \"chatWorkspace.shares.fallbackFileName\": \"file\",\n \"chatWorkspace.shares.loadFailed\": \"Failed to load shares\",\n \"chatWorkspace.shares.never\": \"Never\",\n \"chatWorkspace.shares.passwordProtected\": \"Password protected\",\n \"chatWorkspace.shares.revoke\": \"Revoke\",\n \"chatWorkspace.shares.revokeBody\": \"This link will stop working immediately.\",\n \"chatWorkspace.shares.revoked\": \"Share revoked\",\n \"chatWorkspace.shares.revokeTitle\": \"Revoke share?\",\n \"chatWorkspace.shares.status.active\": \"Active\",\n \"chatWorkspace.shares.status.expired\": \"Expired\",\n \"chatWorkspace.shares.status.revoked\": \"Revoked\",\n \"chatWorkspace.shares.title\": \"My Shares\",\n \"chatWorkspace.skillNode.add\": \"Add\",\n \"chatWorkspace.skillNode.contentPlaceholder\": \"Enter skill content here...\",\n \"chatWorkspace.skillNode.contentSection\": \"CONTENT\",\n \"chatWorkspace.skillNode.copyId\": \"Copy ID\",\n \"chatWorkspace.skillNode.deleted\": \"Skill deleted successfully\",\n \"chatWorkspace.skillNode.deleteFailed\": \"An error occurred while deleting the skill\",\n \"chatWorkspace.skillNode.edit\": \"Edit Skill\",\n \"chatWorkspace.skillNode.idMissing\": \"Skill ID is missing\",\n \"chatWorkspace.skillNode.keyPlaceholder\": \"Key\",\n \"chatWorkspace.skillNode.meta\": \"Meta {{index}}\",\n \"chatWorkspace.skillNode.metadataCount\": \"Metadata ({{count}})\",\n \"chatWorkspace.skillNode.noMetadata\": \"No metadata yet. Use Add to create one.\",\n \"chatWorkspace.skillNode.updated\": \"Skill updated successfully\",\n \"chatWorkspace.skillNode.updateError\": \"An error occurred while updating the skill\",\n \"chatWorkspace.skillNode.updateFailed\": \"Failed to update skill\",\n \"chatWorkspace.skillNode.valuePlaceholder\": \"Value\",\n \"chatWorkspace.skills.deleteConfirm\": \"Are you sure you want to delete \\\"{{name}}\\\"?\",\n \"chatWorkspace.skills.deleted\": \"Skill deleted\",\n \"chatWorkspace.skills.deleteFailed\": \"Failed to delete skill\",\n \"chatWorkspace.skills.deleteTitle\": \"Delete Skill\",\n \"chatWorkspace.skills.editTitle\": \"Edit Skill\",\n \"chatWorkspace.skills.emptyDescription\": \"Click \\\"New Skill\\\" to create one\",\n \"chatWorkspace.skills.emptyTitle\": \"No skills yet\",\n \"chatWorkspace.skills.field.compatibility\": \"Compatibility\",\n \"chatWorkspace.skills.field.content\": \"Content\",\n \"chatWorkspace.skills.field.description\": \"Description\",\n \"chatWorkspace.skills.field.license\": \"License\",\n \"chatWorkspace.skills.field.metadata\": \"Metadata\",\n \"chatWorkspace.skills.field.name\": \"Name\",\n \"chatWorkspace.skills.field.skillMd\": \"SKILL.md\",\n \"chatWorkspace.skills.graph\": \"Graph\",\n \"chatWorkspace.skills.itemName\": \"skill\",\n \"chatWorkspace.skills.loadFailed\": \"Failed to load skills\",\n \"chatWorkspace.skills.new\": \"New Skill\",\n \"chatWorkspace.skills.saveChanges\": \"Save Changes\",\n \"chatWorkspace.skills.subCount\": \"{{count}} sub\",\n \"chatWorkspace.skills.title\": \"Skills\",\n \"chatWorkspace.skills.updated\": \"Skill updated\",\n \"chatWorkspace.skills.updateFailed\": \"Failed to update skill\",\n \"chatWorkspace.toolNode.approval\": \"Approval\",\n \"chatWorkspace.toolNode.copyId\": \"Copy ID\",\n \"chatWorkspace.toolNode.direct\": \"Direct\",\n \"chatWorkspace.toolNode.directReturn\": \"Direct Return\",\n \"chatWorkspace.toolNode.inputSchema\": \"INPUT SCHEMA\",\n \"chatWorkspace.toolNode.requiresApproval\": \"Requires Approval\",\n \"chatWorkspace.toolNode.schema\": \"Schema\",\n \"chatWorkspace.toolNode.useTool\": \"Use Tool\",\n \"chatWorkspace.tools.empty\": \"No tools available\",\n \"chatWorkspace.tools.errorTitle\": \"Error Loading Tools\",\n \"chatWorkspace.tools.invalidResponse\": \"Invalid response format\",\n \"chatWorkspace.tools.refreshTitle\": \"Refresh tools\",\n \"chatWorkspace.tools.requiresApproval\": \"Requires approval\",\n \"chatWorkspace.topologyAutomation.copilot\": \"Copilot\",\n \"chatWorkspace.topologyAutomation.createWorkflow\": \"Create Workflow\",\n \"chatWorkspace.topologyAutomation.deleteBody\": \"This will delete the workflow and all associated topology. This action cannot be undone.\",\n \"chatWorkspace.topologyAutomation.deleteTitle\": \"Delete workflow\",\n \"chatWorkspace.topologyAutomation.deleteFailed\": \"Failed to delete workflow\",\n \"chatWorkspace.topologyAutomation.incoming\": \"{{count}} in\",\n \"chatWorkspace.topologyAutomation.loading\": \"Loading workflows...\",\n \"chatWorkspace.topologyAutomation.noDefinitions\": \"No workflow definitions found.\",\n \"chatWorkspace.topologyAutomation.noDescription\": \"No description set. Use the Workflow Builder to add a spec for this workflow.\",\n \"chatWorkspace.topologyAutomation.noDescriptionShort\": \"No description\",\n \"chatWorkspace.topologyAutomation.outgoing\": \"{{count}} out\",\n \"chatWorkspace.topologyAutomation.selectWorkflow\": \"Select a workflow to view its topology\",\n \"chatWorkspace.topologyAutomation.stepsCount\": \"{{count}} steps\",\n \"chatWorkspace.topologyAutomation.title\": \"Workflows\",\n \"chatWorkspace.topologyRuntime.autoRefresh\": \"Auto-refresh\",\n \"chatWorkspace.topologyRuntime.completed\": \"Completed\",\n \"chatWorkspace.topologyRuntime.daysAgo\": \"{{count}}d ago\",\n \"chatWorkspace.topologyRuntime.deleteRunBody\": \"Delete this workflow run and all its step records?\",\n \"chatWorkspace.topologyRuntime.deleteRunFailed\": \"Failed to delete run\",\n \"chatWorkspace.topologyRuntime.deleteRunTitle\": \"Delete run\",\n \"chatWorkspace.topologyRuntime.duration\": \"Duration\",\n \"chatWorkspace.topologyRuntime.empty\": \"No workflow runs yet.\",\n \"chatWorkspace.topologyRuntime.ended\": \"Ended: {{time}}\",\n \"chatWorkspace.topologyRuntime.flowView\": \"Flow View\",\n \"chatWorkspace.topologyRuntime.hoursAgo\": \"{{count}}h ago\",\n \"chatWorkspace.topologyRuntime.input\": \"Input\",\n \"chatWorkspace.topologyRuntime.justNow\": \"just now\",\n \"chatWorkspace.topologyRuntime.loadFailed\": \"Failed to load workflow runs\",\n \"chatWorkspace.topologyRuntime.minutesAgo\": \"{{count}}m ago\",\n \"chatWorkspace.topologyRuntime.noStepRecords\": \"No step records yet\",\n \"chatWorkspace.topologyRuntime.output\": \"Output\",\n \"chatWorkspace.topologyRuntime.pipelineExecution\": \"Pipeline Execution\",\n \"chatWorkspace.topologyRuntime.purpose\": \"Purpose: {{purpose}}\",\n \"chatWorkspace.topologyRuntime.refreshNow\": \"Refresh now\",\n \"chatWorkspace.topologyRuntime.runStatus.cancelled\": \"Cancelled\",\n \"chatWorkspace.topologyRuntime.runStatus.completed\": \"Completed\",\n \"chatWorkspace.topologyRuntime.runStatus.failed\": \"Failed\",\n \"chatWorkspace.topologyRuntime.runStatus.interrupted\": \"Awaiting Input\",\n \"chatWorkspace.topologyRuntime.runStatus.running\": \"Running\",\n \"chatWorkspace.topologyRuntime.started\": \"Started: {{time}}\",\n \"chatWorkspace.topologyRuntime.startedLabel\": \"Started\",\n \"chatWorkspace.topologyRuntime.stepDetail\": \"Step Detail\",\n \"chatWorkspace.topologyRuntime.title\": \"Workflow Runs\",\n \"chatWorkspace.workflowAutomation.copilot\": \"Copilot\",\n \"chatWorkspace.workflowAutomation.createWorkflow\": \"Create Workflow\",\n \"chatWorkspace.workflowAutomation.deleteBody\": \"This will permanently delete this workflow agent.\",\n \"chatWorkspace.workflowAutomation.deleteTitle\": \"Delete workflow\",\n \"chatWorkspace.workflowAutomation.emptyTitle\": \"No workflows yet\",\n \"chatWorkspace.workflowAutomation.filterPlaceholder\": \"Filter workflows...\",\n \"chatWorkspace.workflowAutomation.loadFailed\": \"Failed to load workflows\",\n \"chatWorkspace.workflowAutomation.loading\": \"Loading workflows...\",\n \"chatWorkspace.workflowAutomation.loadingDsl\": \"Loading workflow DSL...\",\n \"chatWorkspace.workflowAutomation.noDefinitions\": \"No workflow definitions found.\",\n \"chatWorkspace.workflowAutomation.noDescription\": \"No description set.\",\n \"chatWorkspace.workflowAutomation.noMatch\": \"No workflows match your search\",\n \"chatWorkspace.workflowAutomation.selectWorkflow\": \"Select a workflow to view its graph\",\n \"chatWorkspace.workflowAutomation.title\": \"Workflows\",\n \"chatWorkspace.workflowCanvas.ended\": \"Ended: {{time}}\",\n \"chatWorkspace.workflowCanvas.input\": \"Input\",\n \"chatWorkspace.workflowCanvas.noIo\": \"No input/output data\",\n \"chatWorkspace.workflowCanvas.noNodes\": \"No nodes in workflow\",\n \"chatWorkspace.workflowCanvas.output\": \"Output\",\n \"chatWorkspace.workflowCanvas.parallel\": \"Parallel\",\n \"chatWorkspace.workflowCanvas.purpose\": \"Purpose: {{purpose}}\",\n \"chatWorkspace.workflowCanvas.started\": \"Started: {{time}}\",\n \"chatWorkspace.workflowCanvas.stepDetail\": \"Step Detail\",\n \"chatWorkspace.workflowCanvas.tabIo\": \"Input / Output\",\n \"chatWorkspace.workflowNode.askTooltip\": \"This step requires human approval before continuing\",\n \"chatWorkspace.workflowNode.inline\": \"inline\",\n \"chatWorkspace.workflowNode.items\": \"Items\",\n \"chatWorkspace.workflowNode.noSchema\": \"No schema defined\",\n \"chatWorkspace.workflowNode.output\": \"Output\",\n \"chatWorkspace.workflowNode.pending\": \"pending\",\n \"chatWorkspace.workflowNode.properties\": \"Properties\",\n \"chatWorkspace.workflowNode.refDelegated\": \"Delegated to agent: {{name}}\",\n \"chatWorkspace.workflowNode.refDeleted\": \"Agent \\\"{{ref}}\\\" no longer exists\",\n \"chatWorkspace.workflowNode.refDeletedTag\": \"[deleted] {{ref}}\",\n \"chatWorkspace.workflowNode.stepStatus.completed\": \"This step completed successfully\",\n \"chatWorkspace.workflowNode.stepStatus.failed\": \"This step encountered an error\",\n \"chatWorkspace.workflowNode.stepStatus.interrupted\": \"This step is waiting for human input\",\n \"chatWorkspace.workflowNode.stepStatus.running\": \"This step is currently executing\",\n \"chatWorkspace.workflowNode.stepStatus.skipped\": \"This step was skipped (condition not met)\",\n \"chatWorkspace.workflowNode.terminal.failed\": \"Failed\",\n \"chatWorkspace.workflowNode.terminal.stop\": \"Stop\",\n \"chatWorkspace.workflowNode.terminal.success\": \"Success\",\n \"chatWorkspace.workflowNode.when\": \"When: {{condition}}\",\n \"chatWorkspace.workspace.current\": \"Current Workspace\",\n \"chatWorkspace.workspace.noAssets\": \"No assets yet\",\n \"chatWorkspace.workspace.preview\": \"Preview: {{name}}\",\n \"chatWorkspace.workspace.projectAssets\": \"Project Assets\",\n \"chatWorkspace.workspace.select\": \"Select Workspace\",\n \"chatWorkspace.workspace.selectBeforeUpload\": \"Please select a workspace and project before uploading assets.\",\n \"chatWorkspace.workspace.selectBeforeUploadProject\": \"Please select a workspace and project before uploading.\",\n \"chatWorkspace.workspace.selectFirst\": \"Please select a workspace and project first.\",\n \"chatWorkspace.workspace.selectWorkspaceFirst\": \"Please select a workspace first\",\n \"chatWorkspace.workspace.loadWorkspacesFailed\": \"Failed to load workspaces\",\n \"chatWorkspace.workspace.loadProjectsFailed\": \"Failed to load projects\",\n \"chatWorkspace.workspace.createWorkspaceFailed\": \"Failed to create workspace\",\n \"chatWorkspace.workspace.updateWorkspaceFailed\": \"Failed to update workspace\",\n \"chatWorkspace.workspace.deleteWorkspaceFailed\": \"Failed to delete workspace\",\n \"chatWorkspace.workspace.updateProjectFailed\": \"Failed to update project\",\n \"chatWorkspace.workspace.deleteProjectFailed\": \"Failed to delete project\",\n \"chatWorkspace.workspace.loadFilesFailed\": \"Failed to load files\",\n \"chatWorkspace.workspace.storage\": \"Storage\",\n \"chatWorkspace.workspace.upload\": \"Upload\",\n \"chatWorkspace.workspace.uploaded\": \"Uploaded \\\"{{name}}\\\" successfully\",\n \"chatWorkspace.workspace.uploadFailed\": \"Failed to upload file\",\n \"chatWorkspace.workspace.uploading\": \"Uploading...\",\n \"chatWorkspace.inbox.title\": \"User Inbox\",\n \"chatWorkspace.inbox.subtitle\": \"Tasks requiring your attention\",\n \"chatWorkspace.inbox.empty\": \"Inbox is empty\"\n }\n}\n","{\n \"messages\": {\n \"chatWorkspace.assistantFlow.cliNotInstalled\": \"{{label}} CLI 尚未安装\",\n \"chatWorkspace.assistantFlow.deleted\": \"助手已删除\",\n \"chatWorkspace.assistantFlow.deleteFailed\": \"删除助手失败\",\n \"chatWorkspace.assistantFlow.disabled\": \"{{label}} 已被禁用\",\n \"chatWorkspace.assistantFlow.loading\": \"正在加载助手...\",\n \"chatWorkspace.assistantFlow.localProviderFailed\": \"更新本地 A2A 提供方失败\",\n \"chatWorkspace.assistantFlow.saveFailed\": \"保存智能体配置失败\",\n \"chatWorkspace.assistantFlow.saveSuccess\": \"智能体配置已保存\",\n \"chatWorkspace.assistantNode.action.restart\": \"重启\",\n \"chatWorkspace.assistantNode.action.start\": \"启动\",\n \"chatWorkspace.assistantNode.action.stop\": \"停止\",\n \"chatWorkspace.assistantNode.availableTools\": \"可用工具({{count}})\",\n \"chatWorkspace.assistantNode.chat\": \"对话\",\n \"chatWorkspace.assistantNode.modelEngine\": \"模型引擎\",\n \"chatWorkspace.assistantNode.more\": \"还有 {{count}} 个\",\n \"chatWorkspace.assistantNode.status.disabled\": \"已禁用\",\n \"chatWorkspace.assistantNode.status.notInstalled\": \"未安装\",\n \"chatWorkspace.assistantNode.status.starting\": \"正在启动...\",\n \"chatWorkspace.assistantNode.subAgentArchitecture\": \"子智能体架构({{count}})\",\n \"chatWorkspace.assistantNode.systemPrompt\": \"系统提示词\",\n \"chatWorkspace.assistantNode.toolsCount\": \"{{count}} 个工具\",\n \"chatWorkspace.assistantNode.type.a2aRemote\": \"A2A 远程\",\n \"chatWorkspace.assistantNode.type.deepAgent\": \"编排器\",\n \"chatWorkspace.assistantNode.type.planExecute\": \"计划执行\",\n \"chatWorkspace.assistantNode.type.processing\": \"工作流\",\n \"chatWorkspace.assistantNode.type.react\": \"执行器\",\n \"chatWorkspace.assistantNode.type.sequential\": \"顺序执行\",\n \"chatWorkspace.collections.col.embedding\": \"向量模型\",\n \"chatWorkspace.collections.col.entries\": \"条目数\",\n \"chatWorkspace.collections.col.fields\": \"字段\",\n \"chatWorkspace.collections.col.label\": \"标签\",\n \"chatWorkspace.collections.col.name\": \"名称\",\n \"chatWorkspace.collections.created\": \"集合已创建\",\n \"chatWorkspace.collections.deleteBody\": \"这将删除该集合及其所有条目。\",\n \"chatWorkspace.collections.deleted\": \"集合已删除\",\n \"chatWorkspace.collections.deleteFailed\": \"删除失败\",\n \"chatWorkspace.collections.deleteTitle\": \"删除这个集合?\",\n \"chatWorkspace.collections.editTitle\": \"编辑集合\",\n \"chatWorkspace.collections.empty\": \"暂无集合\",\n \"chatWorkspace.collections.form.addField\": \"添加字段\",\n \"chatWorkspace.collections.form.customFields\": \"自定义字段\",\n \"chatWorkspace.collections.form.displayName\": \"显示名称\",\n \"chatWorkspace.collections.form.embeddingModel\": \"向量模型\",\n \"chatWorkspace.collections.form.embeddingRequired\": \"请选择向量模型\",\n \"chatWorkspace.collections.form.fieldKey\": \"字段名\",\n \"chatWorkspace.collections.form.keyRequired\": \"请填写字段名\",\n \"chatWorkspace.collections.form.labelPlaceholder\": \"例如:疾病知识库\",\n \"chatWorkspace.collections.form.labelRequired\": \"请填写标签\",\n \"chatWorkspace.collections.form.name\": \"名称\",\n \"chatWorkspace.collections.form.namePattern\": \"仅允许小写字母、数字和下划线\",\n \"chatWorkspace.collections.form.nameRequired\": \"请填写名称\",\n \"chatWorkspace.collections.form.required\": \"必填\",\n \"chatWorkspace.collections.form.selectEmbedding\": \"选择向量模型\",\n \"chatWorkspace.collections.form.typeRequired\": \"请选择类型\",\n \"chatWorkspace.collections.new\": \"新建集合\",\n \"chatWorkspace.collections.noEmbedding\": \"未注册向量模型\",\n \"chatWorkspace.collections.noEmbeddingBody\": \"请在网关启动配置中注册向量模型,以启用集合创建与向量检索。\",\n \"chatWorkspace.collections.noEmbeddingTitle\": \"未注册向量模型\",\n \"chatWorkspace.collections.saveFailed\": \"保存失败\",\n \"chatWorkspace.collections.title\": \"集合\",\n \"chatWorkspace.collections.updated\": \"集合已更新\",\n \"chatWorkspace.entries.actionFailed\": \"操作失败\",\n \"chatWorkspace.entries.add\": \"新增\",\n \"chatWorkspace.entries.addFirst\": \"添加第一条记录\",\n \"chatWorkspace.entries.clearFilter\": \"清除筛选\",\n \"chatWorkspace.entries.clearSearchFilters\": \"清除搜索与筛选\",\n \"chatWorkspace.entries.col.content\": \"内容\",\n \"chatWorkspace.entries.col.score\": \"得分\",\n \"chatWorkspace.entries.collapse\": \"收起\",\n \"chatWorkspace.entries.contentPlaceholder\": \"要索引的文本内容…\",\n \"chatWorkspace.entries.created\": \"记录已创建\",\n \"chatWorkspace.entries.deleted\": \"已删除\",\n \"chatWorkspace.entries.deleteTitle\": \"确认删除?\",\n \"chatWorkspace.entries.editTitle\": \"编辑记录\",\n \"chatWorkspace.entries.empty\": \"暂无记录\",\n \"chatWorkspace.entries.expand\": \"展开\",\n \"chatWorkspace.entries.filterField\": \"筛选 {{field}}…\",\n \"chatWorkspace.entries.filterPlaceholder\": \"筛选…\",\n \"chatWorkspace.entries.loadFailed\": \"加载记录失败\",\n \"chatWorkspace.entries.newTitle\": \"新建记录\",\n \"chatWorkspace.entries.noCollection\": \"未选择集合\",\n \"chatWorkspace.entries.noMatches\": \"没有匹配的记录\",\n \"chatWorkspace.entries.reset\": \"重置\",\n \"chatWorkspace.entries.searchFailed\": \"搜索失败\",\n \"chatWorkspace.entries.semantic\": \"语义搜索\",\n \"chatWorkspace.entries.semanticLimit\": \"语义搜索最多返回 50 条结果\",\n \"chatWorkspace.entries.semanticPlaceholder\": \"语义搜索…\",\n \"chatWorkspace.entries.updated\": \"记录已更新\",\n \"chatWorkspace.file.created\": \"创建时间:{{date}}\",\n \"chatWorkspace.file.folder\": \"文件夹\",\n \"chatWorkspace.file.modified\": \"修改时间:{{date}}\",\n \"chatWorkspace.fileBrowser.aria.collapse\": \"收起 {{name}}\",\n \"chatWorkspace.fileBrowser.aria.expand\": \"展开 {{name}}\",\n \"chatWorkspace.fileBrowser.aria.open\": \"打开 {{name}}\",\n \"chatWorkspace.fileBrowser.aria.toggle\": \"展开或收起 {{name}}\",\n \"chatWorkspace.fileBrowser.ascending\": \"升序\",\n \"chatWorkspace.fileBrowser.clickToRefresh\": \"点击刷新\",\n \"chatWorkspace.fileBrowser.descending\": \"降序\",\n \"chatWorkspace.fileBrowser.download\": \"下载\",\n \"chatWorkspace.fileBrowser.downloadFolderFailed\": \"下载文件夹失败\",\n \"chatWorkspace.fileBrowser.emptyFolder\": \"此文件夹中没有文件\",\n \"chatWorkspace.fileBrowser.files\": \"文件\",\n \"chatWorkspace.fileBrowser.noMatch\": \"没有匹配「{{query}}」的文件\",\n \"chatWorkspace.fileBrowser.preview\": \"预览\",\n \"chatWorkspace.fileBrowser.root\": \"根目录\",\n \"chatWorkspace.fileBrowser.searchPlaceholder\": \"搜索文件…\",\n \"chatWorkspace.fileBrowser.selectFile\": \"选择一个文件以查看内容\",\n \"chatWorkspace.fileBrowser.selectProject\": \"请先选择项目以浏览文件\",\n \"chatWorkspace.fileBrowser.share\": \"分享\",\n \"chatWorkspace.fileBrowser.sort.created\": \"创建时间\",\n \"chatWorkspace.fileBrowser.sort.modified\": \"修改时间\",\n \"chatWorkspace.fileBrowser.sort.name\": \"名称\",\n \"chatWorkspace.fileBrowser.title\": \"文件浏览器\",\n \"chatWorkspace.personalAssistant.channelSettings\": \"渠道设置\",\n \"chatWorkspace.personalAssistant.create\": \"创建我的助理\",\n \"chatWorkspace.personalAssistant.customPlaceholder\": \"用你自己的话描述…\",\n \"chatWorkspace.personalAssistant.deleteBody\": \"这将永久删除你的助理、所有对话记录以及你的个人项目。此操作无法撤销。\",\n \"chatWorkspace.personalAssistant.deleted\": \"个人助理已删除\",\n \"chatWorkspace.personalAssistant.deleteOk\": \"全部删除\",\n \"chatWorkspace.personalAssistant.deleteTitle\": \"删除你的个人助理?\",\n \"chatWorkspace.personalAssistant.done\": \"完成!\",\n \"chatWorkspace.personalAssistant.emptyQuestion\": \"有什么可以帮你的?\",\n \"chatWorkspace.personalAssistant.emptyStateQuestion\": \"今天是 {{date}} — 有什么可以帮你的?\",\n \"chatWorkspace.personalAssistant.fieldName\": \"名称\",\n \"chatWorkspace.personalAssistant.fieldPersonality\": \"性格\",\n \"chatWorkspace.personalAssistant.greeting\": \"嗨\",\n \"chatWorkspace.personalAssistant.networkError\": \"网络错误\",\n \"chatWorkspace.personalAssistant.notSet\": \"(未设置)\",\n \"chatWorkspace.personalAssistant.personality.custom.desc\": \"自定义描述——可以是多种性格的混合,也可以完全不同。\",\n \"chatWorkspace.personalAssistant.personality.custom.title\": \"自定义\",\n \"chatWorkspace.personalAssistant.personality.energeticMotivator.desc\": \"充满能量、永远为你打气。为你的每个成就欢呼,从不让你放弃。\",\n \"chatWorkspace.personalAssistant.personality.energeticMotivator.title\": \"活力打气筒\",\n \"chatWorkspace.personalAssistant.personality.warmCaring.desc\": \"温柔、耐心、善解人意——像一位始终支持你的挚友。\",\n \"chatWorkspace.personalAssistant.personality.warmCaring.title\": \"温暖贴心\",\n \"chatWorkspace.personalAssistant.personality.wiseMentor.desc\": \"冷静、深思、有洞察力,总能问到点子上。\",\n \"chatWorkspace.personalAssistant.personality.wiseMentor.title\": \"智慧导师\",\n \"chatWorkspace.personalAssistant.personality.wittyPlayful.desc\": \"妙语连珠,带点调皮,让气氛轻松起来。\",\n \"chatWorkspace.personalAssistant.personality.wittyPlayful.title\": \"风趣调皮\",\n \"chatWorkspace.personalAssistant.stepName.body\": \"这是你每天都会用到的名字——你 AI 伙伴的专属昵称。\",\n \"chatWorkspace.personalAssistant.stepName.placeholder\": \"例如「贾维斯」「小伙伴」\",\n \"chatWorkspace.personalAssistant.stepName.title\": \"你想怎么称呼它?\",\n \"chatWorkspace.personalAssistant.stepReady.body\": \"你的助理拥有独立记忆,并会随着时间逐渐了解你。\",\n \"chatWorkspace.personalAssistant.stepReady.title\": \"快完成了!\",\n \"chatWorkspace.personalAssistant.stepVibe.body\": \"选择一个合适的性格,它会决定助理的说话方式和支持你的风格。\",\n \"chatWorkspace.personalAssistant.stepVibe.title\": \"你想要什么性格?\",\n \"chatWorkspace.personalAssistant.todayIs\": \"今天是 {{date}}\",\n \"chatWorkspace.pin.groupPlaceholder\": \"分组(可选,选择或输入新分组)\",\n \"chatWorkspace.pin.namePlaceholder\": \"菜单名称(必填)\",\n \"chatWorkspace.pin.nameRequired\": \"请输入菜单名称\",\n \"chatWorkspace.pin.pin\": \"固定到菜单\",\n \"chatWorkspace.pin.pinAction\": \"固定\",\n \"chatWorkspace.pin.pinFailed\": \"固定失败\",\n \"chatWorkspace.pin.pinned\": \"已固定到菜单\",\n \"chatWorkspace.pin.title\": \"固定到菜单\",\n \"chatWorkspace.pin.unpin\": \"从菜单取消固定\",\n \"chatWorkspace.pin.unpinFailed\": \"取消固定失败\",\n \"chatWorkspace.pin.unpinned\": \"已从菜单取消固定\",\n \"chatWorkspace.projects.create\": \"创建项目\",\n \"chatWorkspace.projects.created\": \"创建于 {{date}}\",\n \"chatWorkspace.projects.createdToast\": \"项目「{{name}}」已创建\",\n \"chatWorkspace.projects.createFailed\": \"创建项目失败\",\n \"chatWorkspace.projects.createTitle\": \"新建项目\",\n \"chatWorkspace.projects.emptyDescription\": \"创建第一个项目即可开始\",\n \"chatWorkspace.projects.emptyTitle\": \"暂无项目\",\n \"chatWorkspace.projects.itemName\": \"项目\",\n \"chatWorkspace.projects.kind.public\": \"公开\",\n \"chatWorkspace.projects.kind.training\": \"训练\",\n \"chatWorkspace.projects.nameLabel\": \"项目名称\",\n \"chatWorkspace.projects.namePlaceholder\": \"例如:Q4 分析、市场推广活动...\",\n \"chatWorkspace.projects.nameRequired\": \"请填写项目名称\",\n \"chatWorkspace.projects.nameTooLong\": \"名称不得超过 {{max}} 个字符\",\n \"chatWorkspace.projects.new\": \"新建项目\",\n \"chatWorkspace.projects.settings\": \"项目设置\",\n \"chatWorkspace.projects.title\": \"项目\",\n \"chatWorkspace.shares.col.actions\": \"操作\",\n \"chatWorkspace.shares.col.expires\": \"过期时间\",\n \"chatWorkspace.shares.col.status\": \"状态\",\n \"chatWorkspace.shares.col.title\": \"标题\",\n \"chatWorkspace.shares.col.token\": \"Token\",\n \"chatWorkspace.shares.copyLink\": \"复制链接\",\n \"chatWorkspace.shares.fallbackFileName\": \"文件\",\n \"chatWorkspace.shares.loadFailed\": \"加载分享失败\",\n \"chatWorkspace.shares.never\": \"永不过期\",\n \"chatWorkspace.shares.passwordProtected\": \"已设置密码保护\",\n \"chatWorkspace.shares.revoke\": \"撤销\",\n \"chatWorkspace.shares.revokeBody\": \"此链接将立即失效。\",\n \"chatWorkspace.shares.revoked\": \"分享已撤销\",\n \"chatWorkspace.shares.revokeTitle\": \"撤销分享?\",\n \"chatWorkspace.shares.status.active\": \"有效\",\n \"chatWorkspace.shares.status.expired\": \"已过期\",\n \"chatWorkspace.shares.status.revoked\": \"已撤销\",\n \"chatWorkspace.shares.title\": \"我的分享\",\n \"chatWorkspace.skillNode.add\": \"新增\",\n \"chatWorkspace.skillNode.contentPlaceholder\": \"在此输入技能内容...\",\n \"chatWorkspace.skillNode.contentSection\": \"内容\",\n \"chatWorkspace.skillNode.copyId\": \"复制 ID\",\n \"chatWorkspace.skillNode.deleted\": \"技能已删除\",\n \"chatWorkspace.skillNode.deleteFailed\": \"删除技能时出错\",\n \"chatWorkspace.skillNode.edit\": \"编辑技能\",\n \"chatWorkspace.skillNode.idMissing\": \"缺少技能 ID\",\n \"chatWorkspace.skillNode.keyPlaceholder\": \"键\",\n \"chatWorkspace.skillNode.meta\": \"元数据 {{index}}\",\n \"chatWorkspace.skillNode.metadataCount\": \"元数据({{count}})\",\n \"chatWorkspace.skillNode.noMetadata\": \"暂无元数据。点击「新增」添加一条。\",\n \"chatWorkspace.skillNode.updated\": \"技能已更新\",\n \"chatWorkspace.skillNode.updateError\": \"更新技能时出错\",\n \"chatWorkspace.skillNode.updateFailed\": \"更新技能失败\",\n \"chatWorkspace.skillNode.valuePlaceholder\": \"值\",\n \"chatWorkspace.skills.deleteConfirm\": \"确定要删除「{{name}}」吗?\",\n \"chatWorkspace.skills.deleted\": \"技能已删除\",\n \"chatWorkspace.skills.deleteFailed\": \"删除技能失败\",\n \"chatWorkspace.skills.deleteTitle\": \"删除技能\",\n \"chatWorkspace.skills.editTitle\": \"编辑技能\",\n \"chatWorkspace.skills.emptyDescription\": \"点击「新建技能」创建一个\",\n \"chatWorkspace.skills.emptyTitle\": \"暂无技能\",\n \"chatWorkspace.skills.field.compatibility\": \"兼容性\",\n \"chatWorkspace.skills.field.content\": \"内容\",\n \"chatWorkspace.skills.field.description\": \"描述\",\n \"chatWorkspace.skills.field.license\": \"许可证\",\n \"chatWorkspace.skills.field.metadata\": \"元数据\",\n \"chatWorkspace.skills.field.name\": \"名称\",\n \"chatWorkspace.skills.field.skillMd\": \"SKILL.md\",\n \"chatWorkspace.skills.graph\": \"图谱\",\n \"chatWorkspace.skills.itemName\": \"技能\",\n \"chatWorkspace.skills.loadFailed\": \"加载技能失败\",\n \"chatWorkspace.skills.new\": \"新建技能\",\n \"chatWorkspace.skills.saveChanges\": \"保存修改\",\n \"chatWorkspace.skills.subCount\": \"{{count}} 个子技能\",\n \"chatWorkspace.skills.title\": \"技能\",\n \"chatWorkspace.skills.updated\": \"技能已更新\",\n \"chatWorkspace.skills.updateFailed\": \"更新技能失败\",\n \"chatWorkspace.toolNode.approval\": \"需审批\",\n \"chatWorkspace.toolNode.copyId\": \"复制 ID\",\n \"chatWorkspace.toolNode.direct\": \"直接返回\",\n \"chatWorkspace.toolNode.directReturn\": \"直接返回\",\n \"chatWorkspace.toolNode.inputSchema\": \"输入 Schema\",\n \"chatWorkspace.toolNode.requiresApproval\": \"需要审批\",\n \"chatWorkspace.toolNode.schema\": \"Schema\",\n \"chatWorkspace.toolNode.useTool\": \"使用工具\",\n \"chatWorkspace.tools.empty\": \"暂无可用工具\",\n \"chatWorkspace.tools.errorTitle\": \"加载工具出错\",\n \"chatWorkspace.tools.invalidResponse\": \"响应格式无效\",\n \"chatWorkspace.tools.refreshTitle\": \"刷新工具\",\n \"chatWorkspace.tools.requiresApproval\": \"需要审批\",\n \"chatWorkspace.topologyAutomation.copilot\": \"Copilot\",\n \"chatWorkspace.topologyAutomation.createWorkflow\": \"新建工作流\",\n \"chatWorkspace.topologyAutomation.deleteBody\": \"这将删除该工作流及其关联的全部拓扑。此操作无法撤销。\",\n \"chatWorkspace.topologyAutomation.deleteTitle\": \"删除工作流\",\n \"chatWorkspace.topologyAutomation.deleteFailed\": \"删除工作流失败\",\n \"chatWorkspace.topologyAutomation.incoming\": \"入边 {{count}}\",\n \"chatWorkspace.topologyAutomation.loading\": \"正在加载工作流...\",\n \"chatWorkspace.topologyAutomation.noDefinitions\": \"未找到工作流定义。\",\n \"chatWorkspace.topologyAutomation.noDescription\": \"未设置描述。请使用工作流构建器为该工作流添加说明。\",\n \"chatWorkspace.topologyAutomation.noDescriptionShort\": \"暂无描述\",\n \"chatWorkspace.topologyAutomation.outgoing\": \"出边 {{count}}\",\n \"chatWorkspace.topologyAutomation.selectWorkflow\": \"选择一个工作流以查看其拓扑\",\n \"chatWorkspace.topologyAutomation.stepsCount\": \"{{count}} 个步骤\",\n \"chatWorkspace.topologyAutomation.title\": \"工作流\",\n \"chatWorkspace.topologyRuntime.autoRefresh\": \"自动刷新\",\n \"chatWorkspace.topologyRuntime.completed\": \"完成时间\",\n \"chatWorkspace.topologyRuntime.daysAgo\": \"{{count}} 天前\",\n \"chatWorkspace.topologyRuntime.deleteRunBody\": \"删除这次工作流运行及其所有步骤记录?\",\n \"chatWorkspace.topologyRuntime.deleteRunFailed\": \"删除运行记录失败\",\n \"chatWorkspace.topologyRuntime.deleteRunTitle\": \"删除运行记录\",\n \"chatWorkspace.topologyRuntime.duration\": \"耗时\",\n \"chatWorkspace.topologyRuntime.empty\": \"暂无工作流运行记录。\",\n \"chatWorkspace.topologyRuntime.ended\": \"结束:{{time}}\",\n \"chatWorkspace.topologyRuntime.flowView\": \"流程视图\",\n \"chatWorkspace.topologyRuntime.hoursAgo\": \"{{count}} 小时前\",\n \"chatWorkspace.topologyRuntime.input\": \"输入\",\n \"chatWorkspace.topologyRuntime.justNow\": \"刚刚\",\n \"chatWorkspace.topologyRuntime.loadFailed\": \"加载工作流运行记录失败\",\n \"chatWorkspace.topologyRuntime.minutesAgo\": \"{{count}} 分钟前\",\n \"chatWorkspace.topologyRuntime.noStepRecords\": \"暂无步骤记录\",\n \"chatWorkspace.topologyRuntime.output\": \"输出\",\n \"chatWorkspace.topologyRuntime.pipelineExecution\": \"流水线执行\",\n \"chatWorkspace.topologyRuntime.purpose\": \"用途:{{purpose}}\",\n \"chatWorkspace.topologyRuntime.refreshNow\": \"立即刷新\",\n \"chatWorkspace.topologyRuntime.runStatus.cancelled\": \"已取消\",\n \"chatWorkspace.topologyRuntime.runStatus.completed\": \"已完成\",\n \"chatWorkspace.topologyRuntime.runStatus.failed\": \"失败\",\n \"chatWorkspace.topologyRuntime.runStatus.interrupted\": \"等待输入\",\n \"chatWorkspace.topologyRuntime.runStatus.running\": \"运行中\",\n \"chatWorkspace.topologyRuntime.started\": \"开始:{{time}}\",\n \"chatWorkspace.topologyRuntime.startedLabel\": \"开始时间\",\n \"chatWorkspace.topologyRuntime.stepDetail\": \"步骤详情\",\n \"chatWorkspace.topologyRuntime.title\": \"工作流运行记录\",\n \"chatWorkspace.workflowAutomation.copilot\": \"Copilot\",\n \"chatWorkspace.workflowAutomation.createWorkflow\": \"新建工作流\",\n \"chatWorkspace.workflowAutomation.deleteBody\": \"这将永久删除该工作流智能体。\",\n \"chatWorkspace.workflowAutomation.deleteTitle\": \"删除工作流\",\n \"chatWorkspace.workflowAutomation.emptyTitle\": \"暂无工作流\",\n \"chatWorkspace.workflowAutomation.filterPlaceholder\": \"筛选工作流...\",\n \"chatWorkspace.workflowAutomation.loadFailed\": \"加载工作流失败\",\n \"chatWorkspace.workflowAutomation.loading\": \"正在加载工作流...\",\n \"chatWorkspace.workflowAutomation.loadingDsl\": \"正在加载工作流 DSL...\",\n \"chatWorkspace.workflowAutomation.noDefinitions\": \"未找到工作流定义。\",\n \"chatWorkspace.workflowAutomation.noDescription\": \"未设置描述。\",\n \"chatWorkspace.workflowAutomation.noMatch\": \"没有匹配的工作流\",\n \"chatWorkspace.workflowAutomation.selectWorkflow\": \"选择一个工作流以查看其图谱\",\n \"chatWorkspace.workflowAutomation.title\": \"工作流\",\n \"chatWorkspace.workflowCanvas.ended\": \"结束:{{time}}\",\n \"chatWorkspace.workflowCanvas.input\": \"输入\",\n \"chatWorkspace.workflowCanvas.noIo\": \"暂无输入/输出数据\",\n \"chatWorkspace.workflowCanvas.noNodes\": \"工作流中没有节点\",\n \"chatWorkspace.workflowCanvas.output\": \"输出\",\n \"chatWorkspace.workflowCanvas.parallel\": \"并行\",\n \"chatWorkspace.workflowCanvas.purpose\": \"用途:{{purpose}}\",\n \"chatWorkspace.workflowCanvas.started\": \"开始:{{time}}\",\n \"chatWorkspace.workflowCanvas.stepDetail\": \"步骤详情\",\n \"chatWorkspace.workflowCanvas.tabIo\": \"输入 / 输出\",\n \"chatWorkspace.workflowNode.askTooltip\": \"此步骤需要人工确认后才能继续\",\n \"chatWorkspace.workflowNode.inline\": \"内联\",\n \"chatWorkspace.workflowNode.items\": \"数组项\",\n \"chatWorkspace.workflowNode.noSchema\": \"未定义 Schema\",\n \"chatWorkspace.workflowNode.output\": \"输出\",\n \"chatWorkspace.workflowNode.pending\": \"待执行\",\n \"chatWorkspace.workflowNode.properties\": \"属性\",\n \"chatWorkspace.workflowNode.refDelegated\": \"委派给智能体:{{name}}\",\n \"chatWorkspace.workflowNode.refDeleted\": \"智能体「{{ref}}」已不存在\",\n \"chatWorkspace.workflowNode.refDeletedTag\": \"[已删除] {{ref}}\",\n \"chatWorkspace.workflowNode.stepStatus.completed\": \"此步骤已成功完成\",\n \"chatWorkspace.workflowNode.stepStatus.failed\": \"此步骤发生错误\",\n \"chatWorkspace.workflowNode.stepStatus.interrupted\": \"此步骤正在等待人工输入\",\n \"chatWorkspace.workflowNode.stepStatus.running\": \"此步骤正在执行中\",\n \"chatWorkspace.workflowNode.stepStatus.skipped\": \"此步骤被跳过(条件未满足)\",\n \"chatWorkspace.workflowNode.terminal.failed\": \"失败\",\n \"chatWorkspace.workflowNode.terminal.stop\": \"停止\",\n \"chatWorkspace.workflowNode.terminal.success\": \"成功\",\n \"chatWorkspace.workflowNode.when\": \"条件:{{condition}}\",\n \"chatWorkspace.workspace.current\": \"当前工作区\",\n \"chatWorkspace.workspace.noAssets\": \"暂无资源\",\n \"chatWorkspace.workspace.preview\": \"预览:{{name}}\",\n \"chatWorkspace.workspace.projectAssets\": \"项目资源\",\n \"chatWorkspace.workspace.select\": \"选择工作区\",\n \"chatWorkspace.workspace.selectBeforeUpload\": \"请先选择工作区和项目,然后再上传资源。\",\n \"chatWorkspace.workspace.selectBeforeUploadProject\": \"请先选择工作区和项目,然后再上传。\",\n \"chatWorkspace.workspace.selectFirst\": \"请先选择工作区和项目。\",\n \"chatWorkspace.workspace.selectWorkspaceFirst\": \"请先选择工作区\",\n \"chatWorkspace.workspace.loadWorkspacesFailed\": \"加载工作区失败\",\n \"chatWorkspace.workspace.loadProjectsFailed\": \"加载项目失败\",\n \"chatWorkspace.workspace.createWorkspaceFailed\": \"创建工作区失败\",\n \"chatWorkspace.workspace.updateWorkspaceFailed\": \"更新工作区失败\",\n \"chatWorkspace.workspace.deleteWorkspaceFailed\": \"删除工作区失败\",\n \"chatWorkspace.workspace.updateProjectFailed\": \"更新项目失败\",\n \"chatWorkspace.workspace.deleteProjectFailed\": \"删除项目失败\",\n \"chatWorkspace.workspace.loadFilesFailed\": \"加载文件失败\",\n \"chatWorkspace.workspace.storage\": \"存储\",\n \"chatWorkspace.workspace.upload\": \"上传\",\n \"chatWorkspace.workspace.uploaded\": \"已成功上传「{{name}}」\",\n \"chatWorkspace.workspace.uploadFailed\": \"上传文件失败\",\n \"chatWorkspace.workspace.uploading\": \"上传中...\",\n \"chatWorkspace.inbox.title\": \"用户收件箱\",\n \"chatWorkspace.inbox.subtitle\": \"需要你处理的任务\",\n \"chatWorkspace.inbox.empty\": \"收件箱暂无内容\"\n }\n}\n","{\n \"messages\": {\n \"common.confirm\": \"Confirm\",\n \"common.cancel\": \"Cancel\",\n \"common.submit\": \"Submit\",\n \"common.close\": \"Close\",\n \"common.back\": \"Back\",\n \"common.next\": \"Next\",\n \"common.save\": \"Save\",\n \"common.saved\": \"Saved\",\n \"common.delete\": \"Delete\",\n \"common.edit\": \"Edit\",\n \"common.create\": \"Create\",\n \"common.copy\": \"Copy\",\n \"common.copied\": \"Copied\",\n \"common.rename\": \"Rename\",\n \"common.refresh\": \"Refresh\",\n \"common.retry\": \"Retry\",\n \"common.loading\": \"Loading...\",\n \"common.saving\": \"Saving...\",\n \"common.search\": \"Search\",\n \"common.empty\": \"No data\",\n \"common.error\": \"Something went wrong\",\n \"common.unsavedChanges\": \"You have unsaved changes\",\n \"common.yes\": \"Yes\",\n \"common.no\": \"No\",\n \"common.ok\": \"OK\",\n \"common.time.justNow\": \"just now\",\n \"common.time.minutesAgo\": \"{{count}}m ago\",\n \"common.time.hoursAgo\": \"{{count}}h ago\",\n \"common.time.daysAgo\": \"{{count}}d ago\",\n \"common.time.monthsAgo\": \"{{count}}mo ago\",\n \"common.time.yearsAgo\": \"{{count}}y ago\",\n \"common.item.project_one\": \"project\",\n \"common.item.project_other\": \"projects\",\n \"common.item.skill_one\": \"skill\",\n \"common.item.skill_other\": \"skills\",\n \"common.item.connection_one\": \"connection\",\n \"common.item.connection_other\": \"connections\",\n \"common.item.plugin_one\": \"plugin\",\n \"common.item.plugin_other\": \"plugins\",\n \"common.item.provider_one\": \"provider\",\n \"common.item.provider_other\": \"providers\",\n \"common.item.profile_one\": \"profile\",\n \"common.item.profile_other\": \"profiles\",\n \"common.item.agent_one\": \"agent\",\n \"common.item.agent_other\": \"agents\",\n \"common.item.key_one\": \"key\",\n \"common.item.key_other\": \"keys\",\n \"common.item.app_one\": \"app\",\n \"common.item.app_other\": \"apps\",\n \"common.item.case_one\": \"case\",\n \"common.item.case_other\": \"cases\",\n \"common.item.project\": \"projects\",\n \"common.item.skill\": \"skills\",\n \"common.item.connection\": \"connections\",\n \"common.item.plugin\": \"plugins\",\n \"common.item.provider\": \"providers\",\n \"common.item.profile\": \"profiles\",\n \"common.item.agent\": \"agents\",\n \"common.item.key\": \"keys\",\n \"common.item.app\": \"apps\",\n \"common.item.case\": \"cases\",\n \"common.itemCount\": \"{{n}} {{item}}\"\n }\n}\n","{\n \"messages\": {\n \"common.confirm\": \"确定\",\n \"common.cancel\": \"取消\",\n \"common.submit\": \"提交\",\n \"common.close\": \"关闭\",\n \"common.back\": \"返回\",\n \"common.next\": \"下一步\",\n \"common.save\": \"保存\",\n \"common.saved\": \"已保存\",\n \"common.delete\": \"删除\",\n \"common.edit\": \"编辑\",\n \"common.create\": \"新建\",\n \"common.copy\": \"复制\",\n \"common.copied\": \"已复制\",\n \"common.rename\": \"重命名\",\n \"common.refresh\": \"刷新\",\n \"common.retry\": \"重试\",\n \"common.loading\": \"加载中...\",\n \"common.saving\": \"保存中...\",\n \"common.search\": \"搜索\",\n \"common.empty\": \"暂无数据\",\n \"common.error\": \"出错了\",\n \"common.unsavedChanges\": \"有未保存的更改\",\n \"common.yes\": \"是\",\n \"common.no\": \"否\",\n \"common.ok\": \"确定\",\n \"common.time.justNow\": \"刚刚\",\n \"common.time.minutesAgo\": \"{{count}} 分钟前\",\n \"common.time.hoursAgo\": \"{{count}} 小时前\",\n \"common.time.daysAgo\": \"{{count}} 天前\",\n \"common.time.monthsAgo\": \"{{count}} 个月前\",\n \"common.time.yearsAgo\": \"{{count}} 年前\",\n \"common.item.project_one\": \"项目\",\n \"common.item.project_other\": \"项目\",\n \"common.item.skill_one\": \"技能\",\n \"common.item.skill_other\": \"技能\",\n \"common.item.connection_one\": \"连接\",\n \"common.item.connection_other\": \"连接\",\n \"common.item.plugin_one\": \"插件\",\n \"common.item.plugin_other\": \"插件\",\n \"common.item.provider_one\": \"服务商\",\n \"common.item.provider_other\": \"服务商\",\n \"common.item.profile_one\": \"运行时配置\",\n \"common.item.profile_other\": \"运行时配置\",\n \"common.item.agent_one\": \"智能体\",\n \"common.item.agent_other\": \"智能体\",\n \"common.item.key_one\": \"密钥\",\n \"common.item.key_other\": \"密钥\",\n \"common.item.app_one\": \"应用\",\n \"common.item.app_other\": \"应用\",\n \"common.item.case_one\": \"用例\",\n \"common.item.case_other\": \"用例\",\n \"common.item.project\": \"项目\",\n \"common.item.skill\": \"技能\",\n \"common.item.connection\": \"连接\",\n \"common.item.plugin\": \"插件\",\n \"common.item.provider\": \"服务商\",\n \"common.item.profile\": \"运行时配置\",\n \"common.item.agent\": \"智能体\",\n \"common.item.key\": \"密钥\",\n \"common.item.app\": \"应用\",\n \"common.item.case\": \"用例\",\n \"common.itemCount\": \"{{n}} 个{{item}}\"\n }\n}\n","{\n \"messages\": {\n \"cospace.nav.aria\": \"CoSpace navigation\",\n \"cospace.nav.rooms\": \"Rooms\",\n \"cospace.nav.orgs\": \"Orgs\",\n \"cospace.nav.me\": \"Me\",\n \"cospace.orgs.selectPrompt\": \"Select a bot or member to view details\",\n \"cospace.orgs.back\": \"Back to orgs\",\n \"cospace.orgs.startChatFailed\": \"Failed to start direct chat\",\n \"cospace.orgs.invalidResponse\": \"Invalid direct chat response\",\n \"cospace.orgs.listTitleBots\": \"Bots ({{count}})\",\n \"cospace.orgs.listTitleMembers\": \"Members ({{count}})\",\n \"cospace.orgs.empty\": \"No bots or members available\",\n \"cospace.orgs.loadFailed\": \"Failed to load orgs\",\n \"cospace.orgs.hasDirectChat\": \"Has direct chat\",\n \"cospace.orgs.typeBot\": \"Bot\",\n \"cospace.orgs.typeMember\": \"Member\",\n \"cospace.orgs.roleCoordinator\": \"Coordinator\",\n \"cospace.orgs.roleSpecialist\": \"Specialist\",\n \"cospace.detail.sectionDetails\": \"Details\",\n \"cospace.detail.mentionName\": \"Mention name\",\n \"cospace.detail.responsibility\": \"Responsibility\",\n \"cospace.detail.assistantId\": \"Assistant ID\",\n \"cospace.detail.email\": \"Email\",\n \"cospace.detail.userId\": \"User ID\",\n \"cospace.detail.joined\": \"Joined\",\n \"cospace.detail.openDirectChat\": \"Open direct chat\",\n \"cospace.detail.startDirectChat\": \"Start direct chat\",\n \"cospace.rooms.selectPrompt\": \"Select a room to start chatting\",\n \"cospace.rooms.newGroup\": \"New Group\",\n \"cospace.rooms.searchPlaceholder\": \"Search rooms...\",\n \"cospace.rooms.groupRooms\": \"Group Rooms\",\n \"cospace.rooms.directRooms\": \"Direct Rooms\",\n \"cospace.rooms.noMatch\": \"No rooms match your search\",\n \"cospace.rooms.empty\": \"No rooms available\",\n \"cospace.group.title\": \"New Group\",\n \"cospace.group.namePlaceholder\": \"Group name\",\n \"cospace.group.created\": \"Group created\",\n \"cospace.group.createFailed\": \"Failed to create group\",\n \"cospace.group.missingProjectId\": \"Group created but no project id was returned\"\n }\n}\n","{\n \"messages\": {\n \"cospace.nav.aria\": \"CoSpace 导航\",\n \"cospace.nav.rooms\": \"会话\",\n \"cospace.nav.orgs\": \"组织\",\n \"cospace.nav.me\": \"我\",\n \"cospace.orgs.selectPrompt\": \"选择一个机器人或成员以查看详情\",\n \"cospace.orgs.back\": \"返回组织列表\",\n \"cospace.orgs.startChatFailed\": \"发起即时会话失败\",\n \"cospace.orgs.invalidResponse\": \"即时会话响应无效\",\n \"cospace.orgs.listTitleBots\": \"机器人({{count}})\",\n \"cospace.orgs.listTitleMembers\": \"成员({{count}})\",\n \"cospace.orgs.empty\": \"没有可用的机器人或成员\",\n \"cospace.orgs.loadFailed\": \"加载组织失败\",\n \"cospace.orgs.hasDirectChat\": \"已有即时会话\",\n \"cospace.orgs.typeBot\": \"机器人\",\n \"cospace.orgs.typeMember\": \"成员\",\n \"cospace.orgs.roleCoordinator\": \"协调者\",\n \"cospace.orgs.roleSpecialist\": \"专家\",\n \"cospace.detail.sectionDetails\": \"详情\",\n \"cospace.detail.mentionName\": \"提及名\",\n \"cospace.detail.responsibility\": \"职责\",\n \"cospace.detail.assistantId\": \"助手 ID\",\n \"cospace.detail.email\": \"邮箱\",\n \"cospace.detail.userId\": \"用户 ID\",\n \"cospace.detail.joined\": \"加入时间\",\n \"cospace.detail.openDirectChat\": \"打开即时会话\",\n \"cospace.detail.startDirectChat\": \"发起即时会话\",\n \"cospace.rooms.selectPrompt\": \"选择一个会话开始聊天\",\n \"cospace.rooms.newGroup\": \"新建群组\",\n \"cospace.rooms.searchPlaceholder\": \"搜索会话...\",\n \"cospace.rooms.groupRooms\": \"群组会话\",\n \"cospace.rooms.directRooms\": \"即时会话\",\n \"cospace.rooms.noMatch\": \"没有匹配的会话\",\n \"cospace.rooms.empty\": \"暂无可用会话\",\n \"cospace.group.title\": \"新建群组\",\n \"cospace.group.namePlaceholder\": \"群组名称\",\n \"cospace.group.created\": \"群组已创建\",\n \"cospace.group.createFailed\": \"创建群组失败\",\n \"cospace.group.missingProjectId\": \"群组已创建,但未返回项目 ID\"\n }\n}\n","{\n \"messages\": {}\n}\n","{\n \"messages\": {}\n}\n","{\n \"messages\": {\n \"eval.status.running\": \"Running\",\n \"eval.status.completed\": \"Completed\",\n \"eval.status.failed\": \"Failed\",\n \"eval.status.aborted\": \"Aborted\",\n \"eval.action.add\": \"Add\",\n \"eval.cases.title\": \"Test Cases\",\n \"eval.suites.title\": \"Test Suites\",\n \"eval.recentRuns.title\": \"Recent Runs\",\n \"eval.rubricCount\": \"{{count}} rubric{{s}}\",\n \"eval.delete.irreversible\": \"This action cannot be undone.\",\n \"eval.run.passed\": \"passed\",\n \"eval.run.failed\": \"failed\",\n \"eval.run.passSummary\": \"{{passed}}/{{total}} passed\",\n \"eval.run.score\": \"Score: {{score}}\",\n \"eval.run.deleteTitle\": \"Delete this run?\",\n \"eval.run.deleteDescription\": \"Run results will be permanently deleted.\",\n \"eval.run.deleted\": \"Run deleted\",\n \"eval.dashboard.title\": \"Evaluation Dashboard\",\n \"eval.dashboard.breadcrumb\": \"Dashboard\",\n \"eval.dashboard.selectProject\": \"Select Project\",\n \"eval.dashboard.goToSuites\": \"Go to Suites\",\n \"eval.dashboard.totalRuns\": \"Total Runs\",\n \"eval.dashboard.latestPassRate\": \"Latest Pass Rate\",\n \"eval.dashboard.notAvailable\": \"N/A\",\n \"eval.dashboard.suitesSection\": \"Evaluation Suites\",\n \"eval.dashboard.viewAll\": \"View All\",\n \"eval.dashboard.noRuns\": \"No runs yet. Go to Suites to run your first evaluation.\",\n \"eval.suite.newSuite\": \"New Suite\",\n \"eval.suite.runAll\": \"Run All\",\n \"eval.suite.createSuite\": \"Create Suite\",\n \"eval.suite.namePlaceholder\": \"Suite name\",\n \"eval.suite.empty\": \"No test suites yet\",\n \"eval.suite.casesLabel\": \"Cases\",\n \"eval.suite.deleteTitle\": \"Delete suite?\",\n \"eval.suite.cardDeleteTitle\": \"Delete this suite?\",\n \"eval.suite.cardSubtitle\": \"Server-side agent testing\",\n \"eval.suite.testCaseCount\": \"{{count}} test cases\",\n \"eval.suite.breadcrumb\": \"Suites\",\n \"eval.suite.fallbackTitle\": \"Suite\",\n \"eval.project.label\": \"Project\",\n \"eval.project.nameLabel\": \"Project Name\",\n \"eval.project.namePlaceholder\": \"e.g. Production Agents\",\n \"eval.project.namePlaceholderStaging\": \"e.g. Staging\",\n \"eval.project.targetServer\": \"Target Server\",\n \"eval.project.nameRequired\": \"Name is required\",\n \"eval.project.newProject\": \"New Project\",\n \"eval.project.newProjectPlus\": \"+ New Project\",\n \"eval.project.select\": \"Select project\",\n \"eval.project.inProcess\": \"In-Process\",\n \"eval.project.judgeModel\": \"Scoring Model\",\n \"eval.project.judgeModelLabel\": \"Scoring Model: {{model}}\",\n \"eval.project.judgeModelRequired\": \"Please select a scoring model\",\n \"eval.project.judgeModelPlaceholder\": \"Select a registered model\",\n \"eval.project.concurrency\": \"Concurrency\",\n \"eval.project.concurrencyLabel\": \"Concurrency: {{value}}\",\n \"eval.project.deleteTitle\": \"Delete this project?\",\n \"eval.project.notFound\": \"Project not found\",\n \"eval.project.runEvaluation\": \"Run Evaluation\",\n \"eval.project.suitesCount\": \"Test Suites ({{count}})\",\n \"eval.project.caseCount\": \"{{count}} cases\",\n \"eval.project.deleteSuiteTitle\": \"Delete this suite and all its cases?\",\n \"eval.project.runs\": \"Runs\",\n \"eval.project.noRuns\": \"No runs yet\",\n \"eval.projects.title\": \"Evaluation Projects\",\n \"eval.projects.subtitle\": \"Test your agents against benchmark cases\",\n \"eval.projects.empty\": \"No evaluation projects yet. Create one to start testing your agents.\",\n \"eval.projects.create\": \"Create Project\",\n \"eval.projects.createTitle\": \"Create Evaluation Project\",\n \"eval.case.add\": \"Add Case\",\n \"eval.case.addTitle\": \"Add Test Case\",\n \"eval.case.editTitle\": \"Edit Test Case\",\n \"eval.case.runAll\": \"Run All Cases\",\n \"eval.case.inputMessage\": \"Input Message\",\n \"eval.case.inputPlaceholder\": \"What to send to the agent\",\n \"eval.case.agent\": \"Agent\",\n \"eval.case.agentPlaceholder\": \"Select agent\",\n \"eval.case.outputType\": \"Output Type\",\n \"eval.case.outputType.messageContent\": \"Message Content\",\n \"eval.case.outputType.fileContent\": \"File Content\",\n \"eval.case.expectedOutput\": \"Expected Output\",\n \"eval.case.expectedOutputPlaceholder\": \"Describe expected output\",\n \"eval.case.expectedOutputDescription\": \"Expected output description\",\n \"eval.case.assertionDefault\": \"Response should be relevant and accurate\",\n \"eval.case.untitled\": \"Untitled case\",\n \"eval.case.emptyTitle\": \"No test cases\",\n \"eval.case.emptyDescription\": \"Add your first test case to get started\",\n \"eval.case.deleteTitle\": \"Delete case?\",\n \"eval.case.deleteTestCaseTitle\": \"Delete test case?\",\n \"eval.case.userMessagePlaceholder\": \"User message (e.g. Summarize this doc)\",\n \"eval.case.agentIdsPlaceholder\": \"Agent IDs (comma-separated)\",\n \"eval.case.loadAgentsFailed\": \"Failed to load agents\",\n \"eval.case.created\": \"Case created\",\n \"eval.case.updated\": \"Case updated\",\n \"eval.case.deleted\": \"Case deleted\",\n \"eval.results.title\": \"Run Results\",\n \"eval.results.loading\": \"Loading validation results…\",\n \"eval.results.finalizing\": \"Finalizing validation results…\",\n \"eval.results.notFound\": \"Evaluation run not found\",\n \"eval.results.refreshFailed\": \"Validation results could not be refreshed\",\n \"eval.results.disconnected\": \"Live updates disconnected\",\n \"eval.results.disconnectedDescription\": \"Validation may still be running. Persisted results remain visible while live updates are unavailable.\",\n \"eval.results.reconnect\": \"Reconnect\",\n \"eval.results.casesProgress\": \"{{completed}} / {{total}} cases\",\n \"eval.results.passedCount\": \"{{count}} passed\",\n \"eval.results.failedCount\": \"{{count}} failed\",\n \"eval.results.totalCases\": \"Total Cases\",\n \"eval.results.passed\": \"Passed\",\n \"eval.results.failed\": \"Failed\",\n \"eval.results.avgScore\": \"Avg Score\",\n \"eval.results.passRate\": \"Pass Rate\",\n \"eval.results.error\": \"Error: {{message}}\",\n \"eval.results.envTag\": \"env: {{id}}\",\n \"eval.results.deleteRun\": \"Delete Run\",\n \"eval.results.deleteFailed\": \"Failed to delete run\",\n \"eval.results.caseResults\": \"Case Results\",\n \"eval.results.empty\": \"No results yet\",\n \"eval.results.interrupted\": \"Interrupted\",\n \"eval.results.judgeSummary\": \"Judge Summary\",\n \"eval.results.dimensionScores\": \"Dimension Scores ({{count}} rubric{{s}})\",\n \"eval.results.noDetail\": \"No detail available\",\n \"eval.runEnv.title\": \"Select Test Environment\",\n \"eval.runEnv.description\": \"Choose the workspace project environment this evaluation run executes in\",\n \"eval.runEnv.required\": \"Please select a test environment first\",\n \"eval.runEnv.run\": \"Run\",\n \"eval.error.fetchRunsFailed\": \"Failed to fetch evaluation runs\",\n \"eval.error.invalidRunsResponse\": \"Invalid evaluation runs response\",\n \"eval.error.fetchSuitesFailed\": \"Failed to fetch evaluation suites\",\n \"eval.error.invalidSuitesResponse\": \"Invalid evaluation suites response\",\n \"eval.error.fetchRunDetailFailed\": \"Failed to fetch evaluation run detail\",\n \"eval.error.invalidRunDetailResponse\": \"Evaluation run detail response is missing or malformed\",\n \"eval.error.unknownSuite\": \"Unknown suite\",\n \"eval.error.aborted\": \"Evaluation aborted\",\n \"eval.error.failed\": \"Evaluation failed\",\n \"eval.error.streamFailed\": \"Evaluation stream failed\",\n \"eval.error.streamDisconnected\": \"Evaluation stream disconnected\"\n }\n}\n","{\n \"messages\": {\n \"eval.status.running\": \"运行中\",\n \"eval.status.completed\": \"已完成\",\n \"eval.status.failed\": \"失败\",\n \"eval.status.aborted\": \"已中止\",\n \"eval.action.add\": \"添加\",\n \"eval.cases.title\": \"测试用例\",\n \"eval.suites.title\": \"测试套件\",\n \"eval.recentRuns.title\": \"最近运行\",\n \"eval.rubricCount\": \"{{count}} 项指标\",\n \"eval.delete.irreversible\": \"此操作无法撤销。\",\n \"eval.run.passed\": \"通过\",\n \"eval.run.failed\": \"失败\",\n \"eval.run.passSummary\": \"{{passed}}/{{total}} 通过\",\n \"eval.run.score\": \"评分:{{score}}\",\n \"eval.run.deleteTitle\": \"删除此运行?\",\n \"eval.run.deleteDescription\": \"运行结果将被永久删除。\",\n \"eval.run.deleted\": \"运行已删除\",\n \"eval.dashboard.title\": \"评测看板\",\n \"eval.dashboard.breadcrumb\": \"看板\",\n \"eval.dashboard.selectProject\": \"选择项目\",\n \"eval.dashboard.goToSuites\": \"前往套件\",\n \"eval.dashboard.totalRuns\": \"运行总数\",\n \"eval.dashboard.latestPassRate\": \"最新通过率\",\n \"eval.dashboard.notAvailable\": \"暂无\",\n \"eval.dashboard.suitesSection\": \"评测套件\",\n \"eval.dashboard.viewAll\": \"查看全部\",\n \"eval.dashboard.noRuns\": \"暂无运行记录。前往「套件」发起第一次评测。\",\n \"eval.suite.newSuite\": \"新建套件\",\n \"eval.suite.runAll\": \"全部运行\",\n \"eval.suite.createSuite\": \"创建套件\",\n \"eval.suite.namePlaceholder\": \"套件名称\",\n \"eval.suite.empty\": \"暂无测试套件\",\n \"eval.suite.casesLabel\": \"用例\",\n \"eval.suite.deleteTitle\": \"删除套件?\",\n \"eval.suite.cardDeleteTitle\": \"删除此套件?\",\n \"eval.suite.cardSubtitle\": \"服务端智能体测试\",\n \"eval.suite.testCaseCount\": \"{{count}} 个测试用例\",\n \"eval.suite.breadcrumb\": \"套件\",\n \"eval.suite.fallbackTitle\": \"套件\",\n \"eval.project.label\": \"项目\",\n \"eval.project.nameLabel\": \"项目名称\",\n \"eval.project.namePlaceholder\": \"例如:生产环境智能体\",\n \"eval.project.namePlaceholderStaging\": \"例如:预发布环境\",\n \"eval.project.targetServer\": \"目标服务器\",\n \"eval.project.nameRequired\": \"请输入名称\",\n \"eval.project.newProject\": \"新建项目\",\n \"eval.project.newProjectPlus\": \"+ 新建项目\",\n \"eval.project.select\": \"选择项目\",\n \"eval.project.inProcess\": \"内网直连 (In-Process)\",\n \"eval.project.judgeModel\": \"评分模型\",\n \"eval.project.judgeModelLabel\": \"评分模型:{{model}}\",\n \"eval.project.judgeModelRequired\": \"请选择评分模型\",\n \"eval.project.judgeModelPlaceholder\": \"选择已注册的模型\",\n \"eval.project.concurrency\": \"并发数\",\n \"eval.project.concurrencyLabel\": \"并发数:{{value}}\",\n \"eval.project.deleteTitle\": \"删除此项目?\",\n \"eval.project.notFound\": \"未找到项目\",\n \"eval.project.runEvaluation\": \"运行评测\",\n \"eval.project.suitesCount\": \"测试套件({{count}})\",\n \"eval.project.caseCount\": \"{{count}} 个用例\",\n \"eval.project.deleteSuiteTitle\": \"删除此套件及其所有用例?\",\n \"eval.project.runs\": \"运行记录\",\n \"eval.project.noRuns\": \"暂无运行记录\",\n \"eval.projects.title\": \"评测项目\",\n \"eval.projects.subtitle\": \"用基准用例测试你的智能体\",\n \"eval.projects.empty\": \"暂无评测项目。创建一个即可开始测试你的智能体。\",\n \"eval.projects.create\": \"创建项目\",\n \"eval.projects.createTitle\": \"创建评测项目\",\n \"eval.case.add\": \"添加用例\",\n \"eval.case.addTitle\": \"添加测试用例\",\n \"eval.case.editTitle\": \"编辑测试用例\",\n \"eval.case.runAll\": \"运行全部用例\",\n \"eval.case.inputMessage\": \"输入消息\",\n \"eval.case.inputPlaceholder\": \"要发送给智能体的内容\",\n \"eval.case.agent\": \"智能体\",\n \"eval.case.agentPlaceholder\": \"选择智能体\",\n \"eval.case.outputType\": \"输出类型\",\n \"eval.case.outputType.messageContent\": \"消息内容\",\n \"eval.case.outputType.fileContent\": \"文件内容\",\n \"eval.case.expectedOutput\": \"期望输出\",\n \"eval.case.expectedOutputPlaceholder\": \"描述期望输出\",\n \"eval.case.expectedOutputDescription\": \"期望输出描述\",\n \"eval.case.assertionDefault\": \"回答应相关且准确\",\n \"eval.case.untitled\": \"未命名用例\",\n \"eval.case.emptyTitle\": \"暂无测试用例\",\n \"eval.case.emptyDescription\": \"添加第一个测试用例即可开始\",\n \"eval.case.deleteTitle\": \"删除用例?\",\n \"eval.case.deleteTestCaseTitle\": \"删除测试用例?\",\n \"eval.case.userMessagePlaceholder\": \"用户消息(例如:总结这份文档)\",\n \"eval.case.agentIdsPlaceholder\": \"智能体 ID(逗号分隔)\",\n \"eval.case.loadAgentsFailed\": \"加载智能体失败\",\n \"eval.case.created\": \"用例已创建\",\n \"eval.case.updated\": \"用例已更新\",\n \"eval.case.deleted\": \"用例已删除\",\n \"eval.results.title\": \"运行结果\",\n \"eval.results.loading\": \"正在加载评测结果…\",\n \"eval.results.finalizing\": \"正在汇总评测结果…\",\n \"eval.results.notFound\": \"未找到评测运行\",\n \"eval.results.refreshFailed\": \"无法刷新评测结果\",\n \"eval.results.disconnected\": \"实时更新已断开\",\n \"eval.results.disconnectedDescription\": \"评测可能仍在进行中。实时更新不可用期间,已保存的结果仍会显示。\",\n \"eval.results.reconnect\": \"重新连接\",\n \"eval.results.casesProgress\": \"{{completed}} / {{total}} 个用例\",\n \"eval.results.passedCount\": \"{{count}} 个通过\",\n \"eval.results.failedCount\": \"{{count}} 个失败\",\n \"eval.results.totalCases\": \"用例总数\",\n \"eval.results.passed\": \"通过\",\n \"eval.results.failed\": \"失败\",\n \"eval.results.avgScore\": \"平均分\",\n \"eval.results.passRate\": \"通过率\",\n \"eval.results.error\": \"错误:{{message}}\",\n \"eval.results.envTag\": \"环境:{{id}}\",\n \"eval.results.deleteRun\": \"删除运行\",\n \"eval.results.deleteFailed\": \"删除运行失败\",\n \"eval.results.caseResults\": \"用例结果\",\n \"eval.results.empty\": \"暂无结果\",\n \"eval.results.interrupted\": \"已中断\",\n \"eval.results.judgeSummary\": \"评审摘要\",\n \"eval.results.dimensionScores\": \"维度评分({{count}} 项指标)\",\n \"eval.results.noDetail\": \"暂无详情\",\n \"eval.runEnv.title\": \"选择测试环境\",\n \"eval.runEnv.description\": \"选择本次评估运行的工作区项目环境\",\n \"eval.runEnv.required\": \"请先选择测试环境\",\n \"eval.runEnv.run\": \"运行\",\n \"eval.error.fetchRunsFailed\": \"获取评测运行失败\",\n \"eval.error.invalidRunsResponse\": \"评测运行响应无效\",\n \"eval.error.fetchSuitesFailed\": \"获取评测套件失败\",\n \"eval.error.invalidSuitesResponse\": \"评测套件响应无效\",\n \"eval.error.fetchRunDetailFailed\": \"获取评测运行详情失败\",\n \"eval.error.invalidRunDetailResponse\": \"评测运行详情响应缺失或格式错误\",\n \"eval.error.unknownSuite\": \"未知套件\",\n \"eval.error.aborted\": \"评测已中止\",\n \"eval.error.failed\": \"评测失败\",\n \"eval.error.streamFailed\": \"评测流失败\",\n \"eval.error.streamDisconnected\": \"评测流已断开\"\n }\n}\n","{\n \"messages\": {\n \"genui.taskStatus.pending\": \"Pending\",\n \"genui.taskStatus.inProgress\": \"In Progress\",\n \"genui.taskStatus.claimed\": \"Claimed\",\n \"genui.taskStatus.completed\": \"Completed\",\n \"genui.taskStatus.failed\": \"Failed\",\n \"genui.date.justNow\": \"Just now\",\n \"genui.date.justNowLower\": \"just now\",\n \"genui.date.yesterday\": \"Yesterday\",\n \"genui.date.yesterdayLower\": \"yesterday\",\n \"genui.date.minutesAgo\": \"{{count}}m ago\",\n \"genui.date.hoursAgo\": \"{{count}}h ago\",\n \"genui.date.daysAgo\": \"{{count}} days ago\",\n \"genui.share.action\": \"Share\",\n \"genui.share.title\": \"Share Resource\",\n \"genui.share.revokeConfirm\": \"Revoke this share?\",\n \"genui.share.empty\": \"No active shares yet\",\n \"genui.share.createNew\": \"Create New Share\",\n \"genui.share.create\": \"Create Share\",\n \"genui.share.createFailed\": \"Failed to create share\",\n \"genui.share.revoked\": \"Share revoked\",\n \"genui.share.revokeFailed\": \"Failed to revoke\",\n \"genui.share.open\": \"Open\",\n \"genui.share.backToShares\": \"Back to shares\",\n \"genui.share.clipboardPassword\": \"Password: {{password}}\",\n \"genui.share.clipboardPasswordProtected\": \"Password protected\",\n \"genui.share.field.title\": \"Title\",\n \"genui.share.field.visibility\": \"Visibility\",\n \"genui.share.field.password\": \"Password\",\n \"genui.share.field.expires\": \"Expires\",\n \"genui.share.field.maxAccess\": \"Max accesses (empty = unlimited)\",\n \"genui.share.visibility.public\": \"Public\",\n \"genui.share.visibility.password\": \"Password\",\n \"genui.share.expiresValue\": \"Expires: {{value}}\",\n \"genui.share.expiry.never\": \"Never\",\n \"genui.share.expiry.1h\": \"1 hour\",\n \"genui.share.expiry.24h\": \"24 hours\",\n \"genui.share.expiry.7d\": \"7 days\",\n \"genui.share.expiry.30d\": \"30 days\",\n \"genui.markdown.copyContent\": \"Copy Content\",\n \"genui.markdown.downloadFile\": \"Download File\",\n \"genui.markdown.exportPdf\": \"Export as PDF\",\n \"genui.markdown.exportImage\": \"Export as Image\",\n \"genui.markdown.copiedToClipboard\": \"Copied to clipboard\",\n \"genui.markdown.generatingImage\": \"Generating image...\",\n \"genui.markdown.imageExported\": \"Image exported successfully\",\n \"genui.markdown.imageExportFailed\": \"Failed to generate image\",\n \"genui.markdown.generatingPdf\": \"Generating PDF...\",\n \"genui.markdown.pdfExported\": \"PDF exported successfully\",\n \"genui.markdown.pdfExportFailed\": \"Failed to generate PDF\",\n \"genui.file.loadFailed\": \"Failed to load file\",\n \"genui.file.loadFailedStatus\": \"Failed: {{status}}\",\n \"genui.file.unknown\": \"Unknown file\",\n \"genui.file.downloadFile\": \"Download File\",\n \"genui.file.audioUnsupported\": \"Your browser does not support the audio element.\",\n \"genui.file.videoUnsupported\": \"Your browser does not support the video element.\",\n \"genui.fileExplorer.selectToPreview\": \"Select a file to preview\",\n \"genui.fileExplorer.root\": \"<root>\",\n \"genui.embed.defaultTitle\": \"Embedded File\",\n \"genui.embed.invalidConfig\": \"Invalid embed configuration\",\n \"genui.embed.invalidConfigHint\": \"Please provide a valid file path or URL\",\n \"genui.attachment.download\": \"Download\",\n \"genui.attachment.downloadNamed\": \"Download {{name}}\",\n \"genui.attachment.preview\": \"Preview: {{name}}\",\n \"genui.attachment.previewUnsupported\": \"Preview not supported. Please download to view.\",\n \"genui.attachment.showLess\": \"Show Less\",\n \"genui.attachment.showMore\": \"Show More ({{count}})\",\n \"genui.attachment.containsFiles\": \"Contains {{count}} file(s)\",\n \"genui.dataTable.exportCsv\": \"Export CSV\",\n \"genui.dataTable.expand\": \"Expand\",\n \"genui.dataTable.details\": \"Details:\",\n \"genui.dataTable.subTableData\": \"Sub-table Data:\",\n \"genui.search.query\": \"Search: \\\"{{query}}\\\"\",\n \"genui.search.collection\": \"Collection: {{collection}}\",\n \"genui.search.more\": \"more\",\n \"genui.search.score\": \"Score: {{score}}\",\n \"genui.chart.dataDetails\": \"Data Details\",\n \"genui.chart.title\": \"Chart\",\n \"genui.chart.seriesDefault\": \"Series {{n}}\",\n \"genui.chart.itemDefault\": \"Item {{n}}\",\n \"genui.chart.countSeries\": \"Count\",\n \"genui.hitl.pendingFeedback\": \"Pending Feedback\",\n \"genui.pending.count\": \"{{count}} pending\",\n \"genui.pending.sendNow\": \"Send now\",\n \"genui.pending.deleted\": \"Message deleted\",\n \"genui.pending.sendFailed\": \"Failed to send, please retry\",\n \"genui.pending.deleteFailed\": \"Failed to delete, please retry\",\n \"genui.contentPreview.showAll\": \"Show all content\",\n \"genui.contentPreview.showLess\": \"Show less\",\n \"genui.executeCode.title\": \"Execute Code\",\n \"genui.executeCode.codeView\": \"Code View\",\n \"genui.editFile.title\": \"Edit\",\n \"genui.editFile.diffView\": \"Diff View\",\n \"genui.writeFile.title\": \"New\",\n \"genui.writeFile.diffView\": \"Diff View\",\n \"genui.internetSearch.title\": \"Internet Search\",\n \"genui.browserView.viewBrowser\": \"View Browser\",\n \"genui.confirm.reject\": \"Reject\",\n \"genui.showWidget.defaultTitle\": \"Widget\",\n \"genui.showWidget.openInSideApp\": \"Open in side app\",\n \"genui.toolCall.response\": \"Response:\",\n \"genui.toolCall.parseArgsFailed\": \"Error parsing args\",\n \"genui.toolCard.invalidData\": \"Invalid tool data\",\n \"genui.toolCard.parameters\": \"Parameters ({{count}})\",\n \"genui.toolCard.noParameters\": \"No parameters\",\n \"genui.clarify.submitted\": \"Answers submitted\",\n \"genui.clarify.noQuestions\": \"No questions available\",\n \"genui.clarify.questionProgress\": \"Question {{current}} of {{total}}\",\n \"genui.clarify.answerPlaceholder\": \"Enter your answer...\",\n \"genui.clarify.otherOption\": \"Other (please specify)\",\n \"genui.clarify.uploadHint\": \"Click or drag file to this area to upload\",\n \"genui.clarify.uploaded\": \"Uploaded: {{name}}\",\n \"genui.clarify.uploadPending\": \"File will be uploaded to the sandbox\",\n \"genui.clarify.previous\": \"Previous\",\n \"genui.clarify.skip\": \"Skip\",\n \"genui.todos.title\": \"TODOs\",\n \"genui.todos.done\": \"{{completed}}/{{total}} Done\",\n \"genui.todo.empty\": \"No todo items available\",\n \"genui.todo.collapse\": \"Collapse\",\n \"genui.todo.showAll\": \"Show all {{count}} items ({{hidden}} hidden)\",\n \"genui.todo.summary\": \"Total items: {{total}} | Completed: {{completed}} | In Progress: {{inProgress}} | Pending: {{pending}}\",\n \"genui.taskBoard.title\": \"Task Board\",\n \"genui.taskBoard.subtitle\": \"Track team progress and task status\",\n \"genui.taskBoard.addTask\": \"Add Task\",\n \"genui.taskBoard.emptyColumn\": \"No tasks\",\n \"genui.taskBoardCard.deps\": \"Deps:\",\n \"genui.taskBoardCard.none\": \"none\",\n \"genui.taskCard.untitled\": \"Task\",\n \"genui.taskCard.response\": \"Response\",\n \"genui.taskCard.dispatchFailed\": \"Task dispatch failed\",\n \"genui.taskCard.dispatched\": \"Dispatched to the project queue\",\n \"genui.taskCard.running\": \"Running…\",\n \"genui.taskReview.legacyTitle\": \"Legacy task review\",\n \"genui.taskReview.legacyHint\": \"Open the associated agent conversation to continue if a thread is available.\",\n \"genui.taskReview.readyTitle\": \"Task Ready for Review\",\n \"genui.taskReview.submitted\": \"Review submitted. Waiting for agent to process...\",\n \"genui.taskReview.submitFailed\": \"Review could not be submitted. Please try again.\",\n \"genui.taskReview.result\": \"Result:\",\n \"genui.taskReview.requestChangesLabel\": \"Request Changes — Feedback:\",\n \"genui.taskReview.feedbackPlaceholder\": \"Describe what needs to be changed...\",\n \"genui.taskReview.approve\": \"Approve\",\n \"genui.taskReview.requestChanges\": \"Request Changes\",\n \"genui.taskReview.approvedMessage\": \"Task approved\",\n \"genui.taskReview.changesRequestedMessage\": \"Changes requested: {{note}}\",\n \"genui.taskManage.verb.create\": \"CREATE TASK\",\n \"genui.taskManage.verb.update\": \"UPDATE TASK\",\n \"genui.taskManage.verb.setStatus\": \"SET STATUS\",\n \"genui.taskManage.verb.list\": \"LIST TASKS\",\n \"genui.taskManage.verb.delete\": \"DELETE TASK\",\n \"genui.taskManage.verb.fallback\": \"MANAGE TASK\",\n \"genui.taskManage.verb.get\": \"GET TASK\",\n \"genui.taskManage.verb.getShort\": \"TASK\",\n \"genui.taskManage.verb.addActivity\": \"ADD ACTIVITY\",\n \"genui.taskManage.listTitle\": \"TASK LIST\",\n \"genui.taskManage.activity\": \"ACTIVITY\",\n \"genui.taskManage.countOne\": \"task\",\n \"genui.taskManage.countOther\": \"tasks\",\n \"genui.taskManage.deleted\": \"Deleted task\",\n \"genui.taskManage.failed\": \"manage_task failed\",\n \"genui.taskManage.review\": \"Review {{action}}\",\n \"genui.taskManage.more\": \"+{{count}} more\",\n \"genui.taskManage.stat.priority\": \"priority\",\n \"genui.taskManage.stat.status\": \"status\",\n \"genui.taskManage.stat.deps\": \"deps\",\n \"genui.taskManage.stat.tasks\": \"tasks\",\n \"genui.taskManage.stat.inProgress\": \"in progress\",\n \"genui.taskManage.stat.completed\": \"completed\",\n \"genui.taskManage.inProgressCompleted\": \"{{inProgress}} in progress · {{completed}} completed\",\n \"genui.evalCard.report\": \"TEST REPORT\",\n \"genui.evalCard.passRate\": \"pass rate\",\n \"genui.evalCard.passed\": \"passed\",\n \"genui.evalCard.failed\": \"failed\",\n \"genui.evalCard.avgScore\": \"avg score\",\n \"genui.evalCard.interrupted\": \"{{count}} interrupted\",\n \"genui.evalCard.holdoutNotice\": \"Hold-out run — per-case results withheld. Aggregates only.\",\n \"genui.evalCard.noFailingCases\": \"No failing cases\",\n \"genui.evalCard.noResults\": \"No results yet\",\n \"genui.evalCard.unknownCase\": \"unknown case\",\n \"genui.evalCard.unknownSuite\": \"Unknown\",\n \"genui.evalCard.readFailed\": \"read_eval failed\",\n \"genui.evalManage.verb.create\": \"Create\",\n \"genui.evalManage.verb.update\": \"Update\",\n \"genui.evalManage.projectTitle\": \"{{verb}} Evaluation Project\",\n \"genui.evalManage.suiteTitle\": \"{{verb}} Test Suite\",\n \"genui.evalManage.caseTitle\": \"{{verb}} Test Case\",\n \"genui.evalManage.defaultProject\": \"Eval Project\",\n \"genui.evalManage.defaultSuite\": \"Eval Suite\",\n \"genui.evalManage.deletedProject\": \"Deleted evaluation project\",\n \"genui.evalManage.deletedSuite\": \"Deleted test suite\",\n \"genui.evalManage.deletedCase\": \"Deleted test case\",\n \"genui.evalManage.stepCount\": \"{{count}} step{{s}}\",\n \"genui.evalManage.rubricCount\": \"{{count}} rubric{{s}}\",\n \"genui.evalManage.stat.cases\": \"cases\",\n \"genui.evalManage.stat.suites\": \"suites\",\n \"genui.evalManage.stat.runs\": \"runs\",\n \"genui.evalManage.stat.passRate\": \"pass rate\",\n \"genui.evalManage.stat.latestPass\": \"latest pass\",\n \"genui.evalManage.stat.latestRun\": \"latest run\",\n \"genui.evalManage.failed\": \"manage_eval failed\",\n \"genui.evalRun.title.start\": \"START TEST RUN\",\n \"genui.evalRun.title.resume\": \"RESUME TEST RUN\",\n \"genui.evalRun.title.status\": \"CHECK TEST STATUS\",\n \"genui.evalRun.title.abort\": \"ABORT TEST RUN\",\n \"genui.evalRun.syncCall\": \"Sync call\",\n \"genui.evalRun.asyncTask\": \"Async task\",\n \"genui.evalRun.passRateInline\": \"{{rate}}% pass\",\n \"genui.evalRun.passedCount\": \"{{count}} passed\",\n \"genui.evalRun.failedCount\": \"{{count}} failed\",\n \"genui.evalRun.avgInline\": \"avg {{score}}\",\n \"genui.evalRun.casesProgress\": \"{{completed}}/{{total}} cases\",\n \"genui.evalRun.aborted\": \"✓ Run aborted\",\n \"genui.evalRun.abortFailed\": \"✗ Abort failed\",\n \"genui.evalRun.stat.passRate\": \"pass rate\",\n \"genui.evalRun.stat.passed\": \"passed\",\n \"genui.evalRun.stat.failed\": \"failed\",\n \"genui.evalRun.stat.avgScore\": \"avg score\",\n \"genui.evalRun.failed\": \"run_eval failed\",\n \"genui.schedule.title\": \"Scheduled Tasks\",\n \"genui.schedule.loading\": \"Loading scheduled tasks...\",\n \"genui.schedule.empty\": \"No scheduled tasks for this thread\",\n \"genui.schedule.pause\": \"Pause\",\n \"genui.schedule.resume\": \"Resume\",\n \"genui.schedule.cancel\": \"Cancel\",\n \"genui.schedule.cancelConfirm\": \"Cancel this scheduled task?\",\n \"genui.schedule.irreversible\": \"This action cannot be undone.\",\n \"genui.schedule.executionType\": \"Execution Type\",\n \"genui.schedule.recurring\": \"Recurring\",\n \"genui.schedule.oneTime\": \"One-time\",\n \"genui.schedule.cronExpression\": \"Cron Expression\",\n \"genui.schedule.nextRunTooltip\": \"Next run: {{time}}\",\n \"genui.schedule.nextRun\": \"Next: {{time}}\",\n \"genui.schedule.executeAtTooltip\": \"Execute at: {{time}}\",\n \"genui.schedule.executeAt\": \"At: {{time}}\",\n \"genui.schedule.runCount\": \"Run count\",\n \"genui.schedule.runs\": \"Runs: {{count}}\",\n \"genui.schedule.refreshFailed\": \"Failed to refresh scheduled tasks\",\n \"genui.schedule.cancelled\": \"Task cancelled successfully\",\n \"genui.schedule.cancelFailed\": \"Failed to cancel task\",\n \"genui.schedule.paused\": \"Task paused successfully\",\n \"genui.schedule.pauseFailed\": \"Failed to pause task\",\n \"genui.schedule.resumed\": \"Task resumed successfully\",\n \"genui.schedule.resumeFailed\": \"Failed to resume task\",\n \"genui.mailbox.title\": \"Mailbox\",\n \"genui.mailbox.empty\": \"No messages\",\n \"genui.mailbox.summary\": \"{{messages}} messages • {{senders}} senders\",\n \"genui.mailbox.unreadSuffix\": \" • {{count}} unread\",\n \"genui.mailbox.messageCount\": \"{{count}} messages\",\n \"genui.mailbox.unreadCount\": \"({{count}} unread)\",\n \"genui.mailbox.toLine\": \"To: {{to}} • {{type}}\",\n \"genui.mailbox.unread\": \"Unread\",\n \"genui.mailbox.messageFrom\": \"Message from {{from}}\",\n \"genui.mailbox.messageContent\": \"Message Content\",\n \"genui.mailbox.field.from\": \"From\",\n \"genui.mailbox.field.to\": \"To\",\n \"genui.mailbox.field.time\": \"Time\",\n \"genui.mailbox.field.type\": \"Type\",\n \"genui.teamChat.defaultName\": \"Team Chat\",\n \"genui.teamChat.memberCount\": \"{{count}} member{{s}}\",\n \"genui.teamChat.teamMembers\": \"Team Members\",\n \"genui.teamChat.you\": \"You\",\n \"genui.teamChat.youSuffix\": \"(You)\",\n \"genui.teamChat.inputPlaceholder\": \"Type a message... (@mention someone)\",\n \"genui.teamChat.send\": \"Send\",\n \"genui.teamMember.defaultName\": \"Team Member\",\n \"genui.teamGraph.workbench\": \"Workbench\",\n \"genui.teamGraph.unnamed\": \"Unnamed\",\n \"genui.teamGraph.unknownRole\": \"unknown\",\n \"genui.teamGraph.pendingTasks\": \"Pending Tasks ({{count}})\",\n \"genui.teamMenu.dashboard\": \"Dashboard\",\n \"genui.teamMenu.inbox\": \"Inbox\",\n \"genui.teamMenu.issues\": \"Issues\",\n \"genui.teamMenu.org\": \"Org\",\n \"genui.teamMenu.groupTeammates\": \"Teammates\",\n \"genui.teamMenu.groupTeam\": \"Team\",\n \"genui.teamMenu.expand\": \"Expand\",\n \"genui.teamMenu.collapse\": \"Collapse\",\n \"genui.teamDashboard.title\": \"Team Dashboard\",\n \"genui.teamDashboard.subtitle\": \"Overview of team activities and tasks\",\n \"genui.teamDashboard.teamSummary\": \"Team ID: {{teamId}} • {{tasks}} tasks • {{activities}} activities\",\n \"genui.teamDashboard.totalTasks\": \"Total Tasks\",\n \"genui.teamDashboard.activities\": \"Activities\",\n \"genui.teamDashboard.recentActivities\": \"Recent Activities\",\n \"genui.teamDashboard.noRecentActivities\": \"No recent activities\",\n \"genui.teamDashboard.recentTasks\": \"Recent Tasks\",\n \"genui.teamDashboard.noRecentTasks\": \"No recent tasks\",\n \"genui.teamDashboard.broadcast\": \"[broadcast]\",\n \"genui.issues.title\": \"Issues\",\n \"genui.issues.summary\": \"{{tasks}} tasks • Team: {{teamId}}\",\n \"genui.issues.noAssignee\": \"No assignee\",\n \"genui.issues.noIssuesFound\": \"No issues found\",\n \"genui.teamOrg.title\": \"Team Organization\",\n \"genui.teamOrg.summary\": \"{{members}} members • {{tasks}} tasks\",\n \"genui.teamOrg.legend\": \"Legend\",\n \"genui.teamOrg.lead\": \"Lead\",\n \"genui.teamOrg.teamLead\": \"Team Lead\",\n \"genui.teamOrg.teammate\": \"Teammate\",\n \"genui.teamOrg.legendCompleted\": \"✓ Completed\",\n \"genui.teamOrg.legendInProgress\": \"⟳ In Progress\",\n \"genui.teamOrg.legendPending\": \"○ Pending\",\n \"genui.taskDetail.statusUpdated\": \"Status Updated\",\n \"genui.taskDetail.taskCreatedTitle\": \"Task Created\",\n \"genui.taskDetail.changedTo\": \"Changed to {{status}} on {{date}}\",\n \"genui.taskDetail.changedStatus\": \"Changed status to {{status}}\",\n \"genui.taskDetail.taskCreated\": \"Task created\",\n \"genui.taskDetail.noComments\": \"No comments yet\",\n \"genui.taskDetail.result\": \"Result\",\n \"genui.taskDetail.error\": \"Error\",\n \"genui.taskDetail.systemAuthor\": \"System\",\n \"genui.taskDetail.comments\": \"Comments\",\n \"genui.taskDetail.activity\": \"Activity\",\n \"genui.taskDetail.field.status\": \"Status\",\n \"genui.taskDetail.field.assignee\": \"Assignee\",\n \"genui.taskDetail.field.created\": \"Created\",\n \"genui.taskDetail.field.updated\": \"Updated\",\n \"genui.taskDetail.unassigned\": \"Unassigned\",\n \"genui.taskDetail.dependencies\": \"Dependencies\",\n \"genui.streamingHtml.defaultTitle\": \"Streaming HTML Content\"\n }\n}\n","{\n \"messages\": {\n \"genui.taskStatus.pending\": \"待处理\",\n \"genui.taskStatus.inProgress\": \"进行中\",\n \"genui.taskStatus.claimed\": \"已认领\",\n \"genui.taskStatus.completed\": \"已完成\",\n \"genui.taskStatus.failed\": \"失败\",\n \"genui.date.justNow\": \"刚刚\",\n \"genui.date.justNowLower\": \"刚刚\",\n \"genui.date.yesterday\": \"昨天\",\n \"genui.date.yesterdayLower\": \"昨天\",\n \"genui.date.minutesAgo\": \"{{count}} 分钟前\",\n \"genui.date.hoursAgo\": \"{{count}} 小时前\",\n \"genui.date.daysAgo\": \"{{count}} 天前\",\n \"genui.share.action\": \"分享\",\n \"genui.share.title\": \"分享资源\",\n \"genui.share.revokeConfirm\": \"撤销此分享?\",\n \"genui.share.empty\": \"暂无有效分享\",\n \"genui.share.createNew\": \"新建分享\",\n \"genui.share.create\": \"创建分享\",\n \"genui.share.createFailed\": \"创建分享失败\",\n \"genui.share.revoked\": \"分享已撤销\",\n \"genui.share.revokeFailed\": \"撤销失败\",\n \"genui.share.open\": \"打开\",\n \"genui.share.backToShares\": \"返回分享列表\",\n \"genui.share.clipboardPassword\": \"密码:{{password}}\",\n \"genui.share.clipboardPasswordProtected\": \"密码保护\",\n \"genui.share.field.title\": \"标题\",\n \"genui.share.field.visibility\": \"可见性\",\n \"genui.share.field.password\": \"密码\",\n \"genui.share.field.expires\": \"有效期\",\n \"genui.share.field.maxAccess\": \"最大访问次数(留空表示不限)\",\n \"genui.share.visibility.public\": \"公开\",\n \"genui.share.visibility.password\": \"密码\",\n \"genui.share.expiresValue\": \"有效期至:{{value}}\",\n \"genui.share.expiry.never\": \"永不过期\",\n \"genui.share.expiry.1h\": \"1 小时\",\n \"genui.share.expiry.24h\": \"24 小时\",\n \"genui.share.expiry.7d\": \"7 天\",\n \"genui.share.expiry.30d\": \"30 天\",\n \"genui.markdown.copyContent\": \"复制内容\",\n \"genui.markdown.downloadFile\": \"下载文件\",\n \"genui.markdown.exportPdf\": \"导出为 PDF\",\n \"genui.markdown.exportImage\": \"导出为图片\",\n \"genui.markdown.copiedToClipboard\": \"已复制到剪贴板\",\n \"genui.markdown.generatingImage\": \"正在生成图片...\",\n \"genui.markdown.imageExported\": \"图片导出成功\",\n \"genui.markdown.imageExportFailed\": \"生成图片失败\",\n \"genui.markdown.generatingPdf\": \"正在生成 PDF...\",\n \"genui.markdown.pdfExported\": \"PDF 导出成功\",\n \"genui.markdown.pdfExportFailed\": \"生成 PDF 失败\",\n \"genui.file.loadFailed\": \"文件加载失败\",\n \"genui.file.loadFailedStatus\": \"加载失败:{{status}}\",\n \"genui.file.unknown\": \"未知文件\",\n \"genui.file.downloadFile\": \"下载文件\",\n \"genui.file.audioUnsupported\": \"您的浏览器不支持音频元素。\",\n \"genui.file.videoUnsupported\": \"您的浏览器不支持视频元素。\",\n \"genui.fileExplorer.selectToPreview\": \"选择一个文件以预览\",\n \"genui.fileExplorer.root\": \"<根目录>\",\n \"genui.embed.defaultTitle\": \"嵌入文件\",\n \"genui.embed.invalidConfig\": \"嵌入配置无效\",\n \"genui.embed.invalidConfigHint\": \"请提供有效的文件路径或 URL\",\n \"genui.attachment.download\": \"下载\",\n \"genui.attachment.downloadNamed\": \"下载 {{name}}\",\n \"genui.attachment.preview\": \"预览:{{name}}\",\n \"genui.attachment.previewUnsupported\": \"暂不支持预览,请下载后查看。\",\n \"genui.attachment.showLess\": \"收起\",\n \"genui.attachment.showMore\": \"显示更多({{count}})\",\n \"genui.attachment.containsFiles\": \"包含 {{count}} 个文件\",\n \"genui.dataTable.exportCsv\": \"导出 CSV\",\n \"genui.dataTable.expand\": \"展开\",\n \"genui.dataTable.details\": \"详情:\",\n \"genui.dataTable.subTableData\": \"子表数据:\",\n \"genui.search.query\": \"搜索:\\\"{{query}}\\\"\",\n \"genui.search.collection\": \"集合:{{collection}}\",\n \"genui.search.more\": \"更多\",\n \"genui.search.score\": \"评分:{{score}}\",\n \"genui.chart.dataDetails\": \"数据详情\",\n \"genui.chart.title\": \"图表\",\n \"genui.chart.seriesDefault\": \"系列 {{n}}\",\n \"genui.chart.itemDefault\": \"条目 {{n}}\",\n \"genui.chart.countSeries\": \"数量\",\n \"genui.hitl.pendingFeedback\": \"待处理反馈\",\n \"genui.pending.count\": \"{{count}} 条待发送\",\n \"genui.pending.sendNow\": \"立即发送\",\n \"genui.pending.deleted\": \"消息已删除\",\n \"genui.pending.sendFailed\": \"发送失败,请重试\",\n \"genui.pending.deleteFailed\": \"删除失败,请重试\",\n \"genui.contentPreview.showAll\": \"展开全部内容\",\n \"genui.contentPreview.showLess\": \"收起\",\n \"genui.executeCode.title\": \"执行代码\",\n \"genui.executeCode.codeView\": \"代码视图\",\n \"genui.editFile.title\": \"编辑\",\n \"genui.editFile.diffView\": \"差异视图\",\n \"genui.writeFile.title\": \"新建\",\n \"genui.writeFile.diffView\": \"差异视图\",\n \"genui.internetSearch.title\": \"联网搜索\",\n \"genui.browserView.viewBrowser\": \"查看浏览器\",\n \"genui.confirm.reject\": \"拒绝\",\n \"genui.showWidget.defaultTitle\": \"小组件\",\n \"genui.showWidget.openInSideApp\": \"在侧边应用打开\",\n \"genui.toolCall.response\": \"响应:\",\n \"genui.toolCall.parseArgsFailed\": \"参数解析错误\",\n \"genui.toolCard.invalidData\": \"工具数据无效\",\n \"genui.toolCard.parameters\": \"参数({{count}})\",\n \"genui.toolCard.noParameters\": \"无参数\",\n \"genui.clarify.submitted\": \"答案已提交\",\n \"genui.clarify.noQuestions\": \"暂无问题\",\n \"genui.clarify.questionProgress\": \"第 {{current}} 题,共 {{total}} 题\",\n \"genui.clarify.answerPlaceholder\": \"请输入您的回答...\",\n \"genui.clarify.otherOption\": \"其他(请说明)\",\n \"genui.clarify.uploadHint\": \"点击或拖拽文件到此区域上传\",\n \"genui.clarify.uploaded\": \"已上传:{{name}}\",\n \"genui.clarify.uploadPending\": \"文件将上传至沙箱\",\n \"genui.clarify.previous\": \"上一步\",\n \"genui.clarify.skip\": \"跳过\",\n \"genui.todos.title\": \"待办事项\",\n \"genui.todos.done\": \"{{completed}}/{{total}} 已完成\",\n \"genui.todo.empty\": \"暂无待办事项\",\n \"genui.todo.collapse\": \"收起\",\n \"genui.todo.showAll\": \"显示全部 {{count}} 项(另有 {{hidden}} 项未显示)\",\n \"genui.todo.summary\": \"共 {{total}} 项 | 已完成:{{completed}} | 进行中:{{inProgress}} | 待处理:{{pending}}\",\n \"genui.taskBoard.title\": \"任务看板\",\n \"genui.taskBoard.subtitle\": \"跟踪团队进度与任务状态\",\n \"genui.taskBoard.addTask\": \"添加任务\",\n \"genui.taskBoard.emptyColumn\": \"暂无任务\",\n \"genui.taskBoardCard.deps\": \"依赖:\",\n \"genui.taskBoardCard.none\": \"无\",\n \"genui.taskCard.untitled\": \"任务\",\n \"genui.taskCard.response\": \"响应\",\n \"genui.taskCard.dispatchFailed\": \"任务派发失败\",\n \"genui.taskCard.dispatched\": \"已进入项目队列\",\n \"genui.taskCard.running\": \"运行中…\",\n \"genui.taskReview.legacyTitle\": \"旧版任务审核\",\n \"genui.taskReview.legacyHint\": \"如有可用会话,请打开关联的智能体对话以继续。\",\n \"genui.taskReview.readyTitle\": \"任务待审核\",\n \"genui.taskReview.submitted\": \"审核已提交,正在等待智能体处理...\",\n \"genui.taskReview.submitFailed\": \"审核提交失败,请重试。\",\n \"genui.taskReview.result\": \"结果:\",\n \"genui.taskReview.requestChangesLabel\": \"请求修改 —— 反馈:\",\n \"genui.taskReview.feedbackPlaceholder\": \"请描述需要修改的内容...\",\n \"genui.taskReview.approve\": \"通过\",\n \"genui.taskReview.requestChanges\": \"请求修改\",\n \"genui.taskReview.approvedMessage\": \"任务已通过\",\n \"genui.taskReview.changesRequestedMessage\": \"已请求修改:{{note}}\",\n \"genui.taskManage.verb.create\": \"创建任务\",\n \"genui.taskManage.verb.update\": \"更新任务\",\n \"genui.taskManage.verb.setStatus\": \"设置状态\",\n \"genui.taskManage.verb.list\": \"任务列表\",\n \"genui.taskManage.verb.delete\": \"删除任务\",\n \"genui.taskManage.verb.fallback\": \"管理任务\",\n \"genui.taskManage.verb.get\": \"获取任务\",\n \"genui.taskManage.verb.getShort\": \"任务\",\n \"genui.taskManage.verb.addActivity\": \"添加动态\",\n \"genui.taskManage.listTitle\": \"任务列表\",\n \"genui.taskManage.activity\": \"动态\",\n \"genui.taskManage.countOne\": \"个任务\",\n \"genui.taskManage.countOther\": \"个任务\",\n \"genui.taskManage.deleted\": \"已删除任务\",\n \"genui.taskManage.failed\": \"manage_task 执行失败\",\n \"genui.taskManage.review\": \"审核{{action}}\",\n \"genui.taskManage.more\": \"另有 {{count}} 项\",\n \"genui.taskManage.stat.priority\": \"优先级\",\n \"genui.taskManage.stat.status\": \"状态\",\n \"genui.taskManage.stat.deps\": \"依赖\",\n \"genui.taskManage.stat.tasks\": \"任务\",\n \"genui.taskManage.stat.inProgress\": \"进行中\",\n \"genui.taskManage.stat.completed\": \"已完成\",\n \"genui.taskManage.inProgressCompleted\": \"{{inProgress}} 个进行中 · {{completed}} 个已完成\",\n \"genui.evalCard.report\": \"测试报告\",\n \"genui.evalCard.passRate\": \"通过率\",\n \"genui.evalCard.passed\": \"通过\",\n \"genui.evalCard.failed\": \"失败\",\n \"genui.evalCard.avgScore\": \"平均分\",\n \"genui.evalCard.interrupted\": \"{{count}} 个已中断\",\n \"genui.evalCard.holdoutNotice\": \"留出集运行 —— 逐用例结果已隐藏,仅显示汇总数据。\",\n \"genui.evalCard.noFailingCases\": \"无失败用例\",\n \"genui.evalCard.noResults\": \"暂无结果\",\n \"genui.evalCard.unknownCase\": \"未知用例\",\n \"genui.evalCard.unknownSuite\": \"未知\",\n \"genui.evalCard.readFailed\": \"read_eval 执行失败\",\n \"genui.evalManage.verb.create\": \"创建\",\n \"genui.evalManage.verb.update\": \"更新\",\n \"genui.evalManage.projectTitle\": \"{{verb}}评测项目\",\n \"genui.evalManage.suiteTitle\": \"{{verb}}评测套件\",\n \"genui.evalManage.caseTitle\": \"{{verb}}评测用例\",\n \"genui.evalManage.defaultProject\": \"评测项目\",\n \"genui.evalManage.defaultSuite\": \"评测套件\",\n \"genui.evalManage.deletedProject\": \"已删除评测项目\",\n \"genui.evalManage.deletedSuite\": \"已删除评测套件\",\n \"genui.evalManage.deletedCase\": \"已删除评测用例\",\n \"genui.evalManage.stepCount\": \"{{count}} 个步骤\",\n \"genui.evalManage.rubricCount\": \"{{count}} 条评分标准\",\n \"genui.evalManage.stat.cases\": \"用例\",\n \"genui.evalManage.stat.suites\": \"套件\",\n \"genui.evalManage.stat.runs\": \"运行\",\n \"genui.evalManage.stat.passRate\": \"通过率\",\n \"genui.evalManage.stat.latestPass\": \"最近通过率\",\n \"genui.evalManage.stat.latestRun\": \"最近运行\",\n \"genui.evalManage.failed\": \"manage_eval 执行失败\",\n \"genui.evalRun.title.start\": \"启动测试运行\",\n \"genui.evalRun.title.resume\": \"恢复测试运行\",\n \"genui.evalRun.title.status\": \"查看测试状态\",\n \"genui.evalRun.title.abort\": \"中止测试运行\",\n \"genui.evalRun.syncCall\": \"同步调用\",\n \"genui.evalRun.asyncTask\": \"异步任务\",\n \"genui.evalRun.passRateInline\": \"{{rate}}% 通过\",\n \"genui.evalRun.passedCount\": \"{{count}} 个通过\",\n \"genui.evalRun.failedCount\": \"{{count}} 个失败\",\n \"genui.evalRun.avgInline\": \"平均 {{score}}\",\n \"genui.evalRun.casesProgress\": \"{{completed}}/{{total}} 用例\",\n \"genui.evalRun.aborted\": \"✓ 运行已中止\",\n \"genui.evalRun.abortFailed\": \"✗ 中止失败\",\n \"genui.evalRun.stat.passRate\": \"通过率\",\n \"genui.evalRun.stat.passed\": \"通过\",\n \"genui.evalRun.stat.failed\": \"失败\",\n \"genui.evalRun.stat.avgScore\": \"平均分\",\n \"genui.evalRun.failed\": \"run_eval 执行失败\",\n \"genui.schedule.title\": \"定时任务\",\n \"genui.schedule.loading\": \"正在加载定时任务...\",\n \"genui.schedule.empty\": \"此会话暂无定时任务\",\n \"genui.schedule.pause\": \"暂停\",\n \"genui.schedule.resume\": \"恢复\",\n \"genui.schedule.cancel\": \"取消\",\n \"genui.schedule.cancelConfirm\": \"取消此定时任务?\",\n \"genui.schedule.irreversible\": \"此操作无法撤销。\",\n \"genui.schedule.executionType\": \"执行类型\",\n \"genui.schedule.recurring\": \"周期性\",\n \"genui.schedule.oneTime\": \"单次\",\n \"genui.schedule.cronExpression\": \"Cron 表达式\",\n \"genui.schedule.nextRunTooltip\": \"下次运行:{{time}}\",\n \"genui.schedule.nextRun\": \"下次:{{time}}\",\n \"genui.schedule.executeAtTooltip\": \"执行时间:{{time}}\",\n \"genui.schedule.executeAt\": \"时间:{{time}}\",\n \"genui.schedule.runCount\": \"运行次数\",\n \"genui.schedule.runs\": \"已运行:{{count}}\",\n \"genui.schedule.refreshFailed\": \"刷新定时任务失败\",\n \"genui.schedule.cancelled\": \"任务已取消\",\n \"genui.schedule.cancelFailed\": \"取消任务失败\",\n \"genui.schedule.paused\": \"任务已暂停\",\n \"genui.schedule.pauseFailed\": \"暂停任务失败\",\n \"genui.schedule.resumed\": \"任务已恢复\",\n \"genui.schedule.resumeFailed\": \"恢复任务失败\",\n \"genui.mailbox.title\": \"收件箱\",\n \"genui.mailbox.empty\": \"暂无消息\",\n \"genui.mailbox.summary\": \"{{messages}} 条消息 • {{senders}} 位发送者\",\n \"genui.mailbox.unreadSuffix\": \" • {{count}} 条未读\",\n \"genui.mailbox.messageCount\": \"{{count}} 条消息\",\n \"genui.mailbox.unreadCount\": \"({{count}} 条未读)\",\n \"genui.mailbox.toLine\": \"收件人:{{to}} • {{type}}\",\n \"genui.mailbox.unread\": \"未读\",\n \"genui.mailbox.messageFrom\": \"来自 {{from}} 的消息\",\n \"genui.mailbox.messageContent\": \"消息内容\",\n \"genui.mailbox.field.from\": \"发件人\",\n \"genui.mailbox.field.to\": \"收件人\",\n \"genui.mailbox.field.time\": \"时间\",\n \"genui.mailbox.field.type\": \"类型\",\n \"genui.teamChat.defaultName\": \"团队聊天\",\n \"genui.teamChat.memberCount\": \"{{count}} 名成员\",\n \"genui.teamChat.teamMembers\": \"团队成员\",\n \"genui.teamChat.you\": \"你\",\n \"genui.teamChat.youSuffix\": \"(你)\",\n \"genui.teamChat.inputPlaceholder\": \"输入消息...(@提及某人)\",\n \"genui.teamChat.send\": \"发送\",\n \"genui.teamMember.defaultName\": \"团队成员\",\n \"genui.teamGraph.workbench\": \"工作台\",\n \"genui.teamGraph.unnamed\": \"未命名\",\n \"genui.teamGraph.unknownRole\": \"未知\",\n \"genui.teamGraph.pendingTasks\": \"待处理任务({{count}})\",\n \"genui.teamMenu.dashboard\": \"仪表盘\",\n \"genui.teamMenu.inbox\": \"收件箱\",\n \"genui.teamMenu.issues\": \"任务列表\",\n \"genui.teamMenu.org\": \"组织架构\",\n \"genui.teamMenu.groupTeammates\": \"团队成员\",\n \"genui.teamMenu.groupTeam\": \"团队\",\n \"genui.teamMenu.expand\": \"展开\",\n \"genui.teamMenu.collapse\": \"收起\",\n \"genui.teamDashboard.title\": \"团队仪表盘\",\n \"genui.teamDashboard.subtitle\": \"团队活动与任务概览\",\n \"genui.teamDashboard.teamSummary\": \"团队 ID:{{teamId}} • {{tasks}} 个任务 • {{activities}} 条动态\",\n \"genui.teamDashboard.totalTasks\": \"任务总数\",\n \"genui.teamDashboard.activities\": \"动态\",\n \"genui.teamDashboard.recentActivities\": \"最近动态\",\n \"genui.teamDashboard.noRecentActivities\": \"暂无最近动态\",\n \"genui.teamDashboard.recentTasks\": \"最近任务\",\n \"genui.teamDashboard.noRecentTasks\": \"暂无最近任务\",\n \"genui.teamDashboard.broadcast\": \"[广播]\",\n \"genui.issues.title\": \"任务列表\",\n \"genui.issues.summary\": \"{{tasks}} 个任务 • 团队:{{teamId}}\",\n \"genui.issues.noAssignee\": \"未指派\",\n \"genui.issues.noIssuesFound\": \"未找到任务\",\n \"genui.teamOrg.title\": \"团队组织架构\",\n \"genui.teamOrg.summary\": \"{{members}} 名成员 • {{tasks}} 个任务\",\n \"genui.teamOrg.legend\": \"图例\",\n \"genui.teamOrg.lead\": \"负责人\",\n \"genui.teamOrg.teamLead\": \"团队负责人\",\n \"genui.teamOrg.teammate\": \"团队成员\",\n \"genui.teamOrg.legendCompleted\": \"✓ 已完成\",\n \"genui.teamOrg.legendInProgress\": \"⟳ 进行中\",\n \"genui.teamOrg.legendPending\": \"○ 待处理\",\n \"genui.taskDetail.statusUpdated\": \"状态已更新\",\n \"genui.taskDetail.taskCreatedTitle\": \"任务已创建\",\n \"genui.taskDetail.changedTo\": \"{{date}} 变更为{{status}}\",\n \"genui.taskDetail.changedStatus\": \"状态变更为 {{status}}\",\n \"genui.taskDetail.taskCreated\": \"任务已创建\",\n \"genui.taskDetail.noComments\": \"暂无评论\",\n \"genui.taskDetail.result\": \"结果\",\n \"genui.taskDetail.error\": \"错误\",\n \"genui.taskDetail.systemAuthor\": \"系统\",\n \"genui.taskDetail.comments\": \"评论\",\n \"genui.taskDetail.activity\": \"动态\",\n \"genui.taskDetail.field.status\": \"状态\",\n \"genui.taskDetail.field.assignee\": \"负责人\",\n \"genui.taskDetail.field.created\": \"创建时间\",\n \"genui.taskDetail.field.updated\": \"更新时间\",\n \"genui.taskDetail.unassigned\": \"未指派\",\n \"genui.taskDetail.dependencies\": \"依赖项\",\n \"genui.streamingHtml.defaultTitle\": \"流式 HTML 内容\"\n }\n}\n","{\n \"messages\": {\n \"governance.deleteAgent\": \"Delete Agent\",\n \"governance.delete.irreversible\": \"This action cannot be undone.\",\n \"governance.list.title\": \"Agents\",\n \"governance.list.tab.all\": \"All\",\n \"governance.list.tab.capability\": \"Capability\",\n \"governance.list.tab.orchestrator\": \"Orchestrator\",\n \"governance.list.tab.team\": \"Team\",\n \"governance.list.tab.workflow\": \"Workflow\",\n \"governance.list.action.playground\": \"Playground\",\n \"governance.list.action.eval\": \"Eval\",\n \"governance.list.viewMode.graph\": \"Graph\",\n \"governance.list.filter.domain\": \"Domain\",\n \"governance.list.filter.allDomains\": \"All domains\",\n \"governance.list.filter.status\": \"Status\",\n \"governance.list.filter.allStatuses\": \"All statuses\",\n \"governance.list.status.enabled\": \"Enabled\",\n \"governance.list.status.draft\": \"Draft\",\n \"governance.list.status.disabled\": \"Disabled\",\n \"governance.list.typeIconTitle\": \"{{type}} agent\",\n \"governance.list.statusTooltip\": \"Status: {{status}}\",\n \"governance.list.create\": \"New Agent\",\n \"governance.list.emptyTitle\": \"No agents yet\",\n \"governance.list.emptyDescription\": \"Click \\\"New Agent\\\" to create one\",\n \"governance.workbench.loadFailed\": \"Failed to load agents\",\n \"governance.workbench.agentFallback\": \"Agent\",\n \"governance.detail.viewDescription\": \"View description\",\n \"governance.detail.testInPlayground\": \"Test in Playground\",\n \"governance.detail.evalSuite\": \"Eval Suite\",\n \"governance.detail.webApps\": \"Web Apps\",\n \"governance.detail.configuration\": \"Configuration\",\n \"governance.detail.playground\": \"Playground\",\n \"governance.detail.runResults\": \"Run Results\",\n \"governance.detail.loadFailed\": \"Failed to load agent\",\n \"governance.detail.saveFailed\": \"Failed to save agent\",\n \"governance.detail.deleteFailed\": \"Failed to delete agent\",\n \"governance.detail.deleted\": \"Agent deleted\",\n \"governance.detail.missingId\": \"Missing agent id\",\n \"governance.detail.notFound\": \"Agent not found\",\n \"governance.detail.backToList\": \"Back to list\",\n \"governance.detail.noDescription\": \"No description set.\",\n \"governance.detail.removeNodeSaveFailed\": \"Failed to save after removing node\",\n \"governance.detail.discardTitle\": \"Discard unsaved configuration?\",\n \"governance.detail.discardBody\": \"You have unsaved configuration changes. Discard them and continue?\",\n \"governance.detail.discard\": \"Discard\",\n \"governance.detail.continueEditing\": \"Continue editing\",\n \"governance.detail.deleteConfirm\": \"Are you sure you want to delete \\\"{{name}}\\\"? This action cannot be undone.\",\n \"governance.detail.listCardMessage\": \"Assistants\",\n \"governance.creation.title\": \"Choose how to create your agent\",\n \"governance.creation.subtitle\": \"Choose the path that best fits the agent you want to build.\",\n \"governance.creation.manual.title\": \"Manual Configuration\",\n \"governance.creation.manual.description\": \"Define the agent's identity, type, tools, and system prompt yourself.\",\n \"governance.creation.external.title\": \"External Agent\",\n \"governance.creation.external.description\": \"Connect an existing A2A-compatible agent by URL or manage a local runtime.\",\n \"governance.creation.learn.title\": \"Learn with Agent Architect\",\n \"governance.creation.learn.description\": \"Describe the goal and let Agent Architect build and evaluate the agent with training context.\",\n \"governance.creation.notNow\": \"Not now\",\n \"governance.dock.close\": \"Close dock\",\n \"governance.dock.resize\": \"Resize panel\",\n \"governance.overlay.runtime\": \"Runtime\",\n \"governance.overlay.runtimeChartTitle\": \"Click for 30-day chart\",\n \"governance.overlay.runtimePanel\": \"Runtime — last 30 days\",\n \"governance.overlay.threads\": \"threads\",\n \"governance.overlay.evalQuality\": \"Eval quality\",\n \"governance.overlay.evalChartTitle\": \"Click for score trend\",\n \"governance.overlay.learningWorkflow\": \"Learning workflow\",\n \"governance.overlay.stat.score\": \"score\",\n \"governance.overlay.stat.pass\": \"pass\",\n \"governance.overlay.stat.runs\": \"runs\",\n \"governance.overview.runtimeTitle\": \"Runtime\",\n \"governance.overview.runtimeSubtitle\": \"Conversations · activity\",\n \"governance.overview.threads\": \"threads\",\n \"governance.overview.lastActive\": \"last active\",\n \"governance.overview.evalQualityTitle\": \"Eval Quality\",\n \"governance.overview.evalQualitySubtitle\": \"Quality · score trend\",\n \"governance.overview.stat.score\": \"score\",\n \"governance.overview.stat.passRate\": \"pass rate\",\n \"governance.overview.stat.runs\": \"runs\",\n \"governance.overview.singleRun\": \"Single run — trend needs 2+ runs\",\n \"governance.overview.usageTitle\": \"Usage Activity\",\n \"governance.overview.usageSubtitle\": \"Last 14 days · dark = last 7\",\n \"governance.overview.configTitle\": \"Configuration\",\n \"governance.overview.configSubtitle\": \"Scale · composition\",\n \"governance.overview.stat.tools\": \"tools\",\n \"governance.overview.stat.subagents\": \"subagents\",\n \"governance.overview.stat.middleware\": \"middleware\",\n \"governance.overview.stat.age\": \"age\",\n \"governance.overview.staticConfig\": \"Static config, no trend\",\n \"governance.overview.noEvalProject\": \"This agent has no eval project yet — create one in the Eval Suite tab\",\n \"governance.cardStats.scoreEmpty\": \"score —\",\n \"governance.cardStats.threadsEmpty\": \"threads —\",\n \"governance.cardStats.evalScore\": \"eval score\",\n \"governance.cardStats.threads\": \"threads\",\n \"governance.cardStats.threads7d\": \"7d threads\",\n \"governance.cardStats.evalTooltip\": \"Eval score: {{score}} · pass rate {{passRate}} · {{runs}} runs\",\n \"governance.cardStats.conversationsTooltip\": \"Conversations: {{total}} total · {{last7d}} in 7d · {{last30d}} in 30d\",\n \"governance.cardStats.conversationsTooltipActive\": \"Conversations: {{total}} total · {{last7d}} in 7d · {{last30d}} in 30d · last active {{lastActive}}\",\n \"governance.evalQuality.noRuns\": \"No eval runs yet\",\n \"governance.evalQuality.scoreByRun\": \"Score by run\",\n \"governance.evalQuality.roundTrend\": \"Score by learning round\",\n \"governance.evalQuality.latestRun\": \"Latest run\",\n \"governance.evalQuality.passCount\": \"{{passed}}/{{total}} passed\",\n \"governance.evalQuality.latestScore\": \"latest score\",\n \"governance.evalQuality.passSummary\": \"pass · {{passed}}/{{total}}\",\n \"governance.evalQuality.interrupted\": \"interrupted\",\n \"governance.evalInsights.interrupted\": \"{{count}} interrupted\",\n \"governance.evalInsights.allPassed\": \"All cases passed\",\n \"governance.configGraph.emptyGroup\": \"empty\",\n \"governance.configGraph.removeItem\": \"Remove {{label}}\",\n \"governance.nodeGroup.agent\": \"Agent\",\n \"governance.nodeGroup.tool\": \"Tool\",\n \"governance.nodeGroup.capability\": \"Capability\",\n \"governance.nodeGroup.subagent\": \"Sub-Agent\",\n \"governance.nodeGroup.skill\": \"Skill\",\n \"governance.nodeGroup.model\": \"Model\",\n \"governance.nodeGroup.eval\": \"Eval Suite\",\n \"governance.nodeDock.toolUnavailable\": \"Tool details unavailable.\",\n \"governance.nodeDock.subagentUnavailable\": \"Sub-agent details unavailable.\",\n \"governance.nodeDock.skillUnavailable\": \"Skill details unavailable.\",\n \"governance.nodeDock.description\": \"Description\",\n \"governance.nodeDock.parameters\": \"Parameters\",\n \"governance.nodeDock.noDescription\": \"No description\",\n \"governance.nodeDock.model\": \"Model\",\n \"governance.nodeDock.content\": \"Content\",\n \"governance.nodeDock.prompt\": \"Prompt\",\n \"governance.nodeDock.capabilitySaved\": \"Capability saved\",\n \"governance.nodeDock.capabilitySaveFailed\": \"Failed to save capability\",\n \"governance.nodeDock.agentSaved\": \"Agent saved\",\n \"governance.nodeDock.removeFromAgent\": \"Remove from agent\",\n \"governance.nodeDock.confirmRemove\": \"Confirm remove\",\n \"governance.copilot.label\": \"Architect\",\n \"governance.copilot.open\": \"Open copilot\",\n \"governance.copilot.expand\": \"Expand architect copilot\",\n \"governance.workflow.noDsl\": \"No workflow DSL yet — ask the architect to design one\",\n \"governance.workflow.builderLabel\": \"Builder\",\n \"governance.zone.pinAria\": \"Pin {{zone}} zone\",\n \"governance.zone.unpinAria\": \"Unpin {{zone}} zone\",\n \"governance.canvas.zone.copilot\": \"COPILOT\",\n \"governance.canvas.zone.learning\": \"LEARNING\",\n \"governance.canvas.zone.evaluation\": \"EVALUATION\",\n \"governance.canvas.quickNav.title\": \"Quick navigation\",\n \"governance.canvas.quickNav.kbdShortcut\": \"⌘/Ctrl + 1–4\",\n \"governance.canvas.quickNav.focusZone\": \"focus a zone\",\n \"governance.canvas.quickNav.clickDot\": \"Click a dot\",\n \"governance.canvas.quickNav.dragLabel\": \"Drag a zone label\",\n \"governance.canvas.quickNav.moveBlock\": \"move the block\",\n \"governance.canvas.quickNav.pinLabel\": \"📌 Click a zone label\",\n \"governance.canvas.quickNav.pinHelp\": \"pin it into the side split (click again to unpin)\",\n \"governance.canvas.quickNav.legend\": \"① Config ② Learning ③ Evaluation ④ Copilot\",\n \"governance.canvas.startTutorial\": \"Start tutorial\",\n \"governance.canvas.resetLayout\": \"Reset layout\",\n \"governance.canvas.dot.config\": \"Config\",\n \"governance.canvas.dot.learning\": \"Learning\",\n \"governance.canvas.dot.testing\": \"Evaluation\",\n \"governance.canvas.dot.copilot\": \"Copilot\",\n \"governance.canvas.fitZoneAria\": \"Fit {{zone}} zone\",\n \"governance.canvas.helpToggleAria\": \"Quick navigation guide\",\n \"governance.tour.welcome.title\": \"Welcome to the training canvas\",\n \"governance.tour.welcome.description\": \"Four zones you can arrange freely. Press Next to learn the basics in 3 quick steps.\",\n \"governance.tour.zones.title\": \"Switch zones\",\n \"governance.tour.zones.description\": \"Press ⌘/Ctrl + 2 or 4 — or click a dot in the pill below — to jump between zones.\",\n \"governance.tour.move.title\": \"Move a zone\",\n \"governance.tour.move.description\": \"Grab a zone label above any block and drag it anywhere. Positions reset next session.\",\n \"governance.tour.pin.title\": \"Pin the copilot\",\n \"governance.tour.pin.description\": \"Click 📌 on the COPILOT label to dock it into the right split. Click again to unpin.\",\n \"governance.tour.skip\": \"Skip tour\",\n \"governance.tour.done\": \"Done\",\n \"governance.tour.next\": \"Next\",\n \"governance.testing.suites\": \"Evaluation suites\",\n \"governance.testing.caseCount\": \"{{count}} cases\",\n \"governance.evalPanel.createTitle\": \"Create Eval Project\",\n \"governance.evalPanel.createProject\": \"Create eval project\",\n \"governance.evalPanel.noProject\": \"This agent has no eval project yet\",\n \"governance.evalPanel.projectName\": \"Project Name\",\n \"governance.evalPanel.judgeModel\": \"Judge Model\",\n \"governance.evalPanel.judgeModelRequired\": \"Please select a judge model\",\n \"governance.evalPanel.modelPlaceholder\": \"Select a registered model\",\n \"governance.evalPanel.createFailed\": \"Failed to create eval project\",\n \"governance.evalPanel.newSuite\": \"New Suite\",\n \"governance.evalPanel.runAll\": \"Run All\",\n \"governance.evalPanel.suiteNamePlaceholder\": \"Suite name\",\n \"governance.evalPanel.kindTag\": \"eval\",\n \"governance.webApps.title\": \"Web Apps\",\n \"governance.webApps.create\": \"Create Web App\",\n \"governance.webApps.action.enable\": \"Enable\",\n \"governance.webApps.action.disable\": \"Disable\",\n \"governance.webApps.action.preview\": \"Preview\",\n \"governance.webApps.action.integrationGuide\": \"Integration guide\",\n \"governance.webApps.action.copyId\": \"Copy Web App ID\",\n \"governance.webApps.projectsCount\": \"{{count}} project{{s}} · react_sdk\",\n \"governance.webApps.emptyTitle\": \"No Web Apps\",\n \"governance.webApps.emptyDescription\": \"Create a React SDK publication for this agent.\",\n \"governance.webApps.warningTitle\": \"Unverified identity\",\n \"governance.webApps.warningDescription\": \"Web Apps trust the external user ID supplied by the embedding application. Do not use it as proof of authentication.\",\n \"governance.webApps.deleteTitle\": \"Delete Web App\",\n \"governance.webApps.deleteBody\": \"Delete “{{name}}”? This action cannot be undone.\",\n \"governance.webApps.previewTitle\": \"Preview\",\n \"governance.webApps.previewFrameTitle\": \"Web App preview\",\n \"governance.webApps.gatewayUnavailable\": \"Gateway URL unavailable\",\n \"governance.webApps.draftPreviewTitle\": \"Draft preview\",\n \"governance.webApps.draftPreviewDescription\": \"This renders the in-page console chat so you can inspect draft content. Enable the publication to preview the exact embed experience external users get.\",\n \"governance.webApps.guideTitle\": \"Integration guide\",\n \"governance.webApps.copyExamples\": \"Copy examples\",\n \"governance.webApps.guide.zeroCodeTab\": \"Zero-code script loader\",\n \"governance.webApps.guide.zeroCodeIntro\": \"One script tag — the full Console-style chat runs in an isolated iframe on the gateway origin. No build step, no npm install.\",\n \"governance.webApps.guide.settingsTitle\": \"Configuration — window.AxiomChatSettings\",\n \"governance.webApps.guide.jsApiTitle\": \"JS API — window.AxiomChat\",\n \"governance.webApps.guide.jsApiBody\": \"Property and command forms are equivalent; register callbacks or actions before the loader loads with the array form ({{example}} — replayed in order on load).\",\n \"governance.webApps.guide.eventsTitle\": \"Events\",\n \"governance.webApps.guide.hostTrustTitle\": \"Host trust and limits\",\n \"governance.webApps.guide.hostTrustBody\": \"The host page can send messages and read new conversation content — only embed on trusted pages. One streaming reply at a time; loading the loader twice is unsupported. Not available yet: unread callbacks, runtime theme updates, verified setIdentity, token-level streaming events.\",\n \"governance.webApps.guide.npmTab\": \"npm SDK\",\n \"governance.webApps.guide.npmIntro\": \"React applications — the same chat stack as a first-class component in your page, fully composable.\",\n \"governance.webApps.guide.fullChat\": \"Full chat — AgentChatApp\",\n \"governance.webApps.guide.composable\": \"Composable widgets\",\n \"governance.webApps.guide.hooks\": \"Hooks\",\n \"governance.webApps.guide.col.key\": \"Key\",\n \"governance.webApps.guide.col.type\": \"Type\",\n \"governance.webApps.guide.col.description\": \"Description\",\n \"governance.webApps.guide.col.api\": \"API\",\n \"governance.webApps.guide.col.behavior\": \"Behavior\",\n \"governance.webApps.guide.col.register\": \"Register\",\n \"governance.webApps.guide.col.payload\": \"Payload\",\n \"governance.webApps.guide.col.when\": \"When\",\n \"governance.webApps.guide.setting.webAppId\": \"Publication id (not the Agent id). Missing → the loader warns and does not start.\",\n \"governance.webApps.guide.setting.userId\": \"Stable per-user subject. ^[A-Za-z0-9._:@-]+$, ≤128 chars. Missing/invalid → the chat does not start and onError fires with USER_ID_REQUIRED.\",\n \"governance.webApps.guide.setting.gatewayUrl\": \"Gateway URL (defaults to the loader script's own origin). Trailing slashes are trimmed.\",\n \"governance.webApps.guide.setting.mode\": \"Bubble popup (default) or embed into the containerSelector element.\",\n \"governance.webApps.guide.setting.containerSelector\": \"Required for inline mode. Falls back to body with a console warning when not found.\",\n \"governance.webApps.guide.setting.bubble\": \"false = no launcher button; drive the panel with open()/hide().\",\n \"governance.webApps.guide.setting.widthHeight\": \"Bubble panel size, clamped to the viewport (min 240).\",\n \"governance.webApps.guide.setting.position\": \"Horizontal anchor for the launcher and panel.\",\n \"governance.webApps.guide.setting.offset\": \"Viewport margin. Nested form also supported: offset: { x, y }.\",\n \"governance.webApps.guide.setting.zIndex\": \"Panel stacking (the launcher sits at zIndex + 1).\",\n \"governance.webApps.guide.setting.welcome\": \"Chat empty-state welcome; overrides the publication appearance.welcomeMessage.\",\n \"governance.webApps.guide.setting.quicks\": \"Chat empty-state quick prompts (≤6; label 1-40, text 1-500; invalid entries dropped). Overrides appearance.quickPrompts entirely when provided; clicking one sends its text.\",\n \"governance.webApps.guide.api.open\": \"Show, hide, or toggle the panel. No-ops in inline mode (the chat is always visible in its container).\",\n \"governance.webApps.guide.api.sendMessage\": \"Send a message programmatically — rendered in the UI like a typed message and streamed from the server. Trimmed non-empty, ≤32768 chars; automatically queued while the chat is busy; before onReady it is buffered and flushed on ready. Send failures show the chat's own inline error banner.\",\n \"governance.webApps.guide.api.mount\": \"Mount additional independent chats (different webAppIds) on one page; returns an instance handle with the full API (open/hide/toggle/sendMessage/onReady/onMessage/onError). get(id) retrieves a mounted handle; without global settings the default-instance delegates warn and no-op.\",\n \"governance.webApps.guide.event.onReady\": \"The chat can send/receive (handshake complete, thread ready). Buffered sends flush immediately after.\",\n \"governance.webApps.guide.event.onMessage\": \"Per accepted message: your sent message (server echo) and each completed AI reply (final text — not per-token). Boot-time history is not replayed; the baseline resets per thread. Structured content is not included.\",\n \"governance.webApps.guide.event.onError\": \"WEB_APP_NOT_FOUND · WEB_APP_DISABLED · USER_ID_REQUIRED · PROJECT_NOT_ALLOWED · MODEL_NOT_ALLOWED · FEATURE_DISABLED · INVALID_REQUEST · STREAM_FAILED\",\n \"governance.webApp.createTitle\": \"Create Web App\",\n \"governance.webApp.editTitle\": \"Edit Web App\",\n \"governance.webApp.name\": \"Name\",\n \"governance.webApp.nameMax\": \"Name must be 120 characters or fewer\",\n \"governance.webApp.description\": \"Description\",\n \"governance.webApp.descriptionMax\": \"Description must be 1000 characters or fewer\",\n \"governance.webApp.projectScope\": \"Project scope\",\n \"governance.webApp.projectSelector\": \"Project selector\",\n \"governance.webApp.allowedProjects\": \"Allowed projects\",\n \"governance.webApp.selectProject\": \"Select at least one project\",\n \"governance.webApp.selectValidProjects\": \"Select valid allowed projects\",\n \"governance.webApp.defaultInAllowed\": \"Default project must be in allowed projects\",\n \"governance.webApp.defaultProject\": \"Default project\",\n \"governance.webApp.selectValidDefaultProject\": \"Select a valid default project\",\n \"governance.webApp.modelScope\": \"Model scope (optional)\",\n \"governance.webApp.modelSelector\": \"Model selector\",\n \"governance.webApp.allowedModels\": \"Allowed models\",\n \"governance.webApp.selectModel\": \"Select at least one model\",\n \"governance.webApp.selectValidModels\": \"Select valid allowed models\",\n \"governance.webApp.defaultModel\": \"Default model\",\n \"governance.webApp.selectValidDefaultModel\": \"Select a valid default model\",\n \"governance.webApp.features\": \"Features\",\n \"governance.webApp.feature.threadManagement\": \"threadManagement\",\n \"governance.webApp.feature.attachments\": \"attachments\",\n \"governance.webApp.feature.hitl\": \"hitl\",\n \"governance.webApp.feature.genUI\": \"genUI\",\n \"governance.webApp.feature.files\": \"files\",\n \"governance.webApp.appearance\": \"Appearance\",\n \"governance.webApp.title\": \"Title\",\n \"governance.webApp.titleMax\": \"Title must be 120 characters or fewer\",\n \"governance.webApp.welcomeMessage\": \"Welcome message\",\n \"governance.webApp.welcomeMessageMax\": \"Welcome message must be 1000 characters or fewer\",\n \"governance.webApp.primaryColor\": \"Primary color\",\n \"governance.webApp.colorFormat\": \"Use a #RRGGBB color\",\n \"governance.webApp.quickPrompts\": \"Quick prompts\",\n \"governance.webApp.quickPromptLabelRequired\": \"Quick prompt label is required\",\n \"governance.webApp.quickPromptLabelMax\": \"Quick prompt label must be 40 characters or fewer\",\n \"governance.webApp.quickPromptLabelAria\": \"Quick prompt label {{index}}\",\n \"governance.webApp.labelPlaceholder\": \"Label\",\n \"governance.webApp.quickPromptTextRequired\": \"Quick prompt message is required\",\n \"governance.webApp.quickPromptTextMax\": \"Quick prompt message must be 500 characters or fewer\",\n \"governance.webApp.quickPromptTextAria\": \"Quick prompt message {{index}}\",\n \"governance.webApp.messagePlaceholder\": \"Message text\",\n \"governance.webApp.removeQuickPromptAria\": \"Remove quick prompt {{index}}\",\n \"governance.webApp.remove\": \"Remove\",\n \"governance.webApp.addQuickPrompt\": \"Add quick prompt\",\n \"governance.webApp.identity\": \"Identity\",\n \"governance.webApp.identityPolicy\": \"Identity policy\",\n \"governance.webApp.identityUnverified\": \"Unverified (header)\",\n \"governance.webApp.identityBoth\": \"Verified token or header (migration)\",\n \"governance.webApp.identityVerified\": \"Verified tokens only\",\n \"governance.webApp.trustedIssuers\": \"Trusted issuers (JSON)\",\n \"governance.webApp.trustedIssuersTooltip\": \"Required when the policy includes verified tokens. Example: [{\\\"iss\\\":\\\"https://host.example.com\\\",\\\"aud\\\":\\\"<webAppId>\\\",\\\"alg\\\":\\\"HS256\\\",\\\"secret\\\":\\\"...\\\"}]\",\n \"governance.webApp.issuersEmpty\": \"Provide a non-empty JSON array of issuers\",\n \"governance.webApp.issuersInvalid\": \"Trusted issuers must be a valid JSON array\",\n \"governance.webApp.integrationType\": \"Integration type: react_sdk\",\n \"governance.learning.projectLabel\": \"Learning project\",\n \"governance.learning.noProject\": \"No learning project is available\",\n \"governance.learning.noProjectDescription\": \"A learning project is required before starting a learning task.\",\n \"governance.learning.uploadFailed\": \"Failed to upload \\\"{{name}}\\\"\",\n \"governance.learning.uploadHint\": \"Click or drag files to this area to upload\",\n \"governance.learning.uploadNote\": \"Files are stored in the selected project under /project/uploads\",\n \"governance.learning.activityLoadFailed\": \"Activity could not be loaded. Please try again shortly.\",\n \"governance.learning.activityCapacity\": \"Too many activity requests are still pending. Please try again shortly.\",\n \"governance.learning.commandFailedSuffix\": \"{{message}}, but the task list could not be refreshed\",\n \"governance.learning.cmd.retry\": \"Task retry started\",\n \"governance.learning.cmd.cancel\": \"Task cancelled\",\n \"governance.learning.cmd.start\": \"Task started\",\n \"governance.learning.cmd.reopen\": \"Task reopened\",\n \"governance.learning.cmd.delete\": \"Task deleted\",\n \"governance.learning.cmd.comment\": \"Comment added\",\n \"governance.learning.cmd.updated\": \"Task updated\",\n \"governance.learning.createdRefreshFailed\": \"Task created, but the task list could not be refreshed\",\n \"governance.learning.tasksTitle\": \"Learning Tasks\",\n \"governance.learning.newTask\": \"New Learning Task\",\n \"governance.learning.empty\": \"No learning tasks yet\",\n \"governance.learning.openWorkflow\": \"Open workflow view\",\n \"governance.learning.openReviewTasks\": \"Open {{count}} task{{s}} waiting for approval\",\n \"governance.learning.reviewCount\": \"{{count}} item{{s}} waiting for approval\",\n \"governance.learning.created\": \"Learning task created. Preparing the Architect…\",\n \"governance.learning.createFailed\": \"Failed to create the learning task. Please try again.\",\n \"governance.learning.inProgress\": \"A learning task is already in progress. Complete it before starting a new one.\",\n \"governance.learning.goalLabel\": \"Learning Goal for This Round\",\n \"governance.learning.goalRequired\": \"Please describe what you want this agent to learn or improve in this round\",\n \"governance.learning.goalPlaceholder\": \"e.g. Improve the agent's accuracy when handling price disputes based on the price protection policy\",\n \"governance.learning.referenceMaterials\": \"Reference Materials\",\n \"governance.learning.referenceMaterialsHint\": \"Optional. These materials will be used as reference for this learning round.\",\n \"governance.learning.start\": \"Start Learning\",\n \"governance.learning.noTasks\": \"No tasks\",\n \"governance.learning.selectRound\": \"Select round\",\n \"governance.learning.tasksCount\": \"{{done}}/{{total}} tasks\",\n \"governance.learning.tasksDone\": \"{{done}}/{{total}} tasks done\",\n \"governance.learning.waiting\": \"{{count}} waiting\",\n \"governance.learning.back\": \"‹ Back\",\n \"governance.learning.depBadgeDone\": \"⬦ {{count}} deps ✓\",\n \"governance.learning.depBadgeWaiting\": \"⬦ waits {{count}}\",\n \"governance.learning.expandNested\": \"Expand {{count}} nested tasks in {{title}}\",\n \"governance.learning.status.pending\": \"Pending\",\n \"governance.learning.status.running\": \"Running\",\n \"governance.learning.status.review\": \"Review\",\n \"governance.learning.status.failed\": \"Failed\",\n \"governance.learning.status.interrupted\": \"Interrupted\",\n \"governance.learning.status.done\": \"Done\",\n \"governance.learning.status.cancelled\": \"Cancelled\",\n \"governance.learning.roundCreateFailed\": \"Failed to create learning round task\",\n \"governance.learning.threadCreateFailed\": \"Failed to create training thread\",\n \"governance.canvas.zone.config\": \"CONFIG\",\n \"governance.canvas.dock.learningTasks\": \"Learning tasks\",\n \"governance.pinnedRail.openEval\": \"Open eval quality\",\n \"governance.pinnedRail.openLearning\": \"Open full learning graph\",\n \"governance.pinnedRail.new\": \"New\",\n \"governance.configGraph.allSkills\": \"All skills\",\n \"governance.configGraph.allSkillsDescription\": \"Agent can load any available skill\",\n \"governance.evalQuality.target\": \"target {{score}}\",\n \"governance.overview.unnamed\": \"Unnamed\",\n \"governance.webApps.requestFailed\": \"Request failed\",\n \"governance.webApps.clipboardUnavailable\": \"Clipboard unavailable\",\n \"governance.webApps.status.active\": \"Active\",\n \"governance.webApps.status.disabled\": \"Disabled\",\n \"governance.webApps.status.draft\": \"Draft\"\n }\n}\n","{\n \"messages\": {\n \"governance.deleteAgent\": \"删除智能体\",\n \"governance.delete.irreversible\": \"此操作无法撤销。\",\n \"governance.list.title\": \"智能体\",\n \"governance.list.tab.all\": \"全部\",\n \"governance.list.tab.capability\": \"能力型\",\n \"governance.list.tab.orchestrator\": \"编排型\",\n \"governance.list.tab.team\": \"团队\",\n \"governance.list.tab.workflow\": \"工作流\",\n \"governance.list.action.playground\": \"演练场\",\n \"governance.list.action.eval\": \"评测\",\n \"governance.list.viewMode.graph\": \"关系图\",\n \"governance.list.filter.domain\": \"领域\",\n \"governance.list.filter.allDomains\": \"全部领域\",\n \"governance.list.filter.status\": \"状态\",\n \"governance.list.filter.allStatuses\": \"全部状态\",\n \"governance.list.status.enabled\": \"已启用\",\n \"governance.list.status.draft\": \"草稿\",\n \"governance.list.status.disabled\": \"已停用\",\n \"governance.list.typeIconTitle\": \"{{type}} 类型智能体\",\n \"governance.list.statusTooltip\": \"状态:{{status}}\",\n \"governance.list.create\": \"新建智能体\",\n \"governance.list.emptyTitle\": \"暂无智能体\",\n \"governance.list.emptyDescription\": \"点击「新建智能体」即可创建\",\n \"governance.workbench.loadFailed\": \"加载智能体失败\",\n \"governance.workbench.agentFallback\": \"智能体\",\n \"governance.detail.viewDescription\": \"查看描述\",\n \"governance.detail.testInPlayground\": \"在演练场测试\",\n \"governance.detail.evalSuite\": \"评测套件\",\n \"governance.detail.webApps\": \"Web 应用\",\n \"governance.detail.configuration\": \"配置\",\n \"governance.detail.playground\": \"演练场\",\n \"governance.detail.runResults\": \"运行结果\",\n \"governance.detail.loadFailed\": \"加载智能体失败\",\n \"governance.detail.saveFailed\": \"保存智能体失败\",\n \"governance.detail.deleteFailed\": \"删除智能体失败\",\n \"governance.detail.deleted\": \"智能体已删除\",\n \"governance.detail.missingId\": \"缺少智能体 ID\",\n \"governance.detail.notFound\": \"未找到智能体\",\n \"governance.detail.backToList\": \"返回列表\",\n \"governance.detail.noDescription\": \"未设置描述。\",\n \"governance.detail.removeNodeSaveFailed\": \"移除节点后保存失败\",\n \"governance.detail.discardTitle\": \"放弃未保存的配置?\",\n \"governance.detail.discardBody\": \"你还有未保存的配置更改。要放弃并继续吗?\",\n \"governance.detail.discard\": \"放弃\",\n \"governance.detail.continueEditing\": \"继续编辑\",\n \"governance.detail.deleteConfirm\": \"确定要删除「{{name}}」吗?此操作无法撤销。\",\n \"governance.detail.listCardMessage\": \"智能体列表\",\n \"governance.creation.title\": \"选择创建智能体的方式\",\n \"governance.creation.subtitle\": \"选择最符合你要构建的智能体的方式。\",\n \"governance.creation.manual.title\": \"手动配置\",\n \"governance.creation.manual.description\": \"自行定义智能体的身份、类型、工具和系统提示词。\",\n \"governance.creation.external.title\": \"外部智能体\",\n \"governance.creation.external.description\": \"通过 URL 接入已有的 A2A 兼容智能体,或管理本地运行时。\",\n \"governance.creation.learn.title\": \"让 Agent Architect 帮你构建\",\n \"governance.creation.learn.description\": \"描述目标,让 Agent Architect 结合训练上下文构建并评测该智能体。\",\n \"governance.creation.notNow\": \"暂不\",\n \"governance.dock.close\": \"关闭面板\",\n \"governance.dock.resize\": \"调整面板宽度\",\n \"governance.overlay.runtime\": \"运行时\",\n \"governance.overlay.runtimeChartTitle\": \"点击查看 30 天图表\",\n \"governance.overlay.runtimePanel\": \"运行时 — 最近 30 天\",\n \"governance.overlay.threads\": \"会话\",\n \"governance.overlay.evalQuality\": \"评测质量\",\n \"governance.overlay.evalChartTitle\": \"点击查看评分趋势\",\n \"governance.overlay.learningWorkflow\": \"学习工作流\",\n \"governance.overlay.stat.score\": \"评分\",\n \"governance.overlay.stat.pass\": \"通过率\",\n \"governance.overlay.stat.runs\": \"运行\",\n \"governance.overview.runtimeTitle\": \"运行时\",\n \"governance.overview.runtimeSubtitle\": \"对话 · 活跃度\",\n \"governance.overview.threads\": \"会话\",\n \"governance.overview.lastActive\": \"最近活跃\",\n \"governance.overview.evalQualityTitle\": \"评测质量\",\n \"governance.overview.evalQualitySubtitle\": \"质量 · 评分趋势\",\n \"governance.overview.stat.score\": \"评分\",\n \"governance.overview.stat.passRate\": \"通过率\",\n \"governance.overview.stat.runs\": \"运行\",\n \"governance.overview.singleRun\": \"仅有一次运行 — 趋势需要 2 次以上\",\n \"governance.overview.usageTitle\": \"使用活跃度\",\n \"governance.overview.usageSubtitle\": \"最近 14 天 · 深色 = 最近 7 天\",\n \"governance.overview.configTitle\": \"配置\",\n \"governance.overview.configSubtitle\": \"规模 · 组成\",\n \"governance.overview.stat.tools\": \"工具\",\n \"governance.overview.stat.subagents\": \"子智能体\",\n \"governance.overview.stat.middleware\": \"中间件\",\n \"governance.overview.stat.age\": \"时长\",\n \"governance.overview.staticConfig\": \"静态配置,无趋势\",\n \"governance.overview.noEvalProject\": \"该智能体还没有评测项目 — 请在「评测套件」标签页中创建\",\n \"governance.cardStats.scoreEmpty\": \"评分 —\",\n \"governance.cardStats.threadsEmpty\": \"会话 —\",\n \"governance.cardStats.evalScore\": \"评测评分\",\n \"governance.cardStats.threads\": \"会话\",\n \"governance.cardStats.threads7d\": \"7 天会话\",\n \"governance.cardStats.evalTooltip\": \"评测评分:{{score}} · 通过率 {{passRate}} · {{runs}} 次运行\",\n \"governance.cardStats.conversationsTooltip\": \"对话:共 {{total}} · 7 天内 {{last7d}} · 30 天内 {{last30d}}\",\n \"governance.cardStats.conversationsTooltipActive\": \"对话:共 {{total}} · 7 天内 {{last7d}} · 30 天内 {{last30d}} · 最近活跃 {{lastActive}}\",\n \"governance.evalQuality.noRuns\": \"暂无评测运行\",\n \"governance.evalQuality.scoreByRun\": \"按运行查看评分\",\n \"governance.evalQuality.roundTrend\": \"按学习轮次查看评分\",\n \"governance.evalQuality.latestRun\": \"最近运行\",\n \"governance.evalQuality.passCount\": \"{{passed}}/{{total}} 通过\",\n \"governance.evalQuality.latestScore\": \"最新评分\",\n \"governance.evalQuality.passSummary\": \"通过 · {{passed}}/{{total}}\",\n \"governance.evalQuality.interrupted\": \"已中断\",\n \"governance.evalInsights.interrupted\": \"{{count}} 个已中断\",\n \"governance.evalInsights.allPassed\": \"全部用例通过\",\n \"governance.configGraph.emptyGroup\": \"空\",\n \"governance.configGraph.removeItem\": \"移除 {{label}}\",\n \"governance.nodeGroup.agent\": \"智能体\",\n \"governance.nodeGroup.tool\": \"工具\",\n \"governance.nodeGroup.capability\": \"能力\",\n \"governance.nodeGroup.subagent\": \"子智能体\",\n \"governance.nodeGroup.skill\": \"技能\",\n \"governance.nodeGroup.model\": \"模型\",\n \"governance.nodeGroup.eval\": \"评测套件\",\n \"governance.nodeDock.toolUnavailable\": \"无法获取工具详情。\",\n \"governance.nodeDock.subagentUnavailable\": \"无法获取子智能体详情。\",\n \"governance.nodeDock.skillUnavailable\": \"无法获取技能详情。\",\n \"governance.nodeDock.description\": \"描述\",\n \"governance.nodeDock.parameters\": \"参数\",\n \"governance.nodeDock.noDescription\": \"无描述\",\n \"governance.nodeDock.model\": \"模型\",\n \"governance.nodeDock.content\": \"内容\",\n \"governance.nodeDock.prompt\": \"提示词\",\n \"governance.nodeDock.capabilitySaved\": \"能力已保存\",\n \"governance.nodeDock.capabilitySaveFailed\": \"保存能力失败\",\n \"governance.nodeDock.agentSaved\": \"智能体已保存\",\n \"governance.nodeDock.removeFromAgent\": \"从智能体移除\",\n \"governance.nodeDock.confirmRemove\": \"确认移除\",\n \"governance.copilot.label\": \"Architect\",\n \"governance.copilot.open\": \"打开 Copilot\",\n \"governance.copilot.expand\": \"展开 Agent Architect Copilot\",\n \"governance.workflow.noDsl\": \"暂无工作流 DSL — 让 Agent Architect 帮你设计一个\",\n \"governance.workflow.builderLabel\": \"构建器\",\n \"governance.zone.pinAria\": \"将 {{zone}} 区域固定到侧栏\",\n \"governance.zone.unpinAria\": \"取消固定 {{zone}} 区域\",\n \"governance.canvas.zone.copilot\": \"COPILOT\",\n \"governance.canvas.zone.learning\": \"LEARNING\",\n \"governance.canvas.zone.evaluation\": \"EVALUATION\",\n \"governance.canvas.quickNav.title\": \"快速导航\",\n \"governance.canvas.quickNav.kbdShortcut\": \"⌘/Ctrl + 1–4\",\n \"governance.canvas.quickNav.focusZone\": \"聚焦某个区域\",\n \"governance.canvas.quickNav.clickDot\": \"点击圆点\",\n \"governance.canvas.quickNav.dragLabel\": \"拖拽区域标签\",\n \"governance.canvas.quickNav.moveBlock\": \"移动整个区块\",\n \"governance.canvas.quickNav.pinLabel\": \"📌 点击区域标签\",\n \"governance.canvas.quickNav.pinHelp\": \"将其固定到侧边分栏(再次点击取消固定)\",\n \"governance.canvas.quickNav.legend\": \"① 配置 ② 学习 ③ 评测 ④ Copilot\",\n \"governance.canvas.startTutorial\": \"开始引导\",\n \"governance.canvas.resetLayout\": \"重置布局\",\n \"governance.canvas.dot.config\": \"配置\",\n \"governance.canvas.dot.learning\": \"学习\",\n \"governance.canvas.dot.testing\": \"评测\",\n \"governance.canvas.dot.copilot\": \"Copilot\",\n \"governance.canvas.fitZoneAria\": \"定位到 {{zone}} 区域\",\n \"governance.canvas.helpToggleAria\": \"快速导航指南\",\n \"governance.tour.welcome.title\": \"欢迎使用训练画布\",\n \"governance.tour.welcome.description\": \"四个可自由排布的区域。点击「下一步」,用 3 个快速步骤了解基本用法。\",\n \"governance.tour.zones.title\": \"切换区域\",\n \"governance.tour.zones.description\": \"按 ⌘/Ctrl + 2 或 4,或点击下方胶囊中的圆点,在区域之间跳转。\",\n \"governance.tour.move.title\": \"移动区域\",\n \"governance.tour.move.description\": \"抓住任意区块上方的区域标签,拖到任意位置。位置会在下次会话时重置。\",\n \"governance.tour.pin.title\": \"固定 Copilot\",\n \"governance.tour.pin.description\": \"点击 COPILOT 标签上的 📌,将其停靠到右侧分栏。再次点击可取消固定。\",\n \"governance.tour.skip\": \"跳过引导\",\n \"governance.tour.done\": \"完成\",\n \"governance.tour.next\": \"下一步\",\n \"governance.testing.suites\": \"评测套件\",\n \"governance.testing.caseCount\": \"{{count}} 个用例\",\n \"governance.evalPanel.createTitle\": \"创建评测项目\",\n \"governance.evalPanel.createProject\": \"创建评测项目\",\n \"governance.evalPanel.noProject\": \"该智能体还没有评测项目\",\n \"governance.evalPanel.projectName\": \"项目名称\",\n \"governance.evalPanel.judgeModel\": \"评分模型\",\n \"governance.evalPanel.judgeModelRequired\": \"请选择评分模型\",\n \"governance.evalPanel.modelPlaceholder\": \"选择已注册的模型\",\n \"governance.evalPanel.createFailed\": \"创建评测项目失败\",\n \"governance.evalPanel.newSuite\": \"新建套件\",\n \"governance.evalPanel.runAll\": \"全部运行\",\n \"governance.evalPanel.suiteNamePlaceholder\": \"套件名称\",\n \"governance.evalPanel.kindTag\": \"评测\",\n \"governance.webApps.title\": \"Web 应用\",\n \"governance.webApps.create\": \"创建 Web 应用\",\n \"governance.webApps.action.enable\": \"启用\",\n \"governance.webApps.action.disable\": \"停用\",\n \"governance.webApps.action.preview\": \"预览\",\n \"governance.webApps.action.integrationGuide\": \"集成指南\",\n \"governance.webApps.action.copyId\": \"复制 Web 应用 ID\",\n \"governance.webApps.projectsCount\": \"{{count}} 个项目{{s}} · react_sdk\",\n \"governance.webApps.emptyTitle\": \"暂无 Web 应用\",\n \"governance.webApps.emptyDescription\": \"为该智能体创建一个 React SDK 发布项。\",\n \"governance.webApps.warningTitle\": \"未验证身份\",\n \"governance.webApps.warningDescription\": \"Web 应用信任嵌入方提供的用户 ID。请勿将其作为身份认证的依据。\",\n \"governance.webApps.deleteTitle\": \"删除 Web 应用\",\n \"governance.webApps.deleteBody\": \"删除「{{name}}」?此操作无法撤销。\",\n \"governance.webApps.previewTitle\": \"预览\",\n \"governance.webApps.previewFrameTitle\": \"Web 应用预览\",\n \"governance.webApps.gatewayUnavailable\": \"网关地址不可用\",\n \"governance.webApps.draftPreviewTitle\": \"草稿预览\",\n \"governance.webApps.draftPreviewDescription\": \"这里渲染的是页面内控制台对话,方便你查看草稿内容。启用该发布项后,即可预览外部用户看到的真实嵌入效果。\",\n \"governance.webApps.guideTitle\": \"集成指南\",\n \"governance.webApps.copyExamples\": \"复制示例\",\n \"governance.webApps.guide.zeroCodeTab\": \"零代码脚本加载器\",\n \"governance.webApps.guide.zeroCodeIntro\": \"只需一个 script 标签 — 完整的控制台风格对话会在网关源上的独立 iframe 中运行。无需构建步骤,无需 npm install。\",\n \"governance.webApps.guide.settingsTitle\": \"配置 — window.AxiomChatSettings\",\n \"governance.webApps.guide.jsApiTitle\": \"JS API — window.AxiomChat\",\n \"governance.webApps.guide.jsApiBody\": \"属性形式与命令形式等价;可在加载器加载前用数组形式注册回调或动作({{example}} — 加载后按顺序回放)。\",\n \"governance.webApps.guide.eventsTitle\": \"事件\",\n \"governance.webApps.guide.hostTrustTitle\": \"宿主信任与限制\",\n \"governance.webApps.guide.hostTrustBody\": \"宿主页面可以发送消息并读取新的对话内容 — 仅在可信页面上嵌入。同一时间只支持一个流式回复;不支持重复加载加载器。暂未提供:未读回调、运行时主题更新、已验证的 setIdentity、token 级别的流式事件。\",\n \"governance.webApps.guide.npmTab\": \"npm SDK\",\n \"governance.webApps.guide.npmIntro\": \"React 应用 — 与页面中一等公民组件相同的对话栈,完全可组合。\",\n \"governance.webApps.guide.fullChat\": \"完整对话 — AgentChatApp\",\n \"governance.webApps.guide.composable\": \"可组合组件\",\n \"governance.webApps.guide.hooks\": \"Hooks\",\n \"governance.webApps.guide.col.key\": \"键\",\n \"governance.webApps.guide.col.type\": \"类型\",\n \"governance.webApps.guide.col.description\": \"说明\",\n \"governance.webApps.guide.col.api\": \"API\",\n \"governance.webApps.guide.col.behavior\": \"行为\",\n \"governance.webApps.guide.col.register\": \"注册\",\n \"governance.webApps.guide.col.payload\": \"负载\",\n \"governance.webApps.guide.col.when\": \"触发时机\",\n \"governance.webApps.guide.setting.webAppId\": \"发布项 ID(不是智能体 ID)。缺失时加载器会告警并且不启动。\",\n \"governance.webApps.guide.setting.userId\": \"稳定的按用户主体标识。^[A-Za-z0-9._:@-]+$,≤128 个字符。缺失或非法时对话不会启动,并触发 onError 与 USER_ID_REQUIRED。\",\n \"governance.webApps.guide.setting.gatewayUrl\": \"网关地址(默认为加载器脚本自身的源)。末尾斜杠会被去掉。\",\n \"governance.webApps.guide.setting.mode\": \"气泡弹窗(默认)或嵌入到 containerSelector 指定的元素中。\",\n \"governance.webApps.guide.setting.containerSelector\": \"内联模式下必填。找不到元素时回退到 body 并输出控制台告警。\",\n \"governance.webApps.guide.setting.bubble\": \"false = 不显示启动按钮;改用 open()/hide() 控制面板。\",\n \"governance.webApps.guide.setting.widthHeight\": \"气泡面板尺寸,会按视口裁剪(最小 240)。\",\n \"governance.webApps.guide.setting.position\": \"启动按钮和面板的水平锚点。\",\n \"governance.webApps.guide.setting.offset\": \"视口边距。也支持嵌套写法:offset: { x, y }。\",\n \"governance.webApps.guide.setting.zIndex\": \"面板层级(启动按钮位于 zIndex + 1)。\",\n \"governance.webApps.guide.setting.welcome\": \"对话空状态欢迎语;覆盖发布项的 appearance.welcomeMessage。\",\n \"governance.webApps.guide.setting.quicks\": \"对话空状态的快捷提示词(≤6 条;label 1-40,text 1-500;非法项会被丢弃)。提供后会完全覆盖 appearance.quickPrompts;点击其中一条会发送其文本。\",\n \"governance.webApps.guide.api.open\": \"显示、隐藏或切换面板。内联模式下为空操作(对话始终在其容器中可见)。\",\n \"governance.webApps.guide.api.sendMessage\": \"以编程方式发送消息 — 在 UI 中与手动输入的消息一样渲染,并由服务端流式返回。去除空白后需非空,≤32768 个字符;对话繁忙时会自动排队;在 onReady 之前会先缓冲,就绪后立即发出。发送失败会显示对话自带的行内错误横幅。\",\n \"governance.webApps.guide.api.mount\": \"在同一页面上挂载多个相互独立的对话(不同的 webAppId);返回带完整 API 的实例句柄(open/hide/toggle/sendMessage/onReady/onMessage/onError)。get(id) 取出已挂载的句柄;没有全局配置时,默认实例上的委托方法会告警并空操作。\",\n \"governance.webApps.guide.event.onReady\": \"对话已可收发(握手完成,会话就绪)。缓冲的发送会在此后立即发出。\",\n \"governance.webApps.guide.event.onMessage\": \"每收到一条被接受的消息时触发:你发送的消息(服务端回显)以及每条完成的 AI 回复(最终文本 — 非逐 token)。启动时的历史记录不会回放;基线按会话重置。不包含结构化内容。\",\n \"governance.webApps.guide.event.onError\": \"WEB_APP_NOT_FOUND · WEB_APP_DISABLED · USER_ID_REQUIRED · PROJECT_NOT_ALLOWED · MODEL_NOT_ALLOWED · FEATURE_DISABLED · INVALID_REQUEST · STREAM_FAILED\",\n \"governance.webApp.createTitle\": \"创建 Web 应用\",\n \"governance.webApp.editTitle\": \"编辑 Web 应用\",\n \"governance.webApp.name\": \"名称\",\n \"governance.webApp.nameMax\": \"名称不能超过 120 个字符\",\n \"governance.webApp.description\": \"描述\",\n \"governance.webApp.descriptionMax\": \"描述不能超过 1000 个字符\",\n \"governance.webApp.projectScope\": \"项目范围\",\n \"governance.webApp.projectSelector\": \"项目选择器\",\n \"governance.webApp.allowedProjects\": \"允许的项目\",\n \"governance.webApp.selectProject\": \"请至少选择一个项目\",\n \"governance.webApp.selectValidProjects\": \"请选择有效的允许项目\",\n \"governance.webApp.defaultInAllowed\": \"默认项目必须包含在允许的项目中\",\n \"governance.webApp.defaultProject\": \"默认项目\",\n \"governance.webApp.selectValidDefaultProject\": \"请选择有效的默认项目\",\n \"governance.webApp.modelScope\": \"模型范围(可选)\",\n \"governance.webApp.modelSelector\": \"模型选择器\",\n \"governance.webApp.allowedModels\": \"允许的模型\",\n \"governance.webApp.selectModel\": \"请至少选择一个模型\",\n \"governance.webApp.selectValidModels\": \"请选择有效的允许模型\",\n \"governance.webApp.defaultModel\": \"默认模型\",\n \"governance.webApp.selectValidDefaultModel\": \"请选择有效的默认模型\",\n \"governance.webApp.features\": \"功能\",\n \"governance.webApp.feature.threadManagement\": \"会话管理\",\n \"governance.webApp.feature.attachments\": \"附件\",\n \"governance.webApp.feature.hitl\": \"人工介入 (HITL)\",\n \"governance.webApp.feature.genUI\": \"生成式 UI\",\n \"governance.webApp.feature.files\": \"文件\",\n \"governance.webApp.appearance\": \"外观\",\n \"governance.webApp.title\": \"标题\",\n \"governance.webApp.titleMax\": \"标题不能超过 120 个字符\",\n \"governance.webApp.welcomeMessage\": \"欢迎语\",\n \"governance.webApp.welcomeMessageMax\": \"欢迎语不能超过 1000 个字符\",\n \"governance.webApp.primaryColor\": \"主色\",\n \"governance.webApp.colorFormat\": \"请使用 #RRGGBB 格式的颜色\",\n \"governance.webApp.quickPrompts\": \"快捷提示词\",\n \"governance.webApp.quickPromptLabelRequired\": \"请输入快捷提示词标签\",\n \"governance.webApp.quickPromptLabelMax\": \"快捷提示词标签不能超过 40 个字符\",\n \"governance.webApp.quickPromptLabelAria\": \"快捷提示词标签 {{index}}\",\n \"governance.webApp.labelPlaceholder\": \"标签\",\n \"governance.webApp.quickPromptTextRequired\": \"请输入快捷提示词内容\",\n \"governance.webApp.quickPromptTextMax\": \"快捷提示词内容不能超过 500 个字符\",\n \"governance.webApp.quickPromptTextAria\": \"快捷提示词内容 {{index}}\",\n \"governance.webApp.messagePlaceholder\": \"消息文本\",\n \"governance.webApp.removeQuickPromptAria\": \"移除快捷提示词 {{index}}\",\n \"governance.webApp.remove\": \"移除\",\n \"governance.webApp.addQuickPrompt\": \"添加快捷提示词\",\n \"governance.webApp.identity\": \"身份\",\n \"governance.webApp.identityPolicy\": \"身份策略\",\n \"governance.webApp.identityUnverified\": \"不验证(请求头)\",\n \"governance.webApp.identityBoth\": \"验证令牌或请求头(迁移)\",\n \"governance.webApp.identityVerified\": \"仅验证令牌\",\n \"governance.webApp.trustedIssuers\": \"可信签发方(JSON)\",\n \"governance.webApp.trustedIssuersTooltip\": \"当策略包含验证令牌时必填。示例:[{\\\"iss\\\":\\\"https://host.example.com\\\",\\\"aud\\\":\\\"<webAppId>\\\",\\\"alg\\\":\\\"HS256\\\",\\\"secret\\\":\\\"...\\\"}]\",\n \"governance.webApp.issuersEmpty\": \"请提供非空的签发方 JSON 数组\",\n \"governance.webApp.issuersInvalid\": \"可信签发方必须是合法的 JSON 数组\",\n \"governance.webApp.integrationType\": \"集成类型:react_sdk\",\n \"governance.learning.projectLabel\": \"学习项目\",\n \"governance.learning.noProject\": \"没有可用的学习项目\",\n \"governance.learning.noProjectDescription\": \"开始学习任务前需要先选择一个学习项目。\",\n \"governance.learning.uploadFailed\": \"上传「{{name}}」失败\",\n \"governance.learning.uploadHint\": \"点击或拖拽文件到此区域上传\",\n \"governance.learning.uploadNote\": \"文件会存放在所选项目的 /project/uploads 下\",\n \"governance.learning.activityLoadFailed\": \"无法加载活动记录。请稍后重试。\",\n \"governance.learning.activityCapacity\": \"待处理的活动请求过多,请稍后重试。\",\n \"governance.learning.commandFailedSuffix\": \"{{message}},但任务列表刷新失败\",\n \"governance.learning.cmd.retry\": \"任务已重新开始\",\n \"governance.learning.cmd.cancel\": \"任务已取消\",\n \"governance.learning.cmd.start\": \"任务已启动\",\n \"governance.learning.cmd.reopen\": \"任务已重新打开\",\n \"governance.learning.cmd.delete\": \"任务已删除\",\n \"governance.learning.cmd.comment\": \"评论已添加\",\n \"governance.learning.cmd.updated\": \"任务已更新\",\n \"governance.learning.createdRefreshFailed\": \"任务已创建,但任务列表刷新失败\",\n \"governance.learning.tasksTitle\": \"学习任务\",\n \"governance.learning.newTask\": \"新建学习任务\",\n \"governance.learning.empty\": \"暂无学习任务\",\n \"governance.learning.openWorkflow\": \"打开工作流视图\",\n \"governance.learning.openReviewTasks\": \"打开 {{count}} 个待审批任务{{s}}\",\n \"governance.learning.reviewCount\": \"{{count}} 项待审批{{s}}\",\n \"governance.learning.created\": \"学习任务已创建。正在准备 Agent Architect…\",\n \"governance.learning.createFailed\": \"创建学习任务失败。请重试。\",\n \"governance.learning.inProgress\": \"已有学习任务正在进行中。请先完成它再开始新的任务。\",\n \"governance.learning.goalLabel\": \"本轮学习目标\",\n \"governance.learning.goalRequired\": \"请描述你希望该智能体在这一轮学习或改进什么\",\n \"governance.learning.goalPlaceholder\": \"例如:基于价格保护策略,提升智能体处理价格争议时的准确度\",\n \"governance.learning.referenceMaterials\": \"参考材料\",\n \"governance.learning.referenceMaterialsHint\": \"可选。这些材料将作为本轮学习的参考资料。\",\n \"governance.learning.start\": \"开始学习\",\n \"governance.learning.noTasks\": \"暂无任务\",\n \"governance.learning.selectRound\": \"选择轮次\",\n \"governance.learning.tasksCount\": \"{{done}}/{{total}} 个任务\",\n \"governance.learning.tasksDone\": \"{{done}}/{{total}} 个任务已完成\",\n \"governance.learning.waiting\": \"{{count}} 项待处理\",\n \"governance.learning.back\": \"‹ 返回\",\n \"governance.learning.depBadgeDone\": \"⬦ {{count}} 项依赖 ✓\",\n \"governance.learning.depBadgeWaiting\": \"⬦ 等待 {{count}}\",\n \"governance.learning.expandNested\": \"在「{{title}}」中展开 {{count}} 个嵌套任务\",\n \"governance.learning.status.pending\": \"待处理\",\n \"governance.learning.status.running\": \"运行中\",\n \"governance.learning.status.review\": \"待审核\",\n \"governance.learning.status.failed\": \"失败\",\n \"governance.learning.status.interrupted\": \"已中断\",\n \"governance.learning.status.done\": \"已完成\",\n \"governance.learning.status.cancelled\": \"已取消\",\n \"governance.learning.roundCreateFailed\": \"创建学习轮次任务失败\",\n \"governance.learning.threadCreateFailed\": \"创建训练会话失败\",\n \"governance.canvas.zone.config\": \"CONFIG\",\n \"governance.canvas.dock.learningTasks\": \"学习任务\",\n \"governance.pinnedRail.openEval\": \"打开评测质量\",\n \"governance.pinnedRail.openLearning\": \"打开完整学习图谱\",\n \"governance.pinnedRail.new\": \"新建\",\n \"governance.configGraph.allSkills\": \"全部技能\",\n \"governance.configGraph.allSkillsDescription\": \"智能体可加载任意可用技能\",\n \"governance.evalQuality.target\": \"目标 {{score}}\",\n \"governance.overview.unnamed\": \"未命名\",\n \"governance.webApps.requestFailed\": \"请求失败\",\n \"governance.webApps.clipboardUnavailable\": \"剪贴板不可用\",\n \"governance.webApps.status.active\": \"已启用\",\n \"governance.webApps.status.disabled\": \"已停用\",\n \"governance.webApps.status.draft\": \"草稿\"\n }\n}\n","{\n \"messages\": {\n \"integration.chat.loadFailed\": \"Unable to load the assistant\",\n \"integration.sidebar.newThread\": \"New Thread\",\n \"integration.sidebar.history\": \"History\",\n \"integration.sidebar.historyTitle\": \"Conversation History\",\n \"integration.attach.files\": \"Attach files\",\n \"integration.attach.uploading\": \"Uploading...\",\n \"integration.attach.remove\": \"Remove\",\n \"integration.attach.removeNamed\": \"Remove {{name}}\",\n \"integration.composer.message\": \"Message\",\n \"integration.composer.placeholder\": \"Ask a question\",\n \"integration.composer.send\": \"Send message\",\n \"integration.composer.stop\": \"Stop response\",\n \"integration.composer.retryFailed\": \"Retry failed message\",\n \"integration.interrupt.aria\": \"Human review\",\n \"integration.interrupt.approve\": \"Approve\",\n \"integration.interrupt.reject\": \"Reject\",\n \"integration.interrupt.feedback\": \"Feedback\",\n \"integration.interrupt.detailsUnavailable\": \"Additional review details are unavailable.\",\n \"integration.interrupt.submitFailed\": \"Unable to submit review\",\n \"integration.markdown.unsupported\": \"Unsupported message content\",\n \"integration.markdown.image\": \"Image\",\n \"integration.messages.aria\": \"Messages\",\n \"integration.messages.empty\": \"Start a conversation\",\n \"integration.messages.activity\": \"Activity\",\n \"integration.messages.roleYou\": \"You\",\n \"integration.messages.roleAssistant\": \"Assistant\",\n \"integration.messages.tool\": \"Tool\",\n \"integration.model.label\": \"Model\",\n \"integration.project.label\": \"Project\",\n \"integration.threads.aria\": \"Conversations\",\n \"integration.threads.new\": \"New conversation\",\n \"integration.threads.empty\": \"No conversations yet\",\n \"integration.threads.defaultName\": \"Conversation {{index}}\",\n \"integration.threads.open\": \"Open {{name}}\",\n \"integration.threads.rename\": \"Rename\",\n \"integration.threads.renameNamed\": \"Rename {{name}}\",\n \"integration.threads.delete\": \"Delete\",\n \"integration.threads.deleteNamed\": \"Delete {{name}}\",\n \"integration.threads.renameTitle\": \"Rename conversation\",\n \"integration.threads.nameLabel\": \"Conversation name\",\n \"integration.threads.deleteTitle\": \"Delete conversation?\",\n \"integration.threads.deleteConfirm\": \"This conversation and its messages will be permanently deleted.\",\n \"integration.genui.callout\": \"Callout\",\n \"integration.genui.dataTable\": \"Data table\",\n \"integration.error.requestFailed\": \"Request failed\",\n \"integration.error.identityTokenFailed\": \"Identity token provider failed\",\n \"integration.error.notReady\": \"Web App is not ready\",\n \"integration.error.projectSelectionDisabled\": \"Project selection is disabled\",\n \"integration.error.projectNotAllowed\": \"Project is not allowed\",\n \"integration.error.modelSelectionDisabled\": \"Model selection is disabled\",\n \"integration.error.modelNotAllowed\": \"Model is not allowed\",\n \"integration.error.threadManagementDisabled\": \"Thread management is disabled\",\n \"integration.error.threadOtherProject\": \"Thread belongs to another project\",\n \"integration.error.threadNotFound\": \"Thread not found\",\n \"integration.error.streamError\": \"Stream error\",\n \"integration.error.alreadyStreaming\": \"A message is already streaming\",\n \"integration.error.noActiveThread\": \"No active thread\",\n \"integration.error.contentRequired\": \"Message content is required\",\n \"integration.error.noFailedMessage\": \"No failed message to retry\",\n \"integration.error.attachmentsDisabled\": \"Attachments are disabled\",\n \"integration.error.humanReviewDisabled\": \"Human review is disabled\",\n \"integration.error.interruptNotFound\": \"Interrupt not found\",\n \"integration.error.streamFailed\": \"Stream failed\",\n \"integration.error.invalidServerResponse\": \"Invalid server response\",\n \"integration.chat.creatingConversation\": \"Creating conversation...\",\n \"integration.interrupt.approvedMessage\": \"Approved\",\n \"integration.interrupt.changesRequestedMessage\": \"Changes requested\",\n \"integration.embed.guidance\": \"Open this chat from the host page embed to start chatting.\",\n \"integration.embed.webAppNotFound\": \"The embed page URL does not contain a valid web app id\",\n \"integration.embed.userIdRequired\": \"A valid embed user identity is required\"\n }\n}\n","{\n \"messages\": {\n \"integration.chat.loadFailed\": \"无法加载助手\",\n \"integration.sidebar.newThread\": \"新建会话\",\n \"integration.sidebar.history\": \"历史记录\",\n \"integration.sidebar.historyTitle\": \"会话历史\",\n \"integration.attach.files\": \"添加附件\",\n \"integration.attach.uploading\": \"上传中...\",\n \"integration.attach.remove\": \"移除\",\n \"integration.attach.removeNamed\": \"移除 {{name}}\",\n \"integration.composer.message\": \"消息\",\n \"integration.composer.placeholder\": \"问一个问题\",\n \"integration.composer.send\": \"发送消息\",\n \"integration.composer.stop\": \"停止回复\",\n \"integration.composer.retryFailed\": \"重试失败的消息\",\n \"integration.interrupt.aria\": \"人工审核\",\n \"integration.interrupt.approve\": \"通过\",\n \"integration.interrupt.reject\": \"驳回\",\n \"integration.interrupt.feedback\": \"反馈\",\n \"integration.interrupt.detailsUnavailable\": \"暂无更多审核详情。\",\n \"integration.interrupt.submitFailed\": \"提交审核失败\",\n \"integration.markdown.unsupported\": \"不支持的消息内容\",\n \"integration.markdown.image\": \"图片\",\n \"integration.messages.aria\": \"消息\",\n \"integration.messages.empty\": \"开始一段对话\",\n \"integration.messages.activity\": \"活动\",\n \"integration.messages.roleYou\": \"你\",\n \"integration.messages.roleAssistant\": \"助手\",\n \"integration.messages.tool\": \"工具\",\n \"integration.model.label\": \"模型\",\n \"integration.project.label\": \"项目\",\n \"integration.threads.aria\": \"会话\",\n \"integration.threads.new\": \"新建会话\",\n \"integration.threads.empty\": \"暂无会话\",\n \"integration.threads.defaultName\": \"会话 {{index}}\",\n \"integration.threads.open\": \"打开 {{name}}\",\n \"integration.threads.rename\": \"重命名\",\n \"integration.threads.renameNamed\": \"重命名 {{name}}\",\n \"integration.threads.delete\": \"删除\",\n \"integration.threads.deleteNamed\": \"删除 {{name}}\",\n \"integration.threads.renameTitle\": \"重命名会话\",\n \"integration.threads.nameLabel\": \"会话名称\",\n \"integration.threads.deleteTitle\": \"删除会话?\",\n \"integration.threads.deleteConfirm\": \"该会话及其消息将被永久删除。\",\n \"integration.genui.callout\": \"提示框\",\n \"integration.genui.dataTable\": \"数据表格\",\n \"integration.error.requestFailed\": \"请求失败\",\n \"integration.error.identityTokenFailed\": \"身份令牌提供方失败\",\n \"integration.error.notReady\": \"Web App 尚未就绪\",\n \"integration.error.projectSelectionDisabled\": \"项目选择已禁用\",\n \"integration.error.projectNotAllowed\": \"不允许使用该项目\",\n \"integration.error.modelSelectionDisabled\": \"模型选择已禁用\",\n \"integration.error.modelNotAllowed\": \"不允许使用该模型\",\n \"integration.error.threadManagementDisabled\": \"会话管理已禁用\",\n \"integration.error.threadOtherProject\": \"会话属于另一个项目\",\n \"integration.error.threadNotFound\": \"未找到会话\",\n \"integration.error.streamError\": \"流错误\",\n \"integration.error.alreadyStreaming\": \"已有消息正在流式传输\",\n \"integration.error.noActiveThread\": \"没有活跃会话\",\n \"integration.error.contentRequired\": \"消息内容不能为空\",\n \"integration.error.noFailedMessage\": \"没有可重试的失败消息\",\n \"integration.error.attachmentsDisabled\": \"附件功能已禁用\",\n \"integration.error.humanReviewDisabled\": \"人工审核已禁用\",\n \"integration.error.interruptNotFound\": \"未找到中断\",\n \"integration.error.streamFailed\": \"流式传输失败\",\n \"integration.error.invalidServerResponse\": \"服务器响应无效\",\n \"integration.chat.creatingConversation\": \"正在创建对话...\",\n \"integration.interrupt.approvedMessage\": \"已通过\",\n \"integration.interrupt.changesRequestedMessage\": \"已请求修改\",\n \"integration.embed.guidance\": \"请从宿主页面嵌入中打开此对话以开始聊天。\",\n \"integration.embed.webAppNotFound\": \"嵌入页面 URL 不包含有效的 Web App ID\",\n \"integration.embed.userIdRequired\": \"需要有效的嵌入用户身份\"\n }\n}\n","{\n \"messages\": {\n \"mcpapp.fallbackTitle\": \"MCP App\",\n \"mcpapp.openInSideApp\": \"Open in side app\",\n \"mcpapp.unavailable\": \"MCP App unavailable\",\n \"mcpapp.unavailableDescription\": \"MCP Apps require the gateway sandbox to be served from a different origin than the console.\",\n \"mcpapp.failedToLoad\": \"MCP App failed to load: {{error}}\",\n \"mcpapp.resourceLoadFailed\": \"Failed to load MCP app resource\",\n \"mcpapp.toolResultAlt\": \"tool result\",\n \"mcpapp.test.badge\": \"Plugin test\",\n \"mcpapp.test.input\": \"Test input\",\n \"mcpapp.test.result\": \"Result\",\n \"mcpapp.test.data\": \"Data\",\n \"mcpapp.test.ui\": \"UI\"\n }\n}\n","{\n \"messages\": {\n \"mcpapp.fallbackTitle\": \"MCP App\",\n \"mcpapp.openInSideApp\": \"在侧栏中打开\",\n \"mcpapp.unavailable\": \"MCP App 不可用\",\n \"mcpapp.unavailableDescription\": \"MCP App 要求网关沙箱与控制台由不同源(origin)提供服务。\",\n \"mcpapp.failedToLoad\": \"MCP App 加载失败:{{error}}\",\n \"mcpapp.resourceLoadFailed\": \"加载 MCP App 资源失败\",\n \"mcpapp.toolResultAlt\": \"工具执行结果\",\n \"mcpapp.test.badge\": \"插件测试\",\n \"mcpapp.test.input\": \"测试输入\",\n \"mcpapp.test.result\": \"测试结果\",\n \"mcpapp.test.data\": \"Data\",\n \"mcpapp.test.ui\": \"UI\"\n }\n}\n","{\n \"messages\": {\n \"migration.page.title\": \"Configuration Migration\",\n \"migration.page.subtitle\": \"Export tenant configuration to a tar.gz archive, or import a previous archive\",\n \"migration.export.title\": \"Export\",\n \"migration.export.description\": \"Select configuration types and specific entities to export. Download a tar.gz archive to import into another tenant.\",\n \"migration.import.title\": \"Import\",\n \"migration.import.description\": \"Upload a previously exported tar.gz archive. Preview conflicts and choose how to handle duplicates before applying.\",\n \"migration.export.heading\": \"Export Configuration\",\n \"migration.import.heading\": \"Import Configuration\",\n \"migration.step.types\": \"Types\",\n \"migration.step.entities\": \"Entities\",\n \"migration.step.download\": \"Download\",\n \"migration.step.upload\": \"Upload\",\n \"migration.step.review\": \"Review\",\n \"migration.step.apply\": \"Apply\",\n \"migration.step.done\": \"Done\",\n \"migration.export.ready\": \"Export ready\",\n \"migration.export.readyHint\": \"Your configuration has been exported to a tar.gz archive.\",\n \"migration.export.download\": \"Download archive\",\n \"migration.export.depAlert\": \"Additional types required for dependencies\",\n \"migration.export.missing\": \"Missing:\",\n \"migration.export.cascadeParents\": \"CASCADE parents:\",\n \"migration.export.includeAndExport\": \"Include and export\",\n \"migration.export.selectedCount\": \"{{selected}} of {{total}} selected\",\n \"migration.export.exportEntities\": \"Export {{count}} entities\",\n \"migration.export.loadingEntities\": \"Loading entities...\",\n \"migration.export.selectAll\": \"Select all\",\n \"migration.export.clear\": \"Clear\",\n \"migration.export.itemName\": \"entity\",\n \"migration.export.dependsOn\": \"depends on {{list}}\",\n \"migration.export.categoryCore\": \"Core\",\n \"migration.export.categoryPlugins\": \"Plugins\",\n \"migration.export.next\": \"Next: select entities ({{count}} {{noun}})\",\n \"migration.export.nextTypeOne\": \"type\",\n \"migration.export.nextTypeOther\": \"types\",\n \"migration.import.complete\": \"Import complete\",\n \"migration.import.created\": \"{{count}} created\",\n \"migration.import.skipped\": \"{{count}} skipped\",\n \"migration.import.failed\": \"{{count}} failed\",\n \"migration.import.done\": \"Done\",\n \"migration.import.apply\": \"Apply import\",\n \"migration.import.dropHint\": \"Click or drag a tar.gz export archive here\",\n \"migration.import.dropHintSub\": \"Upload a previously exported configuration archive\",\n \"migration.import.errorCount\": \"{{count}} {{noun}}\",\n \"migration.import.errorOne\": \"error\",\n \"migration.import.errorOther\": \"errors\",\n \"migration.import.summaryNew\": \"{{newCount}} new, {{conflictCount}} conflicts\",\n \"migration.import.summaryErrors\": \", {{count}} errors\",\n \"migration.conflict.heading\": \"Conflicts ({{count}})\",\n \"migration.conflict.newItems\": \"New items ({{count}})\",\n \"migration.conflict.type\": \"Type\",\n \"migration.conflict.nameId\": \"Name/ID\",\n \"migration.conflict.name\": \"Name\",\n \"migration.conflict.conflict\": \"Conflict\",\n \"migration.conflict.idExists\": \"ID exists\",\n \"migration.conflict.uniqueConstraint\": \"Unique constraint\",\n \"migration.conflict.action\": \"Action\",\n \"migration.conflict.skip\": \"Skip\",\n \"migration.conflict.overwrite\": \"Overwrite\",\n \"migration.conflict.rename\": \"Rename\",\n \"migration.conflict.newId\": \"New ID\",\n \"migration.export.itemName_one\": \"entity\",\n \"migration.export.itemName_other\": \"entities\",\n \"migration.import.selectArchiveFirst\": \"Select and preview a tar.gz archive first\"\n }\n}\n","{\n \"messages\": {\n \"migration.page.title\": \"配置数据迁移\",\n \"migration.page.subtitle\": \"将租户配置导出为 tar.gz 归档,或导入先前导出的归档\",\n \"migration.export.title\": \"导出\",\n \"migration.export.description\": \"选择要导出的配置类型和具体实体。下载 tar.gz 归档后可导入到另一个租户。\",\n \"migration.import.title\": \"导入\",\n \"migration.import.description\": \"上传先前导出的 tar.gz 归档。应用前可预览冲突并选择重复项的处理方式。\",\n \"migration.export.heading\": \"导出配置\",\n \"migration.import.heading\": \"导入配置\",\n \"migration.step.types\": \"类型\",\n \"migration.step.entities\": \"实体\",\n \"migration.step.download\": \"下载\",\n \"migration.step.upload\": \"上传\",\n \"migration.step.review\": \"检查\",\n \"migration.step.apply\": \"应用\",\n \"migration.step.done\": \"完成\",\n \"migration.export.ready\": \"导出已就绪\",\n \"migration.export.readyHint\": \"你的配置已导出为 tar.gz 归档。\",\n \"migration.export.download\": \"下载归档\",\n \"migration.export.depAlert\": \"依赖项需要额外类型\",\n \"migration.export.missing\": \"缺失:\",\n \"migration.export.cascadeParents\": \"CASCADE 父级:\",\n \"migration.export.includeAndExport\": \"包含并导出\",\n \"migration.export.selectedCount\": \"已选择 {{selected}} / {{total}}\",\n \"migration.export.exportEntities\": \"导出 {{count}} 个实体\",\n \"migration.export.loadingEntities\": \"正在加载实体...\",\n \"migration.export.selectAll\": \"全选\",\n \"migration.export.clear\": \"清空\",\n \"migration.export.itemName\": \"实体\",\n \"migration.export.dependsOn\": \"依赖 {{list}}\",\n \"migration.export.categoryCore\": \"核心\",\n \"migration.export.categoryPlugins\": \"插件\",\n \"migration.export.next\": \"下一步:选择实体({{count}} 个{{noun}})\",\n \"migration.export.nextTypeOne\": \"类型\",\n \"migration.export.nextTypeOther\": \"类型\",\n \"migration.import.complete\": \"导入完成\",\n \"migration.import.created\": \"已创建 {{count}} 个\",\n \"migration.import.skipped\": \"已跳过 {{count}} 个\",\n \"migration.import.failed\": \"失败 {{count}} 个\",\n \"migration.import.done\": \"完成\",\n \"migration.import.apply\": \"应用导入\",\n \"migration.import.dropHint\": \"点击或将 tar.gz 导出归档拖到此处\",\n \"migration.import.dropHintSub\": \"上传先前导出的配置归档\",\n \"migration.import.errorCount\": \"{{count}} 个{{noun}}\",\n \"migration.import.errorOne\": \"错误\",\n \"migration.import.errorOther\": \"错误\",\n \"migration.import.summaryNew\": \"{{newCount}} 个新增,{{conflictCount}} 个冲突\",\n \"migration.import.summaryErrors\": \",{{count}} 个错误\",\n \"migration.conflict.heading\": \"冲突({{count}})\",\n \"migration.conflict.newItems\": \"新增项({{count}})\",\n \"migration.conflict.type\": \"类型\",\n \"migration.conflict.nameId\": \"名称/ID\",\n \"migration.conflict.name\": \"名称\",\n \"migration.conflict.conflict\": \"冲突\",\n \"migration.conflict.idExists\": \"ID 已存在\",\n \"migration.conflict.uniqueConstraint\": \"唯一约束冲突\",\n \"migration.conflict.action\": \"处理方式\",\n \"migration.conflict.skip\": \"跳过\",\n \"migration.conflict.overwrite\": \"覆盖\",\n \"migration.conflict.rename\": \"重命名\",\n \"migration.conflict.newId\": \"新的 ID\",\n \"migration.export.itemName_one\": \"实体\",\n \"migration.export.itemName_other\": \"实体\",\n \"migration.import.selectArchiveFirst\": \"请先选择并预览 tar.gz 归档\"\n }\n}\n","{\n \"messages\": {\n \"projectRoom.section.members\": \"Members\",\n \"projectRoom.section.tasks\": \"Tasks\",\n \"projectRoom.section.files\": \"Files\",\n \"projectRoom.header.moreActions\": \"More actions\",\n \"projectRoom.header.refreshRoom\": \"Refresh room\",\n \"projectRoom.shell.title\": \"Project Room\",\n \"projectRoom.shell.selectProject\": \"Select a project to open its room.\",\n \"projectRoom.shell.backToRooms\": \"Back to rooms\",\n \"projectRoom.shell.loadingRoom\": \"Loading room\",\n \"projectRoom.shell.loadingStateAria\": \"Room loading state\",\n \"projectRoom.shell.announcementsAria\": \"New message announcements\",\n \"projectRoom.shell.conversationAria\": \"Room conversation\",\n \"projectRoom.shell.newMessageFrom\": \"New message from {{author}}\",\n \"projectRoom.shell.roomUpdate\": \"Room update: {{text}}\",\n \"projectRoom.shell.thinkingOne\": \"{{name}} is thinking…\",\n \"projectRoom.shell.thinkingOther\": \"{{count}} agents are thinking…\",\n \"projectRoom.shell.task\": \"Task\",\n \"projectRoom.shell.authorAssistant\": \"an assistant\",\n \"projectRoom.shell.authorSomeone\": \"someone\",\n \"projectRoom.shell.authorRoom\": \"the room\",\n \"projectRoom.shell.blockedRevoked\": \"Your access to this project was revoked.\",\n \"projectRoom.shell.blockedViewer\": \"Viewers cannot post messages\",\n \"projectRoom.shell.blockedNotMember\": \"You are not a member of this project room.\",\n \"projectRoom.shell.blockedGeneric\": \"You cannot post messages in this room.\",\n \"projectRoom.composer.sectionAria\": \"Compose project room message\",\n \"projectRoom.composer.messageTheRoom\": \"Message the room\",\n \"projectRoom.composer.attachFiles\": \"Attach files\",\n \"projectRoom.composer.attachments\": \"Attachments\",\n \"projectRoom.composer.addFiles\": \"Add files\",\n \"projectRoom.composer.addFilesHint\": \"Tap to choose a file, take a photo, or record a video\",\n \"projectRoom.composer.uploadFailed\": \"upload failed\",\n \"projectRoom.composer.fileTooLarge\": \"{{name}} is too large (max {{max}}MB)\",\n \"projectRoom.composer.replyingTo\": \"Replying to {{author}}: {{preview}}\",\n \"projectRoom.composer.cancelReply\": \"Cancel reply\",\n \"projectRoom.composer.blockedDefault\": \"You cannot post messages in this room.\",\n \"projectRoom.composer.sendFailed\": \"Failed to send the message\",\n \"projectRoom.message.reply\": \"Reply\",\n \"projectRoom.message.sent\": \"Sent\",\n \"projectRoom.message.notDelivered\": \"Not delivered to an assistant\",\n \"projectRoom.message.retryDelivery\": \"Retry delivery\",\n \"projectRoom.message.earlierMessage\": \"Earlier message\",\n \"projectRoom.message.replyingToEarlier\": \"Replying to an earlier message\",\n \"projectRoom.agent.viewAgentWork\": \"View agent work\",\n \"projectRoom.taskEvent.openDetails\": \"{{label}}: {{title}}. Open task details\",\n \"projectRoom.timeline.aria\": \"Project room timeline\",\n \"projectRoom.timeline.loadOlder\": \"Load older messages\",\n \"projectRoom.timeline.loadingOlder\": \"Loading older messages\",\n \"projectRoom.timeline.requestFailed\": \"The room request failed.\",\n \"projectRoom.timeline.loadingMessages\": \"Loading messages\",\n \"projectRoom.timeline.noMessages\": \"No messages yet\",\n \"projectRoom.timeline.newMessages\": \"New messages\",\n \"projectRoom.files.aria\": \"Project files\",\n \"projectRoom.files.projectAssets\": \"Project Assets\",\n \"projectRoom.files.selectProjectFirst\": \"Please select a workspace and project first.\",\n \"projectRoom.files.selectProjectBeforeUpload\": \"Please select a workspace and project before uploading.\",\n \"projectRoom.files.preview\": \"Preview: {{name}}\",\n \"projectRoom.files.uploaded\": \"Uploaded \\\"{{name}}\\\" successfully\",\n \"projectRoom.files.uploadFailed\": \"Failed to upload file\",\n \"projectRoom.tasks.aria\": \"Project tasks\",\n \"projectRoom.tasks.detailAria\": \"Task detail\",\n \"projectRoom.tasks.listAria\": \"Project task list\",\n \"projectRoom.tasks.empty\": \"No tasks in this project yet\",\n \"projectRoom.tasks.openTask\": \"Open task {{title}}\",\n \"projectRoom.tasks.owner\": \"{{role}} {{id}}\",\n \"projectRoom.tasks.ownerAgent\": \"Agent\",\n \"projectRoom.tasks.blockedBy\": \"Blocked by {{count}} {{noun}}\",\n \"projectRoom.tasks.blockedByOne\": \"task\",\n \"projectRoom.tasks.blockedByOther\": \"tasks\",\n \"projectRoom.tasks.dependenciesMet\": \"Dependencies met\",\n \"projectRoom.tasks.activityFailed\": \"Activity could not be loaded. Please try again shortly.\",\n \"projectRoom.roster.aria\": \"Project room roster\",\n \"projectRoom.roster.botsHeading\": \"Bots\",\n \"projectRoom.roster.botsAria\": \"Bots\",\n \"projectRoom.roster.peopleHeading\": \"People\",\n \"projectRoom.roster.humansAria\": \"Humans\",\n \"projectRoom.roster.removedBotsHeading\": \"Removed bots\",\n \"projectRoom.roster.removedBotsAria\": \"Removed bots\",\n \"projectRoom.roster.searchPlaceholder\": \"Search members…\",\n \"projectRoom.roster.searchAria\": \"Search members\",\n \"projectRoom.roster.add\": \"Add\",\n \"projectRoom.roster.remove\": \"Remove\",\n \"projectRoom.roster.noBots\": \"No bots in this room yet.\",\n \"projectRoom.roster.noBotsMatch\": \"No bots match your search.\",\n \"projectRoom.roster.noHumans\": \"No humans in this room yet.\",\n \"projectRoom.roster.noPeopleMatch\": \"No people match your search.\",\n \"projectRoom.roster.builtIn\": \"Built-in\",\n \"projectRoom.roster.builtInCoordinator\": \"Built-in coordinator\",\n \"projectRoom.roster.specialist\": \"Specialist\",\n \"projectRoom.roster.viewAgentWorkFor\": \"View agent work for {{name}}\",\n \"projectRoom.roster.moreActionsFor\": \"More actions for {{name}}\",\n \"projectRoom.roster.addHuman\": \"Add human\",\n \"projectRoom.roster.editHuman\": \"Edit human\",\n \"projectRoom.roster.removeHuman\": \"Remove human\",\n \"projectRoom.roster.addBot\": \"Add bot\",\n \"projectRoom.roster.editBot\": \"Edit bot\",\n \"projectRoom.roster.removeBot\": \"Remove bot\",\n \"projectRoom.roster.resume\": \"Resume\",\n \"projectRoom.roster.pause\": \"Pause\",\n \"projectRoom.roster.editMention\": \"Edit mention\",\n \"projectRoom.roster.editRole\": \"Edit role\",\n \"projectRoom.roster.loading\": \"Loading…\",\n \"projectRoom.roster.noAvailablePeople\": \"No available people\",\n \"projectRoom.roster.fieldUser\": \"User\",\n \"projectRoom.roster.fieldRole\": \"Role\",\n \"projectRoom.roster.fieldAssistant\": \"Assistant\",\n \"projectRoom.roster.fieldMentionName\": \"Mention name\",\n \"projectRoom.roster.selectPerson\": \"Select a person\",\n \"projectRoom.roster.roleRequired\": \"Role is required\",\n \"projectRoom.roster.assistantRequired\": \"Assistant is required\",\n \"projectRoom.roster.mentionNameRequired\": \"Mention name is required\",\n \"projectRoom.roster.mentionPlaceholder\": \"Used as @mention in the room\",\n \"projectRoom.roster.removeMemberConfirm\": \"Remove member {{name}} from this project? They will lose access to the room.\",\n \"projectRoom.roster.removeBotConfirm\": \"Remove bot {{title}} from this room? Its message history remains visible.\",\n \"projectRoom.roster.requestFailed\": \"The request failed. Try again.\",\n \"projectRoom.roster.availability.working\": \"Working\",\n \"projectRoom.roster.availability.waiting\": \"Waiting\",\n \"projectRoom.roster.availability.available\": \"Available\",\n \"projectRoom.roster.availability.paused\": \"Paused\",\n \"projectRoom.roster.availability.removed\": \"Removed\",\n \"projectRoom.roster.role.owner\": \"Owner\",\n \"projectRoom.roster.role.owner.description\": \"Full control: settings, members, and messages.\",\n \"projectRoom.roster.role.admin\": \"Admin\",\n \"projectRoom.roster.role.admin.description\": \"Manage settings and members; can send messages.\",\n \"projectRoom.roster.role.member\": \"Member\",\n \"projectRoom.roster.role.member.description\": \"Send messages and work in the project.\",\n \"projectRoom.roster.role.viewer\": \"Viewer\",\n \"projectRoom.roster.role.viewer.description\": \"Read-only access.\",\n \"projectRoom.connection.reconnecting\": \"Reconnecting…\",\n \"projectRoom.connection.superseded\": \"This workspace is open in another tab.\",\n \"projectRoom.connection.revoked\": \"Workspace access revoked.\",\n \"projectRoom.author.system\": \"System\",\n \"projectRoom.author.removedAssistant\": \"Removed assistant\",\n \"projectRoom.author.removedMember\": \"Removed member\",\n \"projectRoom.agent.workCardDescription\": \"Room conversation with {{name}}\",\n \"projectRoom.time.yesterday\": \"Yesterday\",\n \"projectRoom.error.accessRevoked\": \"Project access was revoked.\",\n \"projectRoom.error.superseded\": \"This room was opened in another tab.\",\n \"projectRoom.error.noProject\": \"No project selected\",\n \"projectRoom.error.messageRequired\": \"Message text is required\",\n \"projectRoom.error.membershipNotFound\": \"Membership not found\",\n \"projectRoom.error.botNotFound\": \"Bot membership not found\",\n \"projectRoom.notification.newMessage\": \"New message\"\n }\n}\n","{\n \"messages\": {\n \"projectRoom.section.members\": \"成员\",\n \"projectRoom.section.tasks\": \"任务\",\n \"projectRoom.section.files\": \"文件\",\n \"projectRoom.header.moreActions\": \"更多操作\",\n \"projectRoom.header.refreshRoom\": \"刷新空间\",\n \"projectRoom.shell.title\": \"项目空间\",\n \"projectRoom.shell.selectProject\": \"请选择一个项目以打开它的空间。\",\n \"projectRoom.shell.backToRooms\": \"返回空间列表\",\n \"projectRoom.shell.loadingRoom\": \"正在加载空间\",\n \"projectRoom.shell.loadingStateAria\": \"空间加载状态\",\n \"projectRoom.shell.announcementsAria\": \"新消息播报\",\n \"projectRoom.shell.conversationAria\": \"空间对话\",\n \"projectRoom.shell.newMessageFrom\": \"来自 {{author}} 的新消息\",\n \"projectRoom.shell.roomUpdate\": \"空间更新:{{text}}\",\n \"projectRoom.shell.thinkingOne\": \"{{name}} 正在思考…\",\n \"projectRoom.shell.thinkingOther\": \"{{count}} 个智能体正在思考…\",\n \"projectRoom.shell.task\": \"任务\",\n \"projectRoom.shell.authorAssistant\": \"一个助手\",\n \"projectRoom.shell.authorSomeone\": \"某位成员\",\n \"projectRoom.shell.authorRoom\": \"空间\",\n \"projectRoom.shell.blockedRevoked\": \"你对这个项目的访问权限已被撤销。\",\n \"projectRoom.shell.blockedViewer\": \"访客不能发送消息\",\n \"projectRoom.shell.blockedNotMember\": \"你不是这个项目空间的成员。\",\n \"projectRoom.shell.blockedGeneric\": \"你不能在这个空间发送消息。\",\n \"projectRoom.composer.sectionAria\": \"撰写项目空间消息\",\n \"projectRoom.composer.messageTheRoom\": \"给空间发消息\",\n \"projectRoom.composer.attachFiles\": \"添加附件\",\n \"projectRoom.composer.attachments\": \"附件\",\n \"projectRoom.composer.addFiles\": \"添加文件\",\n \"projectRoom.composer.addFilesHint\": \"点击选择文件、拍照或录制视频\",\n \"projectRoom.composer.uploadFailed\": \"上传失败\",\n \"projectRoom.composer.fileTooLarge\": \"{{name}} 过大(上限 {{max}}MB)\",\n \"projectRoom.composer.replyingTo\": \"回复 {{author}}:{{preview}}\",\n \"projectRoom.composer.cancelReply\": \"取消回复\",\n \"projectRoom.composer.blockedDefault\": \"你不能在这个空间发送消息。\",\n \"projectRoom.composer.sendFailed\": \"消息发送失败\",\n \"projectRoom.message.reply\": \"回复\",\n \"projectRoom.message.sent\": \"已发送\",\n \"projectRoom.message.notDelivered\": \"未送达任何助手\",\n \"projectRoom.message.retryDelivery\": \"重新发送\",\n \"projectRoom.message.earlierMessage\": \"较早的消息\",\n \"projectRoom.message.replyingToEarlier\": \"正在回复较早的消息\",\n \"projectRoom.agent.viewAgentWork\": \"查看智能体工作\",\n \"projectRoom.taskEvent.openDetails\": \"{{label}}:{{title}}。打开任务详情\",\n \"projectRoom.timeline.aria\": \"项目空间时间线\",\n \"projectRoom.timeline.loadOlder\": \"加载更早的消息\",\n \"projectRoom.timeline.loadingOlder\": \"正在加载更早的消息\",\n \"projectRoom.timeline.requestFailed\": \"空间请求失败。\",\n \"projectRoom.timeline.loadingMessages\": \"正在加载消息\",\n \"projectRoom.timeline.noMessages\": \"暂无消息\",\n \"projectRoom.timeline.newMessages\": \"新消息\",\n \"projectRoom.files.aria\": \"项目文件\",\n \"projectRoom.files.projectAssets\": \"项目资产\",\n \"projectRoom.files.selectProjectFirst\": \"请先选择工作区和项目。\",\n \"projectRoom.files.selectProjectBeforeUpload\": \"请先选择工作区和项目再上传。\",\n \"projectRoom.files.preview\": \"预览:{{name}}\",\n \"projectRoom.files.uploaded\": \"已成功上传“{{name}}”\",\n \"projectRoom.files.uploadFailed\": \"文件上传失败\",\n \"projectRoom.tasks.aria\": \"项目任务\",\n \"projectRoom.tasks.detailAria\": \"任务详情\",\n \"projectRoom.tasks.listAria\": \"项目任务列表\",\n \"projectRoom.tasks.empty\": \"这个项目中暂无任务\",\n \"projectRoom.tasks.openTask\": \"打开任务 {{title}}\",\n \"projectRoom.tasks.owner\": \"{{role}} {{id}}\",\n \"projectRoom.tasks.ownerAgent\": \"智能体\",\n \"projectRoom.tasks.blockedBy\": \"被 {{count}} 个{{noun}}阻塞\",\n \"projectRoom.tasks.blockedByOne\": \"任务\",\n \"projectRoom.tasks.blockedByOther\": \"任务\",\n \"projectRoom.tasks.dependenciesMet\": \"依赖已满足\",\n \"projectRoom.tasks.activityFailed\": \"活动加载失败,请稍后重试。\",\n \"projectRoom.roster.aria\": \"项目空间成员\",\n \"projectRoom.roster.botsHeading\": \"机器人\",\n \"projectRoom.roster.botsAria\": \"机器人\",\n \"projectRoom.roster.peopleHeading\": \"成员\",\n \"projectRoom.roster.humansAria\": \"人类成员\",\n \"projectRoom.roster.removedBotsHeading\": \"已移除的机器人\",\n \"projectRoom.roster.removedBotsAria\": \"已移除的机器人\",\n \"projectRoom.roster.searchPlaceholder\": \"搜索成员…\",\n \"projectRoom.roster.searchAria\": \"搜索成员\",\n \"projectRoom.roster.add\": \"添加\",\n \"projectRoom.roster.remove\": \"移除\",\n \"projectRoom.roster.noBots\": \"这个空间还没有机器人。\",\n \"projectRoom.roster.noBotsMatch\": \"没有匹配的机器人。\",\n \"projectRoom.roster.noHumans\": \"这个空间还没有人类成员。\",\n \"projectRoom.roster.noPeopleMatch\": \"没有匹配的成员。\",\n \"projectRoom.roster.builtIn\": \"内置\",\n \"projectRoom.roster.builtInCoordinator\": \"内置协调者\",\n \"projectRoom.roster.specialist\": \"专家\",\n \"projectRoom.roster.viewAgentWorkFor\": \"查看 {{name}} 的智能体工作\",\n \"projectRoom.roster.moreActionsFor\": \"{{name}} 的更多操作\",\n \"projectRoom.roster.addHuman\": \"添加人类成员\",\n \"projectRoom.roster.editHuman\": \"编辑人类成员\",\n \"projectRoom.roster.removeHuman\": \"移除人类成员\",\n \"projectRoom.roster.addBot\": \"添加机器人\",\n \"projectRoom.roster.editBot\": \"编辑机器人\",\n \"projectRoom.roster.removeBot\": \"移除机器人\",\n \"projectRoom.roster.resume\": \"恢复\",\n \"projectRoom.roster.pause\": \"暂停\",\n \"projectRoom.roster.editMention\": \"编辑提及名\",\n \"projectRoom.roster.editRole\": \"编辑角色\",\n \"projectRoom.roster.loading\": \"加载中…\",\n \"projectRoom.roster.noAvailablePeople\": \"没有可用的人员\",\n \"projectRoom.roster.fieldUser\": \"用户\",\n \"projectRoom.roster.fieldRole\": \"角色\",\n \"projectRoom.roster.fieldAssistant\": \"助手\",\n \"projectRoom.roster.fieldMentionName\": \"提及名\",\n \"projectRoom.roster.selectPerson\": \"选择人员\",\n \"projectRoom.roster.roleRequired\": \"请选择角色\",\n \"projectRoom.roster.assistantRequired\": \"请选择助手\",\n \"projectRoom.roster.mentionNameRequired\": \"请填写提及名\",\n \"projectRoom.roster.mentionPlaceholder\": \"在空间中作为 @提及 使用\",\n \"projectRoom.roster.removeMemberConfirm\": \"将成员 {{name}} 从该项目移除?该成员将无法再访问这个空间。\",\n \"projectRoom.roster.removeBotConfirm\": \"将机器人 {{title}} 从这个空间移除?它的消息记录仍然可见。\",\n \"projectRoom.roster.requestFailed\": \"请求失败,请重试。\",\n \"projectRoom.roster.availability.working\": \"工作中\",\n \"projectRoom.roster.availability.waiting\": \"等待中\",\n \"projectRoom.roster.availability.available\": \"可用\",\n \"projectRoom.roster.availability.paused\": \"已暂停\",\n \"projectRoom.roster.availability.removed\": \"已移除\",\n \"projectRoom.roster.role.owner\": \"所有者\",\n \"projectRoom.roster.role.owner.description\": \"完全控制:设置、成员和消息。\",\n \"projectRoom.roster.role.admin\": \"管理员\",\n \"projectRoom.roster.role.admin.description\": \"管理设置和成员,可以发送消息。\",\n \"projectRoom.roster.role.member\": \"成员\",\n \"projectRoom.roster.role.member.description\": \"发送消息并参与项目协作。\",\n \"projectRoom.roster.role.viewer\": \"访客\",\n \"projectRoom.roster.role.viewer.description\": \"只读访问。\",\n \"projectRoom.connection.reconnecting\": \"正在重新连接…\",\n \"projectRoom.connection.superseded\": \"该工作区已在另一个标签页中打开。\",\n \"projectRoom.connection.revoked\": \"工作区访问权限已被撤销。\",\n \"projectRoom.author.system\": \"系统\",\n \"projectRoom.author.removedAssistant\": \"已移除的助手\",\n \"projectRoom.author.removedMember\": \"已移除的成员\",\n \"projectRoom.agent.workCardDescription\": \"与 {{name}} 的空间对话\",\n \"projectRoom.time.yesterday\": \"昨天\",\n \"projectRoom.error.accessRevoked\": \"项目访问权限已被撤销。\",\n \"projectRoom.error.superseded\": \"该空间已在另一个标签页中打开。\",\n \"projectRoom.error.noProject\": \"未选择项目\",\n \"projectRoom.error.messageRequired\": \"消息内容不能为空\",\n \"projectRoom.error.membershipNotFound\": \"未找到成员关系\",\n \"projectRoom.error.botNotFound\": \"未找到机器人成员关系\",\n \"projectRoom.notification.newMessage\": \"新消息\"\n }\n}\n","{\n \"messages\": {\n \"tasks.title\": \"Tasks\",\n \"tasks.inbox\": \"Inbox\",\n \"tasks.newTask\": \"New Task\",\n \"tasks.empty\": \"No tasks\",\n \"tasks.hideCompleted\": \"Hide completed\",\n \"tasks.button.open\": \"Open tasks\",\n \"tasks.allProjects\": \"All Projects\",\n \"tasks.view.board\": \"Board\",\n \"tasks.view.list\": \"List\",\n \"tasks.view.graph\": \"Graph\",\n \"tasks.owner.agent\": \"Agent\",\n \"tasks.owner.user\": \"User\",\n \"tasks.owner.me\": \"Me\",\n \"tasks.status.pending\": \"Pending\",\n \"tasks.status.in_progress\": \"In Progress\",\n \"tasks.status.review\": \"Review\",\n \"tasks.status.failed\": \"Failed\",\n \"tasks.status.interrupted\": \"Interrupted\",\n \"tasks.status.completed\": \"Completed\",\n \"tasks.status.cancelled\": \"Cancelled\",\n \"tasks.priority.high\": \"High\",\n \"tasks.priority.medium\": \"Medium\",\n \"tasks.priority.low\": \"Low\",\n \"tasks.origin.agent\": \"Agent\",\n \"tasks.origin.user\": \"User\",\n \"tasks.origin.project\": \"Project\",\n \"tasks.origin.learning\": \"Learning\",\n \"tasks.origin.title\": \"Origin: {{origin}}\",\n \"tasks.action.ariaLabel\": \"Task actions\",\n \"tasks.action.start\": \"Start\",\n \"tasks.action.stop\": \"Stop\",\n \"tasks.action.reopen\": \"Reopen\",\n \"tasks.create.project\": \"Project\",\n \"tasks.create.projectPlaceholder\": \"Select a project\",\n \"tasks.create.projectRequired\": \"Please select a project\",\n \"tasks.create.titleLabel\": \"Task Title\",\n \"tasks.create.titlePlaceholder\": \"Enter task title\",\n \"tasks.create.titleRequired\": \"Please enter task title\",\n \"tasks.create.description\": \"Description\",\n \"tasks.create.descriptionPlaceholder\": \"Enter description (optional)\",\n \"tasks.create.requireReview\": \"Require Review\",\n \"tasks.start.title\": \"Start task\",\n \"tasks.start.agentAria\": \"Agent\",\n \"tasks.start.agentPlaceholder\": \"Select an agent\",\n \"tasks.start.noAgents\": \"No eligible agents in this project\",\n \"tasks.start.loadFailed\": \"Agents could not be loaded.\",\n \"tasks.error.load\": \"Tasks could not be loaded. Please try again.\",\n \"tasks.error.refresh\": \"Tasks could not be refreshed. Your current tasks are still available.\",\n \"tasks.error.activity\": \"Activity could not be loaded. Please try again shortly.\",\n \"tasks.error.action\": \"Task action failed. Please retry.\",\n \"tasks.error.create\": \"Operation failed, please retry\",\n \"tasks.created\": \"Task created\",\n \"tasks.activity.result\": \"Result\",\n \"tasks.activity.beliefImpact\": \"Belief Impact\",\n \"tasks.activity.reported\": \"reported {{value}}\",\n \"tasks.activity.notAvailable\": \"n/a\",\n \"tasks.activity.viewChat\": \"View Chat\",\n \"tasks.belief.title\": \"Belief State (Last reconciled snapshot)\",\n \"tasks.belief.key\": \"Key\",\n \"tasks.belief.probability\": \"Probability\",\n \"tasks.belief.target\": \"Target\",\n \"tasks.belief.basis\": \"Basis\",\n \"tasks.detail.noDescription\": \"No task description\",\n \"tasks.detail.statusSummary\": \"Status: {{status}}\",\n \"tasks.detail.acceptance\": \"Acceptance ✓ {{done}}/{{total}}\",\n \"tasks.detail.waitingApproval\": \"Waiting for approval\",\n \"tasks.detail.approvalLoading\": \"Approval evidence is loading...\",\n \"tasks.detail.approvalUnavailable\": \"Approval evidence is unavailable.\",\n \"tasks.detail.noText\": \"No text provided\",\n \"tasks.detail.threadUnavailable\": \"The agent conversation is unavailable because no thread is associated with this task.\",\n \"tasks.detail.failureReason\": \"Failure Reason\",\n \"tasks.detail.noResult\": \"No result recorded\",\n \"tasks.detail.noFailureReason\": \"No failure reason recorded\",\n \"tasks.detail.artifacts\": \"Artifacts\",\n \"tasks.detail.references\": \"References\",\n \"tasks.detail.otherFiles\": \"Other files\",\n \"tasks.detail.noFiles\": \"No files attached\",\n \"tasks.detail.noConversation\": \"No conversation associated\",\n \"tasks.detail.activity\": \"Activity ({{count}})\",\n \"tasks.detail.noActivity\": \"No activity yet\",\n \"tasks.detail.completionEvidence\": \"Completion evidence recorded\",\n \"tasks.detail.attempt\": \"Attempt #{{attempt}}\",\n \"tasks.detail.viewAllActivity\": \"View all {{count}} activity items\",\n \"tasks.detail.showFewerActivity\": \"Show fewer activity items\",\n \"tasks.detail.viewAllSubtasks\": \"View all {{count}} subtasks\",\n \"tasks.detail.showFewerSubtasks\": \"Show fewer subtasks\",\n \"tasks.detail.subtaskProgress\": \"{{done}}/{{total}} completed\",\n \"tasks.detail.noSubtasks\": \"No subtasks\",\n \"tasks.detail.created\": \"Created\",\n \"tasks.detail.due\": \"Due\",\n \"tasks.detail.dependency\": \"Dependency\",\n \"tasks.detail.dependencyUnavailable\": \"Dependency unavailable\",\n \"tasks.detail.dependencyAria\": \"Dependency: {{title}}, status {{status}}\",\n \"tasks.detail.noDependencies\": \"No dependencies\",\n \"tasks.detail.subtaskAria\": \"{{title}}, status {{status}}\",\n \"tasks.detail.statusAria\": \"Updating task status; current status {{status}}\",\n \"tasks.detail.updating\": \"Updating · {{status}}\",\n \"tasks.workbench.taskCommand\": \"Task command\",\n \"tasks.workbench.parentAria\": \"Parent: {{title}}\",\n \"tasks.workbench.updated\": \"Updated\",\n \"tasks.workbench.viewAgentWork\": \"View agent work\",\n \"tasks.region.taskContent\": \"Task Content\",\n \"tasks.region.context\": \"Context\",\n \"tasks.region.output\": \"Output details\",\n \"tasks.region.subtasks\": \"Subtasks\",\n \"tasks.region.activity\": \"Activity\",\n \"tasks.fact.state\": \"State\",\n \"tasks.fact.status\": \"Status\",\n \"tasks.fact.priority\": \"Priority\",\n \"tasks.fact.reviewPolicy\": \"Review policy\",\n \"tasks.fact.waitingApproval\": \"Waiting approval\",\n \"tasks.fact.failureReasonRecorded\": \"Failure reason recorded\",\n \"tasks.fact.notSet\": \"Not set\",\n \"tasks.fact.overdue\": \"Overdue\",\n \"tasks.fact.execution\": \"Execution\",\n \"tasks.fact.statusDistribution\": \"Status distribution\",\n \"tasks.fact.dependencies\": \"Dependencies\",\n \"tasks.fact.dependenciesValue\": \"{{completed}} completed / {{known}} known / {{unavailable}} unavailable\",\n \"tasks.fact.latestActivity\": \"Latest activity\",\n \"tasks.fact.maxAttempt\": \"Maximum attempt\",\n \"tasks.fact.none\": \"None\",\n \"tasks.fact.output\": \"Output\",\n \"tasks.fact.resultRecorded\": \"Result recorded\",\n \"tasks.fact.failureRecorded\": \"Failure recorded\",\n \"tasks.fact.files\": \"Files\",\n \"tasks.fact.conversation\": \"Conversation\",\n \"tasks.outline.openTask\": \"Open task {{title}}, status {{status}}, priority {{priority}}, {{dependencies}}\",\n \"tasks.outline.noDependencies\": \"no dependencies\",\n \"tasks.outline.dependencySummary\": \"{{count}} {{state}} {{noun}}\",\n \"tasks.outline.incomplete\": \"incomplete\",\n \"tasks.outline.completed\": \"completed\",\n \"tasks.outline.dependencyOne\": \"dependency\",\n \"tasks.outline.dependencyOther\": \"dependencies\",\n \"tasks.outline.toggleAria\": \"{{action}} subtasks for {{title}}\",\n \"tasks.outline.expand\": \"Expand\",\n \"tasks.outline.collapse\": \"Collapse\",\n \"tasks.composer.attachFiles\": \"Attach files\",\n \"tasks.composer.attachments\": \"Attachments\",\n \"tasks.composer.addFiles\": \"Add files\",\n \"tasks.composer.addFilesHint\": \"Tap to choose a file, take a photo, or record a video\",\n \"tasks.composer.uploadFailed\": \"upload failed\",\n \"tasks.composer.fileTooLarge\": \"{{name}} is too large (max {{max}}MB)\",\n \"tasks.composer.commentAria\": \"Add a comment\",\n \"tasks.composer.commentPlaceholder\": \"Add a comment…\",\n \"tasks.composer.sendFailed\": \"Comment could not be sent. Please retry.\",\n \"tasks.composer.sendComment\": \"Send comment\"\n }\n}\n","{\n \"messages\": {\n \"tasks.title\": \"任务\",\n \"tasks.inbox\": \"收件箱\",\n \"tasks.newTask\": \"新建任务\",\n \"tasks.empty\": \"暂无任务\",\n \"tasks.hideCompleted\": \"隐藏已完成\",\n \"tasks.button.open\": \"打开任务\",\n \"tasks.allProjects\": \"全部项目\",\n \"tasks.view.board\": \"看板\",\n \"tasks.view.list\": \"列表\",\n \"tasks.view.graph\": \"图谱\",\n \"tasks.owner.agent\": \"智能体\",\n \"tasks.owner.user\": \"用户\",\n \"tasks.owner.me\": \"我\",\n \"tasks.status.pending\": \"待处理\",\n \"tasks.status.in_progress\": \"进行中\",\n \"tasks.status.review\": \"待审核\",\n \"tasks.status.failed\": \"失败\",\n \"tasks.status.interrupted\": \"已中断\",\n \"tasks.status.completed\": \"已完成\",\n \"tasks.status.cancelled\": \"已取消\",\n \"tasks.priority.high\": \"高\",\n \"tasks.priority.medium\": \"中\",\n \"tasks.priority.low\": \"低\",\n \"tasks.origin.agent\": \"智能体\",\n \"tasks.origin.user\": \"用户\",\n \"tasks.origin.project\": \"项目\",\n \"tasks.origin.learning\": \"学习\",\n \"tasks.origin.title\": \"来源:{{origin}}\",\n \"tasks.action.ariaLabel\": \"任务操作\",\n \"tasks.action.start\": \"开始\",\n \"tasks.action.stop\": \"停止\",\n \"tasks.action.reopen\": \"重新打开\",\n \"tasks.create.project\": \"项目\",\n \"tasks.create.projectPlaceholder\": \"选择项目\",\n \"tasks.create.projectRequired\": \"请选择项目\",\n \"tasks.create.titleLabel\": \"任务标题\",\n \"tasks.create.titlePlaceholder\": \"输入任务标题\",\n \"tasks.create.titleRequired\": \"请输入任务标题\",\n \"tasks.create.description\": \"描述\",\n \"tasks.create.descriptionPlaceholder\": \"输入描述(可选)\",\n \"tasks.create.requireReview\": \"需要审核\",\n \"tasks.start.title\": \"开始任务\",\n \"tasks.start.agentAria\": \"智能体\",\n \"tasks.start.agentPlaceholder\": \"选择智能体\",\n \"tasks.start.noAgents\": \"此项目中没有可用的智能体\",\n \"tasks.start.loadFailed\": \"无法加载智能体。\",\n \"tasks.error.load\": \"任务加载失败,请重试。\",\n \"tasks.error.refresh\": \"任务刷新失败,当前任务仍然可用。\",\n \"tasks.error.activity\": \"活动加载失败,请稍后重试。\",\n \"tasks.error.action\": \"任务操作失败,请重试。\",\n \"tasks.error.create\": \"操作失败,请重试\",\n \"tasks.created\": \"任务已创建\",\n \"tasks.activity.result\": \"结果\",\n \"tasks.activity.beliefImpact\": \"信念影响\",\n \"tasks.activity.reported\": \"报告 {{value}}\",\n \"tasks.activity.notAvailable\": \"不适用\",\n \"tasks.activity.viewChat\": \"查看对话\",\n \"tasks.belief.title\": \"信念状态(最近一次校准快照)\",\n \"tasks.belief.key\": \"键\",\n \"tasks.belief.probability\": \"概率\",\n \"tasks.belief.target\": \"目标\",\n \"tasks.belief.basis\": \"依据\",\n \"tasks.detail.noDescription\": \"暂无任务描述\",\n \"tasks.detail.statusSummary\": \"状态:{{status}}\",\n \"tasks.detail.acceptance\": \"验收 ✓ {{done}}/{{total}}\",\n \"tasks.detail.waitingApproval\": \"等待审批\",\n \"tasks.detail.approvalLoading\": \"审批证据加载中...\",\n \"tasks.detail.approvalUnavailable\": \"审批证据不可用。\",\n \"tasks.detail.noText\": \"未提供文本\",\n \"tasks.detail.threadUnavailable\": \"此任务未关联对话线程,无法查看智能体对话。\",\n \"tasks.detail.failureReason\": \"失败原因\",\n \"tasks.detail.noResult\": \"未记录结果\",\n \"tasks.detail.noFailureReason\": \"未记录失败原因\",\n \"tasks.detail.artifacts\": \"产物\",\n \"tasks.detail.references\": \"参考\",\n \"tasks.detail.otherFiles\": \"其他文件\",\n \"tasks.detail.noFiles\": \"未附加文件\",\n \"tasks.detail.noConversation\": \"未关联对话\",\n \"tasks.detail.activity\": \"活动({{count}})\",\n \"tasks.detail.noActivity\": \"暂无活动\",\n \"tasks.detail.completionEvidence\": \"已记录完成证据\",\n \"tasks.detail.attempt\": \"第 {{attempt}} 次尝试\",\n \"tasks.detail.viewAllActivity\": \"查看全部 {{count}} 条活动\",\n \"tasks.detail.showFewerActivity\": \"收起活动\",\n \"tasks.detail.viewAllSubtasks\": \"查看全部 {{count}} 个子任务\",\n \"tasks.detail.showFewerSubtasks\": \"收起子任务\",\n \"tasks.detail.subtaskProgress\": \"已完成 {{done}}/{{total}}\",\n \"tasks.detail.noSubtasks\": \"暂无子任务\",\n \"tasks.detail.created\": \"创建时间\",\n \"tasks.detail.due\": \"截止时间\",\n \"tasks.detail.dependency\": \"依赖\",\n \"tasks.detail.dependencyUnavailable\": \"依赖不可用\",\n \"tasks.detail.dependencyAria\": \"依赖:{{title}},状态 {{status}}\",\n \"tasks.detail.noDependencies\": \"无依赖\",\n \"tasks.detail.subtaskAria\": \"{{title}},状态 {{status}}\",\n \"tasks.detail.statusAria\": \"正在更新任务状态;当前状态 {{status}}\",\n \"tasks.detail.updating\": \"更新中 · {{status}}\",\n \"tasks.workbench.taskCommand\": \"任务操作\",\n \"tasks.workbench.parentAria\": \"上级:{{title}}\",\n \"tasks.workbench.updated\": \"更新于\",\n \"tasks.workbench.viewAgentWork\": \"查看智能体工作\",\n \"tasks.region.taskContent\": \"任务内容\",\n \"tasks.region.context\": \"上下文\",\n \"tasks.region.output\": \"输出详情\",\n \"tasks.region.subtasks\": \"子任务\",\n \"tasks.region.activity\": \"活动\",\n \"tasks.fact.state\": \"概览\",\n \"tasks.fact.status\": \"状态\",\n \"tasks.fact.priority\": \"优先级\",\n \"tasks.fact.reviewPolicy\": \"审核策略\",\n \"tasks.fact.waitingApproval\": \"等待审批\",\n \"tasks.fact.failureReasonRecorded\": \"已记录失败原因\",\n \"tasks.fact.notSet\": \"未设置\",\n \"tasks.fact.overdue\": \"已逾期\",\n \"tasks.fact.execution\": \"执行\",\n \"tasks.fact.statusDistribution\": \"状态分布\",\n \"tasks.fact.dependencies\": \"依赖\",\n \"tasks.fact.dependenciesValue\": \"已完成 {{completed}} / 已知 {{known}} / 不可用 {{unavailable}}\",\n \"tasks.fact.latestActivity\": \"最近活动\",\n \"tasks.fact.maxAttempt\": \"最大尝试次数\",\n \"tasks.fact.none\": \"无\",\n \"tasks.fact.output\": \"输出\",\n \"tasks.fact.resultRecorded\": \"已记录结果\",\n \"tasks.fact.failureRecorded\": \"已记录失败\",\n \"tasks.fact.files\": \"文件\",\n \"tasks.fact.conversation\": \"对话\",\n \"tasks.outline.openTask\": \"打开任务 {{title}},状态 {{status}},优先级 {{priority}},{{dependencies}}\",\n \"tasks.outline.noDependencies\": \"无依赖\",\n \"tasks.outline.dependencySummary\": \"{{count}} {{state}}{{noun}}\",\n \"tasks.outline.incomplete\": \"个未完成\",\n \"tasks.outline.completed\": \"个已完成\",\n \"tasks.outline.dependencyOne\": \"依赖\",\n \"tasks.outline.dependencyOther\": \"依赖\",\n \"tasks.outline.toggleAria\": \"{{action}}{{title}}的子任务\",\n \"tasks.outline.expand\": \"展开\",\n \"tasks.outline.collapse\": \"收起\",\n \"tasks.composer.attachFiles\": \"添加附件\",\n \"tasks.composer.attachments\": \"附件\",\n \"tasks.composer.addFiles\": \"添加文件\",\n \"tasks.composer.addFilesHint\": \"点击选择文件、拍照或录制视频\",\n \"tasks.composer.uploadFailed\": \"上传失败\",\n \"tasks.composer.fileTooLarge\": \"{{name}} 过大(上限 {{max}}MB)\",\n \"tasks.composer.commentAria\": \"添加评论\",\n \"tasks.composer.commentPlaceholder\": \"添加评论…\",\n \"tasks.composer.sendFailed\": \"评论发送失败,请重试。\",\n \"tasks.composer.sendComment\": \"发送评论\"\n }\n}\n","{\n \"messages\": {\n \"training.newTraining\": \"New Training\",\n \"training.scoreSuffix\": \"{{score}} score\",\n \"training.cards.title\": \"Training Center\",\n \"training.cards.itemName\": \"Agent\",\n \"training.cards.passRate\": \"{{rate}}% pass\",\n \"training.cards.notTrained\": \"Not trained\",\n \"training.round.qualityTrend\": \"Quality Trend\",\n \"training.round.newRound\": \"+ New Round\",\n \"training.round.empty\": \"No training rounds yet\",\n \"training.round.finish\": \"Finish Round\",\n \"training.round.finishConfirm\": \"Finish this round?\",\n \"training.round.finished\": \"Round finished\",\n \"training.round.finishFailed\": \"Failed to finish round\",\n \"training.round.headerFallback\": \"Training\",\n \"training.round.chatDescription\": \"Training log\",\n \"training.tab.evaluation\": \"Evaluation\",\n \"training.tab.tasks\": \"Tasks\",\n \"training.tab.changes\": \"Changes\",\n \"training.status.completed\": \"Completed\",\n \"training.status.cancelled\": \"Cancelled\",\n \"training.status.in_progress\": \"In Progress\",\n \"training.status.pending\": \"Pending\",\n \"training.status.review\": \"Review\",\n \"training.status.failed\": \"Failed\",\n \"training.status.interrupted\": \"Interrupted\",\n \"training.results.noRuns\": \"No eval runs yet\",\n \"training.results.viewLatest\": \"View latest run cases\",\n \"training.results.unknownStatus\": \"unknown\",\n \"training.results.noSubtasks\": \"No subtasks yet — the architect will track its work here with manage_task.\",\n \"training.results.configChanges\": \"Config changes (from tool-call records)\",\n \"training.agent.currentConfig\": \"Current Config\",\n \"training.agent.toolCount\": \"{{count}} tools\",\n \"training.agent.answerSample\": \"Answer Sample\",\n \"training.agent.passed\": \"Passed\",\n \"training.agent.failed\": \"Failed\",\n \"training.agent.clickCaseHint\": \"Click a case in the Evaluation tab to see the agent's answer\",\n \"training.form.goal\": \"Training Goal\",\n \"training.form.goalRequired\": \"Please describe the training goal\",\n \"training.form.goalPlaceholder\": \"e.g. Make it handle price disputes and know the price protection policy\",\n \"training.form.start\": \"Start Training\",\n \"training.form.agentCreated\": \"Agent created and training started\",\n \"training.form.createAgentFailed\": \"Failed to create agent\",\n \"training.form.roundCreated\": \"Training round created\",\n \"training.form.createRoundFailed\": \"Failed to create round\",\n \"training.form.newRoundTitle\": \"New Training Round · {{agentId}}\",\n \"training.form.activeRound\": \"There is an active round \\\"{{title}}\\\". Finish it before starting a new one.\",\n \"training.cards.itemName_one\": \"agent\",\n \"training.cards.itemName_other\": \"agents\"\n }\n}\n","{\n \"messages\": {\n \"training.newTraining\": \"新建训练\",\n \"training.scoreSuffix\": \"{{score}} 分\",\n \"training.cards.title\": \"训练中心\",\n \"training.cards.itemName\": \"智能体\",\n \"training.cards.passRate\": \"通过率 {{rate}}%\",\n \"training.cards.notTrained\": \"未训练\",\n \"training.round.qualityTrend\": \"质量趋势\",\n \"training.round.newRound\": \"+ 新建轮次\",\n \"training.round.empty\": \"暂无训练轮次\",\n \"training.round.finish\": \"结束轮次\",\n \"training.round.finishConfirm\": \"结束本轮训练?\",\n \"training.round.finished\": \"轮次已结束\",\n \"training.round.finishFailed\": \"结束轮次失败\",\n \"training.round.headerFallback\": \"训练\",\n \"training.round.chatDescription\": \"训练日志\",\n \"training.tab.evaluation\": \"评测\",\n \"training.tab.tasks\": \"任务\",\n \"training.tab.changes\": \"变更\",\n \"training.status.completed\": \"已完成\",\n \"training.status.cancelled\": \"已取消\",\n \"training.status.in_progress\": \"进行中\",\n \"training.status.pending\": \"待处理\",\n \"training.status.review\": \"待审核\",\n \"training.status.failed\": \"失败\",\n \"training.status.interrupted\": \"已中断\",\n \"training.results.noRuns\": \"暂无评测运行\",\n \"training.results.viewLatest\": \"查看最新运行的用例\",\n \"training.results.unknownStatus\": \"未知\",\n \"training.results.noSubtasks\": \"暂无子任务 —— 架构师会用 manage_task 在这里跟踪它的工作。\",\n \"training.results.configChanges\": \"配置变更(来自工具调用记录)\",\n \"training.agent.currentConfig\": \"当前配置\",\n \"training.agent.toolCount\": \"{{count}} 个工具\",\n \"training.agent.answerSample\": \"回答示例\",\n \"training.agent.passed\": \"通过\",\n \"training.agent.failed\": \"未通过\",\n \"training.agent.clickCaseHint\": \"在「评测」页签中点击某个用例,即可查看该智能体的回答\",\n \"training.form.goal\": \"训练目标\",\n \"training.form.goalRequired\": \"请描述训练目标\",\n \"training.form.goalPlaceholder\": \"例如:让它能处理价格争议,并了解价格保护政策\",\n \"training.form.start\": \"开始训练\",\n \"training.form.agentCreated\": \"智能体已创建,训练已开始\",\n \"training.form.createAgentFailed\": \"创建智能体失败\",\n \"training.form.roundCreated\": \"训练轮次已创建\",\n \"training.form.createRoundFailed\": \"创建轮次失败\",\n \"training.form.newRoundTitle\": \"新建训练轮次 · {{agentId}}\",\n \"training.form.activeRound\": \"存在进行中的轮次「{{title}}」。请先结束它再开始新的轮次。\",\n \"training.cards.itemName_one\": \"智能体\",\n \"training.cards.itemName_other\": \"智能体\"\n }\n}\n","import React, { useCallback, useEffect, useReducer, useRef } from \"react\";\nimport { AgentWebAppContext, featureDisabled } from \"./AgentWebAppContext\";\nimport { AgentWebAppRuntimeClient } from \"./client\";\nimport { AgentWebAppRuntimeClientError } from \"./error\";\nimport { formatErrorMessage } from \"../../utils/errorMessage\";\nimport { useT } from \"../../i18n\";\nimport type { SdkTFunction } from \"../../i18n\";\nimport { agentWebAppReducer, initialAgentWebAppState } from \"./state/agentWebAppReducer\";\nimport type {\n AgentWebAppBootstrap,\n AgentWebAppInterruptResponse,\n AgentWebAppRuntimeThread,\n AgentWebAppStreamEvent,\n} from \"./types\";\n\nexport type AgentWebAppIdentity =\n | { mode: \"unverified\"; userId: string; displayName?: string }\n | { mode: \"verified\"; tokenProvider: () => Promise<string> };\n\nexport interface AgentWebAppProviderProps {\n gatewayUrl: string;\n webAppId: string;\n identity: AgentWebAppIdentity;\n children: React.ReactNode;\n onError?: (error: AgentWebAppRuntimeClientError) => void;\n fetch?: typeof globalThis.fetch;\n}\n\nfunction validateProps(props: AgentWebAppProviderProps): void {\n if (!props.gatewayUrl.trim()) throw new Error(\"AgentWebAppProvider requires gatewayUrl\");\n try { new URL(props.gatewayUrl); } catch { throw new Error(\"AgentWebAppProvider gatewayUrl must be a valid URL\"); }\n if (props.identity.mode === \"unverified\") {\n if (!props.identity.userId.trim()) throw new Error(\"AgentWebAppProvider requires identity.userId\");\n } else if (typeof props.identity.tokenProvider !== \"function\") {\n throw new Error(\"AgentWebAppProvider requires identity.tokenProvider\");\n }\n if (!props.fetch && typeof globalThis.fetch !== \"function\") throw new Error(\"AgentWebAppProvider requires a fetch implementation\");\n}\n\nfunction runtimeError(error: unknown, t: SdkTFunction): AgentWebAppRuntimeClientError {\n if (error instanceof AgentWebAppRuntimeClientError) return error;\n return new AgentWebAppRuntimeClientError(\"INTERNAL_ERROR\", t(\"integration.error.requestFailed\"), true);\n}\n\nfunction isAbortError(error: unknown): boolean {\n return typeof error === \"object\" && error !== null && \"name\" in error && error.name === \"AbortError\";\n}\n\nfunction newestThread(threads: AgentWebAppRuntimeThread[]): AgentWebAppRuntimeThread | null {\n return threads.reduce<AgentWebAppRuntimeThread | null>((latest, item) => !latest || item.updatedAt > latest.updatedAt ? item : latest, null);\n}\n\nfunction requestProjectId(bootstrap: AgentWebAppBootstrap | null, projectId: string | null | undefined): string | undefined {\n return bootstrap?.webApp.features.projectSelector ? projectId ?? undefined : undefined;\n}\n\nfunction requestModelKey(bootstrap: AgentWebAppBootstrap | null, modelKey: string | null | undefined): string | undefined {\n return bootstrap?.webApp.features.modelSelector ? modelKey ?? undefined : undefined;\n}\n\nexport function AgentWebAppProvider(props: AgentWebAppProviderProps): React.ReactElement {\n validateProps(props);\n const scopeKey = `${props.gatewayUrl}\\u0000${props.webAppId}\\u0000${props.identity.mode === \"unverified\" ? props.identity.userId : \"verified:token\"}`;\n return <ScopedAgentWebAppProvider key={scopeKey} {...props} />;\n}\n\nfunction ScopedAgentWebAppProvider({ gatewayUrl, webAppId, identity, children, onError, fetch: fetchImplementation }: AgentWebAppProviderProps): React.ReactElement {\n const t = useT();\n const [state, dispatch] = useReducer(agentWebAppReducer, initialAgentWebAppState);\n const stateRef = useRef(state);\n stateRef.current = state;\n const generationRef = useRef(0);\n const threadGenerationRef = useRef(0);\n const streamGenerationRef = useRef(0);\n const controllersRef = useRef(new Set<AbortController>());\n const threadControllersRef = useRef(new Set<AbortController>());\n const streamRef = useRef<{ controller: AbortController; threadId: string; projectId?: string } | null>(null);\n const errorNotifiedRef = useRef<AgentWebAppRuntimeClientError | null>(null);\n const identityRef = useRef(identity);\n identityRef.current = identity;\n const clientRef = useRef<AgentWebAppRuntimeClient>();\n if (!clientRef.current) {\n clientRef.current = new AgentWebAppRuntimeClient({\n gatewayUrl,\n webAppId,\n identityProvider: {\n getIdentity: async () => {\n const current = identityRef.current;\n if (current.mode !== \"verified\") return { externalUserId: current.userId };\n try {\n return { bearerToken: await current.tokenProvider() };\n } catch {\n throw new AgentWebAppRuntimeClientError(\"USER_ID_REQUIRED\", t(\"integration.error.identityTokenFailed\"), true);\n }\n },\n },\n translate: t,\n ...(fetchImplementation ? { fetch: fetchImplementation } : {}),\n });\n }\n const client = clientRef.current;\n\n const controlled = useCallback(async <T,>(operation: (signal: AbortSignal) => Promise<T>): Promise<T> => {\n const controller = new AbortController();\n controllersRef.current.add(controller);\n try { return await operation(controller.signal); }\n finally { controllersRef.current.delete(controller); }\n }, []);\n\n const threadControlled = useCallback(async <T,>(operation: (signal: AbortSignal) => Promise<T>): Promise<T> => {\n const controller = new AbortController();\n threadControllersRef.current.add(controller);\n try { return await operation(controller.signal); }\n finally { threadControllersRef.current.delete(controller); }\n }, []);\n\n const invalidateThreadWork = useCallback((): number => {\n const generation = ++threadGenerationRef.current;\n for (const controller of threadControllersRef.current) controller.abort();\n threadControllersRef.current.clear();\n return generation;\n }, []);\n\n const report = useCallback((error: unknown): AgentWebAppRuntimeClientError => {\n const normalized = runtimeError(error, t);\n dispatch({ type: \"ERROR_SET\", error: normalized });\n return normalized;\n }, [t]);\n\n const stopActiveStream = useCallback(async ({ abortBackend }: { abortBackend: boolean }): Promise<void> => {\n const active = streamRef.current;\n if (!active) return;\n streamGenerationRef.current += 1;\n streamRef.current = null;\n active.controller.abort();\n dispatch({ type: \"STREAM_SET\", streaming: false, assistantMessageId: null });\n if (abortBackend) await client.abort(active.threadId, active.projectId ? { projectId: active.projectId } : {});\n }, [client]);\n\n const loadMessages = useCallback(async (thread: AgentWebAppRuntimeThread, generation = generationRef.current, threadGeneration = threadGenerationRef.current, bootstrap = stateRef.current.bootstrap): Promise<void> => {\n dispatch({ type: \"MESSAGES_LOADING\", loading: true });\n try {\n const projectId = requestProjectId(bootstrap, thread.projectId);\n const result = await threadControlled((signal) => client.getMessages(thread.id, projectId ? { projectId } : {}, signal));\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"MESSAGES_SET\", messages: result.messages });\n } catch (error) {\n if (!isAbortError(error) && generation === generationRef.current && threadGeneration === threadGenerationRef.current) report(error);\n } finally {\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"MESSAGES_LOADING\", loading: false });\n }\n }, [client, report, threadControlled]);\n\n const loadManagedThreads = useCallback(async (projectId: string, generation = generationRef.current, threadGeneration = threadGenerationRef.current, bootstrap = stateRef.current.bootstrap): Promise<void> => {\n dispatch({ type: \"THREADS_LOADING\", loading: true });\n try {\n const selectedProjectId = requestProjectId(bootstrap, projectId);\n const result = await threadControlled((signal) => client.listThreads(selectedProjectId ? { projectId: selectedProjectId } : {}, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n const latest = newestThread(result.records);\n if (streamRef.current && latest?.id !== stateRef.current.activeThread?.id) await stopActiveStream({ abortBackend: true });\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n dispatch({ type: \"THREADS_SET\", threads: result.records });\n const currentActive = stateRef.current.activeThread;\n if (latest && latest.id === currentActive?.id) {\n dispatch({ type: \"ACTIVE_THREAD_UPDATED\", thread: latest });\n } else {\n threadGeneration = invalidateThreadWork();\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: latest });\n if (latest) await loadMessages(latest, generation, threadGeneration, bootstrap);\n }\n } catch (error) {\n if (!isAbortError(error) && generation === generationRef.current && threadGeneration === threadGenerationRef.current) report(error);\n } finally {\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"THREADS_LOADING\", loading: false });\n }\n }, [client, invalidateThreadWork, loadMessages, report, stopActiveStream, threadControlled]);\n\n const bootstrapRuntime = useCallback(async (): Promise<void> => {\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) report(error); }\n const generation = ++generationRef.current;\n for (const controller of controllersRef.current) controller.abort();\n controllersRef.current.clear();\n invalidateThreadWork();\n dispatch({ type: \"BOOTSTRAP_LOADING\" });\n try {\n const result = await controlled((signal) => client.bootstrap({}, signal));\n if (generation !== generationRef.current) return;\n const projectId = result.webApp.defaultProjectId;\n const modelKey = result.webApp.defaultModelKey ?? result.models[0]?.key ?? null;\n dispatch({ type: \"BOOTSTRAP_READY\", bootstrap: result, projectId, modelKey });\n if (result.webApp.features.threadManagement) {\n await loadManagedThreads(projectId, generation, threadGenerationRef.current, result);\n } else {\n const implicit = result.thread ?? null;\n dispatch({ type: \"THREADS_SET\", threads: implicit ? [implicit] : [] });\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: implicit });\n if (implicit) await loadMessages(implicit, generation, threadGenerationRef.current, result);\n }\n } catch (error) {\n if (!isAbortError(error) && generation === generationRef.current) report(error);\n } finally {\n if (generation === generationRef.current) dispatch({ type: \"BOOTSTRAP_SETTLED\" });\n }\n }, [client, controlled, invalidateThreadWork, loadManagedThreads, loadMessages, report, stopActiveStream]);\n\n useEffect(() => {\n void bootstrapRuntime();\n return () => {\n generationRef.current += 1;\n for (const controller of controllersRef.current) controller.abort();\n controllersRef.current.clear();\n invalidateThreadWork();\n void stopActiveStream({ abortBackend: true }).catch(() => undefined);\n };\n }, [bootstrapRuntime, invalidateThreadWork, stopActiveStream]);\n\n useEffect(() => {\n const error = state.errors.current;\n if (error && error !== errorNotifiedRef.current) {\n errorNotifiedRef.current = error;\n onError?.(error);\n }\n }, [onError, state.errors.current]);\n\n const abort = useCallback(async (): Promise<void> => {\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n }, [report, stopActiveStream]);\n\n const selectProject = useCallback(async (projectId: string): Promise<void> => {\n const current = stateRef.current;\n const bootstrap = current.bootstrap;\n if (!bootstrap) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.notReady\"), true));\n if (!bootstrap.webApp.features.projectSelector) throw featureDisabled(t(\"integration.error.projectSelectionDisabled\"));\n if (!bootstrap.projects.some((project) => project.id === projectId)) throw report(new AgentWebAppRuntimeClientError(\"PROJECT_NOT_ALLOWED\", t(\"integration.error.projectNotAllowed\"), false));\n if (projectId === current.projectId) return;\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n const generation = generationRef.current;\n const threadGeneration = invalidateThreadWork();\n dispatch({ type: \"PROJECT_SELECTED\", projectId });\n if (bootstrap.webApp.features.threadManagement) await loadManagedThreads(projectId, generation, threadGeneration, bootstrap);\n else {\n const selectedProjectId = requestProjectId(bootstrap, projectId);\n const selectedModelKey = requestModelKey(bootstrap, current.modelKey);\n const result = await threadControlled((signal) => client.bootstrap({ ...(selectedProjectId ? { projectId: selectedProjectId } : {}), ...(selectedModelKey ? { modelKey: selectedModelKey } : {}) }, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n const implicit = result.thread ?? null;\n dispatch({ type: \"THREADS_SET\", threads: implicit ? [implicit] : [] });\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: implicit });\n if (implicit) await loadMessages(implicit, generation, threadGeneration, result);\n }\n }, [client, invalidateThreadWork, loadManagedThreads, loadMessages, report, stopActiveStream, threadControlled, t]);\n\n const selectModel = useCallback((modelKey: string): void => {\n const bootstrap = stateRef.current.bootstrap;\n if (!bootstrap) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.notReady\"), true));\n if (!bootstrap.webApp.features.modelSelector) throw featureDisabled(t(\"integration.error.modelSelectionDisabled\"));\n if (!bootstrap.models.some((model) => model.key === modelKey)) throw report(new AgentWebAppRuntimeClientError(\"MODEL_NOT_ALLOWED\", t(\"integration.error.modelNotAllowed\"), false));\n dispatch({ type: \"MODEL_SELECTED\", modelKey });\n }, [report, t]);\n\n const requireThreadManagement = useCallback((): void => {\n if (!stateRef.current.bootstrap?.webApp.features.threadManagement) throw featureDisabled(t(\"integration.error.threadManagementDisabled\"));\n }, [t]);\n\n const refreshThreads = useCallback(async (): Promise<void> => {\n requireThreadManagement();\n const projectId = stateRef.current.projectId;\n if (projectId) await loadManagedThreads(projectId, generationRef.current, threadGenerationRef.current, stateRef.current.bootstrap);\n }, [loadManagedThreads, requireThreadManagement]);\n\n const selectThread = useCallback(async (thread: AgentWebAppRuntimeThread): Promise<void> => {\n if (thread.projectId !== stateRef.current.projectId) throw report(new AgentWebAppRuntimeClientError(\"PROJECT_NOT_ALLOWED\", t(\"integration.error.threadOtherProject\"), false));\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n const generation = generationRef.current;\n const threadGeneration = invalidateThreadWork();\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread });\n await loadMessages(thread, generation, threadGeneration, stateRef.current.bootstrap);\n }, [invalidateThreadWork, loadMessages, report, stopActiveStream, t]);\n\n const createThread = useCallback(async (label?: string): Promise<AgentWebAppRuntimeThread> => {\n requireThreadManagement();\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n const threadGeneration = invalidateThreadWork();\n const generation = generationRef.current;\n const projectId = stateRef.current.projectId;\n const selectedProjectId = requestProjectId(stateRef.current.bootstrap, projectId);\n const created = await threadControlled((signal) => client.createThread({ ...(selectedProjectId ? { projectId: selectedProjectId } : {}), ...(label ? { label } : {}) }, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return created;\n dispatch({ type: \"THREAD_UPSERT\", thread: created });\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: created });\n return created;\n }, [client, invalidateThreadWork, report, requireThreadManagement, stopActiveStream, threadControlled, t]);\n\n const renameThread = useCallback(async (threadId: string, label: string): Promise<AgentWebAppRuntimeThread> => {\n requireThreadManagement();\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n const generation = generationRef.current;\n const threadGeneration = threadGenerationRef.current;\n const existing = stateRef.current.threads.find((item) => item.id === threadId);\n if (!existing) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.threadNotFound\"), false));\n const projectId = requestProjectId(stateRef.current.bootstrap, existing.projectId);\n const updated = await threadControlled((signal) => client.updateThread(threadId, { ...(projectId ? { projectId } : {}), label }, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return updated;\n dispatch({ type: \"THREAD_UPSERT\", thread: updated });\n return updated;\n }, [client, report, requireThreadManagement, threadControlled, t]);\n\n const deleteThread = useCallback(async (threadId: string): Promise<void> => {\n requireThreadManagement();\n const existing = stateRef.current.threads.find((item) => item.id === threadId);\n if (!existing) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.threadNotFound\"), false));\n if (stateRef.current.activeThread?.id === threadId) {\n try { await stopActiveStream({ abortBackend: true }); }\n catch (error) { if (!isAbortError(error)) throw report(error); }\n invalidateThreadWork();\n }\n const generation = generationRef.current;\n const threadGeneration = threadGenerationRef.current;\n const projectId = requestProjectId(stateRef.current.bootstrap, existing.projectId);\n await threadControlled((signal) => client.deleteThread(threadId, projectId ? { projectId } : {}, signal));\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n dispatch({ type: \"THREAD_DELETED\", threadId });\n const remaining = stateRef.current.threads.filter((item) => item.id !== threadId);\n const next = newestThread(remaining);\n if (stateRef.current.activeThread?.id === threadId && next) {\n dispatch({ type: \"ACTIVE_THREAD_SET\", thread: next });\n await loadMessages(next);\n }\n }, [client, invalidateThreadWork, loadMessages, report, requireThreadManagement, stopActiveStream, threadControlled, t]);\n\n const handleStreamEvent = useCallback((event: AgentWebAppStreamEvent, assistantId: string, generation: number, streamGeneration: number): void => {\n if (generation !== generationRef.current || streamGeneration !== streamGenerationRef.current) return;\n switch (event.type) {\n case \"message.delta\": dispatch({ type: \"ASSISTANT_DELTA\", id: assistantId, text: event.text }); break;\n case \"message.completed\": dispatch({ type: \"ASSISTANT_COMPLETED\", temporaryId: assistantId, messageId: event.messageId }); break;\n case \"tool.started\": dispatch({ type: \"TOOL_STARTED\", id: event.id, name: event.name }); break;\n case \"tool.completed\": dispatch({ type: \"TOOL_COMPLETED\", id: event.id }); break;\n case \"interrupt.created\": if (stateRef.current.bootstrap?.webApp.features.hitl) dispatch({ type: \"INTERRUPT_ADD\", interrupt: event.interrupt }); break;\n case \"genui.render\": if (stateRef.current.bootstrap?.webApp.features.genUI) dispatch({ type: \"ASSISTANT_GENUI\", id: assistantId, block: event.block }); break;\n case \"error\": break;\n case \"stream.completed\": break;\n }\n }, []);\n\n const consumePublicStream = useCallback(async (input: {\n threadId: string; projectId?: string; assistantId: string; generation: number; streamGeneration: number;\n run(onEvent: (event: AgentWebAppStreamEvent) => void, signal: AbortSignal): Promise<void>;\n }): Promise<string> => {\n const controller = new AbortController();\n let eventError: AgentWebAppRuntimeClientError | null = null;\n let currentAssistantId = input.assistantId;\n streamRef.current = { controller, threadId: input.threadId, ...(input.projectId ? { projectId: input.projectId } : {}) };\n dispatch({ type: \"STREAM_SET\", streaming: true, assistantMessageId: input.assistantId });\n try {\n await input.run((event) => {\n if (event.type === \"error\") {\n if (input.generation === generationRef.current && input.streamGeneration === streamGenerationRef.current) {\n eventError = new AgentWebAppRuntimeClientError(event.error.code, formatErrorMessage(event.error.message, t(\"integration.error.streamError\")), event.error.retryable);\n }\n return;\n }\n if (event.type === \"message.completed\") currentAssistantId = event.messageId;\n handleStreamEvent(event, input.assistantId, input.generation, input.streamGeneration);\n }, controller.signal);\n if (eventError) throw eventError;\n return currentAssistantId;\n } finally {\n if (streamRef.current?.controller === controller) streamRef.current = null;\n if (input.generation === generationRef.current && input.streamGeneration === streamGenerationRef.current) dispatch({ type: \"STREAM_SET\", streaming: false });\n }\n }, [handleStreamEvent, t]);\n\n const send = useCallback(async (content: string, attachmentRefs?: string[]): Promise<void> => {\n const current = stateRef.current;\n if (streamRef.current || current.stream.isStreaming) throw new AgentWebAppRuntimeClientError(\"STREAM_CONFLICT\", t(\"integration.error.alreadyStreaming\"), false);\n if (!current.activeThread || !current.projectId) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.noActiveThread\"), false));\n if (!content.trim()) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.contentRequired\"), false));\n const generation = generationRef.current;\n const streamGeneration = ++streamGenerationRef.current;\n const assistantId = `pending-assistant-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n const userId = `pending-user-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n const refs = attachmentRefs ?? current.attachments.map((attachment) => attachment.ref);\n const projectId = requestProjectId(current.bootstrap, current.projectId);\n const modelKey = requestModelKey(current.bootstrap, current.modelKey);\n let currentAssistantId = assistantId;\n dispatch({ type: \"MESSAGE_APPEND\", message: { id: userId, role: \"human\", content } });\n try {\n currentAssistantId = await consumePublicStream({\n threadId: current.activeThread.id, projectId, assistantId, generation, streamGeneration,\n run: (onEvent, signal) => client.streamMessage(current.activeThread!.id, {\n content,\n ...(projectId ? { projectId } : {}),\n ...(modelKey ? { modelKey } : {}),\n ...(refs.length ? { attachmentRefs: refs } : {}),\n }, onEvent, signal),\n });\n if (generation === generationRef.current && streamGeneration === streamGenerationRef.current) {\n dispatch({ type: \"ATTACHMENTS_REMOVE\", refs });\n dispatch({ type: \"FAILED_SEND_SET\", failedSend: null });\n }\n } catch (error) {\n if (generation === generationRef.current && streamGeneration === streamGenerationRef.current) {\n dispatch({ type: \"MESSAGES_REMOVE\", ids: [userId, assistantId, `${assistantId}-genui`, currentAssistantId, `${currentAssistantId}-genui`] });\n if (!isAbortError(error)) {\n dispatch({ type: \"FAILED_SEND_SET\", failedSend: { text: content, attachmentIds: refs } });\n throw report(error);\n }\n }\n }\n }, [client, consumePublicStream, report, t]);\n\n const sendMessage = useCallback(async (content: string): Promise<void> => send(content), [send]);\n\n const retryLastMessage = useCallback(async (): Promise<void> => {\n const failed = stateRef.current.lastFailedSend;\n if (!failed) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.noFailedMessage\"), false));\n await send(failed.text, failed.attachmentIds);\n }, [report, send, t]);\n\n const uploadAttachment = useCallback(async (file: Blob): Promise<void> => {\n const current = stateRef.current;\n const generation = generationRef.current;\n const threadGeneration = threadGenerationRef.current;\n if (!current.bootstrap?.webApp.features.attachments) throw featureDisabled(t(\"integration.error.attachmentsDisabled\"));\n if (!current.activeThread) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.noActiveThread\"), false));\n dispatch({ type: \"ATTACHMENTS_LOADING\", loading: true });\n try {\n const projectId = requestProjectId(current.bootstrap, current.activeThread.projectId);\n const attachment = await threadControlled((signal) => client.uploadAttachment(current.activeThread!.id, file, projectId ? { projectId } : {}, signal));\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"ATTACHMENT_ADD\", attachment });\n } catch (error) {\n if (!isAbortError(error) && generation === generationRef.current && threadGeneration === threadGenerationRef.current) throw report(error);\n } finally { if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"ATTACHMENTS_LOADING\", loading: false }); }\n }, [client, report, threadControlled, t]);\n\n const resumeInterrupt = useCallback(async (interruptId: string, response: AgentWebAppInterruptResponse, message: string): Promise<void> => {\n const current = stateRef.current;\n const generation = generationRef.current;\n const threadGeneration = threadGenerationRef.current;\n if (streamRef.current || current.stream.isStreaming) throw report(new AgentWebAppRuntimeClientError(\"STREAM_CONFLICT\", t(\"integration.error.alreadyStreaming\"), false));\n if (!current.bootstrap?.webApp.features.hitl) throw featureDisabled(t(\"integration.error.humanReviewDisabled\"));\n if (!current.activeThread || !current.projectId) throw report(new AgentWebAppRuntimeClientError(\"THREAD_NOT_FOUND\", t(\"integration.error.noActiveThread\"), false));\n if (!current.interrupts.some((item) => item.id === interruptId)) throw report(new AgentWebAppRuntimeClientError(\"INVALID_REQUEST\", t(\"integration.error.interruptNotFound\"), false));\n const activeThread = current.activeThread;\n const projectId = requestProjectId(current.bootstrap, current.projectId);\n const modelKey = requestModelKey(current.bootstrap, current.modelKey);\n const streamGeneration = ++streamGenerationRef.current;\n const assistantId = `pending-assistant-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n dispatch({ type: \"INTERRUPTS_LOADING\", loading: true });\n try {\n await consumePublicStream({\n threadId: activeThread.id, projectId, assistantId, generation, streamGeneration,\n run: (onEvent, signal) => client.resumeInterrupt(activeThread.id, interruptId, {\n ...(projectId ? { projectId } : {}),\n ...(modelKey ? { modelKey } : {}), message, response,\n }, onEvent, signal),\n });\n if (generation !== generationRef.current || threadGeneration !== threadGenerationRef.current) return;\n dispatch({ type: \"INTERRUPT_REMOVE\", interruptId });\n await loadMessages(activeThread, generation, threadGeneration);\n } catch (error) {\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) {\n dispatch({ type: \"MESSAGES_REMOVE\", ids: [assistantId, `${assistantId}-genui`] });\n if (!isAbortError(error)) throw report(error);\n }\n } finally {\n if (generation === generationRef.current && threadGeneration === threadGenerationRef.current) dispatch({ type: \"INTERRUPTS_LOADING\", loading: false });\n }\n }, [client, consumePublicStream, loadMessages, report, t]);\n\n const value = {\n ...state,\n retry: bootstrapRuntime,\n selectProject,\n selectModel,\n refreshThreads,\n selectThread,\n createThread,\n renameThread,\n deleteThread,\n sendMessage,\n retryLastMessage,\n abort,\n uploadAttachment,\n removeAttachment: (ref: string) => dispatch({ type: \"ATTACHMENT_REMOVE\", ref }),\n clearAttachments: () => dispatch({ type: \"ATTACHMENTS_CLEAR\" }),\n resumeInterrupt,\n clearError: () => dispatch({ type: \"ERROR_SET\", error: null }),\n };\n return <AgentWebAppContext.Provider value={value}>{children}</AgentWebAppContext.Provider>;\n}\n","import { createContext } from \"react\";\nimport type { AgentWebAppInterruptResponse, AgentWebAppRuntimeThread } from \"./types\";\nimport { AgentWebAppRuntimeClientError } from \"./error\";\nimport type { AgentWebAppState } from \"./state/agentWebAppReducer\";\n\nexport interface AgentWebAppContextValue extends AgentWebAppState {\n retry(): Promise<void>;\n selectProject(projectId: string): Promise<void>;\n selectModel(modelKey: string): void;\n refreshThreads(): Promise<void>;\n selectThread(thread: AgentWebAppRuntimeThread): Promise<void>;\n createThread(label?: string): Promise<AgentWebAppRuntimeThread>;\n renameThread(threadId: string, label: string): Promise<AgentWebAppRuntimeThread>;\n deleteThread(threadId: string): Promise<void>;\n sendMessage(content: string): Promise<void>;\n retryLastMessage(): Promise<void>;\n abort(): Promise<void>;\n uploadAttachment(file: Blob): Promise<void>;\n removeAttachment(ref: string): void;\n clearAttachments(): void;\n resumeInterrupt(interruptId: string, response: AgentWebAppInterruptResponse, message: string): Promise<void>;\n clearError(): void;\n}\n\nexport const AgentWebAppContext = createContext<AgentWebAppContextValue | null>(null);\n\nexport function featureDisabled(message: string): AgentWebAppRuntimeClientError {\n return new AgentWebAppRuntimeClientError(\"FEATURE_DISABLED\", message, false, 403);\n}\n","import type { AgentWebAppErrorCode } from \"./types\";\n\nexport class AgentWebAppRuntimeClientError extends Error {\n readonly code: AgentWebAppErrorCode;\n readonly retryable: boolean;\n readonly status?: number;\n\n constructor(code: AgentWebAppErrorCode, message: string, retryable: boolean, status?: number) {\n super(message);\n this.name = \"AgentWebAppRuntimeClientError\";\n this.code = code;\n this.retryable = retryable;\n this.status = status;\n }\n}\n\nexport function streamFailed(): AgentWebAppRuntimeClientError {\n return new AgentWebAppRuntimeClientError(\"STREAM_FAILED\", \"Stream failed\", true);\n}\n","import { streamFailed } from \"./error\";\nimport {\n MessageChunkTypes,\n createAgentWebAppStreamProjectionContext,\n parseAgentWebAppGenUIBlock,\n projectAgentWebAppChunk,\n type AgentWebAppStreamProjectionContext,\n} from \"@axiom-lattice/protocols\";\nimport type {\n AgentWebAppError,\n AgentWebAppErrorCode,\n AgentWebAppInterrupt,\n AgentWebAppStreamEvent,\n AgentWebAppStreamEventHandler,\n} from \"./types\";\n\nconst errorCodes = new Set<AgentWebAppErrorCode>([\n \"WEB_APP_NOT_FOUND\", \"WEB_APP_DISABLED\", \"USER_ID_REQUIRED\", \"INVALID_USER_ID\",\n \"PROJECT_NOT_ALLOWED\", \"PROJECT_SELECTOR_DISABLED\", \"MODEL_NOT_ALLOWED\", \"FEATURE_DISABLED\",\n \"THREAD_NOT_FOUND\", \"STREAM_CONFLICT\", \"STREAM_FAILED\", \"INVALID_REQUEST\", \"INTERNAL_ERROR\",\n]);\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction exact(value: Record<string, unknown>, keys: string[]): boolean {\n const actual = Object.keys(value);\n return actual.length === keys.length && keys.every((key) => key in value);\n}\n\nfunction validError(value: unknown): value is AgentWebAppError {\n return record(value)\n && exact(value, [\"code\", \"message\", \"retryable\"])\n && typeof value.code === \"string\" && errorCodes.has(value.code as AgentWebAppErrorCode)\n && typeof value.message === \"string\" && typeof value.retryable === \"boolean\";\n}\n\nfunction validInterrupt(value: unknown): value is AgentWebAppInterrupt {\n if (!record(value)) return false;\n const keys = value.data === undefined ? [\"id\", \"type\", \"prompt\"] : [\"id\", \"type\", \"prompt\", \"data\"];\n return exact(value, keys) && typeof value.id === \"string\" && typeof value.type === \"string\"\n && typeof value.prompt === \"string\" && (value.data === undefined || record(value.data));\n}\n\nconst nativeChunkTypes = new Set<string>([\n MessageChunkTypes.HUMAN, MessageChunkTypes.AI, MessageChunkTypes.TOOL,\n MessageChunkTypes.INTERRUPT, MessageChunkTypes.MESSAGE_COMPLETED,\n MessageChunkTypes.MESSAGE_FAILED, MessageChunkTypes.THREAD_IDLE,\n]);\n\nfunction parseEvents(data: string, projection: AgentWebAppStreamProjectionContext): AgentWebAppStreamEvent[] {\n let value: unknown;\n try { value = JSON.parse(data); } catch { throw streamFailed(); }\n if (!record(value) || typeof value.type !== \"string\") throw streamFailed();\n // Native run-protocol chunk (the gateway's messages/stream since Phase 2).\n if (nativeChunkTypes.has(value.type) || (value.type === \"error\" && record(value.data) && !record(value.error))) {\n const projected = projectAgentWebAppChunk(value as never, projection);\n if (projected.length === 0) return [];\n return projected;\n }\n // Legacy projected public event (gateway /v1 path or an older gateway).\n switch (value.type) {\n case \"message.delta\":\n if (exact(value, [\"type\", \"text\"]) && typeof value.text === \"string\") return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"message.completed\":\n if (exact(value, [\"type\", \"messageId\"]) && typeof value.messageId === \"string\") return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"tool.started\":\n if (exact(value, [\"type\", \"id\", \"name\"]) && typeof value.id === \"string\" && typeof value.name === \"string\") return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"tool.completed\":\n if (exact(value, [\"type\", \"id\"]) && typeof value.id === \"string\") return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"interrupt.created\":\n if (exact(value, [\"type\", \"interrupt\"]) && validInterrupt(value.interrupt)) return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"genui.render\":\n if (exact(value, [\"type\", \"block\"]) && parseAgentWebAppGenUIBlock(value.block)) return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"error\":\n if (exact(value, [\"type\", \"error\"]) && validError(value.error)) return [value as unknown as AgentWebAppStreamEvent];\n break;\n case \"stream.completed\":\n if (exact(value, [\"type\"])) return [value as unknown as AgentWebAppStreamEvent];\n break;\n }\n throw streamFailed();\n}\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof Error && error.name === \"AbortError\";\n}\n\nexport async function parseAgentWebAppEventStream(\n body: ReadableStream<Uint8Array>,\n onEvent: AgentWebAppStreamEventHandler,\n): Promise<void> {\n const projection = createAgentWebAppStreamProjectionContext({ allowGenUI: true, allowInterrupts: true });\n const reader = body.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n let completed = false;\n let reachedEof = false;\n try {\n while (!completed) {\n let result: ReadableStreamReadResult<Uint8Array>;\n try { result = await reader.read(); }\n catch (error) {\n if (isAbortError(error)) return;\n throw streamFailed();\n }\n if (result.done) reachedEof = true;\n try { buffer += decoder.decode(result.value, { stream: !result.done }); }\n catch { throw streamFailed(); }\n const blocks = buffer.split(/\\r?\\n\\r?\\n/);\n buffer = result.done ? \"\" : blocks.pop() ?? \"\";\n for (const block of blocks) {\n const data = block.split(/\\r?\\n/)\n .filter((line) => line === \"data\" || line.startsWith(\"data:\"))\n .map((line) => line === \"data\" ? \"\" : line.slice(5).replace(/^ /, \"\"));\n if (data.length === 0) continue;\n for (const event of parseEvents(data.join(\"\\n\"), projection)) {\n await onEvent(event);\n completed = event.type === \"stream.completed\";\n if (completed) break;\n }\n if (completed) break;\n }\n if (result.done) break;\n }\n if (!completed) throw streamFailed();\n } finally {\n if (!reachedEof) {\n try { await reader.cancel(); } catch { /* Best-effort cleanup must not replace the primary outcome. */ }\n }\n reader.releaseLock();\n }\n}\n","import { AgentWebAppRuntimeClientError } from \"./error\";\nimport { parseAgentWebAppEventStream } from \"./sse-parser\";\nimport { parseAgentWebAppGenUIBlock } from \"@axiom-lattice/protocols\";\nimport type { SdkTFunction } from \"../../i18n\";\nimport type {\n AgentWebAppAttachment,\n AgentWebAppBootstrap,\n AgentWebAppCreateThreadInput,\n AgentWebAppError,\n AgentWebAppMessageList,\n AgentWebAppProjectSelection,\n AgentWebAppResumeInterruptInput,\n AgentWebAppRuntimeClientOptions,\n AgentWebAppRuntimeSelection,\n AgentWebAppRuntimeThread,\n AgentWebAppStreamEventHandler,\n AgentWebAppStreamMessageInput,\n AgentWebAppThreadList,\n AgentWebAppUpdateThreadInput,\n} from \"./types\";\n\ninterface ErrorEnvelope { success: false; error: AgentWebAppError }\n\nconst errorCodes = new Set<AgentWebAppError[\"code\"]>([\n \"WEB_APP_NOT_FOUND\", \"WEB_APP_DISABLED\", \"USER_ID_REQUIRED\", \"INVALID_USER_ID\",\n \"PROJECT_NOT_ALLOWED\", \"PROJECT_SELECTOR_DISABLED\", \"MODEL_NOT_ALLOWED\", \"FEATURE_DISABLED\",\n \"THREAD_NOT_FOUND\", \"STREAM_CONFLICT\", \"STREAM_FAILED\", \"INVALID_REQUEST\", \"INTERNAL_ERROR\",\n]);\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction exact(value: Record<string, unknown>, required: string[], optional: string[] = []): boolean {\n const keys = Object.keys(value);\n return required.every((key) => key in value) && keys.every((key) => required.includes(key) || optional.includes(key));\n}\n\nfunction string(value: unknown): value is string { return typeof value === \"string\"; }\n\nfunction parseThread(value: unknown): AgentWebAppRuntimeThread | undefined {\n if (!record(value) || !exact(value, [\"id\", \"projectId\", \"createdAt\", \"updatedAt\"], [\"label\"])) return undefined;\n if (!string(value.id) || !string(value.projectId) || (value.label !== undefined && !string(value.label))) return undefined;\n if (!string(value.createdAt) || !string(value.updatedAt)) return undefined;\n const createdAt = new Date(value.createdAt); const updatedAt = new Date(value.updatedAt);\n if (Number.isNaN(createdAt.getTime()) || Number.isNaN(updatedAt.getTime())) return undefined;\n return { id: value.id, projectId: value.projectId, ...(value.label === undefined ? {} : { label: value.label }), createdAt, updatedAt };\n}\n\nfunction isErrorEnvelope(value: unknown): value is ErrorEnvelope {\n if (!record(value) || value.success !== false || !record(value.error)) return false;\n const error = value.error;\n return exact(value, [\"success\", \"error\"])\n && exact(error, [\"code\", \"message\", \"retryable\"])\n && typeof error.code === \"string\" && errorCodes.has(error.code as AgentWebAppError[\"code\"])\n && typeof error.message === \"string\" && typeof error.retryable === \"boolean\";\n}\n\nfunction validFeatures(value: unknown): boolean {\n if (!record(value)) return false;\n const keys = [\"projectSelector\", \"modelSelector\", \"threadManagement\", \"attachments\", \"hitl\", \"genUI\"];\n return exact(value, keys, [\"files\"]) && keys.every((key) => typeof value[key] === \"boolean\")\n && (value.files === undefined || typeof value.files === \"boolean\");\n}\n\nfunction validQuickPrompts(value: unknown): boolean {\n return Array.isArray(value)\n && value.length <= 6\n && value.every((prompt) => record(prompt)\n && exact(prompt, [\"label\", \"text\"])\n && string(prompt.label) && prompt.label.length >= 1 && prompt.label.length <= 40\n && string(prompt.text) && prompt.text.length >= 1 && prompt.text.length <= 500);\n}\n\nfunction validAppearance(value: unknown): boolean {\n return record(value) && exact(value, [], [\"title\", \"welcomeMessage\", \"primaryColor\", \"quickPrompts\"])\n && (value.title === undefined || string(value.title))\n && (value.welcomeMessage === undefined || string(value.welcomeMessage))\n && (value.primaryColor === undefined || string(value.primaryColor))\n && (value.quickPrompts === undefined || validQuickPrompts(value.quickPrompts));\n}\n\nfunction parseBootstrap(value: unknown): AgentWebAppBootstrap | undefined {\n if (!record(value) || !exact(value, [\"webApp\", \"projects\", \"models\"], [\"thread\"]) || !record(value.webApp)) return undefined;\n const webApp = value.webApp;\n if (!exact(webApp, [\"id\", \"name\", \"assistant\", \"defaultProjectId\", \"features\", \"appearance\", \"identityAssurance\"], [\"description\", \"defaultModelKey\"])\n || !string(webApp.id) || !string(webApp.name) || !string(webApp.defaultProjectId)\n || (webApp.description !== undefined && !string(webApp.description)) || (webApp.defaultModelKey !== undefined && !string(webApp.defaultModelKey))\n || webApp.identityAssurance !== \"unverified\" || !record(webApp.assistant)\n || !exact(webApp.assistant, [\"id\", \"name\"], [\"description\"]) || !string(webApp.assistant.id) || !string(webApp.assistant.name)\n || (webApp.assistant.description !== undefined && !string(webApp.assistant.description))\n || !validFeatures(webApp.features) || !validAppearance(webApp.appearance)\n || !Array.isArray(value.projects) || !value.projects.every((item) => record(item) && exact(item, [\"id\", \"name\"]) && string(item.id) && string(item.name))\n || !Array.isArray(value.models) || !value.models.every((item) => record(item) && exact(item, [\"key\", \"label\"]) && string(item.key) && string(item.label))) return undefined;\n const thread = value.thread === undefined ? undefined : parseThread(value.thread);\n if (value.thread !== undefined && !thread) return undefined;\n return { ...value, ...(thread ? { thread } : {}) } as unknown as AgentWebAppBootstrap;\n}\n\nfunction parseThreadList(value: unknown): AgentWebAppThreadList | undefined {\n if (!record(value) || !exact(value, [\"records\", \"total\"]) || !Array.isArray(value.records) || typeof value.total !== \"number\") return undefined;\n const records = value.records.map(parseThread);\n return records.every((item): item is AgentWebAppRuntimeThread => item !== undefined) ? { records, total: value.total } : undefined;\n}\n\nfunction validMessage(value: unknown): boolean {\n return record(value) && string(value.id) && (value.role === \"human\" || value.role === \"ai\")\n && (value.content === undefined || string(value.content)\n || (Array.isArray(value.content) && value.content.every((block) => parseAgentWebAppGenUIBlock(block) !== undefined)));\n}\n\nfunction parseMessages(value: unknown): AgentWebAppMessageList | undefined {\n return record(value) && exact(value, [\"messages\"]) && Array.isArray(value.messages) && value.messages.every(validMessage)\n ? value as unknown as AgentWebAppMessageList : undefined;\n}\n\nfunction parseAttachment(value: unknown): AgentWebAppAttachment | undefined {\n return record(value) && exact(value, [\"ref\", \"name\", \"mimeType\", \"size\"])\n && string(value.ref) && string(value.name) && string(value.mimeType) && typeof value.size === \"number\"\n ? value as unknown as AgentWebAppAttachment : undefined;\n}\n\nfunction objectWith<T>(keys: string[], checks: (value: Record<string, unknown>) => boolean): (value: unknown) => T | undefined {\n return (value) => record(value) && exact(value, keys) && checks(value) ? value as unknown as T : undefined;\n}\n\nexport class AgentWebAppRuntimeClient {\n private readonly baseUrl: string;\n private readonly fetchImplementation: typeof globalThis.fetch;\n private readonly translate?: SdkTFunction;\n\n constructor(private readonly options: AgentWebAppRuntimeClientOptions) {\n this.baseUrl = `${options.gatewayUrl.replace(/\\/+$/, \"\")}/api/web-apps/${encodeURIComponent(options.webAppId)}/runtime`;\n this.fetchImplementation = options.fetch ?? globalThis.fetch.bind(globalThis);\n this.translate = options.translate;\n }\n\n async bootstrap(selection: AgentWebAppRuntimeSelection = {}, signal?: AbortSignal): Promise<AgentWebAppBootstrap> {\n return this.request(\"bootstrap\", parseBootstrap, { query: selection, signal });\n }\n\n async listThreads(selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<AgentWebAppThreadList> {\n return this.request(\"threads\", parseThreadList, { query: selection, signal });\n }\n\n async createThread(input: AgentWebAppCreateThreadInput = {}, signal?: AbortSignal): Promise<AgentWebAppRuntimeThread> {\n return this.request(\"threads\", parseThread, { method: \"POST\", body: input, signal });\n }\n\n async updateThread(threadId: string, input: AgentWebAppUpdateThreadInput, signal?: AbortSignal): Promise<AgentWebAppRuntimeThread> {\n return this.request(`threads/${encodeURIComponent(threadId)}`, parseThread, { method: \"PATCH\", body: input, signal });\n }\n\n async deleteThread(threadId: string, selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<void> {\n await this.request(`threads/${encodeURIComponent(threadId)}`, objectWith<{ id: string }>([\"id\"], (value) => string(value.id)), { method: \"DELETE\", query: selection, signal });\n }\n\n async getMessages(threadId: string, selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<AgentWebAppMessageList> {\n return this.request(`threads/${encodeURIComponent(threadId)}/messages`, parseMessages, { query: selection, signal });\n }\n\n async streamMessage(threadId: string, input: AgentWebAppStreamMessageInput, onEvent: AgentWebAppStreamEventHandler, signal?: AbortSignal): Promise<void> {\n return this.streamRequest(`threads/${encodeURIComponent(threadId)}/messages/stream`, input, onEvent, signal);\n }\n\n async resumeInterrupt(threadId: string, interruptId: string, input: AgentWebAppResumeInterruptInput, onEvent: AgentWebAppStreamEventHandler, signal?: AbortSignal): Promise<void> {\n return this.streamRequest(`threads/${encodeURIComponent(threadId)}/interrupts/${encodeURIComponent(interruptId)}/resume`, input, onEvent, signal);\n }\n\n private async streamRequest(path: string, body: object, onEvent: AgentWebAppStreamEventHandler, signal?: AbortSignal): Promise<void> {\n let response: Response;\n try {\n response = await this.fetchRequest(path, { method: \"POST\", body, signal });\n } catch (error) {\n if (isAbortError(error)) throw error;\n if (error instanceof AgentWebAppRuntimeClientError) throw error;\n throw new AgentWebAppRuntimeClientError(\"STREAM_FAILED\", this.translate?.(\"integration.error.streamFailed\") ?? \"Stream failed\", true);\n }\n if (!response.ok) await this.throwResponseError(response);\n if (!response.body || !response.headers.get(\"content-type\")?.toLowerCase().includes(\"text/event-stream\")) {\n if (response.body) try { await response.body.cancel(); } catch { /* Best effort. */ }\n throw new AgentWebAppRuntimeClientError(\"STREAM_FAILED\", this.translate?.(\"integration.error.streamFailed\") ?? \"Stream failed\", true, response.status);\n }\n await parseAgentWebAppEventStream(response.body, onEvent);\n }\n\n async abort(threadId: string, selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<void> {\n await this.request(`threads/${encodeURIComponent(threadId)}/abort`, objectWith<{ aborted: boolean }>([\"aborted\"], (value) => typeof value.aborted === \"boolean\"), { method: \"POST\", query: selection, signal });\n }\n\n async uploadAttachment(threadId: string, file: Blob, selection: AgentWebAppProjectSelection = {}, signal?: AbortSignal): Promise<AgentWebAppAttachment> {\n const form = new FormData();\n const filename = typeof File !== \"undefined\" && file instanceof File ? file.name : \"attachment\";\n form.append(\"file\", file, filename);\n return this.request(`threads/${encodeURIComponent(threadId)}/attachments`, parseAttachment, { method: \"POST\", query: selection, body: form, signal });\n }\n\n private async request<T>(path: string, parse: (value: unknown) => T | undefined, init: RequestOptions = {}): Promise<T> {\n let response: Response;\n try { response = await this.fetchRequest(path, init); }\n catch (error) {\n if (isAbortError(error)) throw error;\n if (error instanceof AgentWebAppRuntimeClientError) throw error;\n throw new AgentWebAppRuntimeClientError(\"INTERNAL_ERROR\", this.translate?.(\"integration.error.requestFailed\") ?? \"Request failed\", true);\n }\n let value: unknown;\n try { value = await response.json(); } catch { throw this.internalError(response.status); }\n if (isErrorEnvelope(value)) {\n throw new AgentWebAppRuntimeClientError(value.error.code, value.error.message, value.error.retryable, response.status);\n }\n if (!response.ok || !record(value) || !exact(value, [\"success\", \"data\"]) || value.success !== true) throw this.internalError(response.status);\n const data = parse(value.data);\n if (data === undefined) throw this.internalError(response.status);\n return data;\n }\n\n private async fetchRequest(path: string, options: RequestOptions): Promise<Response> {\n const identity = await this.options.identityProvider.getIdentity(options.signal);\n const url = new URL(`${this.baseUrl}/${path}`);\n for (const [key, value] of Object.entries(options.query ?? {})) if (value !== undefined) url.searchParams.set(key, value);\n const headers = new Headers();\n if (identity.bearerToken !== undefined) {\n headers.set(\"Authorization\", `Bearer ${identity.bearerToken}`);\n } else {\n headers.set(\"X-Axiom-External-User-Id\", identity.externalUserId ?? \"\");\n }\n let body: BodyInit | undefined;\n if (options.body instanceof FormData) body = options.body;\n else if (options.body !== undefined) { headers.set(\"Content-Type\", \"application/json\"); body = JSON.stringify(options.body); }\n return this.fetchImplementation(url, { method: options.method ?? \"GET\", headers, body, signal: options.signal, credentials: \"omit\" });\n }\n\n private async throwResponseError(response: Response): Promise<never> {\n let value: unknown;\n try { value = await response.json(); } catch { throw this.internalError(response.status); }\n if (isErrorEnvelope(value)) throw new AgentWebAppRuntimeClientError(value.error.code, value.error.message, value.error.retryable, response.status);\n throw this.internalError(response.status);\n }\n\n private internalError(status?: number): AgentWebAppRuntimeClientError {\n return new AgentWebAppRuntimeClientError(\"INTERNAL_ERROR\", this.translate?.(\"integration.error.invalidServerResponse\") ?? \"Invalid server response\", false, status);\n }\n}\n\nfunction isAbortError(error: unknown): boolean {\n return typeof error === \"object\" && error !== null && \"name\" in error && error.name === \"AbortError\";\n}\n\ninterface RequestOptions {\n method?: \"GET\" | \"POST\" | \"PATCH\" | \"DELETE\";\n query?: { projectId?: string; modelKey?: string };\n body?: object | FormData;\n signal?: AbortSignal;\n}\n","const WRAPPER_PREFIXES: RegExp[] = [\n /^Error in middleware\\s+(?:\"[^\"]*\"|'[^']*'|[^:]+)\\s*:\\s*/,\n /^Caused by:\\s*/i,\n /^Error:\\s*/i,\n];\n\nfunction isMessageCarrier(value: unknown): value is { message: string } {\n return (\n typeof value === \"object\" &&\n value !== null &&\n typeof (value as { message?: unknown }).message === \"string\"\n );\n}\n\n/**\n * Unwrap a nested error chain to its root cause.\n *\n * LangChain's `wrapToolCall` prepends `Error in middleware \"<name>\": ` to\n * `error.message` at every middleware layer, so an upstream provider failure\n * arrives as a long chain such as\n * `Error in middleware \"A\": Error in middleware \"B\": 402 Insufficient Balance`.\n * For display we want only the innermost message.\n */\nexport function rootErrorMessage(message: string): string {\n if (typeof message !== \"string\" || message.length === 0) {\n return message;\n }\n\n const trimmed = message.trim();\n let current = trimmed;\n let stripped = true;\n while (stripped) {\n stripped = false;\n for (const prefix of WRAPPER_PREFIXES) {\n const next = current.replace(prefix, \"\");\n if (next !== current) {\n current = next.trim();\n stripped = true;\n break;\n }\n }\n }\n\n return current.length > 0 ? current : trimmed;\n}\n\n/**\n * Normalize any thrown value into a single display-ready root-cause string.\n */\nexport function formatErrorMessage(error: unknown, fallback = \"\"): string {\n let raw: string;\n if (error instanceof Error) {\n raw = error.message;\n } else if (typeof error === \"string\") {\n raw = error;\n } else if (isMessageCarrier(error)) {\n raw = error.message;\n } else if (error === null || error === undefined) {\n raw = \"\";\n } else {\n raw = String(error);\n }\n\n return rootErrorMessage(raw) || fallback;\n}\n","import { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport type { TFunction as I18nextT } from \"i18next\";\nimport type { TParams, LatticeLocale } from \"@axiom-lattice/i18n\";\nimport type { TranslationKey } from \"./translationKeys\";\nimport { fromI18nextLocale, namespaceOf } from \"./instance\";\n\n/**\n * The translator the SDK hands out: same call shape as before, but the key is\n * now constrained to the keys that actually exist.\n *\n * That constraint is the whole point of M5 — it turns `t(\"auth.login.titel\")`\n * into a compile error instead of a raw key rendered to the user, which is the\n * gap the hand-rolled implementation left open (it checked the *dictionary* for\n * missing translations, never the *call site* for typos).\n */\nexport interface SdkTFunction {\n (key: TranslationKey, params?: TParams): string;\n /** Active locale. Use for `Intl.*` / `toLocaleDateString`. */\n locale: LatticeLocale;\n}\n\n/**\n * Wrap i18next's `t` in the shape the SDK's components already use.\n *\n * The public contract is unchanged — `(key, params?) => string`, plus a\n * `locale` property for the browser-native formatters — which is what keeps the\n * ~2400 call sites and every component's `import { useT } from \".../i18n\"`\n * untouched through the migration.\n *\n * The one thing this adds over i18next's own `t` is deriving the namespace from\n * the key's first segment, so `t(\"auth.login.title\")` keeps working as written\n * while i18next still loads only the `auth` namespace. See `./instance.ts`.\n */\nfunction wrap(i18nextT: I18nextT, language: string | undefined): SdkTFunction {\n const t = ((key: TranslationKey, params?: TParams): string =>\n // `ns` first so a caller's interpolation params cannot shadow it.\n i18nextT(key, { ns: namespaceOf(key), ...(params as Record<string, unknown>) })) as SdkTFunction;\n\n t.locale = fromI18nextLocale(language ?? \"en\");\n return t;\n}\n\n/**\n * Translate copy in the active locale.\n *\n * Safe with no provider above: react-i18next falls back to its default instance\n * and, failing that, renders the key rather than throwing. The SDK's test suite\n * relies on that — it renders components bare — and `src/__tests__/setup.ts`\n * initialises that default instance in English so assertions still see real copy\n * rather than keys.\n */\nexport function useT(): SdkTFunction {\n const { t, i18n } = useTranslation();\n const language = i18n?.language;\n return useMemo(() => wrap(t, language), [t, language]);\n}\n","/**\n * The SDK's i18next instance.\n *\n * Auto-namespacing is the load-bearing idea here. Components write fully\n * qualified keys — `t(\"auth.login.title\")` — and the first segment (`auth`) is\n * also the namespace the dictionary is filed under. So `useT()` derives the\n * namespace from the key and hands it to i18next, which lets the ~2400\n * existing call sites stay exactly as they are while i18next still loads\n * dictionaries one namespace at a time.\n *\n * The alternative — merging all 18 namespaces into one — would also leave call\n * sites untouched, but it throws away the namespace boundary that i18next's\n * tooling (`i18next-cli extract/status/types`) is built around, and it makes\n * every chunk carry every module's copy.\n *\n * The instance is created with `createInstance()`, never the default export:\n * a shared package must not read or clobber its host's locale. For the same\n * reason `initReactI18next` is **not** used here — its `init()` writes the\n * instance into react-i18next's module-level singleton, which would swap the\n * host's instance out from under it. `<I18nextProvider>` is the supported way\n * to hand an instance down.\n */\n\nimport { createInstance } from \"i18next\";\nimport type { i18n as I18nInstance, ResourceKey } from \"i18next\";\nimport type { LatticeLocale } from \"@axiom-lattice/i18n\";\n\n/** Shipped locales, in the SDK's tag vocabulary. */\nexport const SUPPORTED_LOCALES: LatticeLocale[] = [\"en-US\", \"zh-CN\"];\n\n/** i18next speaks short tags; the SDK speaks BCP-47. */\nexport function toI18nextLocale(locale: LatticeLocale): string {\n return locale === \"zh-CN\" ? \"zh\" : \"en\";\n}\n\nexport function fromI18nextLocale(language: string): LatticeLocale {\n return language.startsWith(\"zh\") ? \"zh-CN\" : \"en-US\";\n}\n\n/**\n * Namespaces, one per dictionary module.\n *\n * Kept as an explicit list rather than discovered from the filesystem: it is\n * what lets the dynamic import below stay a *literal* pattern, which is what\n * Vite and Rollup require to emit a chunk per namespace.\n */\nexport const NAMESPACES = [\n /**\n * The shared verbs — confirm/cancel/save/delete/… — that used to live in\n * `@axiom-lattice/i18n`'s own dictionary. They keep the `common.` prefix and\n * become a namespace of their own so `namespaceOf` routes them somewhere they\n * actually exist; without this they fell through to the first namespace and\n * rendered as raw keys.\n */\n \"common\",\n \"a2a\", \"auth\", \"capability\", \"chat\", \"chatConfig\", \"chatMenu\", \"chatWorkspace\",\n \"cospace\", \"entities\", \"eval\", \"genui\", \"governance\", \"integration\", \"mcpapp\",\n \"migration\", \"projectRoom\", \"tasks\", \"training\",\n] as const;\n\n/**\n * Which namespace a key belongs to.\n *\n * `\"auth.login.title\"` → `\"auth\"`. A key with no dotted prefix falls back to\n * the first namespace, which keeps `i18next.t` from being handed `undefined`\n * and keeps unknown keys resolving (to themselves) instead of throwing.\n */\nexport function namespaceOf(key: string): string {\n const [head] = key.split(\".\");\n return (NAMESPACES as readonly string[]).includes(head) ? head : NAMESPACES[0];\n}\n\n/**\n * Loads the dictionary for one namespace in one language.\n *\n * A plain object satisfying i18next's backend contract — no\n * `i18next-resources-to-backend` dependency for eight lines of code. The\n * `import()` argument is a literal pattern with a literal extension, so the\n * bundler emits one chunk per namespace+language and loads them on demand.\n */\nconst namespaceBackend = {\n type: \"backend\" as const,\n read(\n language: string,\n namespace: string,\n callback: (error: unknown, resources: ResourceKey | null) => void\n ): void {\n void import(`./locales/${namespace}/${language}.json`)\n .then((mod) => {\n /**\n * Each file is `{ messages: { \"a.b.c\": \"…\" } }`, not the flat object\n * directly. The wrapper exists for the bundler: Vite's JSON plugin emits\n * a *named export* per top-level key, and our keys contain dots, so\n * `export { \"a2a.audit.action\": … }` is not valid JavaScript and the\n * build fails. One level of nesting makes the only top-level key a\n * legal identifier. Keys inside stay flat, so call sites are unaffected.\n */\n const body = (mod.default ?? mod) as { messages?: ResourceKey };\n callback(null, (body.messages ?? body) as ResourceKey);\n })\n .catch((error: unknown) => callback(error, null));\n },\n};\n\n/**\n * Exported for the jest setup, which registers this same loader on\n * react-i18next's default instance. Sharing it keeps the test environment from\n * drifting away from what the app does at runtime.\n */\nexport { namespaceBackend };\n\n/**\n * Build an instance for `locale`.\n *\n * `init()` is awaited so `changeLanguage` resolves only once the namespaces the\n * caller asked for are in hand — callers use that to avoid painting keys.\n */\nexport async function createSdkI18n(locale: LatticeLocale): Promise<I18nInstance> {\n const instance = createInstance();\n\n await instance.use(namespaceBackend).init({\n lng: toI18nextLocale(locale),\n fallbackLng: \"en\",\n ns: [...NAMESPACES],\n defaultNS: NAMESPACES[0],\n /**\n * Keys are stored flat and fully qualified (\"auth.login.title\"), so there\n * is no separator for i18next to split on — splitting would look for\n * `auth` → `login` → `title` as nested objects, which is not the shape.\n */\n keySeparator: false,\n nsSeparator: false,\n interpolation: { escapeValue: false },\n // The backend is the only source; an empty `resources` would make i18next\n // treat bundled resources as authoritative and never call it.\n returnNull: false,\n });\n\n return instance;\n}\n","import { createContext, useContext } from \"react\";\nimport type { LatticeLocale } from \"@axiom-lattice/i18n\";\nimport { SUPPORTED_LOCALES } from \"./instance\";\n\nexport interface LocaleBridgeValue {\n /** Active locale. */\n locale: LatticeLocale;\n /** Locales this build can render. */\n setLocale: (locale: LatticeLocale) => void;\n supportedLocales: LatticeLocale[];\n}\n\n/**\n * Bridges the locale *selection* to the component tree.\n *\n * i18next owns the translations and hands them down through `I18nextProvider`;\n * this context carries only the bits i18next has no opinion about — which\n * locales the build ships, and how a switch is initiated.\n *\n * It exists because `useLocale()` is part of the SDK's public surface (the\n * language switcher reads it) and its shape predates i18next. Keeping the shape\n * is what lets that component survive the migration untouched.\n *\n * The no-provider value is deliberately inert rather than throwing: rendered\n * with no provider, `useLocale()` reports `en-US` and a no-op setter, matching\n * how `useT()` degrades.\n */\nconst INERT_LOCALE_BRIDGE: LocaleBridgeValue = {\n locale: \"en-US\",\n setLocale: () => undefined,\n supportedLocales: SUPPORTED_LOCALES,\n};\n\n/**\n * `null` is the sentinel for \"no provider above\".\n *\n * The old default was the inert object itself, which made \"nobody has provided\n * yet\" indistinguishable from \"someone provided the inert default\" — a\n * distinction a provider that defaults on the tree's behalf needs (see\n * `AxiomLatticeProvider`, which supplies a real provider only when it is the\n * outermost). `useLocale()` below hides the sentinel, so the public contract is\n * unchanged.\n */\nexport const LocaleBridgeContext = createContext<LocaleBridgeValue | null>(null);\n\n/**\n * Read and switch the active locale.\n *\n * @example\n * const { locale, setLocale, supportedLocales } = useLocale();\n */\nexport function useLocale(): LocaleBridgeValue {\n return useContext(LocaleBridgeContext) ?? INERT_LOCALE_BRIDGE;\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { createInstance } from \"i18next\";\nimport type { i18n as I18nInstance } from \"i18next\";\nimport { I18nextProvider } from \"react-i18next\";\nimport type { Dictionary, LatticeLocale } from \"@axiom-lattice/i18n\";\nimport { NAMESPACES, SUPPORTED_LOCALES, toI18nextLocale, namespaceBackend } from \"./instance\";\nimport { LocaleBridgeContext } from \"./useLocale\";\n\nexport interface LatticeLocaleProviderProps {\n /** Active locale. Defaults to `\"en-US\"` — the source language. */\n locale?: LatticeLocale;\n /**\n * Host-supplied copy layered **over** the shipped dictionary, per locale.\n *\n * Kept from the hand-rolled provider so hosts do not change: it is applied as\n * an i18next resource bundle for that namespace-free `translation` scope.\n */\n overrides?: Partial<Record<LatticeLocale, Dictionary>>;\n /** Forwarded to `onLocaleChange` hosts that persist the choice themselves. */\n storageKey?: string;\n /** Called when the user picks a locale, before the host re-renders. */\n onLocaleChange?: (locale: LatticeLocale) => void;\n children: React.ReactNode;\n}\n\n/**\n * Supplies the SDK's i18next instance to every `useT()` below it.\n *\n * The props are the ones the hand-rolled provider had, so hosts and\n * `AgentChatApp` keep working unchanged; only the implementation moved.\n *\n * The instance is private to this provider (`createInstance`, never the default\n * export) so the SDK neither reads nor replaces its host's locale. Namespaces\n * are fetched before `children` render, which is what stops the first paint\n * from showing raw keys.\n */\nexport function LatticeLocaleProvider({\n locale = \"en-US\",\n overrides,\n storageKey,\n onLocaleChange,\n children,\n}: LatticeLocaleProviderProps): React.ReactElement | null {\n const [ready, setReady] = useState(false);\n const instance = useMemo<I18nInstance>(() => createInstance(), []);\n\n useEffect(() => {\n let cancelled = false;\n setReady(false);\n\n void instance\n .use(namespaceBackend)\n .init({\n lng: toI18nextLocale(locale),\n fallbackLng: \"en\",\n ns: [...NAMESPACES],\n defaultNS: NAMESPACES[0],\n // Dictionaries are stored flat and fully qualified, so there is no\n // separator to split on. See ./instance.ts.\n keySeparator: false,\n nsSeparator: false,\n interpolation: { escapeValue: false },\n resources: overrides\n ? {\n [toI18nextLocale(locale)]: {\n [NAMESPACES[0]]: (overrides[locale] ?? {}) as Record<string, string>,\n },\n }\n : undefined,\n })\n .then(() => instance.loadNamespaces([...NAMESPACES]))\n .then(() => {\n if (!cancelled) setReady(true);\n })\n .catch(() => {\n // A namespace that fails to load must not blank the app; render with\n // whatever arrived and let missing keys fall back to their key text.\n if (!cancelled) setReady(true);\n });\n\n return () => {\n cancelled = true;\n };\n }, [instance, locale, overrides]);\n\n /**\n * Switching is delegated, not handled here.\n *\n * The provider cannot swap locale in place — the dictionaries for the new\n * locale have not been fetched — so the host decides what happens: it stores\n * the choice and reloads, and the reload re-enters this component with the\n * new `locale`. That mirrors the hand-rolled provider, whose `setLocale` also\n * only persisted and notified.\n */\n const bridge = useMemo(\n () => ({\n locale,\n supportedLocales: SUPPORTED_LOCALES,\n setLocale: (next: LatticeLocale) => {\n if (!SUPPORTED_LOCALES.includes(next)) return;\n if (storageKey && typeof window !== \"undefined\") {\n try {\n window.localStorage.setItem(storageKey, next);\n } catch {\n // Private mode / disabled storage: the switch still notifies the\n // host, it just will not survive a reload.\n }\n }\n onLocaleChange?.(next);\n },\n }),\n [locale, storageKey, onLocaleChange]\n );\n\n if (!ready) return null;\n\n return (\n <LocaleBridgeContext.Provider value={bridge}>\n <I18nextProvider i18n={instance}>{children}</I18nextProvider>\n </LocaleBridgeContext.Provider>\n );\n}\n","import type {\n AgentWebAppAttachment,\n AgentWebAppBootstrap,\n AgentWebAppInterrupt,\n AgentWebAppGenUIBlock,\n AgentWebAppRuntimeMessage,\n AgentWebAppRuntimeThread,\n} from \"../types\";\nimport type { AgentWebAppRuntimeClientError } from \"../error\";\n\nexport interface AgentWebAppToolState {\n id: string;\n name?: string;\n status: \"running\" | \"completed\";\n}\n\nexport interface AgentWebAppFailedSend {\n text: string;\n attachmentIds: string[];\n}\n\nexport interface AgentWebAppState {\n bootstrap: AgentWebAppBootstrap | null;\n projectId: string | null;\n modelKey: string | null;\n threads: AgentWebAppRuntimeThread[];\n activeThread: AgentWebAppRuntimeThread | null;\n messages: AgentWebAppRuntimeMessage[];\n stream: { isStreaming: boolean; assistantMessageId: string | null; tools: AgentWebAppToolState[] };\n lastFailedSend: AgentWebAppFailedSend | null;\n attachments: AgentWebAppAttachment[];\n interrupts: AgentWebAppInterrupt[];\n errors: { current: AgentWebAppRuntimeClientError | null };\n loading: { bootstrap: boolean; threads: boolean; messages: boolean; attachments: boolean; interrupts: boolean };\n}\n\nexport const initialAgentWebAppState: AgentWebAppState = {\n bootstrap: null,\n projectId: null,\n modelKey: null,\n threads: [],\n activeThread: null,\n messages: [],\n stream: { isStreaming: false, assistantMessageId: null, tools: [] },\n lastFailedSend: null,\n attachments: [],\n interrupts: [],\n errors: { current: null },\n loading: { bootstrap: true, threads: false, messages: false, attachments: false, interrupts: false },\n};\n\nexport type AgentWebAppAction =\n | { type: \"BOOTSTRAP_LOADING\" }\n | { type: \"BOOTSTRAP_READY\"; bootstrap: AgentWebAppBootstrap; projectId: string; modelKey: string | null }\n | { type: \"BOOTSTRAP_SETTLED\" }\n | { type: \"PROJECT_SELECTED\"; projectId: string }\n | { type: \"MODEL_SELECTED\"; modelKey: string }\n | { type: \"THREADS_LOADING\"; loading: boolean }\n | { type: \"THREADS_SET\"; threads: AgentWebAppRuntimeThread[] }\n | { type: \"THREAD_UPSERT\"; thread: AgentWebAppRuntimeThread }\n | { type: \"THREAD_DELETED\"; threadId: string }\n | { type: \"ACTIVE_THREAD_SET\"; thread: AgentWebAppRuntimeThread | null }\n | { type: \"ACTIVE_THREAD_UPDATED\"; thread: AgentWebAppRuntimeThread }\n | { type: \"MESSAGES_LOADING\"; loading: boolean }\n | { type: \"MESSAGES_SET\"; messages: AgentWebAppRuntimeMessage[] }\n | { type: \"MESSAGE_APPEND\"; message: AgentWebAppRuntimeMessage }\n | { type: \"MESSAGES_REMOVE\"; ids: string[] }\n | { type: \"ASSISTANT_DELTA\"; id: string; text: string }\n | { type: \"ASSISTANT_GENUI\"; id: string; block: AgentWebAppGenUIBlock }\n | { type: \"ASSISTANT_COMPLETED\"; temporaryId: string; messageId: string }\n | { type: \"STREAM_SET\"; streaming: boolean; assistantMessageId?: string | null }\n | { type: \"TOOL_STARTED\"; id: string; name: string }\n | { type: \"TOOL_COMPLETED\"; id: string }\n | { type: \"ATTACHMENTS_LOADING\"; loading: boolean }\n | { type: \"ATTACHMENT_ADD\"; attachment: AgentWebAppAttachment }\n | { type: \"ATTACHMENT_REMOVE\"; ref: string }\n | { type: \"ATTACHMENTS_CLEAR\" }\n | { type: \"ATTACHMENTS_REMOVE\"; refs: string[] }\n | { type: \"INTERRUPT_ADD\"; interrupt: AgentWebAppInterrupt }\n | { type: \"INTERRUPT_REMOVE\"; interruptId: string }\n | { type: \"INTERRUPTS_LOADING\"; loading: boolean }\n | { type: \"ERROR_SET\"; error: AgentWebAppRuntimeClientError | null }\n | { type: \"FAILED_SEND_SET\"; failedSend: AgentWebAppFailedSend | null };\n\nexport function agentWebAppReducer(state: AgentWebAppState, action: AgentWebAppAction): AgentWebAppState {\n switch (action.type) {\n case \"BOOTSTRAP_LOADING\": return { ...initialAgentWebAppState, loading: { ...initialAgentWebAppState.loading, bootstrap: true } };\n case \"BOOTSTRAP_READY\": return { ...state, bootstrap: action.bootstrap, projectId: action.projectId, modelKey: action.modelKey, loading: { ...state.loading, bootstrap: false } };\n case \"BOOTSTRAP_SETTLED\": return { ...state, loading: { ...state.loading, bootstrap: false } };\n case \"PROJECT_SELECTED\": return { ...state, projectId: action.projectId, threads: [], activeThread: null, messages: [], attachments: [], interrupts: [], stream: initialAgentWebAppState.stream, lastFailedSend: null, loading: { ...state.loading, messages: false, attachments: false, interrupts: false } };\n case \"MODEL_SELECTED\": return { ...state, modelKey: action.modelKey };\n case \"THREADS_LOADING\": return { ...state, loading: { ...state.loading, threads: action.loading } };\n case \"THREADS_SET\": return { ...state, threads: action.threads, loading: { ...state.loading, threads: false } };\n case \"THREAD_UPSERT\": return { ...state, threads: [action.thread, ...state.threads.filter((item) => item.id !== action.thread.id)], activeThread: state.activeThread?.id === action.thread.id ? action.thread : state.activeThread };\n case \"THREAD_DELETED\": return { ...state, threads: state.threads.filter((item) => item.id !== action.threadId), activeThread: state.activeThread?.id === action.threadId ? null : state.activeThread, messages: state.activeThread?.id === action.threadId ? [] : state.messages, lastFailedSend: state.activeThread?.id === action.threadId ? null : state.lastFailedSend };\n case \"ACTIVE_THREAD_SET\": return { ...state, activeThread: action.thread, messages: [], attachments: [], interrupts: [], stream: initialAgentWebAppState.stream, lastFailedSend: null, loading: { ...state.loading, messages: false, attachments: false, interrupts: false } };\n case \"ACTIVE_THREAD_UPDATED\": return { ...state, activeThread: action.thread };\n case \"MESSAGES_LOADING\": return { ...state, loading: { ...state.loading, messages: action.loading } };\n case \"MESSAGES_SET\": return { ...state, messages: action.messages, loading: { ...state.loading, messages: false } };\n case \"MESSAGE_APPEND\": return { ...state, messages: [...state.messages, action.message] };\n case \"MESSAGES_REMOVE\": return { ...state, messages: state.messages.filter((message) => !action.ids.includes(message.id)) };\n case \"ASSISTANT_DELTA\": {\n const index = state.messages.findIndex((message) => message.id === action.id);\n if (index < 0) return { ...state, messages: [...state.messages, { id: action.id, role: \"ai\", content: action.text }] };\n return { ...state, messages: state.messages.map((message, itemIndex) => itemIndex === index ? { ...message, content: `${message.content ?? \"\"}${action.text}` } : message) };\n }\n case \"ASSISTANT_GENUI\": {\n const widgetMessageId = `${action.id}-genui`;\n const index = state.messages.findIndex((message) => message.id === widgetMessageId);\n if (index < 0) return { ...state, messages: [...state.messages, { id: widgetMessageId, role: \"ai\", content: [action.block] }] };\n return { ...state, messages: state.messages.map((message, itemIndex) => itemIndex === index\n ? { ...message, content: [...(Array.isArray(message.content) ? message.content : []), action.block] }\n : message) };\n }\n case \"ASSISTANT_COMPLETED\": return { ...state, messages: state.messages.map((message) => message.id === action.temporaryId\n ? { ...message, id: action.messageId }\n : message.id === `${action.temporaryId}-genui` ? { ...message, id: `${action.messageId}-genui` } : message), stream: { ...state.stream, assistantMessageId: action.messageId } };\n case \"STREAM_SET\": return { ...state, stream: { ...state.stream, isStreaming: action.streaming, assistantMessageId: action.assistantMessageId === undefined ? state.stream.assistantMessageId : action.assistantMessageId, ...(action.streaming ? { tools: [] } : {}) } };\n case \"TOOL_STARTED\": return { ...state, stream: { ...state.stream, tools: [...state.stream.tools.filter((tool) => tool.id !== action.id), { id: action.id, name: action.name, status: \"running\" }] } };\n case \"TOOL_COMPLETED\": return { ...state, stream: { ...state.stream, tools: state.stream.tools.map((tool) => tool.id === action.id ? { ...tool, status: \"completed\" } : tool) } };\n case \"ATTACHMENTS_LOADING\": return { ...state, loading: { ...state.loading, attachments: action.loading } };\n case \"ATTACHMENT_ADD\": return { ...state, attachments: [...state.attachments, action.attachment], loading: { ...state.loading, attachments: false } };\n case \"ATTACHMENT_REMOVE\": return { ...state, attachments: state.attachments.filter((item) => item.ref !== action.ref) };\n case \"ATTACHMENTS_CLEAR\": return { ...state, attachments: [] };\n case \"ATTACHMENTS_REMOVE\": return { ...state, attachments: state.attachments.filter((item) => !action.refs.includes(item.ref)) };\n case \"INTERRUPT_ADD\": return { ...state, interrupts: [...state.interrupts.filter((item) => item.id !== action.interrupt.id), action.interrupt] };\n case \"INTERRUPT_REMOVE\": return { ...state, interrupts: state.interrupts.filter((item) => item.id !== action.interruptId), loading: { ...state.loading, interrupts: false } };\n case \"INTERRUPTS_LOADING\": return { ...state, loading: { ...state.loading, interrupts: action.loading } };\n case \"ERROR_SET\": return { ...state, errors: { current: action.error }, loading: action.error && !state.bootstrap ? { ...state.loading, bootstrap: false } : state.loading };\n case \"FAILED_SEND_SET\": return { ...state, lastFailedSend: action.failedSend };\n }\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useAgentWebApp() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useAgentWebApp must be used within AgentWebAppProvider\");\n return context;\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetAttachments() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetAttachments must be used within AgentWebAppProvider\");\n return {\n attachments: context.attachments,\n isLoading: context.loading.attachments,\n error: context.errors.current,\n uploadAttachment: context.uploadAttachment,\n removeAttachment: context.removeAttachment,\n clearAttachments: context.clearAttachments,\n };\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetChat() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetChat must be used within AgentWebAppProvider\");\n return {\n activeThread: context.activeThread,\n messages: context.messages,\n tools: context.stream.tools,\n isStreaming: context.stream.isStreaming,\n isLoading: context.loading.messages,\n lastFailedSend: context.lastFailedSend,\n error: context.errors.current,\n sendMessage: context.sendMessage,\n retry: context.retryLastMessage,\n abort: context.abort,\n };\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetInterrupts() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetInterrupts must be used within AgentWebAppProvider\");\n return {\n interrupts: context.interrupts,\n isLoading: context.loading.interrupts,\n error: context.errors.current,\n resumeInterrupt: context.resumeInterrupt,\n };\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetProject() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetProject must be used within AgentWebAppProvider\");\n return {\n bootstrap: context.bootstrap,\n projectId: context.projectId,\n modelKey: context.modelKey,\n selectProject: context.selectProject,\n selectModel: context.selectModel,\n isLoading: context.loading.bootstrap || context.loading.threads,\n error: context.errors.current,\n };\n}\n","import { useContext } from \"react\";\nimport { AgentWebAppContext } from \"../AgentWebAppContext\";\n\nexport function useWidgetThreads() {\n const context = useContext(AgentWebAppContext);\n if (!context) throw new Error(\"useWidgetThreads must be used within AgentWebAppProvider\");\n return {\n threads: context.threads,\n activeThread: context.activeThread,\n isLoading: context.loading.bootstrap || context.loading.threads,\n error: context.errors.current,\n refreshThreads: context.refreshThreads,\n selectThread: context.selectThread,\n createThread: context.createThread,\n renameThread: context.renameThread,\n deleteThread: context.deleteThread,\n };\n}\n","import React, { useRef, useState } from \"react\";\nimport { useWidgetAttachments } from \"../hooks/useWidgetAttachments\";\nimport { useWidgetChat } from \"../hooks/useWidgetChat\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetAttachmentsProps { className?: string; attachLabel?: string; }\n\nexport function WidgetAttachments({ className, attachLabel }: WidgetAttachmentsProps): React.ReactElement | null {\n const t = useT();\n const { bootstrap } = useWidgetProject();\n const { activeThread } = useWidgetChat();\n const { attachments, isLoading, uploadAttachment, removeAttachment } = useWidgetAttachments();\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n if (!bootstrap?.webApp.features.attachments) return null;\n const label = attachLabel ?? t(\"integration.attach.files\");\n const upload = async (event: React.ChangeEvent<HTMLInputElement>): Promise<void> => {\n if (pendingRef.current) return;\n pendingRef.current = true;\n setPending(true);\n setError(null);\n try { for (const file of Array.from(event.target.files ?? [])) await uploadAttachment(file); }\n catch (uploadError) { setError(widgetErrorMessage(uploadError, t)); }\n finally { pendingRef.current = false; setPending(false); if (inputRef.current) inputRef.current.value = \"\"; }\n };\n return <div className={className}>{attachments.length > 0 && <div className=\"axiom-web-app__attachments\">{attachments.map((attachment) => <span className=\"axiom-web-app__attachment\" key={attachment.ref}>{attachment.name}<button type=\"button\" aria-label={t(\"integration.attach.removeNamed\", { name: attachment.name })} onClick={() => removeAttachment(attachment.ref)}>{t(\"integration.attach.remove\")}</button></span>)}</div>}{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}<label className=\"axiom-web-app__attach\"><span>{isLoading || pending ? t(\"integration.attach.uploading\") : label}</span><input ref={inputRef} type=\"file\" multiple aria-label={label} disabled={!activeThread || isLoading || pending} onChange={(event) => void upload(event)} /></label></div>;\n}\n","import { formatErrorMessage } from \"../../../utils/errorMessage\";\nimport type { SdkTFunction } from \"../../../i18n\";\n\nexport function widgetErrorMessage(error: unknown, t: SdkTFunction): string {\n return formatErrorMessage(error, t(\"integration.error.requestFailed\"));\n}\n","import React, { useRef, useState } from \"react\";\nimport { useWidgetChat } from \"../hooks/useWidgetChat\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetComposerProps { className?: string; messageLabel?: string; placeholder?: string; sendLabel?: string; abortLabel?: string; leadingSlot?: React.ReactNode; }\n\nexport function WidgetComposer({ className, messageLabel, placeholder, sendLabel, abortLabel, leadingSlot }: WidgetComposerProps): React.ReactElement {\n const t = useT();\n const { activeThread, isStreaming, sendMessage, abort, retry, lastFailedSend } = useWidgetChat();\n const pendingRef = useRef(false);\n const draftRef = useRef(\"\");\n const [pending, setPending] = useState(false);\n const [text, setText] = useState(\"\");\n const [error, setError] = useState<string | null>(null);\n const run = async (operation: () => Promise<void>): Promise<void> => {\n if (pendingRef.current) return;\n pendingRef.current = true; setPending(true); setError(null);\n try { await operation(); }\n catch (operationError) { setError(widgetErrorMessage(operationError, t)); }\n finally { pendingRef.current = false; setPending(false); }\n };\n const submit = (event: React.FormEvent): void => {\n event.preventDefault();\n const content = text.trim();\n if (!content || isStreaming) return;\n draftRef.current = \"\";\n setText(\"\");\n void (async () => {\n if (pendingRef.current) return;\n pendingRef.current = true; setPending(true); setError(null);\n try { await sendMessage(content); }\n catch (sendError) {\n setError(widgetErrorMessage(sendError, t));\n if (draftRef.current === \"\") { draftRef.current = content; setText(content); }\n } finally { pendingRef.current = false; setPending(false); }\n })();\n };\n return <form className={`axiom-web-app__composer${className ? ` ${className}` : \"\"}`} onSubmit={submit}>{leadingSlot}{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}<label className=\"axiom-web-app__composer-input\"><span className=\"axiom-web-app__sr-only\">{messageLabel ?? t(\"integration.composer.message\")}</span><textarea aria-label={messageLabel ?? t(\"integration.composer.message\")} value={text} placeholder={placeholder ?? t(\"integration.composer.placeholder\")} disabled={!activeThread} onChange={(event) => { draftRef.current = event.target.value; setText(event.target.value); }} /></label><div className=\"axiom-web-app__composer-actions\">{lastFailedSend && <button type=\"button\" onClick={() => void run(retry)} disabled={isStreaming || pending}>{t(\"integration.composer.retryFailed\")}</button>}{isStreaming ? <button type=\"button\" disabled={pending} onClick={() => void run(abort)}>{abortLabel ?? t(\"integration.composer.stop\")}</button> : <button type=\"submit\" disabled={!activeThread || !text.trim() || pending}>{sendLabel ?? t(\"integration.composer.send\")}</button>}</div></form>;\n}\n","import { useRef, useState } from \"react\";\n\nexport type ReviewDecision = \"approve\" | \"reject\";\n\nexport interface ReviewDecisionState {\n feedback: string;\n setFeedback(value: string): void;\n pending: ReviewDecision | null;\n submitted: boolean;\n error: unknown;\n submit(decision: ReviewDecision): Promise<boolean>;\n}\n\n/** Shared decision state for Console and WebApp review adapters. */\nexport function useReviewDecision(\n onSubmit: (decision: ReviewDecision, trimmedFeedback: string) => void | Promise<void>,\n): ReviewDecisionState {\n const submittingRef = useRef(false);\n const [feedback, setFeedback] = useState(\"\");\n const [pending, setPending] = useState<ReviewDecision | null>(null);\n const [submitted, setSubmitted] = useState(false);\n const [error, setError] = useState<unknown>(null);\n\n const submit = async (decision: ReviewDecision): Promise<boolean> => {\n if (submittingRef.current) return false;\n submittingRef.current = true;\n setPending(decision);\n setError(null);\n try {\n await Promise.resolve(onSubmit(decision, feedback.trim()));\n setSubmitted(true);\n return true;\n } catch (submitError) {\n setError(submitError);\n return false;\n } finally {\n submittingRef.current = false;\n setPending(null);\n }\n };\n\n return { feedback, setFeedback, pending, submitted, error, submit };\n}\n","import React from \"react\";\nimport type { AgentWebAppInterrupt, AgentWebAppInterruptResponse } from \"../types\";\nimport { useReviewDecision } from \"../../../components/shared/useReviewDecision\";\nimport { formatErrorMessage } from \"../../../utils/errorMessage\";\nimport { useT } from \"../../../i18n\";\nimport type { SdkTFunction } from \"../../../i18n\";\n\nexport interface WidgetInterruptViewProps {\n interrupt: AgentWebAppInterrupt;\n onSubmit(interruptId: string, response: AgentWebAppInterruptResponse, message: string): Promise<void>;\n className?: string;\n approveLabel?: string;\n rejectLabel?: string;\n feedbackLabel?: string;\n disabled?: boolean;\n}\n\nfunction errorMessage(error: unknown, t: SdkTFunction): string {\n return formatErrorMessage(error, t(\"integration.interrupt.submitFailed\"));\n}\n\nexport function WidgetInterruptView({ interrupt, onSubmit, className, approveLabel, rejectLabel, feedbackLabel, disabled = false }: WidgetInterruptViewProps): React.ReactElement {\n const t = useT();\n const review = useReviewDecision(async (decision, feedback) => {\n const approved = decision === \"approve\";\n await onSubmit(interrupt.id, { approved, ...(feedback ? { feedback } : {}) }, feedback || (approved ? t(\"integration.interrupt.approvedMessage\") : t(\"integration.interrupt.changesRequestedMessage\")));\n });\n\n const submit = async (approved: boolean): Promise<void> => {\n if (disabled) return;\n await review.submit(approved ? \"approve\" : \"reject\");\n };\n\n return (\n <section className={`axiom-web-app__interrupt${className ? ` ${className}` : \"\"}`} aria-label={t(\"integration.interrupt.aria\")}>\n <strong>{interrupt.prompt}</strong>\n {interrupt.data && <p className=\"axiom-web-app__interrupt-fallback\">{t(\"integration.interrupt.detailsUnavailable\")}</p>}\n <label className=\"axiom-web-app__feedback\">\n <span>{feedbackLabel ?? t(\"integration.interrupt.feedback\")}</span>\n <textarea value={review.feedback} disabled={disabled || review.pending !== null} onChange={(event) => review.setFeedback(event.target.value)} />\n </label>\n {review.error !== null && <p className=\"axiom-web-app__error\" role=\"alert\">{errorMessage(review.error, t)}</p>}\n <div className=\"axiom-web-app__interrupt-actions\">\n <button type=\"button\" disabled={disabled || review.pending !== null} onClick={() => void submit(false)}>{rejectLabel ?? t(\"integration.interrupt.reject\")}</button>\n <button type=\"button\" disabled={disabled || review.pending !== null} onClick={() => void submit(true)}>{approveLabel ?? t(\"integration.interrupt.approve\")}</button>\n </div>\n </section>\n );\n}\n","import React from \"react\";\nimport type { AgentWebAppInterrupt } from \"../types\";\nimport { useWidgetInterrupts } from \"../hooks/useWidgetInterrupts\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { WidgetInterruptView } from \"./WidgetInterruptView\";\n\nexport interface WidgetInterruptProps { interrupt: AgentWebAppInterrupt; className?: string; approveLabel?: string; rejectLabel?: string; feedbackLabel?: string; }\n\nexport function WidgetInterrupt(props: WidgetInterruptProps): React.ReactElement | null {\n const { bootstrap } = useWidgetProject();\n const { isLoading, resumeInterrupt } = useWidgetInterrupts();\n if (!bootstrap?.webApp.features.hitl) return null;\n return <WidgetInterruptView {...props} disabled={isLoading} onSubmit={resumeInterrupt} />;\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { clsx } from 'clsx';\nimport React, { useMemo } from 'react';\nimport { Parser, Renderer } from \"./core\";\nimport DebugPanel from \"./DebugPanel\";\nimport { useStreaming } from \"./hooks\";\nimport \"./index.css\";\nconst XMarkdown = /*#__PURE__*/React.memo(props => {\n const {\n streaming,\n config,\n components,\n paragraphTag,\n content,\n children,\n rootClassName,\n className,\n style,\n openLinksInNewTab,\n dompurifyConfig,\n protectCustomTagNewlines,\n escapeRawHtml,\n debug\n } = props;\n\n // ============================ style ============================\n const mergedCls = clsx('x-markdown', rootClassName, className);\n\n // ============================ Streaming ============================\n const displayContent = useStreaming(content || children || '', {\n streaming,\n components\n });\n // ============================ Render ============================\n const parser = useMemo(() => new Parser({\n markedConfig: config,\n paragraphTag,\n openLinksInNewTab,\n components,\n protectCustomTagNewlines,\n escapeRawHtml\n }), [config, paragraphTag, openLinksInNewTab, components, protectCustomTagNewlines, escapeRawHtml]);\n const renderer = useMemo(() => new Renderer({\n components: components,\n dompurifyConfig,\n streaming\n }), [components, dompurifyConfig, streaming]);\n const htmlString = useMemo(() => {\n if (!displayContent) return '';\n return parser.parse(displayContent);\n }, [displayContent, parser]);\n if (!displayContent) return null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: mergedCls,\n style: style\n }, renderer.render(htmlString)), debug ? /*#__PURE__*/React.createElement(DebugPanel, null) : null);\n});\nif (process.env.NODE_ENV !== 'production') {\n XMarkdown.displayName = 'XMarkdown';\n}\nexport default XMarkdown;","import { Marked } from 'marked';\nexport const other = {\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeTest: /[&<>\"'/]/,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n escapeReplace: /[&<>\"'/]/g,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n completeFencedCode: /^ {0,3}(`{3,}|~{3,})([\\s\\S]*?)\\n {0,3}\\1[ \\n\\t]*$/\n};\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst getEscapeReplacement = ch => escapeReplacements[ch];\nexport function escapeHtml(html, encode) {\n if (encode) {\n if (other.escapeTest.test(html)) {\n return html.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html)) {\n return html.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nclass Parser {\n options;\n markdownInstance;\n constructor(options = {}) {\n const {\n markedConfig = {}\n } = options;\n this.options = options;\n this.markdownInstance = new Marked();\n this.configureLinkRenderer();\n this.configureParagraphRenderer();\n this.configureCodeRenderer();\n this.configureHtmlEscapeRenderer();\n // user config at last\n this.markdownInstance.use(markedConfig);\n }\n configureHtmlEscapeRenderer() {\n if (!this.options.escapeRawHtml) return;\n const renderer = {\n html(token) {\n const {\n raw = '',\n text = ''\n } = token;\n return escapeHtml(raw || text, true);\n }\n };\n this.markdownInstance.use({\n renderer\n });\n }\n configureLinkRenderer() {\n if (!this.options.openLinksInNewTab) return;\n const renderer = {\n link({\n href,\n title,\n tokens\n }) {\n const text = this.parser.parseInline(tokens);\n const titleAttr = title ? ` title=\"${title}\"` : '';\n return `<a href=\"${href}\"${titleAttr} target=\"_blank\" rel=\"noopener noreferrer\">${text}</a>`;\n }\n };\n this.markdownInstance.use({\n renderer\n });\n }\n configureParagraphRenderer() {\n const {\n paragraphTag\n } = this.options;\n if (!paragraphTag) return;\n const renderer = {\n paragraph({\n tokens\n }) {\n return `<${paragraphTag}>${this.parser.parseInline(tokens)}</${paragraphTag}>\\n`;\n }\n };\n this.markdownInstance.use({\n renderer\n });\n }\n configureCodeRenderer() {\n const renderer = {\n code({\n text,\n raw,\n lang,\n escaped,\n codeBlockStyle\n }) {\n const infoString = (lang || '').trim();\n const langString = infoString.match(other.notSpaceStart)?.[0];\n const code = `${text.replace(other.endingNewline, '')}\\n`;\n const isIndentedCode = codeBlockStyle === 'indented';\n // if code is indented, it's done because it has no end tag\n const streamStatus = isIndentedCode || other.completeFencedCode.test(raw) ? 'done' : 'loading';\n const escapedCode = escaped ? code : escapeHtml(code, true);\n const classAttr = langString ? ` class=\"language-${escapeHtml(langString)}\"` : '';\n const dataAttrs = ` data-block=\"true\" data-state=\"${streamStatus}\"` + (infoString ? ` data-lang=\"${escapeHtml(infoString)}\"` : '');\n return `<pre><code${dataAttrs}${classAttr}>${escapedCode}</code></pre>\\n`;\n }\n };\n this.markdownInstance.use({\n renderer\n });\n }\n protectCustomTags(content) {\n const placeholders = new Map();\n const customTagNames = Object.keys(this.options.components || {});\n if (customTagNames.length === 0) {\n return {\n protected: content,\n placeholders\n };\n }\n let placeholderIndex = 0;\n const tagNamePattern = customTagNames.map(name => name.toLowerCase().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|');\n const openTagRegex = new RegExp(`<(${tagNamePattern})(?:\\\\s[^>]*)?>`, 'gi');\n const closeTagRegex = new RegExp(`</(${tagNamePattern})>`, 'gi');\n const positions = [];\n let match;\n openTagRegex.lastIndex = 0;\n match = openTagRegex.exec(content);\n while (match !== null) {\n positions.push({\n index: match.index,\n type: 'open',\n tagName: match[1].toLowerCase(),\n match: match[0]\n });\n match = openTagRegex.exec(content);\n }\n closeTagRegex.lastIndex = 0;\n match = closeTagRegex.exec(content);\n while (match !== null) {\n positions.push({\n index: match.index,\n type: 'close',\n tagName: match[1].toLowerCase(),\n match: match[0]\n });\n match = closeTagRegex.exec(content);\n }\n positions.sort((a, b) => a.index - b.index);\n const stack = [];\n const result = [];\n let lastIndex = 0;\n positions.forEach(pos => {\n if (pos.type === 'open') {\n // Self-closing tags don't have inner content, so they shouldn't be pushed to the stack.\n if (!pos.match.endsWith('/>')) {\n stack.push({\n tagName: pos.tagName,\n start: pos.index,\n openTag: pos.match\n });\n }\n } else if (pos.type === 'close' && stack.length > 0 && stack[stack.length - 1].tagName === pos.tagName) {\n const open = stack.pop();\n if (stack.length === 0) {\n const startPos = open.start;\n const endPos = pos.index + pos.match.length;\n const openTag = open.openTag;\n const closeTag = pos.match;\n const innerContent = content.slice(startPos + openTag.length, pos.index);\n if (lastIndex < startPos) {\n result.push(content.slice(lastIndex, startPos));\n }\n if (innerContent.includes('\\n\\n')) {\n const protectedInner = innerContent.replace(/\\n\\n/g, () => {\n const ph = `__X_MD_PLACEHOLDER_${placeholderIndex++}__`;\n placeholders.set(ph, '\\n\\n');\n return ph;\n });\n result.push(openTag + protectedInner + closeTag);\n } else {\n result.push(openTag + innerContent + closeTag);\n }\n lastIndex = endPos;\n }\n }\n });\n if (lastIndex < content.length) {\n result.push(content.slice(lastIndex));\n }\n return {\n protected: result.join(''),\n placeholders\n };\n }\n restorePlaceholders(content, placeholders) {\n if (placeholders.size === 0) {\n return content;\n }\n return content.replace(/__X_MD_PLACEHOLDER_\\d+__/g, match => placeholders.get(match) ?? match);\n }\n parse(content) {\n if (this.options.protectCustomTagNewlines) {\n const {\n protected: protectedContent,\n placeholders\n } = this.protectCustomTags(content);\n const parsed = this.markdownInstance.parse(protectedContent);\n return this.restorePlaceholders(parsed, placeholders);\n }\n return this.markdownInstance.parse(content);\n }\n}\nexport default Parser;","import DOMPurify from 'dompurify';\nimport parseHtml, { domToReact } from 'html-react-parser';\nimport React from 'react';\nimport AnimationText from \"../AnimationText\";\nclass Renderer {\n options;\n static NON_WHITESPACE_REGEX = /[^\\r\\n\\s]+/;\n constructor(options) {\n this.options = options;\n }\n\n /**\n * Detect unclosed tags using regular expressions\n */\n detectUnclosedTags(htmlString) {\n const unclosedTags = new Set();\n const stack = [];\n const tagRegex = /<\\/?([a-zA-Z][a-zA-Z0-9-]*)(?:\\s[^>]*)?>/g;\n let match = tagRegex.exec(htmlString);\n while (match !== null) {\n const [fullMatch, tagName] = match;\n const isClosing = fullMatch.startsWith('</');\n const isSelfClosing = fullMatch.endsWith('/>');\n if (this.options.components?.[tagName.toLowerCase()]) {\n if (isClosing) {\n // Found closing tag, pop from stack\n const lastIndex = stack.lastIndexOf(tagName.toLowerCase());\n if (lastIndex !== -1) {\n stack.splice(lastIndex, 1);\n }\n } else if (!isSelfClosing) {\n // Found opening tag, push to stack\n stack.push(tagName.toLowerCase());\n }\n }\n match = tagRegex.exec(htmlString);\n }\n\n // Remaining tags in stack are unclosed\n stack.forEach(tag => {\n unclosedTags.add(tag);\n });\n return unclosedTags;\n }\n\n /**\n * Configure DOMPurify to preserve components and target attributes, filter everything else\n */\n configureDOMPurify() {\n const customComponents = Object.keys(this.options.components || {});\n const userConfig = this.options.dompurifyConfig || {};\n const allowedTags = Array.isArray(userConfig.ADD_TAGS) ? userConfig.ADD_TAGS : [];\n const addAttr = Array.isArray(userConfig.ADD_ATTR) ? userConfig.ADD_ATTR : [];\n return {\n ...userConfig,\n ADD_TAGS: Array.from(new Set([...customComponents, ...allowedTags])),\n ADD_ATTR: Array.from(new Set(['target', 'rel', ...addAttr]))\n };\n }\n createReplaceElement(unclosedTags, cidRef) {\n const {\n enableAnimation,\n animationConfig\n } = this.options.streaming || {};\n return domNode => {\n const key = `x-markdown-component-${cidRef.current++}`;\n\n // Check if it's a text node with data\n const isValidTextNode = domNode.type === 'text' && domNode.data && Renderer.NON_WHITESPACE_REGEX.test(domNode.data);\n // Skip animation for text nodes inside custom components to preserve their internal structure\n const parentTagName = domNode.parent?.name;\n const isParentCustomComponent = parentTagName && this.options.components?.[parentTagName];\n const shouldReplaceText = enableAnimation && isValidTextNode && !isParentCustomComponent;\n if (shouldReplaceText) {\n return /*#__PURE__*/React.createElement(AnimationText, {\n text: domNode.data,\n key,\n animationConfig\n });\n }\n if (!('name' in domNode)) return;\n const {\n name,\n attribs,\n children\n } = domNode;\n const renderElement = this.options.components?.[name];\n if (renderElement) {\n const streamStatus = unclosedTags?.has(name) ? 'loading' : 'done';\n const props = {\n domNode,\n streamStatus,\n key,\n ...attribs,\n ...(attribs.disabled !== undefined && {\n disabled: true\n }),\n ...(attribs.checked !== undefined && {\n checked: true\n })\n };\n\n // Handle class and className merging\n const classes = [props.className, props.classname, props.class].filter(Boolean).join(' ').trim();\n props.className = classes || '';\n if (name === 'code') {\n const {\n 'data-block': block = 'false',\n 'data-state': codeStreamStatus = 'done'\n } = attribs || {};\n props.block = block === 'true';\n props.streamStatus = codeStreamStatus === 'loading' ? 'loading' : 'done';\n const langFromData = attribs?.['data-lang'];\n const langFromClass = attribs?.class?.match(/(?:^|\\s)language-([^\\s]+)/)?.[1] ?? attribs?.class?.match(/(?:^|\\s)lang-([^\\s]+)/)?.[1];\n const lang = langFromData || langFromClass;\n if (lang) {\n props.lang = lang;\n }\n }\n if (children) {\n props.children = this.processChildren(children, unclosedTags, cidRef);\n }\n return /*#__PURE__*/React.createElement(renderElement, props);\n }\n };\n }\n processChildren(children, unclosedTags, cidRef) {\n return domToReact(children, {\n replace: this.createReplaceElement(unclosedTags, cidRef)\n });\n }\n processHtml(htmlString) {\n const unclosedTags = this.detectUnclosedTags(htmlString);\n const cidRef = {\n current: 0\n };\n\n // Use DOMPurify to clean HTML while preserving custom components and target attributes\n const purifyConfig = this.configureDOMPurify();\n const cleanHtml = DOMPurify.sanitize(htmlString, purifyConfig);\n return parseHtml(cleanHtml, {\n replace: this.createReplaceElement(unclosedTags, cidRef)\n });\n }\n render(html) {\n return this.processHtml(html);\n }\n}\nexport default Renderer;","import React, { useEffect, useMemo, useRef, useState } from 'react';\nconst AnimationText = /*#__PURE__*/React.memo(props => {\n const {\n text,\n animationConfig\n } = props;\n const {\n fadeDuration = 200,\n easing = 'ease-in-out'\n } = animationConfig || {};\n const [chunks, setChunks] = useState([]);\n const prevTextRef = useRef('');\n useEffect(() => {\n if (text === prevTextRef.current) return;\n if (!(prevTextRef.current && text.indexOf(prevTextRef.current) === 0)) {\n setChunks([text]);\n prevTextRef.current = text;\n return;\n }\n const newText = text.slice(prevTextRef.current.length);\n if (!newText) return;\n setChunks(prev => [...prev, newText]);\n prevTextRef.current = text;\n }, [text]);\n const animationStyle = useMemo(() => ({\n animation: `x-markdown-fade-in ${fadeDuration}ms ${easing} forwards`,\n color: 'inherit'\n }), [fadeDuration, easing]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, chunks.map((text, index) => /*#__PURE__*/React.createElement(\"span\", {\n style: animationStyle,\n key: `animation-text-${index}`\n }, text)));\n});\nexport default AnimationText;","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport \"./DebugPanel.css\";\nconst CONSTANTS = {\n FPS_THRESHOLD: {\n GOOD: 55,\n WARNING: 40\n },\n COLORS: {\n GOOD: '#52c41a',\n WARNING: '#faad14',\n DANGER: '#ff4d4f'\n },\n CHART: {\n WIDTH: 750,\n HEIGHT: 400,\n PADDING: 80\n }\n};\nconst getInitialPosition = () => {\n if (typeof window === 'undefined') {\n return {\n x: 12,\n y: 12\n };\n }\n return {\n x: window.innerWidth - 220,\n y: window.innerHeight / 2 - 100\n };\n};\nconst DebugPanel = () => {\n const [fps, setFps] = useState(0);\n const [memory, setMemory] = useState(0);\n const [isRecording, setIsRecording] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [records, setRecords] = useState([]);\n const [position, setPosition] = useState(getInitialPosition());\n const [isMounted, setIsMounted] = useState(false);\n const recordingRef = useRef([]);\n const frameTimesRef = useRef([]);\n const lastTimeRef = useRef(0);\n const frameCountRef = useRef(0);\n const animationRef = useRef(undefined);\n const dragRef = useRef({\n isDragging: false,\n startX: 0,\n startY: 0,\n initialX: 0,\n initialY: 0\n });\n useEffect(() => {\n // 仅在客户端运行\n if (typeof window === 'undefined') return;\n\n // 仅在客户端初始化\n if (!isMounted) {\n setIsMounted(true);\n lastTimeRef.current = performance.now();\n }\n const update = () => {\n const now = performance.now();\n const delta = now - lastTimeRef.current;\n frameTimesRef.current.push(delta);\n if (frameTimesRef.current.length > 60) frameTimesRef.current.shift();\n frameCountRef.current++;\n if (delta >= 1000) {\n const currentFps = Math.round(frameCountRef.current * 1000 / delta);\n const currentMemory = getMemoryUsage();\n setFps(currentFps);\n setMemory(currentMemory);\n if (isRecording) {\n recordingRef.current.push({\n timestamp: Date.now(),\n fps: currentFps,\n memory: currentMemory\n });\n }\n frameCountRef.current = 0;\n lastTimeRef.current = now;\n }\n animationRef.current = requestAnimationFrame(update);\n };\n animationRef.current = requestAnimationFrame(update);\n return () => {\n if (animationRef.current !== undefined) {\n cancelAnimationFrame(animationRef.current);\n }\n };\n }, [isRecording, isMounted]);\n const getMemoryUsage = () => {\n const perf = performance;\n return perf.memory ? Math.round(perf.memory.usedJSHeapSize / 1024 / 1024) : 0;\n };\n const formatMemory = mb => {\n if (mb < 1) return `${Math.round(mb * 1024)} KB`;\n if (mb >= 1024) return `${(mb / 1024).toFixed(2)} GB`;\n return `${mb.toFixed(2)} MB`;\n };\n const getFpsColor = value => {\n if (value >= CONSTANTS.FPS_THRESHOLD.GOOD) return CONSTANTS.COLORS.GOOD;\n if (value >= CONSTANTS.FPS_THRESHOLD.WARNING) return CONSTANTS.COLORS.WARNING;\n return CONSTANTS.COLORS.DANGER;\n };\n const toggleRecording = useCallback(() => {\n if (isRecording) {\n setIsRecording(false);\n setRecords([...recordingRef.current]);\n setShowModal(true);\n } else {\n recordingRef.current = [];\n setIsRecording(true);\n }\n }, [isRecording]);\n const handleMouseDown = useCallback(e => {\n if (e.target.closest('.x-markdown-debug-action')) return;\n dragRef.current = {\n isDragging: true,\n startX: e.clientX,\n startY: e.clientY,\n initialX: position.x,\n initialY: position.y\n };\n }, [position]);\n const handleMouseMove = useCallback(e => {\n if (!dragRef.current.isDragging) return;\n const dx = e.clientX - dragRef.current.startX;\n const dy = e.clientY - dragRef.current.startY;\n setPosition({\n x: dragRef.current.initialX + dx,\n y: dragRef.current.initialY + dy\n });\n }, []);\n const handleMouseUp = useCallback(() => {\n dragRef.current.isDragging = false;\n }, []);\n useEffect(() => {\n // 仅在客户端运行\n if (typeof window === 'undefined') return;\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n }, [handleMouseMove, handleMouseUp]);\n const PerformanceChart = () => {\n if (!records.length) return null;\n const {\n WIDTH,\n HEIGHT,\n PADDING\n } = CONSTANTS.CHART;\n const chartWidth = WIDTH - PADDING * 2;\n const chartHeight = HEIGHT - PADDING * 2;\n const startTime = records[0]?.timestamp ?? 0;\n const endTime = records[records.length - 1]?.timestamp ?? 0;\n const duration = endTime - startTime || 1;\n const maxFps = Math.max(...records.map(r => r.fps), 60);\n const maxMemory = Math.max(...records.map(r => r.memory), 0) * 1.1;\n const avgFps = records.length > 0 ? records.reduce((sum, r) => sum + r.fps, 0) / records.length : 0;\n const avgMemory = records.length > 0 ? records.reduce((sum, r) => sum + r.memory, 0) / records.length : 0;\n const minFps = records.length > 0 ? Math.min(...records.map(r => r.fps)) : 0;\n const maxFpsValue = records.length > 0 ? Math.max(...records.map(r => r.fps)) : 0;\n const createPoints = (key, max) => records.map(r => {\n const x = PADDING + (r.timestamp - startTime) / duration * chartWidth;\n const y = PADDING + chartHeight - r[key] / max * chartHeight;\n return `${x},${y}`;\n }).join(' ');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-modal-content\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stats-summary\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-item\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-label\"\n }, \"Duration\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-value\"\n }, (duration / 1000).toFixed(2), \"s\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-item\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-label\"\n }, \"FPS Avg\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-value\",\n style: {\n color: getFpsColor(avgFps)\n }\n }, avgFps.toFixed(1))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-item\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-label\"\n }, \"FPS Range\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-value\"\n }, minFps, \" - \", maxFpsValue)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-item\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-label\"\n }, \"Memory Avg\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-stat-value\"\n }, formatMemory(avgMemory)))), /*#__PURE__*/React.createElement(\"svg\", {\n width: WIDTH,\n height: HEIGHT,\n className: \"x-markdown-debug-chart-full\",\n role: \"img\",\n \"aria-label\": \"Performance chart showing FPS and memory usage over time\"\n }, /*#__PURE__*/React.createElement(\"title\", null, \"Performance Chart\"), [0, 0.25, 0.5, 0.75, 1].map(ratio => /*#__PURE__*/React.createElement(\"g\", {\n key: ratio\n }, /*#__PURE__*/React.createElement(\"line\", {\n x1: PADDING,\n y1: PADDING + chartHeight * ratio,\n x2: WIDTH - PADDING,\n y2: PADDING + chartHeight * ratio,\n stroke: \"rgba(255,255,255,0.1)\",\n strokeWidth: \"1\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: PADDING + chartWidth * ratio,\n y1: PADDING,\n x2: PADDING + chartWidth * ratio,\n y2: HEIGHT - PADDING,\n stroke: \"rgba(255,255,255,0.1)\",\n strokeWidth: \"1\"\n }))), /*#__PURE__*/React.createElement(\"polyline\", {\n points: createPoints('fps', maxFps),\n fill: \"none\",\n stroke: CONSTANTS.COLORS.GOOD,\n strokeWidth: \"2\",\n className: \"fps-line\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n points: createPoints('memory', maxMemory),\n fill: \"none\",\n stroke: \"#1890ff\",\n strokeWidth: \"2\",\n className: \"memory-line\"\n }), /*#__PURE__*/React.createElement(\"text\", {\n x: PADDING - 10,\n y: PADDING,\n fill: CONSTANTS.COLORS.GOOD,\n fontSize: \"12\",\n textAnchor: \"end\"\n }, maxFps.toFixed(0)), /*#__PURE__*/React.createElement(\"text\", {\n x: PADDING - 10,\n y: HEIGHT - PADDING,\n fill: CONSTANTS.COLORS.GOOD,\n fontSize: \"12\",\n textAnchor: \"end\"\n }, \"0\"), /*#__PURE__*/React.createElement(\"text\", {\n x: PADDING - 10,\n y: PADDING - 15,\n fill: CONSTANTS.COLORS.GOOD,\n fontSize: \"14\",\n fontWeight: \"bold\",\n textAnchor: \"end\"\n }, \"FPS\"), /*#__PURE__*/React.createElement(\"text\", {\n x: WIDTH - PADDING + 10,\n y: PADDING + 20,\n fill: \"#1890ff\",\n fontSize: \"12\",\n textAnchor: \"start\"\n }, formatMemory(maxMemory)), /*#__PURE__*/React.createElement(\"text\", {\n x: WIDTH - PADDING + 10,\n y: HEIGHT - PADDING,\n fill: \"#1890ff\",\n fontSize: \"12\",\n textAnchor: \"start\"\n }, formatMemory(0)), /*#__PURE__*/React.createElement(\"text\", {\n x: WIDTH - PADDING + 10,\n y: PADDING + 5,\n fill: \"#1890ff\",\n fontSize: \"14\",\n fontWeight: \"bold\",\n textAnchor: \"start\"\n }, \"Memory\"), /*#__PURE__*/React.createElement(\"text\", {\n x: PADDING,\n y: HEIGHT - PADDING + 20,\n fill: \"rgba(255,255,255,0.6)\",\n fontSize: \"12\",\n textAnchor: \"middle\"\n }, \"0s\"), /*#__PURE__*/React.createElement(\"text\", {\n x: WIDTH - PADDING,\n y: HEIGHT - PADDING + 20,\n fill: \"rgba(255,255,255,0.6)\",\n fontSize: \"12\",\n textAnchor: \"middle\"\n }, (duration / 1000).toFixed(1), \"s\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-legend\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-legend-item\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-legend-color\",\n style: {\n backgroundColor: CONSTANTS.COLORS.GOOD\n }\n }), /*#__PURE__*/React.createElement(\"span\", null, \"FPS\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-legend-item\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-legend-color\",\n style: {\n backgroundColor: '#1890ff'\n }\n }), /*#__PURE__*/React.createElement(\"span\", null, \"Memory\"))));\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-panel\",\n style: {\n left: position.x,\n top: position.y,\n cursor: dragRef.current.isDragging ? 'grabbing' : 'grab'\n },\n onMouseDown: handleMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-row\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-label\"\n }, \"FPS\"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-value\",\n style: {\n color: getFpsColor(fps)\n }\n }, fps)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-row\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-label\"\n }, \"Memory\"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"x-markdown-debug-value\"\n }, formatMemory(memory))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-actions\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: `x-markdown-debug-action x-markdown-debug-record-btn ${isRecording ? 'recording' : ''}`,\n onClick: toggleRecording\n }, isRecording ? '⏹ Stop' : '⏺ Record'), records.length > 0 && !isRecording && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"x-markdown-debug-action\",\n onClick: () => setShowModal(true)\n }, \"\\uD83D\\uDCCA View\"))), showModal && records.length > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-modal-overlay\",\n onClick: () => setShowModal(false)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-modal\",\n onClick: e => e.stopPropagation()\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"x-markdown-debug-modal-header\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n color: '#fff',\n fontSize: 18,\n fontWeight: '600'\n }\n }, \"Performance Recording\"), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"x-markdown-debug-close-btn\",\n onClick: () => setShowModal(false)\n }, \"\\u2715\")), /*#__PURE__*/React.createElement(PerformanceChart, null))) : null);\n};\nexport default DebugPanel;","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { StreamCacheTokenType } from \"../interface\";\n\n/* ------------ Type ------------ */\n\n/**\n * When a token is about to be committed, if a non-empty string is returned,\n * only that prefix is committed and the rest of the pending content is left\n * for subsequent recognition (used for handover scenarios like list followed by `).\n * Returns null to commit the entire pending content by default.\n */\n\n/* ------------ Constants ------------ */\n// Validates whether a token is still incomplete in the streaming context.\n// Returns true if the token is syntactically incomplete; false if it is complete or invalid.\nconst STREAM_INCOMPLETE_REGEX = {\n image: [/^!\\[[^\\]\\r\\n]{0,1000}$/, /^!\\[[^\\r\\n]{0,1000}\\]\\(*[^)\\r\\n]{0,1000}$/],\n link: [/^\\[[^\\]\\r\\n]{0,1000}$/, /^\\[[^\\r\\n]{0,1000}\\]\\(*[^)\\r\\n]{0,1000}$/],\n html: [/^<\\/$/, /^<\\/?[a-zA-Z][a-zA-Z0-9-]{0,100}[^>\\r\\n]{0,1000}$/],\n commonEmphasis: [/^(\\*{1,3}|_{1,3})(?!\\s)(?!.*\\1$)[^\\r\\n]{0,1000}$/],\n // regex2 matches cases like \"- **\" (list item with emphasis start).\n list: [/^[-+*]\\s{0,3}$/, /^[-+*]\\s{1,3}(\\*{1,3}|_{1,3})(?!\\s)(?!.*\\1$)[^\\r\\n]{0,1000}$/],\n 'inline-code': [/^`[^`\\r\\n]{0,300}$/]\n};\nconst isTableInComplete = markdown => {\n if (markdown.includes('\\n\\n')) return false;\n const lines = markdown.split('\\n');\n if (lines.length <= 1) return true;\n const [header, separator] = lines;\n const trimmedHeader = header.trim();\n if (!/^\\|.*\\|$/.test(trimmedHeader)) return false;\n const trimmedSeparator = separator.trim();\n const columns = trimmedSeparator.split('|').map(col => col.trim()).filter(Boolean);\n const separatorRegex = /^:?-+:?$/;\n return columns.every((col, index) => index === columns.length - 1 ? col === ':' || separatorRegex.test(col) : separatorRegex.test(col));\n};\nconst tokenRecognizerMap = {\n [StreamCacheTokenType.Link]: {\n tokenType: StreamCacheTokenType.Link,\n isStartOfToken: markdown => markdown.startsWith('['),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.link.some(re => re.test(markdown))\n },\n [StreamCacheTokenType.Image]: {\n tokenType: StreamCacheTokenType.Image,\n isStartOfToken: markdown => markdown.startsWith('!'),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.image.some(re => re.test(markdown))\n },\n [StreamCacheTokenType.Html]: {\n tokenType: StreamCacheTokenType.Html,\n isStartOfToken: markdown => markdown.startsWith('<'),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.html.some(re => re.test(markdown))\n },\n [StreamCacheTokenType.Emphasis]: {\n tokenType: StreamCacheTokenType.Emphasis,\n isStartOfToken: markdown => markdown.startsWith('*') || markdown.startsWith('_'),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.commonEmphasis.some(re => re.test(markdown))\n },\n [StreamCacheTokenType.List]: {\n tokenType: StreamCacheTokenType.List,\n isStartOfToken: markdown => /^[-+*]/.test(markdown),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX.list.some(re => re.test(markdown)),\n // On backtick after list, commit only the prefix; treat the rest as inline code.\n getCommitPrefix: pending => {\n const listPrefix = pending.match(/^([-+*]\\s{0,3})/)?.[1];\n const rest = listPrefix ? pending.slice(listPrefix.length) : '';\n return listPrefix && rest.startsWith('`') ? listPrefix : null;\n }\n },\n [StreamCacheTokenType.Table]: {\n tokenType: StreamCacheTokenType.Table,\n isStartOfToken: markdown => markdown.startsWith('|'),\n isStreamingValid: isTableInComplete\n },\n [StreamCacheTokenType.InlineCode]: {\n tokenType: StreamCacheTokenType.InlineCode,\n isStartOfToken: markdown => markdown.startsWith('`'),\n isStreamingValid: markdown => STREAM_INCOMPLETE_REGEX['inline-code'].some(re => re.test(markdown))\n }\n};\nconst recognize = (cache, tokenType) => {\n const recognizer = tokenRecognizerMap[tokenType];\n if (!recognizer) return;\n const {\n token,\n pending\n } = cache;\n if (token === StreamCacheTokenType.Text && recognizer.isStartOfToken(pending)) {\n cache.token = tokenType;\n return;\n }\n if (token === tokenType && !recognizer.isStreamingValid(pending)) {\n const prefix = recognizer.getCommitPrefix?.(pending);\n if (prefix) {\n cache.completeMarkdown += prefix;\n cache.pending = pending.slice(prefix.length);\n cache.token = StreamCacheTokenType.Text;\n return;\n }\n commitCache(cache);\n }\n};\nconst recognizeHandlers = Object.values(tokenRecognizerMap).map(rec => ({\n tokenType: rec.tokenType,\n recognize: cache => recognize(cache, rec.tokenType)\n}));\n\n/* ------------ Utils ------------ */\nconst getInitialCache = () => ({\n pending: '',\n token: StreamCacheTokenType.Text,\n processedLength: 0,\n completeMarkdown: ''\n});\nconst commitCache = cache => {\n if (cache.pending) {\n cache.completeMarkdown += cache.pending;\n cache.pending = '';\n }\n cache.token = StreamCacheTokenType.Text;\n};\nconst isInCodeBlock = (text, isFinalChunk = false) => {\n const lines = text.split('\\n');\n let inFenced = false;\n let fenceChar = '';\n let fenceLen = 0;\n for (let i = 0; i < lines.length; i++) {\n const rawLine = lines[i];\n const line = rawLine.endsWith('\\r') ? rawLine.slice(0, -1) : rawLine;\n const match = line.match(/^(`{3,}|~{3,})(.*)$/);\n if (match) {\n const fence = match[1];\n const after = match[2];\n const char = fence[0];\n const len = fence.length;\n if (!inFenced) {\n inFenced = true;\n fenceChar = char;\n fenceLen = len;\n } else {\n // Check if this is a valid closing fence\n const isValidEnd = char === fenceChar && len >= fenceLen && /^\\s*$/.test(after);\n if (isValidEnd) {\n // In streaming context, only close if this is the final chunk\n // or if there are more lines after this fence\n if (isFinalChunk || i < lines.length - 1) {\n inFenced = false;\n fenceChar = '';\n fenceLen = 0;\n }\n // Otherwise, keep the fence open for potential streaming continuation\n }\n }\n }\n }\n return inFenced;\n};\nconst sanitizeForURIComponent = input => {\n let result = '';\n for (let i = 0; i < input.length; i++) {\n const charCode = input.charCodeAt(i);\n\n // 处理代理对:保留合法,跳过孤立\n if (charCode >= 0xd800 && charCode <= 0xdbff) {\n // High surrogate\n // Check for a following low surrogate to form a valid pair\n if (i + 1 < input.length && input.charCodeAt(i + 1) >= 0xdc00 && input.charCodeAt(i + 1) <= 0xdfff) {\n result += input[i] + input[i + 1];\n i++; // Skip the low surrogate as it's already processed\n }\n // Lone high surrogates are otherwise skipped\n } else if (charCode < 0xdc00 || charCode > 0xdfff) {\n // Append characters that are not lone low surrogates\n result += input[i];\n }\n // Lone low surrogates are otherwise skipped\n }\n return result;\n};\nconst safeEncodeURIComponent = str => {\n try {\n return encodeURIComponent(str);\n } catch (e) {\n if (e instanceof URIError) {\n return encodeURIComponent(sanitizeForURIComponent(str));\n }\n return '';\n }\n};\n\n/* ------------ Main Hook ------------ */\nconst useStreaming = (input, config) => {\n const {\n streaming,\n components = {}\n } = config || {};\n const {\n hasNextChunk: enableCache = false,\n incompleteMarkdownComponentMap\n } = streaming || {};\n const [output, setOutput] = useState('');\n const cacheRef = useRef(getInitialCache());\n const handleIncompleteMarkdown = useCallback(cache => {\n const {\n token,\n pending\n } = cache;\n if (token === StreamCacheTokenType.Text) return;\n /**\n * An image tag starts with '!', if it's the only character, it's incomplete and should be stripped.\n * !\n * ^\n */\n if (token === StreamCacheTokenType.Image && pending === '!') return undefined;\n\n /**\n * If a table has more than two lines (header, separator, and at least one row),\n * it's considered complete enough to not be replaced by a placeholder.\n * | column1 | column2 |\\n| -- | --|\\n\n * ^\n */\n if (token === StreamCacheTokenType.Table && pending.split('\\n').length > 2) {\n return pending;\n }\n const componentMap = incompleteMarkdownComponentMap || {};\n const componentName = componentMap[token] || `incomplete-${token}`;\n const encodedPending = safeEncodeURIComponent(pending);\n return components?.[componentName] ? `<${componentName} data-raw=\"${encodedPending}\" />` : undefined;\n }, [incompleteMarkdownComponentMap, components]);\n const processStreaming = useCallback(text => {\n if (!text) {\n setOutput('');\n cacheRef.current = getInitialCache();\n return;\n }\n const expectedPrefix = cacheRef.current.completeMarkdown + cacheRef.current.pending;\n // Reset cache if input doesn't continue from previous state\n if (!text.startsWith(expectedPrefix)) {\n cacheRef.current = getInitialCache();\n }\n const cache = cacheRef.current;\n const chunk = text.slice(cache.processedLength);\n if (!chunk) return;\n cache.processedLength += chunk.length;\n for (const char of chunk) {\n cache.pending += char;\n const isContentInCodeBlock = isInCodeBlock(cache.completeMarkdown + cache.pending);\n if (isContentInCodeBlock) {\n commitCache(cache);\n continue;\n }\n if (cache.token === StreamCacheTokenType.Text) {\n for (const handler of recognizeHandlers) handler.recognize(cache);\n } else {\n const handler = recognizeHandlers.find(handler => handler.tokenType === cache.token);\n handler?.recognize(cache);\n // After commit (e.g. list → Text), re-run all recognizers so pending (e.g. \"`\") becomes the new token (e.g. inline-code)\n const tokenAfterRecognize = cache.token;\n if (tokenAfterRecognize === StreamCacheTokenType.Text) {\n for (const h of recognizeHandlers) h.recognize(cache);\n }\n }\n if (cache.token === StreamCacheTokenType.Text) {\n commitCache(cache);\n }\n }\n const incompletePlaceholder = handleIncompleteMarkdown(cache);\n setOutput(cache.completeMarkdown + (incompletePlaceholder || ''));\n }, [handleIncompleteMarkdown]);\n useEffect(() => {\n if (typeof input !== 'string') {\n console.error(`X-Markdown: input must be string, not ${typeof input}.`);\n setOutput('');\n return;\n }\n enableCache ? processStreaming(input) : setOutput(input);\n }, [input, enableCache, processStreaming]);\n return output;\n};\nexport default useStreaming;","export let StreamCacheTokenType = /*#__PURE__*/function (StreamCacheTokenType) {\n StreamCacheTokenType[\"Text\"] = \"text\";\n StreamCacheTokenType[\"Link\"] = \"link\";\n StreamCacheTokenType[\"Image\"] = \"image\";\n StreamCacheTokenType[\"Html\"] = \"html\";\n StreamCacheTokenType[\"Emphasis\"] = \"emphasis\";\n StreamCacheTokenType[\"List\"] = \"list\";\n StreamCacheTokenType[\"Table\"] = \"table\";\n StreamCacheTokenType[\"InlineCode\"] = \"inline-code\";\n return StreamCacheTokenType;\n}({});","import XMarkdown, { type ComponentProps, type XMarkdownProps } from \"@ant-design/x-markdown\";\nimport React from \"react\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetMarkdownProps {\n content: unknown;\n className?: string;\n unsupportedLabel?: string;\n}\n\nfunction safeUrl(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n try {\n const url = new URL(value, \"https://axiom.invalid\");\n return url.protocol === \"http:\" || url.protocol === \"https:\" || url.protocol === \"mailto:\" ? value : null;\n } catch {\n return null;\n }\n}\n\nconst SafeLink: React.FC<ComponentProps<{ href?: string }>> = ({ href, children }) => {\n const safeHref = safeUrl(href);\n return safeHref ? <a href={safeHref} target=\"_blank\" rel=\"noopener noreferrer\">{children}</a> : <span>{children}</span>;\n};\n\nconst SafeImage: React.FC<ComponentProps<{ src?: string; alt?: string }>> = ({ src, alt }) => {\n const t = useT();\n const safeHref = safeUrl(src);\n const label = alt?.trim() || t(\"integration.markdown.image\");\n return safeHref ? <a href={safeHref} target=\"_blank\" rel=\"noopener noreferrer\">{label}</a> : <span>{label}</span>;\n};\n\nconst SafeCode: React.FC<ComponentProps> = ({ children }) => <code>{children}</code>;\n\nconst REVIEWED_MARKDOWN_COMPONENTS = Object.freeze<XMarkdownProps[\"components\"]>({\n a: SafeLink,\n code: SafeCode,\n img: SafeImage,\n});\n\nexport function WidgetMarkdown({ content, className, unsupportedLabel }: WidgetMarkdownProps): React.ReactElement {\n const t = useT();\n if (typeof content !== \"string\") return <span className={className}>{unsupportedLabel ?? t(\"integration.markdown.unsupported\")}</span>;\n return <XMarkdown className={className} content={content} components={REVIEWED_MARKDOWN_COMPONENTS} paragraphTag=\"div\" escapeRawHtml />;\n}\n","import React from \"react\";\nimport type { AgentWebAppGenUIBlock } from \"../types\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetGenUIRendererProps { block: AgentWebAppGenUIBlock }\n\n/** Immutable semantic renderer for the reviewed V1 declarative widget allowlist. */\nexport function WidgetGenUIRenderer({ block }: WidgetGenUIRendererProps): React.ReactElement {\n const t = useT();\n const widget = block.widget;\n if (widget.kind === \"callout\") {\n return <aside className={`axiom-web-app__callout axiom-web-app__callout--${widget.tone ?? \"info\"}`} aria-label={widget.title ?? t(\"integration.genui.callout\")}>\n {widget.title && <strong>{widget.title}</strong>}<p>{widget.text}</p>\n </aside>;\n }\n return <table className=\"axiom-web-app__data-table\" aria-label={widget.caption ?? t(\"integration.genui.dataTable\")}>\n {widget.caption && <caption>{widget.caption}</caption>}\n <thead><tr>{widget.columns.map((column, index) => <th key={`${index}-${column}`} scope=\"col\">{column}</th>)}</tr></thead>\n <tbody>{widget.rows.map((row, rowIndex) => <tr key={rowIndex}>{row.map((cell, columnIndex) => <td key={columnIndex}>{cell}</td>)}</tr>)}</tbody>\n </table>;\n}\n","import React from \"react\";\nimport type { AgentWebAppRuntimeMessage } from \"../types\";\nimport { useWidgetChat } from \"../hooks/useWidgetChat\";\nimport { WidgetMarkdown } from \"./WidgetMarkdown\";\nimport { WidgetGenUIRenderer } from \"./WidgetGenUIRenderer\";\nimport { useT } from \"../../../i18n\";\nimport type { SdkTFunction } from \"../../../i18n\";\n\nexport interface WidgetMessageListProps { className?: string; listLabel?: string; emptyLabel?: string; toolActivityLabel?: string; emptySlot?: React.ReactNode; }\n\nfunction roleName(message: AgentWebAppRuntimeMessage, t: SdkTFunction): string {\n if (message.role === \"human\") return t(\"integration.messages.roleYou\");\n if (message.role === \"ai\") return t(\"integration.messages.roleAssistant\");\n return message.role;\n}\n\nexport function WidgetMessageList({ className, listLabel, emptyLabel, toolActivityLabel, emptySlot }: WidgetMessageListProps): React.ReactElement {\n const t = useT();\n const { messages, tools, isLoading } = useWidgetChat();\n return <div className={`axiom-web-app__message-area${className ? ` ${className}` : \"\"}`}><div className=\"axiom-web-app__messages\" role=\"log\" aria-label={listLabel ?? t(\"integration.messages.aria\")} aria-live=\"polite\">{!isLoading && messages.length === 0 && (emptySlot || <p className=\"axiom-web-app__empty\">{emptyLabel ?? t(\"integration.messages.empty\")}</p>)}{messages.map((message) => <article className={`axiom-web-app__message axiom-web-app__message--${message.role}`} key={message.id}><span className=\"axiom-web-app__message-role\">{roleName(message, t)}</span><div className=\"axiom-web-app__message-content\">{Array.isArray(message.content) ? message.content.map((block, index) => <WidgetGenUIRenderer key={index} block={block} />) : <WidgetMarkdown content={message.content ?? \"\"} />}</div></article>)}</div>{tools.length > 0 && <section className=\"axiom-web-app__tools\" aria-label={toolActivityLabel ?? t(\"integration.messages.activity\")}>{tools.map((tool) => <div className=\"axiom-web-app__tool\" key={tool.id}><span aria-hidden=\"true\">{tool.status === \"running\" ? \"...\" : \"OK\"}</span> {tool.name || t(\"integration.messages.tool\")}</div>)}</section>}</div>;\n}\n","import React, { useState } from \"react\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetModelSelectorProps { className?: string; label?: string; }\n\nexport function WidgetModelSelector({ className, label }: WidgetModelSelectorProps): React.ReactElement | null {\n const t = useT();\n const { bootstrap, modelKey, selectModel, isLoading } = useWidgetProject();\n const [error, setError] = useState<string | null>(null);\n if (!bootstrap?.webApp.features.modelSelector) return null;\n const fieldLabel = label ?? t(\"integration.model.label\");\n const select = (key: string): void => {\n setError(null);\n try { selectModel(key); } catch (selectionError) { setError(widgetErrorMessage(selectionError, t)); }\n };\n return <div className={className}><label className=\"axiom-web-app__field\"><span>{fieldLabel}</span><select aria-label={fieldLabel} value={modelKey ?? \"\"} disabled={isLoading} onChange={(event) => select(event.target.value)}>{bootstrap.models.map((model) => <option key={model.key} value={model.key}>{model.label}</option>)}</select></label>{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}</div>;\n}\n","import React, { useRef, useState } from \"react\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\n\nexport interface WidgetProjectSelectorProps { className?: string; label?: string; }\n\nexport function WidgetProjectSelector({ className, label }: WidgetProjectSelectorProps): React.ReactElement | null {\n const t = useT();\n const { bootstrap, projectId, selectProject, isLoading } = useWidgetProject();\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState<string | null>(null);\n if (!bootstrap?.webApp.features.projectSelector) return null;\n const fieldLabel = label ?? t(\"integration.project.label\");\n const select = async (id: string): Promise<void> => {\n if (pendingRef.current) return;\n pendingRef.current = true; setPending(true); setError(null);\n try { await selectProject(id); }\n catch (selectionError) { setError(widgetErrorMessage(selectionError, t)); }\n finally { pendingRef.current = false; setPending(false); }\n };\n return <div className={className}><label className=\"axiom-web-app__field\"><span>{fieldLabel}</span><select aria-label={fieldLabel} value={projectId ?? \"\"} disabled={isLoading || pending} onChange={(event) => void select(event.target.value)}>{bootstrap.projects.map((project) => <option key={project.id} value={project.id}>{project.name}</option>)}</select></label>{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}</div>;\n}\n","import React, { useRef, useState } from \"react\";\nimport { Modal } from \"antd\";\nimport type { AgentWebAppRuntimeThread } from \"../types\";\nimport { useWidgetProject } from \"../hooks/useWidgetProject\";\nimport { useWidgetThreads } from \"../hooks/useWidgetThreads\";\nimport { widgetErrorMessage } from \"./widget-utils\";\nimport { useT } from \"../../../i18n\";\nimport type { SdkTFunction } from \"../../../i18n\";\n\nexport interface WidgetThreadListProps { className?: string; navigationLabel?: string; newThreadLabel?: string; emptyLabel?: string; }\nfunction threadName(thread: AgentWebAppRuntimeThread, index: number, t: SdkTFunction): string { return thread.label?.trim() || t(\"integration.threads.defaultName\", { index: index + 1 }); }\n\nexport function WidgetThreadList({ className, navigationLabel, newThreadLabel, emptyLabel }: WidgetThreadListProps): React.ReactElement | null {\n const t = useT();\n const { bootstrap } = useWidgetProject();\n const { threads, activeThread, isLoading, selectThread, createThread, renameThread, deleteThread } = useWidgetThreads();\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [renameTarget, setRenameTarget] = useState<AgentWebAppRuntimeThread | null>(null);\n const [renameValue, setRenameValue] = useState(\"\");\n const [deleteTarget, setDeleteTarget] = useState<AgentWebAppRuntimeThread | null>(null);\n if (!bootstrap?.webApp.features.threadManagement) return null;\n const run = async (operation: () => Promise<unknown>, complete?: () => void): Promise<void> => {\n if (pendingRef.current) return;\n pendingRef.current = true; setPending(true); setError(null);\n try { await operation(); complete?.(); }\n catch (operationError) { setError(widgetErrorMessage(operationError, t)); }\n finally { pendingRef.current = false; setPending(false); }\n };\n return <nav className={`axiom-web-app__sidebar${className ? ` ${className}` : \"\"}`} aria-label={navigationLabel ?? t(\"integration.threads.aria\")}>{error && <p className=\"axiom-web-app__error\" role=\"alert\">{error}</p>}<button className=\"axiom-web-app__new-thread\" type=\"button\" disabled={isLoading || pending} onClick={() => void run(() => createThread())}>{newThreadLabel ?? t(\"integration.threads.new\")}</button><div className=\"axiom-web-app__thread-list\">{!isLoading && threads.length === 0 && <p className=\"axiom-web-app__empty\">{emptyLabel ?? t(\"integration.threads.empty\")}</p>}{threads.map((thread, index) => { const name = threadName(thread, index, t); return <div className={`axiom-web-app__thread${activeThread?.id === thread.id ? \" axiom-web-app__thread--active\" : \"\"}`} key={thread.id}><button type=\"button\" disabled={pending} className=\"axiom-web-app__thread-select\" aria-label={t(\"integration.threads.open\", { name })} aria-current={activeThread?.id === thread.id ? \"page\" : undefined} onClick={() => void run(() => selectThread(thread))}><span className=\"axiom-web-app__thread-label\" title={name}>{name}</span></button><button type=\"button\" disabled={pending} className=\"axiom-web-app__thread-rename\" aria-label={t(\"integration.threads.renameNamed\", { name })} onClick={() => { setRenameTarget(thread); setRenameValue(name); }}>{t(\"integration.threads.rename\")}</button><button type=\"button\" disabled={pending} className=\"axiom-web-app__thread-delete\" aria-label={t(\"integration.threads.deleteNamed\", { name })} onClick={() => setDeleteTarget(thread)}>{t(\"integration.threads.delete\")}</button></div>; })}</div><Modal title={t(\"integration.threads.renameTitle\")} open={renameTarget !== null} onCancel={() => { if (!pending) setRenameTarget(null); }} onOk={() => renameTarget && void run(() => renameThread(renameTarget.id, renameValue.trim()), () => setRenameTarget(null))} okText={t(\"common.save\")} cancelText={t(\"common.cancel\")} okButtonProps={{ loading: pending, disabled: !renameValue.trim() }} cancelButtonProps={{ disabled: pending }}><label className=\"axiom-web-app__modal-field\"><span>{t(\"integration.threads.nameLabel\")}</span><input aria-label={t(\"integration.threads.nameLabel\")} value={renameValue} disabled={pending} onChange={(event) => setRenameValue(event.target.value)} /></label></Modal><Modal title={t(\"integration.threads.deleteTitle\")} open={deleteTarget !== null} onCancel={() => { if (!pending) setDeleteTarget(null); }} onOk={() => deleteTarget && void run(() => deleteThread(deleteTarget.id), () => setDeleteTarget(null))} okText={t(\"common.delete\")} cancelText={t(\"common.cancel\")} okButtonProps={{ danger: true, loading: pending }} cancelButtonProps={{ disabled: pending }}><p>{t(\"integration.threads.deleteConfirm\")}</p></Modal></nav>;\n}\n"]}