openfox 2.0.119 → 2.0.121

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 (87) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/CHANGELOG.md +27 -0
  3. package/dist/agent-defaults/code-reviewer.agent.md +3 -8
  4. package/dist/{chat-handler-M54IWF5Y.js → chat-handler-A5ORR5BB.js} +28 -29
  5. package/dist/{chunk-LNNBLB6G.js → chunk-2N7KFNMY.js} +3 -3
  6. package/dist/{chunk-XZGQZ42D.js → chunk-5A4YN6I7.js} +5 -5
  7. package/dist/{chunk-UNNCD7A3.js → chunk-5QTERLHH.js} +6 -6
  8. package/dist/{chunk-SE62ZBNX.js → chunk-62GUO2EG.js} +6 -4
  9. package/dist/{chunk-YHAE2SJI.js → chunk-6A2VIV36.js} +4 -4
  10. package/dist/{chunk-VUQCQXXJ.js → chunk-7OHXF5GW.js} +6 -3
  11. package/dist/{chunk-3PG65AXG.js → chunk-DIALH34K.js} +2 -2
  12. package/dist/{chunk-AESOGRFK.js → chunk-EZ67GBEO.js} +2 -2
  13. package/dist/{chunk-AIFZNTUJ.js → chunk-F2IM5J4I.js} +4 -4
  14. package/dist/{chunk-HD6Y77RO.js → chunk-FGVMRFDW.js} +2 -2
  15. package/dist/{chunk-W7VIYHPQ.js → chunk-GJL3QSMP.js} +3 -2
  16. package/dist/{chunk-ZTOG6LJD.js → chunk-I22B6KWV.js} +3 -3
  17. package/dist/{chunk-JOCR4CF4.js → chunk-J3IJJ55E.js} +5 -5
  18. package/dist/{chunk-J6KFWVZ3.js → chunk-J77SLE3M.js} +3 -3
  19. package/dist/{chunk-XZ2WAI66.js → chunk-KD7JTG42.js} +237 -199
  20. package/dist/{chunk-2FCLCUVR.js → chunk-LSEHJ2WI.js} +3 -3
  21. package/dist/{chunk-3KBRMBTP.js → chunk-LWXLNE6M.js} +2 -2
  22. package/dist/{chunk-5PT4UMRR.js → chunk-NYQKSKDB.js} +9 -1
  23. package/dist/{chunk-5FAPM2GM.js → chunk-O63CDVNI.js} +4 -4
  24. package/dist/chunk-OBB3JYMK.js +7 -0
  25. package/dist/{chunk-M6X6AIEG.js → chunk-OXANSWVZ.js} +2 -2
  26. package/dist/{chunk-LTYL6ZGH.js → chunk-POTCPZJF.js} +2 -2
  27. package/dist/{chunk-O6DU226D.js → chunk-RMOKNQAS.js} +2 -2
  28. package/dist/{chunk-KLQEL2DZ.js → chunk-SLW3KKPP.js} +26 -8
  29. package/dist/{chunk-V5XWUVF5.js → chunk-TR4DQZIG.js} +123 -49
  30. package/dist/{chunk-U6JMRMBW.js → chunk-UJRWYZHM.js} +9 -3
  31. package/dist/{chunk-6DDB67FN.js → chunk-VUANU5A5.js} +17 -17
  32. package/dist/{chunk-AVQCOSOF.js → chunk-W3WZ54KP.js} +16 -16
  33. package/dist/{chunk-27NABDXB.js → chunk-Y7FGHKBW.js} +2 -2
  34. package/dist/{chunk-EQ5CGNOT.js → chunk-YBOU4ZFD.js} +3 -3
  35. package/dist/{chunk-VFS7TFA7.js → chunk-YDDBPKVP.js} +21 -16
  36. package/dist/{chunk-XB7IXMUI.js → chunk-ZELEYSTY.js} +51 -46
  37. package/dist/cli/dev.js +1 -1
  38. package/dist/cli/index.js +1 -1
  39. package/dist/{client-R4PI64IL.js → client-JKPDMJ7S.js} +6 -6
  40. package/dist/{compactor-F6XMYVHL.js → compactor-MKD3CAFM.js} +13 -13
  41. package/dist/{dynamic-context-NXQ2TFAZ.js → dynamic-context-KPZECHZH.js} +9 -9
  42. package/dist/{events-KDFMBVP5.js → events-6P4TDTSD.js} +8 -8
  43. package/dist/{folding-RTGU63BW.js → folding-3LA2WX2B.js} +6 -6
  44. package/dist/http-client-IKOARXI7.js +11 -0
  45. package/dist/{inspect-proxy-WPEDMCG7.js → inspect-proxy-IDLUAQH5.js} +4 -4
  46. package/dist/launch-YWXQQWZN.js +52 -0
  47. package/dist/{manager-EMLSLMMT.js → manager-NFKTUR64.js} +5 -5
  48. package/dist/{orchestrator-MNON5G7R.js → orchestrator-SM3IHZFP.js} +31 -32
  49. package/dist/package.json +1 -1
  50. package/dist/{path-security-L4AJJN2V.js → path-security-JUF56IB6.js} +10 -10
  51. package/dist/{platform-ECDDYMAR.js → platform-FM57ZJHA.js} +4 -4
  52. package/dist/{processor-OZSK7RUD.js → processor-EUJRA5GW.js} +40 -41
  53. package/dist/{profiles-GYHXBWPV.js → profiles-3YLLEJ2B.js} +2 -2
  54. package/dist/{project-creator-PMQ65NKN.js → project-creator-J4ITWDZI.js} +3 -3
  55. package/dist/{projects-NDPNOV6D.js → projects-FHRTSV6N.js} +3 -3
  56. package/dist/{protocol-D5kJLGWy.d.ts → protocol-BLin669D.d.ts} +1 -1
  57. package/dist/provider/index.d.ts +4 -4
  58. package/dist/{provider-7YF42S7C.js → provider-TAFJCWVP.js} +7 -7
  59. package/dist/{provider-manager-FJIPQJMX.js → provider-manager-EDJN6ARI.js} +7 -7
  60. package/dist/{registry-5QL3BOWN.js → registry-37GL3DAP.js} +5 -5
  61. package/dist/{serve-V34QG72C.js → serve-DEY45HQS.js} +32 -33
  62. package/dist/server/index.d.ts +40 -8
  63. package/dist/server/index.js +31 -32
  64. package/dist/server-EIRLWSBZ.js +55 -0
  65. package/dist/{service-ZKH465DA.js → service-HX5NFX2D.js} +9 -9
  66. package/dist/{session-overrides-CWBKPHMF.js → session-overrides-EOKSZO2X.js} +7 -7
  67. package/dist/{sessions-I7ELDIIP.js → sessions-XFNU4DZ6.js} +8 -6
  68. package/dist/{settings-FGXQHKUH.js → settings-SYYDPV43.js} +3 -3
  69. package/dist/shared/index.d.ts +6 -5
  70. package/dist/shared/index.js +1 -1
  71. package/dist/{tasks-I766NBPW.js → tasks-A25JQ4TV.js} +9 -9
  72. package/dist/{tools-ZJXDZLRH.js → tools-YGJXEEBI.js} +23 -24
  73. package/dist/{types-B5CI_Ql3.d.ts → types-B5_9KtfJ.d.ts} +1 -1
  74. package/dist/{types-CZlj7ufS.d.ts → types-DeQIEC1U.d.ts} +2 -0
  75. package/dist/{update-C3YVPKCR.js → update-CE3XSZXE.js} +2 -2
  76. package/dist/web/assets/{index-BlYcAqzD.js → index-oiZlWLY7.js} +84 -84
  77. package/dist/web/index.html +1 -1
  78. package/dist/web/sw.js +1 -1
  79. package/dist/workflow-defaults/default.workflow.json +3 -3
  80. package/dist/{workspace-IQLLHMYR.js → workspace-ZNZFEONU.js} +4 -4
  81. package/package.json +1 -1
  82. package/dist/chunk-EW25UQG3.js +0 -7
  83. package/dist/chunk-JLAR2CMV.js +0 -72
  84. package/dist/http-client-IPUW2MSW.js +0 -11
  85. package/dist/launch-I5XBYRSJ.js +0 -53
  86. package/dist/model-overrides-7F2EOA4U.js +0 -21
  87. package/dist/server-XZQLWIVD.js +0 -56
