@action-llama/action-llama 0.11.1 → 0.11.3

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 (181) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +2 -1
  3. package/dist/agents/container-entry.d.ts.map +1 -1
  4. package/dist/agents/container-entry.js +9 -0
  5. package/dist/agents/container-entry.js.map +1 -1
  6. package/dist/agents/container-runner.d.ts +1 -1
  7. package/dist/agents/container-runner.d.ts.map +1 -1
  8. package/dist/agents/container-runner.js +11 -16
  9. package/dist/agents/container-runner.js.map +1 -1
  10. package/dist/agents/runner.d.ts.map +1 -1
  11. package/dist/agents/runner.js +26 -1
  12. package/dist/agents/runner.js.map +1 -1
  13. package/dist/cli/commands/chat.js +3 -3
  14. package/dist/cli/commands/chat.js.map +1 -1
  15. package/dist/cli/commands/doctor.d.ts.map +1 -1
  16. package/dist/cli/commands/doctor.js +5 -2
  17. package/dist/cli/commands/doctor.js.map +1 -1
  18. package/dist/cli/commands/logs.d.ts.map +1 -1
  19. package/dist/cli/commands/logs.js +40 -22
  20. package/dist/cli/commands/logs.js.map +1 -1
  21. package/dist/cli/commands/run.d.ts.map +1 -1
  22. package/dist/cli/commands/run.js +8 -4
  23. package/dist/cli/commands/run.js.map +1 -1
  24. package/dist/cli/commands/start.d.ts +1 -0
  25. package/dist/cli/commands/start.d.ts.map +1 -1
  26. package/dist/cli/commands/start.js +5 -1
  27. package/dist/cli/commands/start.js.map +1 -1
  28. package/dist/cli/commands/status.d.ts +1 -0
  29. package/dist/cli/commands/status.d.ts.map +1 -1
  30. package/dist/cli/commands/status.js +166 -55
  31. package/dist/cli/commands/status.js.map +1 -1
  32. package/dist/cli/commands/stop.d.ts +4 -0
  33. package/dist/cli/commands/stop.d.ts.map +1 -0
  34. package/dist/cli/commands/stop.js +27 -0
  35. package/dist/cli/commands/stop.js.map +1 -0
  36. package/dist/cli/main.js +12 -3
  37. package/dist/cli/main.js.map +1 -1
  38. package/dist/cli/resolve-target.d.ts +27 -0
  39. package/dist/cli/resolve-target.d.ts.map +1 -0
  40. package/dist/cli/resolve-target.js +42 -0
  41. package/dist/cli/resolve-target.js.map +1 -0
  42. package/dist/cloud/aws/constants.d.ts +2 -2
  43. package/dist/cloud/aws/constants.d.ts.map +1 -1
  44. package/dist/cloud/aws/constants.js +2 -2
  45. package/dist/cloud/aws/constants.js.map +1 -1
  46. package/dist/cloud/aws/deploy.d.ts +3 -2
  47. package/dist/cloud/aws/deploy.d.ts.map +1 -1
  48. package/dist/cloud/aws/deploy.js +8 -29
  49. package/dist/cloud/aws/deploy.js.map +1 -1
  50. package/dist/cloud/aws/iam.d.ts +13 -0
  51. package/dist/cloud/aws/iam.d.ts.map +1 -1
  52. package/dist/cloud/aws/iam.js +70 -0
  53. package/dist/cloud/aws/iam.js.map +1 -1
  54. package/dist/cloud/aws/provider.d.ts +11 -0
  55. package/dist/cloud/aws/provider.d.ts.map +1 -1
  56. package/dist/cloud/aws/provider.js +52 -2
  57. package/dist/cloud/aws/provider.js.map +1 -1
  58. package/dist/cloud/aws/provision.d.ts.map +1 -1
  59. package/dist/cloud/aws/provision.js +54 -20
  60. package/dist/cloud/aws/provision.js.map +1 -1
  61. package/dist/cloud/gcp/provider.d.ts +4 -0
  62. package/dist/cloud/gcp/provider.d.ts.map +1 -1
  63. package/dist/cloud/gcp/provider.js +26 -0
  64. package/dist/cloud/gcp/provider.js.map +1 -1
  65. package/dist/cloud/provider.d.ts +6 -0
  66. package/dist/cloud/provider.d.ts.map +1 -1
  67. package/dist/cloud/provider.js.map +1 -1
  68. package/dist/docker/ecs-runtime.d.ts +2 -2
  69. package/dist/docker/ecs-runtime.d.ts.map +1 -1
  70. package/dist/docker/ecs-runtime.js +9 -4
  71. package/dist/docker/ecs-runtime.js.map +1 -1
  72. package/dist/docker/image.js +1 -1
  73. package/dist/docker/image.js.map +1 -1
  74. package/dist/docker/runtime.d.ts +4 -3
  75. package/dist/docker/runtime.d.ts.map +1 -1
  76. package/dist/gateway/call-store.d.ts +6 -1
  77. package/dist/gateway/call-store.d.ts.map +1 -1
  78. package/dist/gateway/call-store.js +25 -1
  79. package/dist/gateway/call-store.js.map +1 -1
  80. package/dist/gateway/container-registry.d.ts +25 -0
  81. package/dist/gateway/container-registry.d.ts.map +1 -0
  82. package/dist/gateway/container-registry.js +43 -0
  83. package/dist/gateway/container-registry.js.map +1 -0
  84. package/dist/gateway/index.d.ts +6 -2
  85. package/dist/gateway/index.d.ts.map +1 -1
  86. package/dist/gateway/index.js +19 -10
  87. package/dist/gateway/index.js.map +1 -1
  88. package/dist/gateway/lock-store.d.ts +7 -1
  89. package/dist/gateway/lock-store.d.ts.map +1 -1
  90. package/dist/gateway/lock-store.js +37 -7
  91. package/dist/gateway/lock-store.js.map +1 -1
  92. package/dist/gateway/routes/calls.d.ts +2 -2
  93. package/dist/gateway/routes/calls.d.ts.map +1 -1
  94. package/dist/gateway/routes/calls.js.map +1 -1
  95. package/dist/gateway/routes/control.d.ts +1 -0
  96. package/dist/gateway/routes/control.d.ts.map +1 -1
  97. package/dist/gateway/routes/control.js +9 -0
  98. package/dist/gateway/routes/control.js.map +1 -1
  99. package/dist/gateway/routes/dashboard.d.ts +6 -0
  100. package/dist/gateway/routes/dashboard.d.ts.map +1 -1
  101. package/dist/gateway/routes/dashboard.js +14 -8
  102. package/dist/gateway/routes/dashboard.js.map +1 -1
  103. package/dist/gateway/routes/locks.d.ts +2 -2
  104. package/dist/gateway/routes/locks.d.ts.map +1 -1
  105. package/dist/gateway/routes/locks.js.map +1 -1
  106. package/dist/gateway/routes/shutdown.d.ts +2 -2
  107. package/dist/gateway/routes/shutdown.d.ts.map +1 -1
  108. package/dist/gateway/routes/shutdown.js +1 -1
  109. package/dist/gateway/routes/shutdown.js.map +1 -1
  110. package/dist/gateway/routes/signals.d.ts +2 -2
  111. package/dist/gateway/routes/signals.d.ts.map +1 -1
  112. package/dist/gateway/routes/signals.js.map +1 -1
  113. package/dist/preflight/interpolate.d.ts +10 -0
  114. package/dist/preflight/interpolate.d.ts.map +1 -0
  115. package/dist/preflight/interpolate.js +33 -0
  116. package/dist/preflight/interpolate.js.map +1 -0
  117. package/dist/preflight/providers/git-clone.d.ts +3 -0
  118. package/dist/preflight/providers/git-clone.d.ts.map +1 -0
  119. package/dist/preflight/providers/git-clone.js +36 -0
  120. package/dist/preflight/providers/git-clone.js.map +1 -0
  121. package/dist/preflight/providers/http.d.ts +3 -0
  122. package/dist/preflight/providers/http.d.ts.map +1 -0
  123. package/dist/preflight/providers/http.js +36 -0
  124. package/dist/preflight/providers/http.js.map +1 -0
  125. package/dist/preflight/providers/shell.d.ts +3 -0
  126. package/dist/preflight/providers/shell.d.ts.map +1 -0
  127. package/dist/preflight/providers/shell.js +28 -0
  128. package/dist/preflight/providers/shell.js.map +1 -0
  129. package/dist/preflight/registry.d.ts +4 -0
  130. package/dist/preflight/registry.d.ts.map +1 -0
  131. package/dist/preflight/registry.js +20 -0
  132. package/dist/preflight/registry.js.map +1 -0
  133. package/dist/preflight/runner.d.ts +7 -0
  134. package/dist/preflight/runner.d.ts.map +1 -0
  135. package/dist/preflight/runner.js +28 -0
  136. package/dist/preflight/runner.js.map +1 -0
  137. package/dist/preflight/schema.d.ts +21 -0
  138. package/dist/preflight/schema.d.ts.map +1 -0
  139. package/dist/preflight/schema.js +9 -0
  140. package/dist/preflight/schema.js.map +1 -0
  141. package/dist/scheduler/event-queue.d.ts +8 -15
  142. package/dist/scheduler/event-queue.d.ts.map +1 -1
  143. package/dist/scheduler/event-queue.js +33 -15
  144. package/dist/scheduler/event-queue.js.map +1 -1
  145. package/dist/scheduler/execution.d.ts +50 -0
  146. package/dist/scheduler/execution.d.ts.map +1 -0
  147. package/dist/scheduler/execution.js +106 -0
  148. package/dist/scheduler/execution.js.map +1 -0
  149. package/dist/scheduler/index.d.ts +2 -1
  150. package/dist/scheduler/index.d.ts.map +1 -1
  151. package/dist/scheduler/index.js +91 -179
  152. package/dist/scheduler/index.js.map +1 -1
  153. package/dist/scheduler/runner-pool.d.ts +6 -16
  154. package/dist/scheduler/runner-pool.d.ts.map +1 -1
  155. package/dist/scheduler/runner-pool.js +15 -26
  156. package/dist/scheduler/runner-pool.js.map +1 -1
  157. package/dist/setup/scaffold.d.ts.map +1 -1
  158. package/dist/setup/scaffold.js +2 -1
  159. package/dist/setup/scaffold.js.map +1 -1
  160. package/dist/shared/config.d.ts +2 -0
  161. package/dist/shared/config.d.ts.map +1 -1
  162. package/dist/shared/config.js +6 -3
  163. package/dist/shared/config.js.map +1 -1
  164. package/dist/shared/paths.js +1 -1
  165. package/dist/shared/paths.js.map +1 -1
  166. package/dist/shared/state-store-dynamo.d.ts +39 -0
  167. package/dist/shared/state-store-dynamo.d.ts.map +1 -0
  168. package/dist/shared/state-store-dynamo.js +143 -0
  169. package/dist/shared/state-store-dynamo.js.map +1 -0
  170. package/dist/shared/state-store-sqlite.d.ts +28 -0
  171. package/dist/shared/state-store-sqlite.d.ts.map +1 -0
  172. package/dist/shared/state-store-sqlite.js +78 -0
  173. package/dist/shared/state-store-sqlite.js.map +1 -0
  174. package/dist/shared/state-store.d.ts +51 -0
  175. package/dist/shared/state-store.d.ts.map +1 -0
  176. package/dist/shared/state-store.js +31 -0
  177. package/dist/shared/state-store.js.map +1 -0
  178. package/dist/webhooks/providers/github.d.ts.map +1 -1
  179. package/dist/webhooks/providers/github.js +3 -0
  180. package/dist/webhooks/providers/github.js.map +1 -1
  181. package/package.json +6 -2
