openfox 2.0.31 → 2.0.32

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 (29) hide show
  1. package/dist/{chat-handler-Q62GBC4Z.js → chat-handler-NXK4SYGA.js} +9 -9
  2. package/dist/{chunk-ZRKYDC4O.js → chunk-7CCRQRQ4.js} +18 -28
  3. package/dist/{chunk-UHWRWFLE.js → chunk-BGCDJYNU.js} +2 -2
  4. package/dist/{chunk-JCOLS2ZM.js → chunk-BXUFIMHG.js} +44 -54
  5. package/dist/{chunk-EQUVYCW5.js → chunk-E4EUSGI7.js} +10 -29
  6. package/dist/{chunk-M2YRM64Q.js → chunk-JNSSFTVD.js} +2 -2
  7. package/dist/{chunk-2Q46DWWO.js → chunk-KF75UHK5.js} +44 -52
  8. package/dist/{chunk-SS3F2VYF.js → chunk-OSMUHB5F.js} +1 -6
  9. package/dist/{chunk-2OU2JR6Q.js → chunk-U7MFDM6L.js} +2 -2
  10. package/dist/{chunk-M7M2VH45.js → chunk-WTDCC4IP.js} +30 -2
  11. package/dist/{chunk-O4TED6AJ.js → chunk-YQ3SOPBI.js} +2 -2
  12. package/dist/{chunk-SSWRM5BT.js → chunk-ZMONCXGW.js} +3 -3
  13. package/dist/{chunk-FBGWG4N6.js → chunk-ZPIZLTWU.js} +13 -1
  14. package/dist/cli/dev.js +1 -1
  15. package/dist/cli/index.js +1 -1
  16. package/dist/{compactor-BN5IDIVR.js → compactor-SHEOFZDB.js} +5 -5
  17. package/dist/{events-F5IURVXP.js → events-YLICLPBY.js} +3 -3
  18. package/dist/{orchestrator-7BJEOWTX.js → orchestrator-4FTESO2X.js} +8 -8
  19. package/dist/package.json +1 -1
  20. package/dist/{processor-AFP2CBQI.js → processor-EV3WONAR.js} +9 -9
  21. package/dist/{project-creator-BDDFQM6G.js → project-creator-W6Z7KCMZ.js} +3 -3
  22. package/dist/{projects-VO4PMVZY.js → projects-2XSGA7JG.js} +3 -3
  23. package/dist/{serve-IMGECZ2I.js → serve-CB44TMNB.js} +11 -11
  24. package/dist/server/index.d.ts +0 -8
  25. package/dist/server/index.js +10 -10
  26. package/dist/{server-5Q566V7W.js → server-I5U4MNGB.js} +10 -10
  27. package/dist/{settings-MMEBGS53.js → settings-MTGCEUS7.js} +3 -3
  28. package/dist/{tools-G3KFVM2A.js → tools-EKK2C42A.js} +7 -7
  29. package/package.json +1 -1
@@ -2,11 +2,11 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-UHWRWFLE.js";
5
+ } from "./chunk-BGCDJYNU.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-ZRKYDC4O.js";
9
- import "./chunk-JCOLS2ZM.js";
8
+ } from "./chunk-7CCRQRQ4.js";
9
+ import "./chunk-BXUFIMHG.js";
10
10
  import "./chunk-DL6ZILAF.js";
11
11
  import "./chunk-PBGOZMVY.js";
12
12
  import "./chunk-VRGRAQDG.js";
@@ -17,14 +17,14 @@ import {
17
17
  createSessionRunningMessage
18
18
  } from "./chunk-F4PMNP7S.js";
19
19
  import "./chunk-EU3WWTFH.js";
20
- import "./chunk-M2YRM64Q.js";
21
- import "./chunk-O4TED6AJ.js";
22
- import "./chunk-SS3F2VYF.js";
20
+ import "./chunk-JNSSFTVD.js";
21
+ import "./chunk-YQ3SOPBI.js";
22
+ import "./chunk-OSMUHB5F.js";
23
23
  import {
24
24
  getEventStore
25
- } from "./chunk-M7M2VH45.js";
25
+ } from "./chunk-WTDCC4IP.js";
26
26
  import "./chunk-6PLAWCHQ.js";