@@ -1,10 +1,22 @@
1
1
  import {
2
2
  runAgentTurn,
3
3
  runChatTurn
4
- } from "./chunk-6DDB67FN.js";
5
- import "./chunk-V5XWUVF5.js";
6
- import "./chunk-UNNCD7A3.js";
7
- import "./chunk-2FCLCUVR.js";
4
+ } from "./chunk-VUANU5A5.js";
5
+ import "./chunk-5QTERLHH.js";
6
+ import "./chunk-TR4DQZIG.js";
7
+ import "./chunk-LSEHJ2WI.js";
8
+ import "./chunk-OXANSWVZ.js";
9
+ import "./chunk-I22B6KWV.js";
10
+ import "./chunk-I72ACQ6R.js";
11
+ import "./chunk-JE7LW7Y6.js";
12
+ import "./chunk-OAN4BXEW.js";
13
+ import "./chunk-RMOKNQAS.js";
14
+ import "./chunk-J7GAZGZT.js";
15
+ import "./chunk-O63CDVNI.js";
16
+ import "./chunk-YBOU4ZFD.js";
17
+ import "./chunk-5A4YN6I7.js";
18
+ import "./chunk-XAAEP5XM.js";
19
+ import "./chunk-JURM3RPZ.js";
8
20
  import {
9
21
  TurnMetrics,
10
22
  createChatDoneEvent,
@@ -12,40 +24,27 @@ import {
12
24
  createMessageStartEvent,
13
25
  createToolCallEvent,
14
26
  createToolResultEvent
15
- } from "./chunk-SE62ZBNX.js";
16
- import "./chunk-27NABDXB.js";
17
- import "./chunk-M6X6AIEG.js";
18
- import "./chunk-ZTOG6LJD.js";
19
- import "./chunk-I72ACQ6R.js";
20
- import "./chunk-JE7LW7Y6.js";
21
- import "./chunk-OAN4BXEW.js";
22
- import "./chunk-O6DU226D.js";
23
- import "./chunk-J7GAZGZT.js";
24
- import "./chunk-5FAPM2GM.js";
25
- import "./chunk-EQ5CGNOT.js";
26
- import "./chunk-XZGQZ42D.js";
27
- import "./chunk-JOCR4CF4.js";
28
- import "./chunk-KLQEL2DZ.js";
29
- import "./chunk-XAAEP5XM.js";
30
- import "./chunk-AESOGRFK.js";
31
- import "./chunk-JURM3RPZ.js";
32
- import "./chunk-JLAR2CMV.js";
33
- import "./chunk-3KBRMBTP.js";
27
+ } from "./chunk-62GUO2EG.js";
28
+ import "./chunk-Y7FGHKBW.js";
29
+ import "./chunk-J3IJJ55E.js";
30
+ import "./chunk-SLW3KKPP.js";
31
+ import "./chunk-EZ67GBEO.js";
32
+ import "./chunk-LWXLNE6M.js";
34
33
  import "./chunk-LCLH6ZUL.js";
