@rk0429/agentic-relay 20.1.0 → 21.0.0

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 (99) hide show
  1. package/dist/application/event-log-sink.d.ts +13 -9
  2. package/dist/application/event-log-sink.js +29 -22
  3. package/dist/application/event-log-sink.js.map +1 -1
  4. package/dist/application/housekeeping.js +8 -4
  5. package/dist/application/housekeeping.js.map +1 -1
  6. package/dist/application/projection-service.js +6 -3
  7. package/dist/application/projection-service.js.map +1 -1
  8. package/dist/application/routine-catalog-service.d.ts +36 -0
  9. package/dist/application/routine-catalog-service.js +90 -0
  10. package/dist/application/routine-catalog-service.js.map +1 -0
  11. package/dist/application/routine-daemon-service.d.ts +48 -0
  12. package/dist/application/routine-daemon-service.js +176 -0
  13. package/dist/application/routine-daemon-service.js.map +1 -0
  14. package/dist/application/routine-event-log-sink.d.ts +42 -0
  15. package/dist/application/routine-event-log-sink.js +82 -0
  16. package/dist/application/routine-event-log-sink.js.map +1 -0
  17. package/dist/application/routine-run-service.d.ts +56 -0
  18. package/dist/application/routine-run-service.js +370 -0
  19. package/dist/application/routine-run-service.js.map +1 -0
  20. package/dist/application/routine-scheduler.d.ts +34 -0
  21. package/dist/application/routine-scheduler.js +82 -0
  22. package/dist/application/routine-scheduler.js.map +1 -0
  23. package/dist/application/routine-status-query-service.d.ts +41 -0
  24. package/dist/application/routine-status-query-service.js +98 -0
  25. package/dist/application/routine-status-query-service.js.map +1 -0
  26. package/dist/application/spawn-agents-service.js +88 -37
  27. package/dist/application/spawn-agents-service.js.map +1 -1
  28. package/dist/application/workflow-execution-service.d.ts +5 -1
  29. package/dist/application/workflow-execution-service.js +82 -23
  30. package/dist/application/workflow-execution-service.js.map +1 -1
  31. package/dist/bin/relay.d.ts +58 -1
  32. package/dist/bin/relay.js +421 -50
  33. package/dist/bin/relay.js.map +1 -1
  34. package/dist/core/types.d.ts +8 -1
  35. package/dist/core/types.js +5 -0
  36. package/dist/core/types.js.map +1 -1
  37. package/dist/domain/loop-execution.d.ts +1 -1
  38. package/dist/domain/loop-execution.js +8 -4
  39. package/dist/domain/loop-execution.js.map +1 -1
  40. package/dist/domain/routine-definition.d.ts +18 -0
  41. package/dist/domain/routine-definition.js +19 -0
  42. package/dist/domain/routine-definition.js.map +1 -0
  43. package/dist/domain/routine-execution-state.d.ts +35 -0
  44. package/dist/domain/routine-execution-state.js +97 -0
  45. package/dist/domain/routine-execution-state.js.map +1 -0
  46. package/dist/domain/routine-firing.d.ts +23 -0
  47. package/dist/domain/routine-firing.js +47 -0
  48. package/dist/domain/routine-firing.js.map +1 -0
  49. package/dist/domain/routine-loader.d.ts +9 -0
  50. package/dist/domain/routine-loader.js +129 -0
  51. package/dist/domain/routine-loader.js.map +1 -0
  52. package/dist/domain/routine-name.d.ts +6 -0
  53. package/dist/domain/routine-name.js +31 -0
  54. package/dist/domain/routine-name.js.map +1 -0
  55. package/dist/domain/routine-schedule.d.ts +24 -0
  56. package/dist/domain/routine-schedule.js +126 -0
  57. package/dist/domain/routine-schedule.js.map +1 -0
  58. package/dist/domain/trigger-config.d.ts +25 -0
  59. package/dist/domain/trigger-config.js +86 -0
  60. package/dist/domain/trigger-config.js.map +1 -0
  61. package/dist/domain/workflow-loader.d.ts +2 -0
  62. package/dist/domain/workflow-loader.js +12 -2
  63. package/dist/domain/workflow-loader.js.map +1 -1
  64. package/dist/domain/workflow-schema.d.ts +20 -1
  65. package/dist/domain/workflow-schema.js +43 -7
  66. package/dist/domain/workflow-schema.js.map +1 -1
  67. package/dist/infrastructure/backends/cli-backend-executor.js +17 -0
  68. package/dist/infrastructure/backends/cli-backend-executor.js.map +1 -1
  69. package/dist/infrastructure/command-execution-gateway.d.ts +21 -0
  70. package/dist/infrastructure/command-execution-gateway.js +24 -0
  71. package/dist/infrastructure/command-execution-gateway.js.map +1 -0
  72. package/dist/infrastructure/diagnostics/codex-bootstrap.d.ts +3 -0
  73. package/dist/infrastructure/diagnostics/codex-bootstrap.js +35 -1
  74. package/dist/infrastructure/diagnostics/codex-bootstrap.js.map +1 -1
  75. package/dist/infrastructure/store/file-utils.d.ts +2 -0
  76. package/dist/infrastructure/store/file-utils.js +23 -0
  77. package/dist/infrastructure/store/file-utils.js.map +1 -0
  78. package/dist/infrastructure/store/relay-store.d.ts +1 -0
  79. package/dist/infrastructure/store/relay-store.js +6 -22
  80. package/dist/infrastructure/store/relay-store.js.map +1 -1
  81. package/dist/infrastructure/store/routine-execution-lease-repository.d.ts +31 -0
  82. package/dist/infrastructure/store/routine-execution-lease-repository.js +191 -0
  83. package/dist/infrastructure/store/routine-execution-lease-repository.js.map +1 -0
  84. package/dist/infrastructure/store/routine-runtime-projection-repository.d.ts +25 -0
  85. package/dist/infrastructure/store/routine-runtime-projection-repository.js +126 -0
  86. package/dist/infrastructure/store/routine-runtime-projection-repository.js.map +1 -0
  87. package/dist/infrastructure/store/routine-state-repository.d.ts +21 -0
  88. package/dist/infrastructure/store/routine-state-repository.js +139 -0
  89. package/dist/infrastructure/store/routine-state-repository.js.map +1 -0
  90. package/dist/interfaces/cli/loop-progress-renderer.js +3 -1
  91. package/dist/interfaces/cli/loop-progress-renderer.js.map +1 -1
  92. package/dist/interfaces/cli/relay-cli-args.d.ts +18 -2
  93. package/dist/interfaces/cli/relay-cli-args.js +171 -50
  94. package/dist/interfaces/cli/relay-cli-args.js.map +1 -1
  95. package/dist/interfaces/mcp/relay-mcp-server.js +2 -2
  96. package/dist/interfaces/mcp/relay-mcp-server.js.map +1 -1
  97. package/dist/interfaces/vscode/extension.js +3 -3
  98. package/dist/interfaces/vscode/extension.js.map +1 -1
  99. package/package.json +2 -1
