aws-runtime-bridge 1.9.9 → 1.9.20

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 (121) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts +40 -0
  2. package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
  3. package/dist/adapter/AcodeSdkAdapter.js +353 -7
  4. package/dist/adapter/AcodeSdkAdapter.test.js +155 -8
  5. package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
  6. package/dist/adapter/OpencodeSdkAdapter.js +36 -3
  7. package/dist/adapter/instance-ai-config-resolver.d.ts +49 -0
  8. package/dist/adapter/instance-ai-config-resolver.d.ts.map +1 -0
  9. package/dist/adapter/instance-ai-config-resolver.js +46 -0
  10. package/dist/adapter/types.d.ts +27 -2
  11. package/dist/adapter/types.d.ts.map +1 -1
  12. package/dist/index.js +7 -3
  13. package/dist/routes/dashboard.d.ts.map +1 -1
  14. package/dist/routes/dashboard.js +1092 -8
  15. package/dist/routes/events.d.ts +7 -0
  16. package/dist/routes/events.d.ts.map +1 -0
  17. package/dist/routes/events.js +22 -0
  18. package/dist/routes/file-browser.d.ts +1 -1
  19. package/dist/routes/file-browser.d.ts.map +1 -1
  20. package/dist/routes/file-browser.js +25 -9
  21. package/dist/routes/file-snapshot.d.ts +10 -0
  22. package/dist/routes/file-snapshot.d.ts.map +1 -0
  23. package/dist/routes/file-snapshot.js +156 -0
  24. package/dist/routes/git.d.ts +10 -0
  25. package/dist/routes/git.d.ts.map +1 -1
  26. package/dist/routes/git.js +305 -2
  27. package/dist/routes/git.test.js +39 -2
  28. package/dist/routes/instance.js +3 -1
  29. package/dist/routes/memory.d.ts +3 -0
  30. package/dist/routes/memory.d.ts.map +1 -1
  31. package/dist/routes/memory.js +3 -0
  32. package/dist/routes/terminal.d.ts +2 -1
  33. package/dist/routes/terminal.d.ts.map +1 -1
  34. package/dist/routes/terminal.js +378 -41
  35. package/dist/routes/terminal.test.js +33 -7
  36. package/dist/services/agent-event-store.d.ts +59 -0
  37. package/dist/services/agent-event-store.d.ts.map +1 -0
  38. package/dist/services/agent-event-store.js +68 -0
  39. package/dist/services/event-delta-pusher.d.ts +40 -0
  40. package/dist/services/event-delta-pusher.d.ts.map +1 -0
  41. package/dist/services/event-delta-pusher.js +95 -0
  42. package/dist/services/fileSnapshotStore.d.ts +96 -0
  43. package/dist/services/fileSnapshotStore.d.ts.map +1 -0
  44. package/dist/services/fileSnapshotStore.js +500 -0
  45. package/dist/services/instance-ai-config-service.d.ts +49 -0
  46. package/dist/services/instance-ai-config-service.d.ts.map +1 -0
  47. package/dist/services/instance-ai-config-service.js +174 -0
  48. package/dist/services/panel-auth.d.ts +23 -0
  49. package/dist/services/panel-auth.d.ts.map +1 -1
  50. package/dist/services/panel-auth.js +64 -1
  51. package/dist/services/ring-buffer.d.ts +67 -0
  52. package/dist/services/ring-buffer.d.ts.map +1 -0
  53. package/dist/services/ring-buffer.js +103 -0
  54. package/dist/services/session-output.d.ts +47 -3
  55. package/dist/services/session-output.d.ts.map +1 -1
  56. package/dist/services/session-output.js +112 -2
  57. package/dist/utils/instance-ai-config-debug-logger.d.ts +37 -0
  58. package/dist/utils/instance-ai-config-debug-logger.d.ts.map +1 -0
  59. package/dist/utils/instance-ai-config-debug-logger.js +63 -0
  60. package/dist/utils/logger.d.ts +18 -0
  61. package/dist/utils/logger.d.ts.map +1 -1
  62. package/dist/utils/logger.js +48 -4
  63. package/package/acode/dist/built-in-file-tools.d.ts +1 -1
  64. package/package/acode/dist/built-in-file-tools.d.ts.map +1 -1
  65. package/package/acode/dist/built-in-file-tools.js +5 -3
  66. package/package/acode/dist/builtins/commandArtifacts.d.ts +8 -1
  67. package/package/acode/dist/builtins/commandArtifacts.d.ts.map +1 -1
  68. package/package/acode/dist/builtins/commandArtifacts.js +24 -4
  69. package/package/acode/dist/builtins/shellCommandResult.d.ts +1 -0
  70. package/package/acode/dist/builtins/shellCommandResult.d.ts.map +1 -1
  71. package/package/acode/dist/builtins/shellCommandResult.js +3 -3
  72. package/package/acode/dist/builtins/shellCommandRunner.d.ts +1 -0
  73. package/package/acode/dist/builtins/shellCommandRunner.d.ts.map +1 -1
  74. package/package/acode/dist/builtins/shellCommandRunner.js +1 -0
  75. package/package/acode/dist/cli.js +2 -0
  76. package/package/acode/dist/runtime.d.ts.map +1 -1
  77. package/package/acode/dist/runtime.js +156 -5
  78. package/package/acode/dist/types.d.ts +1 -0
  79. package/package/acode/dist/types.d.ts.map +1 -1
  80. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +5 -0
  81. package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +1 -1
  82. package/package/aws-client-agent-mcp/dist/agent-client.js +16 -0
  83. package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -1
  84. package/package/aws-client-agent-mcp/dist/context-manager.d.ts +136 -0
  85. package/package/aws-client-agent-mcp/dist/context-manager.d.ts.map +1 -0
  86. package/package/aws-client-agent-mcp/dist/context-manager.js +473 -0
  87. package/package/aws-client-agent-mcp/dist/context-manager.js.map +1 -0
  88. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +6 -0
  89. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts.map +1 -0
  90. package/package/aws-client-agent-mcp/dist/context-manager.test.js +307 -0
  91. package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +1 -0
  92. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +170 -2
  93. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
  94. package/package/aws-client-agent-mcp/dist/mcp-server.js +947 -9
  95. package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
  96. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +103 -1
  97. package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
  98. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +15 -1
  99. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -1
  100. package/package/aws-client-agent-mcp/dist/mcp-tools.js +62 -2
  101. package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -1
  102. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +46 -1
  103. package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -1
  104. package/package/aws-client-agent-mcp/dist/memory-store.js +164 -12
  105. package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -1
  106. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +8 -0
  107. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +1 -1
  108. package/package/aws-client-agent-mcp/dist/memory-tools.js +88 -1
  109. package/package/aws-client-agent-mcp/dist/memory-tools.js.map +1 -1
  110. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +7 -1
  111. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +1 -1
  112. package/package/aws-client-agent-mcp/dist/server-memory-store.js +18 -0
  113. package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +1 -1
  114. package/package/aws-client-agent-mcp/dist/types.d.ts +103 -2
  115. package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -1
  116. package/package/aws-client-agent-mcp/dist/types.js.map +1 -1
  117. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +27 -2
  118. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -1
  119. package/package/aws-client-agent-mcp/dist/websocket-client.js +122 -5
  120. package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -1
  121. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from "node:events";