35
- import "./chunk-LNNBLB6G.js";
34
+ import "./chunk-2N7KFNMY.js";
36
35
  import "./chunk-OSXPQSLW.js";
37
- import "./chunk-3PG65AXG.js";
38
- import "./chunk-U6JMRMBW.js";
36
+ import "./chunk-DIALH34K.js";
37
+ import "./chunk-UJRWYZHM.js";
39
38
  import "./chunk-K2QKX4ZJ.js";
40
39
  import "./chunk-J2GP3J3X.js";
41
- import "./chunk-J6KFWVZ3.js";
42
- import "./chunk-W7VIYHPQ.js";
40
+ import "./chunk-J77SLE3M.js";
41
+ import "./chunk-GJL3QSMP.js";
43
42
  import "./chunk-AZHWLLPP.js";
44
43
  import "./chunk-HNCM3D7Y.js";
45
44
  import "./chunk-MIPQOHWS.js";
46
- import "./chunk-LTYL6ZGH.js";
47
- import "./chunk-HD6Y77RO.js";
48
- import "./chunk-5PT4UMRR.js";
45
+ import "./chunk-POTCPZJF.js";
46
+ import "./chunk-FGVMRFDW.js";
47
+ import "./chunk-NYQKSKDB.js";
49
48
  import "./chunk-K44MW7JJ.js";
50
49
  import "./chunk-KSDWQ6IZ.js";
51
50
  import "./chunk-KSXCOHHW.js";
@@ -61,4 +60,4 @@ export {
61
60
  runAgentTurn,
62
61
  runChatTurn
63
62
  };
64
- //# sourceMappingURL=orchestrator-MNON5G7R.js.map
63
+ //# sourceMappingURL=orchestrator-SM3IHZFP.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.119",
3
+ "version": "2.0.121",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,18 +19,18 @@ import {
19
19
  providePathConfirmation,
20
20
  registerPathConfirmation,
21
21
  requestPathAccess
22
- } from "./chunk-XZGQZ42D.js";
23
- import "./chunk-JOCR4CF4.js";
24
- import "./chunk-KLQEL2DZ.js";
22
+ } from "./chunk-5A4YN6I7.js";
25
23
  import "./chunk-XAAEP5XM.js";
26
- import "./chunk-AESOGRFK.js";
27
- import "./chunk-3KBRMBTP.js";
24
+ import "./chunk-J3IJJ55E.js";
25
+ import "./chunk-SLW3KKPP.js";
26
+ import "./chunk-EZ67GBEO.js";
27
+ import "./chunk-LWXLNE6M.js";
28
28
  import "./chunk-LCLH6ZUL.js";
29
- import "./chunk-LNNBLB6G.js";
29
+ import "./chunk-2N7KFNMY.js";
30
30
  import "./chunk-OSXPQSLW.js";
31
- import "./chunk-3PG65AXG.js";
32
- import "./chunk-HD6Y77RO.js";
33
- import "./chunk-5PT4UMRR.js";
31
+ import "./chunk-DIALH34K.js";
32
+ import "./chunk-FGVMRFDW.js";
33
+ import "./chunk-NYQKSKDB.js";
34
34
  import "./chunk-K44MW7JJ.js";
35
35
  import "./chunk-KSDWQ6IZ.js";
36
36
  import "./chunk-CQGTEGKL.js";
@@ -57,4 +57,4 @@ export {
57
57
  registerPathConfirmation,
58
58
  requestPathAccess
59
59
  };
60
- //# sourceMappingURL=path-security-L4AJJN2V.js.map
60
+ //# sourceMappingURL=path-security-JUF56IB6.js.map
@@ -5,9 +5,9 @@ import {
5
5
  isAbsolutePath,
6
6
  isWindowsPath,
7
7
  listAvailableShells
8
- } from "./chunk-AESOGRFK.js";
9
- import "./chunk-HD6Y77RO.js";
10
- import "./chunk-5PT4UMRR.js";
8
+ } from "./chunk-EZ67GBEO.js";
9
+ import "./chunk-FGVMRFDW.js";
10
+ import "./chunk-NYQKSKDB.js";
11
11
  import "./chunk-K44MW7JJ.js";
12
12
  import "./chunk-YLJ4XMA6.js";