@@ -1,22 +1,26 @@
1
1
  import { RelayStore } from "../infrastructure/store/relay-store.js";
2
+ export interface LoopRoutineContext {
3
+ routineRunId?: string;
4
+ }
2
5
  export declare class LoopEventLogSink {
3
6
  private readonly store;
4
7
  constructor(store: RelayStore);
5
- logLoopStarted(executionId: string, workflowName: string, maxIterations: number): Promise<void>;
6
- logIterationStarted(executionId: string, iteration: number): Promise<void>;
8
+ logLoopStarted(executionId: string, workflowName: string, maxIterations: number, routine?: LoopRoutineContext): Promise<void>;
9
+ logIterationStarted(executionId: string, iteration: number, routine?: LoopRoutineContext): Promise<void>;
7
10
  logStepStarted(executionId: string, stepId: string, iteration: number, opts?: {
8
11
  backend?: string;
9
12
  role?: string;
13
+ routineRunId?: string;
10
14
  }): Promise<void>;
11
- logStepCompleted(executionId: string, stepId: string, iteration: number, relaySessionId: string, fullResponsePath: string, duration: number): Promise<void>;
12
- logStepFailed(executionId: string, stepId: string, iteration: number, error: string, duration: number): Promise<void>;
13
- logStepSkipped(executionId: string, stepId: string, iteration: number, reason: string): Promise<void>;
14
- logExitConditionEvaluated(executionId: string, verdict: string, iteration: number): Promise<void>;
15
- logExitConditionFailed(executionId: string, iteration: number, checkpoint: unknown, error: string): Promise<void>;
15
+ logStepCompleted(executionId: string, stepId: string, iteration: number, relaySessionId: string | undefined, fullResponsePath: string | undefined, duration: number, routine?: LoopRoutineContext): Promise<void>;
16
+ logStepFailed(executionId: string, stepId: string, iteration: number, error: string, duration: number, routine?: LoopRoutineContext): Promise<void>;
17
+ logStepSkipped(executionId: string, stepId: string, iteration: number, reason: string, routine?: LoopRoutineContext): Promise<void>;
18
+ logExitConditionEvaluated(executionId: string, verdict: string, iteration: number, routine?: LoopRoutineContext): Promise<void>;
19
+ logExitConditionFailed(executionId: string, iteration: number, checkpoint: unknown, error: string, routine?: LoopRoutineContext): Promise<void>;
16
20
  logLoopInterrupted(executionId: string, iteration: number, stateFilePath: string, opts?: {
17
21
  nextStepId?: string;
18
22
  pendingExitCondition?: unknown;
19
- }): Promise<void>;
20
- logLoopCompleted(executionId: string, completionReason: string, totalIterations: number, totalDuration: number): Promise<void>;
23
+ }, routine?: LoopRoutineContext): Promise<void>;
24
+ logLoopCompleted(executionId: string, completionReason: string, totalIterations: number, totalDuration: number, routine?: LoopRoutineContext): Promise<void>;
21
25
  private appendLoopLog;
