openfox 2.0.133 → 2.0.135

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 (84) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/CHANGELOG.md +30 -0
  3. package/dist/{chat-handler-T47GATL5.js → chat-handler-WGDFMOOD.js} +23 -22
  4. package/dist/chunk-24YKXKCG.js +35 -0
  5. package/dist/chunk-2OMGR7LN.js +45 -0
  6. package/dist/{chunk-GFW2HWJ6.js → chunk-4R5GV7RW.js} +37 -16
  7. package/dist/{chunk-P5MSY7ZI.js → chunk-5H5NRWHA.js} +22 -17
  8. package/dist/{chunk-MQMPIXON.js → chunk-5UMXFLET.js} +3 -3
  9. package/dist/{chunk-5JWJEZJ3.js → chunk-5UQ4CKOA.js} +2 -2
  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-OUQZZEIQ.js → chunk-BIZFY3QP.js} +487 -210
  13. package/dist/{chunk-LQKXJPKP.js → chunk-CTWZPN7G.js} +5 -1
  14. package/dist/{chunk-BKMWZTNO.js → chunk-DWA4IE65.js} +14 -2
  15. package/dist/{chunk-HXHPKGJE.js → chunk-ESZQTFQP.js} +614 -157
  16. package/dist/{chunk-KWAHD2JA.js → chunk-F2MOHHXB.js} +15 -2
  17. package/dist/{chunk-A7CB4USC.js → chunk-GP3CLMPQ.js} +132 -45
  18. package/dist/{chunk-HCYSGLY2.js → chunk-HF3NDXB4.js} +1 -1
  19. package/dist/{chunk-Y6ZGHOKM.js → chunk-I5ODJKYM.js} +4 -4
  20. package/dist/{chunk-OMMPTN6X.js → chunk-IAT2LBIX.js} +69 -27
  21. package/dist/{chunk-6EZDW4JS.js → chunk-J3NMNYGM.js} +2 -2
  22. package/dist/{chunk-M5T4RDPJ.js → chunk-MEEUXRFL.js} +2 -2
  23. package/dist/{chunk-RRUSYVQD.js → chunk-NFEZATSN.js} +8 -8
  24. package/dist/{chunk-MGEYAYGU.js → chunk-O3RCSKUH.js} +2 -2
  25. package/dist/{chunk-ELYHHEYL.js → chunk-ORCQ3EXQ.js} +2 -2
  26. package/dist/{chunk-FEIRWXLX.js → chunk-OZWHRBDY.js} +64 -17
  27. package/dist/{chunk-FGNJMKDV.js → chunk-QZOV4OVN.js} +29 -5
  28. package/dist/{chunk-TACWRDDC.js → chunk-S67WIWUG.js} +2 -2
  29. package/dist/{chunk-ZL4IAFF3.js → chunk-UKIUQAQZ.js} +3 -3
  30. package/dist/{chunk-VXG3AFFY.js → chunk-VHLD6PCZ.js} +8 -8
  31. package/dist/chunk-WY3PWHWY.js +7 -0
  32. package/dist/{chunk-CLDCHOEA.js → chunk-ZMK4VX7V.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-454UEIEX.js} +9 -9
  37. package/dist/{dynamic-context-NJZKAZE3.js → dynamic-context-LKC6JYLQ.js} +10 -10
  38. package/dist/{events-ZJPRGVL2.js → events-335XAKFK.js} +6 -6
  39. package/dist/export-import-3WMRLO4A.js +137 -0
  40. package/dist/{folding-QRZOHY2I.js → folding-H7JTX6KI.js} +4 -4
  41. package/dist/{http-client-P4XTKAZA.js → http-client-A445WYZU.js} +3 -3
  42. package/dist/{install-VA2F6X6Z.js → install-AVTFA344.js} +64 -15
  43. package/dist/{launch-UKXVO37B.js → launch-GJ7EHQRI.js} +23 -22
  44. package/dist/{manager-TMBFBCQL.js → manager-ZACEUL5P.js} +4 -4
  45. package/dist/{mcp-YU7AM3UV.js → mcp-SQ4DOGPT.js} +22 -9
  46. package/dist/{orchestrator-GX22Y5EM.js → orchestrator-JGJWTRO5.js} +22 -21
  47. package/dist/package.json +3 -1
  48. package/dist/{path-security-CBACXAMS.js → path-security-4LROI7F4.js} +10 -10
  49. package/dist/{platform-5LQXOZO3.js → platform-XPMZKAUB.js} +3 -3
  50. package/dist/{processor-V35OLKRV.js → processor-MSQP63ML.js} +22 -21
  51. package/dist/{project-creator-6AGQTNXB.js → project-creator-T3A4H3YV.js} +42 -29
  52. package/dist/{protocol-BMUoqwYH.d.ts → protocol-Nr_H1_oC.d.ts} +3 -1
  53. package/dist/{protocol-Y7MRKRUO.js → protocol-XO4ZROAU.js} +3 -3
  54. package/dist/provider/index.d.ts +4 -4
  55. package/dist/provider-JWUNG2TD.js +507 -0
  56. package/dist/{provider-manager-BO5ZBG3T.js → provider-manager-2KKZ37XJ.js} +5 -5
  57. package/dist/pwa-V5PFB4OQ.js +502 -0
  58. package/dist/{registry-CMSSZHDC.js → registry-BEIR7Y5G.js} +3 -3
  59. package/dist/{serve-XRVT3D7Z.js → serve-CW5C3CBZ.js} +47 -36
  60. package/dist/server/index.d.ts +18 -3
  61. package/dist/server/index.js +27 -26
  62. package/dist/{server-GXMZMPXI.js → server-ZHEB7XS2.js} +26 -25
  63. package/dist/{service-WKABQHKL.js → service-M77VWL2M.js} +97 -32
  64. package/dist/{service-O3LCO3TQ.js → service-XIUNS5XV.js} +7 -6
  65. package/dist/{session-overrides-OECQYRDK.js → session-overrides-LYW5PJ3R.js} +5 -5
  66. package/dist/{sessions-NMPX5ICI.js → sessions-AOK3AGHY.js} +6 -4
  67. package/dist/{settings-MDCRNQBY.js → settings-ZJPM6PQV.js} +2 -2
  68. package/dist/shared/index.d.ts +31 -4
  69. package/dist/shared/index.js +16 -2
  70. package/dist/{tasks-WOC3QUFA.js → tasks-3JJWJJ3X.js} +34 -18
  71. package/dist/{tools-CW6POKUL.js → tools-E63MOJBO.js} +20 -19
  72. package/dist/{types-CoY8Ka1C.d.ts → types-BlQjLBui.d.ts} +1 -1
  73. package/dist/{types-BIkpxjaj.d.ts → types-G10ho8PT.d.ts} +1 -1
  74. package/dist/update-XVXNSSDK.js +76 -0
  75. package/dist/web/assets/{index-Y300llHY.css → index-Bg_Z8i3F.css} +1 -1
  76. package/dist/web/assets/index-wTFCxQAw.js +313 -0
  77. package/dist/web/index.html +2 -2
  78. package/dist/web/sw.js +1 -1
  79. package/package.json +3 -1
  80. package/dist/chunk-JKGHTBEV.js +0 -7
  81. package/dist/provider-NWRGNGS3.js +0 -403
  82. package/dist/pwa-2GRFSXD7.js +0 -363
  83. package/dist/update-VC3Y3EOP.js +0 -49
  84. package/dist/web/assets/index-ATAQvBwl.js +0 -312
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-IAT2LBIX.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-IAT2LBIX.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-UKIUQAQZ.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-QZOV4OVN.js";
10
+ import "./chunk-MEEUXRFL.js";
11
+ import "./chunk-F2MOHHXB.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-454UEIEX.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-VHLD6PCZ.js";
19
+ import "./chunk-DWA4IE65.js";
20
+ import "./chunk-7QMWYNVF.js";
21
+ import "./chunk-QZOV4OVN.js";
22
+ import "./chunk-MEEUXRFL.js";
23
+ import "./chunk-F2MOHHXB.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-LKC6JYLQ.js.map
@@ -40,7 +40,7 @@ import {
40
40
  isStoredEvent,
41
41
  isTurnEvent,
42
42
  truncateSessionMessages
43
- } from "./chunk-FGNJMKDV.js";
43
+ } from "./chunk-QZOV4OVN.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-F2MOHHXB.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-335XAKFK.js.map
@@ -0,0 +1,137 @@
1
+ import {
2
+ getEventStore,
3
+ getSessionState
4
+ } from "./chunk-QZOV4OVN.js";
5
+ import "./chunk-MEEUXRFL.js";
6
+ import "./chunk-F2MOHHXB.js";
7
+ import "./chunk-ORCQ3EXQ.js";
8
+ import "./chunk-OSXPQSLW.js";
9
+ import "./chunk-LCLH6ZUL.js";
10
+ import {
11
+ VERSION
12
+ } from "./chunk-WY3PWHWY.js";
13
+ import {
14
+ getProject
15
+ } from "./chunk-DPFET73G.js";
16
+ import "./chunk-CTWZPN7G.js";
17
+ import "./chunk-JU757HVI.js";
18
+ import "./chunk-K44MW7JJ.js";
19
+ import "./chunk-CQGTEGKL.js";
20
+ import "./chunk-YLJ4XMA6.js";
21
+
22
+ // src/server/session/export-import.ts
23
+ import { z } from "zod";
24
+ var SESSION_EXPORT_FORMAT = "openfox-session";
25
+ var SESSION_EXPORT_VERSION = 1;
26
+ var IMPORTED_SESSION_REMINDER = "This session was imported from another environment. The latest system reminders are authoritative.";
27
+ var cachedLayoutSchema = z.object({
28
+ systemPrompt: z.string(),
29
+ tools: z.array(
30
+ z.object({
31
+ type: z.literal("function"),
32
+ function: z.object({
33
+ name: z.string(),
34
+ description: z.string(),
35
+ parameters: z.record(z.string(), z.unknown())
36
+ })
37
+ })
38
+ ),
39
+ hash: z.string(),
40
+ promptHash: z.string().optional()
41
+ });
42
+ var sessionExportSchema = z.object({
43
+ format: z.literal(SESSION_EXPORT_FORMAT),
44
+ version: z.number().int(),
45
+ exportedAt: z.number(),
46
+ source: z.object({
47
+ openfoxVersion: z.string(),
48
+ projectName: z.string(),
49
+ workdir: z.string(),
50
+ mode: z.string(),
51
+ providerId: z.string().nullable(),
52
+ providerModel: z.string().nullable(),
53
+ effectiveModel: z.string(),
54
+ providerBackend: z.string().optional(),
55
+ providerUrl: z.string().optional()
56
+ }),
57
+ session: z.object({
58
+ title: z.string().optional(),
59
+ providerId: z.string().nullable().optional(),
60
+ providerModel: z.string().nullable().optional(),
61
+ mode: z.string(),
62
+ phase: z.string(),
63
+ createdAt: z.string().optional(),
64
+ updatedAt: z.string().optional(),
65
+ criteria: z.array(z.record(z.string(), z.unknown())).optional(),
66
+ todos: z.array(z.record(z.string(), z.unknown())).optional(),
67
+ metadataEntries: z.record(z.string(), z.array(z.record(z.string(), z.unknown()))).optional()
68
+ }),
69
+ cachedLayout: cachedLayoutSchema.optional(),
70
+ messages: z.array(z.record(z.string(), z.unknown())).optional(),
71
+ events: z.array(
72
+ z.object({
73
+ seq: z.number().int().positive(),
74
+ timestamp: z.number(),
75
+ sessionId: z.string(),
76
+ type: z.string(),
77
+ data: z.unknown()
78
+ })
79
+ )
80
+ });
81
+ function parseSessionExport(payload) {
82
+ return sessionExportSchema.parse(payload);
83
+ }
84
+ function buildSessionExport(sessionManager, sessionId) {
85
+ const session = sessionManager.requireSession(sessionId);
86
+ const project = getProject(session.projectId);
87
+ const state = getSessionState(sessionId);
88
+ const cached = sessionManager.getCachedPrompt(sessionId);
89
+ const effective = sessionManager.resolveEffectiveProviderModel(sessionId);
90
+ const sourceProvider = session.providerId ? sessionManager.getProviderManager().getProviders().find((p) => p.id === session.providerId) : void 0;
91
+ return {
92
+ format: SESSION_EXPORT_FORMAT,
93
+ version: SESSION_EXPORT_VERSION,
94
+ exportedAt: Date.now(),
95
+ source: {
96
+ openfoxVersion: VERSION,
97
+ projectName: project?.name ?? "unknown",
98
+ workdir: session.workdir,
99
+ mode: session.mode,
100
+ providerId: session.providerId ?? null,
101
+ providerModel: session.providerModel ?? null,
102
+ effectiveModel: effective.model ?? "",
103
+ ...sourceProvider?.backend ? { providerBackend: sourceProvider.backend } : {},
104
+ ...sourceProvider?.url ? { providerUrl: sourceProvider.url } : {}
105
+ },
106
+ session: {
107
+ ...session.metadata.title ? { title: session.metadata.title } : {},
108
+ ...session.providerId ? { providerId: session.providerId } : {},
109
+ ...session.providerModel ? { providerModel: session.providerModel } : {},
110
+ mode: session.mode,
111
+ phase: session.phase,
112
+ createdAt: session.createdAt,
113
+ updatedAt: session.updatedAt,
114
+ criteria: state?.criteria ?? [],
115
+ todos: state?.todos ?? [],
116
+ metadataEntries: state?.metadataEntries ?? {}
117
+ },
118
+ ...cached ? {
119
+ cachedLayout: {
120
+ systemPrompt: cached.systemPrompt,
121
+ tools: cached.tools,
122
+ hash: cached.hash,
123
+ ...cached.promptHash ? { promptHash: cached.promptHash } : {}
124
+ }
125
+ } : {},
126
+ messages: sessionManager.getCurrentWindowMessages(sessionId),
127
+ events: getEventStore().getEvents(sessionId)
128
+ };
129
+ }
130
+ export {
131
+ IMPORTED_SESSION_REMINDER,
132
+ SESSION_EXPORT_FORMAT,
133
+ SESSION_EXPORT_VERSION,
134
+ buildSessionExport,
135
+ parseSessionExport
136
+ };
137
+ //# sourceMappingURL=export-import-3WMRLO4A.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
@@ -1,3 +1,8 @@
1
+ import {
2
+ cliT
3
+ } from "./chunk-2OMGR7LN.js";
4
+ import "./chunk-24YKXKCG.js";
5
+ import "./chunk-CQGTEGKL.js";
1
6
  import "./chunk-YLJ4XMA6.js";
