openfox 2.0.132 → 2.0.134

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 (85) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/CHANGELOG.md +31 -0
  3. package/dist/agent-defaults/code-reviewer.agent.md +1 -0
  4. package/dist/agent-defaults/explorer.agent.md +1 -0
  5. package/dist/agent-defaults/verifier.agent.md +1 -0
  6. package/dist/{chat-handler-T47GATL5.js → chat-handler-YCZE2XEJ.js} +23 -22
  7. package/dist/chunk-24YKXKCG.js +35 -0
  8. package/dist/chunk-2OMGR7LN.js +45 -0
  9. package/dist/{chunk-ZSBNXJZ5.js → chunk-5IXCCMFU.js} +342 -188
  10. package/dist/{chunk-MQMPIXON.js → chunk-5UMXFLET.js} +3 -3
  11. package/dist/{chunk-5JWJEZJ3.js → chunk-5UQ4CKOA.js} +2 -2
  12. package/dist/{chunk-GVOOOV7M.js → chunk-7HGBJFIJ.js} +44 -25
  13. package/dist/{chunk-7JVBDBXE.js → chunk-7QMWYNVF.js} +2 -2
  14. package/dist/{chunk-P57IBMK4.js → chunk-AATMPL7S.js} +4 -4
  15. package/dist/{chunk-ZL4IAFF3.js → chunk-BZND27IB.js} +3 -3
  16. package/dist/{chunk-FGNJMKDV.js → chunk-CSYOWFPU.js} +5 -5
  17. package/dist/{chunk-LQKXJPKP.js → chunk-CTWZPN7G.js} +5 -1
  18. package/dist/{chunk-BKMWZTNO.js → chunk-DWA4IE65.js} +14 -2
  19. package/dist/{chunk-RRUSYVQD.js → chunk-FAQDLL2X.js} +8 -8
  20. package/dist/{chunk-HCYSGLY2.js → chunk-HF3NDXB4.js} +1 -1
  21. package/dist/{chunk-6EZDW4JS.js → chunk-J3NMNYGM.js} +2 -2
  22. package/dist/{chunk-HXHPKGJE.js → chunk-J5HOUEPE.js} +614 -157
  23. package/dist/{chunk-RUFXKUOL.js → chunk-M4J2L4VH.js} +132 -45
  24. package/dist/{chunk-M5T4RDPJ.js → chunk-MEEUXRFL.js} +2 -2
  25. package/dist/{chunk-EOHEDEIH.js → chunk-MRE4OYKI.js} +69 -27
  26. package/dist/{chunk-MGEYAYGU.js → chunk-O3RCSKUH.js} +2 -2
  27. package/dist/{chunk-ELYHHEYL.js → chunk-ORCQ3EXQ.js} +2 -2
  28. package/dist/{chunk-FEIRWXLX.js → chunk-OZWHRBDY.js} +64 -17
  29. package/dist/{chunk-TACWRDDC.js → chunk-QDARWVQ2.js} +2 -2
  30. package/dist/{chunk-VXG3AFFY.js → chunk-QICVOQNX.js} +8 -8
  31. package/dist/chunk-QTLYD2FF.js +7 -0
  32. package/dist/{chunk-Y6ZGHOKM.js → chunk-YLVOU7T7.js} +4 -4
  33. package/dist/{chunk-GFW2HWJ6.js → chunk-YOPXAI2W.js} +37 -16
  34. package/dist/{chunk-CLDCHOEA.js → chunk-ZMK4VX7V.js} +2 -2
  35. package/dist/{chunk-KWAHD2JA.js → chunk-ZTBKMVV6.js} +2 -2
  36. package/dist/cli/dev.js +4 -1
  37. package/dist/cli/index.js +4 -1
  38. package/dist/{client-2K6PPPJJ.js → client-VVYOWXRR.js} +4 -4
  39. package/dist/{compactor-OEJAA2YP.js → compactor-PD6DQ4NY.js} +9 -9
  40. package/dist/{dynamic-context-NJZKAZE3.js → dynamic-context-WKEXQCTK.js} +10 -10
  41. package/dist/{events-ZJPRGVL2.js → events-3WSNI7XC.js} +6 -6
  42. package/dist/{folding-QRZOHY2I.js → folding-H7JTX6KI.js} +4 -4
  43. package/dist/{http-client-P4XTKAZA.js → http-client-A445WYZU.js} +3 -3
  44. package/dist/{install-VA2F6X6Z.js → install-AVTFA344.js} +64 -15
  45. package/dist/{launch-6I5ADTVT.js → launch-FJ65HRV4.js} +23 -22
  46. package/dist/{manager-TMBFBCQL.js → manager-ZACEUL5P.js} +4 -4
  47. package/dist/{mcp-YU7AM3UV.js → mcp-SQ4DOGPT.js} +22 -9
  48. package/dist/{orchestrator-GX22Y5EM.js → orchestrator-OT66EDXO.js} +22 -21
  49. package/dist/package.json +3 -1
  50. package/dist/{path-security-CBACXAMS.js → path-security-5CFMMULR.js} +10 -10
  51. package/dist/{platform-5LQXOZO3.js → platform-XPMZKAUB.js} +3 -3
  52. package/dist/{processor-FMEULCNQ.js → processor-CHMHMMIE.js} +37 -21
  53. package/dist/{project-creator-6AGQTNXB.js → project-creator-T3A4H3YV.js} +42 -29
  54. package/dist/{protocol-BMUoqwYH.d.ts → protocol-Nr_H1_oC.d.ts} +3 -1
  55. package/dist/{protocol-Y7MRKRUO.js → protocol-XO4ZROAU.js} +3 -3
  56. package/dist/provider/index.d.ts +4 -4
  57. package/dist/provider-JWUNG2TD.js +507 -0
  58. package/dist/{provider-manager-BO5ZBG3T.js → provider-manager-2KKZ37XJ.js} +5 -5
  59. package/dist/pwa-V5PFB4OQ.js +502 -0
  60. package/dist/{registry-CMSSZHDC.js → registry-BEIR7Y5G.js} +3 -3
  61. package/dist/{serve-BFGHUM4Y.js → serve-HSDVY37K.js} +47 -36
  62. package/dist/server/index.d.ts +3 -3
  63. package/dist/server/index.js +27 -26
  64. package/dist/{server-WPWUYB6I.js → server-3UVLECD5.js} +26 -25
  65. package/dist/{service-WKABQHKL.js → service-M77VWL2M.js} +97 -32
  66. package/dist/{service-O3LCO3TQ.js → service-XIUNS5XV.js} +7 -6
  67. package/dist/{session-overrides-OECQYRDK.js → session-overrides-Y5B4XQPU.js} +5 -5
  68. package/dist/{sessions-NMPX5ICI.js → sessions-IGINPPBP.js} +4 -4
  69. package/dist/{settings-MDCRNQBY.js → settings-ZJPM6PQV.js} +2 -2
  70. package/dist/shared/index.d.ts +31 -4
  71. package/dist/shared/index.js +16 -2
  72. package/dist/{tasks-WOC3QUFA.js → tasks-3JJWJJ3X.js} +34 -18
  73. package/dist/{tools-CW6POKUL.js → tools-WWIWD3O7.js} +20 -19
  74. package/dist/{types-CoY8Ka1C.d.ts → types-BlQjLBui.d.ts} +1 -1
  75. package/dist/{types-BIkpxjaj.d.ts → types-G10ho8PT.d.ts} +1 -1
  76. package/dist/update-Q6SH7UP2.js +76 -0
  77. package/dist/web/assets/index-C48qmBAI.js +313 -0
  78. package/dist/web/index.html +1 -1
  79. package/dist/web/sw.js +1 -1
  80. package/package.json +3 -1
  81. package/dist/chunk-55RHB5JB.js +0 -7
  82. package/dist/provider-NWRGNGS3.js +0 -403
  83. package/dist/pwa-2GRFSXD7.js +0 -363
  84. package/dist/update-VPCDKFLD.js +0 -49
  85. package/dist/web/assets/index-Bx5r3aJx.js +0 -310