22
26
  }
@@ -4,16 +4,16 @@ export class LoopEventLogSink {
4
4
  constructor(store) {
5
5
  this.store = store;
6
6
  }
7
- async logLoopStarted(executionId, workflowName, maxIterations) {
7
+ async logLoopStarted(executionId, workflowName, maxIterations, routine) {
8
8
  await this.appendLoopLog(executionId, "loop_started", "running", {
9
9
  workflow_name: workflowName,
10
10
  max_iterations: maxIterations,
11
- });
11
+ }, undefined, routine);
12
12
  }
13
- async logIterationStarted(executionId, iteration) {
13
+ async logIterationStarted(executionId, iteration, routine) {
14
14
  await this.appendLoopLog(executionId, "iteration_started", "running", {
15
15
  iteration,
16
- });
16
+ }, undefined, routine);
17
17
  }
18
18
  async logStepStarted(executionId, stepId, iteration, opts) {
19
19
  await this.appendLoopLog(executionId, "step_started", "running", {
@@ -21,46 +21,46 @@ export class LoopEventLogSink {
21
21
  iteration,
22
22
  ...(opts?.backend ? { backend: opts.backend } : {}),
23
23
  ...(opts?.role ? { role: opts.role } : {}),
24
- }, normalizeBackend(opts?.backend));
24
+ }, normalizeBackend(opts?.backend), { routineRunId: opts?.routineRunId });
25
25
  }
26
- async logStepCompleted(executionId, stepId, iteration, relaySessionId, fullResponsePath, duration) {
26
+ async logStepCompleted(executionId, stepId, iteration, relaySessionId, fullResponsePath, duration, routine) {
27
27
  await this.appendLoopLog(executionId, "step_completed", "success", {
28
28
  step_id: stepId,
29
29
  iteration,
30
- relay_session_id: relaySessionId,
31
- full_response_path: fullResponsePath,
30
+ ...(relaySessionId ? { relay_session_id: relaySessionId } : {}),
31
+ ...(fullResponsePath ? { full_response_path: fullResponsePath } : {}),
32
32
  duration,
33
- });
33
+ }, undefined, routine);
34
34
  }
