openfox 2.0.133 → 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 (82) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/CHANGELOG.md +12 -0
  3. package/dist/{chat-handler-T47GATL5.js → chat-handler-YCZE2XEJ.js} +23 -22
  4. package/dist/chunk-24YKXKCG.js +35 -0
  5. package/dist/chunk-2OMGR7LN.js +45 -0
  6. package/dist/{chunk-OUQZZEIQ.js → chunk-5IXCCMFU.js} +335 -187
  7. package/dist/{chunk-MQMPIXON.js → chunk-5UMXFLET.js} +3 -3
  8. package/dist/{chunk-5JWJEZJ3.js → chunk-5UQ4CKOA.js} +2 -2
  9. package/dist/{chunk-P5MSY7ZI.js → chunk-7HGBJFIJ.js} +22 -17
  10. package/dist/{chunk-7JVBDBXE.js → chunk-7QMWYNVF.js} +2 -2
  11. package/dist/{chunk-P57IBMK4.js → chunk-AATMPL7S.js} +4 -4
  12. package/dist/{chunk-ZL4IAFF3.js → chunk-BZND27IB.js} +3 -3
  13. package/dist/{chunk-FGNJMKDV.js → chunk-CSYOWFPU.js} +5 -5
  14. package/dist/{chunk-LQKXJPKP.js → chunk-CTWZPN7G.js} +5 -1
  15. package/dist/{chunk-BKMWZTNO.js → chunk-DWA4IE65.js} +14 -2
  16. package/dist/{chunk-RRUSYVQD.js → chunk-FAQDLL2X.js} +8 -8
  17. package/dist/{chunk-HCYSGLY2.js → chunk-HF3NDXB4.js} +1 -1
  18. package/dist/{chunk-6EZDW4JS.js → chunk-J3NMNYGM.js} +2 -2
  19. package/dist/{chunk-HXHPKGJE.js → chunk-J5HOUEPE.js} +614 -157
  20. package/dist/{chunk-A7CB4USC.js → chunk-M4J2L4VH.js} +132 -45
  21. package/dist/{chunk-M5T4RDPJ.js → chunk-MEEUXRFL.js} +2 -2
  22. package/dist/{chunk-OMMPTN6X.js → chunk-MRE4OYKI.js} +69 -27
  23. package/dist/{chunk-MGEYAYGU.js → chunk-O3RCSKUH.js} +2 -2
  24. package/dist/{chunk-ELYHHEYL.js → chunk-ORCQ3EXQ.js} +2 -2
  25. package/dist/{chunk-FEIRWXLX.js → chunk-OZWHRBDY.js} +64 -17
  26. package/dist/{chunk-TACWRDDC.js → chunk-QDARWVQ2.js} +2 -2
  27. package/dist/{chunk-VXG3AFFY.js → chunk-QICVOQNX.js} +8 -8
  28. package/dist/chunk-QTLYD2FF.js +7 -0
  29. package/dist/{chunk-Y6ZGHOKM.js → chunk-YLVOU7T7.js} +4 -4
  30. package/dist/{chunk-GFW2HWJ6.js → chunk-YOPXAI2W.js} +37 -16
  31. package/dist/{chunk-CLDCHOEA.js → chunk-ZMK4VX7V.js} +2 -2
  32. package/dist/{chunk-KWAHD2JA.js → chunk-ZTBKMVV6.js} +2 -2
  33. package/dist/cli/dev.js +4 -1
  34. package/dist/cli/index.js +4 -1
  35. package/dist/{client-2K6PPPJJ.js → client-VVYOWXRR.js} +4 -4
  36. package/dist/{compactor-OEJAA2YP.js → compactor-PD6DQ4NY.js} +9 -9
  37. package/dist/{dynamic-context-NJZKAZE3.js → dynamic-context-WKEXQCTK.js} +10 -10
  38. package/dist/{events-ZJPRGVL2.js → events-3WSNI7XC.js} +6 -6
  39. package/dist/{folding-QRZOHY2I.js → folding-H7JTX6KI.js} +4 -4
  40. package/dist/{http-client-P4XTKAZA.js → http-client-A445WYZU.js} +3 -3
  41. package/dist/{install-VA2F6X6Z.js → install-AVTFA344.js} +64 -15
  42. package/dist/{launch-UKXVO37B.js → launch-FJ65HRV4.js} +23 -22
  43. package/dist/{manager-TMBFBCQL.js → manager-ZACEUL5P.js} +4 -4
  44. package/dist/{mcp-YU7AM3UV.js → mcp-SQ4DOGPT.js} +22 -9
  45. package/dist/{orchestrator-GX22Y5EM.js → orchestrator-OT66EDXO.js} +22 -21
  46. package/dist/package.json +3 -1
  47. package/dist/{path-security-CBACXAMS.js → path-security-5CFMMULR.js} +10 -10
  48. package/dist/{platform-5LQXOZO3.js → platform-XPMZKAUB.js} +3 -3
  49. package/dist/{processor-V35OLKRV.js → processor-CHMHMMIE.js} +22 -21
  50. package/dist/{project-creator-6AGQTNXB.js → project-creator-T3A4H3YV.js} +42 -29
  51. package/dist/{protocol-BMUoqwYH.d.ts → protocol-Nr_H1_oC.d.ts} +3 -1
  52. package/dist/{protocol-Y7MRKRUO.js → protocol-XO4ZROAU.js} +3 -3
  53. package/dist/provider/index.d.ts +4 -4
  54. package/dist/provider-JWUNG2TD.js +507 -0
  55. package/dist/{provider-manager-BO5ZBG3T.js → provider-manager-2KKZ37XJ.js} +5 -5
  56. package/dist/pwa-V5PFB4OQ.js +502 -0
  57. package/dist/{registry-CMSSZHDC.js → registry-BEIR7Y5G.js} +3 -3
  58. package/dist/{serve-XRVT3D7Z.js → serve-HSDVY37K.js} +47 -36
  59. package/dist/server/index.d.ts +3 -3
  60. package/dist/server/index.js +27 -26
  61. package/dist/{server-GXMZMPXI.js → server-3UVLECD5.js} +26 -25
  62. package/dist/{service-WKABQHKL.js → service-M77VWL2M.js} +97 -32
  63. package/dist/{service-O3LCO3TQ.js → service-XIUNS5XV.js} +7 -6
  64. package/dist/{session-overrides-OECQYRDK.js → session-overrides-Y5B4XQPU.js} +5 -5
  65. package/dist/{sessions-NMPX5ICI.js → sessions-IGINPPBP.js} +4 -4
  66. package/dist/{settings-MDCRNQBY.js → settings-ZJPM6PQV.js} +2 -2
  67. package/dist/shared/index.d.ts +31 -4
  68. package/dist/shared/index.js +16 -2
  69. package/dist/{tasks-WOC3QUFA.js → tasks-3JJWJJ3X.js} +34 -18
  70. package/dist/{tools-CW6POKUL.js → tools-WWIWD3O7.js} +20 -19
  71. package/dist/{types-CoY8Ka1C.d.ts → types-BlQjLBui.d.ts} +1 -1
  72. package/dist/{types-BIkpxjaj.d.ts → types-G10ho8PT.d.ts} +1 -1
  73. package/dist/update-Q6SH7UP2.js +76 -0
  74. package/dist/web/assets/index-C48qmBAI.js +313 -0
  75. package/dist/web/index.html +1 -1
  76. package/dist/web/sw.js +1 -1
  77. package/package.json +3 -1
  78. package/dist/chunk-JKGHTBEV.js +0 -7
  79. package/dist/provider-NWRGNGS3.js +0 -403
  80. package/dist/pwa-2GRFSXD7.js +0 -363
  81. package/dist/update-VC3Y3EOP.js +0 -49
  82. package/dist/web/assets/index-ATAQvBwl.js +0 -312
