jumbo-cli 3.16.0 → 3.16.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 (67) hide show
  1. package/dist/application/agents/AgentInvocation.d.ts +5 -0
  2. package/dist/application/agents/AgentInvocation.d.ts.map +1 -1
  3. package/dist/application/context/goals/codify/CodifierProcessManager.d.ts +1 -1
  4. package/dist/application/context/goals/codify/CodifierProcessManager.d.ts.map +1 -1
  5. package/dist/application/context/goals/codify/CodifierProcessManager.js +48 -39
  6. package/dist/application/context/goals/codify/CodifierProcessManager.js.map +1 -1
  7. package/dist/application/context/goals/refine/RefinerProcessManager.d.ts +1 -1
  8. package/dist/application/context/goals/refine/RefinerProcessManager.d.ts.map +1 -1
  9. package/dist/application/context/goals/refine/RefinerProcessManager.js +53 -37
  10. package/dist/application/context/goals/refine/RefinerProcessManager.js.map +1 -1
  11. package/dist/application/context/goals/review/ReviewerProcessManager.d.ts +1 -2
  12. package/dist/application/context/goals/review/ReviewerProcessManager.d.ts.map +1 -1
  13. package/dist/application/context/goals/review/ReviewerProcessManager.js +54 -57
  14. package/dist/application/context/goals/review/ReviewerProcessManager.js.map +1 -1
  15. package/dist/application/daemons/IProcessManager.d.ts +3 -0
  16. package/dist/application/daemons/IProcessManager.d.ts.map +1 -1
  17. package/dist/application/daemons/ProcessManagerEventEmitter.d.ts +12 -0
  18. package/dist/application/daemons/ProcessManagerEventEmitter.d.ts.map +1 -0
  19. package/dist/application/daemons/ProcessManagerEventEmitter.js +49 -0
  20. package/dist/application/daemons/ProcessManagerEventEmitter.js.map +1 -0
  21. package/dist/infrastructure/agents/AgentCliGateway.d.ts +3 -1
  22. package/dist/infrastructure/agents/AgentCliGateway.d.ts.map +1 -1
  23. package/dist/infrastructure/agents/AgentCliGateway.js +45 -10
  24. package/dist/infrastructure/agents/AgentCliGateway.js.map +1 -1
  25. package/dist/infrastructure/context/project/init/AntigravityConfigurer.d.ts +2 -0
  26. package/dist/infrastructure/context/project/init/AntigravityConfigurer.d.ts.map +1 -1
  27. package/dist/infrastructure/context/project/init/AntigravityConfigurer.js +30 -10
  28. package/dist/infrastructure/context/project/init/AntigravityConfigurer.js.map +1 -1
  29. package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.d.ts +2 -0
  30. package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.d.ts.map +1 -1
  31. package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.js +5 -1
  32. package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.js.map +1 -1
  33. package/dist/presentation/cli/commands/goals/list/GoalListOutputBuilder.js +1 -1
  34. package/dist/presentation/cli/commands/goals/list/GoalListOutputBuilder.js.map +1 -1
  35. package/dist/presentation/cli/commands/project/init/project.init.js +1 -1
  36. package/dist/presentation/cli/commands/project/init/project.init.js.map +1 -1
  37. package/dist/presentation/tui/cockpit/CockpitDaemonAgentConfigCycler.js +1 -1
  38. package/dist/presentation/tui/cockpit/CockpitDaemonAgentConfigCycler.js.map +1 -1
  39. package/dist/presentation/tui/cockpit/CockpitDaemonPanel.d.ts.map +1 -1
  40. package/dist/presentation/tui/cockpit/CockpitDaemonPanel.js +37 -1
  41. package/dist/presentation/tui/cockpit/CockpitDaemonPanel.js.map +1 -1
  42. package/dist/presentation/tui/cockpit/DaemonEventRowMessageFormatter.d.ts.map +1 -1
  43. package/dist/presentation/tui/cockpit/DaemonEventRowMessageFormatter.js +10 -0
  44. package/dist/presentation/tui/cockpit/DaemonEventRowMessageFormatter.js.map +1 -1
  45. package/dist/presentation/tui/cockpit/DaemonEventRows.d.ts.map +1 -1
  46. package/dist/presentation/tui/cockpit/DaemonEventRows.js +36 -2
  47. package/dist/presentation/tui/cockpit/DaemonEventRows.js.map +1 -1
  48. package/dist/presentation/tui/daemon-subprocesses/DaemonEventCategory.d.ts +2 -0
  49. package/dist/presentation/tui/daemon-subprocesses/DaemonEventCategory.d.ts.map +1 -1
  50. package/dist/presentation/tui/daemon-subprocesses/DaemonEventCategory.js +2 -0
  51. package/dist/presentation/tui/daemon-subprocesses/DaemonEventCategory.js.map +1 -1
  52. package/dist/presentation/tui/daemon-subprocesses/DaemonEventSnapshot.d.ts +3 -0
  53. package/dist/presentation/tui/daemon-subprocesses/DaemonEventSnapshot.d.ts.map +1 -1
  54. package/dist/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.d.ts.map +1 -1
  55. package/dist/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.js +2 -0
  56. package/dist/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.js.map +1 -1
  57. package/dist/presentation/tui/daemon-subprocesses/ManagedSubprocess.d.ts +2 -0
  58. package/dist/presentation/tui/daemon-subprocesses/ManagedSubprocess.d.ts.map +1 -1
  59. package/dist/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.d.ts +2 -0
  60. package/dist/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.d.ts.map +1 -1
  61. package/dist/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.js +49 -1
  62. package/dist/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.js.map +1 -1
  63. package/dist/presentation/tui/daemon-subprocesses/SubprocessManager.d.ts +3 -0
  64. package/dist/presentation/tui/daemon-subprocesses/SubprocessManager.d.ts.map +1 -1
  65. package/dist/presentation/tui/daemon-subprocesses/SubprocessManager.js +61 -1
  66. package/dist/presentation/tui/daemon-subprocesses/SubprocessManager.js.map +1 -1
  67. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- const COCKPIT_DAEMON_AGENT_OPTIONS = ["codex", "claude", "antigravity", "copilot", "cursor", "vibe"];