@@ -11,11 +11,11 @@ import {
11
11
  } from "./chunk-I72ACQ6R.js";
12
12
  import {
13
13
  getPlatformShell
14
- } from "./chunk-MGEYAYGU.js";
14
+ } from "./chunk-O3RCSKUH.js";
15
15
  import {
16
16
  SETTINGS_KEYS,
17
17
  getSetting
18
- } from "./chunk-LQKXJPKP.js";
18
+ } from "./chunk-CTWZPN7G.js";
19
19
 
20
20
  // src/server/utils/shell.ts
21
21
  import { spawn } from "child_process";
@@ -214,4 +214,4 @@ export {
214
214
  getSessionProcesses2 as getSessionProcesses,
215
215
  getProcessLogs
216
216
  };
217
- //# sourceMappingURL=chunk-MQMPIXON.js.map
217
+ //# sourceMappingURL=chunk-5UMXFLET.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-OA2FURC3.js";
5
5
  import {
6
6
  createLLMClient
7
- } from "./chunk-CLDCHOEA.js";
7
+ } from "./chunk-ZMK4VX7V.js";
8
8
  import {
9
9
  getModelProfile
10
10
  } from "./chunk-TS5WKTFB.js";
@@ -895,4 +895,4 @@ export {
895
895
  parseDefaultModelSelection,
896
896
  createProviderManager
897
897
  };