@@ -8,16 +8,25 @@ import {
8
8
  } from "./chunk-OSXPQSLW.js";
9
9
  import {
10
10
  parseDefaultModelSelection
11
- } from "./chunk-5JWJEZJ3.js";
11
+ } from "./chunk-5UQ4CKOA.js";
12
12
  import {
13
13
  getProject
14
14
  } from "./chunk-DPFET73G.js";
15
+ import {
16
+ SETTINGS_KEYS,
17
+ getSetting
18
+ } from "./chunk-CTWZPN7G.js";
15
19
  import {
16
20
  getDatabase
17
21
  } from "./chunk-JU757HVI.js";
18
22
  import {
19
23
  logger
20
24
  } from "./chunk-K44MW7JJ.js";
25
+ import {
26
+ getLocale,
27
+ setLocale,
28
+ t
29
+ } from "./chunk-24YKXKCG.js";
21
30
 
22
31
  // src/server/commands/registry.ts
23
32
  import { writeFile, mkdir, unlink } from "fs/promises";
@@ -654,6 +663,16 @@ function safeParseAttachments(raw) {
654
663
  }
655
664
  }
656
665
 
666
+ // src/server/i18n.ts
667
+ function resolveLocale() {
668
+ return getSetting(SETTINGS_KEYS.DISPLAY_LOCALE) === "fr" ? "fr" : "en";
669
+ }
670
+ function serverT(tx, vars) {
671
+ const locale = resolveLocale();
672
+ if (getLocale() !== locale) setLocale(locale);
673
+ return t(tx, vars);
674
+ }
675
+
657
676
  // src/server/tasks/service.ts
