openfox 1.6.103 → 2.0.0-beta.1

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 (39) hide show
  1. package/dist/agent-defaults/builder.agent.md +1 -2
  2. package/dist/agent-defaults/code-reviewer.agent.md +16 -9
  3. package/dist/agent-defaults/planner.agent.md +1 -1
  4. package/dist/agent-defaults/verifier.agent.md +2 -3
  5. package/dist/{auto-compaction-7LMAY5JV.js → auto-compaction-UIWTO3H5.js} +6 -6
  6. package/dist/{chat-handler-ZJVIM7U4.js → chat-handler-IVIWOR3D.js} +9 -10
  7. package/dist/{chunk-PQOK4XCX.js → chunk-4U4CSRBE.js} +7 -5
  8. package/dist/{chunk-RYEZ7LDX.js → chunk-ALH4KM2Y.js} +108 -231
  9. package/dist/{chunk-RCQOHFAN.js → chunk-CEZNMLOO.js} +10 -2
  10. package/dist/{chunk-MEYDERUX.js → chunk-FQLK5GL5.js} +1 -1
  11. package/dist/{chunk-6WZI6F6G.js → chunk-NONI4CRP.js} +19 -1
  12. package/dist/{chunk-IZC2EZ4D.js → chunk-QFSSKIQ3.js} +4 -4
  13. package/dist/{chunk-PDPXHSNZ.js → chunk-UFY4I643.js} +4 -4
  14. package/dist/{chunk-J335KZ6U.js → chunk-XKR3HCAL.js} +14 -3
  15. package/dist/{chunk-LGN6IXGS.js → chunk-ZLUBZ4K4.js} +501 -263
  16. package/dist/cli/dev.js +1 -1
  17. package/dist/cli/index.js +1 -1
  18. package/dist/cli/update.sh +8 -3
  19. package/dist/{events-OKTZRT3Y.js → events-OHJWCI3S.js} +5 -3
  20. package/dist/{folding-Z3OMWNOE.js → folding-U6UHQAS5.js} +4 -2
  21. package/dist/{orchestrator-5EYWRAZ2.js → orchestrator-7ZXM4J22.js} +7 -7
  22. package/dist/package.json +1 -1
  23. package/dist/{processor-XJYCHNV6.js → processor-TKBJLQ2N.js} +7 -7
  24. package/dist/{protocol-CdVNdXi8.d.ts → protocol-BQ12Aw5J.d.ts} +14 -3
  25. package/dist/{protocol-TNC6MCJV.js → protocol-K62EPEGS.js} +5 -3
  26. package/dist/{serve-NWPJO6J7.js → serve-5KA6SSSP.js} +8 -8
  27. package/dist/server/index.d.ts +7 -1
  28. package/dist/server/index.js +7 -7
  29. package/dist/{service-EUOBAATS.js → service-GB7AIOG5.js} +10 -4
  30. package/dist/shared/index.d.ts +2 -2
  31. package/dist/shared/index.js +1 -1
  32. package/dist/{tools-WFIYKFBE.js → tools-Z7X4HXZN.js} +6 -6
  33. package/dist/web/assets/{index-aAebFDVk.css → index-BY8EbT5Z.css} +1 -1
  34. package/dist/web/assets/index-CqOJgw7l.js +299 -0
  35. package/dist/web/index.html +2 -2
  36. package/dist/web/sw.js +1 -1
  37. package/dist/workflow-defaults/default.workflow.json +58 -10
  38. package/package.json +1 -1
  39. package/dist/web/assets/index-DcGVOFte.js +0 -299
package/dist/cli/dev.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-PQOK4XCX.js";
4
+ } from "../chunk-4U4CSRBE.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.js";
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-PQOK4XCX.js";
4
+ } from "../chunk-4U4CSRBE.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.js";
@@ -10,9 +10,14 @@ if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
10
10
  fi
11
11
 
12
12
  echo "Updating OpenFox: $CURRENT_VERSION -> $LATEST_VERSION"
13
- openfox service stop
14
13
  npm cache clean --force
15
14
  npm update -g openfox
16
15
  NEW_VERSION=$(openfox --version)
17
- openfox service start
18
- echo "Updated: $NEW_VERSION"
16
+
17
+ if [ "$1" = "--service" ]; then
18
+ echo "Restarting service..."
19
+ systemd-run --user --scope systemctl --user restart openfox
20
+ else
21
+ echo "Updated: $NEW_VERSION"
22
+ echo "Please restart OpenFox to use the new version."
23
+ fi
@@ -14,6 +14,7 @@ import {
14
14
  emitMessageDelta,
15
15
  emitMessageDone,
16
16
  emitMessageThinking,
17
+ emitMetadataSet,
17
18
  emitModeChanged,
18
19
  emitPhaseChanged,
19
20
  emitRunningChanged,
@@ -37,7 +38,7 @@ import {
37
38
  isStoredEvent,
38
39
  isTurnEvent,
39
40
  truncateSessionMessages
40
- } from "./chunk-J335KZ6U.js";
41
+ } from "./chunk-XKR3HCAL.js";
41
42
  import "./chunk-FBGWG4N6.js";