2
7
 
3
8
  // src/cli/install.ts
@@ -69,14 +74,38 @@ async function checkInstall(env = {}) {
69
74
  };
70
75
  }
71
76
  function printCheck(check) {
72
- console.log("OpenFox CLI installation:");
73
- console.log(` Current executable: ${check.currentExecutable}`);
74
- console.log(` Node executable: ${check.nodeExecutable}`);
75
- console.log(` npm global prefix: ${check.npmPrefix}`);
76
- console.log(` Persistent launcher: ${check.launcherPath}`);
77
- console.log(` Launcher exists: ${check.launcherExists ? "yes" : "no"}`);
78
- console.log(` Launcher is current: ${check.launcherPersistent ? "yes" : "no"}`);
79
- console.log(` Launcher directory in PATH: ${check.directoryInPath ? "yes" : "no"}`);
77
+ console.log(cliT({ en: "OpenFox CLI installation:", fr: "Installation de l\u2019interface OpenFox :" }));
78
+ console.log(
79
+ cliT({
80
+ en: ` Current executable: ${check.currentExecutable}`,
81
+ fr: ` Ex\xE9cutable actuel : ${check.currentExecutable}`
82
+ })
83
+ );
84
+ console.log(
85
+ cliT({ en: ` Node executable: ${check.nodeExecutable}`, fr: ` Ex\xE9cutable Node : ${check.nodeExecutable}` })
86
+ );
87
+ console.log(cliT({ en: ` npm global prefix: ${check.npmPrefix}`, fr: ` Pr\xE9fixe global npm : ${check.npmPrefix}` }));
88
+ console.log(
89
+ cliT({ en: ` Persistent launcher: ${check.launcherPath}`, fr: ` Lanceur persistant : ${check.launcherPath}` })
90
+ );
91
+ console.log(
92
+ cliT({
93
+ en: ` Launcher exists: ${check.launcherExists ? "yes" : "no"}`,
94
+ fr: ` Lanceur existant : ${check.launcherExists ? "oui" : "non"}`
95
+ })
96
+ );
97
+ console.log(
98
+ cliT({
99
+ en: ` Launcher is current: ${check.launcherPersistent ? "yes" : "no"}`,
100
+ fr: ` Lanceur \xE0 jour : ${check.launcherPersistent ? "oui" : "non"}`
101
+ })
102
+ );
103
+ console.log(
104
+ cliT({
105
+ en: ` Launcher directory in PATH: ${check.directoryInPath ? "yes" : "no"}`,
106
+ fr: ` R\xE9pertoire du lanceur dans le PATH : ${check.directoryInPath ? "oui" : "non"}`
107
+ })
108
+ );
80
109
  }
