target-supabase-sdk 0.2.2 → 0.2.4

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 (168) hide show
  1. package/README.md +24 -18
  2. package/dist/browser.d.ts +11 -4
  3. package/dist/browser.d.ts.map +1 -1
  4. package/dist/browser.js +3 -3
  5. package/dist/chunks/{enable-log-persist-BH-tbKEj.js → enable-log-persist-B8rg_wXG.js} +41 -8
  6. package/dist/chunks/enable-log-persist-B8rg_wXG.js.map +1 -0
  7. package/dist/chunks/{create-logger-DyH3mZ8p.js → list.api-Ab9v8yOg.js} +66 -57
  8. package/dist/chunks/list.api-Ab9v8yOg.js.map +1 -0
  9. package/dist/chunks/{word.interface-DLgRobKV.js → word.interface-B_fbVFOW.js} +1078 -97
  10. package/dist/chunks/word.interface-B_fbVFOW.js.map +1 -0
  11. package/dist/extraction/extraction.api.d.ts +117 -0
  12. package/dist/extraction/extraction.api.d.ts.map +1 -0
  13. package/dist/extraction/extraction.interface.d.ts +43 -0
  14. package/dist/extraction/extraction.interface.d.ts.map +1 -0
  15. package/dist/list/list.interface.d.ts +2 -2
  16. package/dist/list/list.interface.d.ts.map +1 -1
  17. package/dist/node/env/index.d.ts +2 -2
  18. package/dist/node/env/index.d.ts.map +1 -1
  19. package/dist/node/env/init-supabase-from-env.d.ts +1 -1
  20. package/dist/node/env/init-supabase-from-env.d.ts.map +1 -1
  21. package/dist/node/env/load-env.d.ts +15 -1
  22. package/dist/node/env/load-env.d.ts.map +1 -1
  23. package/dist/node/node-runtime.base.d.ts +13 -1
  24. package/dist/node/node-runtime.base.d.ts.map +1 -1
  25. package/dist/node/preload/run-service-preload.d.ts +1 -1
  26. package/dist/node/preload/run-service-preload.d.ts.map +1 -1
  27. package/dist/node/process/create-managed-child-processes.d.ts +12 -0
  28. package/dist/node/process/create-managed-child-processes.d.ts.map +1 -0
  29. package/dist/node/process/index.d.ts +3 -1
  30. package/dist/node/process/index.d.ts.map +1 -1
  31. package/dist/node/process/managed-child-processes.d.ts +15 -2
  32. package/dist/node/process/managed-child-processes.d.ts.map +1 -1
  33. package/dist/node/runtime-state/create-service-runtime-state-store.d.ts +23 -0
  34. package/dist/node/runtime-state/create-service-runtime-state-store.d.ts.map +1 -0
  35. package/dist/node/runtime-state/index.d.ts +4 -0
  36. package/dist/node/runtime-state/index.d.ts.map +1 -0
  37. package/dist/node/runtime-state/service-runtime-state.types.d.ts +57 -0
  38. package/dist/node/runtime-state/service-runtime-state.types.d.ts.map +1 -0
  39. package/dist/node/service-guard/index.d.ts +9 -0
  40. package/dist/node/service-guard/index.d.ts.map +1 -0
  41. package/dist/node/service-guard/register-service-guard-runner.d.ts +9 -0
  42. package/dist/node/service-guard/register-service-guard-runner.d.ts.map +1 -0
  43. package/dist/node/service-guard/run-readiness-gate.d.ts +11 -0
  44. package/dist/node/service-guard/run-readiness-gate.d.ts.map +1 -0
  45. package/dist/node/service-guard/run-service-guard-tick.d.ts +7 -0
  46. package/dist/node/service-guard/run-service-guard-tick.d.ts.map +1 -0
  47. package/dist/node/service-guard/service-guard-node.d.ts +18 -0
  48. package/dist/node/service-guard/service-guard-node.d.ts.map +1 -0
  49. package/dist/node/service-guard/service-guard.interface.d.ts +58 -0
  50. package/dist/node/service-guard/service-guard.interface.d.ts.map +1 -0
  51. package/dist/node/service-guard/worker-spawn-cooldown.d.ts +4 -0
  52. package/dist/node/service-guard/worker-spawn-cooldown.d.ts.map +1 -0
  53. package/dist/node/service-host/index.d.ts +9 -0
  54. package/dist/node/service-host/index.d.ts.map +1 -0
  55. package/dist/node/service-host/registry-slot-guard-step.d.ts +21 -0
  56. package/dist/node/service-host/registry-slot-guard-step.d.ts.map +1 -0
  57. package/dist/node/service-host/service-host.d.ts +36 -0
  58. package/dist/node/service-host/service-host.d.ts.map +1 -0
  59. package/dist/node/service-host/single-process-service.d.ts +21 -0
  60. package/dist/node/service-host/single-process-service.d.ts.map +1 -0
  61. package/dist/node.d.ts +17 -4
  62. package/dist/node.d.ts.map +1 -1
  63. package/dist/node.js +2088 -1495
  64. package/dist/node.js.map +1 -1
  65. package/dist/preload.js +5 -4
  66. package/dist/preload.js.map +1 -1
  67. package/dist/service/config.api.d.ts +143 -0
  68. package/dist/service/config.api.d.ts.map +1 -0
  69. package/dist/service/config.interface.d.ts +22 -0
  70. package/dist/service/config.interface.d.ts.map +1 -0
  71. package/dist/service/index.d.ts +16 -17
  72. package/dist/service/index.d.ts.map +1 -1
  73. package/dist/service/registry-lifecycle.d.ts +43 -0
  74. package/dist/service/registry-lifecycle.d.ts.map +1 -0
  75. package/dist/service/registry.service.d.ts +94 -0
  76. package/dist/service/registry.service.d.ts.map +1 -0
  77. package/dist/service/service-bootstrap.d.ts +28 -0
  78. package/dist/service/service-bootstrap.d.ts.map +1 -0
  79. package/dist/service/service.api.d.ts +160 -0
  80. package/dist/service/service.api.d.ts.map +1 -1
  81. package/dist/service/service.interface.d.ts +32 -1
  82. package/dist/service/service.interface.d.ts.map +1 -1
  83. package/dist/shared/log/index.d.ts +4 -0
  84. package/dist/shared/log/index.d.ts.map +1 -1
  85. package/dist/shared/log/log-batch.d.ts +44 -0
  86. package/dist/shared/log/log-batch.d.ts.map +1 -0
  87. package/dist/shared/log/log-persist-coordinator.d.ts +37 -0
  88. package/dist/shared/log/log-persist-coordinator.d.ts.map +1 -0
  89. package/dist/shared/log/log-persist-flush.d.ts.map +1 -1
  90. package/dist/shared/log/log-persist.config.d.ts +0 -1
  91. package/dist/shared/log/log-persist.config.d.ts.map +1 -1
  92. package/dist/shared/log/log-persist.interface.d.ts +8 -0
  93. package/dist/shared/log/log-persist.interface.d.ts.map +1 -1
  94. package/dist/shared/utils/config-path.utils.d.ts +21 -0
  95. package/dist/shared/utils/config-path.utils.d.ts.map +1 -1
  96. package/dist/shared/utils/get-value-at-path.d.ts +3 -0
  97. package/dist/shared/utils/get-value-at-path.d.ts.map +1 -0
  98. package/dist/task/index.d.ts +2 -0
  99. package/dist/task/index.d.ts.map +1 -1
  100. package/dist/task/task-manager.d.ts +1 -1
  101. package/dist/task/task-manager.d.ts.map +1 -1
  102. package/dist/task/task-post-retry.api.d.ts +24 -0
  103. package/dist/task/task-post-retry.api.d.ts.map +1 -0
  104. package/dist/task/task-repo-context.d.ts +7 -1
  105. package/dist/task/task-repo-context.d.ts.map +1 -1
  106. package/dist/trigger/trigger-manager.d.ts +1 -1
  107. package/dist/trigger/trigger-manager.d.ts.map +1 -1
  108. package/dist/trigger/trigger-node.d.ts +1 -0
  109. package/dist/trigger/trigger-node.d.ts.map +1 -1
  110. package/dist/trigger/trigger.constant.d.ts +1 -1
  111. package/dist/trigger/trigger.constant.d.ts.map +1 -1
  112. package/dist/trigger/trigger.interface.d.ts +10 -0
  113. package/dist/trigger/trigger.interface.d.ts.map +1 -1
  114. package/package.json +4 -2
  115. package/src/browser.ts +98 -4
  116. package/src/extraction/extraction.api.ts +232 -0
  117. package/src/extraction/extraction.interface.ts +45 -0
  118. package/src/list/list.interface.ts +2 -2
  119. package/src/node/env/index.ts +13 -2
  120. package/src/node/env/init-supabase-from-env.ts +1 -1
  121. package/src/node/env/load-env.ts +48 -2
  122. package/src/node/node-runtime.base.ts +37 -6
  123. package/src/node/preload/run-service-preload.ts +3 -2
  124. package/src/node/process/create-managed-child-processes.ts +27 -0
  125. package/src/node/process/index.ts +4 -0
  126. package/src/node/process/managed-child-processes.ts +48 -15
  127. package/src/node/runtime-state/create-service-runtime-state-store.ts +125 -0
  128. package/src/node/runtime-state/index.ts +17 -0
  129. package/src/node/runtime-state/service-runtime-state.types.ts +64 -0
  130. package/src/node/service-guard/index.ts +17 -0
  131. package/src/node/service-guard/register-service-guard-runner.ts +64 -0
  132. package/src/node/service-guard/run-readiness-gate.ts +34 -0
  133. package/src/node/service-guard/run-service-guard-tick.ts +106 -0
  134. package/src/node/service-guard/service-guard-node.ts +52 -0
  135. package/src/node/service-guard/service-guard.interface.ts +64 -0
  136. package/src/node/service-guard/worker-spawn-cooldown.ts +13 -0
  137. package/src/node/service-host/index.ts +30 -0
  138. package/src/node/service-host/registry-slot-guard-step.ts +57 -0
  139. package/src/node/service-host/service-host.ts +168 -0
  140. package/src/node/service-host/single-process-service.ts +58 -0
  141. package/src/node.ts +76 -0
  142. package/src/service/config.api.ts +224 -0
  143. package/src/service/config.interface.ts +25 -0
  144. package/src/service/index.ts +74 -149
  145. package/src/service/registry-lifecycle.ts +144 -0
  146. package/src/service/registry.service.ts +564 -0
  147. package/src/service/service-bootstrap.ts +74 -0
  148. package/src/service/service.api.ts +13 -0
  149. package/src/service/service.interface.ts +36 -1
  150. package/src/shared/log/index.ts +13 -0
  151. package/src/shared/log/log-batch.ts +156 -0
  152. package/src/shared/log/log-persist-coordinator.ts +107 -0
  153. package/src/shared/log/log-persist-flush.ts +3 -3
  154. package/src/shared/log/log-persist.config.ts +0 -2
  155. package/src/shared/log/log-persist.interface.ts +10 -0
  156. package/src/shared/utils/config-path.utils.ts +35 -0
  157. package/src/shared/utils/get-value-at-path.ts +17 -0
  158. package/src/task/index.ts +2 -0
  159. package/src/task/task-manager.ts +10 -4
  160. package/src/task/task-post-retry.api.ts +61 -0
  161. package/src/task/task-repo-context.ts +8 -1
  162. package/src/trigger/trigger-manager.ts +4 -2
  163. package/src/trigger/trigger-node.ts +10 -4
  164. package/src/trigger/trigger.constant.ts +1 -1
  165. package/src/trigger/trigger.interface.ts +10 -0
  166. package/dist/chunks/create-logger-DyH3mZ8p.js.map +0 -1
  167. package/dist/chunks/enable-log-persist-BH-tbKEj.js.map +0 -1
  168. package/dist/chunks/word.interface-DLgRobKV.js.map +0 -1