42
43
  import {
43
44
  buildContextMessagesFromEventHistory,
@@ -55,7 +56,7 @@ import {
55
56
  foldTodos,
56
57
  foldTurnEventsToSnapshotMessages,
57
58
  getMessagesForWindow
58
- } from "./chunk-6WZI6F6G.js";
59
+ } from "./chunk-NONI4CRP.js";
59
60
  import "./chunk-CGZHLM3K.js";
60
61
  import "./chunk-K44MW7JJ.js";
61
62
  export {
@@ -80,6 +81,7 @@ export {
80
81
  emitMessageDelta,
81
82
  emitMessageDone,
82
83
  emitMessageThinking,
84
+ emitMetadataSet,
83
85
  emitModeChanged,
84
86
  emitPhaseChanged,
85
87
  emitRunningChanged,
@@ -113,4 +115,4 @@ export {
113
115
  isTurnEvent,
114
116
  truncateSessionMessages
115
117
  };
116
- //# sourceMappingURL=events-OKTZRT3Y.js.map
118
+ //# sourceMappingURL=events-OHJWCI3S.js.map
@@ -8,6 +8,7 @@ import {
8
8
  foldContextState,
9
9
  foldCriteria,
10
10
  foldIsRunning,
11
+ foldMetadata,
11
12
  foldMode,
12
13
  foldPendingConfirmations,
13
14
  foldPhase,
@@ -22,7 +23,7 @@ import {
22
23
  handleToolResult,
23
24
  spreadOptionalMessageFields,
24
25
  stripOrphanedToolCalls
25
- } from "./chunk-6WZI6F6G.js";
26
+ } from "./chunk-NONI4CRP.js";
26
27
  export {
27
28
  buildContextMessagesFromEventHistory,
28
29
  buildContextMessagesFromMessages,
@@ -33,6 +34,7 @@ export {
33
34
  foldContextState,
34
35
  foldCriteria,
35
36
  foldIsRunning,
37
+ foldMetadata,
36
38
  foldMode,
37
39
  foldPendingConfirmations,
38
40
  foldPhase,
@@ -48,4 +50,4 @@ export {
48
50
  spreadOptionalMessageFields,
49
51
  stripOrphanedToolCalls
50
52
  };
51
- //# sourceMappingURL=folding-Z3OMWNOE.js.map
53
+ //# sourceMappingURL=folding-U6UHQAS5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  runBuilderTurn,
4
4
  runChatTurn,
5
5
  runVerifierTurn
6
- } from "./chunk-PDPXHSNZ.js";
6
+ } from "./chunk-UFY4I643.js";
7
7
  import {
8
8
  TurnMetrics,
9
9
  createChatDoneEvent,
@@ -11,19 +11,19 @@ import {
11
11
  createMessageStartEvent,
12
12
  createToolCallEvent,
13
13
  createToolResultEvent
14
- } from "./chunk-RYEZ7LDX.js";
14
+ } from "./chunk-ALH4KM2Y.js";
15
15
  import "./chunk-PSJIT5LZ.js";
16
16
  import "./chunk-XAMAYRDA.js";
17
17
  import "./chunk-DL6ZILAF.js";
18
18
  import "./chunk-PBGOZMVY.js";
19
19
  import "./chunk-VRGRAQDG.js";
20
20
  import "./chunk-HGAMIPFO.js";
21
- import "./chunk-J335KZ6U.js";
21
+ import "./chunk-XKR3HCAL.js";
22
22
  import "./chunk-FBGWG4N6.js";
23
- import "./chunk-6WZI6F6G.js";
24
- import "./chunk-RCQOHFAN.js";
23
+ import "./chunk-NONI4CRP.js";
24
+ import "./chunk-CEZNMLOO.js";
25
25
  import "./chunk-BJYPTN5S.js";
26
- import "./chunk-MEYDERUX.js";
26
+ import "./chunk-FQLK5GL5.js";
27
27
  import "./chunk-CQGTEGKL.js";
28
28
  import "./chunk-CGZHLM3K.js";
29
29
  import "./chunk-SZKEGZIB.js";
@@ -40,4 +40,4 @@ export {
40
40
  runChatTurn,
41
41
  runVerifierTurn
42
42
  };
43
- //# sourceMappingURL=orchestrator-5EYWRAZ2.js.map
43
+ //# sourceMappingURL=orchestrator-7ZXM4J22.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "1.6.103",
3
+ "version": "2.0.0-beta.1",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -5,17 +5,17 @@ import {
5
5
  generateSessionName,
6
6
  getSessionMessageCount,
7
7
  needsNameGenerationCheck
8
- } from "./chunk-IZC2EZ4D.js";
8
+ } from "./chunk-QFSSKIQ3.js";
9
9
  import {
10
10
  getEventStore
11
- } from "./chunk-J335KZ6U.js";
11
+ } from "./chunk-XKR3HCAL.js";
12
12
  import "./chunk-FBGWG4N6.js";