81
110
  async function runInstall(options = {}) {
82
111
  const env = options.env ?? {};
@@ -89,7 +118,12 @@ async function runInstall(options = {}) {
89
118
  const nodeExecutable = env.nodeExecutable ?? process.execPath;
90
119
  const cliExecutable = env.cliExecutable ?? process.argv[1];
91
120
  if (!cliExecutable) {
92
- console.error("Unable to determine the OpenFox CLI executable path.");
121
+ console.error(
122
+ cliT({
123
+ en: "Unable to determine the OpenFox CLI executable path.",
124
+ fr: "Impossible de d\xE9terminer le chemin de l\u2019ex\xE9cutable CLI d\u2019OpenFox."
125
+ })
126
+ );
93
127
  return 1;
94
128
  }
95
129
  await mkdir(dirname(launcherPath), { recursive: true });
@@ -98,15 +132,30 @@ async function runInstall(options = {}) {
98
132
  });
99
133
  const check = await checkInstall({ ...env, nodeExecutable, cliExecutable });
100
134
  if (!options.quiet) {
101
- console.log(`Persistent OpenFox launcher installed: ${launcherPath}`);
135
+ console.log(
136
+ cliT({
137
+ en: `Persistent OpenFox launcher installed: ${launcherPath}`,
138
+ fr: `Lanceur OpenFox persistant install\xE9 : ${launcherPath}`
139
+ })
140
+ );
102
141
  }
103
142
  if (!check.directoryInPath) {
104
143
  if (platform === "win32") {
105
- console.log(`Add this directory to your user PATH:
106
- ${check.launcherDirectory}`);
144
+ console.log(
145
+ cliT({
146
+ en: `Add this directory to your user PATH:
147
+ ${check.launcherDirectory}`,
148
+ fr: `Ajoutez ce r\xE9pertoire \xE0 votre PATH utilisateur :
149
+ ${check.launcherDirectory}`
150
+ })
151
+ );
107
152
  } else {
108
- console.log(`Add this line to your shell configuration:
109
- export PATH="$HOME/.local/bin:$PATH"`);
153
+ console.log(
154
+ cliT({
155
+ en: 'Add this line to your shell configuration:\nexport PATH="$HOME/.local/bin:$PATH"',
156
+ fr: 'Ajoutez cette ligne \xE0 votre configuration de shell :\nexport PATH="$HOME/.local/bin:$PATH"'
157
+ })
158
+ );
110
159
  }
111
160
  }
112
161
  return 0;
@@ -117,4 +166,4 @@ export {
117
166
  getLauncherPath,
118
167
  runInstall
119
168
  };
120
- //# sourceMappingURL=install-VA2F6X6Z.js.map
169
+ //# sourceMappingURL=install-AVTFA344.js.map
@@ -1,48 +1,49 @@
1
1
  import {
2
2
  abortRunnerRun,
3
3
  launchWorkflowRun
4
- } from "./chunk-P5MSY7ZI.js";
5
- import "./chunk-GFW2HWJ6.js";
6
- import "./chunk-HXHPKGJE.js";
4
+ } from "./chunk-5H5NRWHA.js";
5
+ import "./chunk-4R5GV7RW.js";
6
+ import "./chunk-ESZQTFQP.js";
7
7
  import "./chunk-XE6UC5Z3.js";