35
- async logStepFailed(executionId, stepId, iteration, error, duration) {
35
+ async logStepFailed(executionId, stepId, iteration, error, duration, routine) {
36
36
  await this.appendLoopLog(executionId, "step_failed", "error", {
37
37
  step_id: stepId,
38
38
  iteration,
39
39
  error,
40
40
  duration,
41
- });
41
+ }, undefined, routine);
42
42
  }
43
- async logStepSkipped(executionId, stepId, iteration, reason) {
43
+ async logStepSkipped(executionId, stepId, iteration, reason, routine) {
44
44
  await this.appendLoopLog(executionId, "step_skipped", "success", {
45
45
  step_id: stepId,
46
46
  iteration,
47
47
  reason,
48
- });
48
+ }, undefined, routine);
49
49
  }
50
- async logExitConditionEvaluated(executionId, verdict, iteration) {
50
+ async logExitConditionEvaluated(executionId, verdict, iteration, routine) {
51
51
  await this.appendLoopLog(executionId, "exit_condition_evaluated", "success", {
52
52
  verdict,
53
53
  iteration,
54
- });
54
+ }, undefined, routine);
55
55
  }
56
- async logExitConditionFailed(executionId, iteration, checkpoint, error) {
56
+ async logExitConditionFailed(executionId, iteration, checkpoint, error, routine) {
57
57
  await this.appendLoopLog(executionId, "exit_condition_failed", "error", {
58
58
  iteration,
59
59
  checkpoint,
60
60
  error,
61
- });
61
+ }, undefined, routine);
62
62
  }
63
- async logLoopInterrupted(executionId, iteration, stateFilePath, opts) {
63
+ async logLoopInterrupted(executionId, iteration, stateFilePath, opts, routine) {
64
64
  await this.appendLoopLog(executionId, "loop_interrupted", "error", {
65
65
  iteration,
66
66
  state_file_path: stateFilePath,
@@ -68,16 +68,16 @@ export class LoopEventLogSink {
68
68
  ...(opts?.pendingExitCondition !== undefined
69
69
  ? { pending_exit_condition: opts.pendingExitCondition }
70
70
  : {}),
71
- });
71
+ }, undefined, routine);
72
72
  }
73
- async logLoopCompleted(executionId, completionReason, totalIterations, totalDuration) {
73
+ async logLoopCompleted(executionId, completionReason, totalIterations, totalDuration, routine) {
74
74
  await this.appendLoopLog(executionId, "loop_completed", "success", {
75
75
  completion_reason: completionReason,
76
76
  total_iterations: totalIterations,
77
77
  total_duration: totalDuration,
78
- });
78
+ }, undefined, routine);
79
79
  }