13
13
  export {
@@ -18,4 +18,4 @@ export {
18
18
  isWindowsPath,
19
19
  listAvailableShells
20
20
  };
21
- //# sourceMappingURL=platform-ECDDYMAR.js.map
21
+ //# sourceMappingURL=platform-FM57ZJHA.js.map
@@ -2,48 +2,47 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-VFS7TFA7.js";
6
- import "./chunk-V5XWUVF5.js";
7
- import "./chunk-2FCLCUVR.js";
8
- import "./chunk-SE62ZBNX.js";
9
- import "./chunk-27NABDXB.js";
10
- import "./chunk-M6X6AIEG.js";
11
- import "./chunk-ZTOG6LJD.js";
5
+ } from "./chunk-YDDBPKVP.js";
6
+ import "./chunk-TR4DQZIG.js";
7
+ import "./chunk-LSEHJ2WI.js";
8
+ import "./chunk-OXANSWVZ.js";
9
+ import "./chunk-I22B6KWV.js";
12
10
  import "./chunk-I72ACQ6R.js";
13
11
  import "./chunk-JE7LW7Y6.js";
14
12
  import "./chunk-OAN4BXEW.js";
15
- import "./chunk-O6DU226D.js";
13
+ import "./chunk-RMOKNQAS.js";
16
14
  import "./chunk-J7GAZGZT.js";
17
- import "./chunk-5FAPM2GM.js";
18
- import "./chunk-EQ5CGNOT.js";
19
- import "./chunk-XZGQZ42D.js";
20
- import {
21
- getEventStore
22
- } from "./chunk-JOCR4CF4.js";
23
- import "./chunk-KLQEL2DZ.js";
15
+ import "./chunk-O63CDVNI.js";
16
+ import "./chunk-YBOU4ZFD.js";
17
+ import "./chunk-5A4YN6I7.js";
24
18
  import {
25
19
  createChatMessageMessage,
26
20
  createSessionRunningMessage
27
21
  } from "./chunk-XAAEP5XM.js";
28
- import "./chunk-AESOGRFK.js";
29
22
  import "./chunk-JURM3RPZ.js";
30
- import "./chunk-JLAR2CMV.js";
31
- import "./chunk-3KBRMBTP.js";
23
+ import "./chunk-62GUO2EG.js";
24
+ import "./chunk-Y7FGHKBW.js";
25
+ import {
26
+ getEventStore
27
+ } from "./chunk-J3IJJ55E.js";
28
+ import "./chunk-SLW3KKPP.js";
29
+ import "./chunk-EZ67GBEO.js";
30
+ import "./chunk-LWXLNE6M.js";
32
31
  import "./chunk-LCLH6ZUL.js";
33
- import "./chunk-LNNBLB6G.js";
32
+ import "./chunk-2N7KFNMY.js";
34
33
  import "./chunk-OSXPQSLW.js";
35
- import "./chunk-3PG65AXG.js";
36
- import "./chunk-U6JMRMBW.js";
34
+ import "./chunk-DIALH34K.js";
35
+ import "./chunk-UJRWYZHM.js";
37
36
  import "./chunk-K2QKX4ZJ.js";
38
37
  import "./chunk-J2GP3J3X.js";
39
- import "./chunk-J6KFWVZ3.js";
40
- import "./chunk-W7VIYHPQ.js";
38
+ import "./chunk-J77SLE3M.js";
39
+ import "./chunk-GJL3QSMP.js";
41
40
  import "./chunk-AZHWLLPP.js";
42
41
  import "./chunk-HNCM3D7Y.js";
43
42
  import "./chunk-MIPQOHWS.js";
44
- import "./chunk-LTYL6ZGH.js";
45
- import "./chunk-HD6Y77RO.js";
46
- import "./chunk-5PT4UMRR.js";
43
+ import "./chunk-POTCPZJF.js";
44
+ import "./chunk-FGVMRFDW.js";
45
+ import "./chunk-NYQKSKDB.js";
47
46
  import {
48
47
  logger
49
48
  } from "./chunk-K44MW7JJ.js";
@@ -168,19 +167,19 @@ var QueueProcessor = class {
168
167
  }