8
8
  import "./chunk-J7GAZGZT.js";
9
- import "./chunk-FEIRWXLX.js";
10
- import "./chunk-TACWRDDC.js";
9
+ import "./chunk-OZWHRBDY.js";
10
+ import "./chunk-S67WIWUG.js";
11
11
  import "./chunk-7ET46SNE.js";
12
12
  import "./chunk-LW6MMSTD.js";
13
- import "./chunk-MQMPIXON.js";
13
+ import "./chunk-5UMXFLET.js";
14
14
  import "./chunk-I72ACQ6R.js";
15
15
  import "./chunk-JE7LW7Y6.js";
16
16
  import "./chunk-OAN4BXEW.js";
17
- import "./chunk-VXG3AFFY.js";
18
- import "./chunk-BKMWZTNO.js";
19
- import "./chunk-7JVBDBXE.js";
17
+ import "./chunk-VHLD6PCZ.js";
18
+ import "./chunk-DWA4IE65.js";
19
+ import "./chunk-7QMWYNVF.js";
20
20
  import "./chunk-JURM3RPZ.js";
21
- import "./chunk-Y6ZGHOKM.js";
22
- import "./chunk-FGNJMKDV.js";
23
- import "./chunk-M5T4RDPJ.js";
24
- import "./chunk-KWAHD2JA.js";
25
- import "./chunk-ELYHHEYL.js";
21
+ import "./chunk-I5ODJKYM.js";
22
+ import "./chunk-QZOV4OVN.js";
23
+ import "./chunk-MEEUXRFL.js";
24
+ import "./chunk-F2MOHHXB.js";
25
+ import "./chunk-ORCQ3EXQ.js";
26
26
  import "./chunk-OSXPQSLW.js";