@@ -65,6 +65,7 @@ export interface RunningAgent {
65
65
  taskId: string;
66
66
  status: string;
67
67
  startedAt?: Date;
68
+ trigger?: string;
68
69
  }
69
70
  export interface ContainerRuntime {
70
71
  /** Whether containers launched by this runtime need a gateway URL */
@@ -109,15 +110,15 @@ export interface ContainerRuntime {
109
110
  * For cloud runtimes: no-op.
110
111
  */
111
112
  cleanupCredentials(creds: RuntimeCredentials): void;
112
- /** Fetch recent log entries for an agent. */
113
- fetchLogs(agentName: string, limit: number): Promise<string[]>;
113
+ /** Fetch recent log entries for an agent, optionally filtered to a specific task/instance. */
114
+ fetchLogs(agentName: string, limit: number, taskId?: string): Promise<string[]>;
114
115
  /**
115
116
  * Follow logs for an agent by name, polling for new entries.
116
117
  * Unlike streamLogs (which follows a specific running task), this polls the
117
118
  * agent's log group directly — works even when no task is currently running.
118
119
  * Returns a handle to stop polling.
119
120
  */
120
- followLogs(agentName: string, onLine: (line: string) => void, onStderr?: (text: string) => void): {
121
+ followLogs(agentName: string, onLine: (line: string) => void, onStderr?: (text: string) => void, taskId?: string): {
121
122
  stop: () => void;
122
123
  };
123
124
  /** Return a URL to the cloud console for this task/execution, or null for local runtimes. */
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/docker/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/docker/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { StateStore } from "../shared/state-store.js";
1
2
  export type CallStatus = "pending" | "running" | "completed" | "error";
2
3
  export interface CallEntry {
3
4
  callId: string;
@@ -15,7 +16,10 @@ export interface CallEntry {
15
16
  export declare class CallStore {
16
17
  private calls;
17
18
  private sweepTimer;
18
- constructor(sweepIntervalSeconds?: number);
19
+ private store?;
20
+ constructor(sweepIntervalSeconds?: number, store?: StateStore);
21
+ /** Hydrate in-memory state from the persistent store. */
22
+ init(): Promise<void>;
19
23
  create(opts: {
20
24
  callerAgent: string;
21
25
  callerInstanceId: string;
@@ -34,6 +38,7 @@ export declare class CallStore {
34
38
  get(callId: string): CallEntry | undefined;
35
39
  failAllByCaller(callerInstanceId: string): number;
36
40
  private sweep;
41
+ private persist;
37
42
  dispose(): void;
38
43
  }
39
44
  //# sourceMappingURL=call-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"call-store.d.ts","sourceRoot":"","sources":["../../src/gateway/call-store.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,UAAU,CAA6C;gBAEnD,oBAAoB,SAAK;IAKrC,MAAM,CAAC,IAAI,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,SAAS;IAeb,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IASvD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IASnD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAW3H,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAajD,OAAO,CAAC,KAAK;IAiBb,OAAO,IAAI,IAAI;CAOhB"}
1
+ {"version":3,"file":"call-store.d.ts","sourceRoot":"","sources":["../../src/gateway/call-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,KAAK,CAAC,CAAa;gBAEf,oBAAoB,SAAK,EAAE,KAAK,CAAC,EAAE,UAAU;IAMzD,yDAAyD;IACnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,MAAM,CAAC,IAAI,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,SAAS;IAgBb,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAQnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAUvD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAUnD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAW3H,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAcjD,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,OAAO;IAMf,OAAO,IAAI,IAAI;CAOhB"}
@@ -1,12 +1,24 @@
1
1
  import { randomUUID } from "crypto";
2
+ const NS = "calls";
2
3
  export class CallStore {
3
4
  calls = new Map();
4
5
  sweepTimer;
5
- constructor(sweepIntervalSeconds = 60) {
6
+ store;
7
+ constructor(sweepIntervalSeconds = 60, store) {
8
+ this.store = store;
6
9
  this.sweepTimer = setInterval(() => this.sweep(), sweepIntervalSeconds * 1000);
7
10
  if (this.sweepTimer.unref)
8
11
  this.sweepTimer.unref();
9
12
  }
13
+ /** Hydrate in-memory state from the persistent store. */
14
+ async init() {
15
+ if (!this.store)
16
+ return;
17
+ const entries = await this.store.list(NS);
18
+ for (const { value } of entries) {
19
+ this.calls.set(value.callId, value);
20
+ }
21
+ }
10
22
  create(opts) {
11
23
  const entry = {
12
24
  callId: randomUUID(),
@@ -19,6 +31,7 @@ export class CallStore {
19
31
  depth: opts.depth,
20
32
  };
21
33
  this.calls.set(entry.callId, entry);
34
+ this.persist(entry);
22
35
  return entry;
23
36
  }
24
37
  setRunning(callId) {
@@ -26,6 +39,7 @@ export class CallStore {
26
39
  if (!entry || entry.status !== "pending")
27
40
  return false;
28
41
  entry.status = "running";
42
+ this.persist(entry);
29
43
  return true;
30
44
  }
31
45
  complete(callId, returnValue) {
@@ -35,6 +49,7 @@ export class CallStore {
35
49
  entry.status = "completed";
36
50
  entry.returnValue = returnValue;
37
51
  entry.completedAt = Date.now();
52
+ this.persist(entry);
38
53
  return true;
39
54
  }
40
55
  fail(callId, errorMessage) {
@@ -44,6 +59,7 @@ export class CallStore {
44
59
  entry.status = "error";
45
60
  entry.errorMessage = errorMessage;
46
61
  entry.completedAt = Date.now();
62
+ this.persist(entry);
47
63
  return true;
48
64
  }
49
65
  check(callId, callerInstanceId) {
@@ -68,6 +84,7 @@ export class CallStore {
68
84
  entry.status = "error";
69
85
  entry.errorMessage = "caller container exited";
70
86
  entry.completedAt = Date.now();
87
+ this.persist(entry);
71
88
  count++;
72
89
  }
73
90
  }
@@ -81,15 +98,22 @@ export class CallStore {
81
98
  if (entry.status === "completed" || entry.status === "error") {
82
99
  if (entry.completedAt && now - entry.completedAt > TERMINAL_TTL) {
83
100
  this.calls.delete(id);
101
+ this.store?.delete(NS, id).catch(() => { });
84
102
  }
85
103
  }
86
104
  else if (now - entry.createdAt > ACTIVE_TTL) {
87
105
  entry.status = "error";
88
106
  entry.errorMessage = "call timed out";
89
107
  entry.completedAt = now;
108
+ this.persist(entry);
90
109
  }
91
110
  }
92
111
  }
112
+ persist(entry) {
113
+ // TTL: 2 hours for active, 10 minutes after completion
114
+ const ttlSec = entry.completedAt ? 600 : 7200;
115
+ this.store?.set(NS, entry.callId, entry, { ttl: ttlSec }).catch(() => { });
116
+ }
93
117
  dispose() {
94
118
  if (this.sweepTimer) {
95
119
  clearInterval(this.sweepTimer);
@@ -1 +1 @@
1
- {"version":3,"file":"call-store.js","sourceRoot":"","sources":["../../src/gateway/call-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-store.js","sourceRoot":"","sources":["../../src/gateway/call-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { ContainerRegistration } from "./types.js";
2
+ import type { StateStore } from "../shared/state-store.js";
3
+ /**
4
+ * Container registry backed by a StateStore.
5
+ *
6
+ * Keeps an in-memory cache for fast synchronous lookups (used by every
7
+ * route handler). Writes go to both the cache and the persistent store,
8
+ * so registrations survive scheduler restarts.
9
+ */
10
+ export declare class ContainerRegistry {
11
+ private cache;
12
+ private store?;
13
+ constructor(store?: StateStore);
14
+ /** Hydrate the in-memory cache from the persistent store. */
15
+ init(): Promise<void>;
16
+ /** Synchronous lookup — used by route handlers on every request. */
17
+ get(secret: string): ContainerRegistration | undefined;
18
+ /** Register a container. Persists to store. */
19
+ register(secret: string, reg: ContainerRegistration): Promise<void>;
20
+ /** Unregister a container. Persists to store. */
21
+ unregister(secret: string): Promise<void>;
22
+ /** Number of registered containers. */
23
+ get size(): number;
24
+ }
25
+ //# sourceMappingURL=container-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-registry.d.ts","sourceRoot":"","sources":["../../src/gateway/container-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAI3D;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,KAAK,CAAC,CAAa;gBAEf,KAAK,CAAC,EAAE,UAAU;IAI9B,6DAA6D;IACvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,oEAAoE;IACpE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAItD,+CAA+C;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE,iDAAiD;IAC3C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C,uCAAuC;IACvC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,43 @@
1
+ const NS = "containers";
2
+ /**
3
+ * Container registry backed by a StateStore.
4
+ *
5
+ * Keeps an in-memory cache for fast synchronous lookups (used by every
6
+ * route handler). Writes go to both the cache and the persistent store,
7
+ * so registrations survive scheduler restarts.
8
+ */
9
+ export class ContainerRegistry {
10
+ cache = new Map();
11
+ store;
12
+ constructor(store) {
13
+ this.store = store;
14
+ }
15
+ /** Hydrate the in-memory cache from the persistent store. */
16
+ async init() {
17
+ if (!this.store)
18
+ return;
19
+ const entries = await this.store.list(NS);
20
+ for (const { key, value } of entries) {
21
+ this.cache.set(key, value);
22
+ }
23
+ }
24
+ /** Synchronous lookup — used by route handlers on every request. */
25
+ get(secret) {
26
+ return this.cache.get(secret);
27
+ }
28
+ /** Register a container. Persists to store. */
29
+ async register(secret, reg) {
30
+ this.cache.set(secret, reg);
31
+ await this.store?.set(NS, secret, reg);
32
+ }
33
+ /** Unregister a container. Persists to store. */
34
+ async unregister(secret) {
35
+ this.cache.delete(secret);
36
+ await this.store?.delete(NS, secret);
37
+ }
38
+ /** Number of registered containers. */
39
+ get size() {
40
+ return this.cache.size;
41
+ }
42
+ }
43
+ //# sourceMappingURL=container-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-registry.js","sourceRoot":"","sources":["../../src/gateway/container-registry.ts"],"names":[],"mappings":"AAGA,MAAM,EAAE,GAAG,YAAY,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACpB,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAC;IACjD,KAAK,CAAc;IAE3B,YAAY,KAAkB;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,GAA0B;QACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,uCAAuC;IACvC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -3,7 +3,9 @@ import { type CallDispatcher } from "./routes/calls.js";
3
3
  import { type SignalContext } from "./routes/signals.js";
4
4
  import { LockStore } from "./lock-store.js";
5
5
  import { CallStore } from "./call-store.js";
6
+ import { ContainerRegistry } from "./container-registry.js";
6
7
  import type { ContainerRegistration } from "./types.js";
8
+ import type { StateStore } from "../shared/state-store.js";
7
9
  import type { WebhookRegistry } from "../webhooks/registry.js";
8
10
  import type { Logger } from "../shared/logger.js";
9
11
  import type { StatusTracker } from "../tui/status-tracker.js";
@@ -23,11 +25,13 @@ export interface GatewayOptions {
23
25
  signalContext?: SignalContext;
24
26
  controlDeps?: ControlRoutesDeps;
25
27
  apiKey?: string;
28
+ stateStore?: StateStore;
26
29
  }
27
30
  export interface GatewayServer {
28
31
  server: Server;
29
- registerContainer: (secret: string, reg: ContainerRegistration) => void;
30
- unregisterContainer: (secret: string) => void;
32
+ containerRegistry: ContainerRegistry;
33
+ registerContainer: (secret: string, reg: ContainerRegistration) => Promise<void>;
34
+ unregisterContainer: (secret: string) => Promise<void>;
31
35
  lockStore: LockStore;
32
36
  callStore: CallStore;
33
37
  setCallDispatcher: (dispatcher: CallDispatcher) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACxE,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAwH/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmI/E"}
@@ -4,20 +4,26 @@ import { registerShutdownRoute } from "./routes/shutdown.js";
4
4
  import { registerLockRoutes } from "./routes/locks.js";
5
5
  import { registerCallRoutes } from "./routes/calls.js";
6
6
  import { registerWebhookRoutes } from "./routes/webhooks.js";
7
- import { registerDashboardRoutes } from "./routes/dashboard.js";
7
+ import { registerDashboardRoutes, registerLoginRoutes } from "./routes/dashboard.js";
8
8
  import { registerSignalRoutes } from "./routes/signals.js";
9
9
  import { LockStore } from "./lock-store.js";
10
10
  import { CallStore } from "./call-store.js";
11
+ import { ContainerRegistry } from "./container-registry.js";
11
12
  import { withSpan, getTelemetry } from "../telemetry/index.js";
12
13
  import { SpanKind } from "@opentelemetry/api";
13
14
  import { authMiddleware } from "./auth.js";
14
15
  export async function startGateway(opts) {
15
- const { port, logger, killContainer, webhookRegistry, webhookSecrets, statusTracker, projectPath, webUI, lockTimeout, signalContext } = opts;
16
+ const { port, logger, killContainer, webhookRegistry, webhookSecrets, statusTracker, projectPath, webUI, lockTimeout, signalContext, stateStore } = opts;
16
17
  const app = new Hono();
17
- const containerRegistry = new Map();
18
- const lockStore = new LockStore(lockTimeout);
19
- const callStore = new CallStore();
18
+ // Create stores backed by the persistent StateStore (if provided).
19
+ const containerRegistry = new ContainerRegistry(stateStore);
20
+ const lockStore = new LockStore(lockTimeout, undefined, stateStore);
21
+ const callStore = new CallStore(undefined, stateStore);
20
22
  let callDispatcher;
23
+ // Hydrate in-memory caches from the persistent store.
24
+ await containerRegistry.init();
25
+ await lockStore.init();
26
+ await callStore.init();
21
27
  // Add telemetry middleware for HTTP requests
22
28
  const telemetry = getTelemetry();
23
29
  if (telemetry) {
@@ -50,6 +56,8 @@ export async function startGateway(opts) {
50
56
  app.use("/dashboard/*", auth);
51
57
  app.use("/dashboard", auth);
52
58
  app.use("/locks/status", auth);
59
+ // Always register login/logout so the auth redirect has a target
60
+ registerLoginRoutes(app, opts.apiKey);
53
61
  }
54
62
  const isPublic = opts.hostname === "0.0.0.0";
55
63
  registerLockRoutes(app, containerRegistry, lockStore, logger, {
@@ -65,6 +73,7 @@ export async function startGateway(opts) {
65
73
  // Dashboard routes (login/logout are unprotected; dashboard pages are behind authMiddleware above)
66
74
  if (webUI && statusTracker) {
67
75
  registerDashboardRoutes(app, statusTracker, projectPath, opts.apiKey);
76
+ app.get("/", (c) => c.redirect("/dashboard"));
68
77
  }
69
78
  // Control routes (for kill, pause, resume commands)
70
79
  if (opts.controlDeps) {
@@ -80,10 +89,10 @@ export async function startGateway(opts) {
80
89
  server.on("listening", resolve);
81
90
  });
82
91
  logger.info({ port }, "Gateway server listening");
83
- const registerContainer = (secret, reg) => {
84
- containerRegistry.set(secret, reg);
92
+ const registerContainer = async (secret, reg) => {
93
+ await containerRegistry.register(secret, reg);
85
94
  };
86
- const unregisterContainer = (secret) => {
95
+ const unregisterContainer = async (secret) => {
87
96
  const reg = containerRegistry.get(secret);
88
97
  if (reg) {
89
98
  const released = lockStore.releaseAll(reg.instanceId);
@@ -95,7 +104,7 @@ export async function startGateway(opts) {
95
104
  logger.info({ agent: reg.agentName, instance: reg.instanceId, failedCalls }, "failed pending calls on container cleanup");
96
105
  }
97
106
  }
98
- containerRegistry.delete(secret);
107
+ await containerRegistry.unregister(secret);
99
108
  };
100
109
  const setCallDispatcher = (dispatcher) => {
101
110
  callDispatcher = dispatcher;
@@ -105,6 +114,6 @@ export async function startGateway(opts) {
105
114
  callStore.dispose();
106
115
  server.close(() => resolve());
107
116
  });
108
- return { server, registerContainer, unregisterContainer, lockStore, callStore, setCallDispatcher, close };
117
+ return { server, containerRegistry, registerContainer, unregisterContainer, lockStore, callStore, setCallDispatcher, close };
109
118
  }
110
119
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { StateStore } from "../shared/state-store.js";
1
2
  export interface LockEntry {
2
3
  resourceKey: string;
3
4
  holder: string;
@@ -24,13 +25,18 @@ export declare class LockStore {
24
25
  private holderLocks;
25
26
  private sweepTimer;
26
27
  private defaultTTL;
27
- constructor(defaultTTLSeconds?: number, sweepIntervalSeconds?: number);
28
+ private store?;
29
+ constructor(defaultTTLSeconds?: number, sweepIntervalSeconds?: number, store?: StateStore);
30
+ /** Hydrate in-memory state from the persistent store. */
31
+ init(): Promise<void>;
28
32
  acquire(resourceKey: string, holder: string, ttlSeconds?: number): AcquireResult;
29
33
  release(resourceKey: string, holder: string): ReleaseResult;
30
34
  heartbeat(resourceKey: string, holder: string, ttlSeconds?: number): HeartbeatResult;
31
35
  releaseAll(holder: string): number;
32
36
  list(holder?: string): LockEntry[];
33
37
  private sweep;
38
+ private persistSet;
39
+ private persistDelete;
34
40
  dispose(): void;
35
41
  }
36
42
  //# sourceMappingURL=lock-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock-store.d.ts","sourceRoot":"","sources":["../../src/gateway/lock-store.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,UAAU,CAAS;gBAEf,iBAAiB,SAAO,EAAE,oBAAoB,SAAK;IAM/D,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa;IAyChF,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAkB3D,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe;IAiBpF,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAYlC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAWlC,OAAO,CAAC,KAAK;IAUb,OAAO,IAAI,IAAI;CAQhB"}
1
+ {"version":3,"file":"lock-store.d.ts","sourceRoot":"","sources":["../../src/gateway/lock-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAa;gBAEf,iBAAiB,SAAO,EAAE,oBAAoB,SAAK,EAAE,KAAK,CAAC,EAAE,UAAU;IAOnF,yDAAyD;IACnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa;IAwChF,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAoB3D,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe;IAkBpF,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAalC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAWlC,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,aAAa;IAKrB,OAAO,IAAI,IAAI;CAQhB"}
@@ -1,14 +1,31 @@
1
+ const NS_LOCKS = "locks";
2
+ const NS_HOLDERS = "lock-holders";
1
3
  export class LockStore {
2
4
  locks = new Map();
3
5
  holderLocks = new Map(); // holder -> resourceKey
4
6
  sweepTimer;
5
7
  defaultTTL;
6
- constructor(defaultTTLSeconds = 1800, sweepIntervalSeconds = 30) {
8
+ store;
9
+ constructor(defaultTTLSeconds = 1800, sweepIntervalSeconds = 30, store) {
7
10
  this.defaultTTL = defaultTTLSeconds * 1000;
11
+ this.store = store;
8
12
  this.sweepTimer = setInterval(() => this.sweep(), sweepIntervalSeconds * 1000);
9
13
  if (this.sweepTimer.unref)
10
14
  this.sweepTimer.unref();
11
15
  }
16
+ /** Hydrate in-memory state from the persistent store. */
17
+ async init() {
18
+ if (!this.store)
19
+ return;
20
+ const entries = await this.store.list(NS_LOCKS);
21
+ const now = Date.now();
22
+ for (const { value } of entries) {
23
+ if (now < value.expiresAt) {
24
+ this.locks.set(value.resourceKey, value);
25
+ this.holderLocks.set(value.holder, value.resourceKey);
26
+ }
27
+ }
28
+ }
12
29
  acquire(resourceKey, holder, ttlSeconds) {
13
30
  const existing = this.locks.get(resourceKey);
14
31
  // Check if this holder already holds a different lock
@@ -24,12 +41,14 @@ export class LockStore {
24
41
  // Expired — clean up
25
42
  this.locks.delete(existingHolderKey);
26
43
  this.holderLocks.delete(holder);
44
+ this.persistDelete(existingHolderKey, holder);
27
45
  }
28
46
  if (existing) {
29
47
  if (Date.now() >= existing.expiresAt) {
30
48
  // Expired — evict
31
49
  this.holderLocks.delete(existing.holder);
32
50
  this.locks.delete(resourceKey);
51
+ this.persistDelete(resourceKey, existing.holder);
33
52
  }
34
53
  else if (existing.holder !== holder) {
35
54
  return { ok: false, holder: existing.holder, heldSince: existing.heldSince };
@@ -38,13 +57,10 @@ export class LockStore {
38
57
  }
39
58
  const now = Date.now();
40
59
  const ttl = ttlSeconds ? ttlSeconds * 1000 : this.defaultTTL;
41
- this.locks.set(resourceKey, {
42
- resourceKey,
43
- holder,
44
- heldSince: now,
45
- expiresAt: now + ttl,
46
- });
60
+ const entry = { resourceKey, holder, heldSince: now, expiresAt: now + ttl };
61
+ this.locks.set(resourceKey, entry);
47
62
  this.holderLocks.set(holder, resourceKey);
63
+ this.persistSet(entry);
48
64
  return { ok: true };
49
65
  }
50
66
  release(resourceKey, holder) {
@@ -53,6 +69,7 @@ export class LockStore {
53
69
  this.locks.delete(resourceKey);
54
70
  if (this.holderLocks.get(holder) === resourceKey)
55
71
  this.holderLocks.delete(holder);
72
+ this.persistDelete(resourceKey, holder);
56
73
  return { ok: false, reason: "lock not found" };
57
74
  }
58
75
  if (existing.holder !== holder) {
@@ -60,6 +77,7 @@ export class LockStore {
60
77
  }
61
78
  this.locks.delete(resourceKey);
62
79
  this.holderLocks.delete(holder);
80
+ this.persistDelete(resourceKey, holder);
63
81
  return { ok: true };
64
82
  }
65
83
  heartbeat(resourceKey, holder, ttlSeconds) {
@@ -73,6 +91,7 @@ export class LockStore {
73
91
  }
74
92
  const ttl = ttlSeconds ? ttlSeconds * 1000 : this.defaultTTL;
75
93
  existing.expiresAt = Date.now() + ttl;
94
+ this.persistSet(existing);
76
95
  return { ok: true, expiresAt: existing.expiresAt };
77
96
  }
78
97
  releaseAll(holder) {
@@ -80,6 +99,7 @@ export class LockStore {
80
99
  for (const [rk, entry] of this.locks) {
81
100
  if (entry.holder === holder) {
82
101
  this.locks.delete(rk);
102
+ this.persistDelete(rk, holder);
83
103
  count++;
84
104
  }
85
105
  }
@@ -104,9 +124,19 @@ export class LockStore {
104
124
  if (now >= entry.expiresAt) {
105
125
  this.holderLocks.delete(entry.holder);
106
126
  this.locks.delete(rk);
127
+ this.persistDelete(rk, entry.holder);
107
128
  }
108
129
  }
109
130
  }
131
+ persistSet(entry) {
132
+ const ttlSec = Math.max(1, Math.ceil((entry.expiresAt - Date.now()) / 1000));
133
+ this.store?.set(NS_LOCKS, entry.resourceKey, entry, { ttl: ttlSec }).catch(() => { });
134
+ this.store?.set(NS_HOLDERS, entry.holder, entry.resourceKey, { ttl: ttlSec }).catch(() => { });
135
+ }
136
+ persistDelete(resourceKey, holder) {
137
+ this.store?.delete(NS_LOCKS, resourceKey).catch(() => { });
138
+ this.store?.delete(NS_HOLDERS, holder).catch(() => { });
139
+ }
110
140
  dispose() {
111
141
  if (this.sweepTimer) {
112
142
  clearInterval(this.sweepTimer);
@@ -1 +1 @@
1
- {"version":3,"file":"lock-store.js","sourceRoot":"","sources":["../../src/gateway/lock-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock-store.js","sourceRoot":"","sources":["../../src/gateway/lock-store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Hono } from "hono";
2
- import type { ContainerRegistration } from "../types.js";
2
+ import type { ContainerRegistry } from "../container-registry.js";
3
3
  import type { CallStore } from "../call-store.js";
4
4
  import type { Logger } from "../../shared/logger.js";
5
5
  export type CallDispatcher = (entry: {
@@ -13,5 +13,5 @@ export type CallDispatcher = (entry: {
13
13
  ok: boolean;
14
14
  reason?: string;
15
15
  };
16
- export declare function registerCallRoutes(app: Hono, containerRegistry: Map<string, ContainerRegistration>, callStore: CallStore, getDispatcher: () => CallDispatcher | undefined, logger: Logger): void;
16
+ export declare function registerCallRoutes(app: Hono, containerRegistry: ContainerRegistry, callStore: CallStore, getDispatcher: () => CallDispatcher | undefined, logger: Logger): void;
17
17
  //# sourceMappingURL=calls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjM,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,EACT,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACrD,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,MAAM,cAAc,GAAG,SAAS,EAC/C,MAAM,EAAE,MAAM,GACb,IAAI,CAsEN"}
1
+ {"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjM,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,EACT,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,MAAM,cAAc,GAAG,SAAS,EAC/C,MAAM,EAAE,MAAM,GACb,IAAI,CAsEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/gateway/routes/calls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/gateway/routes/calls.ts"],"names":[],"mappings":"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"}