1
+ const COCKPIT_DAEMON_AGENT_OPTIONS = ["codex", "claude", "antigravity", "copilot", "vibe"];
2
2
  export function getNextCockpitDaemonAgentConfig(config) {
3
3
  const currentIndex = COCKPIT_DAEMON_AGENT_OPTIONS.indexOf(config.agentId);
4
4
  const nextIndex = currentIndex === -1
@@ -1 +1 @@
1
- {"version":3,"file":"CockpitDaemonAgentConfigCycler.js","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/CockpitDaemonAgentConfigCycler.ts"],"names":[],"mappings":"AAEA,MAAM,4BAA4B,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAE9G,MAAM,UAAU,+BAA+B,CAAC,MAAoB;IAClE,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,CACvD,MAAM,CAAC,OAAsD,CAC9D,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,4BAA4B,CAAC,MAAM,CAAC;IAE7D,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"CockpitDaemonAgentConfigCycler.js","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/CockpitDaemonAgentConfigCycler.ts"],"names":[],"mappings":"AAEA,MAAM,4BAA4B,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAEpG,MAAM,UAAU,+BAA+B,CAAC,MAAoB;IAClE,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,CACvD,MAAM,CAAC,OAAsD,CAC9D,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,4BAA4B,CAAC,MAAM,CAAC;IAE7D,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;AACzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CockpitDaemonPanel.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/CockpitDaemonPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAGrG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,wBAAgB,kBAAkB,CAAC,EACjC,eAAe,EACf,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC,GAAG,KAAK,CAAC,YAAY,CA4BrB"}
1
+ {"version":3,"file":"CockpitDaemonPanel.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/CockpitDaemonPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAGrG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,wBAAgB,kBAAkB,CAAC,EACjC,eAAe,EACf,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC,GAAG,KAAK,CAAC,YAAY,CA6BrB"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Box } from "ink";
2
+ import { Box, Text } from "ink";
3
3
  import { BaseColors } from "../../shared/DesignTokens.js";
4
4
  import { Panel } from "../ui-primitives/Panel.js";
5
5
  import { DaemonActionLine } from "./DaemonActionLine.js";
@@ -9,6 +9,42 @@ export function CockpitDaemonPanel({ daemonConstants, snapshot, pendingConfig, s
9
9
  React.createElement(Box, { alignItems: "center", flexDirection: "column" },
10
10
  children,
11
11
  React.createElement(DaemonActionLine, { snapshot: snapshot, selected: selected, infoVisible: infoVisible }),
12
+ React.createElement(DaemonActivityLine, { snapshot: snapshot }),
12
13
  configuring && (React.createElement(DaemonConfigWizard, { snapshot: snapshot, pendingConfig: pendingConfig, selected: selected })))));
13
14
  }