27
- import "./chunk-P57IBMK4.js";
27
+ import "./chunk-AATMPL7S.js";
28
28
  import "./chunk-LCLH6ZUL.js";
29
- import "./chunk-MGEYAYGU.js";
30
- import "./chunk-5JWJEZJ3.js";
29
+ import "./chunk-O3RCSKUH.js";
30
+ import "./chunk-5UQ4CKOA.js";
31
31
  import "./chunk-OA2FURC3.js";
32
32
  import "./chunk-J2GP3J3X.js";
33
33
  import "./chunk-DPFET73G.js";
34
- import "./chunk-CLDCHOEA.js";
34
+ import "./chunk-ZMK4VX7V.js";
35
35
  import "./chunk-TS5WKTFB.js";
36
36
  import "./chunk-UV6IH6HK.js";
37
37
  import "./chunk-HNCM3D7Y.js";
38
38
  import "./chunk-EUOWCVU6.js";
39
- import "./chunk-6EZDW4JS.js";
40
- import "./chunk-LQKXJPKP.js";
39
+ import "./chunk-J3NMNYGM.js";
40
+ import "./chunk-CTWZPN7G.js";
41
41
  import "./chunk-JU757HVI.js";
42
42
  import "./chunk-2AI7VYPN.js";
43
43
  import "./chunk-K44MW7JJ.js";