2
- import { describe, expect, it, vi } from "vitest";
2
+ import { describe, expect, it, vi, beforeEach, afterEach } from "vitest";
3
3
  import { AcodeSdkAdapter, isFailedAcodeTurnComplete, } from "./AcodeSdkAdapter.js";
4
4
  class FailedTurnRuntime extends EventEmitter {
5
5
  constructor(config) {
@@ -837,7 +837,7 @@ describe("AcodeSdkAdapter turn completion state", () => {
837
837
  type: "turn_complete",
838
838
  data: { usage: { inputTokens: 31, outputTokens: 58 } },
839
839
  });
840
- expect(statuses.at(-1)).toEqual({
840
+ expect(statuses.at(-1)).toMatchObject({
841
841
  status: "waiting_input",
842
842
  usage: { inputTokens: 31, outputTokens: 58 },
843
843
  });
@@ -862,7 +862,7 @@ describe("AcodeSdkAdapter turn completion state", () => {
862
862
  });
863
863
  await adapter.sendMessage("session-reset-context", "finish work");
864
864
  expect(adapter.getConversation("session-reset-context")).toHaveLength(2);
865
- expect(statuses.at(-1)).toEqual({
865
+ expect(statuses.at(-1)).toMatchObject({
866
866
  status: "waiting_input",
867
867
  usage: { inputTokens: 7, outputTokens: 3 },
868
868
  });
@@ -872,7 +872,7 @@ describe("AcodeSdkAdapter turn completion state", () => {
872
872
  expect(adapter.hasSession("session-reset-context")).toBe(true);
873
873
  expect(adapter.getSessionStatus("session-reset-context")).toBe("waiting_input");
874
874
  expect(adapter.getConversation("session-reset-context")).toEqual([]);
875
- expect(statuses.at(-1)).toEqual({
875
+ expect(statuses.at(-1)).toMatchObject({
876
876
  status: "waiting_input",
877
877
  usage: { inputTokens: 0, outputTokens: 0 },
878
878
  });
@@ -1157,10 +1157,12 @@ describe("AcodeSdkAdapter turn completion state", () => {
1157
1157
  requestBody: '{"model":"test-model"}',
1158
1158
  },
1159
1159
  });
1160
- expect(statuses).toContainEqual({
1161
- status: "thinking",
1162
- usage: { inputTokens: 6800, outputTokens: 0 },
1163
- });
1160
+ expect(statuses).toEqual(expect.arrayContaining([
1161
+ expect.objectContaining({
1162
+ status: "thinking",
1163
+ usage: expect.objectContaining({ inputTokens: 6800, outputTokens: 0 }),
1164
+ }),
1165
+ ]));
1164
1166
  });
1165
1167
  it("forwards ACode thinking deltas as realtime thinking provider events", async () => {
1166
1168
  const adapter = new AcodeSdkAdapter();
@@ -1851,3 +1853,148 @@ describe("AcodeSdkAdapter turn completion state", () => {
1851
1853
  }
1852
1854
  });
1853
1855
  });
1856
+ /**
1857
+ * 用于验证 AcodeSdkAdapter 在 startSession 阶段传给 ACodeRuntime 的 config 是否符合
1858
+ * "instance > global > default" 优先级。Stub 会在构造时把 model / configPath 缓存到
1859
+ * lastConfig 供断言读取。
1860
+ */
1861
+ class CapturingConfigRuntime extends EventEmitter {
1862
+ constructor(config) {
1863
+ super();
1864
+ CapturingConfigRuntime.lastConfig = { ...config };
1865
+ }
1866
+ async start() { }
1867
+ async submit(_message) { }
1868
+ async abort() { }
1869
+ async stop() { }
1870
+ }
1871
+ describe("AcodeSdkAdapter instance AI configuration priority", () => {
1872
+ let tempDir;
1873
+ let globalAcodePath;
1874
+ let perInstanceAcodePath;
1875
+ beforeEach(async () => {
1876
+ const { mkdir, mkdtemp, writeFile } = await import("node:fs/promises");
1877
+ const os = await import("node:os");
1878
+ const path = await import("node:path");
1879
+ tempDir = await mkdtemp(path.join(os.tmpdir(), "acode-adapter-ai-"));
1880
+ globalAcodePath = path.join(tempDir, "global", ".acode", "config.json");
1881
+ perInstanceAcodePath = path.join(tempDir, "instance-acode-config.json");
1882
+ await mkdir(path.dirname(globalAcodePath), { recursive: true });
1883
+ await writeFile(globalAcodePath, JSON.stringify({
1884
+ provider: {
1885
+ default: {
1886
+ model: "global-model",
1887
+ options: {
1888
+ baseURL: "https://global.example.com/v1",
1889
+ apiKey: "sk-global",
1890
+ },
1891
+ },
1892
+ },
1893
+ }), "utf-8");
1894
+ process.env.AWS_RUNTIME_HOME_DIR = tempDir;
1895
+ process.env.AWS_RUNTIME_ACODE_CONFIG_FILE = globalAcodePath;
1896
+ });
1897
+ afterEach(async () => {
1898
+ const { rm } = await import("node:fs/promises");
1899
+ delete process.env.AWS_RUNTIME_HOME_DIR;
1900
+ delete process.env.AWS_RUNTIME_ACODE_CONFIG_FILE;
1901
+ CapturingConfigRuntime.lastConfig = undefined;
1902
+ await rm(tempDir, { recursive: true, force: true });
1903
+ });
1904
+ it("无 instance 覆盖时使用全局 acode.json 的 model 与 configPath", async () => {
1905
+ const adapter = new AcodeSdkAdapter();
1906
+ adapter.setRuntimeConstructorForTest(CapturingConfigRuntime);
1907
+ await adapter.startSession("s-default", {
1908
+ command: "acode",
1909
+ workingDirectory: process.cwd(),
1910
+ autoAccept: true,
1911
+ extraMcpServers: {},
1912
+ envOverrides: {},
1913
+ });
1914
+ expect(CapturingConfigRuntime.lastConfig?.configPath).toBe(globalAcodePath);
1915
+ expect(CapturingConfigRuntime.lastConfig?.model).toBe("global-model");
1916
+ adapter.cleanup();
1917
+ });
1918
+ it("per-instance instanceAiConfig.model 覆盖全局 model", async () => {
1919
+ const adapter = new AcodeSdkAdapter();
1920
+ adapter.setRuntimeConstructorForTest(CapturingConfigRuntime);
1921
+ await adapter.startSession("s-instance-model", {
1922
+ command: "acode",
1923
+ workingDirectory: process.cwd(),
1924
+ autoAccept: true,
1925
+ mcpConfigPath: perInstanceAcodePath,
1926
+ instanceAiConfig: { model: "instance-model" },
1927
+ extraMcpServers: {},
1928
+ envOverrides: {},
1929
+ });
1930
+ // 没有 per-instance 文件时,adapter 仍使用调用方传入的 mcpConfigPath
1931
+ expect(CapturingConfigRuntime.lastConfig?.configPath).toBe(perInstanceAcodePath);
1932
+ expect(CapturingConfigRuntime.lastConfig?.model).toBe("instance-model");
1933
+ adapter.cleanup();
1934
+ });
1935
+ it("per-instance 文件已 deep-merge 时,baseURL/apiKey 从文件读取(instance 优先)", async () => {
1936
+ const { writeFile } = await import("node:fs/promises");
1937
+ await writeFile(perInstanceAcodePath, JSON.stringify({
1938
+ provider: {
1939
+ default: {
1940
+ model: "instance-file-model",
1941
+ options: {
1942
+ baseURL: "https://instance.example.com/v1",
1943
+ apiKey: "sk-instance",
1944
+ },
1945
+ },
1946
+ },
1947
+ mcpServers: { "kept-from-global": { type: "stdio", command: "x" } },
1948
+ }), "utf-8");
1949
+ const adapter = new AcodeSdkAdapter();
1950
+ adapter.setRuntimeConstructorForTest(CapturingConfigRuntime);
1951
+ await adapter.startSession("s-instance-file", {
1952
+ command: "acode",
1953
+ workingDirectory: process.cwd(),
1954
+ autoAccept: true,
1955
+ mcpConfigPath: perInstanceAcodePath,
1956
+ extraMcpServers: {},
1957
+ envOverrides: {},
1958
+ });
1959
+ expect(CapturingConfigRuntime.lastConfig?.configPath).toBe(perInstanceAcodePath);
1960
+ // model 走 per-instance 文件的 provider.default.model
1961
+ expect(CapturingConfigRuntime.lastConfig?.model).toBe("instance-file-model");
1962
+ adapter.cleanup();
1963
+ });
1964
+ it("per-session model 优先于 per-instance file model 与全局", async () => {
1965
+ const { writeFile } = await import("node:fs/promises");
1966
+ await writeFile(perInstanceAcodePath, JSON.stringify({
1967
+ provider: {
1968
+ default: { model: "instance-file-model" },
1969
+ },
1970
+ }), "utf-8");
1971
+ const adapter = new AcodeSdkAdapter();
1972
+ adapter.setRuntimeConstructorForTest(CapturingConfigRuntime);
1973
+ await adapter.startSession("s-session-wins", {
1974
+ command: "acode",
1975
+ workingDirectory: process.cwd(),
1976
+ autoAccept: true,
1977
+ mcpConfigPath: perInstanceAcodePath,
1978
+ model: "session-model",
1979
+ extraMcpServers: {},
1980
+ envOverrides: {},
1981
+ });
1982
+ expect(CapturingConfigRuntime.lastConfig?.model).toBe("session-model");
1983
+ adapter.cleanup();
1984
+ });
1985
+ it("全空时回退默认 'acode-default'", async () => {
1986
+ const adapter = new AcodeSdkAdapter();
1987
+ adapter.setRuntimeConstructorForTest(CapturingConfigRuntime);
1988
+ await adapter.startSession("s-all-empty", {
1989
+ command: "acode",
1990
+ workingDirectory: process.cwd(),
1991
+ autoAccept: true,
1992
+ // 指向一个不存在的 per-instance 文件,模拟 instance & global 都为空
1993
+ mcpConfigPath: perInstanceAcodePath,
1994
+ extraMcpServers: {},
1995
+ envOverrides: {},
1996
+ });
1997
+ expect(CapturingConfigRuntime.lastConfig?.model).toBe("acode-default");
1998
+ adapter.cleanup();
1999
+ });
2000
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"OpencodeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/OpencodeSdkAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiB3C,OAAO,EAKL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAExB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AA4GpB,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,mBAAmB;IACjF,QAAQ,CAAC,UAAU,cAAc;IACjC,QAAQ,CAAC,WAAW,cAAc;IAElC,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEhC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+I5E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CzG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAUnG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BxD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAIzD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOpD,OAAO,IAAI,IAAI;IAaf;;;OAGG;YACW,OAAO;YA2BP,aAAa;IAmB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,YAAY;YAYN,UAAU;IAuBxB,OAAO,CAAC,mBAAmB;IA6H3B,OAAO,CAAC,gBAAgB;IAkHxB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kBAAkB;IAuC1B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,2BAA2B;CAOpC"}
1
+ {"version":3,"file":"OpencodeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/OpencodeSdkAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiB3C,OAAO,EAKL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAExB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AA8HpB,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,mBAAmB;IACjF,QAAQ,CAAC,UAAU,cAAc;IACjC,QAAQ,CAAC,WAAW,cAAc;IAElC,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEhC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2J5E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDzG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAUnG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BxD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAIzD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOpD,OAAO,IAAI,IAAI;IAaf;;;OAGG;YACW,OAAO;YA2BP,aAAa;IAmB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,YAAY;YAYN,UAAU;IAuBxB,OAAO,CAAC,mBAAmB;IA6H3B,OAAO,CAAC,gBAAgB;IAkHxB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kBAAkB;IAuC1B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,2BAA2B;CAOpC"}
@@ -84,6 +84,23 @@ function hasErrorCode(error) {
84
84
  function isMissingPackageError(error, packageName) {
85
85
  return hasErrorCode(error) && error.code === 'ERR_MODULE_NOT_FOUND' && error.message.includes(packageName);
86
86
  }
87
+ // ============ 模型解析 ============
88
+ /**
89
+ * 解析 OpenCode 模型规格。
90
+ * OpenCode 原生格式为 "provider/model"(如 "anthropic/claude-sonnet-4-5")。
91
+ * 若用户只提供模型名(不含 "/"),则仅返回 modelID,providerID 留空让 OpenCode 自动选择。
92
+ */
93
+ function parseOpenCodeModelSpec(model) {
94
+ if (!model || !model.trim())
95
+ return undefined;
96
+ const trimmed = model.trim();
97
+ const slashIndex = trimmed.indexOf('/');
98
+ if (slashIndex > 0) {
99
+ return { providerID: trimmed.slice(0, slashIndex), modelID: trimmed.slice(slashIndex + 1) };
100
+ }
101
+ // 纯模型名,无 provider 前缀
102
+ return { modelID: trimmed };
103
+ }
87
104
  // ============ Adapter ============
88
105
  export class OpencodeSdkAdapter extends EventEmitter {
89
106
  constructor() {
@@ -127,6 +144,14 @@ export class OpencodeSdkAdapter extends EventEmitter {
127
144
  (process.platform === 'win32' && !path.isAbsolute(openCodeCommand));
128
145
  console.log(`[OpencodeSdkAdapter] shell=${useShell}`);
129
146
  const env = { ...process.env, ...config.envOverrides };
147
+ // ★ 实例级模型覆盖:通过 OPENCODE_CONFIG_CONTENT 注入(OpenCode 标准 inline config,优先级 6)
148
+ // 参考:https://opencode.ai/docs/config/ — "Inline config (OPENCODE_CONFIG_CONTENT env var) - runtime overrides"
149
+ const parsedModel = parseOpenCodeModelSpec(config.model);
150
+ if (parsedModel?.modelID) {
151
+ const inlineConfig = { model: config.model.trim() };
152
+ env.OPENCODE_CONFIG_CONTENT = JSON.stringify(inlineConfig);
153
+ console.log(`[OpencodeSdkAdapter] ★★★ 实例级模型覆盖 ★★★ OPENCODE_CONFIG_CONTENT=${env.OPENCODE_CONFIG_CONTENT}`);
154
+ }
130
155
  const proc = spawn(openCodeCommand, ['serve', '--port', String(port)], {
131
156
  cwd: config.workingDirectory,
132
157
  stdio: ['ignore', 'pipe', 'pipe'],
@@ -236,11 +261,19 @@ export class OpencodeSdkAdapter extends EventEmitter {
236
261
  this.stopIdleDetection(sessionId);
237
262
  }
238
263
  try {
264
+ // ★ 实例级模型覆盖:per-message model override
265
+ // 仅当模型含 "provider/model" 格式时传入(OpenCode SDK 要求 providerID + modelID)
266
+ const parsedModel = parseOpenCodeModelSpec(session.config.model);
267
+ const promptBody = {
268
+ parts: [{ type: 'text', text: message }],
269
+ };
270
+ if (parsedModel?.providerID && parsedModel?.modelID) {
271
+ promptBody.model = { providerID: parsedModel.providerID, modelID: parsedModel.modelID };
272
+ console.log(`[OpencodeSdkAdapter] ★★★ per-message model ★★★ provider=${parsedModel.providerID}, model=${parsedModel.modelID}`);
273
+ }
239
274
  await session.client.session.prompt({
240
275
  path: { id: session.opencodeSessionId },
241
- body: {
242
- parts: [{ type: 'text', text: message }],
243
- },
276
+ body: promptBody,
244
277
  query: { directory: session.workingDirectory },
245
278
  });
246
279
  }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Instance AI 配置仲裁器
3
+ *
4
+ * 按 "instance > global > default" 三层优先级仲裁 ACode 的
5
+ * model/baseURL/apiKey 配置。
6
+ */
7
+ /**
8
+ * 实例级 AI 配置(来自 per-session model + per-instance instanceAiConfig)。
9
+ */
10
+ export interface InstanceAiConfig {
11
+ model?: string;
12
+ baseURL?: string;
13
+ apiKey?: string;
14
+ effort?: string;
15
+ }
16
+ /**
17
+ * 仲裁结果。
18
+ */
19
+ export interface ResolvedAcodeProviderConfig {
20
+ /** 最终选定的 model */
21
+ model: string;
22
+ /** 最终选定的 baseURL,可能为空 */
23
+ baseURL?: string;
24
+ /** 最终选定的 apiKey,可能为空 */
25
+ apiKey?: string;
26
+ /** 最终选定的 effort,可能为空 */
27
+ effort?: string;
28
+ /** 各字段的来源标签 */
29
+ source: {
30
+ model: string;
31
+ baseURL: string;
32
+ apiKey: string;
33
+ effort: string;
34
+ };
35
+ }
36
+ /**
37
+ * 仲裁 ACode provider 配置。
38
+ *
39
+ * 优先级:instance > global > default
40
+ * - instance:来自 per-session model + per-instance instanceAiConfig
41
+ * - global:来自 acode.json 顶层 provider.default
42
+ * - default:调用方提供的默认值
43
+ *
44
+ * @param instanceConfig 请求级实例配置(含 perSessionModel 覆盖后的 instanceAiConfig)
45
+ * @param globalConfig 全局 acode.json 中的 provider.default 层
46
+ * @param defaultModel 兜底默认模型名
47
+ */
48
+ export declare function resolveAcodeProviderConfig(instanceConfig: InstanceAiConfig, globalConfig: InstanceAiConfig | undefined, defaultModel: string): ResolvedAcodeProviderConfig;
49
+ //# sourceMappingURL=instance-ai-config-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-ai-config-resolver.d.ts","sourceRoot":"","sources":["../../src/adapter/instance-ai-config-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,gBAAgB,EAChC,YAAY,EAAE,gBAAgB,GAAG,SAAS,EAC1C,YAAY,EAAE,MAAM,GACnB,2BAA2B,CAkC7B"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Instance AI 配置仲裁器
3
+ *
4
+ * 按 "instance > global > default" 三层优先级仲裁 ACode 的
5
+ * model/baseURL/apiKey 配置。
6
+ */
7
+ /**
8
+ * 解析来源标签。
9
+ */
10
+ function pickSource(instanceVal, globalVal, _defaultLabel) {
11
+ if (instanceVal !== undefined)
12
+ return { value: instanceVal, source: "instance" };
13
+ if (globalVal !== undefined)
14
+ return { value: globalVal, source: "global" };
15
+ return { value: undefined, source: _defaultLabel ?? "default" };
16
+ }
17
+ /**
18
+ * 仲裁 ACode provider 配置。
19
+ *
20
+ * 优先级:instance > global > default
21
+ * - instance:来自 per-session model + per-instance instanceAiConfig
22
+ * - global:来自 acode.json 顶层 provider.default
23
+ * - default:调用方提供的默认值
24
+ *
25
+ * @param instanceConfig 请求级实例配置(含 perSessionModel 覆盖后的 instanceAiConfig)
26
+ * @param globalConfig 全局 acode.json 中的 provider.default 层
27
+ * @param defaultModel 兜底默认模型名
28
+ */
29
+ export function resolveAcodeProviderConfig(instanceConfig, globalConfig, defaultModel) {
30
+ const modelResult = pickSource(instanceConfig.model, globalConfig?.model, defaultModel);
31
+ const baseURLResult = pickSource(instanceConfig.baseURL, globalConfig?.baseURL, undefined);
32
+ const apiKeyResult = pickSource(instanceConfig.apiKey, globalConfig?.apiKey, undefined);
33
+ const effortResult = pickSource(instanceConfig.effort, globalConfig?.effort, undefined);
34
+ return {
35
+ model: modelResult.value ?? defaultModel,
36
+ ...(baseURLResult.value ? { baseURL: baseURLResult.value } : {}),
37
+ ...(apiKeyResult.value ? { apiKey: apiKeyResult.value } : {}),
38
+ ...(effortResult.value ? { effort: effortResult.value } : {}),
39
+ source: {
40
+ model: modelResult.source,
41
+ baseURL: baseURLResult.source,
42
+ apiKey: apiKeyResult.source,
43
+ effort: effortResult.source,
44
+ },
45
+ };
46
+ }
@@ -57,6 +57,8 @@ export declare function getToolActionInfo(toolName: string | undefined, toolInpu
57
57
  export interface RuntimeTokenUsage {
58
58
  inputTokens: number;
59
59
  outputTokens: number;
60
+ /** Model context window token limit used for the used/limit display. */
61
+ contextLimit?: number;
60
62
  }
61
63
  export type CommandOutputStream = "stdout" | "stderr" | "mixed";
62
64
  export interface RuntimeStatusActionInfo {
@@ -144,11 +146,27 @@ export interface ProviderEvent {
144
146
  commandLineCount?: number;
145
147
  };
146
148
  }
149
+ /**
150
+ * 实例自配置 AI provider 覆盖(仅 ACode 适配器消费)。
151
+ *
152
+ * 优先级:API 请求体(per-launch)> 环境变量 > bridge 下的 instance-acode-config.json 文件。
153
+ * 实例配置优先于 acode.json 全局 provider.default 配置;AcodeSdkAdapter 内部按
154
+ * "instance > global > default" 三层逐字段仲裁 model / baseURL / apiKey。
155
+ */
156
+ export interface AdapterInstanceAiConfig {
157
+ model?: string;
158
+ baseURL?: string;
159
+ apiKey?: string;
160
+ /** Per-instance model reasoning effort (minimal|low|medium|high|xhigh) */
161
+ effort?: string;
162
+ }
147
163
  export interface AdapterSessionConfig {
148
164
  /** CLI 命令(支持绝对路径) */
149
165
  command: string;
150
166
  /** 工作目录 */
151
167
  workingDirectory: string;
168
+ /** Agent ID(用于 spillover 文件路径隔离) */
169
+ agentId?: string;
152
170
  /** 初始 prompt(创建会话后自动发送) */
153
171
  initialPrompt?: string;
154
172
  /** 初始 prompt 是否显示为用户消息 */
@@ -161,14 +179,20 @@ export interface AdapterSessionConfig {
161
179
  preset: string;
162
180
  append: string;
163
181
  };
164
- /** 模型名称覆盖 */
182
+ /** 模型名称覆盖(per-session 粒度,优先级最高) */
165
183
  model?: string;
166
184
  /** 最大对话轮次(0=无限) */
167
185
  maxTurns?: number;
168
186
  /** 允许的工具列表(空=全部) */
169
187
  allowedTools?: string[];
170
- /** MCP 配置路径 */
188
+ /** MCP 配置路径;如为 per-instance 文件则由 instance-ai-config-service 写入 */
171
189
  mcpConfigPath?: string;
190
+ /**
191
+ * 实例自配置 AI provider 覆盖(仅 ACode 消费)。AcodeSdkAdapter 内部会按
192
+ * "instance > global > default" 优先级仲裁,并将 baseURL/apiKey 写入
193
+ * per-instance acode.json 后作为 configPath 使用。
194
+ */
195
+ instanceAiConfig?: AdapterInstanceAiConfig;
172
196
  /** Provider 特定参数 */
173
197
  providerArgs?: string[];
174
198
  /** 环境变量覆盖 */
@@ -199,6 +223,7 @@ export interface AdapterSession {
199
223
  totalUsage: {
200
224
  inputTokens: number;
201
225
  outputTokens: number;
226
+ contextLimit?: number;
202
227
  };
203
228
  /** SDK 进程 PID(用于检测进程是否存活) */
204
229
  pid?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ import { mcpRouter } from "./routes/mcp.js";
18
18
  import { terminalRouter, sdkSessions } from "./routes/terminal.js";
19
19
  import { sessionsRouter } from "./routes/sessions.js";
20
20
  import { gitRouter } from "./routes/git.js";
21
+ import { fileSnapshotRouter } from "./routes/file-snapshot.js";
21
22
  import { memoryRouter } from "./routes/memory.js";
22
23
  import { fileBrowserRouter } from "./routes/file-browser.js";
23
24
  import { aiSourcesRouter } from "./routes/ai-sources.js";
@@ -26,6 +27,7 @@ import { systemMetricsRouter } from "./routes/system-metrics.js";
26
27
  import { attachPtyWebSocketServer, closeAllPtySessions, ptyRouter, ptySessions, } from "./routes/pty.js";
27
28
  import { runtimeBindingRouter, logRuntimeBindingStartupState, } from "./routes/runtime-binding.js";
28
29
  import { dashboardRouter } from "./routes/dashboard.js";
30
+ import { eventsRouter } from "./routes/events.js";
29
31
  import { loadPersistedSessions, savePersistedSessions, } from "./services/terminal-persistence.js";
30
32
  import { detectOrphanProcesses } from "./services/process-detector.js";
31
33
  import { startOrphanMonitor, stopOrphanMonitor, } from "./services/orphan-monitor.js";
@@ -269,10 +271,10 @@ app.use(cors({
269
271
  return;
270
272
  }
271
273
  // 允许 bridge 自身端口的来源(dashboard/登录页面同源请求)
274
+ // 无论主机名是 localhost、127.0.0.1 还是外部 IP,只要端口匹配就放行
272
275
  try {
273
276
  const url = new URL(origin);
274
- if ((url.hostname === "localhost" || url.hostname === "127.0.0.1") &&
275
- url.port === String(port)) {
277
+ if (url.port === String(port)) {
276
278
  callback(null, true);
277
279
  return;
278
280
  }
@@ -295,7 +297,9 @@ app.use("/runtime", terminalRouter);
295
297
  app.use("/runtime", sessionsRouter);
296
298
  app.use("/runtime", processesRouter);
297
299
  app.use("/runtime", systemMetricsRouter);
300
+ app.use("/runtime", eventsRouter);
298
301
  app.use("/runtime", gitRouter);
302
+ app.use("/runtime", fileSnapshotRouter);
299
303
  app.use("/runtime", memoryRouter);
300
304
  app.use("/runtime", aiSourcesRouter);
301
305
  app.use("/pty", ptyRouter);
@@ -473,7 +477,7 @@ async function gracefulShutdown(signal, server, preserveSessions = false) {
473
477
  logger.info(`[runtime-bridge] 优雅关闭完成 (耗时 ${elapsed}ms),停止 ${sdkCount} SDK 会话`);
474
478
  server.close(() => {
475
479
  logger.info("[runtime-bridge] HTTP 服务器已关闭");
476
- process.exit(0);
480
+ process.exit(process.exitCode || 0);
477
481
  });
478
482
  // 强制退出超时(防止卡住)
479
483
  setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/routes/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+EH,eAAO,MAAM,eAAe,4CAAW,CAAC"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/routes/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuFH,eAAO,MAAM,eAAe,4CAAW,CAAC"}