@allbluecn/web-app 0.23.7 → 0.24.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 (68) hide show
  1. package/package.json +2 -2
  2. package/src/components/ai/global-harness-sidebar/__tests__/global-ai-prompts.test.ts +0 -2
  3. package/src/components/harness/ai-chat-history/components/conversation-item.tsx +6 -0
  4. package/src/components/harness/ai-chat-history/types.ts +4 -0
  5. package/src/components/harness/chat-ui.tsx +20 -0
  6. package/src/components/harness/composer/harness-composer.tsx +43 -10
  7. package/src/components/harness/composer/harness-engine-control.tsx +129 -0
  8. package/src/components/harness/harness-workbench-page.tsx +129 -17
  9. package/src/components/layout/sidebar-03/app-sidebar.tsx +2 -9
  10. package/src/config/sidebar-routes.tsx +0 -13
  11. package/src/lib/changelog/sdk-versions.ts +1 -1
  12. package/src/lib/hotkeys/__tests__/registry.test.ts +4 -11
  13. package/src/lib/hotkeys/registry.ts +0 -8
  14. package/src/paraglide/README.md +1 -1
  15. package/src/paraglide/messages/_index.d.ts +12 -2
  16. package/src/paraglide/messages/_index.js +12 -2
  17. package/src/paraglide/messages/{agent_desktop_title.d.ts → harness_engine_cloud.d.ts} +5 -5
  18. package/src/paraglide/messages/harness_engine_cloud.js +29 -0
  19. package/src/paraglide/messages/harness_engine_label.d.ts +16 -0
  20. package/src/paraglide/messages/harness_engine_label.js +29 -0
  21. package/src/paraglide/messages/harness_engine_local.d.ts +16 -0
  22. package/src/paraglide/messages/harness_engine_local.js +29 -0
  23. package/src/paraglide/messages/harness_engine_localbadge1.d.ts +17 -0
  24. package/src/paraglide/messages/harness_engine_localbadge1.js +30 -0
  25. package/src/paraglide/messages/harness_engine_localhint1.d.ts +17 -0
  26. package/src/paraglide/messages/harness_engine_localhint1.js +30 -0
  27. package/src/paraglide/messages/harness_engine_localnoattachments2.d.ts +17 -0
  28. package/src/paraglide/messages/harness_engine_localnoattachments2.js +30 -0
  29. package/src/paraglide/messages/harness_engine_switchlocked1.d.ts +17 -0
  30. package/src/paraglide/messages/harness_engine_switchlocked1.js +30 -0
  31. package/src/paraglide/messages/harness_localworkspace_choose1.d.ts +17 -0
  32. package/src/paraglide/messages/harness_localworkspace_choose1.js +30 -0
  33. package/src/paraglide/messages/harness_localworkspace_dialogdescription2.d.ts +17 -0
  34. package/src/paraglide/messages/harness_localworkspace_dialogdescription2.js +30 -0
  35. package/src/paraglide/messages/harness_localworkspace_dialogtitle2.d.ts +17 -0
  36. package/src/paraglide/messages/harness_localworkspace_dialogtitle2.js +30 -0
  37. package/src/paraglide/messages/harness_localworkspace_manage1.d.ts +17 -0
  38. package/src/paraglide/messages/harness_localworkspace_manage1.js +30 -0
  39. package/src/paraglide/messages/harness_localworkspace_required1.d.ts +17 -0
  40. package/src/paraglide/messages/harness_localworkspace_required1.js +30 -0
  41. package/src/routeTree.gen.ts +0 -23
  42. package/src/routes/_nav/harness/$threadId.lazy.tsx +19 -2
  43. package/src/routes/_nav/harness/$threadId.tsx +8 -2
  44. package/src/server/__tests__/chat-conversations.test.ts +13 -3
  45. package/src/server/__tests__/desktop-bootstrap.test.ts +0 -1
  46. package/src/server/ai-gateway/__tests__/local-agent-adapter.test.ts +110 -0
  47. package/src/server/ai-gateway/__tests__/unified-router-local-agent.test.ts +63 -0
  48. package/src/server/ai-gateway/chat-handler.ts +68 -2
  49. package/src/server/ai-gateway/chat-stream-builder.ts +52 -0
  50. package/src/server/ai-gateway/local-agent-adapter.ts +232 -0
  51. package/src/server/ai-gateway/unified-router.ts +49 -6
  52. package/src/server/serverFns/chat/conversations.ts +122 -1
  53. package/src/components/desktop-agent/__tests__/agent-chat.test.tsx +0 -194
  54. package/src/components/desktop-agent/agent-chat.tsx +0 -222
  55. package/src/lib/desktop-agent/__tests__/connection.test.ts +0 -310
  56. package/src/lib/desktop-agent/__tests__/errors.test.ts +0 -43
  57. package/src/lib/desktop-agent/connection.ts +0 -93
  58. package/src/lib/desktop-agent/errors.ts +0 -21
  59. package/src/paraglide/messages/agent_desktop_title.js +0 -29
  60. package/src/paraglide/messages/common_hotkey_desc_agentabort1.d.ts +0 -17
  61. package/src/paraglide/messages/common_hotkey_desc_agentabort1.js +0 -30
  62. package/src/routes/-tests/agent-gate.test.ts +0 -45
  63. package/src/routes/_nav/agent/route.lazy.tsx +0 -63
  64. package/src/routes/_nav/agent/route.tsx +0 -21
  65. /package/src/components/{desktop-agent → harness/local-agent}/__tests__/agent-tool-card.test.tsx +0 -0
  66. /package/src/components/{desktop-agent → harness/local-agent}/__tests__/agent-workspace-card.test.tsx +0 -0
  67. /package/src/components/{desktop-agent → harness/local-agent}/agent-tool-card.tsx +0 -0
  68. /package/src/components/{desktop-agent → harness/local-agent}/agent-workspace-card.tsx +0 -0