44
44
  import "./chunk-7OHXF5GW.js";
45
- import "./chunk-HCYSGLY2.js";
45
+ import "./chunk-HF3NDXB4.js";
46
+ import "./chunk-24YKXKCG.js";
46
47
  import "./chunk-R5FAEKXQ.js";
47
48
  import "./chunk-CQGTEGKL.js";
48
49
  import "./chunk-YLJ4XMA6.js";
@@ -50,4 +51,4 @@ export {
50
51
  abortRunnerRun,
51
52
  launchWorkflowRun
52
53
  };
53
- //# sourceMappingURL=launch-UKXVO37B.js.map
54
+ //# sourceMappingURL=launch-GJ7EHQRI.js.map
@@ -6,10 +6,10 @@ import {
6
6
  onProcessEvent,
7
7
  startProcessCommand,
8
8
  stopProcess
9
- } from "./chunk-MQMPIXON.js";
9
+ } from "./chunk-5UMXFLET.js";
10
10
  import "./chunk-I72ACQ6R.js";
11
- import "./chunk-MGEYAYGU.js";
12
- import "./chunk-LQKXJPKP.js";
11
+ import "./chunk-O3RCSKUH.js";
12
+ import "./chunk-CTWZPN7G.js";
13
13
  import "./chunk-JU757HVI.js";
14
14
  import "./chunk-K44MW7JJ.js";
15
15
  import "./chunk-YLJ4XMA6.js";