898
- //# sourceMappingURL=chunk-5JWJEZJ3.js.map
898
+ //# sourceMappingURL=chunk-5UQ4CKOA.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  runAgentTurn
3
- } from "./chunk-GFW2HWJ6.js";
3
+ } from "./chunk-YOPXAI2W.js";
4
4
  import {
5
5
  executeSubAgent,
6
6
  getToolRegistryForAgent
7
- } from "./chunk-HXHPKGJE.js";
7
+ } from "./chunk-J5HOUEPE.js";
8
8
  import {
9
9
  gitSpawnEnv
10
10
  } from "./chunk-J7GAZGZT.js";
@@ -14,8 +14,9 @@ import {
14
14
  loadDefaultWorkflows,
15
15
  loadProjectWorkflows,
16
16
  loadUserWorkflows,
17
- normalizeWorkflowScope
18
- } from "./chunk-FEIRWXLX.js";
17
+ normalizeWorkflowScope,
18
+ serverT
19
+ } from "./chunk-OZWHRBDY.js";
19
20
  import {
20
21
  TurnMetrics,
21
22
  createMessageStartEvent
@@ -24,27 +25,27 @@ import {
24
25
  checkAborted,
25
26
  decodeUtf8,
26
27
  spawnShellProcess
27
- } from "./chunk-MQMPIXON.js";
28
+ } from "./chunk-5UMXFLET.js";
28
29
  import {
29
30
  terminateProcessTree
30
31
  } from "./chunk-I72ACQ6R.js";
31
32
  import {
32
33
  getCurrentContextWindowId,
33
34
  getEventStore
34
- } from "./chunk-FGNJMKDV.js";
35
+ } from "./chunk-CSYOWFPU.js";
35
36
  import {
36
37
  findAgentById,
37
38
  getRuntimeConfig,
38
39
  loadAllAgentsDefault,
39
40
  resolveDefaultAgentId
40
- } from "./chunk-ELYHHEYL.js";
41
+ } from "./chunk-ORCQ3EXQ.js";
41
42
  import {
42
43
  createChatMessageMessage,
43
44
  createSessionRunningMessage
44
- } from "./chunk-P57IBMK4.js";
45
+ } from "./chunk-AATMPL7S.js";
45
46
  import {
46
47
  LLMError
47
- } from "./chunk-6EZDW4JS.js";
48
+ } from "./chunk-J3NMNYGM.js";
48
49
  import {
49
50
  logger
50
51
  } from "./chunk-K44MW7JJ.js";
@@ -53,7 +54,7 @@ import {
53
54
  } from "./chunk-7OHXF5GW.js";
54
55
  import {
55
56
  createServerMessage
56
- } from "./chunk-HCYSGLY2.js";
57
+ } from "./chunk-HF3NDXB4.js";
57
58
  import {
58
59
  getGlobalConfigDir
59
60
  } from "./chunk-CQGTEGKL.js";
@@ -274,6 +275,21 @@ function findMatchingTransition(transitions, stepOutcome, metadataEntries) {
274
275
  }
275
276
  return null;