@@ -23,8 +23,8 @@ import { appHotkeys, findAppHotkeyConflicts, formatAppHotkeyForBadge, CATEGORY_O
23
23
  const DECLARED_IDS = Object.keys(appHotkeys) as AppHotkeyId[]
24
24
 
25
25
  describe("appHotkeys(defineAppHotkeys 官方声明)", () => {
26
- it("恰好 26 条声明,且 id 与迁移前注册表对齐(+ B5 agent-abort)", () => {
27
- expect(DECLARED_IDS).toHaveLength(26)
26
+ it("恰好 25 条声明,且 id 与迁移前注册表对齐", () => {
27
+ expect(DECLARED_IDS).toHaveLength(25)
28
28
  expect(DECLARED_IDS).toEqual(
29
29
  expect.arrayContaining([
30
30
  "shortcuts-panel",
@@ -34,7 +34,6 @@ describe("appHotkeys(defineAppHotkeys 官方声明)", () => {
34
34
  "copy-message",
35
35
  "chat-prev",
36
36
  "chat-next",
37
- "agent-abort",
38
37
  "command-palette",
39
38
  "toggle-theme",
40
39
  "goto-dashboard",
@@ -83,15 +82,9 @@ describe("appHotkeys(defineAppHotkeys 官方声明)", () => {
83
82
  }
84
83
  })
85
84
 
86
- it("非序列条目为 10 条 chord(Mod+/ 等)", () => {
85
+ it("非序列条目为 9 条 chord(Mod+/ 等)", () => {
87
86
  const chords = DECLARED_IDS.map((id) => appHotkeys[id]!).filter((e) => typeof e.hotkey === "string")
88
- expect(chords).toHaveLength(10)
89
- })
90
-
91
- it("agent-abort(本地文件助手中止运行):Mod+. 聊天分类——输入框内同样生效(ignoreInputs auto 对 Mod 组合放行)", () => {
92
- const entry = appHotkeys["agent-abort"]
93
- expect(entry.hotkey).toBe("Mod+.")
94
- expect(entry.meta).toEqual({ descriptionKey: "common_hotkey_desc_agentAbort", category: "聊天" })
87
+ expect(chords).toHaveLength(9)
95
88
  })
96
89
 
97
90
  it("现网声明零冲突(findAppHotkeyConflicts)", () => {
@@ -74,14 +74,6 @@ export const appHotkeys = defineAppHotkeys({
74
74
  hotkey: "ArrowDown",
75
75
  meta: { descriptionKey: "common_hotkey_desc_chatNext", category: "聊天" },
76
76
  },
77
- // 本地文件助手(桌面 P3-B5)中止运行:绑定点 components/desktop-agent/agent-chat.tsx
78
- // (仅运行中 enabled)。Mod+. 取 macOS「Command-句点 = 取消」惯例;Escape 已被
79
- // close-panel 全局占用(同 scope 即冲突)。Mod 组合在 ignoreInputs auto 下输入框
80
- // 内同样生效(边输入边中止)
81
- "agent-abort": {
82
- hotkey: "Mod+.",
83
- meta: { descriptionKey: "common_hotkey_desc_agentAbort", category: "聊天" },
84
- },
85
77
  "command-palette": {
86
78
  hotkey: "Mod+K",
87
79
  meta: { descriptionKey: "common_hotkey_desc_commandPalette", category: "导航" },
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Auto-generated i18n message functions. Import `messages.js` to use translated strings.
4
4
 
5
- Compiled from: `/Users/urmynami/HelloAI/AllBlue-Workspace/AllBlue/.worktrees/feat-local-first/apps/web/project.inlang`
5
+ Compiled from: `/Users/urmynami/HelloAI/AllBlue-Workspace/AllBlue/.worktrees/feat-harness-local-agent/apps/web/project.inlang`
6
6
 
7
7
 
8
8
  ## What is this folder?
@@ -26,7 +26,6 @@ export * from "./agent_desktop_errorgeneric1.js";
26
26
  export * from "./agent_desktop_errorunauthorized1.js";
27
27
  export * from "./agent_desktop_errorunavailable1.js";
28
28
  export * from "./agent_desktop_pagedescription1.js";
29
- export * from "./agent_desktop_title.js";
30
29
  export * from "./agent_desktop_toolcountfiles2.js";
31
30
  export * from "./agent_desktop_toolcounthits2.js";
32
31
  export * from "./agent_desktop_toolcountlines2.js";
@@ -1837,7 +1836,6 @@ export * from "./common_hotkey_cat_chat.js";
1837
1836
  export * from "./common_hotkey_cat_edit.js";
1838
1837
  export * from "./common_hotkey_cat_navigation.js";
1839
1838
  export * from "./common_hotkey_cat_view.js";
1840
- export * from "./common_hotkey_desc_agentabort1.js";
1841
1839
  export * from "./common_hotkey_desc_chatnext1.js";
1842
1840
  export * from "./common_hotkey_desc_chatprev1.js";
1843
1841
  export * from "./common_hotkey_desc_closepanel1.js";
@@ -2548,9 +2546,21 @@ export * from "./harness_dock_storyempty1.js";
2548
2546
  export * from "./harness_dock_storynotfound2.js";
2549
2547
  export * from "./harness_dock_todo.js";
2550
2548
  export * from "./harness_dock_unknownresource1.js";
2549
+ export * from "./harness_engine_cloud.js";
2550
+ export * from "./harness_engine_label.js";
2551
+ export * from "./harness_engine_local.js";
2552
+ export * from "./harness_engine_localbadge1.js";
2553
+ export * from "./harness_engine_localhint1.js";
2554
+ export * from "./harness_engine_localnoattachments2.js";
2555
+ export * from "./harness_engine_switchlocked1.js";
2551
2556
  export * from "./harness_exportspec1.js";
2552
2557
  export * from "./harness_exportspechtml2.js";
2553
2558
  export * from "./harness_ghostthinking1.js";
2559
+ export * from "./harness_localworkspace_choose1.js";
2560
+ export * from "./harness_localworkspace_dialogdescription2.js";
2561
+ export * from "./harness_localworkspace_dialogtitle2.js";
2562
+ export * from "./harness_localworkspace_manage1.js";
2563
+ export * from "./harness_localworkspace_required1.js";
2554
2564
  export * from "./harness_media_code.js";
2555
2565
  export * from "./harness_media_nocode1.js";
2556
2566
  export * from "./harness_media_nospec1.js";
@@ -28,7 +28,6 @@ export * from './agent_desktop_errorgeneric1.js'
28
28
  export * from './agent_desktop_errorunauthorized1.js'
29
29
  export * from './agent_desktop_errorunavailable1.js'
30
30
  export * from './agent_desktop_pagedescription1.js'
31
- export * from './agent_desktop_title.js'
32
31
  export * from './agent_desktop_toolcountfiles2.js'
33
32
  export * from './agent_desktop_toolcounthits2.js'
34
33
  export * from './agent_desktop_toolcountlines2.js'
@@ -1839,7 +1838,6 @@ export * from './common_hotkey_cat_chat.js'
1839
1838
  export * from './common_hotkey_cat_edit.js'
1840
1839
  export * from './common_hotkey_cat_navigation.js'
1841
1840
  export * from './common_hotkey_cat_view.js'
1842
- export * from './common_hotkey_desc_agentabort1.js'
1843
1841
  export * from './common_hotkey_desc_chatnext1.js'
1844
1842
  export * from './common_hotkey_desc_chatprev1.js'
1845
1843
  export * from './common_hotkey_desc_closepanel1.js'
@@ -2550,9 +2548,21 @@ export * from './harness_dock_storyempty1.js'
2550
2548
  export * from './harness_dock_storynotfound2.js'
2551
2549
  export * from './harness_dock_todo.js'
2552
2550
  export * from './harness_dock_unknownresource1.js'
2551
+ export * from './harness_engine_cloud.js'
2552
+ export * from './harness_engine_label.js'
2553
+ export * from './harness_engine_local.js'
2554
+ export * from './harness_engine_localbadge1.js'
2555
+ export * from './harness_engine_localhint1.js'
2556
+ export * from './harness_engine_localnoattachments2.js'
2557
+ export * from './harness_engine_switchlocked1.js'
2553
2558
  export * from './harness_exportspec1.js'
2554
2559
  export * from './harness_exportspechtml2.js'
2555
2560
  export * from './harness_ghostthinking1.js'
2561
+ export * from './harness_localworkspace_choose1.js'
2562
+ export * from './harness_localworkspace_dialogdescription2.js'
2563
+ export * from './harness_localworkspace_dialogtitle2.js'
2564
+ export * from './harness_localworkspace_manage1.js'
2565
+ export * from './harness_localworkspace_required1.js'
2556
2566
  export * from './harness_media_code.js'
2557
2567
  export * from './harness_media_nocode1.js'
2558
2568
  export * from './harness_media_nospec1.js'
@@ -1,16 +1,16 @@
1
1
  /**
2
2
  * | output |
3
3
  * | --- |
4
- * | "Local File Assistant" |
4
+ * | "Cloud model" |
5
5
  *
6
- * @param {Agent_Desktop_TitleInputs} inputs
6
+ * @param {Harness_Engine_CloudInputs} inputs
7
7
  * @param {{ locale?: "zh" | "en" }} options
8
8
  * @returns {LocalizedString}
9
9
  */
10
- export const agent_desktop_title: ((inputs?: Agent_Desktop_TitleInputs, options?: {
10
+ export const harness_engine_cloud: ((inputs?: Harness_Engine_CloudInputs, options?: {
11
11
  locale?: "zh" | "en";
12
- }) => LocalizedString) & import("../runtime.js").MessageMetadata<Agent_Desktop_TitleInputs, {
12
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Engine_CloudInputs, {
13
13
  locale?: "zh" | "en";
14
14
  }, {}>;
15
15
  export type LocalizedString = import("../runtime.js").LocalizedString;
16
- export type Agent_Desktop_TitleInputs = {};
16
+ export type Harness_Engine_CloudInputs = {};
@@ -0,0 +1,29 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Engine_CloudInputs */
7
+
8
+ const zh_harness_engine_cloud = /** @type {(inputs: Harness_Engine_CloudInputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`云端模型`)
10
+ };
11
+
12
+ const en_harness_engine_cloud = /** @type {(inputs: Harness_Engine_CloudInputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`Cloud model`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "Cloud model" |
20
+ *
21
+ * @param {Harness_Engine_CloudInputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ export const harness_engine_cloud = /** @type {((inputs?: Harness_Engine_CloudInputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Engine_CloudInputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_engine_cloud(inputs)
28
+ return zh_harness_engine_cloud(inputs)
29
+ });
@@ -0,0 +1,16 @@
1
+ /**
2
+ * | output |
3
+ * | --- |
4
+ * | "Engine" |
5
+ *
6
+ * @param {Harness_Engine_LabelInputs} inputs
7
+ * @param {{ locale?: "zh" | "en" }} options
8
+ * @returns {LocalizedString}
9
+ */
10
+ export const harness_engine_label: ((inputs?: Harness_Engine_LabelInputs, options?: {
11
+ locale?: "zh" | "en";
12
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Engine_LabelInputs, {
13
+ locale?: "zh" | "en";
14
+ }, {}>;
15
+ export type LocalizedString = import("../runtime.js").LocalizedString;
16
+ export type Harness_Engine_LabelInputs = {};
@@ -0,0 +1,29 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Engine_LabelInputs */
7
+
8
+ const zh_harness_engine_label = /** @type {(inputs: Harness_Engine_LabelInputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`执行引擎`)
10
+ };
11
+
12
+ const en_harness_engine_label = /** @type {(inputs: Harness_Engine_LabelInputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`Engine`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "Engine" |
20
+ *
21
+ * @param {Harness_Engine_LabelInputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ export const harness_engine_label = /** @type {((inputs?: Harness_Engine_LabelInputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Engine_LabelInputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_engine_label(inputs)
28
+ return zh_harness_engine_label(inputs)
29
+ });
@@ -0,0 +1,16 @@
1
+ /**
2
+ * | output |
3
+ * | --- |
4
+ * | "Local workspace" |
5
+ *
6
+ * @param {Harness_Engine_LocalInputs} inputs
7
+ * @param {{ locale?: "zh" | "en" }} options
8
+ * @returns {LocalizedString}
9
+ */
10
+ export const harness_engine_local: ((inputs?: Harness_Engine_LocalInputs, options?: {
11
+ locale?: "zh" | "en";
12
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Engine_LocalInputs, {
13
+ locale?: "zh" | "en";
14
+ }, {}>;
15
+ export type LocalizedString = import("../runtime.js").LocalizedString;
16
+ export type Harness_Engine_LocalInputs = {};
@@ -0,0 +1,29 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Engine_LocalInputs */
7
+
8
+ const zh_harness_engine_local = /** @type {(inputs: Harness_Engine_LocalInputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`本地工作区`)
10
+ };
11
+
12
+ const en_harness_engine_local = /** @type {(inputs: Harness_Engine_LocalInputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`Local workspace`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "Local workspace" |
20
+ *
21
+ * @param {Harness_Engine_LocalInputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ export const harness_engine_local = /** @type {((inputs?: Harness_Engine_LocalInputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Engine_LocalInputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_engine_local(inputs)
28
+ return zh_harness_engine_local(inputs)
29
+ });
@@ -0,0 +1,17 @@
1
+ export { harness_engine_localbadge1 as "harness_engine_localBadge" };
2
+ export type LocalizedString = import("../runtime.js").LocalizedString;
3
+ export type Harness_Engine_Localbadge1Inputs = {};
4
+ /**
5
+ * | output |
6
+ * | --- |
7
+ * | "Local read-only" |
8
+ *
9
+ * @param {Harness_Engine_Localbadge1Inputs} inputs
10
+ * @param {{ locale?: "zh" | "en" }} options
11
+ * @returns {LocalizedString}
12
+ */
13
+ declare const harness_engine_localbadge1: ((inputs?: Harness_Engine_Localbadge1Inputs, options?: {
14
+ locale?: "zh" | "en";
15
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Engine_Localbadge1Inputs, {
16
+ locale?: "zh" | "en";
17
+ }, {}>;
@@ -0,0 +1,30 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Engine_Localbadge1Inputs */
7
+
8
+ const zh_harness_engine_localbadge1 = /** @type {(inputs: Harness_Engine_Localbadge1Inputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`本地只读`)
10
+ };
11
+
12
+ const en_harness_engine_localbadge1 = /** @type {(inputs: Harness_Engine_Localbadge1Inputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`Local read-only`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "Local read-only" |
20
+ *
21
+ * @param {Harness_Engine_Localbadge1Inputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ const harness_engine_localbadge1 = /** @type {((inputs?: Harness_Engine_Localbadge1Inputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Engine_Localbadge1Inputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_engine_localbadge1(inputs)
28
+ return zh_harness_engine_localbadge1(inputs)
29
+ });
30
+ export { harness_engine_localbadge1 as "harness_engine_localBadge" }
@@ -0,0 +1,17 @@
1
+ export { harness_engine_localhint1 as "harness_engine_localHint" };
2
+ export type LocalizedString = import("../runtime.js").LocalizedString;
3
+ export type Harness_Engine_Localhint1Inputs = {};
4
+ /**
5
+ * | output |
6
+ * | --- |
7
+ * | "pi only reads authorized folders; files are never uploaded" |
8
+ *
9
+ * @param {Harness_Engine_Localhint1Inputs} inputs
10
+ * @param {{ locale?: "zh" | "en" }} options
11
+ * @returns {LocalizedString}
12
+ */
13
+ declare const harness_engine_localhint1: ((inputs?: Harness_Engine_Localhint1Inputs, options?: {
14
+ locale?: "zh" | "en";
15
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Engine_Localhint1Inputs, {
16
+ locale?: "zh" | "en";
17
+ }, {}>;
@@ -0,0 +1,30 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Engine_Localhint1Inputs */
7
+
8
+ const zh_harness_engine_localhint1 = /** @type {(inputs: Harness_Engine_Localhint1Inputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`pi 只读取授权目录,不上传文件`)
10
+ };
11
+
12
+ const en_harness_engine_localhint1 = /** @type {(inputs: Harness_Engine_Localhint1Inputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`pi only reads authorized folders; files are never uploaded`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "pi only reads authorized folders; files are never uploaded" |
20
+ *
21
+ * @param {Harness_Engine_Localhint1Inputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ const harness_engine_localhint1 = /** @type {((inputs?: Harness_Engine_Localhint1Inputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Engine_Localhint1Inputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_engine_localhint1(inputs)
28
+ return zh_harness_engine_localhint1(inputs)
29
+ });
30
+ export { harness_engine_localhint1 as "harness_engine_localHint" }
@@ -0,0 +1,17 @@
1
+ export { harness_engine_localnoattachments2 as "harness_engine_localNoAttachments" };
2
+ export type LocalizedString = import("../runtime.js").LocalizedString;
3
+ export type Harness_Engine_Localnoattachments2Inputs = {};
4
+ /**
5
+ * | output |
6
+ * | --- |
7
+ * | "Local Agent does not support attachments yet" |
8
+ *
9
+ * @param {Harness_Engine_Localnoattachments2Inputs} inputs
10
+ * @param {{ locale?: "zh" | "en" }} options
11
+ * @returns {LocalizedString}
12
+ */
13
+ declare const harness_engine_localnoattachments2: ((inputs?: Harness_Engine_Localnoattachments2Inputs, options?: {
14
+ locale?: "zh" | "en";
15
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Engine_Localnoattachments2Inputs, {
16
+ locale?: "zh" | "en";
17
+ }, {}>;
@@ -0,0 +1,30 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Engine_Localnoattachments2Inputs */
7
+
8
+ const zh_harness_engine_localnoattachments2 = /** @type {(inputs: Harness_Engine_Localnoattachments2Inputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`本地 Agent 暂不支持附件`)
10
+ };
11
+
12
+ const en_harness_engine_localnoattachments2 = /** @type {(inputs: Harness_Engine_Localnoattachments2Inputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`Local Agent does not support attachments yet`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "Local Agent does not support attachments yet" |
20
+ *
21
+ * @param {Harness_Engine_Localnoattachments2Inputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ const harness_engine_localnoattachments2 = /** @type {((inputs?: Harness_Engine_Localnoattachments2Inputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Engine_Localnoattachments2Inputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_engine_localnoattachments2(inputs)
28
+ return zh_harness_engine_localnoattachments2(inputs)
29
+ });
30
+ export { harness_engine_localnoattachments2 as "harness_engine_localNoAttachments" }
@@ -0,0 +1,17 @@
1
+ export { harness_engine_switchlocked1 as "harness_engine_switchLocked" };
2
+ export type LocalizedString = import("../runtime.js").LocalizedString;
3
+ export type Harness_Engine_Switchlocked1Inputs = {};
4
+ /**
5
+ * | output |
6
+ * | --- |
7
+ * | "This thread already has messages; start a new thread to switch engines" |
8
+ *
9
+ * @param {Harness_Engine_Switchlocked1Inputs} inputs
10
+ * @param {{ locale?: "zh" | "en" }} options
11
+ * @returns {LocalizedString}
12
+ */
13
+ declare const harness_engine_switchlocked1: ((inputs?: Harness_Engine_Switchlocked1Inputs, options?: {
14
+ locale?: "zh" | "en";
15
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Engine_Switchlocked1Inputs, {
16
+ locale?: "zh" | "en";
17
+ }, {}>;
@@ -0,0 +1,30 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Engine_Switchlocked1Inputs */
7
+
8
+ const zh_harness_engine_switchlocked1 = /** @type {(inputs: Harness_Engine_Switchlocked1Inputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`该会话已有消息,切换引擎请新建会话`)
10
+ };
11
+
12
+ const en_harness_engine_switchlocked1 = /** @type {(inputs: Harness_Engine_Switchlocked1Inputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`This thread already has messages; start a new thread to switch engines`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "This thread already has messages; start a new thread to switch engines" |
20
+ *
21
+ * @param {Harness_Engine_Switchlocked1Inputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ const harness_engine_switchlocked1 = /** @type {((inputs?: Harness_Engine_Switchlocked1Inputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Engine_Switchlocked1Inputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_engine_switchlocked1(inputs)
28
+ return zh_harness_engine_switchlocked1(inputs)
29
+ });
30
+ export { harness_engine_switchlocked1 as "harness_engine_switchLocked" }
@@ -0,0 +1,17 @@
1
+ export { harness_localworkspace_choose1 as "harness_localWorkspace_choose" };
2
+ export type LocalizedString = import("../runtime.js").LocalizedString;
3
+ export type Harness_Localworkspace_Choose1Inputs = {};
4
+ /**
5
+ * | output |
6
+ * | --- |
7
+ * | "Choose folder" |
8
+ *
9
+ * @param {Harness_Localworkspace_Choose1Inputs} inputs
10
+ * @param {{ locale?: "zh" | "en" }} options
11
+ * @returns {LocalizedString}
12
+ */
13
+ declare const harness_localworkspace_choose1: ((inputs?: Harness_Localworkspace_Choose1Inputs, options?: {
14
+ locale?: "zh" | "en";
15
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Localworkspace_Choose1Inputs, {
16
+ locale?: "zh" | "en";
17
+ }, {}>;
@@ -0,0 +1,30 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Localworkspace_Choose1Inputs */
7
+
8
+ const zh_harness_localworkspace_choose1 = /** @type {(inputs: Harness_Localworkspace_Choose1Inputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`选择目录`)
10
+ };
11
+
12
+ const en_harness_localworkspace_choose1 = /** @type {(inputs: Harness_Localworkspace_Choose1Inputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`Choose folder`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "Choose folder" |
20
+ *
21
+ * @param {Harness_Localworkspace_Choose1Inputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ const harness_localworkspace_choose1 = /** @type {((inputs?: Harness_Localworkspace_Choose1Inputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Localworkspace_Choose1Inputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_localworkspace_choose1(inputs)
28
+ return zh_harness_localworkspace_choose1(inputs)
29
+ });
30
+ export { harness_localworkspace_choose1 as "harness_localWorkspace_choose" }
@@ -0,0 +1,17 @@
1
+ export { harness_localworkspace_dialogdescription2 as "harness_localWorkspace_dialogDescription" };
2
+ export type LocalizedString = import("../runtime.js").LocalizedString;
3
+ export type Harness_Localworkspace_Dialogdescription2Inputs = {};
4
+ /**
5
+ * | output |
6
+ * | --- |
7
+ * | "pi can only read the folders listed below; revoke access at any time." |
8
+ *
9
+ * @param {Harness_Localworkspace_Dialogdescription2Inputs} inputs
10
+ * @param {{ locale?: "zh" | "en" }} options
11
+ * @returns {LocalizedString}
12
+ */
13
+ declare const harness_localworkspace_dialogdescription2: ((inputs?: Harness_Localworkspace_Dialogdescription2Inputs, options?: {
14
+ locale?: "zh" | "en";
15
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Localworkspace_Dialogdescription2Inputs, {
16
+ locale?: "zh" | "en";
17
+ }, {}>;
@@ -0,0 +1,30 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Localworkspace_Dialogdescription2Inputs */
7
+
8
+ const zh_harness_localworkspace_dialogdescription2 = /** @type {(inputs: Harness_Localworkspace_Dialogdescription2Inputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`pi 只能读取下方列出的目录;可随时撤销授权。`)
10
+ };
11
+
12
+ const en_harness_localworkspace_dialogdescription2 = /** @type {(inputs: Harness_Localworkspace_Dialogdescription2Inputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`pi can only read the folders listed below; revoke access at any time.`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "pi can only read the folders listed below; revoke access at any time." |
20
+ *
21
+ * @param {Harness_Localworkspace_Dialogdescription2Inputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ const harness_localworkspace_dialogdescription2 = /** @type {((inputs?: Harness_Localworkspace_Dialogdescription2Inputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Localworkspace_Dialogdescription2Inputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_localworkspace_dialogdescription2(inputs)
28
+ return zh_harness_localworkspace_dialogdescription2(inputs)
29
+ });
30
+ export { harness_localworkspace_dialogdescription2 as "harness_localWorkspace_dialogDescription" }
@@ -0,0 +1,17 @@
1
+ export { harness_localworkspace_dialogtitle2 as "harness_localWorkspace_dialogTitle" };
2
+ export type LocalizedString = import("../runtime.js").LocalizedString;
3
+ export type Harness_Localworkspace_Dialogtitle2Inputs = {};
4
+ /**
5
+ * | output |
6
+ * | --- |
7
+ * | "Local workspace" |
8
+ *
9
+ * @param {Harness_Localworkspace_Dialogtitle2Inputs} inputs
10
+ * @param {{ locale?: "zh" | "en" }} options
11
+ * @returns {LocalizedString}
12
+ */
13
+ declare const harness_localworkspace_dialogtitle2: ((inputs?: Harness_Localworkspace_Dialogtitle2Inputs, options?: {
14
+ locale?: "zh" | "en";
15
+ }) => LocalizedString) & import("../runtime.js").MessageMetadata<Harness_Localworkspace_Dialogtitle2Inputs, {
16
+ locale?: "zh" | "en";
17
+ }, {}>;
@@ -0,0 +1,30 @@
1
+ /* eslint-disable */
2
+ import { getLocale, experimentalStaticLocale } from '../runtime.js';
3
+
4
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
5
+
6
+ /** @typedef {{}} Harness_Localworkspace_Dialogtitle2Inputs */
7
+
8
+ const zh_harness_localworkspace_dialogtitle2 = /** @type {(inputs: Harness_Localworkspace_Dialogtitle2Inputs) => LocalizedString} */ () => {
9
+ return /** @type {LocalizedString} */ (`本地工作区`)
10
+ };
11
+
12
+ const en_harness_localworkspace_dialogtitle2 = /** @type {(inputs: Harness_Localworkspace_Dialogtitle2Inputs) => LocalizedString} */ () => {
13
+ return /** @type {LocalizedString} */ (`Local workspace`)
14
+ };
15
+
16
+ /**
17
+ * | output |
18
+ * | --- |
19
+ * | "Local workspace" |
20
+ *
21
+ * @param {Harness_Localworkspace_Dialogtitle2Inputs} inputs
22
+ * @param {{ locale?: "zh" | "en" }} options
23
+ * @returns {LocalizedString}
24
+ */
25
+ const harness_localworkspace_dialogtitle2 = /** @type {((inputs?: Harness_Localworkspace_Dialogtitle2Inputs, options?: { locale?: "zh" | "en" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Harness_Localworkspace_Dialogtitle2Inputs, { locale?: "zh" | "en" }, {}>} */ ((inputs = {}, options = {}) => {
26
+ const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
27
+ if (locale === "en") return en_harness_localworkspace_dialogtitle2(inputs)
28
+ return zh_harness_localworkspace_dialogtitle2(inputs)
29
+ });
30
+ export { harness_localworkspace_dialogtitle2 as "harness_localWorkspace_dialogTitle" }