@@ -22,4 +22,4 @@ export {
22
22
  startProcessCommand,
23
23
  stopProcess
24
24
  };
25
- //# sourceMappingURL=manager-TMBFBCQL.js.map
25
+ //# sourceMappingURL=manager-ZACEUL5P.js.map
@@ -3,9 +3,13 @@ import {
3
3
  isCancel,
4
4
  password
5
5
  } from "./chunk-AGXJ5O63.js";
6
+ import {
7
+ cliT
8
+ } from "./chunk-2OMGR7LN.js";
6
9
  import {
7
10
  buildOpenFoxMcpBootstrap
8
11
  } from "./chunk-YNMP647F.js";
12
+ import "./chunk-24YKXKCG.js";
9
13
  import {
10
14
  loadAuthConfig
11
15
  } from "./chunk-CQGJ5RWB.js";
@@ -76,8 +80,12 @@ async function runMcpCommand(mode, options = {}) {
76
80
  const port = livePort ?? requestedPort;
77
81
  if (!livePort) {
78
82
  console.warn(
79
- `
80
- \u26A0 No running OpenFox server detected near port ${requestedPort} \u2014 the config below assumes it will start there.`
83
+ cliT({
84
+ en: `
85
+ \u26A0 No running OpenFox server detected near port ${requestedPort} \u2014 the config below assumes it will start there.`,
86
+ fr: `
87
+ \u26A0 Aucun serveur OpenFox en cours d\xE9tect\xE9 pr\xE8s du port ${requestedPort} \u2014 la configuration ci-dessous suppose qu\u2019il d\xE9marrera l\xE0.`
88
+ })
81
89
  );
82
90
  }
83
91
  const authRequired = auth?.strategy === "network" && auth.encryptedPassword != null && auth.encryptedPassword.length > 0;
@@ -86,7 +94,7 @@ async function runMcpCommand(mode, options = {}) {
86
94
  const privateKey = await readFile(getAuthKeyPath(mode), "utf-8");
87
95
  let entered = options.password;
88
96
  if (entered == null) {
89
- const pwd = await password({ message: "OpenFox password:" });
97
+ const pwd = await password({ message: cliT({ en: "OpenFox password:", fr: "Mot de passe OpenFox :" }) });
90
98
  if (isCancel(pwd)) {
91
99
  cancel();
92
100
  process.exit(1);
@@ -94,18 +102,23 @@ async function runMcpCommand(mode, options = {}) {
94
102
  entered = typeof pwd === "string" ? pwd : "";
95
103
  }
96
104
  if (!verifyPassword(auth.encryptedPassword, privateKey, entered)) {
97
- console.error("Invalid password");
105
+ console.error(cliT({ en: "Invalid password", fr: "Mot de passe invalide" }));
98
106
  process.exit(1);
99
107
  }
100
108
  sessionToken = signSessionToken(privateKey, entered);
101
109
  }
102
110
  const bootstrap = buildOpenFoxMcpBootstrap({ host, port, authRequired, sessionToken });
103
- console.log("OpenFox MCP client config");
104
- console.log("=========================");
111
+ console.log(cliT({ en: "OpenFox MCP client config", fr: "Configuration client MCP OpenFox" }));
112
+ console.log(cliT({ en: "=========================", fr: "=========================" }));
105
113
  console.log();
106
- console.log(`Endpoint: ${bootstrap.url}`);
114
+ console.log(cliT({ en: `Endpoint: ${bootstrap.url}`, fr: `Point de terminaison : ${bootstrap.url}` }));
107
115
  console.log();
108
- console.log("Paste into your MCP client (Claude Desktop, Cursor, ...):");
116
+ console.log(
117
+ cliT({
118
+ en: "Paste into your MCP client (Claude Desktop, Cursor, ...):",
119
+ fr: "Collez dans votre client MCP (Claude Desktop, Cursor, ...) :"
120
+ })
121
+ );
109
122
  console.log();
110
123
  console.log(renderMcpClientConfig(bootstrap));
111
124
  }
@@ -117,4 +130,4 @@ export {
117
130
  signSessionToken,
118
131
  verifyPassword
119
132
  };
120
- //# sourceMappingURL=mcp-YU7AM3UV.js.map
133
+ //# sourceMappingURL=mcp-SQ4DOGPT.js.map