@@ -0,0 +1,117 @@
1
+ import { z } from "zod";
2
+ import type { SupabaseResponse } from "../core.interface";
3
+ import { type Extraction } from "./extraction.interface";
4
+ export declare const postExtractionSchema: z.ZodObject<{
5
+ name: z.ZodString;
6
+ /** Source Target id — for log analysis this is the producing Task id. */
7
+ sourceId: z.ZodString;
8
+ loaderKey: z.ZodString;
9
+ meta: z.ZodOptional<z.ZodUnknown>;
10
+ objects: z.ZodArray<z.ZodUnknown, "many">;
11
+ tagList: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
12
+ extra: z.ZodOptional<z.ZodString>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ name: string;
15
+ tagList: string[];
16
+ sourceId: string;
17
+ loaderKey: string;
18
+ objects: unknown[];
19
+ extra?: string | undefined;
20
+ meta?: unknown;
21
+ }, {
22
+ name: string;
23
+ sourceId: string;
24
+ loaderKey: string;
25
+ objects: unknown[];
26
+ tagList?: string[] | undefined;
27
+ extra?: string | undefined;
28
+ meta?: unknown;
29
+ }>;
30
+ export type PostExtractionPayload = z.infer<typeof postExtractionSchema>;
31
+ export declare const getExtractionSchema: z.ZodEffects<z.ZodObject<{
32
+ id: z.ZodOptional<z.ZodString>;
33
+ sourceId: z.ZodOptional<z.ZodString>;
34
+ loaderKey: z.ZodOptional<z.ZodString>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ id?: string | undefined;
37
+ sourceId?: string | undefined;
38
+ loaderKey?: string | undefined;
39
+ }, {
40
+ id?: string | undefined;
41
+ sourceId?: string | undefined;
42
+ loaderKey?: string | undefined;
43
+ }>, {
44
+ id?: string | undefined;
45
+ sourceId?: string | undefined;
46
+ loaderKey?: string | undefined;
47
+ }, {
48
+ id?: string | undefined;
49
+ sourceId?: string | undefined;
50
+ loaderKey?: string | undefined;
51
+ }>;
52
+ export type GetExtractionPayload = z.infer<typeof getExtractionSchema>;
53
+ export declare const scanExtractionListSchema: z.ZodObject<{
54
+ loaderKey: z.ZodOptional<z.ZodString>;
55
+ sourceId: z.ZodOptional<z.ZodString>;
56
+ maxRows: z.ZodOptional<z.ZodNumber>;
57
+ ascending: z.ZodOptional<z.ZodBoolean>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ ascending?: boolean | undefined;
60
+ maxRows?: number | undefined;
61
+ sourceId?: string | undefined;
62
+ loaderKey?: string | undefined;
63
+ }, {
64
+ ascending?: boolean | undefined;
65
+ maxRows?: number | undefined;
66
+ sourceId?: string | undefined;
67
+ loaderKey?: string | undefined;
68
+ }>;
69
+ export type ScanExtractionListPayload = z.infer<typeof scanExtractionListSchema>;
70
+ export declare const patchExtractionObjectsSchema: z.ZodObject<{
71
+ id: z.ZodString;
72
+ objects: z.ZodArray<z.ZodUnknown, "many">;
73
+ meta: z.ZodOptional<z.ZodUnknown>;
74
+ expectedRevision: z.ZodOptional<z.ZodNumber>;
75
+ }, "strip", z.ZodTypeAny, {
76
+ id: string;
77
+ objects: unknown[];
78
+ meta?: unknown;
79
+ expectedRevision?: number | undefined;
80
+ }, {
81
+ id: string;
82
+ objects: unknown[];
83
+ meta?: unknown;
84
+ expectedRevision?: number | undefined;
85
+ }>;
86
+ export type PatchExtractionObjectsPayload = z.infer<typeof patchExtractionObjectsSchema>;
87
+ /** Create an Extraction row for `(sourceId, loaderKey)`. Idempotent on redundancy key. */
88
+ export declare const postExtraction: (payload: {
89
+ name: string;
90
+ tagList: string[];
91
+ sourceId: string;
92
+ loaderKey: string;
93
+ objects: unknown[];
94
+ extra?: string | undefined;
95
+ meta?: unknown;
96
+ }) => SupabaseResponse<Extraction> | Promise<SupabaseResponse<Extraction>>;
97
+ /** Fetch one Extraction by row id, or by `(sourceId, loaderKey)`. */
98
+ export declare const getExtraction: (payload: {
99
+ id?: string | undefined;
100
+ sourceId?: string | undefined;
101
+ loaderKey?: string | undefined;
102
+ }) => SupabaseResponse<Extraction> | Promise<SupabaseResponse<Extraction>>;
103
+ /** Scan Extraction rows (newest first by default). */
104
+ export declare const scanExtractionList: (payload: {
105
+ ascending?: boolean | undefined;
106
+ maxRows?: number | undefined;
107
+ sourceId?: string | undefined;
108
+ loaderKey?: string | undefined;
109
+ }) => SupabaseResponse<Extraction[]> | Promise<SupabaseResponse<Extraction[]>>;
110
+ /** Replace {@link ExtractionDetails.objects} and bump `meta.revision`. */
111
+ export declare const patchExtractionObjects: (payload: {
112
+ id: string;
113
+ objects: unknown[];
114
+ meta?: unknown;
115
+ expectedRevision?: number | undefined;
116
+ }) => SupabaseResponse<Extraction> | Promise<SupabaseResponse<Extraction>>;
117
+ //# sourceMappingURL=extraction.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraction.api.d.ts","sourceRoot":"","sources":["../../src/extraction/extraction.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAsB,KAAK,UAAU,EAA0B,MAAM,wBAAwB,CAAC;AAKrG,eAAO,MAAM,oBAAoB;;IAE7B,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;EAO3E,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;EAgB3B,CAAC;AAEN,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAKnC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEjF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;EAKvC,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AA8BzF,0FAA0F;AAC1F,eAAO,MAAM,cAAc;;;;;;;;0EAmCzB,CAAC;AAEH,qEAAqE;AACrE,eAAO,MAAM,aAAa;;;;0EA2BxB,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,kBAAkB;;;;;8EAkB7B,CAAC;AAEH,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB;;;;;0EA2CjC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { Target } from "../core.interface";
2
+ /**
3
+ * Interpretation layer for a source Target: pipeline output (systems, models, algorithms)
4
+ * materialized as structured data. Not a process (see Task) or raw bytes (see Parcel).
5
+ *
6
+ * @see `.cursor/skills/extraction/SKILL.md`
7
+ */
8
+ export interface Extraction extends Target {
9
+ /** Human-readable label. */
10
+ name: string;
11
+ /**
12
+ * Source Target id — the single input this row interprets (any category).
13
+ * Immutable after create. Indexed for lookup: all Extractions where `value = sourceId`.
14
+ * Not a dedup hash or pipeline run id.
15
+ */
16
+ value: string;
17
+ category: CategoryExtraction;
18
+ details: ExtractionDetails;
19
+ }
20
+ export declare enum CategoryExtraction {
21
+ EXTRACTION = "extraction"
22
+ }
23
+ export interface ExtractionDetails {
24
+ manifestVersion: 0;
25
+ /**
26
+ * Extractor identifier. Together with {@link Extraction.value} (source id) forms the
27
+ * logical unique key: one Extraction row per `(sourceTargetId, loaderKey)`.
28
+ * Determines how to parse and render {@link objects} (Extractor-owned schema).
29
+ */
30
+ loaderKey: string;
31
+ /**
32
+ * Extractor-owned metadata for this interpretation (e.g. revision, updatedAt, pipeline).
33
+ * Updated alongside {@link objects}; kept `unknown` at SDK boundary — see Extractor module.
34
+ */
35
+ meta: unknown;
36
+ /**
37
+ * Latest mutable analysis results for this source + Extractor — not an immutable snapshot.
38
+ * Shape is defined by the Extractor for {@link loaderKey}; SDK keeps `unknown[]` at core.
39
+ * Large payloads should reference Parcel (or similar) rather than inline in this array.
40
+ */
41
+ objects: Array<unknown>;
42
+ }
43
+ //# sourceMappingURL=extraction.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraction.interface.d.ts","sourceRoot":"","sources":["../../src/extraction/extraction.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM;IACtC,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,iBAAiB,CAAC;CAC9B;AAED,oBAAY,kBAAkB;IAC1B,UAAU,eAAe;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAC9B,eAAe,EAAE,CAAC,CAAC;IACnB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAC3B"}
@@ -10,8 +10,8 @@ export interface List extends Target {
10
10
  }