27
- import "./chunk-FBGWG4N6.js";
27
+ import "./chunk-ZPIZLTWU.js";
28
28
  import "./chunk-J2GP3J3X.js";
29
29
  import "./chunk-Z4FMBCJO.js";
30
30
  import "./chunk-ZJ4FP6RS.js";
@@ -145,4 +145,4 @@ export {
145
145
  startChatSession,
146
146
  stopSessionExecution
147
147
  };
148
- //# sourceMappingURL=chat-handler-Q62GBC4Z.js.map
148
+ //# sourceMappingURL=chat-handler-NXK4SYGA.js.map
@@ -1,20 +1,18 @@
1
1
  import {
2
2
  PathAccessDeniedError,
3
- assembleAgentRequest,
3
+ buildCachedPrompt,
4
4
  computeDynamicContextHash,
5
5
  createAssemblyResult,
6
- createToolRegistry,
7
6
  findAgentById,
8
7
  getAllInstructions,
9
8
  getConversationMessages,
10
9
  getEnabledSkillMetadata,
11
- getSubAgents,
12
10
  getToolFingerprint,
13
11
  getToolRegistryForAgent,
14
12
  loadAllAgentsDefault,
15
13
  processEventsForConversation,
16
14
  runTopLevelAgentLoop
17
- } from "./chunk-JCOLS2ZM.js";
15
+ } from "./chunk-BXUFIMHG.js";
18
16
  import {
19
17
  TurnMetrics,
20
18
  WORKFLOW_KICKOFF_PROMPT,
@@ -22,13 +20,13 @@ import {
22
20
  buildAgentSmallReminder,
23
21
  createChatDoneEvent,
24
22
  createMessageStartEvent
25
- } from "./chunk-SS3F2VYF.js";
23
+ } from "./chunk-OSMUHB5F.js";
26
24
  import {
27
25
  getCurrentContextWindowId,
28
26
  getCurrentWindowMessageOptions,
29
27
  getEventStore,
30
28
  getRuntimeConfig
31
- } from "./chunk-M7M2VH45.js";
29
+ } from "./chunk-WTDCC4IP.js";
32
30
  import {
33
31
  buildSnapshotFromSessionState
34
32
  } from "./chunk-6PLAWCHQ.js";