276
277
  }
278
+ var STEP_DONE_NUDGE = "You haven't called step_done(). If you haven't finished the task, continue and when you're finished call step_done()";
279
+ var STEP_DONE_REMINDER = "If you have finished the task, call step_done()";
280
+ function isStepTransitionSatisfied(transitions, metadataEntries, currentStepId) {
281
+ const fired = findMatchingTransition(transitions, null, metadataEntries);
282
+ return fired !== null && fired.goto !== currentStepId;
283
+ }
284
+ function buildAgentNudge(nudgePrompt, templateCtx, transitions, metadataEntries, currentStepId) {
285
+ const transitionSatisfied = isStepTransitionSatisfied(transitions, metadataEntries, currentStepId);
286
+ const parts = [];
287
+ if (nudgePrompt && !transitionSatisfied) {
288
+ parts.push(resolveTemplate(nudgePrompt, templateCtx));
289
+ }
290
+ parts.push(transitionSatisfied ? STEP_DONE_REMINDER : STEP_DONE_NUDGE);
291
+ return parts.join("\n\n");
292
+ }
277
293
  var DEFAULT_USER_RESULT = "continue";
278
294
  var CONTINUE_CHOICE_ID = "continue";
279
295
  function userStepChoices(step) {
@@ -499,7 +515,6 @@ async function executeWorkflow(workflow, options, subGroup) {
499
515
  case "agent": {
500
516
  const agentStep = step;
501
517
  const STEP_DONE_PROMPT = "\n\nOnce you're done, call step_done()";
502
- const STEP_DONE_NUDGE = "You haven't called step_done(). If you haven't finished the task, continue and when you're finished call step_done()";
503
518
  const isResumingCurrentStep = isResume && step.id === resumeFromStep && !resumeConsumed;
504
519
  let promptContent;
505
520
  let nudgeContent;
@@ -532,13 +547,13 @@ async function executeWorkflow(workflow, options, subGroup) {
532
547
  );
533
548
  }
534
549
  } else if (firstEntryForStep.has(step.id) && !isResumingCurrentStep) {
535
- const parts = [];
536
- if (agentStep.nudgePrompt) {
537
- const resolvedNudge = resolveTemplate(agentStep.nudgePrompt, templateCtx);
538
- parts.push(resolvedNudge);
539
- }
540
- parts.push(STEP_DONE_NUDGE);
541
- nudgeContent = parts.join("\n\n");
550
+ nudgeContent = buildAgentNudge(
551
+ agentStep.nudgePrompt,
552
+ templateCtx,
553
+ step.transitions,
554
+ session.metadataEntries,
555
+ step.id
556
+ );
542
557
  emitWorkflowMessage(eventStore, sessionId, nudgeContent, currentWindowMessageOptions, onMessage);
543
558
  }
544
559
  const blockOnLLMFailure = (errorMessage) => {
@@ -665,9 +680,10 @@ async function executeWorkflow(workflow, options, subGroup) {
665
680
  const timeout = shellStep.timeout ?? 6e4;
666
681
  const successCodes = shellStep.successExitCodes ?? [0];
667
682
  const shellMsgId = crypto.randomUUID();
683
+ const runningContent = serverT({ en: "Running: `{{command}}`", fr: "Ex\xE9cution : `{{command}}`" }, { command });
668
684
  eventStore.append(
669
685
  sessionId,
670
- createMessageStartEvent(shellMsgId, "user", `Running: \`${command}\``, {
686
+ createMessageStartEvent(shellMsgId, "user", runningContent, {
671
687
  ...currentWindowMessageOptions ?? {},
672
688
  isSystemGenerated: true,
673
689
  messageKind: "auto-prompt",
@@ -679,7 +695,7 @@ async function executeWorkflow(workflow, options, subGroup) {
679
695
  createChatMessageMessage({
680
696
  id: shellMsgId,
681
697
  role: "user",
682
- content: `Running: \`${command}\``,
698
+ content: runningContent,
683
699
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
684
700
  isSystemGenerated: true,
685
701
  messageKind: "auto-prompt",
@@ -695,10 +711,13 @@ async function executeWorkflow(workflow, options, subGroup) {
695
711
  );
696
712
  const output = [result.stdout, result.stderr].filter(Boolean).join("\n").trim();
697
713
  lastStepOutput = { stdout: result.stdout ?? "", stderr: result.stderr ?? "", exitCode: String(result.exitCode) };
698
- const outputContent = output ? `Exit code: ${result.exitCode}
699
- \`\`\`
700
- ${output.slice(0, 1e4)}
701
- \`\`\`` : `Exit code: ${result.exitCode}`;
714
+ const outputContent = output ? serverT(
715
+ {
716
+ en: "Exit code: {{code}}\n```\n{{output}}\n```",
717
+ fr: "Code de sortie : {{code}}\n```\n{{output}}\n```"
718
+ },
719
+ { code: result.exitCode, output: output.slice(0, 1e4) }
720
+ ) : serverT({ en: "Exit code: {{code}}", fr: "Code de sortie : {{code}}" }, { code: result.exitCode });
702
721
  eventStore.append(sessionId, { type: "message.done", data: { messageId: shellMsgId } });
703
722
  const outputMsgId = crypto.randomUUID();
704
723
  eventStore.append(
@@ -1002,4 +1021,4 @@ export {
1002
1021
  abortRunnerRun,
1003
1022
  launchWorkflowRun
1004
1023
  };
1005
- //# sourceMappingURL=chunk-GVOOOV7M.js.map
1024
+ //# sourceMappingURL=chunk-7HGBJFIJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getPlatformShell
3
- } from "./chunk-MGEYAYGU.js";
3
+ } from "./chunk-O3RCSKUH.js";
4
4
 
5
5
  // src/server/tools/tool-policy.ts
6
6
  var ALWAYS_ALLOWED = /* @__PURE__ */ new Set(["step_done"]);
@@ -246,4 +246,4 @@ export {
246
246
  buildAgentSmallReminder,
247
247
  COMPACTION_PROMPT
248
248
  };
249
- //# sourceMappingURL=chunk-7JVBDBXE.js.map
249
+ //# sourceMappingURL=chunk-7QMWYNVF.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  createServerMessage,
6
6
  isClientMessage
7
- } from "./chunk-HCYSGLY2.js";
7
+ } from "./chunk-HF3NDXB4.js";
8
8
 
9
9
  // src/server/session/client-session.ts
10
10
  function toClientSession(session) {
@@ -143,8 +143,8 @@ function createChatStatsMessage(stats) {
143
143
  function createChatErrorMessage(error, recoverable) {
144
144
  return createServerMessage("chat.error", { error, recoverable });
145
145
  }
146
- function createChatLLMRetryMessage(attempt, retryInMs) {
147
- return createServerMessage("chat.llm_retry", { attempt, retryInMs });
146
+ function createChatLLMRetryMessage(attempt, retryInMs, error) {
147
+ return createServerMessage("chat.llm_retry", { attempt, retryInMs, error });
148
148
  }
149
149
  function createChatLLMRetryFailedMessage(error, attempts) {
150
150
  return createServerMessage("chat.llm_retry_failed", { error, attempts });
@@ -378,4 +378,4 @@ export {
378
378
  createQueueStateMessage,
379
379
  storedEventToServerMessage
380
380
  };
381
- //# sourceMappingURL=chunk-P57IBMK4.js.map
381
+ //# sourceMappingURL=chunk-AATMPL7S.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-7ET46SNE.js";
4
4
  import {
5
5
  COMPACTION_PROMPT
6
- } from "./chunk-7JVBDBXE.js";
6
+ } from "./chunk-7QMWYNVF.js";
7
7
  import {
8
8
  getCurrentWindowMessageOptions
9
- } from "./chunk-FGNJMKDV.js";
9
+ } from "./chunk-CSYOWFPU.js";
10
10
 
11
11
  // src/server/context/compactor.ts
12
12
  function appendCompactionPrompt(sessionId, append) {
@@ -36,4 +36,4 @@ export {
36
36
  COMPACTION_MAX_RATIO,
37
37
  shouldCompact
38
38
  };
39
- //# sourceMappingURL=chunk-ZL4IAFF3.js.map
39
+ //# sourceMappingURL=chunk-BZND27IB.js.map
@@ -6,16 +6,16 @@ import {
6
6
  foldSessionState,
7
7
  spreadOptionalMessageFields,
8
8
  trimSnapshotStreamingOutput
9
- } from "./chunk-M5T4RDPJ.js";
9
+ } from "./chunk-MEEUXRFL.js";
10
10
  import {
11
11
  updateSessionMessageCount
12
- } from "./chunk-KWAHD2JA.js";
12
+ } from "./chunk-ZTBKMVV6.js";
13
13
  import {
14
14
  getRuntimeConfig
15
- } from "./chunk-ELYHHEYL.js";
15
+ } from "./chunk-ORCQ3EXQ.js";
16
16
  import {
17
17
  SETTINGS_KEYS
18
- } from "./chunk-LQKXJPKP.js";
18
+ } from "./chunk-CTWZPN7G.js";
19
19
  import {
20
20
  logger
21
21
  } from "./chunk-K44MW7JJ.js";
@@ -1465,4 +1465,4 @@ export {
1465
1465
  truncateSessionMessages,
1466
1466
  getRecentUserPromptsForSession
1467
1467
  };
1468
- //# sourceMappingURL=chunk-FGNJMKDV.js.map
1468
+ //# sourceMappingURL=chunk-CSYOWFPU.js.map
@@ -5,12 +5,14 @@ import {
5
5
  // src/server/db/settings.ts
6
6
  var SETTINGS_KEYS = {
7
7
  GLOBAL_INSTRUCTIONS: "global_instructions",
8
+ LANGUAGE: "agent.language",
8
9
  DISPLAY_SHOW_THINKING: "display.showThinking",
9
10
  DISPLAY_SHOW_VERBOSE_TOOL_OUTPUT: "display.showVerboseToolOutput",
10
11
  DISPLAY_SHOW_STATS: "display.showStats",
11
12
  DISPLAY_SHOW_AGENT_DEFINITIONS: "display.showAgentDefinitions",
12
13
  DISPLAY_SHOW_WORKFLOW_BARS: "display.showWorkflowBars",
13
14
  DISPLAY_SHOW_SYNTAX_HIGHLIGHTING: "display.showSyntaxHighlighting",
15
+ DISPLAY_LOCALE: "display.locale",
14
16
  DISPLAY_THEME: "display.theme",
15
17
  DISPLAY_USER_PRESETS: "display.userPresets",
16
18
  DISPLAY_FOLLOW_SYSTEM_THEME: "display.followSystemTheme",
@@ -43,6 +45,8 @@ var SETTINGS_KEYS = {
43
45
  AGENT_MODEL_OVERRIDES: "agent.modelOverrides"
44
46
  };
45
47
  var SETTINGS_DEFAULTS = {
48
+ [SETTINGS_KEYS.LANGUAGE]: "automatic",
49
+ [SETTINGS_KEYS.DISPLAY_LOCALE]: "automatic",
46
50
  [SETTINGS_KEYS.DISPLAY_SHOW_THINKING]: "true",
47
51
  [SETTINGS_KEYS.DISPLAY_SHOW_VERBOSE_TOOL_OUTPUT]: "true",
48
52
  [SETTINGS_KEYS.DISPLAY_SHOW_STATS]: "true",
@@ -136,4 +140,4 @@ export {
136
140
  getAllSettings,
137
141
  getMaxVisibleItems
138
142
  };
139
- //# sourceMappingURL=chunk-LQKXJPKP.js.map
143
+ //# sourceMappingURL=chunk-CTWZPN7G.js.map
@@ -11,12 +11,20 @@ import {
11
11
  deleteSetting,
12
12
  getSetting,
13
13
  setSetting
14
- } from "./chunk-LQKXJPKP.js";
14
+ } from "./chunk-CTWZPN7G.js";
15
15
 
16
16
  // src/server/context/instructions.ts
17
17
  import { readFile, access } from "fs/promises";
18
18
  import { join, dirname } from "path";
19
19
  import { constants } from "fs";
20
+ function buildLanguageInstruction(language) {
21
+ const trimmed = language?.trim();
22
+ if (!trimmed || trimmed.toLowerCase() === "automatic") return null;
23
+ const display = trimmed[0].toUpperCase() + trimmed.slice(1);
24
+ return `## LANGUAGE
25
+
26
+ Always respond to the user in ${display}.`;
27
+ }
20
28
  var INSTRUCTION_FILENAMES = ["AGENTS.md", "CLAUDE.md"];
21
29
  async function findInstructionFiles(workdir) {
22
30
  const foundFiles = [];
@@ -59,6 +67,10 @@ ${content}`);
59
67
  async function getAllInstructions(workdir, projectId) {
60
68
  const sections = [];
61
69
  const allFiles = [];
70
+ const languageInstruction = buildLanguageInstruction(getSetting(SETTINGS_KEYS.LANGUAGE));
71
+ if (languageInstruction) {
72
+ sections.push(languageInstruction);
73
+ }
62
74
  const globalInstructions = getSetting(SETTINGS_KEYS.GLOBAL_INSTRUCTIONS);
63
75
  if (globalInstructions) {
64
76
  sections.push(`## GLOBAL INSTRUCTIONS
@@ -440,4 +452,4 @@ export {
440
452
  deleteSkill,
441
453
  deleteProjectSkill
442
454
  };
443
- //# sourceMappingURL=chunk-BKMWZTNO.js.map
455
+ //# sourceMappingURL=chunk-DWA4IE65.js.map
@@ -4,24 +4,24 @@ import {
4
4
  import {
5
5
  combineEventsWithSnapshot,
6
6
  getEventStore
7
- } from "./chunk-FGNJMKDV.js";
7
+ } from "./chunk-CSYOWFPU.js";
8
8
  import {
9
9
  buildMessagesFromStoredEvents,
10
10
  foldPendingConfirmations
11
- } from "./chunk-M5T4RDPJ.js";
11
+ } from "./chunk-MEEUXRFL.js";
12
12
  import {
13
13
  updateSessionMetadata
14
- } from "./chunk-KWAHD2JA.js";
14
+ } from "./chunk-ZTBKMVV6.js";
15
15
  import {
16
16
  getRuntimeConfig
17
- } from "./chunk-ELYHHEYL.js";
17
+ } from "./chunk-ORCQ3EXQ.js";
18
18
  import {
19
19
  createContextStateMessage,
20
20
  createSessionStateMessage
21
- } from "./chunk-P57IBMK4.js";
21
+ } from "./chunk-AATMPL7S.js";
22
22
  import {
23
23
  getMaxVisibleItems
24
- } from "./chunk-LQKXJPKP.js";
24
+ } from "./chunk-CTWZPN7G.js";
25
25
  import {
26
26
  logger
27
27
  } from "./chunk-K44MW7JJ.js";
@@ -162,7 +162,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
162
162
  client = deps.getLLMClient();
163
163
  client.setModel(providerConfig.model);
164
164
  } else if (providerConfig) {
165
- const { createLLMClient } = await import("./client-2K6PPPJJ.js");
165
+ const { createLLMClient } = await import("./client-VVYOWXRR.js");
166
166
  client = createLLMClient(
167
167
  {
168
168
  llm: {
@@ -216,4 +216,4 @@ export {
216
216
  needsNameGeneration,
217
217
  generateSessionNameForSession
218
218
  };
219
- //# sourceMappingURL=chunk-RRUSYVQD.js.map
219
+ //# sourceMappingURL=chunk-FAQDLL2X.js.map
@@ -26,4 +26,4 @@ export {
26
26
  isClientMessage,
27
27
  isServerMessage
28
28
  };
29
- //# sourceMappingURL=chunk-HCYSGLY2.js.map
29
+ //# sourceMappingURL=chunk-HF3NDXB4.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SETTINGS_KEYS,
3
3
  getSetting
4
- } from "./chunk-LQKXJPKP.js";
4
+ } from "./chunk-CTWZPN7G.js";
5
5
  import {
6
6
  logger
7
7
  } from "./chunk-K44MW7JJ.js";
@@ -194,4 +194,4 @@ export {
194
194
  ChatHttpClient,
195
195
  OpenAIHttpClient
196
196
  };
197
- //# sourceMappingURL=chunk-6EZDW4JS.js.map
197
+ //# sourceMappingURL=chunk-J3NMNYGM.js.map