13
- import "./chunk-6WZI6F6G.js";
13
+ import "./chunk-NONI4CRP.js";
14
14
  import {
15
15
  createChatMessageMessage,
16
16
  createSessionRunningMessage
17
- } from "./chunk-RCQOHFAN.js";
18
- import "./chunk-MEYDERUX.js";
17
+ } from "./chunk-CEZNMLOO.js";
18
+ import "./chunk-FQLK5GL5.js";
19
19
  import "./chunk-CGZHLM3K.js";
20
20
  import {
21
21
  logger
@@ -177,7 +177,7 @@ var QueueProcessor = class {
177
177
  backend: provider?.backend ?? llmClient.getBackend(),
178
178
  model: llmClient.getModel()
179
179
  };
180
- const { runChatTurn } = await import("./orchestrator-5EYWRAZ2.js");
180
+ const { runChatTurn } = await import("./orchestrator-7ZXM4J22.js");
181
181
  const runChatTurnParams = buildRunChatTurnParams({
182
182
  sessionManager,
183
183
  sessionId,
@@ -221,4 +221,4 @@ var QueueProcessor = class {
221
221
  export {
222
222
  QueueProcessor
223
223
  };
224
- //# sourceMappingURL=processor-XJYCHNV6.js.map
224
+ //# sourceMappingURL=processor-TKBJLQ2N.js.map
@@ -28,6 +28,7 @@ interface Session {
28
28
  contextWindows: ContextWindow[];
29
29
  executionState: ExecutionState | null;
30
30
  metadata: SessionMetadata;
31
+ metadataEntries: Record<string, MetadataEntry[]>;
31
32
  dangerLevel?: DangerLevel;
32
33
  messageCount?: number;
33
34
  }
@@ -326,7 +327,7 @@ interface ToolResult {
326
327
  };
327
328
  metadata?: Record<string, unknown>;
328
329
  }
329
- type ToolName = 'read_file' | 'write_file' | 'edit_file' | 'run_command' | 'glob' | 'grep' | 'ask_user' | 'criterion' | 'todo' | 'web_fetch';
330
+ type ToolName = 'read_file' | 'write_file' | 'edit_file' | 'run_command' | 'glob' | 'grep' | 'ask_user' | 'session_metadata' | 'web_fetch';
330
331
  interface Criterion {
331
332
  id: string;
332
333
  description: string;
@@ -360,6 +361,12 @@ interface Todo {
360
361
  content: string;
361
362
  status: 'pending' | 'in_progress' | 'completed';
362
363
  }
364
+ interface MetadataEntry {
365
+ id: string;
366
+ description: string;
367
+ status: string;
368
+ [key: string]: unknown;
369
+ }
363
370
  interface FileReadEntry {
364
371
  hash: string;
365
372
  readAt: string;
@@ -532,7 +539,7 @@ interface QueuedMessage {
532
539
  queuedAt: string;
533
540
  messageKind?: string;
534
541
  }
535
- type ServerMessageType = 'project.state' | 'project.list' | 'project.deleted' | 'session.state' | 'session.list' | 'session.deleted' | 'session.deletedAll' | 'session.running' | 'session.name_generated' | 'chat.delta' | 'chat.thinking' | 'chat.tool_preparing' | 'chat.tool_call' | 'chat.tool_output' | 'chat.tool_result' | 'chat.todo' | 'chat.progress' | 'chat.format_retry' | 'chat.message' | 'chat.message_updated' | 'chat.done' | 'chat.vision_fallback' | 'chat.error' | 'chat.path_confirmation' | 'chat.ask_user' | 'mode.changed' | 'phase.changed' | 'task.completed' | 'criteria.updated' | 'context.state' | 'settings.value' | 'provider.changed' | 'queue.state' | 'devServer.output' | 'devServer.state' | 'backgroundProcess.started' | 'backgroundProcess.output' | 'backgroundProcess.exited' | 'backgroundProcess.removed' | 'git.status' | 'lsp.diagnostics' | 'error' | 'ack';
542
+ type ServerMessageType = 'project.state' | 'project.list' | 'project.deleted' | 'session.state' | 'session.list' | 'session.deleted' | 'session.deletedAll' | 'session.running' | 'session.name_generated' | 'chat.delta' | 'chat.thinking' | 'chat.tool_preparing' | 'chat.tool_call' | 'chat.tool_output' | 'chat.tool_result' | 'chat.todo' | 'chat.progress' | 'chat.format_retry' | 'chat.message' | 'chat.message_updated' | 'chat.done' | 'chat.vision_fallback' | 'chat.error' | 'chat.path_confirmation' | 'chat.ask_user' | 'mode.changed' | 'phase.changed' | 'task.completed' | 'criteria.updated' | 'metadata.updated' | 'context.state' | 'settings.value' | 'provider.changed' | 'queue.state' | 'devServer.output' | 'devServer.state' | 'backgroundProcess.started' | 'backgroundProcess.output' | 'backgroundProcess.exited' | 'backgroundProcess.removed' | 'git.status' | 'lsp.diagnostics' | 'error' | 'ack';
536
543
  interface ServerMessage<T = unknown> {
537
544
  id?: string;
538
545
  type: ServerMessageType;
@@ -695,6 +702,10 @@ interface CriteriaUpdatedPayload {
695
702
  criteria: Criterion[];
696
703
  changedId?: string;
697
704
  }
705
+ interface MetadataUpdatedPayload {
706
+ key: string;
707
+ entries: MetadataEntry[];
708
+ }
698
709
  interface ContextStatePayload {
699
710
  context: ContextState;
700
711
  subAgentId?: string;
@@ -865,4 +876,4 @@ interface QueueCancelledEvent {
865
876
  }
866
877
  type QueueEvent = QueueAddedEvent | QueueDrainedEvent | QueueCancelledEvent;
867
878
 
868
- export { type GitStatusPayload as $, type AgentEvent as A, type BackgroundProcess as B, type CallStatsDataPoint as C, type Config as D, type ContextCompactionEvent as E, type ContextState as F, type ContextStatePayload as G, type ContextWindow as H, type CriteriaUpdatedPayload as I, type Criterion as J, type CriterionAttempt as K, type CriterionStatus as L, type Message as M, type CriterionValidation as N, type DangerLevel as O, type DevServerOutputPayload as P, type DevServerStatePayload as Q, type Diagnostic as R, type SessionStats as S, type EditContextEdit as T, type EditContextLine as U, type EditContextRegion as V, type ElementData as W, type ErrorPayload as X, type ExecutionState as Y, type FileReadEntry as Z, type GitDiffFile as _, type AskAnswerPayload as a, type InjectedFile as a0, type LLMCallStats as a1, type LlmBackend as a2, type LogLine as a3, type LspDiagnosticsPayload as a4, type MessageRole as a5, type MessageSegment as a6, type MessageStats as a7, type ModeChangedPayload as a8, type ModelConfig as a9, type ServerMessageType as aA, type Session as aB, type SessionListPayload as aC, type SessionLoadPayload as aD, type SessionMetadata as aE, type SessionMode as aF, type SessionNameGeneratedPayload as aG, type SessionPhase as aH, type SessionRunningPayload as aI, type SessionStatePayload as aJ, type SessionSummary as aK, type StatsDataPoint as aL, type StatsIdentity as aM, type TaskCompletedPayload as aN, type Todo as aO, type ToolCall as aP, type ToolMode as aQ, type ToolName as aR, type ToolResult as aS, type ValidationResult as aT, createClientMessage as aU, createServerMessage as aV, isClientMessage as aW, isServerMessage as aX, type ModelSessionStats as aa, type PathConfirmPayload as ab, type PathConfirmationReason as ac, type PendingPathConfirmationPayload as ad, type PhaseChangedPayload as ae, type PreparingToolCall as af, type Project as ag, type ProjectDeletedPayload as ah, type ProjectListPayload as ai, type ProjectStatePayload as aj, type PromptContext as ak, type PromptContextMessage as al, type PromptContextTool as am, type PromptRequestOptions as an, type Provider as ao, type ProviderBackend as ap, type ProviderChangedPayload as aq, type QueueAddedEvent as ar, type QueueCancelledEvent as as, type QueueDrainedEvent as at, type QueueEvent as au, type QueueEventType as av, type QueueStatePayload as aw, type QueuedMessage as ax, type RecentUserPrompt as ay, type ServerMessage as az, type AskUserEvent as b, type Attachment as c, type BackgroundProcessExitedPayload as d, type BackgroundProcessOutputPayload as e, type BackgroundProcessRemovedPayload as f, type BackgroundProcessStartedPayload as g, type BackgroundProcessStatus as h, type ChatAskUserPayload as i, type ChatDeltaPayload as j, type ChatDonePayload as k, type ChatErrorPayload as l, type ChatFormatRetryPayload as m, type ChatMessagePayload as n, type ChatMessageUpdatedPayload as o, type ChatPathConfirmationPayload as p, type ChatProgressPayload as q, type ChatThinkingPayload as r, type ChatTodoPayload as s, type ChatToolCallPayload as t, type ChatToolOutputPayload as u, type ChatToolPreparingPayload as v, type ChatToolResultPayload as w, type ChatVisionFallbackPayload as x, type ClientMessage as y, type ClientMessageType as z };
879
+ export { type GitStatusPayload as $, type AgentEvent as A, type BackgroundProcess as B, type CallStatsDataPoint as C, type Config as D, type ContextCompactionEvent as E, type ContextState as F, type ContextStatePayload as G, type ContextWindow as H, type CriteriaUpdatedPayload as I, type Criterion as J, type CriterionAttempt as K, type CriterionStatus as L, type Message as M, type CriterionValidation as N, type DangerLevel as O, type DevServerOutputPayload as P, type DevServerStatePayload as Q, type Diagnostic as R, type SessionStats as S, type EditContextEdit as T, type EditContextLine as U, type EditContextRegion as V, type ElementData as W, type ErrorPayload as X, type ExecutionState as Y, type FileReadEntry as Z, type GitDiffFile as _, type AskAnswerPayload as a, type InjectedFile as a0, type LLMCallStats as a1, type LlmBackend as a2, type LogLine as a3, type LspDiagnosticsPayload as a4, type MessageRole as a5, type MessageSegment as a6, type MessageStats as a7, type MetadataEntry as a8, type MetadataUpdatedPayload as a9, type RecentUserPrompt as aA, type ServerMessage as aB, type ServerMessageType as aC, type Session as aD, type SessionListPayload as aE, type SessionLoadPayload as aF, type SessionMetadata as aG, type SessionMode as aH, type SessionNameGeneratedPayload as aI, type SessionPhase as aJ, type SessionRunningPayload as aK, type SessionStatePayload as aL, type SessionSummary as aM, type StatsDataPoint as aN, type StatsIdentity as aO, type TaskCompletedPayload as aP, type Todo as aQ, type ToolCall as aR, type ToolMode as aS, type ToolName as aT, type ToolResult as aU, type ValidationResult as aV, createClientMessage as aW, createServerMessage as aX, isClientMessage as aY, isServerMessage as aZ, type ModeChangedPayload as aa, type ModelConfig as ab, type ModelSessionStats as ac, type PathConfirmPayload as ad, type PathConfirmationReason as ae, type PendingPathConfirmationPayload as af, type PhaseChangedPayload as ag, type PreparingToolCall as ah, type Project as ai, type ProjectDeletedPayload as aj, type ProjectListPayload as ak, type ProjectStatePayload as al, type PromptContext as am, type PromptContextMessage as an, type PromptContextTool as ao, type PromptRequestOptions as ap, type Provider as aq, type ProviderBackend as ar, type ProviderChangedPayload as as, type QueueAddedEvent as at, type QueueCancelledEvent as au, type QueueDrainedEvent as av, type QueueEvent as aw, type QueueEventType as ax, type QueueStatePayload as ay, type QueuedMessage as az, type AskUserEvent as b, type Attachment as c, type BackgroundProcessExitedPayload as d, type BackgroundProcessOutputPayload as e, type BackgroundProcessRemovedPayload as f, type BackgroundProcessStartedPayload as g, type BackgroundProcessStatus as h, type ChatAskUserPayload as i, type ChatDeltaPayload as j, type ChatDonePayload as k, type ChatErrorPayload as l, type ChatFormatRetryPayload as m, type ChatMessagePayload as n, type ChatMessageUpdatedPayload as o, type ChatPathConfirmationPayload as p, type ChatProgressPayload as q, type ChatThinkingPayload as r, type ChatTodoPayload as s, type ChatToolCallPayload as t, type ChatToolOutputPayload as u, type ChatToolPreparingPayload as v, type ChatToolResultPayload as w, type ChatVisionFallbackPayload as x, type ClientMessage as y, type ClientMessageType as z };
@@ -19,6 +19,7 @@ import {
19
19
  createCriteriaUpdatedMessage,
20
20
  createErrorMessage,
21
21
  createGitStatusMessage,
22
+ createMetadataUpdatedMessage,
22
23
  createModeChangedMessage,
23
24
  createPhaseChangedMessage,
24
25
  createProjectListMessage,
@@ -35,8 +36,8 @@ import {
35
36
  parseClientMessage,
36
37
  serializeServerMessage,
37
38
  storedEventToServerMessage
38
- } from "./chunk-RCQOHFAN.js";
39
- import "./chunk-MEYDERUX.js";
39
+ } from "./chunk-CEZNMLOO.js";
40
+ import "./chunk-FQLK5GL5.js";
40
41
  export {
41
42
  createChatAskUserMessage,
42
43
  createChatDeltaMessage,
@@ -58,6 +59,7 @@ export {
58
59
  createCriteriaUpdatedMessage,
59
60
  createErrorMessage,
60
61
  createGitStatusMessage,
62
+ createMetadataUpdatedMessage,
61
63
  createModeChangedMessage,
62
64
  createPhaseChangedMessage,
63
65
  createProjectListMessage,
@@ -75,4 +77,4 @@ export {
75
77
  serializeServerMessage,
76
78
  storedEventToServerMessage
77
79
  };
78
- //# sourceMappingURL=protocol-TNC6MCJV.js.map
80
+ //# sourceMappingURL=protocol-K62EPEGS.js.map
@@ -6,9 +6,9 @@ import {
6
6
  import {
7
7
  VERSION,
8
8
  createServer
9
- } from "./chunk-LGN6IXGS.js";
10
- import "./chunk-PDPXHSNZ.js";
11
- import "./chunk-RYEZ7LDX.js";
9
+ } from "./chunk-ZLUBZ4K4.js";
10
+ import "./chunk-UFY4I643.js";
11
+ import "./chunk-ALH4KM2Y.js";
12
12
  import "./chunk-PSJIT5LZ.js";
13
13
  import "./chunk-XAMAYRDA.js";
14
14
  import "./chunk-DL6ZILAF.js";
@@ -17,13 +17,13 @@ import "./chunk-VRGRAQDG.js";
17
17
  import "./chunk-RF2JGDSS.js";
18
18
  import "./chunk-HHAJ3QF6.js";
19
19
  import "./chunk-HGAMIPFO.js";
20
- import "./chunk-J335KZ6U.js";
20
+ import "./chunk-XKR3HCAL.js";
21
21
  import "./chunk-FBGWG4N6.js";
22
- import "./chunk-6WZI6F6G.js";
23
- import "./chunk-RCQOHFAN.js";
22
+ import "./chunk-NONI4CRP.js";
23
+ import "./chunk-CEZNMLOO.js";
24
24
  import "./chunk-BJYPTN5S.js";
25
25
  import "./chunk-VUQCQXXJ.js";
26
- import "./chunk-MEYDERUX.js";
26
+ import "./chunk-FQLK5GL5.js";
27
27
  import {
28
28
  ensureDataDirExists,
29
29
  getDatabasePath,
@@ -190,4 +190,4 @@ async function runServe(options) {
190
190
  export {
191
191
  runServe
192
192
  };
193
- //# sourceMappingURL=serve-NWPJO6J7.js.map
193
+ //# sourceMappingURL=serve-5KA6SSSP.js.map
@@ -1,4 +1,4 @@
1
- import { aP as ToolCall, c as Attachment, R as Diagnostic, ao as Provider, a9 as ModelConfig, aB as Session, aK as SessionSummary, ag as Project, aF as SessionMode, aH as SessionPhase, M as Message, J as Criterion, L as CriterionStatus, ax as QueuedMessage, F as ContextState, O as DangerLevel$1, az as ServerMessage, aM as StatsIdentity, aS as ToolResult, D as Config } from '../protocol-CdVNdXi8.js';
1
+ import { aR as ToolCall, c as Attachment, R as Diagnostic, aq as Provider, ab as ModelConfig, aD as Session, aM as SessionSummary, ai as Project, aH as SessionMode, aJ as SessionPhase, M as Message, J as Criterion, L as CriterionStatus, a8 as MetadataEntry, az as QueuedMessage, F as ContextState, O as DangerLevel$1, aB as ServerMessage, aO as StatsIdentity, aU as ToolResult, D as Config } from '../protocol-BQ12Aw5J.js';
2
2
  import { Server } from 'node:http';
3
3
 
4
4
  interface LLMMessage {
@@ -265,6 +265,11 @@ type SessionEvent = {
265
265
  type: 'criteria_updated';
266
266
  sessionId: string;
267
267
  criteria: Criterion[];
268
+ } | {
269
+ type: 'metadata_updated';
270
+ sessionId: string;
271
+ key: string;
272
+ entries: MetadataEntry[];
268
273
  } | {
269
274
  type: 'message_added';
270
275
  sessionId: string;
@@ -436,6 +441,7 @@ declare class SessionManager {
436
441
  * Remove a criterion.
437
442
  */
438
443
  removeCriterion(sessionId: string, criterionId: string): Criterion[];
444
+ setMetadataEntries(sessionId: string, key: string, entries: MetadataEntry[]): void;
439
445
  private messageQueues;
440
446
  queueMessage(sessionId: string, mode: 'asap' | 'completion', content: string, attachments?: Attachment[], messageKind?: string): QueuedMessage;
441
447
  cancelQueuedMessage(sessionId: string, queueId: string): boolean;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-LGN6IXGS.js";
5
- import "../chunk-PDPXHSNZ.js";
6
- import "../chunk-RYEZ7LDX.js";
4
+ } from "../chunk-ZLUBZ4K4.js";
5
+ import "../chunk-UFY4I643.js";
6
+ import "../chunk-ALH4KM2Y.js";
7
7
  import "../chunk-PSJIT5LZ.js";
8
8
  import "../chunk-XAMAYRDA.js";
9
9
  import "../chunk-DL6ZILAF.js";
@@ -12,13 +12,13 @@ import "../chunk-VRGRAQDG.js";
12
12
  import "../chunk-RF2JGDSS.js";
13
13
  import "../chunk-HHAJ3QF6.js";
14
14
  import "../chunk-HGAMIPFO.js";
15
- import "../chunk-J335KZ6U.js";
15
+ import "../chunk-XKR3HCAL.js";
16
16
  import "../chunk-FBGWG4N6.js";
17
- import "../chunk-6WZI6F6G.js";
18
- import "../chunk-RCQOHFAN.js";
17
+ import "../chunk-NONI4CRP.js";
18
+ import "../chunk-CEZNMLOO.js";
19
19
  import "../chunk-BJYPTN5S.js";
20
20
  import "../chunk-VUQCQXXJ.js";
21
- import "../chunk-MEYDERUX.js";
21
+ import "../chunk-FQLK5GL5.js";
22
22
  import "../chunk-CQGTEGKL.js";
23
23
  import "../chunk-CGZHLM3K.js";
24
24
  import "../chunk-SZKEGZIB.js";
@@ -113,7 +113,8 @@ Type=simple
113
113
  ExecStart=${expandPath(RUN_SCRIPT_PATH)}
114
114
  Restart=always
115
115
  RestartSec=5
116
- KillMode=process
116
+ KillMode=control-group
117
+ Environment=OPENFOX_SERVICE=true
117
118
 
118
119
  [Install]
119
120
  WantedBy=graphical-session.target
@@ -215,8 +216,13 @@ async function serviceStop() {
215
216
  console.log("Service is not running.");
216
217
  return;
217
218
  }
218
- systemctl(["stop", SERVICE_NAME]);
219
- console.log("\u2713 Service stopped");
219
+ const { success: stopped } = systemctl(["stop", SERVICE_NAME]);
220
+ if (stopped) {
221
+ console.log("\u2713 Service stopped");
222
+ } else {
223
+ console.error("\u2717 Failed to stop service");
224
+ process.exit(1);
225
+ }
220
226
  }
221
227
  async function serviceRestart() {
222
228
  const installed = await pathExists(SERVICE_PATH);
@@ -276,4 +282,4 @@ async function serviceUninstall() {
276
282
  export {
277
283
  runServiceCommand
278
284
  };
279
- //# sourceMappingURL=service-EUOBAATS.js.map
285
+ //# sourceMappingURL=service-GB7AIOG5.js.map
@@ -1,5 +1,5 @@
1
- import { M as Message, S as SessionStats } from '../protocol-CdVNdXi8.js';
2
- export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, c as Attachment, B as BackgroundProcess, d as BackgroundProcessExitedPayload, e as BackgroundProcessOutputPayload, f as BackgroundProcessRemovedPayload, g as BackgroundProcessStartedPayload, h as BackgroundProcessStatus, C as CallStatsDataPoint, i as ChatAskUserPayload, j as ChatDeltaPayload, k as ChatDonePayload, l as ChatErrorPayload, m as ChatFormatRetryPayload, n as ChatMessagePayload, o as ChatMessageUpdatedPayload, p as ChatPathConfirmationPayload, q as ChatProgressPayload, r as ChatThinkingPayload, s as ChatTodoPayload, t as ChatToolCallPayload, u as ChatToolOutputPayload, v as ChatToolPreparingPayload, w as ChatToolResultPayload, x as ChatVisionFallbackPayload, y as ClientMessage, z as ClientMessageType, D as Config, E as ContextCompactionEvent, F as ContextState, G as ContextStatePayload, H as ContextWindow, I as CriteriaUpdatedPayload, J as Criterion, K as CriterionAttempt, L as CriterionStatus, N as CriterionValidation, O as DangerLevel, P as DevServerOutputPayload, Q as DevServerStatePayload, R as Diagnostic, T as EditContextEdit, U as EditContextLine, V as EditContextRegion, W as ElementData, X as ErrorPayload, Y as ExecutionState, Z as FileReadEntry, _ as GitDiffFile, $ as GitStatusPayload, a0 as InjectedFile, a1 as LLMCallStats, a2 as LlmBackend, a3 as LogLine, a4 as LspDiagnosticsPayload, a5 as MessageRole, a6 as MessageSegment, a7 as MessageStats, a8 as ModeChangedPayload, a9 as ModelConfig, aa as ModelSessionStats, ab as PathConfirmPayload, ac as PathConfirmationReason, ad as PendingPathConfirmationPayload, ae as PhaseChangedPayload, af as PreparingToolCall, ag as Project, ah as ProjectDeletedPayload, ai as ProjectListPayload, aj as ProjectStatePayload, ak as PromptContext, al as PromptContextMessage, am as PromptContextTool, an as PromptRequestOptions, ao as Provider, ap as ProviderBackend, aq as ProviderChangedPayload, ar as QueueAddedEvent, as as QueueCancelledEvent, at as QueueDrainedEvent, au as QueueEvent, av as QueueEventType, aw as QueueStatePayload, ax as QueuedMessage, ay as RecentUserPrompt, az as ServerMessage, aA as ServerMessageType, aB as Session, aC as SessionListPayload, aD as SessionLoadPayload, aE as SessionMetadata, aF as SessionMode, aG as SessionNameGeneratedPayload, aH as SessionPhase, aI as SessionRunningPayload, aJ as SessionStatePayload, aK as SessionSummary, aL as StatsDataPoint, aM as StatsIdentity, aN as TaskCompletedPayload, aO as Todo, aP as ToolCall, aQ as ToolMode, aR as ToolName, aS as ToolResult, aT as ValidationResult, aU as createClientMessage, aV as createServerMessage, aW as isClientMessage, aX as isServerMessage } from '../protocol-CdVNdXi8.js';
1
+ import { M as Message, S as SessionStats } from '../protocol-BQ12Aw5J.js';
2
+ export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, c as Attachment, B as BackgroundProcess, d as BackgroundProcessExitedPayload, e as BackgroundProcessOutputPayload, f as BackgroundProcessRemovedPayload, g as BackgroundProcessStartedPayload, h as BackgroundProcessStatus, C as CallStatsDataPoint, i as ChatAskUserPayload, j as ChatDeltaPayload, k as ChatDonePayload, l as ChatErrorPayload, m as ChatFormatRetryPayload, n as ChatMessagePayload, o as ChatMessageUpdatedPayload, p as ChatPathConfirmationPayload, q as ChatProgressPayload, r as ChatThinkingPayload, s as ChatTodoPayload, t as ChatToolCallPayload, u as ChatToolOutputPayload, v as ChatToolPreparingPayload, w as ChatToolResultPayload, x as ChatVisionFallbackPayload, y as ClientMessage, z as ClientMessageType, D as Config, E as ContextCompactionEvent, F as ContextState, G as ContextStatePayload, H as ContextWindow, I as CriteriaUpdatedPayload, J as Criterion, K as CriterionAttempt, L as CriterionStatus, N as CriterionValidation, O as DangerLevel, P as DevServerOutputPayload, Q as DevServerStatePayload, R as Diagnostic, T as EditContextEdit, U as EditContextLine, V as EditContextRegion, W as ElementData, X as ErrorPayload, Y as ExecutionState, Z as FileReadEntry, _ as GitDiffFile, $ as GitStatusPayload, a0 as InjectedFile, a1 as LLMCallStats, a2 as LlmBackend, a3 as LogLine, a4 as LspDiagnosticsPayload, a5 as MessageRole, a6 as MessageSegment, a7 as MessageStats, a8 as MetadataEntry, a9 as MetadataUpdatedPayload, aa as ModeChangedPayload, ab as ModelConfig, ac as ModelSessionStats, ad as PathConfirmPayload, ae as PathConfirmationReason, af as PendingPathConfirmationPayload, ag as PhaseChangedPayload, ah as PreparingToolCall, ai as Project, aj as ProjectDeletedPayload, ak as ProjectListPayload, al as ProjectStatePayload, am as PromptContext, an as PromptContextMessage, ao as PromptContextTool, ap as PromptRequestOptions, aq as Provider, ar as ProviderBackend, as as ProviderChangedPayload, at as QueueAddedEvent, au as QueueCancelledEvent, av as QueueDrainedEvent, aw as QueueEvent, ax as QueueEventType, ay as QueueStatePayload, az as QueuedMessage, aA as RecentUserPrompt, aB as ServerMessage, aC as ServerMessageType, aD as Session, aE as SessionListPayload, aF as SessionLoadPayload, aG as SessionMetadata, aH as SessionMode, aI as SessionNameGeneratedPayload, aJ as SessionPhase, aK as SessionRunningPayload, aL as SessionStatePayload, aM as SessionSummary, aN as StatsDataPoint, aO as StatsIdentity, aP as TaskCompletedPayload, aQ as Todo, aR as ToolCall, aS as ToolMode, aT as ToolName, aU as ToolResult, aV as ValidationResult, aW as createClientMessage, aX as createServerMessage, aY as isClientMessage, aZ as isServerMessage } from '../protocol-BQ12Aw5J.js';
3
3
 
4
4
  /**
5
5
  * Session stats computation - aggregates response-level MessageStats from
@@ -6,7 +6,7 @@ import {
6
6
  createServerMessage,
7
7
  isClientMessage,
8
8
  isServerMessage
9
- } from "../chunk-MEYDERUX.js";
9
+ } from "../chunk-FQLK5GL5.js";
10
10
  export {
11
11
  computeSessionStats,
12
12
  createClientMessage,
@@ -11,23 +11,23 @@ import {
11
11
  requestPathAccess,
12
12
  stepDoneTool,
13
13
  validateToolAction
14
- } from "./chunk-RYEZ7LDX.js";
14
+ } from "./chunk-ALH4KM2Y.js";
15
15
  import "./chunk-PSJIT5LZ.js";
16
16
  import "./chunk-XAMAYRDA.js";
17
17
  import "./chunk-DL6ZILAF.js";
18
18
  import "./chunk-PBGOZMVY.js";
19
19
  import "./chunk-VRGRAQDG.js";
20
20
  import "./chunk-HGAMIPFO.js";
21
- import "./chunk-J335KZ6U.js";
21
+ import "./chunk-XKR3HCAL.js";
22
22
  import "./chunk-FBGWG4N6.js";
23
- import "./chunk-6WZI6F6G.js";
24
- import "./chunk-RCQOHFAN.js";
23
+ import "./chunk-NONI4CRP.js";
24
+ import "./chunk-CEZNMLOO.js";
25
25
  import {
26
26
  AskUserInterrupt,
27
27
  cancelQuestionsForSession,
28
28
  provideAnswer
29
29
  } from "./chunk-BJYPTN5S.js";
30
- import "./chunk-MEYDERUX.js";
30
+ import "./chunk-FQLK5GL5.js";
31
31
  import "./chunk-CQGTEGKL.js";
32
32
  import "./chunk-CGZHLM3K.js";
33
33
  import "./chunk-SZKEGZIB.js";
@@ -49,4 +49,4 @@ export {
49
49
  stepDoneTool,
50
50
  validateToolAction
51
51
  };
52
- //# sourceMappingURL=tools-WFIYKFBE.js.map
52
+ //# sourceMappingURL=tools-Z7X4HXZN.js.map