658
677
  function isTaskConflictError(err) {
659
678
  return err instanceof Error && err.code === "CONFLICT";
@@ -712,13 +731,15 @@ function createTasksService(deps) {
712
731
  function assertOwned(projectId, taskId) {
713
732
  const task = getTask(taskId);
714
733
  if (!task || task.projectId !== projectId) {
715
- throw new Error(`Task not found: ${taskId}`);
734
+ throw new Error(serverT({ en: "Task not found: {{id}}", fr: "T\xE2che introuvable : {{id}}" }, { id: taskId }));
716
735
  }
717
736
  return task;
718
737
  }
719
738
  function assertNotStale(task, expectedVersion) {
720
739
  if (expectedVersion !== void 0 && task.version !== expectedVersion) {
721
- const err = new Error("Task changed, refresh and retry");
740
+ const err = new Error(
741
+ serverT({ en: "Task changed, refresh and retry", fr: "T\xE2che modifi\xE9e, actualisez et r\xE9essayez" })
742
+ );
722
743
  err.code = "CONFLICT";
723
744
  err.task = task;
724
745
  throw err;
@@ -728,7 +749,12 @@ function createTasksService(deps) {
728
749
  const hasContent = input.prompt.trim().length > 0;
729
750
  const hasAttachments = (input.attachments?.length ?? 0) > 0;
730
751
  if (!hasContent && !hasAttachments) {
731
- throw new Error("Task requires at least a prompt or an attachment");
752
+ throw new Error(
753
+ serverT({
754
+ en: "Task requires at least a prompt or an attachment",
755
+ fr: "La t\xE2che requiert au moins un prompt ou une pi\xE8ce jointe"
756
+ })
757
+ );
732
758
  }
733
759
  const task = createTask(projectId, {
734
760
  prompt: input.prompt,
@@ -757,7 +783,8 @@ function createTasksService(deps) {
757
783
  function duplicate(projectId, taskId, actor) {
758
784
  const source = assertOwned(projectId, taskId);
759
785
  const copy = cloneTask(taskId);
760
- if (!copy) throw new Error(`Task not found: ${taskId}`);
786
+ if (!copy)
787
+ throw new Error(serverT({ en: "Task not found: {{id}}", fr: "T\xE2che introuvable : {{id}}" }, { id: taskId }));
761
788
  addAuditEntry(
762
789
  copy.id,
763
790
  actor.actor,
@@ -800,7 +827,12 @@ function createTasksService(deps) {
800
827
  const settings = getTaskSettings(projectId);
801
828
  if (opts.actor === "agent") {
802
829
  if (!opts.sessionId) {
803
- throw new Error("Agent moves must bind to the current session (sessionId is required)");
830
+ throw new Error(
831
+ serverT({
832
+ en: "Agent moves must bind to the current session (sessionId is required)",
833
+ fr: "Les d\xE9placements d\u2019agent doivent \xEAtre li\xE9s \xE0 la session courante (sessionId requis)"
834
+ })
835
+ );
804
836
  }
805
837
  setTaskRunState(taskId, "running");
806
838
  addTaskLink(taskId, opts.sessionId, true);
@@ -865,7 +897,7 @@ function createTasksService(deps) {
865
897
  const gates = getGateConfig(projectId);
866
898
  const gate = gates.find((g) => g.id === gateId);
867
899
  if (!gate) {
868
- throw new Error(`Unknown gate: ${gateId}`);
900
+ throw new Error(serverT({ en: "Unknown gate: {{id}}", fr: "Porte inconnue : {{id}}" }, { id: gateId }));
869
901
  }
870
902
  setGateValue(taskId, gateId, value, actor.actor, actor.actorName, sessionId);
871
903
  addAuditEntry(taskId, actor.actor, "gate_value", `Set gate "${gate.name}" = "${value}"`, actor.actorName);
@@ -895,7 +927,15 @@ function createTasksService(deps) {
895
927
  function reorder(projectId, taskId, status, toIndex) {
896
928
  const task = assertOwned(projectId, taskId);
897
929
  if (task.status !== status) {
898
- throw new Error(`Cannot reorder task: status mismatch (${task.status} != ${status})`);
930
+ throw new Error(
931
+ serverT(
932
+ {
933
+ en: "Cannot reorder task: status mismatch ({{current}} != {{target}})",
934
+ fr: "Impossible de r\xE9ordonner la t\xE2che : statut incoh\xE9rent ({{current}} != {{target}})"
935
+ },
936
+ { current: task.status, target: status }
937
+ )
938
+ );
899
939
  }
900
940
  reorderTask(taskId, status, toIndex);
901
941
  const fresh = getTask(taskId);
@@ -906,11 +946,11 @@ function createTasksService(deps) {
906
946
  return computeCounts(listTasks(projectId));
907
947
  }
908
948
  function computeCounts(tasks) {
909
- const todo = tasks.filter((t) => t.status === "todo").length;
910
- const inProgress = tasks.filter((t) => t.status === "in_progress").length;
911
- const running = tasks.filter((t) => t.status === "in_progress" && t.runState === "running").length;
912
- const queued = tasks.filter((t) => t.status === "in_progress" && t.runState === "queued").length;
913
- const done = tasks.filter((t) => t.status === "done").length;
949
+ const todo = tasks.filter((t2) => t2.status === "todo").length;
950
+ const inProgress = tasks.filter((t2) => t2.status === "in_progress").length;
951
+ const running = tasks.filter((t2) => t2.status === "in_progress" && t2.runState === "running").length;
952
+ const queued = tasks.filter((t2) => t2.status === "in_progress" && t2.runState === "queued").length;
953
+ const done = tasks.filter((t2) => t2.status === "done").length;
914
954
  return { open: todo + inProgress, todo, inProgress, running, queued, done };
915
955
  }
916
956
  function requiredGates(projectId, variant) {
@@ -922,7 +962,13 @@ function createTasksService(deps) {
922
962
  }
923
963
  function gateBlockedError(task, destination, missing) {
924
964
  const err = new Error(
925
- `Cannot move to ${destination}: missing required gate fields: ${missing.map((m) => m.name).join(", ")}`
965
+ serverT(
966
+ {
967
+ en: "Cannot move to {{destination}}: missing required gate fields: {{missing}}",
968
+ fr: "Impossible de d\xE9placer vers {{destination}} : champs de porte requis manquants : {{missing}}"
969
+ },
970
+ { destination, missing: missing.map((m) => m.name).join(", ") }
971
+ )
926
972
  );
927
973
  err.code = "GATE_BLOCKED";
928
974
  err.missing = missing;
@@ -930,7 +976,7 @@ function createTasksService(deps) {
930
976
  return err;
931
977
  }
932
978
  function activeCount(projectId) {
933
- return listTasks(projectId).filter((t) => t.status === "in_progress" && t.runState === "running").length;
979
+ return listTasks(projectId).filter((t2) => t2.status === "in_progress" && t2.runState === "running").length;
934
980
  }
935
981
  async function seedSession(projectId, task, from, targetSessionId) {
936
982
  let session;
@@ -989,7 +1035,7 @@ function createTasksService(deps) {
989
1035
  const settings = getTaskSettings(projectId);
990
1036
  if (settings.queuePaused) return void 0;
991
1037
  if (activeCount(projectId) >= settings.slotLimit) return void 0;
992
- const queued = listTasks(projectId).filter((t) => t.status === "in_progress" && t.runState === "queued").sort((a, b) => a.position - b.position);
1038
+ const queued = listTasks(projectId).filter((t2) => t2.status === "in_progress" && t2.runState === "queued").sort((a, b) => a.position - b.position);
993
1039
  const next = queued[0];
994
1040
  if (!next) return void 0;
995
1041
  setTaskRunState(next.id, "running");
@@ -1087,6 +1133,7 @@ function promptLabel(prompt) {
1087
1133
  }
1088
1134
 
1089
1135
  export {
1136
+ serverT,
1090
1137
  loadDefaultCommands,
1091
1138
  loadUserCommands,
1092
1139
  loadProjectCommands,
@@ -1119,4 +1166,4 @@ export {
1119
1166
  isTaskGateError,
1120
1167
  createTasksService
1121
1168
  };
1122
- //# sourceMappingURL=chunk-FEIRWXLX.js.map
1169
+ //# sourceMappingURL=chunk-OZWHRBDY.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  updateSessionMcpDisabledServers
3
- } from "./chunk-KWAHD2JA.js";
3
+ } from "./chunk-ZTBKMVV6.js";
4
4
  import {
5
5
  getDatabase
6
6
  } from "./chunk-JU757HVI.js";
@@ -62,4 +62,4 @@ export {
62
62
  clearSessionOverrides,
63
63
  getAllSessionOverrides
64
64
  };
65
- //# sourceMappingURL=chunk-TACWRDDC.js.map
65
+ //# sourceMappingURL=chunk-QDARWVQ2.js.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  getAllInstructions,
3
3
  getEnabledSkillMetadata
4
- } from "./chunk-BKMWZTNO.js";
4
+ } from "./chunk-DWA4IE65.js";
5
5
  import {
6
6
  buildTopLevelSystemPrompt
7
- } from "./chunk-7JVBDBXE.js";
7
+ } from "./chunk-7QMWYNVF.js";
8
8
  import {
9
9
  getCurrentContextWindowId,
10
10
  getEventStore
11
- } from "./chunk-FGNJMKDV.js";
11
+ } from "./chunk-CSYOWFPU.js";
12
12
  import {
13
13
  findAgentById,
14
14
  getRuntimeConfig,
15
15
  getSubAgents,
16
16
  loadAllAgentsDefault,
17
17
  resolveDefaultAgentId
18
- } from "./chunk-ELYHHEYL.js";
18
+ } from "./chunk-ORCQ3EXQ.js";
19
19
  import {
20
20
  logger
21
21
  } from "./chunk-K44MW7JJ.js";
@@ -223,7 +223,7 @@ async function injectDriftReminders(sessionManager, sessionId, agentDef, options
223
223
  if (!cached) {
224
224
  return { injectedToolReminder: false, injectedPromptReminder: false };
225
225
  }
226
- const { getToolRegistryForAgent } = await import("./tools-CW6POKUL.js");
226
+ const { getToolRegistryForAgent } = await import("./tools-WWIWD3O7.js");
227
227
  const liveTools = getToolRegistryForAgent(agentDef, sessionId).definitions;
228
228
  let injectedToolReminder = false;
229
229
  let injectedPromptReminder = false;
@@ -329,7 +329,7 @@ function resolveAgentDef(sessionManager, sessionId) {
329
329
  }
330
330
  async function buildCachedPrompt(sessionManager, sessionId, agentDef, modelName) {
331
331
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
332
- const { getToolRegistryForAgent } = await import("./tools-CW6POKUL.js");
332
+ const { getToolRegistryForAgent } = await import("./tools-WWIWD3O7.js");
333
333
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
334
334
  const toolFingerprint = getToolFingerprint(tools);
335
335
  const allAgents = await loadAllAgentsDefault(sessionManager.getProjectWorkdir(sessionId));
@@ -349,7 +349,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef, modelName)
349
349
  async function computeSessionHash(sessionManager, sessionId, modelName) {
350
350
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
351
351
  const agentDef = await resolveAgentDef(sessionManager, sessionId);
352
- const { getToolRegistryForAgent } = await import("./tools-CW6POKUL.js");
352
+ const { getToolRegistryForAgent } = await import("./tools-WWIWD3O7.js");
353
353
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
354
354
  const toolFingerprint = getToolFingerprint(tools);
355
355
  return computeDynamicContextHash(instructionContent, skills, toolFingerprint, modelName);
@@ -390,4 +390,4 @@ export {
390
390
  computeSessionHash,
391
391
  applyDynamicContext
392
392
  };
393
- //# sourceMappingURL=chunk-VXG3AFFY.js.map
393
+ //# sourceMappingURL=chunk-QICVOQNX.js.map
@@ -0,0 +1,7 @@
1
+ // src/constants.ts
2
+ var VERSION = "2.0.134";
3
+
4
+ export {
5
+ VERSION
6
+ };
7
+ //# sourceMappingURL=chunk-QTLYD2FF.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getEventStore
3
- } from "./chunk-FGNJMKDV.js";
3
+ } from "./chunk-CSYOWFPU.js";
4
4
  import {
5
5
  createChatPathConfirmationMessage
6
- } from "./chunk-P57IBMK4.js";
6
+ } from "./chunk-AATMPL7S.js";
7
7
  import {
8
8
  getPlatformShell
9
- } from "./chunk-MGEYAYGU.js";
9
+ } from "./chunk-O3RCSKUH.js";
10
10
 
11
11
  // src/server/tools/path-security.ts
12
12
  import { realpath } from "fs/promises";
@@ -782,4 +782,4 @@ export {
782
782
  getConfirmationSessionId,
783
783
  getPendingConfirmationsBySession
784
784
  };
785
- //# sourceMappingURL=chunk-Y6ZGHOKM.js.map
785
+ //# sourceMappingURL=chunk-YLVOU7T7.js.map
@@ -4,7 +4,10 @@ import {
4
4
  getToolRegistryForAgent,
5
5
  processEventsForConversation,
6
6
  runTopLevelAgentLoop
7
- } from "./chunk-HXHPKGJE.js";
7
+ } from "./chunk-J5HOUEPE.js";
8
+ import {
9
+ serverT
10
+ } from "./chunk-OZWHRBDY.js";
8
11
  import {
9
12
  TurnMetrics,
10
13
  createChatDoneEvent,
@@ -15,34 +18,34 @@ import {
15
18
  checkToolChangesAndInject,
16
19
  computeDynamicContextHash,
17
20
  getToolFingerprint
18
- } from "./chunk-VXG3AFFY.js";
21
+ } from "./chunk-QICVOQNX.js";
19
22
  import {
20
23
  getAllInstructions,
21
24
  getEnabledSkillMetadata
22
- } from "./chunk-BKMWZTNO.js";
25
+ } from "./chunk-DWA4IE65.js";
23
26
  import {
24
27
  buildAgentReminder,
25
28
  buildAgentSmallReminder,
26
29
  buildTopLevelSystemPrompt
27
- } from "./chunk-7JVBDBXE.js";
30
+ } from "./chunk-7QMWYNVF.js";
28
31
  import {
29
32
  PathAccessDeniedError
30
- } from "./chunk-Y6ZGHOKM.js";
33
+ } from "./chunk-YLVOU7T7.js";
31
34
  import {
32
35
  getCurrentContextWindowId,
33
36
  getCurrentWindowMessageOptions,
34
37
  getEventStore
35
- } from "./chunk-FGNJMKDV.js";
38
+ } from "./chunk-CSYOWFPU.js";
36
39
  import {
37
40
  buildSnapshotFromSessionState
38
- } from "./chunk-M5T4RDPJ.js";
41
+ } from "./chunk-MEEUXRFL.js";
39
42
  import {
40
43
  findAgentById,
41
44
  getRuntimeConfig,
42
45
  getSubAgents,
43
46
  loadAllAgentsDefault,
44
47
  resolveDefaultAgentId
45
- } from "./chunk-ELYHHEYL.js";
48
+ } from "./chunk-ORCQ3EXQ.js";
46
49
  import {
47
50
  logger
48
51
  } from "./chunk-K44MW7JJ.js";
@@ -52,7 +55,7 @@ import {
52
55
 
53
56
  // src/server/chat/orchestrator.ts
54
57
  async function buildRetryPatterns() {
55
- const { getSetting, SETTINGS_KEYS } = await import("./settings-MDCRNQBY.js");
58
+ const { getSetting, SETTINGS_KEYS } = await import("./settings-ZJPM6PQV.js");
56
59
  const raw = getSetting(SETTINGS_KEYS.RETRY_PATTERNS);
57
60
  if (!raw) {
58
61
  const oldXmlProtection = getSetting("llm.disableXmlProtection");
@@ -125,11 +128,20 @@ async function runChatTurn(options) {
125
128
  } catch (error) {
126
129
  if (error instanceof PathAccessDeniedError) {
127
130
  const errorMsgId2 = crypto.randomUUID();
128
- const reasonText = error.reason === "sensitive_file" ? "sensitive files that may contain secrets" : error.reason === "both" ? "files outside the project and sensitive files" : "files outside the project directory";
131
+ const reasonText = error.reason === "sensitive_file" ? serverT({
132
+ en: "sensitive files that may contain secrets",
133
+ fr: "des fichiers sensibles pouvant contenir des secrets"
134
+ }) : error.reason === "both" ? serverT({
135
+ en: "files outside the project and sensitive files",
136
+ fr: "des fichiers hors du projet et des fichiers sensibles"
137
+ }) : serverT({ en: "files outside the project directory", fr: "des fichiers hors du dossier du projet" });
129
138
  eventStore.append(sessionId, {
130
139
  type: "chat.error",
131
140
  data: {
132
- error: `User denied access to ${reasonText}.`,
141
+ error: serverT(
142
+ { en: "User denied access to {{reason}}.", fr: "Acc\xE8s refus\xE9 par l\u2019utilisateur : {{reason}}." },
143
+ { reason: reasonText }
144
+ ),
133
145
  recoverable: false
134
146
  }
135
147
  });
@@ -138,7 +150,13 @@ async function runChatTurn(options) {
138
150
  createMessageStartEvent(
139
151
  errorMsgId2,
140
152
  "user",
141
- `Access denied: ${error.paths.join(", ")}. If you need this file, explain why and ask the user for permission.`,
153
+ serverT(
154
+ {
155
+ en: "Access denied: {{paths}}. If you need this file, explain why and ask the user for permission.",
156
+ fr: "Acc\xE8s refus\xE9 : {{paths}}. Si vous avez besoin de ce fichier, expliquez pourquoi et demandez l\u2019autorisation \xE0 l\u2019utilisateur."
157
+ },
158
+ { paths: error.paths.join(", ") }
159
+ ),
142
160
  {
143
161
  ...getCurrentWindowMessageOptions(sessionId) ?? {},
144
162
  isSystemGenerated: true,
@@ -162,7 +180,7 @@ async function runChatTurn(options) {
162
180
  eventStore.append(sessionId, {
163
181
  type: "chat.error",
164
182
  data: {
165
- error: error instanceof Error ? error.message : "Unknown error",
183
+ error: error instanceof Error ? error.message : serverT({ en: "Unknown error", fr: "Erreur inconnue" }),
166
184
  recoverable: false
167
185
  }
168
186
  });
@@ -171,7 +189,10 @@ async function runChatTurn(options) {
171
189
  createMessageStartEvent(
172
190
  errorMsgId,
173
191
  "user",
174
- `Error: ${error instanceof Error ? error.message : "Unknown error"}`,
192
+ serverT(
193
+ { en: "Error: {{message}}", fr: "Erreur : {{message}}" },
194
+ { message: error instanceof Error ? error.message : serverT({ en: "Unknown error", fr: "Erreur inconnue" }) }
195
+ ),
175
196
  {
176
197
  ...getCurrentWindowMessageOptions(sessionId) ?? {},
177
198
  isSystemGenerated: true,
@@ -334,7 +355,7 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
334
355
  getConversationMessages: buildGetConversationMessages(options.sessionId, resolveAgentClient, append),
335
356
  injectAgentReminder: () => injectAgentReminder(options.sessionId, agentDef),
336
357
  rebuildCachedContext: async () => {
337
- const { applyDynamicContext } = await import("./dynamic-context-NJZKAZE3.js");
358
+ const { applyDynamicContext } = await import("./dynamic-context-WKEXQCTK.js");
338
359
  await applyDynamicContext(options.sessionManager, options.sessionId, agentLlmClient.getModel());
339
360
  },
340
361
  ...options.initialCompacting ? { initialCompacting: true } : {},
@@ -364,4 +385,4 @@ export {
364
385
  runChatTurn,
365
386
  runAgentTurn
366
387
  };
367
- //# sourceMappingURL=chunk-GFW2HWJ6.js.map
388
+ //# sourceMappingURL=chunk-YOPXAI2W.js.map
@@ -20,7 +20,7 @@ import {
20
20
  DONE,
21
21
  LLMError,
22
22
  OpenAIHttpClient
23
- } from "./chunk-6EZDW4JS.js";
23
+ } from "./chunk-J3NMNYGM.js";
24
24
  import {
25
25
  logger
26
26
  } from "./chunk-K44MW7JJ.js";
@@ -768,4 +768,4 @@ function createLLMClient(config, initialBackend = config.llm.backend ?? "unknown
768
768
  export {
769
769
  createLLMClient
770
770
  };
771
- //# sourceMappingURL=chunk-CLDCHOEA.js.map
771
+ //# sourceMappingURL=chunk-ZMK4VX7V.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveDefaultAgentId
3
- } from "./chunk-ELYHHEYL.js";
3
+ } from "./chunk-ORCQ3EXQ.js";
4
4
  import {
5
5
  getDatabase
6
6
  } from "./chunk-JU757HVI.js";
@@ -471,4 +471,4 @@ export {
471
471
  getLatestWorkflowExecution,
472
472
  clearWorkflowExecution
473
473
  };
474
- //# sourceMappingURL=chunk-KWAHD2JA.js.map
474
+ //# sourceMappingURL=chunk-ZTBKMVV6.js.map
package/dist/cli/dev.js CHANGED
@@ -1,11 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-OMMPTN6X.js";
4
+ } from "../chunk-MRE4OYKI.js";
5
5
  import "../chunk-AGXJ5O63.js";
6
+ import "../chunk-2OMGR7LN.js";
6
7
  import {
7
8
  logger
8
9
  } from "../chunk-K44MW7JJ.js";
10
+ import "../chunk-24YKXKCG.js";
11
+ import "../chunk-CQGTEGKL.js";
9
12
  import "../chunk-YLJ4XMA6.js";
10
13
 
11
14
  // src/cli/dev.ts
package/dist/cli/index.js CHANGED
@@ -1,11 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-OMMPTN6X.js";
4
+ } from "../chunk-MRE4OYKI.js";
5
5
  import "../chunk-AGXJ5O63.js";
6
+ import "../chunk-2OMGR7LN.js";
6
7
  import {
7
8
  logger
8
9
  } from "../chunk-K44MW7JJ.js";
10
+ import "../chunk-24YKXKCG.js";
11
+ import "../chunk-CQGTEGKL.js";
9
12
  import "../chunk-YLJ4XMA6.js";
10
13
 
11
14
  // src/cli/index.ts
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  createLLMClient
3
- } from "./chunk-CLDCHOEA.js";
3
+ } from "./chunk-ZMK4VX7V.js";
4
4
  import "./chunk-TS5WKTFB.js";
5
5
  import "./chunk-UV6IH6HK.js";
6
6
  import "./chunk-HNCM3D7Y.js";
7
7
  import "./chunk-EUOWCVU6.js";
8
- import "./chunk-6EZDW4JS.js";
9
- import "./chunk-LQKXJPKP.js";
8
+ import "./chunk-J3NMNYGM.js";
9
+ import "./chunk-CTWZPN7G.js";
10
10
  import "./chunk-JU757HVI.js";
11
11
  import "./chunk-K44MW7JJ.js";
12
12
  import "./chunk-YLJ4XMA6.js";
13
13
  export {
14
14
  createLLMClient
15
15
  };
16
- //# sourceMappingURL=client-2K6PPPJJ.js.map
16
+ //# sourceMappingURL=client-VVYOWXRR.js.map
@@ -3,22 +3,22 @@ import {
3
3
  COMPACTION_MAX_RATIO,
4
4
  appendCompactionPrompt,
5
5
  shouldCompact
6
- } from "./chunk-ZL4IAFF3.js";
6
+ } from "./chunk-BZND27IB.js";
7
7
  import "./chunk-7ET46SNE.js";
8
- import "./chunk-7JVBDBXE.js";
9
- import "./chunk-FGNJMKDV.js";
10
- import "./chunk-M5T4RDPJ.js";
11
- import "./chunk-KWAHD2JA.js";
12
- import "./chunk-ELYHHEYL.js";
8
+ import "./chunk-7QMWYNVF.js";
9
+ import "./chunk-CSYOWFPU.js";
10
+ import "./chunk-MEEUXRFL.js";
11
+ import "./chunk-ZTBKMVV6.js";
12
+ import "./chunk-ORCQ3EXQ.js";
13
13
  import "./chunk-OSXPQSLW.js";
14
14
  import "./chunk-LCLH6ZUL.js";
15
- import "./chunk-MGEYAYGU.js";
15
+ import "./chunk-O3RCSKUH.js";
16
16
  import "./chunk-J2GP3J3X.js";
17
17
  import "./chunk-DPFET73G.js";
18
18
  import "./chunk-TS5WKTFB.js";
19
19
  import "./chunk-UV6IH6HK.js";
20
20
  import "./chunk-EUOWCVU6.js";
21
- import "./chunk-LQKXJPKP.js";
21
+ import "./chunk-CTWZPN7G.js";
22
22
  import "./chunk-JU757HVI.js";
23
23
  import "./chunk-K44MW7JJ.js";
24
24
  import "./chunk-CQGTEGKL.js";
@@ -29,4 +29,4 @@ export {
29
29
  appendCompactionPrompt,
30
30
  shouldCompact
31
31
  };
32
- //# sourceMappingURL=compactor-OEJAA2YP.js.map
32
+ //# sourceMappingURL=compactor-PD6DQ4NY.js.map
@@ -15,18 +15,18 @@ import {
15
15
  injectContextDriftRemindersForSessions,
16
16
  renderSystemPromptDiff,
17
17
  renderToolChangeReminder
18
- } from "./chunk-VXG3AFFY.js";
19
- import "./chunk-BKMWZTNO.js";
20
- import "./chunk-7JVBDBXE.js";
21
- import "./chunk-FGNJMKDV.js";
22
- import "./chunk-M5T4RDPJ.js";
23
- import "./chunk-KWAHD2JA.js";
24
- import "./chunk-ELYHHEYL.js";
18
+ } from "./chunk-QICVOQNX.js";
19
+ import "./chunk-DWA4IE65.js";
20
+ import "./chunk-7QMWYNVF.js";
21
+ import "./chunk-CSYOWFPU.js";
22
+ import "./chunk-MEEUXRFL.js";
23
+ import "./chunk-ZTBKMVV6.js";
24
+ import "./chunk-ORCQ3EXQ.js";
25
25
  import "./chunk-OSXPQSLW.js";
26
26
  import "./chunk-LCLH6ZUL.js";
27
- import "./chunk-MGEYAYGU.js";
27
+ import "./chunk-O3RCSKUH.js";
28
28
  import "./chunk-DPFET73G.js";
29
- import "./chunk-LQKXJPKP.js";
29
+ import "./chunk-CTWZPN7G.js";
30
30
  import "./chunk-JU757HVI.js";
31
31
  import "./chunk-K44MW7JJ.js";
32
32
  import "./chunk-CQGTEGKL.js";
@@ -49,4 +49,4 @@ export {
49
49
  renderSystemPromptDiff,
50
50
  renderToolChangeReminder
51
51
  };
52
- //# sourceMappingURL=dynamic-context-NJZKAZE3.js.map
52
+ //# sourceMappingURL=dynamic-context-WKEXQCTK.js.map
@@ -40,7 +40,7 @@ import {
40
40
  isStoredEvent,
41
41
  isTurnEvent,
42
42
  truncateSessionMessages
43
- } from "./chunk-FGNJMKDV.js";
43
+ } from "./chunk-CSYOWFPU.js";
44
44
  import {
45
45
  buildContextMessagesFromEventHistory,
46
46
  buildContextMessagesFromMessages,
@@ -57,13 +57,13 @@ import {
57
57
  foldTodos,
58
58
  foldTurnEventsToSnapshotMessages,
59
59
  getMessagesForWindow
60
- } from "./chunk-M5T4RDPJ.js";
61
- import "./chunk-KWAHD2JA.js";
62
- import "./chunk-ELYHHEYL.js";
60
+ } from "./chunk-MEEUXRFL.js";
61
+ import "./chunk-ZTBKMVV6.js";
62
+ import "./chunk-ORCQ3EXQ.js";
63
63
  import "./chunk-OSXPQSLW.js";
64
64
  import "./chunk-LCLH6ZUL.js";
65
65
  import "./chunk-DPFET73G.js";
66
- import "./chunk-LQKXJPKP.js";
66
+ import "./chunk-CTWZPN7G.js";
67
67
  import "./chunk-JU757HVI.js";
68
68
  import "./chunk-K44MW7JJ.js";
69
69
  import "./chunk-CQGTEGKL.js";
@@ -126,4 +126,4 @@ export {
126
126
  isTurnEvent,
127
127
  truncateSessionMessages
128
128
  };
129
- //# sourceMappingURL=events-ZJPRGVL2.js.map
129
+ //# sourceMappingURL=events-3WSNI7XC.js.map
@@ -26,12 +26,12 @@ import {
26
26
  spreadOptionalMessageFields,
27
27
  stripOrphanedToolCalls,
28
28
  trimSnapshotStreamingOutput
29
- } from "./chunk-M5T4RDPJ.js";
30
- import "./chunk-ELYHHEYL.js";
29
+ } from "./chunk-MEEUXRFL.js";
30
+ import "./chunk-ORCQ3EXQ.js";
31
31
  import "./chunk-OSXPQSLW.js";
32
32
  import "./chunk-LCLH6ZUL.js";
33
33
  import "./chunk-DPFET73G.js";
34
- import "./chunk-LQKXJPKP.js";
34
+ import "./chunk-CTWZPN7G.js";
35
35
  import "./chunk-JU757HVI.js";
36
36
  import "./chunk-K44MW7JJ.js";
37
37
  import "./chunk-CQGTEGKL.js";
@@ -65,4 +65,4 @@ export {
65
65
  stripOrphanedToolCalls,
66
66
  trimSnapshotStreamingOutput
67
67
  };
68
- //# sourceMappingURL=folding-QRZOHY2I.js.map
68
+ //# sourceMappingURL=folding-H7JTX6KI.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  OpenAIHttpClient
3
- } from "./chunk-6EZDW4JS.js";
4
- import "./chunk-LQKXJPKP.js";
3
+ } from "./chunk-J3NMNYGM.js";
4
+ import "./chunk-CTWZPN7G.js";
5
5
  import "./chunk-JU757HVI.js";
6
6
  import "./chunk-K44MW7JJ.js";
7
7
  import "./chunk-YLJ4XMA6.js";
8
8
  export {
9
9
  OpenAIHttpClient
10
10
  };
11
- //# sourceMappingURL=http-client-P4XTKAZA.js.map
11
+ //# sourceMappingURL=http-client-A445WYZU.js.map