15
+ function DaemonActivityLine({ snapshot, }) {
16
+ const latestEvent = snapshot.events[snapshot.events.length - 1];
17
+ const event = [...snapshot.events].reverse().find((candidate) => candidate.category !== "heartbeat" && candidate.category !== "waiting" && candidate.category !== "foraging") ?? latestEvent;
18
+ if (event === undefined) {
19
+ return (React.createElement(Box, { width: "100%", justifyContent: "center" },
20
+ React.createElement(Text, { color: BaseColors.shade5 }, "no recent daemon activity")));
21
+ }
22
+ const parts = [
23
+ event.goalId === undefined ? undefined : shortGoalId(event.goalId),
24
+ event.attempt === undefined && event.maxRetries === undefined
25
+ ? undefined
26
+ : `${event.attempt ?? "-"}/${event.maxRetries ?? "-"}`,
27
+ event.phase,
28
+ formatElapsed(latestElapsedMs(event, latestEvent)),
29
+ event.message,
30
+ ].filter((part) => part !== undefined && part.trim().length > 0);
31
+ return (React.createElement(Box, { width: "100%", justifyContent: "center" },
32
+ React.createElement(Text, { color: BaseColors.shade4 }, truncateTail(parts.join(" "), 60))));
33
+ }
34
+ function latestElapsedMs(meaningfulEvent, latestEvent) {
35
+ if (latestEvent?.category === "heartbeat" &&
36
+ (latestEvent.goalId === undefined || latestEvent.goalId === meaningfulEvent.goalId)) {
37
+ return latestEvent.elapsedMs ?? meaningfulEvent.elapsedMs;
38
+ }
39
+ return meaningfulEvent.elapsedMs;
40
+ }
41
+ function shortGoalId(goalId) {
42
+ return goalId.length > 8 ? goalId.slice(0, 8) : goalId;
43
+ }
44
+ function formatElapsed(elapsedMs) {
45
+ return elapsedMs === undefined ? undefined : `${Math.max(0, Math.floor(elapsedMs / 1000))}s`;
46
+ }
47
+ function truncateTail(text, max) {
48
+ return text.length <= max ? text : text.slice(0, max - 3) + "...";
49
+ }
14
50
  //# sourceMappingURL=CockpitDaemonPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CockpitDaemonPanel.js","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/CockpitDaemonPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,UAAU,kBAAkB,CAAC,EACjC,eAAe,EACf,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,QAAQ,GAST;IACC,OAAO,CACL,oBAAC,KAAK,IACJ,KAAK,EAAE,eAAe,CAAC,KAAK,EAC5B,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAC/D,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAChE,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,EACZ,MAAM,EAAC,MAAM,EACb,QAAQ,EAAE,KAAK;QAEf,oBAAC,GAAG,IAAC,UAAU,EAAC,QAAQ,EAAC,aAAa,EAAC,QAAQ;YAC5C,QAAQ;YACT,oBAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,GACxB;YACD,WAAW,IAAI,CACd,oBAAC,kBAAkB,IACjB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,GAClB,CACH,CACG,CACA,CACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CockpitDaemonPanel.js","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/CockpitDaemonPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonEventRowMessageFormatter.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/DaemonEventRowMessageFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,8CAA8C,CAAC;AAItD,eAAO,MAAM,8BAA8B;;CAEjC,CAAC;AAEX,iBAAS,MAAM,CACb,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,mBAAmB,GACzB,MAAM,CAYR"}
1
+ {"version":3,"file":"DaemonEventRowMessageFormatter.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/DaemonEventRowMessageFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,8CAA8C,CAAC;AAItD,eAAO,MAAM,8BAA8B;;CAEjC,CAAC;AAEX,iBAAS,MAAM,CACb,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,mBAAmB,GACzB,MAAM,CAeR"}
@@ -9,7 +9,10 @@ function format(snapshot, event) {
9
9
  : event.message.trim(),
10
10
  event.goalId === undefined ? undefined : shortGoalId(event.goalId),
11
11
  formatAttemptDetails(event),
12
+ event.phase === undefined ? undefined : `[${event.phase}]`,
13
+ formatElapsed(event.elapsedMs),
12
14
  formatExitDetails(event),
15
+ event.errorType,
13
16
  event.errorMessage ?? snapshot.stderr[snapshot.stderr.length - 1],
14
17
  ].filter((part) => part !== undefined && part.length > 0);
15
18
  return truncateTail(parts.join(" "), DAEMON_EVENT_MESSAGE_WIDTH);