80
- async appendLoopLog(executionId, eventType, status, loopDetails, backend) {
80
+ async appendLoopLog(executionId, eventType, status, loopDetails, backend, routine) {
81
81
  await this.store.appendLog({
82
82
  timestamp: new Date().toISOString(),
83
83
  session_id: executionId,
@@ -86,6 +86,13 @@ export class LoopEventLogSink {
86
86
  status,
87
87
  details: {
88
88
  loop: loopDetails,
89
+ ...(routine?.routineRunId
90
+ ? {
91
+ routine: {
92
+ routine_run_id: routine.routineRunId,
93
+ },
94
+ }
95
+ : {}),
89
96
  },
90
97
  });
91
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-log-sink.js","sourceRoot":"","sources":["../../src/application/event-log-sink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-log-sink.js","sourceRoot":"","sources":["../../src/application/event-log-sink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAmC,MAAM,kBAAkB,CAAC;AAOlF,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;IAAG,CAAC;IAE3C,KAAK,CAAC,cAAc,CACzB,WAAmB,EACnB,YAAoB,EACpB,aAAqB,EACrB,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE;YAC/D,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,aAAa;SAC9B,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,WAAmB,EACnB,SAAiB,EACjB,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE;YACpE,SAAS;SACV,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,WAAmB,EACnB,MAAc,EACd,SAAiB,EACjB,IAAiE;QAEjE,MAAM,IAAI,CAAC,aAAa,CACtB,WAAW,EACX,cAAc,EACd,SAAS,EACT;YACE,OAAO,EAAE,MAAM;YACf,SAAS;YACT,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C,EACD,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,EAC/B,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,CACrC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,MAAc,EACd,SAAiB,EACjB,cAAkC,EAClC,gBAAoC,EACpC,QAAgB,EAChB,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE;YACjE,OAAO,EAAE,MAAM;YACf,SAAS;YACT,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,QAAQ;SACT,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,WAAmB,EACnB,MAAc,EACd,SAAiB,EACjB,KAAa,EACb,QAAgB,EAChB,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE;YAC5D,OAAO,EAAE,MAAM;YACf,SAAS;YACT,KAAK;YACL,QAAQ;SACT,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,WAAmB,EACnB,MAAc,EACd,SAAiB,EACjB,MAAc,EACd,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE;YAC/D,OAAO,EAAE,MAAM;YACf,SAAS;YACT,MAAM;SACP,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,yBAAyB,CACpC,WAAmB,EACnB,OAAe,EACf,SAAiB,EACjB,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CACtB,WAAW,EACX,0BAA0B,EAC1B,SAAS,EACT;YACE,OAAO;YACP,SAAS;SACV,EACD,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,WAAmB,EACnB,SAAiB,EACjB,UAAmB,EACnB,KAAa,EACb,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,uBAAuB,EAAE,OAAO,EAAE;YACtE,SAAS;YACT,UAAU;YACV,KAAK;SACN,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,WAAmB,EACnB,SAAiB,EACjB,aAAqB,EACrB,IAA8D,EAC9D,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE;YACjE,SAAS;YACT,eAAe,EAAE,aAAa;YAC9B,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,EAAE,oBAAoB,KAAK,SAAS;gBAC1C,CAAC,CAAC,EAAE,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,EAAE;gBACvD,CAAC,CAAC,EAAE,CAAC;SACR,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,gBAAwB,EACxB,eAAuB,EACvB,aAAqB,EACrB,OAA4B;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE;YACjE,iBAAiB,EAAE,gBAAgB;YACnC,gBAAgB,EAAE,eAAe;YACjC,cAAc,EAAE,aAAa;SAC9B,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,WAAmB,EACnB,SAAiC,EACjC,MAA0B,EAC1B,WAAoC,EACpC,OAAqB,EACrB,OAA4B;QAE5B,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,WAAW;YACvB,OAAO;YACP,UAAU,EAAE,SAAS;YACrB,MAAM;YACN,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,GAAG,CAAC,OAAO,EAAE,YAAY;oBACvB,CAAC,CAAC;wBACE,OAAO,EAAE;4BACP,cAAc,EAAE,OAAO,CAAC,YAAY;yBACrC;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAQ,aAAmC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3D,CAAC,CAAE,OAAuB;QAC1B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -6,6 +6,9 @@ import { LoopStateRepository } from "../infrastructure/store/loop-state-reposito
6
6
  const MS_PER_DAY = 24 * 60 * 60 * 1000;
7
7
  export const ABANDONED_RUNNING_SESSION_STALE_MS = 30_000;
8
8
  const ABANDONED_RUNNING_SESSION_MESSAGE = "Recovered abandoned running session after owner process disappeared.";
9
+ function resolveProgressTimestamp(metadata) {
10
+ return metadata.lastProgressAt ?? metadata.updatedAt;
11
+ }
9
12
  export function isProcessAlive(pid) {
10
13
  if (!Number.isInteger(pid) || pid <= 0) {
11
14
  return false;
@@ -103,11 +106,12 @@ export async function reconcileAbandonedRunningTaskSessions(store, taskService,
103
106
  if (!metadata || metadata.status !== "running") {
104
107
  continue;
105
108
  }
106
- const updatedAtMs = Date.parse(metadata.updatedAt);
107
- if (!Number.isFinite(updatedAtMs) || now.getTime() - updatedAtMs < staleThresholdMs) {
109
+ const progressAt = resolveProgressTimestamp(metadata);
110
+ const progressAtMs = Date.parse(progressAt);
111
+ if (!Number.isFinite(progressAtMs) || now.getTime() - progressAtMs < staleThresholdMs) {
108
112
  continue;
109
113
  }
110
- const staleSeconds = Math.round((now.getTime() - updatedAtMs) / 1000);
114
+ const staleSeconds = Math.round((now.getTime() - progressAtMs) / 1000);
111
115
  const ownerAlive = metadata.ownerPid !== undefined && checkAlive(metadata.ownerPid);
112
116
  const childAlive = metadata.backendChildPid !== undefined && checkAlive(metadata.backendChildPid);
113
117
  if (ownerAlive || childAlive) {
@@ -115,7 +119,7 @@ export async function reconcileAbandonedRunningTaskSessions(store, taskService,
115
119
  if (!dryRun) {
116
120
  await store.writeSessionMetadata({
117
121
  ...metadata,
118
- updatedAt: now.toISOString(),
122
+ lastHeartbeatAt: now.toISOString(),
119
123
  });
120
124
  await store.appendLog({
121
125
  timestamp: now.toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"housekeeping.js","sourceRoot":"","sources":["../../src/application/housekeeping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"housekeeping.js","sourceRoot":"","sources":["../../src/application/housekeeping.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import { isTaskVisibleByDefault } from "../domain/task-retention.js";
2
2
  import { getTaskWarnings } from "../domain/task-management.js";
3
3
  import { loadTasksWithRetention } from "./task-housekeeping.js";
4
+ function resolveActivityTimestamp(updatedAt, lastProgressAt) {
5
+ return lastProgressAt ?? updatedAt;
6
+ }
4
7
  export class ProjectionService {
5
8
  dependencies;
6
9
  constructor(dependencies) {
@@ -104,7 +107,7 @@ async function buildActiveAgents(store, tasks, logs, now, staleThresholdMs) {
104
107
  const task = tasksBySessionId.get(metadata.relaySessionId) ??
105
108
  (spawned?.taskId ? tasksById.get(spawned.taskId) : undefined);
106
109
  const startedAt = metadata.createdAt;
107
- const updatedAtMs = Date.parse(metadata.updatedAt);
110
+ const activityAtMs = Date.parse(resolveActivityTimestamp(metadata.updatedAt, metadata.lastProgressAt));
108
111
  const runningForSeconds = secondsSince(startedAt, now);
109
112
  return {
110
113
  agent_id: metadata.agentId ?? spawned?.agentId ?? metadata.relaySessionId,
@@ -114,8 +117,8 @@ async function buildActiveAgents(store, tasks, logs, now, staleThresholdMs) {
114
117
  task_title: task?.title,
115
118
  backend: metadata.backend ?? spawned?.backend,
116
119
  role: spawned?.role,
117
- status: Number.isFinite(updatedAtMs) &&
118
- now.getTime() - updatedAtMs > staleThresholdMs
120
+ status: Number.isFinite(activityAtMs) &&
121
+ now.getTime() - activityAtMs > staleThresholdMs
119
122
  ? "stale"
120
123
  : "running",
121
124
  started_at: startedAt,
@@ -1 +1 @@
1
- {"version":3,"file":"projection-service.js","sourceRoot":"","sources":["../../src/application/projection-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection-service.js","sourceRoot":"","sources":["../../src/application/projection-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { RoutineDefinition } from "../domain/routine-definition.js";
2
+ import { type RoutineLoadResult } from "../domain/routine-loader.js";
3
+ import type { WorkflowCapabilitySummary, WorkflowFileRepository, WorkflowLoadResult } from "../domain/workflow-loader.js";
4
+ export interface RoutineCatalogEntry {
5
+ definition: RoutineDefinition;
6
+ yamlPath: string;
7
+ capabilitySummary: WorkflowCapabilitySummary;
8
+ workflowLoadResult?: WorkflowLoadResult;
9
+ }
10
+ export interface RoutineCatalogIssue {
11
+ kind: "invalid_config" | "duplicate_name";
12
+ yamlPath: string;
13
+ routineName?: string;
14
+ error: string;
15
+ duplicateOf?: string;
16
+ }
17
+ export interface RoutineCatalogSnapshot {
18
+ catalog: Map<string, RoutineCatalogEntry>;
19
+ invalid: RoutineCatalogIssue[];
20
+ }
21
+ export interface RoutineCatalogServiceDeps {
22
+ configDir: string;
23
+ workflowRepo: WorkflowFileRepository;
24
+ loader?: (yamlPath: string, repo: WorkflowFileRepository, vars?: Record<string, string>) => Promise<RoutineLoadResult>;
25
+ }
26
+ export declare class RoutineCatalogService {
27
+ private readonly deps;
28
+ private readonly loader;
29
+ private snapshot;
30
+ constructor(deps: RoutineCatalogServiceDeps);
31
+ scan(vars?: Record<string, string>): Promise<RoutineCatalogSnapshot>;
32
+ rescan(vars?: Record<string, string>): Promise<RoutineCatalogSnapshot>;
33
+ getSnapshot(): RoutineCatalogSnapshot;
34
+ getCatalog(): Map<string, RoutineCatalogEntry>;
35
+ private listYamlFiles;
36
+ }
@@ -0,0 +1,90 @@
1
+ import { readdir } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { ValidationError } from "../core/errors.js";
4
+ import { loadRoutine } from "../domain/routine-loader.js";
5
+ import { isMissingFileError } from "../infrastructure/store/file-utils.js";
6
+ export class RoutineCatalogService {
7
+ deps;
8
+ loader;
9
+ snapshot = {
10
+ catalog: new Map(),
11
+ invalid: [],
12
+ };
13
+ constructor(deps) {
14
+ this.deps = deps;
15
+ this.loader = deps.loader ?? loadRoutine;
16
+ }
17
+ async scan(vars = {}) {
18
+ const catalog = new Map();
19
+ const invalid = [];
20
+ const yamlPaths = await this.listYamlFiles();
21
+ for (const yamlPath of yamlPaths) {
22
+ try {
23
+ const loaded = await this.loader(yamlPath, this.deps.workflowRepo, vars);
24
+ const routineName = loaded.routineDefinition.name.value;
25
+ if (catalog.has(routineName)) {
26
+ invalid.push({
27
+ kind: "duplicate_name",
28
+ yamlPath,
29
+ routineName,
30
+ duplicateOf: catalog.get(routineName).yamlPath,
31
+ error: `Duplicate routine name "${routineName}" detected.`,
32
+ });
33
+ continue;
34
+ }
35
+ catalog.set(routineName, {
36
+ definition: loaded.routineDefinition,
37
+ yamlPath,
38
+ capabilitySummary: loaded.capabilitySummary,
39
+ workflowLoadResult: loaded.workflowLoadResult,
40
+ });
41
+ }
42
+ catch (error) {
43
+ invalid.push({
44
+ kind: "invalid_config",
45
+ yamlPath,
46
+ error: formatError(error),
47
+ });
48
+ }
49
+ }
50
+ this.snapshot = { catalog, invalid };
51
+ return this.snapshot;
52
+ }
53
+ async rescan(vars = {}) {
54
+ return this.scan(vars);
55
+ }
56
+ getSnapshot() {
57
+ return this.snapshot;
58
+ }
59
+ getCatalog() {
60
+ return this.snapshot.catalog;
61
+ }
62
+ async listYamlFiles() {
63
+ try {
64
+ const entries = await readdir(this.deps.configDir, { withFileTypes: true });
65
+ return entries
66
+ .filter((entry) => entry.isFile() && /\.(ya?ml)$/i.test(entry.name))
67
+ .map((entry) => path.resolve(this.deps.configDir, entry.name))
68
+ .sort((left, right) => left.localeCompare(right));
69
+ }
70
+ catch (error) {
71
+ if (error instanceof ValidationError) {
72
+ throw error;
73
+ }
74
+ if (isMissingFileError(error)) {
75
+ return [];
76
+ }
77
+ throw error;
78
+ }
79
+ }
80
+ }
81
+ function formatError(error) {
82
+ if (error instanceof ValidationError) {
83
+ return error.message;
84
+ }
85
+ if (error instanceof Error) {
86
+ return error.message;
87
+ }
88
+ return String(error);
89
+ }
90
+ //# sourceMappingURL=routine-catalog-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routine-catalog-service.js","sourceRoot":"","sources":["../../src/application/routine-catalog-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAA0B,MAAM,6BAA6B,CAAC;AAMlF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAgC3E,MAAM,OAAO,qBAAqB;IAWI;IAVnB,MAAM,CAIS;IACxB,QAAQ,GAA2B;QACzC,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,YAAoC,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;QACjE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAA+B,EAAE;QACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;QACvD,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBACzE,MAAM,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,gBAAgB;wBACtB,QAAQ;wBACR,WAAW;wBACX,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,QAAQ;wBAC/C,KAAK,EAAE,2BAA2B,WAAW,aAAa;qBAC3D,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;oBACvB,UAAU,EAAE,MAAM,CAAC,iBAAiB;oBACpC,QAAQ;oBACR,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;iBAC9C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,gBAAgB;oBACtB,QAAQ;oBACR,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,OAAO,OAAO;iBACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACnE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC7D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACrC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { RoutineCatalogService } from "./routine-catalog-service.js";
2
+ import { type RoutineScheduler } from "./routine-scheduler.js";
3
+ import type { RoutineRunService } from "./routine-run-service.js";
4
+ import { RelayStore } from "../infrastructure/store/relay-store.js";
5
+ import { RoutineExecutionLeaseRepository } from "../infrastructure/store/routine-execution-lease-repository.js";
6
+ import { RoutineStateRepository } from "../infrastructure/store/routine-state-repository.js";
7
+ export interface RoutineDaemonSignalTarget {
8
+ on(event: "SIGTERM" | "SIGINT", listener: () => void): void;
9
+ off(event: "SIGTERM" | "SIGINT", listener: () => void): void;
10
+ }
11
+ export interface ProcessStatus {
12
+ alive: boolean;
13
+ startedAt?: string | null;
14
+ }
15
+ export interface RoutineDaemonServiceDeps {
16
+ store: RelayStore;
17
+ catalogService: Pick<RoutineCatalogService, "rescan" | "getCatalog">;
18
+ scheduler: Pick<RoutineScheduler, "tick">;
19
+ runService: Pick<RoutineRunService, "dispatch">;
20
+ stateRepo: RoutineStateRepository;
21
+ leaseRepo: RoutineExecutionLeaseRepository;
22
+ signalTarget?: RoutineDaemonSignalTarget;
23
+ getProcessStatus?: (pid: number) => Promise<ProcessStatus>;
24
+ }
25
+ export interface RoutineDaemonServiceOptions {
26
+ now?: () => Date;
27
+ ownerPid?: number;
28
+ pollIntervalMs?: number;
29
+ }
30
+ export declare class RoutineDaemonService {
31
+ private readonly deps;
32
+ private readonly now;
33
+ private readonly ownerPid;
34
+ private readonly pollIntervalMs;
35
+ private readonly signalTarget;
36
+ private readonly getProcessStatus;
37
+ private stopping;
38
+ private readonly sleepController;
39
+ private currentExecution?;
40
+ constructor(deps: RoutineDaemonServiceDeps, options?: RoutineDaemonServiceOptions);
41
+ start(): Promise<void>;
42
+ private runTick;
43
+ private cleanupStaleLeases;
44
+ private acquirePidFile;
45
+ private releasePidFile;
46
+ private readPidFile;
47
+ private pidFilePath;
48
+ }