169
168
  async runTurn(sessionId, controller) {
170
169
  const { sessionManager, getLLMClient, getActiveProvider, broadcastForSession, providerManager } = this.deps;
171
- const session = sessionManager.getSession(sessionId);
172
- if (session?.providerId && session.providerModel) {
170
+ const effective = sessionManager.resolveEffectiveProviderModel(sessionId);
171
+ if (effective.providerId && effective.model) {
173
172
  const currentActiveProviderId = providerManager.getActiveProviderId();
174
173
  const currentModel = providerManager.getCurrentModel();
175
- if (currentActiveProviderId !== session.providerId || currentModel !== session.providerModel) {
176
- logger.info("Switching to session provider", {
174
+ if (currentActiveProviderId !== effective.providerId || currentModel !== effective.model) {
175
+ logger.info("Switching to session effective provider", {
177
176
  sessionId,
178
177
  fromProvider: currentActiveProviderId,
179
178
  fromModel: currentModel,
180
- toProvider: session.providerId,
181
- toModel: session.providerModel
179
+ toProvider: effective.providerId,
180
+ toModel: effective.model
182
181
  });
183
- const result = await providerManager.activateProvider(session.providerId, { model: session.providerModel });
182
+ const result = await providerManager.activateProvider(effective.providerId, { model: effective.model });
184
183
  if (!result.success) {
185
184
  logger.error("Failed to activate session provider", { sessionId, error: result.error });
186
185
  }
@@ -195,16 +194,16 @@ var QueueProcessor = class {
195
194
  model: llmClient.getModel()
196
195
  };
197
196
  const getSessionLLMClient = () => {
198
- const current = sessionManager.getSession(sessionId);
199
- if (current?.providerId && current.providerModel && this.deps.getLLMClientForProvider) {
200
- const resolvedModel = providerManager.resolveModel?.(current.providerId, current.providerModel);
201
- const effectiveModel = resolvedModel ?? current.providerModel;
197
+ const current = sessionManager.resolveEffectiveProviderModel(sessionId);
198
+ if (current.providerId && current.model && this.deps.getLLMClientForProvider) {
199
+ const resolvedModel = providerManager.resolveModel?.(current.providerId, current.model);
200
+ const effectiveModel = resolvedModel ?? current.model;
202
201
  const client = this.deps.getLLMClientForProvider(current.providerId, effectiveModel);
203
202
  if (client) return client;
204
203
  }
205
204
  return llmClient;
206
205
  };
207
- const { runChatTurn } = await import("./orchestrator-MNON5G7R.js");
206
+ const { runChatTurn } = await import("./orchestrator-SM3IHZFP.js");
208
207
  const runChatTurnParams = buildRunChatTurnParams({
209
208
  sessionManager,
210
209
  sessionId,
@@ -222,8 +221,8 @@ var QueueProcessor = class {
222
221
  }).finally(() => {
223
222
  this.activeAgents.delete(sessionId);
224
223
  try {
225
- const session2 = sessionManager.getSession(sessionId);
226
- if (!session2) {
224
+ const session = sessionManager.getSession(sessionId);
225
+ if (!session) {
227
226
  return;
228
227
  }
229
228
  if (this.abortedSessions.has(sessionId)) {
@@ -253,4 +252,4 @@ var QueueProcessor = class {
253
252
  export {
254
253
  QueueProcessor
255
254
  };
256
- //# sourceMappingURL=processor-OZSK7RUD.js.map
255
+ //# sourceMappingURL=processor-EUJRA5GW.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getModelProfile,
3
3
  modelSupportsVision
4
- } from "./chunk-W7VIYHPQ.js";
4
+ } from "./chunk-GJL3QSMP.js";
5
5
  import "./chunk-YLJ4XMA6.js";
6
6
  export {
7
7
  getModelProfile,
8
8
  modelSupportsVision
9
9
  };
10
- //# sourceMappingURL=profiles-GYHXBWPV.js.map
10
+ //# sourceMappingURL=profiles-3YLLEJ2B.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createProject
3
- } from "./chunk-3PG65AXG.js";
4
- import "./chunk-5PT4UMRR.js";
3
+ } from "./chunk-DIALH34K.js";
4
+ import "./chunk-NYQKSKDB.js";
5
5
  import "./chunk-K44MW7JJ.js";
6
6
  import "./chunk-YLJ4XMA6.js";
7
7
 
@@ -122,4 +122,4 @@ export {
122
122
  createDirectoryWithGit,
123
123
  validateProjectName
124
124
  };
125
- //# sourceMappingURL=project-creator-PMQ65NKN.js.map
125
+ //# sourceMappingURL=project-creator-J4ITWDZI.js.map
@@ -7,8 +7,8 @@ import {
7
7
  listProjects,
8
8
  toggleStar,
9
9
  updateProject
10
- } from "./chunk-3PG65AXG.js";
11
- import "./chunk-5PT4UMRR.js";
10
+ } from "./chunk-DIALH34K.js";
11
+ import "./chunk-NYQKSKDB.js";
12
12
  import "./chunk-K44MW7JJ.js";
13
13
  import "./chunk-YLJ4XMA6.js";
14
14
  export {
@@ -21,4 +21,4 @@ export {
21
21
  toggleStar,
22
22
  updateProject
23
23
  };
24
- //# sourceMappingURL=projects-NDPNOV6D.js.map
24
+ //# sourceMappingURL=projects-FHRTSV6N.js.map
@@ -1,4 +1,4 @@
1
- import { A as Attachment, Z as ToolMode, $ as ToolResult, a as Message, Y as Todo, c as ContextState, e as Criterion, i as Diagnostic, r as MetadataEntry, G as SessionMode, H as SessionPhase, t as Project, J as SessionSummary, z as Session, a2 as WorkflowExecution, u as ProjectTask, w as ProjectTaskSettings, v as ProjectTaskCounts, U as TaskGateConfig } from './types-CZlj7ufS.js';
1
+ import { A as Attachment, Z as ToolMode, $ as ToolResult, a as Message, Y as Todo, c as ContextState, e as Criterion, i as Diagnostic, r as MetadataEntry, G as SessionMode, H as SessionPhase, t as Project, J as SessionSummary, z as Session, a2 as WorkflowExecution, u as ProjectTask, w as ProjectTaskSettings, v as ProjectTaskCounts, U as TaskGateConfig } from './types-DeQIEC1U.js';
2
2
 
3
3
  type ClientMessageType = 'session.load' | 'context.compact' | 'context.checkDynamic' | 'context.applyDynamic' | 'context.applyDynamic.preview' | 'runner.launch' | 'workflow.exit' | 'chat.retry' | 'chat.llm_retry_now' | 'path.confirm' | 'ask.answer';
4
4
  interface ClientMessage<T = unknown> {
@@ -1,7 +1,7 @@
1
- import { M as ModelConfig } from '../types-CZlj7ufS.js';
2
- export { T as ToolCall } from '../types-CZlj7ufS.js';
3
- import { L as LLMCompletionRequest, a as LLMCompletionResponse, b as LLMStreamEvent } from '../types-B5CI_Ql3.js';
4
- export { c as LLMMessage, d as LLMToolDefinition } from '../types-B5CI_Ql3.js';
1
+ import { M as ModelConfig } from '../types-DeQIEC1U.js';
2
+ export { T as ToolCall } from '../types-DeQIEC1U.js';
3
+ import { L as LLMCompletionRequest, a as LLMCompletionResponse, b as LLMStreamEvent } from '../types-B5_9KtfJ.js';
4
+ export { c as LLMMessage, d as LLMToolDefinition } from '../types-B5_9KtfJ.js';
5
5
 
6
6
  type ProviderAuthState = 'disconnected' | 'pending' | 'connected' | 'expired' | 'error';
7
7
  interface ProviderAuthStatus {
@@ -11,17 +11,17 @@ import {
11
11
  import {
12
12
  detectModel,
13
13
  fetchAvailableModelsFromBackend
14
- } from "./chunk-U6JMRMBW.js";
14
+ } from "./chunk-UJRWYZHM.js";
15
15
  import "./chunk-K2QKX4ZJ.js";
16
16
  import "./chunk-J2GP3J3X.js";
17
- import "./chunk-J6KFWVZ3.js";
18
- import "./chunk-W7VIYHPQ.js";
17
+ import "./chunk-J77SLE3M.js";
18
+ import "./chunk-GJL3QSMP.js";
19
19
  import "./chunk-AZHWLLPP.js";
20
20
  import "./chunk-HNCM3D7Y.js";
21
21
  import "./chunk-MIPQOHWS.js";
22
- import "./chunk-LTYL6ZGH.js";
23
- import "./chunk-HD6Y77RO.js";
24
- import "./chunk-5PT4UMRR.js";
22
+ import "./chunk-POTCPZJF.js";
23
+ import "./chunk-FGVMRFDW.js";
24
+ import "./chunk-NYQKSKDB.js";
25
25
  import "./chunk-K44MW7JJ.js";
26
26
  import {
27
27
  activateProvider,
@@ -399,4 +399,4 @@ export {
399
399
  runProviderRemove,
400
400
  runProviderUse
401
401
  };
402
- //# sourceMappingURL=provider-7YF42S7C.js.map
402
+ //# sourceMappingURL=provider-TAFJCWVP.js.map
@@ -3,17 +3,17 @@ import {
3
3
  fetchAvailableModelsFromBackend,
4
4
  fetchModelsWithContext,
5
5
  parseDefaultModelSelection
6
- } from "./chunk-U6JMRMBW.js";
6
+ } from "./chunk-UJRWYZHM.js";
7
7
  import "./chunk-K2QKX4ZJ.js";
8
8
  import "./chunk-J2GP3J3X.js";
9
- import "./chunk-J6KFWVZ3.js";
10
- import "./chunk-W7VIYHPQ.js";
9
+ import "./chunk-J77SLE3M.js";
10
+ import "./chunk-GJL3QSMP.js";
11
11
  import "./chunk-AZHWLLPP.js";
12
12
  import "./chunk-HNCM3D7Y.js";
13
13
  import "./chunk-MIPQOHWS.js";
14
- import "./chunk-LTYL6ZGH.js";
15
- import "./chunk-HD6Y77RO.js";
16
- import "./chunk-5PT4UMRR.js";
14
+ import "./chunk-POTCPZJF.js";
15
+ import "./chunk-FGVMRFDW.js";
16
+ import "./chunk-NYQKSKDB.js";
17
17
  import "./chunk-K44MW7JJ.js";
18
18
  import "./chunk-YLJ4XMA6.js";
19
19
  export {
@@ -22,4 +22,4 @@ export {
22
22
  fetchModelsWithContext,
23
23
  parseDefaultModelSelection
24
24
  };
25
- //# sourceMappingURL=provider-manager-FJIPQJMX.js.map
25
+ //# sourceMappingURL=provider-manager-EDJN6ARI.js.map
@@ -17,11 +17,11 @@ import {
17
17
  resolveDefaultAgentId,
18
18
  saveAgent,
19
19
  saveAgentToProject
20
- } from "./chunk-LNNBLB6G.js";
20
+ } from "./chunk-2N7KFNMY.js";
21
21
  import "./chunk-OSXPQSLW.js";
22
- import "./chunk-3PG65AXG.js";
23
- import "./chunk-HD6Y77RO.js";
24
- import "./chunk-5PT4UMRR.js";
22
+ import "./chunk-DIALH34K.js";
23
+ import "./chunk-FGVMRFDW.js";
24
+ import "./chunk-NYQKSKDB.js";
25
25
  import "./chunk-K44MW7JJ.js";
26
26
  import "./chunk-CQGTEGKL.js";
27
27
  import "./chunk-YLJ4XMA6.js";
@@ -45,4 +45,4 @@ export {
45
45
  saveAgent,
46
46
  saveAgentToProject
47
47
  };
48
- //# sourceMappingURL=registry-5QL3BOWN.js.map
48
+ //# sourceMappingURL=registry-37GL3DAP.js.map
@@ -1,60 +1,59 @@
1
1
  import {
2
2
  createServer
3
- } from "./chunk-XZ2WAI66.js";
3
+ } from "./chunk-KD7JTG42.js";
4
4
  import "./chunk-RSB4AR2A.js";
5
5
  import "./chunk-IJ53Y77N.js";
6
- import "./chunk-XB7IXMUI.js";
7
- import "./chunk-VFS7TFA7.js";
8
- import "./chunk-AVQCOSOF.js";
9
- import "./chunk-6DDB67FN.js";
10
- import "./chunk-V5XWUVF5.js";
11
- import "./chunk-UNNCD7A3.js";
12
- import "./chunk-2FCLCUVR.js";
6
+ import "./chunk-ZELEYSTY.js";
7
+ import "./chunk-YDDBPKVP.js";
8
+ import "./chunk-W3WZ54KP.js";
9
+ import "./chunk-VUANU5A5.js";
10
+ import "./chunk-5QTERLHH.js";
13
11
  import "./chunk-WLJJRX22.js";
14
- import "./chunk-YHAE2SJI.js";
15
- import "./chunk-SE62ZBNX.js";
16
- import "./chunk-27NABDXB.js";
17
- import "./chunk-M6X6AIEG.js";
18
- import "./chunk-ZTOG6LJD.js";
12
+ import "./chunk-TR4DQZIG.js";
13
+ import "./chunk-LSEHJ2WI.js";
14
+ import "./chunk-OXANSWVZ.js";
15
+ import "./chunk-I22B6KWV.js";
19
16
  import "./chunk-I72ACQ6R.js";
20
17
  import "./chunk-JE7LW7Y6.js";
21
18
  import "./chunk-OAN4BXEW.js";
22
- import "./chunk-O6DU226D.js";
19
+ import "./chunk-RMOKNQAS.js";
23
20
  import "./chunk-J7GAZGZT.js";
24
- import "./chunk-5FAPM2GM.js";
25
- import "./chunk-EQ5CGNOT.js";
26
- import "./chunk-XZGQZ42D.js";
27
- import "./chunk-JOCR4CF4.js";
28
- import "./chunk-KLQEL2DZ.js";
21
+ import "./chunk-O63CDVNI.js";
22
+ import "./chunk-YBOU4ZFD.js";
23
+ import "./chunk-5A4YN6I7.js";
29
24
  import "./chunk-XAAEP5XM.js";
30
- import "./chunk-AESOGRFK.js";
31
25
  import "./chunk-JURM3RPZ.js";
32
- import "./chunk-JLAR2CMV.js";
26
+ import "./chunk-6A2VIV36.js";
27
+ import "./chunk-62GUO2EG.js";
28
+ import "./chunk-Y7FGHKBW.js";
29
+ import "./chunk-J3IJJ55E.js";
30
+ import "./chunk-SLW3KKPP.js";
31
+ import "./chunk-EZ67GBEO.js";
33
32
  import {
34
33
  VERSION
35
- } from "./chunk-EW25UQG3.js";
36
- import "./chunk-3KBRMBTP.js";
34
+ } from "./chunk-OBB3JYMK.js";
35
+ import "./chunk-LWXLNE6M.js";
37
36
  import "./chunk-LCLH6ZUL.js";
38
37
  import {
39
38
  loadConfig
40
- } from "./chunk-LNNBLB6G.js";
39
+ } from "./chunk-2N7KFNMY.js";
41
40
  import "./chunk-OSXPQSLW.js";
42
- import "./chunk-3PG65AXG.js";
43
- import "./chunk-U6JMRMBW.js";
41
+ import "./chunk-DIALH34K.js";
42
+ import "./chunk-UJRWYZHM.js";
44
43
  import "./chunk-K2QKX4ZJ.js";
45
44
  import "./chunk-J2GP3J3X.js";
46
- import "./chunk-J6KFWVZ3.js";
47
- import "./chunk-W7VIYHPQ.js";
45
+ import "./chunk-J77SLE3M.js";
46
+ import "./chunk-GJL3QSMP.js";
48
47
  import "./chunk-AZHWLLPP.js";
49
48
  import "./chunk-HNCM3D7Y.js";
50
49
  import "./chunk-MIPQOHWS.js";
51
- import "./chunk-LTYL6ZGH.js";
52
- import "./chunk-HD6Y77RO.js";
53
- import "./chunk-5PT4UMRR.js";
50
+ import "./chunk-POTCPZJF.js";
51
+ import "./chunk-FGVMRFDW.js";
52
+ import "./chunk-NYQKSKDB.js";
54
53
  import {
55
54
  logger
56
55
  } from "./chunk-K44MW7JJ.js";
57
- import "./chunk-VUQCQXXJ.js";
56
+ import "./chunk-7OHXF5GW.js";
58
57
  import "./chunk-KSDWQ6IZ.js";
59
58
  import {
60
59
  getActiveProvider,
@@ -227,4 +226,4 @@ async function runServe(options) {
227
226
  export {
228
227
  runServe
229
228
  };
230
- //# sourceMappingURL=serve-V34QG72C.js.map
229
+ //# sourceMappingURL=serve-DEY45HQS.js.map
@@ -1,7 +1,7 @@
1
- import { i as Diagnostic, x as Provider, M as ModelConfig, z as Session, J as SessionSummary, t as Project, G as SessionMode, H as SessionPhase, a0 as UserStepChoice, a2 as WorkflowExecution, a as Message, e as Criterion, g as CriterionStatus, r as MetadataEntry, A as Attachment, c as ContextState, D as DangerLevel$1, N as StatsIdentity, $ as ToolResult, b as Config } from '../types-CZlj7ufS.js';
1
+ import { i as Diagnostic, x as Provider, M as ModelConfig, z as Session, J as SessionSummary, t as Project, G as SessionMode, H as SessionPhase, a0 as UserStepChoice, a2 as WorkflowExecution, a as Message, e as Criterion, g as CriterionStatus, r as MetadataEntry, A as Attachment, c as ContextState, D as DangerLevel$1, N as StatsIdentity, $ as ToolResult, b as Config } from '../types-DeQIEC1U.js';
2
2
  import { Server } from 'node:http';
3
- import { e as LLMClient, d as LLMToolDefinition } from '../types-B5CI_Ql3.js';
4
- import { a7 as QueuedMessage, a8 as ServerMessage } from '../protocol-D5kJLGWy.js';
3
+ import { e as LLMClient, d as LLMToolDefinition } from '../types-B5_9KtfJ.js';
4
+ import { a7 as QueuedMessage, a8 as ServerMessage } from '../protocol-BLin669D.js';
5
5
 
6
6
  /**
7
7
  * Model-specific configuration profiles.
@@ -136,6 +136,7 @@ interface ProviderManager {
136
136
  getActiveProvider(): Provider | undefined;
137
137
  getActiveProviderId(): string | undefined;
138
138
  getCurrentModel(): string | undefined;
139
+ getDefaultModelSelection(): string | undefined;
139
140
  getCurrentModelContext(): number;
140
141
  getLLMClient(): LLMClientWithModel;
141
142
  activateProvider(providerId: string, options?: {
@@ -336,15 +337,37 @@ declare class SessionManager {
336
337
  * where the caller already has a mock client that should be preserved.
337
338
  */
338
339
  createClientForAgent(agentId: string, preferredFallback?: LLMClientWithModel): LLMClientWithModel;
339
- getCurrentModelSettings(sessionId?: string): {
340
+ /**
341
+ * Resolve the effective provider/model for a session.
342
+ *
343
+ * Precedence: agent model override > session preference > global default.
344
+ * The session preference is the user's sticky manual pick (written only by an
345
+ * explicit pick) — agent overrides and the effective model are never written
346
+ * into it. The global default comes from config (pure), never from the provider
347
+ * manager's active state, so a stale override never lingers.
348
+ *
349
+ * When `agentId` is omitted, the current session mode's agent override applies.
350
+ */
351
+ resolveEffectiveProviderModel(sessionId: string, agentId?: string): {
352
+ providerId: string | null;
353
+ model: string | null;
354
+ };
355
+ getCurrentModelSettings(sessionId?: string, agentId?: string): {
340
356
  temperature?: number;
341
357
  topP?: number;
342
358
  topK?: number;
343
359
  maxTokens?: number;
344
360
  supportsVision?: boolean;
345
361
  } | undefined;
346
- getCurrentModelContext(): number;
347
- getModelCompactionThreshold(sessionId: string): number | undefined;
362
+ getCurrentModelContext(sessionId?: string, agentId?: string): number;
363
+ /**
364
+ * Resolve the context window for a session's own provider/model, if set.
365
+ * Exact match first, then fuzzy match (spaces/dashes/underscores variations).
366
+ * Returns undefined when the session has no model or no matching config —
367
+ * callers fall back to the global default context.
368
+ */
369
+ private resolveModelContext;
370
+ getModelCompactionThreshold(sessionId: string, agentId?: string): number | undefined;
348
371
  /**
349
372
  * Get the effective working directory for a session.
350
373
  * Uses workspace path when active, otherwise the project workdir.
@@ -450,7 +473,15 @@ declare class SessionManager {
450
473
  /**
451
474
  * Set session provider/model. Updates DB directly.
452
475
  */
453
- setSessionProvider(sessionId: string, providerId: string | null, providerModel: string | null): Session;
476
+ setSessionProvider(sessionId: string, providerId: string | null, providerModel: string | null, providerManual?: boolean): Session;
477
+ /**
478
+ * Toggle whether the manual pick is currently active (does NOT emit — used as
479
+ * part of larger operations such as mode switches, which emit their own event).
480
+ * Selecting an agent with a model override deactivates the manual pick so the
481
+ * agent's override (its label) wins; a fresh pick or a non-override agent
482
+ * reactivates it.
483
+ */
484
+ setSessionProviderActive(sessionId: string, active: boolean): void;
454
485
  /**
455
486
  * Start a new workflow execution. Cancels any existing active execution first,
456
487
  * then inserts a new row and emits events.
@@ -534,7 +565,8 @@ declare class SessionManager {
534
565
  * Stores promptTokens + completionTokens so the tracked size reflects the
535
566
  * true context occupancy — the last call's output is re-fed into the next
536
567
  * request as an assistant message, so it must count toward the budget.
537
- * maxTokens comes from providerManager.getCurrentModelContext() - the currently selected model's limit.
568
+ * maxTokens comes from the session model's context window (falling back to
569
+ * the currently selected model's limit).
538
570
  */
539
571
  setCurrentContextSize(sessionId: string, promptTokens: number, completionTokens?: number, subAgentId?: string): void;
540
572
  /**