@@ -23,6 +26,13 @@ function formatAttemptDetails(event) {
23
26
  function formatExitDetails(event) {
24
27
  return event.exitCode === undefined ? undefined : `exit ${event.exitCode}`;
25
28
  }
29
+ function formatElapsed(elapsedMs) {
30
+ if (elapsedMs === undefined) {
31
+ return undefined;
32
+ }
33
+ const seconds = Math.max(0, Math.floor(elapsedMs / 1000));
34
+ return `${seconds}s`;
35
+ }
26
36
  function shortGoalId(goalId) {
27
37
  if (goalId === undefined) {
28
38
  return "-";
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonEventRowMessageFormatter.js","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/DaemonEventRowMessageFormatter.ts"],"names":[],"mappings":"AAKA,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,MAAM;CACE,CAAC;AAEX,SAAS,MAAM,CACb,QAA4B,EAC5B,KAA0B;IAE1B,MAAM,KAAK,GAAG;QACZ,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAC9D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QACxB,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;QAClE,oBAAoB,CAAC,KAAK,CAAC;QAC3B,iBAAiB,CAAC,KAAK,CAAC;QACxB,KAAK,CAAC,YAAY,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;KAClE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1E,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA0B;IACtD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA0B;IACnD,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,WAAW,CAAC,MAA0B;IAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,GAAW;IAC7C,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"DaemonEventRowMessageFormatter.js","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/DaemonEventRowMessageFormatter.ts"],"names":[],"mappings":"AAKA,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,MAAM;CACE,CAAC;AAEX,SAAS,MAAM,CACb,QAA4B,EAC5B,KAA0B;IAE1B,MAAM,KAAK,GAAG;QACZ,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAC9D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QACxB,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;QAClE,oBAAoB,CAAC,KAAK,CAAC;QAC3B,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG;QAC1D,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9B,iBAAiB,CAAC,KAAK,CAAC;QACxB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,YAAY,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;KAClE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1E,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA0B;IACtD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA0B;IACnD,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAAC,SAA6B;IAClD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,MAA0B;IAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,GAAW;IAC7C,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonEventRows.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/DaemonEventRows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,iBAAS,aAAa,CACpB,SAAS,EAAE,SAAS,kBAAkB,EAAE,EACxC,YAAY,EAAE,MAAM,GACnB,SAAS,cAAc,EAAE,CAM3B;AAED,iBAAS,MAAM,CACb,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,SAAS,cAAc,EAAE,CAY3B"}
1
+ {"version":3,"file":"DaemonEventRows.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/DaemonEventRows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAW1D,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,iBAAS,aAAa,CACpB,SAAS,EAAE,SAAS,kBAAkB,EAAE,EACxC,YAAY,EAAE,MAAM,GACnB,SAAS,cAAc,EAAE,CAM3B;AAED,iBAAS,MAAM,CACb,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,SAAS,cAAc,EAAE,CAS3B"}
@@ -1,12 +1,18 @@
1
1
  import { DaemonEventRowNormalizer } from "./DaemonEventRowNormalizer.js";
2
2
  const RENDERED_DAEMON_EVENT_LIMIT = 10;
3
+ const TERMINAL_ROW_CATEGORIES = new Set([
4
+ "completed",
5
+ "failed",
6
+ "exhausted",
7
+ "stopped",
8
+ ]);
3
9
  export const DaemonEventRows = {
4
10
  append,
5
11
  fromSnapshots,
6
12
  };
7
13
  function fromSnapshots(snapshots, observedAtMs) {
8
14
  const rows = snapshots.flatMap((snapshot) => DaemonEventRowNormalizer.fromSnapshot(snapshot, observedAtMs));
9
- return newestFirst(rows).slice(0, RENDERED_DAEMON_EVENT_LIMIT);
15
+ return trimRows(newestFirst(rows));
10
16
  }
11
17
  function append(currentRows, nextRows) {
12
18
  const currentKeys = new Set(currentRows.map((row) => row.key));
@@ -14,9 +20,37 @@ function append(currentRows, nextRows) {
14
20
  if (appendedRows.length === 0) {
15
21
  return currentRows;
16
22
  }
17
- return newestFirst([...currentRows, ...appendedRows]).slice(0, RENDERED_DAEMON_EVENT_LIMIT);
23
+ return trimRows(newestFirst([...currentRows, ...appendedRows]));
18
24
  }
19
25
  function newestFirst(rows) {
20
26
  return [...rows].sort((left, right) => right.timestampMs - left.timestampMs);
21
27
  }
28
+ function trimRows(rows) {
29
+ if (rows.length <= RENDERED_DAEMON_EVENT_LIMIT) {
30
+ return rows;
31
+ }
32
+ const selected = rows.slice(0, RENDERED_DAEMON_EVENT_LIMIT);
33
+ for (const terminalRow of rows.filter(isTerminalRow)) {
34
+ if (selected.some((row) => row.key === terminalRow.key)) {
35
+ continue;
36
+ }
37
+ const replaceIndex = findOldestNonTerminalIndex(selected);
38
+ if (replaceIndex === -1) {
39
+ break;
40
+ }
41
+ selected[replaceIndex] = terminalRow;
42
+ }
43
+ return newestFirst(selected);
44
+ }
45
+ function findOldestNonTerminalIndex(rows) {
46
+ for (let index = rows.length - 1; index >= 0; index--) {
47
+ if (!isTerminalRow(rows[index])) {
48
+ return index;
49
+ }
50
+ }
51
+ return -1;
52
+ }
53
+ function isTerminalRow(row) {
54
+ return TERMINAL_ROW_CATEGORIES.has(row.category);
55
+ }
22
56
  //# sourceMappingURL=DaemonEventRows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonEventRows.js","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/DaemonEventRows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,aAAa;CACL,CAAC;AAEX,SAAS,aAAa,CACpB,SAAwC,EACxC,YAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1C,wBAAwB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAC9D,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,MAAM,CACb,WAAsC,EACtC,QAAmC;IAEnC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,WAAW,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CACzD,CAAC,EACD,2BAA2B,CAC5B,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAA+B;IAClD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"DaemonEventRows.js","sourceRoot":"","sources":["../../../../src/presentation/tui/cockpit/DaemonEventRows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,WAAW;IACX,QAAQ;IACR,WAAW;IACX,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,aAAa;CACL,CAAC;AAEX,SAAS,aAAa,CACpB,SAAwC,EACxC,YAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1C,wBAAwB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAC9D,CAAC;IAEF,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,MAAM,CACb,WAAsC,EACtC,QAAmC;IAEnC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,IAA+B;IAClD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,QAAQ,CAAC,IAA+B;IAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,2BAA2B,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAC5D,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACrD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM;QACR,CAAC;QACD,QAAQ,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;IACvC,CAAC;IAED,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,0BAA0B,CAAC,IAA+B;IACjE,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,GAAmB;IACxC,OAAO,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export declare const DaemonEventCategory: {
2
2
  readonly MODEL_OUTPUT: "model-output";
3
+ readonly STDERR: "stderr";
4
+ readonly HEARTBEAT: "heartbeat";
3
5
  readonly STOPPING: "stopping";
4
6
  readonly STOPPED: "stopped";
5
7
  readonly FAILED: "failed";
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonEventCategory.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonEventCategory.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC"}
1
+ {"version":3,"file":"DaemonEventCategory.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonEventCategory.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { DaemonEventStatus } from "./DaemonEventStatus.js";
2
2
  export const DaemonEventCategory = {
3
3
  MODEL_OUTPUT: "model-output",
4
+ STDERR: "stderr",
5
+ HEARTBEAT: "heartbeat",
4
6
  STOPPING: DaemonEventStatus.STOPPING,
5
7
  STOPPED: DaemonEventStatus.STOPPED,
6
8
  FAILED: DaemonEventStatus.FAILED,
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonEventCategory.js","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonEventCategory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;IACpC,OAAO,EAAE,iBAAiB,CAAC,OAAO;IAClC,MAAM,EAAE,iBAAiB,CAAC,MAAM;CACxB,CAAC"}
1
+ {"version":3,"file":"DaemonEventCategory.js","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonEventCategory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;IACpC,OAAO,EAAE,iBAAiB,CAAC,OAAO;IAClC,MAAM,EAAE,iBAAiB,CAAC,MAAM;CACxB,CAAC"}
@@ -6,10 +6,13 @@ export interface DaemonEventSnapshot {
6
6
  readonly category?: string;
7
7
  readonly message?: string;
8
8
  readonly timestampMs?: number;
9
+ readonly phase?: string;
10
+ readonly elapsedMs?: number;
9
11
  readonly goalId?: string;
10
12
  readonly attempt?: number;
11
13
  readonly maxRetries?: number;
12
14
  readonly exitCode?: number;
15
+ readonly errorType?: string;
13
16
  readonly errorMessage?: string;
14
17
  }
15
18
  //# sourceMappingURL=DaemonEventSnapshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonEventSnapshot.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonEventSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC"}
1
+ {"version":3,"file":"DaemonEventSnapshot.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonEventSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonOutputEventParser.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,qBAAa,uBAAuB;IAClC,eAAe,CACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,mBAAmB;IAiBtB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIrC,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAIrE,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB;IAa3D,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,aAAa;CAKtB"}
1
+ {"version":3,"file":"DaemonOutputEventParser.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,qBAAa,uBAAuB;IAClC,eAAe,CACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,mBAAmB;IAiBtB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIrC,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAIrE,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB;IAe3D,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,aAAa;CAKtB"}
@@ -30,7 +30,9 @@ export class DaemonOutputEventParser {
30
30
  source: this.boundOptionalTextField(event.source),
31
31
  category: this.boundOptionalTextField(event.category),
32
32
  message: this.boundOptionalTextField(event.message),
33
+ phase: this.boundOptionalTextField(event.phase),
33
34
  goalId: this.boundOptionalTextField(event.goalId),
35
+ errorType: this.boundOptionalTextField(event.errorType),
34
36
  errorMessage: this.boundOptionalTextField(event.errorMessage),
35
37
  };
36
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonOutputEventParser.js","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,2BAA2B,GAAG,IAAK,CAAC;AAE1C,MAAM,OAAO,uBAAuB;IAClC,eAAe,CACb,MAAkB,EAClB,IAAY;QAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QAED,OAAO;YACL,MAAM;YACN,MAAM,EAAE,iBAAiB,CAAC,UAAU;YACpC,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,mBAAmB,CAAC,YAAY;YAC1C,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACjC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,sBAAsB,CAAC,KAAyB;QAC9C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,UAAU,CAAC,KAA0B;QACnC,OAAO;YACL,GAAG,KAAK;YACR,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC;YACjD,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrD,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC;YACnD,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC;YACjD,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC;SAC9D,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC;YACvD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,GAAG,MAAM;gBACT,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE;aAC9C,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO,KAAK,CAAC,MAAM,GAAG,2BAA2B;YAC/C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;YAC3C,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"DaemonOutputEventParser.js","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,2BAA2B,GAAG,IAAK,CAAC;AAE1C,MAAM,OAAO,uBAAuB;IAClC,eAAe,CACb,MAAkB,EAClB,IAAY;QAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QAED,OAAO;YACL,MAAM;YACN,MAAM,EAAE,iBAAiB,CAAC,UAAU;YACpC,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,mBAAmB,CAAC,YAAY;YAC1C,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACjC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,sBAAsB,CAAC,KAAyB;QAC9C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,UAAU,CAAC,KAA0B;QACnC,OAAO;YACL,GAAG,KAAK;YACR,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC;YACjD,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrD,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC;YACnD,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/C,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC;YACjD,SAAS,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC;YACvD,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC;SAC9D,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC;YACvD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,GAAG,MAAM;gBACT,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE;aAC9C,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO,KAAK,CAAC,MAAM,GAAG,2BAA2B;YAC/C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;YAC3C,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;CACF"}
@@ -11,11 +11,13 @@ export interface ManagedSubprocess {
11
11
  readonly stdout: string[];
12
12
  readonly stderr: string[];
13
13
  readonly events: DaemonEventSnapshot[];
14
+ readonly startedAtMs: number;
14
15
  status: SubprocessStatusValue;
15
16
  exitCode?: number | null;
16
17
  exitSignal?: string | null;
17
18
  stopRequested: boolean;
18
19
  terminationTimedOut: boolean;
19
20
  termination?: Promise<SubprocessSnapshot>;
21
+ heartbeatTimer?: ReturnType<typeof setInterval>;
20
22
  }
21
23
  //# sourceMappingURL=ManagedSubprocess.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManagedSubprocess.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/ManagedSubprocess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACvC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC3C"}
1
+ {"version":3,"file":"ManagedSubprocess.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/ManagedSubprocess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;CACjD"}
@@ -13,5 +13,7 @@ export declare class SubprocessLifecycleEventRecorder {
13
13
  recordDaemonEvent(process: ManagedSubprocess, event: DaemonEventSnapshot): void;
14
14
  boundErrorForLog(error: unknown): unknown;
15
15
  private recordLifecycleEvent;
16
+ private findCoalescedEventIndex;
17
+ private findOldestRemovableEventIndex;
16
18
  }
17
19
  //# sourceMappingURL=SubprocessLifecycleEventRecorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubprocessLifecycleEventRecorder.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAmBvE,qBAAa,gCAAgC;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,MAAM,EAAE,OAAO,EACf,iBAAiB,0BAAgC;IAGpE,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAOhD,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAO/C,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAQpE,mBAAmB,CACjB,OAAO,EAAE,iBAAiB,EAC1B,YAAY,SAA4C,GACvD,IAAI;IAYP,iBAAiB,CACf,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,mBAAmB,GACzB,IAAI;IASP,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAWzC,OAAO,CAAC,oBAAoB;CAgB7B"}
1
+ {"version":3,"file":"SubprocessLifecycleEventRecorder.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AA+BvE,qBAAa,gCAAgC;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,MAAM,EAAE,OAAO,EACf,iBAAiB,0BAAgC;IAGpE,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAOhD,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAO/C,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAQpE,mBAAmB,CACjB,OAAO,EAAE,iBAAiB,EAC1B,YAAY,SAA4C,GACvD,IAAI;IAYP,iBAAiB,CACf,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAcP,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAWzC,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,6BAA6B;CAYtC"}
@@ -4,6 +4,18 @@ import { SubprocessCopy } from "./SubprocessCopy.js";
4
4
  import { SubprocessStatus } from "./SubprocessStatus.js";
5
5
  import { DaemonOutputEventParser } from "./DaemonOutputEventParser.js";
6
6
  const EVENT_RING_BUFFER_SIZE = 50;
7
+ const COALESCED_EVENT_CATEGORIES = new Set([
8
+ "foraging",
9
+ "waiting",
10
+ "polling",
11
+ "heartbeat",
12
+ ]);
13
+ const RETAINED_OUTCOME_CATEGORIES = new Set([
14
+ "completed",
15
+ "failed",
16
+ "exhausted",
17
+ "stopped",
18
+ ]);
7
19
  const SUBPROCESS_EVENT_COPY = {
8
20
  stopping: {
9
21
  category: DaemonEventCategory.STOPPING,
@@ -56,9 +68,14 @@ export class SubprocessLifecycleEventRecorder {
56
68
  recordDaemonEvent(process, event) {
57
69
  const boundedEvent = this.outputEventParser.boundEvent(event);
58
70
  this.logger.info(SubprocessCopy.eventLog, { daemon: process.name, event: boundedEvent });
71
+ const coalescedIndex = this.findCoalescedEventIndex(process, boundedEvent);
72
+ if (coalescedIndex !== -1) {
73
+ process.events.splice(coalescedIndex, 1);
74
+ }
59
75
  process.events.push(boundedEvent);
60
76
  while (process.events.length > EVENT_RING_BUFFER_SIZE) {
61
- process.events.shift();
77
+ const removableIndex = this.findOldestRemovableEventIndex(process.events);
78
+ process.events.splice(removableIndex, 1);
62
79
  }
63
80
  }
64
81
  boundErrorForLog(error) {
@@ -82,5 +99,36 @@ export class SubprocessLifecycleEventRecorder {
82
99
  ...event,
83
100
  });
84
101
  }
102
+ findCoalescedEventIndex(process, event) {
103
+ if (event.category === undefined || !COALESCED_EVENT_CATEGORIES.has(event.category)) {
104
+ return -1;
105
+ }
106
+ for (let index = process.events.length - 1; index >= 0; index--) {
107
+ const candidate = process.events[index];
108
+ if (candidate.category === undefined || !COALESCED_EVENT_CATEGORIES.has(candidate.category)) {
109
+ return -1;
110
+ }
111
+ if (candidate.source === event.source &&
112
+ candidate.status === event.status &&
113
+ candidate.category === event.category &&
114
+ candidate.message === event.message &&
115
+ candidate.goalId === event.goalId) {
116
+ return index;
117
+ }
118
+ }
119
+ return -1;
120
+ }
121
+ findOldestRemovableEventIndex(events) {
122
+ let retainedOutcomeIndex = -1;
123
+ for (let index = events.length - 1; index >= 0; index--) {
124
+ const category = events[index].category;
125
+ if (category !== undefined && RETAINED_OUTCOME_CATEGORIES.has(category)) {
126
+ retainedOutcomeIndex = index;
127
+ break;
128
+ }
129
+ }
130
+ const removableIndex = events.findIndex((_event, index) => index !== retainedOutcomeIndex);
131
+ return removableIndex === -1 ? 0 : removableIndex;
132
+ }
85
133
  }
86
134
  //# sourceMappingURL=SubprocessLifecycleEventRecorder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubprocessLifecycleEventRecorder.js","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubprocessLifecycleEventRecorder.js","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.ts"],"names":[],"mappings":"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"}
@@ -23,5 +23,8 @@ export declare class SubprocessManager implements ISubprocessManager {
23
23
  private resolveClosedStatus;
24
24
  private applyTerminationResult;
25
25
  private recordTerminationTimeout;
26
+ private startHeartbeat;
27
+ private stopHeartbeat;
28
+ private resolveHeartbeatElapsedMs;
26
29
  }
27
30
  //# sourceMappingURL=SubprocessManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubprocessManager.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/SubprocessManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EACV,8BAA8B,EAE/B,MAAM,gEAAgE,CAAC;AAIxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAalE,qBAAa,iBAAkB,YAAW,kBAAkB;IASxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IATzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAmC;gBAGvD,iBAAiB,EAAE,8BAA8B,EACjD,MAAM,GAAE,OAA8B;IAQnD,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgFxF,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAaxD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB;IAS/C,cAAc,IAAI,SAAS,kBAAkB,EAAE;YAIjC,0BAA0B;IAmCxC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,wBAAwB;CAoBjC"}
1
+ {"version":3,"file":"SubprocessManager.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/SubprocessManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EACV,8BAA8B,EAE/B,MAAM,gEAAgE,CAAC;AAIxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAelE,qBAAa,iBAAkB,YAAW,kBAAkB;IASxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IATzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAmC;gBAGvD,iBAAiB,EAAE,8BAA8B,EACjD,MAAM,GAAE,OAA8B;IAQnD,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+FxF,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAaxD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB;IAS/C,cAAc,IAAI,SAAS,kBAAkB,EAAE;YAIjC,0BAA0B;IAmCxC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,yBAAyB;CAWlC"}
@@ -7,6 +7,7 @@ import { SubprocessLifecycleEventRecorder } from "./SubprocessLifecycleEventReco
7
7
  import { SubprocessNoOpLogger } from "./SubprocessNoOpLogger.js";
8
8
  import { SubprocessOutputRingBuffer } from "./SubprocessOutputRingBuffer.js";
9
9
  import { SubprocessSnapshotMapper } from "./SubprocessSnapshotMapper.js";
10
+ const DAEMON_HEARTBEAT_INTERVAL_MS = 5000;
10
11
  export class SubprocessManager {
11
12
  constructor(processController, logger = SubprocessNoOpLogger) {
12
13
  this.processController = processController;
@@ -37,6 +38,7 @@ export class SubprocessManager {
37
38
  stdout: [],
38
39
  stderr: [],
39
40
  events: [],
41
+ startedAtMs: Date.now(),
40
42
  status: SubprocessStatus.RUNNING,
41
43
  stopRequested: false,
42
44
  terminationTimedOut: false,
@@ -46,6 +48,7 @@ export class SubprocessManager {
46
48
  daemon: name,
47
49
  pid: child.pid,
48
50
  });
51
+ this.startHeartbeat(managed);
49
52
  child.stdout?.on("data", (chunk) => {
50
53
  const text = this.outputRingBuffer.limitChunk(chunk.toString());
51
54
  const lines = this.outputRingBuffer.appendLines(managed.stdout, text);
@@ -57,10 +60,22 @@ export class SubprocessManager {
57
60
  });
58
61
  child.stderr?.on("data", (chunk) => {
59
62
  const text = this.outputRingBuffer.limitChunk(chunk.toString());
60
- this.outputRingBuffer.appendLines(managed.stderr, text);
63
+ const lines = this.outputRingBuffer.appendLines(managed.stderr, text);
61
64
  this.logger.warn(SubprocessCopy.stderrLog, { daemon: name, text });
65
+ for (const line of lines) {
66
+ this.lifecycleEventRecorder.recordDaemonEvent(managed, {
67
+ daemon: name,
68
+ status: "processing",
69
+ source: name,
70
+ category: "stderr",
71
+ message: line,
72
+ timestampMs: Date.now(),
73
+ errorMessage: line,
74
+ });
75
+ }
62
76
  });
63
77
  child.on("close", (code, signal) => {
78
+ this.stopHeartbeat(managed);
64
79
  managed.exitCode = code;
65
80
  managed.exitSignal = signal;
66
81
  managed.status = this.resolveClosedStatus(managed, code);
@@ -74,6 +89,7 @@ export class SubprocessManager {
74
89
  });
75
90
  });
76
91
  child.on("error", (error) => {
92
+ this.stopHeartbeat(managed);
77
93
  const errorMessage = this.outputEventParser.boundTextField(error.message);
78
94
  this.outputRingBuffer.appendLines(managed.stderr, errorMessage);
79
95
  if (!managed.stopRequested || managed.terminationTimedOut) {
@@ -165,6 +181,7 @@ export class SubprocessManager {
165
181
  return;
166
182
  }
167
183
  if (result.status === "no-pid") {
184
+ this.stopHeartbeat(managed);
168
185
  managed.status = SubprocessStatus.STOPPED;
169
186
  this.lifecycleEventRecorder.recordStopped(managed);
170
187
  }
@@ -182,6 +199,7 @@ export class SubprocessManager {
182
199
  });
183
200
  }
184
201
  recordTerminationTimeout(managed, result) {
202
+ this.stopHeartbeat(managed);
185
203
  managed.terminationTimedOut = true;
186
204
  managed.status = SubprocessStatus.FAILED;
187
205
  const errorMessage = this.outputEventParser.boundTextField(`Timed out after ${result.timeoutMs}ms waiting for daemon process close.`);
@@ -196,5 +214,47 @@ export class SubprocessManager {
196
214
  escalation: result.escalation,
197
215
  });
198
216
  }
217
+ startHeartbeat(managed) {
218
+ managed.heartbeatTimer = setInterval(() => {
219
+ if (managed.status !== SubprocessStatus.RUNNING) {
220
+ return;
221
+ }
222
+ const latestEvent = managed.events[managed.events.length - 1];
223
+ const now = Date.now();
224
+ if (latestEvent?.timestampMs !== undefined &&
225
+ now - latestEvent.timestampMs < DAEMON_HEARTBEAT_INTERVAL_MS) {
226
+ return;
227
+ }
228
+ this.lifecycleEventRecorder.recordDaemonEvent(managed, {
229
+ daemon: managed.name,
230
+ status: "processing",
231
+ source: managed.name,
232
+ category: "heartbeat",
233
+ message: "daemon still running",
234
+ timestampMs: now,
235
+ phase: latestEvent?.phase ?? "running",
236
+ goalId: latestEvent?.goalId,
237
+ attempt: latestEvent?.attempt,
238
+ maxRetries: latestEvent?.maxRetries,
239
+ elapsedMs: this.resolveHeartbeatElapsedMs(managed, latestEvent, now),
240
+ });
241
+ }, DAEMON_HEARTBEAT_INTERVAL_MS);
242
+ if (typeof managed.heartbeatTimer === "object" && "unref" in managed.heartbeatTimer) {
243
+ managed.heartbeatTimer.unref();
244
+ }
245
+ }
246
+ stopHeartbeat(managed) {
247
+ if (managed.heartbeatTimer === undefined) {
248
+ return;
249
+ }
250
+ clearInterval(managed.heartbeatTimer);
251
+ managed.heartbeatTimer = undefined;
252
+ }
253
+ resolveHeartbeatElapsedMs(managed, latestEvent, now) {
254
+ if (latestEvent?.elapsedMs !== undefined && latestEvent.timestampMs !== undefined) {
255
+ return latestEvent.elapsedMs + Math.max(0, now - latestEvent.timestampMs);
256
+ }
257
+ return Math.max(0, now - managed.startedAtMs);
258
+ }
199
259
  }
200
260
  //# sourceMappingURL=SubprocessManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubprocessManager.js","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/SubprocessManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubprocessManager.js","sourceRoot":"","sources":["../../../../src/presentation/tui/daemon-subprocesses/SubprocessManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jumbo-cli",
3
- "version": "3.16.0",
3
+ "version": "3.16.1",
4
4
  "description": "Memory and Context Orchestration for Coding Agents",
5
5
  "keywords": [
6
6
  "cli",