@@ -41,7 +39,7 @@ import {
41
39
 
42
40
  // src/server/chat/orchestrator.ts
43
41
  async function buildRetryPatterns() {
44
- const { getSetting, SETTINGS_KEYS } = await import("./settings-MMEBGS53.js");
42
+ const { getSetting, SETTINGS_KEYS } = await import("./settings-MTGCEUS7.js");
45
43
  const raw = getSetting(SETTINGS_KEYS.RETRY_PATTERNS);
46
44
  if (!raw) {
47
45
  const oldXmlProtection = getSetting("llm.disableXmlProtection");
@@ -209,7 +207,6 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
209
207
  const allAgents = await loadAllAgentsDefault();
210
208
  const agentDef = findAgentById(agentId, allAgents) ?? findAgentById("planner", allAgents);
211
209
  injectAgentReminder(options.sessionId, agentDef);
212
- const subAgentDefs = getSubAgents(allAgents);
213
210
  const { content: instructionContent } = await getAllInstructions(
214
211
  options.sessionManager.requireSession(options.sessionId).workdir,
215
212
  options.sessionManager.requireSession(options.sessionId).projectId
@@ -228,44 +225,37 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
228
225
  statsIdentity,
229
226
  signal: options.signal,
230
227
  onMessage: options.onMessage,
231
- assembleRequest: (input) => {
228
+ assembleRequest: async (input) => {
232
229
  const cached = options.sessionManager.getCachedPrompt(options.sessionId);
233
- const liveTools = createToolRegistry().definitions;
234
- const toolFingerprint = getToolFingerprint(liveTools);
235
230
  if (cached) {
231
+ const toolFingerprint = getToolFingerprint(cached.tools);
236
232
  const currentHash = computeDynamicContextHash(instructionContent ?? "", skills, toolFingerprint);
237
233
  if (cached.hash !== currentHash) {
238
234
  logger.debug("assembleRequest: hash mismatch", {
239
235
  sessionId: options.sessionId,
240
236
  cachedHash: cached.hash,
241
237
  currentHash,
242
- cachedTools: cached.tools.map((t) => t.function.name),
243
- liveTools: liveTools.map((t) => t.function.name)
238
+ cachedTools: cached.tools.map((t) => t.function.name)
244
239
  });
245
240
  options.sessionManager.setDynamicContextChanged(options.sessionId, true);
246
- options.sessionManager.setDebugDump(options.sessionId, {
247
- cachedPrompt: cached.systemPrompt.slice(0, 5e3),
248
- cachedTools: cached.tools.map((t) => t.function.name),
249
- liveTools: liveTools.map((t) => t.function.name)
250
- });
251
241
  }
252
242
  return createAssemblyResult({
253
243
  systemPrompt: cached.systemPrompt,
254
244
  messages: input.messages,
255
245
  injectedFiles: input.injectedFiles,
256
- requestTools: cached.tools.length > 0 ? cached.tools : liveTools,
246
+ requestTools: cached.tools,
257
247
  toolChoice: input.toolChoice
258
248
  });
259
249
  }
260
- const result = assembleAgentRequest({
261
- ...input,
262
- agentDef,
263
- subAgentDefs,
264
- modelName: options.llmClient.getModel()
250
+ const result = await buildCachedPrompt(options.sessionManager, options.sessionId, agentDef);
251
+ options.sessionManager.setCachedPrompt(options.sessionId, result.systemPrompt, result.tools, result.hash);
252
+ return createAssemblyResult({
253
+ systemPrompt: result.systemPrompt,
254
+ messages: input.messages,
255
+ injectedFiles: input.injectedFiles,
256
+ requestTools: result.tools,
257
+ toolChoice: input.toolChoice
265
258
  });
266
- const hash = computeDynamicContextHash(instructionContent ?? "", skills, toolFingerprint);
267
- options.sessionManager.setCachedPrompt(options.sessionId, result.systemPrompt, result.tools, hash);
268
- return result;
269
259
  },
270
260
  getToolRegistry: () => getToolRegistryForAgent(agentDef),
271
261
  getConversationMessages: buildGetConversationMessages(options.sessionId, options.llmClient, append),
@@ -320,4 +310,4 @@ export {
320
310
  runAgentTurn,
321
311
  injectWorkflowKickoffIfNeeded
322
312
  };
323
- //# sourceMappingURL=chunk-ZRKYDC4O.js.map
313
+ //# sourceMappingURL=chunk-7CCRQRQ4.js.map
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  getEventStore,
10
10
  updateSessionMetadata
11
- } from "./chunk-M7M2VH45.js";
11
+ } from "./chunk-WTDCC4IP.js";
12
12
  import {
13
13
  buildMessagesFromStoredEvents,
14
14
  foldPendingConfirmations
@@ -174,4 +174,4 @@ export {
174
174
  buildRunChatTurnParams,
175
175
  generateSessionNameForSession
176
176
  };
177
- //# sourceMappingURL=chunk-UHWRWFLE.js.map
177
+ //# sourceMappingURL=chunk-BGCDJYNU.js.map
@@ -32,15 +32,14 @@ import {
32
32
  SETTINGS_KEYS,
33
33
  deleteSetting,
34
34
  getSetting
35
- } from "./chunk-M2YRM64Q.js";
35
+ } from "./chunk-JNSSFTVD.js";
36
36
  import {
37
37
  getProject
38
- } from "./chunk-O4TED6AJ.js";
38
+ } from "./chunk-YQ3SOPBI.js";
39
39
  import {
40
40
  COMPACTION_PROMPT,
41
41
  TurnMetrics,
42
42
  buildBasePrompt,
43
- buildSubAgentSystemPrompt,
44
43
  buildTopLevelSystemPrompt,
45
44
  computeEffectiveTools,
46
45
  consumeStreamGenerator,
@@ -50,13 +49,13 @@ import {
50
49
  createToolCallEvent,
51
50
  createToolResultEvent,
52
51
  streamLLMPure
53
- } from "./chunk-SS3F2VYF.js";
52
+ } from "./chunk-OSMUHB5F.js";
54
53
  import {
55
54
  getCurrentContextWindowId,
56
55
  getCurrentWindowMessageOptions,
57
56
  getEventStore,
58
57
  getRuntimeConfig
59
- } from "./chunk-M7M2VH45.js";
58
+ } from "./chunk-WTDCC4IP.js";
60
59
  import {
61
60
  buildContextMessagesFromEventHistory,
62
61
  foldContextState,
@@ -2490,7 +2489,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2490
2489
  const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
2491
2490
  const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
2492
2491
  if (signal?.aborted) throw new Error("Aborted");
2493
- const assembledRequest = config.assembleRequest({
2492
+ const assembledRequest = await config.assembleRequest({
2494
2493
  workdir: session.workdir,
2495
2494
  messages: requestMessages,
2496
2495
  injectedFiles,
@@ -2581,7 +2580,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2581
2580
  sessionManager.setCurrentContextSize(sessionId, result.usage.promptTokens);
2582
2581
  if (!compacting) {
2583
2582
  const contextState2 = sessionManager.getContextState(sessionId);
2584
- const { shouldCompact, appendCompactionPrompt } = await import("./compactor-BN5IDIVR.js");
2583
+ const { shouldCompact, appendCompactionPrompt } = await import("./compactor-SHEOFZDB.js");
2585
2584
  if (shouldCompact(contextState2.currentTokens, contextState2.maxTokens, runtimeConfig.context.compactionThreshold)) {
2586
2585
  appendCompactionPrompt(sessionId, append);
2587
2586
  compacting = true;
@@ -2833,32 +2832,6 @@ function createAssemblyResult(input) {
2833
2832
  tools: input.requestTools
2834
2833
  };
2835
2834
  }
2836
- function buildAssemblyInput(systemPrompt, baseInput) {
2837
- return createAssemblyResult({
2838
- systemPrompt,
2839
- messages: baseInput.messages,
2840
- injectedFiles: baseInput.injectedFiles,
2841
- requestTools: baseInput.requestTools ?? baseInput.promptTools,
2842
- toolChoice: baseInput.toolChoice ?? "auto",
2843
- ...baseInput.customInstructions ? { customInstructions: baseInput.customInstructions } : {},
2844
- ...baseInput.skills && baseInput.skills.length > 0 ? { skills: baseInput.skills } : {}
2845
- });
2846
- }
2847
- function assembleAgentRequest(input) {
2848
- const { agentDef, subAgentDefs, ...baseInput } = input;
2849
- if (agentDef.metadata.subagent) {
2850
- const systemPrompt2 = buildSubAgentSystemPrompt(baseInput.workdir, agentDef, baseInput.skills, baseInput.modelName);
2851
- return buildAssemblyInput(systemPrompt2, baseInput);
2852
- }
2853
- const systemPrompt = buildTopLevelSystemPrompt(
2854
- baseInput.workdir,
2855
- baseInput.customInstructions,
2856
- baseInput.skills,
2857
- subAgentDefs,
2858
- baseInput.modelName
2859
- );
2860
- return buildAssemblyInput(systemPrompt, baseInput);
2861
- }
2862
2835
 
2863
2836
  // src/server/llm/vision-fallback.ts
2864
2837
  var IMAGE_PROMPT = `Describe this image in detail. Focus on:
@@ -3290,7 +3263,7 @@ async function executeSubAgent(options) {
3290
3263
  statsIdentity,
3291
3264
  signal,
3292
3265
  onMessage,
3293
- assembleRequest: (input) => createAssemblyResult({
3266
+ assembleRequest: async (input) => createAssemblyResult({
3294
3267
  systemPrompt,
3295
3268
  messages: input.messages,
3296
3269
  injectedFiles: input.injectedFiles,
@@ -3386,7 +3359,7 @@ var callSubAgentTool = {
3386
3359
  };
3387
3360
  }
3388
3361
  try {
3389
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-G3KFVM2A.js");
3362
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-EKK2C42A.js");
3390
3363
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3391
3364
  const turnMetrics = new TurnMetrics();
3392
3365
  const result = await executeSubAgent({
@@ -4186,32 +4159,49 @@ function computeDynamicContextHash(instructionContent, skills, toolFingerprint)
4186
4159
  function getToolFingerprint(tools) {
4187
4160
  return tools.map((t) => `${t.function.name}:${JSON.stringify(t.function.parameters)}`).sort().join("|");
4188
4161
  }
4189
- async function computeContextHash(sessionManager, sessionId) {
4162
+ async function loadSessionContext(sessionManager, sessionId) {
4190
4163
  const session = sessionManager.requireSession(sessionId);
4191
4164
  const { content: instructionContent } = await getAllInstructions(session.workdir, session.projectId);
4192
4165
  const runtimeConfig = getRuntimeConfig();
4193
4166
  const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
4194
4167
  const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
4195
- const { createToolRegistry: createToolRegistry2 } = await import("./tools-G3KFVM2A.js");
4196
- const allTools = createToolRegistry2().definitions;
4197
- const toolFingerprint = getToolFingerprint(allTools);
4168
+ return { instructionContent: instructionContent ?? "", skills };
4169
+ }
4170
+ function resolveAgentDef2(sessionManager, sessionId) {
4171
+ return loadAllAgentsDefault().then((allAgents) => {
4172
+ const session = sessionManager.requireSession(sessionId);
4173
+ return findAgentById(session.mode, allAgents) ?? findAgentById("planner", allAgents);
4174
+ });
4175
+ }
4176
+ async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
4177
+ const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
4178
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-EKK2C42A.js");
4179
+ const tools = getToolRegistryForAgent2(agentDef).definitions;
4180
+ const toolFingerprint = getToolFingerprint(tools);
4181
+ const allAgents = await loadAllAgentsDefault();
4182
+ const subAgentDefs = getSubAgents(allAgents);
4183
+ const session = sessionManager.requireSession(sessionId);
4184
+ const systemPrompt = buildTopLevelSystemPrompt(session.workdir, instructionContent || void 0, skills, subAgentDefs);
4198
4185
  const hash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
4199
- return { hash, instructionContent, skills, allTools };
4186
+ return { systemPrompt, tools, hash };
4187
+ }
4188
+ async function computeSessionHash(sessionManager, sessionId) {
4189
+ const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
4190
+ const agentDef = await resolveAgentDef2(sessionManager, sessionId);
4191
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-EKK2C42A.js");
4192
+ const tools = getToolRegistryForAgent2(agentDef).definitions;
4193
+ const toolFingerprint = getToolFingerprint(tools);
4194
+ return computeDynamicContextHash(instructionContent, skills, toolFingerprint);
4200
4195
  }
4201
4196
  async function applyDynamicContext(sessionManager, sessionId) {
4202
- const { hash, instructionContent, skills, allTools } = await computeContextHash(sessionManager, sessionId);
4197
+ const session = sessionManager.requireSession(sessionId);
4203
4198
  const allAgents = await loadAllAgentsDefault();
4204
- const subAgentDefs = getSubAgents(allAgents);
4205
- const systemPrompt = buildTopLevelSystemPrompt(
4206
- sessionManager.requireSession(sessionId).workdir,
4207
- instructionContent || void 0,
4208
- skills,
4209
- subAgentDefs
4210
- );
4211
- sessionManager.setCachedPrompt(sessionId, systemPrompt, allTools, hash);
4199
+ const agentDef = findAgentById(session.mode, allAgents) ?? findAgentById("planner", allAgents);
4200
+ const { systemPrompt, tools, hash } = await buildCachedPrompt(sessionManager, sessionId, agentDef);
4201
+ sessionManager.setCachedPrompt(sessionId, systemPrompt, tools, hash);
4212
4202
  sessionManager.setDynamicContextChanged(sessionId, false);
4213
4203
  sessionManager.clearDebugDump(sessionId);
4214
- logger.debug("applyDynamicContext done", { sessionId, hash, toolCount: allTools.length });
4204
+ logger.debug("applyDynamicContext done", { sessionId, hash, toolCount: tools.length });
4215
4205
  }
4216
4206
 
4217
4207
  // src/server/tools/mcp-config.ts
@@ -4305,7 +4295,7 @@ var mcpConfigTool = createTool(
4305
4295
  await saveGlobalConfig(mcpConfigMode, { ...globalConfig, mcpServers: updated });
4306
4296
  }
4307
4297
  async function rebuildTools() {
4308
- const { setMcpTools: setMcpTools2 } = await import("./tools-G3KFVM2A.js");
4298
+ const { setMcpTools: setMcpTools2 } = await import("./tools-EKK2C42A.js");
4309
4299
  const mcpTools = createMcpTools(mcpManagerForTools);
4310
4300
  setMcpTools2(mcpTools);
4311
4301
  }
@@ -4666,7 +4656,6 @@ export {
4666
4656
  getDefaultAgentIds,
4667
4657
  isDefaultAgent,
4668
4658
  findAgentById,
4669
- getSubAgents,
4670
4659
  getTopLevelAgents,
4671
4660
  agentExists,
4672
4661
  saveAgent,
@@ -4688,7 +4677,6 @@ export {
4688
4677
  deleteProjectSkill,
4689
4678
  runTopLevelAgentLoop,
4690
4679
  createAssemblyResult,
4691
- assembleAgentRequest,
4692
4680
  getConversationMessages,
4693
4681
  processEventsForConversation,
4694
4682
  executeSubAgent,
@@ -4696,6 +4684,8 @@ export {
4696
4684
  stepDoneTool,
4697
4685
  computeDynamicContextHash,
4698
4686
  getToolFingerprint,
4687
+ buildCachedPrompt,
4688
+ computeSessionHash,
4699
4689
  applyDynamicContext,
4700
4690
  setMcpManagerForTools,
4701
4691
  setMcpConfigMode,
@@ -4709,4 +4699,4 @@ export {
4709
4699
  getToolRegistryForAgent,
4710
4700
  createToolRegistry
4711
4701
  };
4712
- //# sourceMappingURL=chunk-JCOLS2ZM.js.map
4702
+ //# sourceMappingURL=chunk-BXUFIMHG.js.map
@@ -2,24 +2,21 @@ import {
2
2
  injectWorkflowKickoffIfNeeded,
3
3
  runAgentTurn,
4
4
  runChatTurn
5
- } from "./chunk-ZRKYDC4O.js";
5
+ } from "./chunk-7CCRQRQ4.js";
6
6
  import {
7
7
  applyDynamicContext,
8
8
  checkAborted,
9
- computeDynamicContextHash,
9
+ computeSessionHash,
10
10
  deleteItemFromDir,
11
11
  devServerManager,
12
12
  executeSubAgent,
13
13
  findAgentById,
14
- getAllInstructions,
15
- getEnabledSkillMetadata,
16
- getToolFingerprint,
17
14
  getToolRegistryForAgent,
18
15
  jsonSerializer,
19
16
  loadAllAgentsDefault,
20
17
  saveItemToDir,
21
18
  spawnShellProcess
22
- } from "./chunk-JCOLS2ZM.js";
19
+ } from "./chunk-BXUFIMHG.js";
23
20
  import {
24
21
  getPlatformShell,
25
22
  onProcessEvent
@@ -43,16 +40,16 @@ import {
43
40
  } from "./chunk-EU3WWTFH.js";
44
41
  import {
45
42
  appendCompactionPrompt
46
- } from "./chunk-SSWRM5BT.js";
43
+ } from "./chunk-ZMONCXGW.js";
47
44
  import {
48
45
  TurnMetrics,
49
46
  createMessageStartEvent
50
- } from "./chunk-SS3F2VYF.js";
47
+ } from "./chunk-OSMUHB5F.js";
51
48
  import {
52
49
  getCurrentContextWindowId,
53
50
  getEventStore,
54
51
  getRuntimeConfig
55
- } from "./chunk-M7M2VH45.js";
52
+ } from "./chunk-WTDCC4IP.js";
56
53
  import {
57
54
  createLLMClient
58
55
  } from "./chunk-QYP6MOB5.js";
@@ -1773,14 +1770,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1773
1770
  (async () => {
1774
1771
  try {
1775
1772
  await mcpReadyPromise;
1776
- const { content: instructionContent } = await getAllInstructions(session.workdir, session.projectId);
1777
- const runtimeConfig = getRuntimeConfig();
1778
- const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
1779
- const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
1780
- const { createToolRegistry } = await import("./tools-G3KFVM2A.js");
1781
- const allTools = createToolRegistry().definitions;
1782
- const toolFingerprint = getToolFingerprint(allTools);
1783
- const currentHash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
1773
+ const currentHash = await computeSessionHash(sessionManager, session.id);
1784
1774
  if (currentHash !== cachedHash) {
1785
1775
  sessionManager.setDynamicContextChanged(session.id, true);
1786
1776
  sendContextState();
@@ -1842,26 +1832,17 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1842
1832
  return;
1843
1833
  }
1844
1834
  const sessionId = client.activeSessionId;
1845
- const session = sessionManager.requireSession(sessionId);
1846
1835
  (async () => {
1847
1836
  try {
1848
1837
  await mcpReadyPromise;
1849
- const { content: instructionContent } = await getAllInstructions(session.workdir, session.projectId);
1850
- const runtimeConfig = getRuntimeConfig();
1851
- const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
1852
- const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
1853
- const { createToolRegistry } = await import("./tools-G3KFVM2A.js");
1854
- const allTools = createToolRegistry().definitions;
1855
- const toolFingerprint = getToolFingerprint(allTools);
1856
- const currentHash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
1838
+ const currentHash = await computeSessionHash(sessionManager, sessionId);
1857
1839
  const cachedHash = sessionManager.getCachedPrompt(sessionId)?.hash;
1858
1840
  if (cachedHash) {
1859
1841
  if (currentHash !== cachedHash) {
1860
1842
  logger.debug("checkDynamic: hash mismatch", {
1861
1843
  sessionId,
1862
1844
  cachedHash,
1863
- currentHash,
1864
- toolCount: allTools.length
1845
+ currentHash
1865
1846
  });
1866
1847
  if (!sessionManager.getDynamicContextChanged(sessionId)) {
1867
1848
  sessionManager.setDynamicContextChanged(sessionId, true);
@@ -2071,4 +2052,4 @@ export {
2071
2052
  signalMcpReady,
2072
2053
  createWebSocketServer
2073
2054
  };
2074
- //# sourceMappingURL=chunk-EQUVYCW5.js.map
2055
+ //# sourceMappingURL=chunk-E4EUSGI7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getDatabase
3
- } from "./chunk-FBGWG4N6.js";
3
+ } from "./chunk-ZPIZLTWU.js";
4
4
 
5
5
  // src/server/db/settings.ts
6
6
  var SETTINGS_KEYS = {
@@ -90,4 +90,4 @@ export {
90
90
  deleteSetting,
91
91
  getAllSettings
92
92
  };
93
- //# sourceMappingURL=chunk-M2YRM64Q.js.map
93
+ //# sourceMappingURL=chunk-JNSSFTVD.js.map