11
11
  export interface ListDetails {
12
12
  manifestVersion: number;
13
- /** If string, it is the meta brief of the list, TODO */
14
- meta: string;
13
+ /** Optional list metadata (shape depends on `loaderKey`). */
14
+ meta: unknown;
15
15
  /** If string, it is the url of the preview TODO */
16
16
  preview: string;
17
17
  /** How to render the List */
@@ -1 +1 @@
1
- {"version":3,"file":"list.interface.d.ts","sourceRoot":"","sources":["../../src/list/list.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,oBAAY,YAAY;IACpB,IAAI,SAAS;CAChB;AAED,MAAM,WAAW,IAAK,SAAQ,MAAM;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACzB"}
1
+ {"version":3,"file":"list.interface.d.ts","sourceRoot":"","sources":["../../src/list/list.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,oBAAY,YAAY;IACpB,IAAI,SAAS;CAChB;AAED,MAAM,WAAW,IAAK,SAAQ,MAAM;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,IAAI,EAAE,OAAO,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACzB"}
@@ -2,8 +2,8 @@ export type { EnvIntOptions, EnvNumberOptions } from "./env-parsers";
2
2
  export { envBool, envInt, envMs, envNumber, envPort } from "./env-parsers";
3
3
  export type { InitSupabaseFromStandardEnvOptions } from "./init-supabase-from-env";
4
4
  export { initSupabaseFromStandardEnv } from "./init-supabase-from-env";
5
- export type { LoadEnvFilesOptions } from "./load-env";
6
- export { loadEnvFiles, parseEnvFile, parseEnvFileContent, parseEnvLine } from "./load-env";
5
+ export type { EnvProfileFromProcessOptions, LoadEnvFilesOptions } from "./load-env";
6
+ export { CLI_PROD_FLAG, envProfileFromProcess, loadEnvFiles, parseEnvFile, parseEnvFileContent, parseEnvLine, pinEnvProfileFromArgv, resolveDefaultEnvFiles, SERVICE_ENV_PROFILE_ENV_KEY, SERVICE_ENV_PROFILE_PROD, } from "./load-env";
7
7
  export { resolveProjectRootByPackageName, resolveProjectRootFromModule } from "./project-root";
8
8
  export type { PublicBaseUrlFromEnvOptions } from "./public-base-url";
9
9
  export { publicBaseUrlFromEnv } from "./public-base-url";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/env/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC3E,YAAY,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC/F,YAAY,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/env/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC3E,YAAY,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,YAAY,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EACH,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC/F,YAAY,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export interface InitSupabaseFromStandardEnvOptions {
2
2
  /** Project root for `.env` files (required when `loadEnv` is true). */
3
3
  root?: string;
4
- /** Load `.env.local` / `.env` before initialize (default true). */
4
+ /** Load env files before initialize (default true). Uses `.env.prod` when profile is `prod`. */
5
5
  loadEnv?: boolean;
6
6
  /** Hook after env files loaded (legacy aliases, etc.). */
7
7
  afterLoadEnv?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"init-supabase-from-env.d.ts","sourceRoot":"","sources":["../../../src/node/env/init-supabase-from-env.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kCAAkC;IAC/C,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,GAAE,kCAAuC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjH"}
1
+ {"version":3,"file":"init-supabase-from-env.d.ts","sourceRoot":"","sources":["../../../src/node/env/init-supabase-from-env.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kCAAkC;IAC/C,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,GAAE,kCAAuC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjH"}
@@ -1,3 +1,16 @@
1
+ export declare const SERVICE_ENV_PROFILE_ENV_KEY: "SERVICE_ENV_PROFILE";
2
+ export declare const SERVICE_ENV_PROFILE_PROD: "prod";
3
+ export declare const CLI_PROD_FLAG: "--prod";
4
+ export interface EnvProfileFromProcessOptions {
5
+ env?: NodeJS.ProcessEnv;
6
+ argv?: readonly string[];
7
+ }
8
+ /** Resolve active env profile from `SERVICE_ENV_PROFILE` or `--prod` on argv. */
9
+ export declare function envProfileFromProcess(options?: EnvProfileFromProcessOptions): string | undefined;
10
+ /** Default env file list for a profile (`prod` → `.env.prod`; otherwise `.env.local` → `.env`). */
11
+ export declare function resolveDefaultEnvFiles(profile?: string): readonly string[];
12
+ /** Pin `SERVICE_ENV_PROFILE=prod` when `--prod` is on argv (for child process inheritance). */
13
+ export declare function pinEnvProfileFromArgv(env?: NodeJS.ProcessEnv, argv?: readonly string[]): void;
1
14
  export interface LoadEnvFilesOptions {
2
15
  /** Files to load in order (later files do not override existing env). */
3
16
  files?: readonly string[];
@@ -13,7 +26,8 @@ export declare function parseEnvLine(line: string): {
13
26
  export declare function parseEnvFileContent(content: string, env: NodeJS.ProcessEnv): void;
14
27
  export declare function parseEnvFile(filePath: string, env: NodeJS.ProcessEnv): void;
15
28
  /**
16
- * Load `.env.local` then `.env` into `process.env` (or `options.env`).
29
+ * Load env files into `process.env` (or `options.env`).
30
+ * Default files: `.env.local` → `.env`, or `.env.prod` when profile is `prod` / `--prod`.
17
31
  * Existing non-empty env values are not overwritten.
18
32
  */
19
33
  export declare function loadEnvFiles(root: string, options?: LoadEnvFilesOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"load-env.d.ts","sourceRoot":"","sources":["../../../src/node/env/load-env.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAChC,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAMD,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAchF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAUjF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAK3E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAS9E"}
1
+ {"version":3,"file":"load-env.d.ts","sourceRoot":"","sources":["../../../src/node/env/load-env.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,2BAA2B,EAAG,qBAA8B,CAAC;AAC1E,eAAO,MAAM,wBAAwB,EAAG,MAAe,CAAC;AACxD,eAAO,MAAM,aAAa,EAAG,QAAiB,CAAC;AAE/C,MAAM,WAAW,4BAA4B;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,MAAM,GAAG,SAAS,CAWhG;AAED,mGAAmG;AACnG,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAK1E;AAED,+FAA+F;AAC/F,wBAAgB,qBAAqB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,SAAS,MAAM,EAAiB,GACvC,IAAI,CAON;AAED,MAAM,WAAW,mBAAmB;IAChC,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAMD,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAchF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAUjF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAK3E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAS9E"}
@@ -5,6 +5,15 @@ export interface NodeLoopContext {
5
5
  loopTraceId: string;
6
6
  nodeId: string;
7
7
  }
8
+ /** Shared options for {@link BaseNodeRuntime} and subclasses (e.g. TriggerNode). */
9
+ export interface BaseNodeRuntimeOptions {
10
+ /**
11
+ * Called after node logout (or when the node was never registered),
12
+ * immediately before `process.exit`. Use for best-effort cleanup such as
13
+ * {@link unregisterServiceAtShutdown}. Errors are logged and ignored.
14
+ */
15
+ beforeProcessExit?: () => void | Promise<void>;
16
+ }
8
17
  export declare const LOG_TOPIC_NODE = "node";
9
18
  /**
10
19
  * Shared node process runtime: bootstrap, main-loop frame, heartbeat, commands, shutdown.
@@ -15,6 +24,7 @@ declare abstract class BaseNodeRuntime {
15
24
  /** Log `nodeId` label while startup has not yet received an assigned id from Supabase. */
16
25
  private static readonly NODE_ID_PENDING_ASSIGNMENT;
17
26
  protected readonly runtimeModule: string;
27
+ private readonly beforeProcessExitHook;
18
28
  private _localNodeId;
19
29
  private _isNodeIdLocked;
20
30
  private isRunning;
@@ -26,7 +36,9 @@ declare abstract class BaseNodeRuntime {
26
36
  private startPromise;
27
37
  get localNodeId(): string | null;
28
38
  protected set localNodeId(value: string);
29
- protected constructor(runtimeModule: string);
39
+ protected constructor(runtimeModule: string, options?: BaseNodeRuntimeOptions);
40
+ private runBeforeProcessExit;
41
+ private exitProcess;
30
42
  /** Hook: task registration, trigger config load, etc. Throw to abort bootstrap. */
31
43
  protected abstract onBeforeRegisterNode(logger: LoggerWithScope): Promise<void>;
32
44
  /** Hook: one iteration body after commands + heartbeat gate. */
@@ -1 +1 @@
1
- {"version":3,"file":"node-runtime.base.d.ts","sourceRoot":"","sources":["../../src/node/node-runtime.base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAGH,KAAK,eAAe,EACpB,QAAQ,EAIX,MAAM,eAAe,CAAC;AAMvB,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,SAAS,CAAC;AAIrC;;;GAGG;AACH,uBAAe,eAAe;IAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,KAAK;IAC1D,0FAA0F;IAC1F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAqB;IAEvE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAEzC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,4BAA4B,CAAK;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,YAAY,CAA8B;IAElD,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,SAAS,KAAK,WAAW,CAAC,KAAK,EAAE,MAAM,EAUtC;IAED,SAAS,aAAa,aAAa,EAAE,MAAM;IAQ3C,mFAAmF;IACnF,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/E,gEAAgE;IAChE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1F,iGAAiG;IACjG,SAAS,CAAC,kBAAkB,IAAI,QAAQ;IAIxC,wEAAwE;IACxE,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,OAAO,CAAC,YAAY;IAIpB,SAAS,CAAC,cAAc,IAAI,OAAO;IAInC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhD,OAAO,CAAC,wBAAwB;IAsD1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,QAAQ;YAsER,OAAO;IAoDf,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA6B/C,WAAW;IAoCnB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAkDjD,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DvD,uFAAuF;cACvE,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrF;;;OAGG;cACa,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7F;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"node-runtime.base.d.ts","sourceRoot":"","sources":["../../src/node/node-runtime.base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAGH,KAAK,eAAe,EACpB,QAAQ,EAIX,MAAM,eAAe,CAAC;AAMvB,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACnC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,cAAc,SAAS,CAAC;AAIrC;;;GAGG;AACH,uBAAe,eAAe;IAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,KAAK;IAC1D,0FAA0F;IAC1F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAqB;IAEvE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsC;IAE5E,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,4BAA4B,CAAK;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,YAAY,CAA8B;IAElD,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,SAAS,KAAK,WAAW,CAAC,KAAK,EAAE,MAAM,EAUtC;IAED,SAAS,aAAa,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;YAS/D,oBAAoB;YAcpB,WAAW;IAKzB,mFAAmF;IACnF,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/E,gEAAgE;IAChE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1F,iGAAiG;IACjG,SAAS,CAAC,kBAAkB,IAAI,QAAQ;IAIxC,wEAAwE;IACxE,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,OAAO,CAAC,YAAY;IAIpB,SAAS,CAAC,cAAc,IAAI,OAAO;IAInC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhD,OAAO,CAAC,wBAAwB;IAsD1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,QAAQ;YAsER,OAAO;IAoDf,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA6B/C,WAAW;IAoCnB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAkDjD,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DvD,uFAAuF;cACvE,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrF;;;OAGG;cACa,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7F;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -3,7 +3,7 @@ import type { ServicePreloadOptions } from "./service-preload.interface";
3
3
  * Unified Node `--import` preload runner (sync only).
4
4
  *
5
5
  * Phase 1 — Resolve project root from service package name
6
- * Phase 2 — Load `.env.local` / `.env`
6
+ * Phase 2 — Load env files (`.env.local` / `.env`, or `.env.prod` when `--prod`)
7
7
  * Phase 3 — Apply SDK service env defaults + optional L3 hook
8
8
  * Phase 4 — Validate log-persist env when enabled
9
9
  * Phase 5 — Process diagnostics (TODO)
@@ -1 +1 @@
1
- {"version":3,"file":"run-service-preload.d.ts","sourceRoot":"","sources":["../../../src/node/preload/run-service-preload.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAmBzE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAYtE"}
1
+ {"version":3,"file":"run-service-preload.d.ts","sourceRoot":"","sources":["../../../src/node/preload/run-service-preload.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAmBzE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAatE"}
@@ -0,0 +1,12 @@
1
+ import type { ManagedChildProcessesOptions } from "./managed-child-processes";
2
+ import { ManagedChildProcesses } from "./managed-child-processes";
3
+ export type CreateManagedChildProcessesOptions = Pick<ManagedChildProcessesOptions, "projectRoot" | "preloadModules" | "useTsx" | "graceMs"> & {
4
+ /** Defaults to `createLogger({ module: "launcher" })`. */
5
+ logger?: ManagedChildProcessesOptions["logger"];
6
+ };
7
+ /**
8
+ * Standard L3 service child-process registry: node (not tsx), service preload, launcher logger.
9
+ * Each service keeps a singleton in `src/startup/child-processes.ts`.
10
+ */
11
+ export declare function createManagedChildProcesses(options: CreateManagedChildProcessesOptions): ManagedChildProcesses;
12
+ //# sourceMappingURL=create-managed-child-processes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-managed-child-processes.d.ts","sourceRoot":"","sources":["../../../src/node/process/create-managed-child-processes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,kCAAkC,GAAG,IAAI,CACjD,4BAA4B,EAC5B,aAAa,GAAG,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAC1D,GAAG;IACA,0DAA0D;IAC1D,MAAM,CAAC,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;CACnD,CAAC;AAIF;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,kCAAkC,GAAG,qBAAqB,CAQ9G"}
@@ -1,4 +1,6 @@
1
- export type { ManagedChildProcessesOptions, SpawnChildResult, StopAllChildrenOptions, } from "./managed-child-processes";
1
+ export type { CreateManagedChildProcessesOptions } from "./create-managed-child-processes";
2
+ export { createManagedChildProcesses } from "./create-managed-child-processes";
3
+ export type { CriticalExitHandler, ManagedChildProcessesOptions, SpawnChildOptions, SpawnChildResult, StopAllChildrenOptions, } from "./managed-child-processes";
2
4
  export { ManagedChildProcesses } from "./managed-child-processes";
3
5
  export type { BuildNodeImportArgsInput, SpawnTsxChildOptions } from "./process-spawn";
4
6
  export { buildNodeImportArgs, isChildProcessRunning, spawnTsxChild } from "./process-spawn";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/process/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/process/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,YAAY,EACR,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -5,7 +5,12 @@ export interface ManagedChildProcessesOptions {
5
5
  preloadModules?: readonly string[];
6
6
  /** SIGTERM -> wait -> SIGKILL delay (default 5000 ms). */
7
7
  graceMs?: number;
8
- logger?: Pick<LoggerWithScope, "info" | "warn" | "error">;
8
+ logger?: Pick<LoggerWithScope, "info" | "warn" | "error" | "critical">;
9
+ useTsx?: boolean;
10
+ }
11
+ export interface SpawnChildOptions {
12
+ env?: Record<string, string>;
13
+ useTsx?: boolean;
9
14
  }
10
15
  export interface SpawnChildResult {
11
16
  child: ChildProcess;
@@ -16,6 +21,10 @@ export interface StopAllChildrenOptions {
16
21
  /** PIDs to SIGTERM when not tracked by this registry (cross-process cleanup). */
17
22
  extraPids?: readonly number[];
18
23
  }
24
+ export interface CriticalExitHandler {
25
+ labels: readonly string[];
26
+ onCriticalExit: (label: string, code: number | null, signal: NodeJS.Signals | null) => void;
27
+ }
19
28
  /**
20
29
  * Process-local registry for tsx child processes (supervisor, worker, etc.).
21
30
  * Each OS process has its own instance - do not expect cross-process PID tracking.
@@ -24,13 +33,17 @@ export declare class ManagedChildProcesses {
24
33
  private readonly projectRoot;
25
34
  private readonly preloadModules;
26
35
  private readonly graceMs;
36
+ private readonly defaultUseTsx;
27
37
  private readonly logger?;
28
38
  private readonly byLabel;
39
+ private criticalExitHandler;
40
+ private suppressCriticalExit;
29
41
  constructor(options: ManagedChildProcessesOptions);
42
+ setCriticalExitHandler(handler: CriticalExitHandler): void;
30
43
  get(label: string): ChildProcess | null;
31
44
  getRunning(label: string): ChildProcess | null;
32
45
  runningLabels(): string[];
33
- spawn(label: string, entryScript: string): SpawnChildResult;
46
+ spawn(label: string, entryScript: string, spawnOptions?: SpawnChildOptions): SpawnChildResult;
34
47
  stopAll(options?: StopAllChildrenOptions): Promise<void>;
35
48
  private stopChild;
36
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"managed-child-processes.d.ts","sourceRoot":"","sources":["../../../src/node/process/managed-child-processes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,MAAM,WAAW,4BAA4B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACnC,iFAAiF;IACjF,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAmD;IAC3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;gBAE/C,OAAO,EAAE,4BAA4B;IAOjD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIvC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAK9C,aAAa,IAAI,MAAM,EAAE;IAMzB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB;IAkCrD,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9D,OAAO,CAAC,SAAS;CAWpB"}
1
+ {"version":3,"file":"managed-child-processes.d.ts","sourceRoot":"","sources":["../../../src/node/process/managed-child-processes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,MAAM,WAAW,4BAA4B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACnC,iFAAiF;IACjF,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/F;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAgE;IACxF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,OAAO,EAAE,4BAA4B;IAQjD,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAI1D,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIvC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAK9C,aAAa,IAAI,MAAM,EAAE;IAMzB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,iBAAiB,GAAG,gBAAgB;IA2CvF,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9D,OAAO,CAAC,SAAS;CAWpB"}
@@ -0,0 +1,23 @@
1
+ import { type JsonStatePatch } from "../fs/json-state-store";
2
+ import type { DefaultExtraRuntimeSlices, ServiceRuntimeExtraSlicePatch, ServiceRuntimeNestedKeys, ServiceRuntimeState } from "./service-runtime-state.types";
3
+ export interface CreateServiceRuntimeStateStoreOptions<TExtraSlices extends Record<string, object> = DefaultExtraRuntimeSlices> {
4
+ filePath: string;
5
+ /** Default values for service-specific top-level nested slices. */
6
+ extraDefaults?: TExtraSlices;
7
+ }
8
+ export interface FinishRunnerTickOptions<TExtraSlices extends Record<string, object> = DefaultExtraRuntimeSlices> {
9
+ nowMs: number;
10
+ lastFired: Record<string, string>;
11
+ postedCount?: number;
12
+ /** Patch extra slices in the same atomic write as the scheduler tick. */
13
+ extra?: ServiceRuntimeExtraSlicePatch<TExtraSlices>;
14
+ }
15
+ export interface ServiceRuntimeStateStore<TExtraSlices extends Record<string, object> = DefaultExtraRuntimeSlices> {
16
+ readRuntimeState(): Promise<ServiceRuntimeState<TExtraSlices>>;
17
+ writeRuntimeState(patch: JsonStatePatch<ServiceRuntimeState<TExtraSlices>, ServiceRuntimeNestedKeys<TExtraSlices>>): Promise<ServiceRuntimeState<TExtraSlices>>;
18
+ resetRuntimeStateForStartup(): Promise<ServiceRuntimeState<TExtraSlices>>;
19
+ finishRunnerTick(options: FinishRunnerTickOptions<TExtraSlices>): Promise<void>;
20
+ }
21
+ /** JSON file-backed service runtime state (L3 blueprint) with typed core slices and extensions. */
22
+ export declare function createServiceRuntimeStateStore<TExtraSlices extends Record<string, object> = DefaultExtraRuntimeSlices>(options: CreateServiceRuntimeStateStoreOptions<TExtraSlices>): ServiceRuntimeStateStore<TExtraSlices>;
23
+ //# sourceMappingURL=create-service-runtime-state-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-service-runtime-state-store.d.ts","sourceRoot":"","sources":["../../../src/node/runtime-state/create-service-runtime-state-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAqD,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChH,OAAO,KAAK,EACR,yBAAyB,EAIzB,6BAA6B,EAC7B,wBAAwB,EACxB,mBAAmB,EAEtB,MAAM,+BAA+B,CAAC;AAIvC,MAAM,WAAW,qCAAqC,CAClD,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB;IAEvE,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,aAAa,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB;IAC5G,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,KAAK,CAAC,EAAE,6BAA6B,CAAC,YAAY,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,wBAAwB,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB;IAC7G,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC/D,iBAAiB,CACb,KAAK,EAAE,cAAc,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,wBAAwB,CAAC,YAAY,CAAC,CAAC,GACjG,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9C,2BAA2B,IAAI,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1E,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnF;AA0CD,mGAAmG;AACnG,wBAAgB,8BAA8B,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB,EAClH,OAAO,EAAE,qCAAqC,CAAC,YAAY,CAAC,GAC7D,wBAAwB,CAAC,YAAY,CAAC,CAyCxC"}
@@ -0,0 +1,4 @@
1
+ export type { CreateServiceRuntimeStateStoreOptions, FinishRunnerTickOptions, ServiceRuntimeStateStore, } from "./create-service-runtime-state-store";
2
+ export { createServiceRuntimeStateStore } from "./create-service-runtime-state-store";
3
+ export type { GuardRuntimeSlice, ReadinessRuntimeSlice, ReadinessStatus, SchedulerRuntimeSlice, ServiceRuntimeCoreNestedKey, ServiceRuntimeExtraSlicePatch, ServiceRuntimeNestedKeys, ServiceRuntimeState, WorkerRuntimeSlice, } from "./service-runtime-state.types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/runtime-state/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,qCAAqC,EACrC,uBAAuB,EACvB,wBAAwB,GAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,YAAY,EACR,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { RegistrySlotRuntimeState } from "../../service/registry-lifecycle";
2
+ export type ReadinessStatus = "pending" | "passed" | "failed";
3
+ export interface ReadinessRuntimeSlice {
4
+ status: ReadinessStatus;
5
+ checkedAt: string | null;
6
+ message: string | null;
7
+ checks: {
8
+ name: string;
9
+ ok: boolean;
10
+ detail?: string;
11
+ }[];
12
+ }
13
+ export interface GuardRuntimeSlice {
14
+ nodeId: string | null;
15
+ lastCheckAt: string | null;
16
+ lastDecision: string | null;
17
+ lastSpawnAt: string | null;
18
+ spawnCount: number;
19
+ }
20
+ export interface SchedulerRuntimeSlice {
21
+ lastTickAt: string | null;
22
+ lastPostedCount: number;
23
+ lastFired: Record<string, string>;
24
+ }
25
+ export interface WorkerRuntimeSlice {
26
+ pid: number | null;
27
+ spawnedAt: string | null;
28
+ ready: boolean;
29
+ registeredTasks: string[];
30
+ readyAt: string | null;
31
+ }
32
+ /**
33
+ * Default when an L3 service has no service-specific runtime state slices.
34
+ * Use an empty object type (not `Record<string, never>`) so intersecting with core
35
+ * slices does not add a string index signature that collapses property types to `never`.
36
+ */
37
+ export type DefaultExtraRuntimeSlices = Record<never, never>;
38
+ /**
39
+ * Cross-process service runtime state persisted to `state.json`.
40
+ * L3 blueprint: readiness + guard + scheduler + worker + registry.
41
+ * Extend via extra top-level slices only.
42
+ */
43
+ export type ServiceRuntimeState<TExtraSlices extends Record<string, object> = DefaultExtraRuntimeSlices> = {
44
+ updatedAt: string;
45
+ readiness: ReadinessRuntimeSlice;
46
+ guard: GuardRuntimeSlice;
47
+ scheduler: SchedulerRuntimeSlice;
48
+ worker: WorkerRuntimeSlice;
49
+ registry: RegistrySlotRuntimeState;
50
+ } & TExtraSlices;
51
+ export type ServiceRuntimeCoreNestedKey = "readiness" | "guard" | "scheduler" | "worker" | "registry";
52
+ export type ServiceRuntimeNestedKeys<TExtraSlices extends Record<string, object>> = ServiceRuntimeCoreNestedKey | (keyof TExtraSlices & string);
53
+ /** Patch shape for extra top-level slices (one level deep). */
54
+ export type ServiceRuntimeExtraSlicePatch<TExtraSlices extends Record<string, object>> = {
55
+ [K in keyof TExtraSlices]?: TExtraSlices[K] extends object ? Partial<TExtraSlices[K]> : TExtraSlices[K];
56
+ };
57
+ //# sourceMappingURL=service-runtime-state.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-runtime-state.types.d.ts","sourceRoot":"","sources":["../../../src/node/runtime-state/service-runtime-state.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB,IAAI;IACvG,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,qBAAqB,CAAC;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,wBAAwB,CAAC;CACtC,GAAG,YAAY,CAAC;AAEjB,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEtG,MAAM,MAAM,wBAAwB,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAC1E,2BAA2B,GAC3B,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC;AAEpC,+DAA+D;AAC/D,MAAM,MAAM,6BAA6B,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI;KACpF,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;CAC1G,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { registerServiceGuardRunner } from "./register-service-guard-runner";
2
+ export type { RunReadinessGateInput } from "./run-readiness-gate";
3
+ export { runReadinessGate } from "./run-readiness-gate";
4
+ export { runServiceGuardTick } from "./run-service-guard-tick";
5
+ export type { RegisterServiceGuardRunnerOptions, ServiceGuardNodeOptions, ServiceGuardTickInput, ServiceGuardTickResult, } from "./service-guard.interface";
6
+ export { SERVICE_GUARD_RUNNER_KEY } from "./service-guard.interface";
7
+ export { ServiceGuardNode } from "./service-guard-node";
8
+ export { getWorkerSpawnCooldownLastAt, markWorkerSpawned, resetWorkerSpawnCooldownForTests, } from "./worker-spawn-cooldown";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/service-guard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACR,iCAAiC,EACjC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACH,4BAA4B,EAC5B,iBAAiB,EACjB,gCAAgC,GACnC,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type RegisterServiceGuardRunnerOptions, SERVICE_GUARD_RUNNER_KEY } from "./service-guard.interface";
2
+ export interface RegisterServiceGuardRunnerOptionsWithClock extends RegisterServiceGuardRunnerOptions {
3
+ /** Test hook — defaults to Date.now(). */
4
+ now?: () => number;
5
+ }
6
+ /** Register the standard L3 guard runner (registry slot + TaskNode + Service runtime). */
7
+ export declare function registerServiceGuardRunner(options: RegisterServiceGuardRunnerOptionsWithClock): void;
8
+ export { SERVICE_GUARD_RUNNER_KEY };
9
+ //# sourceMappingURL=register-service-guard-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-service-guard-runner.d.ts","sourceRoot":"","sources":["../../../src/node/service-guard/register-service-guard-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iCAAiC,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AA6C7G,MAAM,WAAW,0CAA2C,SAAQ,iCAAiC;IACjG,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,0FAA0F;AAC1F,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,0CAA0C,GAAG,IAAI,CAOpG;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { LoggerWithScope } from "../../shared/log";
2
+ import type { ReadinessCheck, ReadinessReport } from "../readiness/readiness.types";
3
+ export interface RunReadinessGateInput {
4
+ checks: ReadinessCheck[];
5
+ onReport: (report: ReadinessReport) => Promise<void>;
6
+ logger: LoggerWithScope;
7
+ logTopic?: string;
8
+ }
9
+ /** Run readiness checks, persist report via callback, fail-fast when not ok. */
10
+ export declare function runReadinessGate(input: RunReadinessGateInput): Promise<ReadinessReport>;
11
+ //# sourceMappingURL=run-readiness-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-readiness-gate.d.ts","sourceRoot":"","sources":["../../../src/node/service-guard/run-readiness-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpF,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gFAAgF;AAChF,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAqB7F"}
@@ -0,0 +1,7 @@
1
+ import type { ServiceGuardTickInput, ServiceGuardTickResult } from "./service-guard.interface";
2
+ /**
3
+ * One guard-runner tick: registry slot check, TaskNode liveness, optional worker
4
+ * respawn, Service runtime heartbeat rollup.
5
+ */
6
+ export declare function runServiceGuardTick(input: ServiceGuardTickInput): Promise<ServiceGuardTickResult>;
7
+ //# sourceMappingURL=run-service-guard-tick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-service-guard-tick.d.ts","sourceRoot":"","sources":["../../../src/node/service-guard/run-service-guard-tick.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAG/F;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgGvG"}
@@ -0,0 +1,18 @@
1
+ import type { LoggerWithScope } from "../../shared/log";
2
+ import { TriggerNode } from "../../trigger/trigger-node";
3
+ import type { ServiceGuardNodeOptions } from "./service-guard.interface";
4
+ /**
5
+ * L3 guard process TriggerNode: readiness gate, TaskNode worker spawn owner,
6
+ * and {@link registerServiceGuardRunner} tick (registry slot + liveness + runtime).
7
+ *
8
+ * Use {@link ServiceGuardNode.create} so the guard runner is registered before `start()`.
9
+ */
10
+ declare class ServiceGuardNode extends TriggerNode {
11
+ private readonly options;
12
+ private constructor();
13
+ /** Register the guard runner and return a ready-to-start node. */
14
+ static create(options: ServiceGuardNodeOptions): ServiceGuardNode;
15
+ protected onBeforeRegisterNode(nodeLogger: LoggerWithScope): Promise<void>;
16
+ }
17
+ export { ServiceGuardNode };
18
+ //# sourceMappingURL=service-guard-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-guard-node.d.ts","sourceRoot":"","sources":["../../../src/node/service-guard/service-guard-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE;;;;;GAKG;AACH,cAAM,gBAAiB,SAAQ,WAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAElD,OAAO;IAQP,kEAAkE;IAClE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB;cASjD,oBAAoB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBnF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}