target-supabase-sdk 0.2.3 → 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 (155) 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-C7GJo_Nc.js → enable-log-persist-B8rg_wXG.js} +5 -6
  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/node-runtime.base.d.ts +13 -1
  18. package/dist/node/node-runtime.base.d.ts.map +1 -1
  19. package/dist/node/process/create-managed-child-processes.d.ts +12 -0
  20. package/dist/node/process/create-managed-child-processes.d.ts.map +1 -0
  21. package/dist/node/process/index.d.ts +3 -1
  22. package/dist/node/process/index.d.ts.map +1 -1
  23. package/dist/node/process/managed-child-processes.d.ts +15 -2
  24. package/dist/node/process/managed-child-processes.d.ts.map +1 -1
  25. package/dist/node/runtime-state/create-service-runtime-state-store.d.ts +23 -0
  26. package/dist/node/runtime-state/create-service-runtime-state-store.d.ts.map +1 -0
  27. package/dist/node/runtime-state/index.d.ts +4 -0
  28. package/dist/node/runtime-state/index.d.ts.map +1 -0
  29. package/dist/node/runtime-state/service-runtime-state.types.d.ts +57 -0
  30. package/dist/node/runtime-state/service-runtime-state.types.d.ts.map +1 -0
  31. package/dist/node/service-guard/index.d.ts +9 -0
  32. package/dist/node/service-guard/index.d.ts.map +1 -0
  33. package/dist/node/service-guard/register-service-guard-runner.d.ts +9 -0
  34. package/dist/node/service-guard/register-service-guard-runner.d.ts.map +1 -0
  35. package/dist/node/service-guard/run-readiness-gate.d.ts +11 -0
  36. package/dist/node/service-guard/run-readiness-gate.d.ts.map +1 -0
  37. package/dist/node/service-guard/run-service-guard-tick.d.ts +7 -0
  38. package/dist/node/service-guard/run-service-guard-tick.d.ts.map +1 -0
  39. package/dist/node/service-guard/service-guard-node.d.ts +18 -0
  40. package/dist/node/service-guard/service-guard-node.d.ts.map +1 -0
  41. package/dist/node/service-guard/service-guard.interface.d.ts +58 -0
  42. package/dist/node/service-guard/service-guard.interface.d.ts.map +1 -0
  43. package/dist/node/service-guard/worker-spawn-cooldown.d.ts +4 -0
  44. package/dist/node/service-guard/worker-spawn-cooldown.d.ts.map +1 -0
  45. package/dist/node/service-host/index.d.ts +9 -0
  46. package/dist/node/service-host/index.d.ts.map +1 -0
  47. package/dist/node/service-host/registry-slot-guard-step.d.ts +21 -0
  48. package/dist/node/service-host/registry-slot-guard-step.d.ts.map +1 -0
  49. package/dist/node/service-host/service-host.d.ts +36 -0
  50. package/dist/node/service-host/service-host.d.ts.map +1 -0
  51. package/dist/node/service-host/single-process-service.d.ts +21 -0
  52. package/dist/node/service-host/single-process-service.d.ts.map +1 -0
  53. package/dist/node.d.ts +15 -2
  54. package/dist/node.d.ts.map +1 -1
  55. package/dist/node.js +2088 -1495
  56. package/dist/node.js.map +1 -1
  57. package/dist/preload.js +3 -3
  58. package/dist/service/config.api.d.ts +143 -0
  59. package/dist/service/config.api.d.ts.map +1 -0
  60. package/dist/service/config.interface.d.ts +22 -0
  61. package/dist/service/config.interface.d.ts.map +1 -0
  62. package/dist/service/index.d.ts +16 -17
  63. package/dist/service/index.d.ts.map +1 -1
  64. package/dist/service/registry-lifecycle.d.ts +43 -0
  65. package/dist/service/registry-lifecycle.d.ts.map +1 -0
  66. package/dist/service/registry.service.d.ts +94 -0
  67. package/dist/service/registry.service.d.ts.map +1 -0
  68. package/dist/service/service-bootstrap.d.ts +28 -0
  69. package/dist/service/service-bootstrap.d.ts.map +1 -0
  70. package/dist/service/service.api.d.ts +160 -0
  71. package/dist/service/service.api.d.ts.map +1 -1
  72. package/dist/service/service.interface.d.ts +32 -1
  73. package/dist/service/service.interface.d.ts.map +1 -1
  74. package/dist/shared/log/index.d.ts +4 -0
  75. package/dist/shared/log/index.d.ts.map +1 -1
  76. package/dist/shared/log/log-batch.d.ts +44 -0
  77. package/dist/shared/log/log-batch.d.ts.map +1 -0
  78. package/dist/shared/log/log-persist-coordinator.d.ts +37 -0
  79. package/dist/shared/log/log-persist-coordinator.d.ts.map +1 -0
  80. package/dist/shared/log/log-persist-flush.d.ts.map +1 -1
  81. package/dist/shared/log/log-persist.config.d.ts +0 -1
  82. package/dist/shared/log/log-persist.config.d.ts.map +1 -1
  83. package/dist/shared/log/log-persist.interface.d.ts +8 -0
  84. package/dist/shared/log/log-persist.interface.d.ts.map +1 -1
  85. package/dist/shared/utils/config-path.utils.d.ts +21 -0
  86. package/dist/shared/utils/config-path.utils.d.ts.map +1 -1
  87. package/dist/shared/utils/get-value-at-path.d.ts +3 -0
  88. package/dist/shared/utils/get-value-at-path.d.ts.map +1 -0
  89. package/dist/task/index.d.ts +2 -0
  90. package/dist/task/index.d.ts.map +1 -1
  91. package/dist/task/task-manager.d.ts +1 -1
  92. package/dist/task/task-manager.d.ts.map +1 -1
  93. package/dist/task/task-post-retry.api.d.ts +24 -0
  94. package/dist/task/task-post-retry.api.d.ts.map +1 -0
  95. package/dist/task/task-repo-context.d.ts +7 -1
  96. package/dist/task/task-repo-context.d.ts.map +1 -1
  97. package/dist/trigger/trigger-manager.d.ts +1 -1
  98. package/dist/trigger/trigger-manager.d.ts.map +1 -1
  99. package/dist/trigger/trigger-node.d.ts +1 -0
  100. package/dist/trigger/trigger-node.d.ts.map +1 -1
  101. package/dist/trigger/trigger.constant.d.ts +1 -1
  102. package/dist/trigger/trigger.constant.d.ts.map +1 -1
  103. package/dist/trigger/trigger.interface.d.ts +10 -0
  104. package/dist/trigger/trigger.interface.d.ts.map +1 -1
  105. package/package.json +4 -2
  106. package/src/browser.ts +98 -4
  107. package/src/extraction/extraction.api.ts +232 -0
  108. package/src/extraction/extraction.interface.ts +45 -0
  109. package/src/list/list.interface.ts +2 -2
  110. package/src/node/node-runtime.base.ts +37 -6
  111. package/src/node/process/create-managed-child-processes.ts +27 -0
  112. package/src/node/process/index.ts +4 -0
  113. package/src/node/process/managed-child-processes.ts +48 -15
  114. package/src/node/runtime-state/create-service-runtime-state-store.ts +125 -0
  115. package/src/node/runtime-state/index.ts +17 -0
  116. package/src/node/runtime-state/service-runtime-state.types.ts +64 -0
  117. package/src/node/service-guard/index.ts +17 -0
  118. package/src/node/service-guard/register-service-guard-runner.ts +64 -0
  119. package/src/node/service-guard/run-readiness-gate.ts +34 -0
  120. package/src/node/service-guard/run-service-guard-tick.ts +106 -0
  121. package/src/node/service-guard/service-guard-node.ts +52 -0
  122. package/src/node/service-guard/service-guard.interface.ts +64 -0
  123. package/src/node/service-guard/worker-spawn-cooldown.ts +13 -0
  124. package/src/node/service-host/index.ts +30 -0
  125. package/src/node/service-host/registry-slot-guard-step.ts +57 -0
  126. package/src/node/service-host/service-host.ts +168 -0
  127. package/src/node/service-host/single-process-service.ts +58 -0
  128. package/src/node.ts +69 -0
  129. package/src/service/config.api.ts +224 -0
  130. package/src/service/config.interface.ts +25 -0
  131. package/src/service/index.ts +74 -149
  132. package/src/service/registry-lifecycle.ts +144 -0
  133. package/src/service/registry.service.ts +564 -0
  134. package/src/service/service-bootstrap.ts +74 -0
  135. package/src/service/service.api.ts +13 -0
  136. package/src/service/service.interface.ts +36 -1
  137. package/src/shared/log/index.ts +13 -0
  138. package/src/shared/log/log-batch.ts +156 -0
  139. package/src/shared/log/log-persist-coordinator.ts +107 -0
  140. package/src/shared/log/log-persist-flush.ts +3 -3
  141. package/src/shared/log/log-persist.config.ts +0 -2
  142. package/src/shared/log/log-persist.interface.ts +10 -0
  143. package/src/shared/utils/config-path.utils.ts +35 -0
  144. package/src/shared/utils/get-value-at-path.ts +17 -0
  145. package/src/task/index.ts +2 -0
  146. package/src/task/task-manager.ts +10 -4
  147. package/src/task/task-post-retry.api.ts +61 -0
  148. package/src/task/task-repo-context.ts +8 -1
  149. package/src/trigger/trigger-manager.ts +4 -2
  150. package/src/trigger/trigger-node.ts +10 -4
  151. package/src/trigger/trigger.constant.ts +1 -1
  152. package/src/trigger/trigger.interface.ts +10 -0
  153. package/dist/chunks/create-logger-DyH3mZ8p.js.map +0 -1
  154. package/dist/chunks/enable-log-persist-C7GJo_Nc.js.map +0 -1
  155. package/dist/chunks/word.interface-DLgRobKV.js.map +0 -1
package/dist/preload.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { resolve } from 'node:path';
2
- import { r as resolveProjectRootByPackageName, p as pinEnvProfileFromArgv, l as loadEnvFiles, v as validateLogPersistPreloadEnv, a as logPersistEnabledFromEnv } from './chunks/enable-log-persist-C7GJo_Nc.js';
2
+ import { r as resolveProjectRootByPackageName, p as pinEnvProfileFromArgv, l as loadEnvFiles, v as validateLogPersistPreloadEnv, a as logPersistEnabledFromEnv } from './chunks/enable-log-persist-B8rg_wXG.js';
3
3
  import 'node:fs';
4
4
  import 'node:url';
5
5
  import 'node:fs/promises';
6
- import './chunks/create-logger-DyH3mZ8p.js';
7
- import '@supabase/supabase-js';
6
+ import './chunks/list.api-Ab9v8yOg.js';
8
7
  import 'lodash-es';
8
+ import '@supabase/supabase-js';
9
9
  import 'node:crypto';
10
10
 
11
11
  function applyServiceEnvDefaults(projectRoot, options) {
@@ -0,0 +1,143 @@
1
+ import { z } from "zod";
2
+ import { type Config, type ConfigDetails } from "./config.interface";
3
+ import { type ServiceSlot } from "./service.interface";
4
+ export declare const getConfigSchema: z.ZodEffects<z.ZodObject<{
5
+ id: z.ZodOptional<z.ZodString>;
6
+ value: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ id?: string | undefined;
9
+ value?: string | undefined;
10
+ }, {
11
+ id?: string | undefined;
12
+ value?: string | undefined;
13
+ }>, {
14
+ id?: string | undefined;
15
+ value?: string | undefined;
16
+ }, {
17
+ id?: string | undefined;
18
+ value?: string | undefined;
19
+ }>;
20
+ export type GetConfigPayload = z.infer<typeof getConfigSchema>;
21
+ /** One declarative EMPTY slot entry for seeding the system registry. */
22
+ export declare const systemRegistrySeedSlotSchema: z.ZodObject<{
23
+ serviceValue: z.ZodString;
24
+ }, "strip", z.ZodTypeAny, {
25
+ serviceValue: string;
26
+ }, {
27
+ serviceValue: string;
28
+ }>;
29
+ export type SystemRegistrySeedSlot = z.infer<typeof systemRegistrySeedSlotSchema>;
30
+ export declare const postSystemRegistryConfigSchema: z.ZodObject<{
31
+ /** When omitted, {@link DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS} is used. */
32
+ slots: z.ZodOptional<z.ZodArray<z.ZodObject<{
33
+ serviceValue: z.ZodString;
34
+ }, "strip", z.ZodTypeAny, {
35
+ serviceValue: string;
36
+ }, {
37
+ serviceValue: string;
38
+ }>, "many">>;
39
+ tagList: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ tagList: string[];
42
+ slots?: {
43
+ serviceValue: string;
44
+ }[] | undefined;
45
+ }, {
46
+ tagList?: string[] | undefined;
47
+ slots?: {
48
+ serviceValue: string;
49
+ }[] | undefined;
50
+ }>;
51
+ export type PostSystemRegistryConfigPayload = z.infer<typeof postSystemRegistryConfigSchema>;
52
+ /** Same payload shape as {@link postSystemRegistryConfig} — replaces slots with fresh EMPTY rows. */
53
+ export declare const resetSystemRegistryConfigSchema: z.ZodObject<{
54
+ /** When omitted, {@link DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS} is used. */
55
+ slots: z.ZodOptional<z.ZodArray<z.ZodObject<{
56
+ serviceValue: z.ZodString;
57
+ }, "strip", z.ZodTypeAny, {
58
+ serviceValue: string;
59
+ }, {
60
+ serviceValue: string;
61
+ }>, "many">>;
62
+ tagList: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ tagList: string[];
65
+ slots?: {
66
+ serviceValue: string;
67
+ }[] | undefined;
68
+ }, {
69
+ tagList?: string[] | undefined;
70
+ slots?: {
71
+ serviceValue: string;
72
+ }[] | undefined;
73
+ }>;
74
+ export type ResetSystemRegistryConfigPayload = PostSystemRegistryConfigPayload;
75
+ /** Default one EMPTY slot per known L3 service (override via payload or seed file). */
76
+ export declare const DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS: readonly SystemRegistrySeedSlot[];
77
+ /** Build EMPTY {@link ServiceSlot} rows from seed entries (one slot per array item). */
78
+ export declare function buildEmptyServiceSlots(seedSlots: readonly SystemRegistrySeedSlot[]): ServiceSlot[];
79
+ /** Build `ConfigDetails` for the globally unique system registry row. */
80
+ export declare function buildSystemRegistryConfigDetails(slots: readonly ServiceSlot[]): ConfigDetails;
81
+ /** Fetch a Config by id or by {@link Config.value} key (`category=config`). */
82
+ export declare const getConfig: (payload: {
83
+ id?: string | undefined;
84
+ value?: string | undefined;
85
+ }) => {
86
+ data: Config;
87
+ status_code: import("..").StatusCode;
88
+ success: boolean;
89
+ message?: string;
90
+ error?: {
91
+ message: string;
92
+ code?: string;
93
+ };
94
+ } | {
95
+ data: undefined;
96
+ status_code: import("..").StatusCode;
97
+ success: boolean;
98
+ message?: string;
99
+ error?: {
100
+ message: string;
101
+ code?: string;
102
+ };
103
+ } | Promise<{
104
+ data: Config;
105
+ status_code: import("..").StatusCode;
106
+ success: boolean;
107
+ message?: string;
108
+ error?: {
109
+ message: string;
110
+ code?: string;
111
+ };
112
+ } | {
113
+ data: undefined;
114
+ status_code: import("..").StatusCode;
115
+ success: boolean;
116
+ message?: string;
117
+ error?: {
118
+ message: string;
119
+ code?: string;
120
+ };
121
+ }>;
122
+ /**
123
+ * Insert the globally unique system registry Config (`category=config`,
124
+ * `value=target-system-registry`). Rejects duplicates via `checkRedundancyFilterList`.
125
+ */
126
+ export declare const postSystemRegistryConfig: (payload: {
127
+ tagList: string[];
128
+ slots?: {
129
+ serviceValue: string;
130
+ }[] | undefined;
131
+ }) => import("..").SupabaseResponse<Config> | Promise<import("..").SupabaseResponse<Config>>;
132
+ /**
133
+ * Replace the system registry slot layout with fresh EMPTY rows.
134
+ * Creates the row when missing (same as {@link postSystemRegistryConfig}).
135
+ * Clears ACTIVE slot bindings — use for dev recovery after crashes or layout changes.
136
+ */
137
+ export declare const resetSystemRegistryConfig: (payload: {
138
+ tagList: string[];
139
+ slots?: {
140
+ serviceValue: string;
141
+ }[] | undefined;
142
+ }) => import("..").SupabaseResponse<Config> | Promise<import("..").SupabaseResponse<Config>>;
143
+ //# sourceMappingURL=config.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.api.d.ts","sourceRoot":"","sources":["../../src/service/config.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,OAAO,EAAkB,KAAK,MAAM,EAAE,KAAK,aAAa,EAA8B,MAAM,oBAAoB,CAAC;AACjH,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,qBAAqB,CAAC;AAI1E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAYvB,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE/D,wEAAwE;AACxE,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,8BAA8B;IACvC,wEAAwE;;;;;;;;;;;;;;;;;;;EAG1E,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE7F,qGAAqG;AACrG,eAAO,MAAM,+BAA+B;IARxC,wEAAwE;;;;;;;;;;;;;;;;;;;EAQC,CAAC;AAE9E,MAAM,MAAM,gCAAgC,GAAG,+BAA+B,CAAC;AAK/E,uFAAuF;AACvF,eAAO,MAAM,kCAAkC,EAAE,SAAS,sBAAsB,EAKtE,CAAC;AAkBX,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,GAAG,WAAW,EAAE,CAMlG;AAgBD,yEAAyE;AACzE,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,aAAa,CAO7F;AAED,+EAA+E;AAC/E,eAAO,MAAM,SAAS;;;;UAaW,MAAM;;;;;;YA1GnC,CAAC;;;;;;;;;YAAD,CAAC;;;UA0G4B,MAAM;;;;;;YA1GnC,CAAC;;;;;;;;;YAAD,CAAC;;EA6HH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;4FAsBnC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;4FA2CpC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { Target } from "../core.interface";
2
+ export interface Config extends Target {
3
+ /** Human readable name */
4
+ name: string;
5
+ /** Unique key, like TARGET_SYSTEM_REGISTRY_KEY */
6
+ value: string;
7
+ category: CategoryConfig;
8
+ details: ConfigDetails;
9
+ }
10
+ export declare enum CategoryConfig {
11
+ CONFIG = "config"
12
+ }
13
+ /** Globally unique Config key for the declarative system service registry. */
14
+ export declare const TARGET_SYSTEM_REGISTRY_KEY = "target-system-registry";
15
+ export interface ConfigDetails {
16
+ manifestVersion: number;
17
+ /** How to resolve the Config */
18
+ loaderKey: string;
19
+ meta: unknown;
20
+ objects: Array<unknown>;
21
+ }
22
+ //# sourceMappingURL=config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.interface.d.ts","sourceRoot":"","sources":["../../src/service/config.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,MAAO,SAAQ,MAAM;IAClC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;CAC1B;AAED,oBAAY,cAAc;IACtB,MAAM,WAAW;CACpB;AAED,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAC3B"}
@@ -1,21 +1,20 @@
1
- import { type SupabaseResponse } from "../core.interface";
2
- import { type Service } from "./service.interface";
1
+ /**
2
+ * Service domain public API — curated re-exports only.
3
+ */
3
4
  export type { EnumMembers, FieldDefinition, SchemaDefinition, ServiceLifecycle, } from "./base.interface";
4
5
  export { ServiceLifecycleStatus } from "./base.interface";
6
+ export type { GetConfigPayload, PostSystemRegistryConfigPayload, ResetSystemRegistryConfigPayload, SystemRegistrySeedSlot, } from "./config.api";
7
+ export { buildEmptyServiceSlots, buildSystemRegistryConfigDetails, DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, getConfig, getConfigSchema, postSystemRegistryConfig, postSystemRegistryConfigSchema, resetSystemRegistryConfig, resetSystemRegistryConfigSchema, systemRegistrySeedSlotSchema, } from "./config.api";
8
+ export type { Config, ConfigDetails } from "./config.interface";
9
+ export { CategoryConfig, TARGET_SYSTEM_REGISTRY_KEY } from "./config.interface";
10
+ export type { PatchServiceRuntimeInput, RegisterServiceInput, TargetSystemRegistrySlotView, TargetSystemRegistryView, } from "./registry.service";
11
+ export { assertRegistrySlotAvailable, assertRegistrySlotOwner, getTargetSystemRegistry, parseServiceSlot, parseServiceSlots, patchServiceRuntime, registerService, registerServiceAtStartup, resolveActiveRegistryServiceId, ServiceRegistryError, unregisterService, unregisterServiceAtShutdown, } from "./registry.service";
12
+ export type { ClaimRegistrySlotInput, RegistrySlotGuardResult, RegistrySlotRuntimeState, ServiceRegistrySession, } from "./registry-lifecycle";
13
+ export { claimServiceRegistrySlot, createClaimedRegistrySlotRuntimeState, EMPTY_REGISTRY_SLOT_RUNTIME_STATE, registrySlotRuntimePatchFromGuardResult, runRegistrySlotGuardCheck, } from "./registry-lifecycle";
5
14
  export type { GetApiPayload, GetServicePayload, PostApiPayload, PostServicePayload } from "./service.api";
6
- export { apiDetailsSchema, fieldDefinitionSchema, getApi, getApiSchema, getService, getServiceSchema, postApi, postApiSchema, postService, postServiceSchema, schemaDefinitionSchema, serviceDetailsSchema, serviceLifecycleSchema, } from "./service.api";
7
- export type { Api, ApiDetails, Service, ServiceDetails } from "./service.interface";
8
- export { ApiMethod, CategoryApi, CategoryService } from "./service.interface";
9
- export interface DiscoverServiceInput {
10
- /** {@link Service.value} */
11
- value: string;
12
- traceId?: string;
13
- }
14
- /**
15
- * Discover a single service by {@link Service.value}.
16
- * Only returns services with `lifecycle.status === ACTIVE` (filtered at query time).
17
- *
18
- * Lookup: primary `getService` → fallback `scanTargetList` by value.
19
- */
20
- export declare function discoverService(input: DiscoverServiceInput): Promise<SupabaseResponse<Service>>;
15
+ export { apiDetailsSchema, fieldDefinitionSchema, getApi, getApiSchema, getService, getServiceSchema, postApi, postApiSchema, postService, postServiceSchema, schemaDefinitionSchema, serviceDetailsSchema, serviceLifecycleSchema, serviceNodeSnapshotSchema, serviceRuntimeSchema, } from "./service.api";
16
+ export type { Api, ApiDetails, Service, ServiceDetails, ServiceNodeSnapshot, ServiceRuntime, ServiceSlot, } from "./service.interface";
17
+ export { ApiMethod, CategoryApi, CategoryService, ServiceSlotStatus } from "./service.interface";
18
+ export type { PostServiceInstanceOptions, ServiceBootstrapResult } from "./service-bootstrap";
19
+ export { createActiveServiceLifecycle, defaultL3ServiceDetails, postServiceInstance, } from "./service-bootstrap";
21
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEpE,YAAY,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,WAAW,oBAAoB;IACjC,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAoCD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CA6FrG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EACR,gBAAgB,EAChB,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,sBAAsB,EACtB,gCAAgC,EAChC,kCAAkC,EAClC,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,GAC/B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EACR,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,wBAAwB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC9B,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACR,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,wBAAwB,EACxB,qCAAqC,EACrC,iCAAiC,EACjC,uCAAuC,EACvC,yBAAyB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACR,GAAG,EACH,UAAU,EACV,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,WAAW,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjG,YAAY,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { Service } from "./service.interface";
2
+ /** Shared registry slice for L3 runtime state files (`state.json`). */
3
+ export interface RegistrySlotRuntimeState {
4
+ serviceId: string | null;
5
+ serviceValue: string | null;
6
+ slotOwned: boolean | null;
7
+ lastSlotCheckAt: string | null;
8
+ lastSlotCheckError: string | null;
9
+ }
10
+ export declare const EMPTY_REGISTRY_SLOT_RUNTIME_STATE: RegistrySlotRuntimeState;
11
+ export declare function createClaimedRegistrySlotRuntimeState(service: Service): RegistrySlotRuntimeState;
12
+ export interface ClaimRegistrySlotInput {
13
+ serviceValue: string;
14
+ createInstance: () => Promise<Service>;
15
+ traceId?: string;
16
+ }
17
+ export interface ServiceRegistrySession {
18
+ service: Service;
19
+ /** Graceful shutdown — releases ACTIVE registry slot. */
20
+ release: () => Promise<void>;
21
+ /** Abandon orphan instance row when register never succeeded. */
22
+ abandon: () => Promise<void>;
23
+ }
24
+ /**
25
+ * Preflight → create Service instance → claim registry slot.
26
+ * On register failure after `createInstance`, deletes the orphan Service row.
27
+ */
28
+ export declare function claimServiceRegistrySlot(input: ClaimRegistrySlotInput): Promise<ServiceRegistrySession>;
29
+ export interface RegistrySlotGuardResult {
30
+ slotOwned: boolean | null;
31
+ shouldShutdown: boolean;
32
+ error?: string;
33
+ }
34
+ /**
35
+ * Runtime guard step for service supervisor loops.
36
+ * Transient read failures soft-fail; confirmed slot loss returns `shouldShutdown: true`.
37
+ */
38
+ export declare function runRegistrySlotGuardCheck(input: {
39
+ serviceValue: string;
40
+ serviceId: string;
41
+ }): Promise<RegistrySlotGuardResult>;
42
+ export declare function registrySlotRuntimePatchFromGuardResult(result: RegistrySlotGuardResult, checkedAt: string): Pick<RegistrySlotRuntimeState, "slotOwned" | "lastSlotCheckAt" | "lastSlotCheckError">;
43
+ //# sourceMappingURL=registry-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-lifecycle.d.ts","sourceRoot":"","sources":["../../src/service/registry-lifecycle.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,iCAAiC,EAAE,wBAM/C,CAAC;AAEF,wBAAgB,qCAAqC,CAAC,OAAO,EAAE,OAAO,GAAG,wBAAwB,CAQhG;AAED,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,iEAAiE;IACjE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAwC7G;AAED,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmBnC;AAED,wBAAgB,uCAAuC,CACnD,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,MAAM,GAClB,IAAI,CAAC,wBAAwB,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC,CAMxF"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * System registry — declarative service capacity (`target-system-registry` Config)
3
+ * and startup/shutdown slot claims (`registerService` / `unregisterService`).
4
+ *
5
+ * Data planes:
6
+ * - Config `details.objects` — {@link ServiceSlot} desired layout (EMPTY / ACTIVE)
7
+ * - Service rows — runtime instances; guard maintains {@link ServiceDetails.runtime}
8
+ * - Slot release: graceful shutdown via {@link unregisterService}; monitor (later)
9
+ * for crashed / ungraceful exits (stale `Service.details.runtime`)
10
+ */
11
+ import type { Node } from "../node/node.interface";
12
+ import { type Config } from "./config.interface";
13
+ import { type Service, type ServiceSlot } from "./service.interface";
14
+ export { TARGET_SYSTEM_REGISTRY_KEY } from "./config.interface";
15
+ export interface TargetSystemRegistrySlotView {
16
+ slot: ServiceSlot;
17
+ /** Resolved when `slot.serviceId` is set; null for EMPTY slots. */
18
+ service: Service | null;
19
+ }
20
+ export interface TargetSystemRegistryView {
21
+ config: Config;
22
+ slots: TargetSystemRegistrySlotView[];
23
+ }
24
+ export interface RegisterServiceInput {
25
+ /** Registered runtime Service row (`category=service`). */
26
+ service: Service;
27
+ traceId?: string;
28
+ maxAttempts?: number;
29
+ }
30
+ export declare class ServiceRegistryError extends Error {
31
+ readonly code: "REGISTRY_CONFIG_NOT_FOUND" | "SERVICE_NOT_DECLARED" | "SERVICE_SLOTS_FULL" | "REGISTRY_SLOT_LOST" | "REGISTRY_UPDATE_FAILED";
32
+ constructor(message: string, code: "REGISTRY_CONFIG_NOT_FOUND" | "SERVICE_NOT_DECLARED" | "SERVICE_SLOTS_FULL" | "REGISTRY_SLOT_LOST" | "REGISTRY_UPDATE_FAILED");
33
+ }
34
+ /** Defensive decode of one {@link ServiceSlot} from Config `details.objects`. */
35
+ export declare function parseServiceSlot(value: unknown): ServiceSlot | null;
36
+ export declare function parseServiceSlots(config: Config): ServiceSlot[];
37
+ /**
38
+ * Load the global system registry Config and resolve each ACTIVE slot's Service row.
39
+ * Read-only — does not mutate slots or heartbeats.
40
+ */
41
+ export declare function getTargetSystemRegistry(): Promise<TargetSystemRegistryView>;
42
+ /**
43
+ * Preflight before `postService` — fail fast when registry capacity is full.
44
+ * Prevents orphan Service rows and child process spawn when no slot is available.
45
+ */
46
+ export declare function assertRegistrySlotAvailable(serviceValue: string): Promise<void>;
47
+ /**
48
+ * Runtime guard: this process's Service instance must still own an ACTIVE registry slot.
49
+ * Supports N>1 replicas — checks whether `serviceId` appears in any ACTIVE slot for
50
+ * `serviceValue`, not merely the first ACTIVE slot.
51
+ */
52
+ export declare function assertRegistrySlotOwner(input: {
53
+ serviceValue: string;
54
+ serviceId: string;
55
+ }): Promise<void>;
56
+ /**
57
+ * Claim one EMPTY slot for a running Service instance (`EMPTY → ACTIVE` only).
58
+ *
59
+ * - Each startup should `postService` a **new** instance row; do not reuse prior Service ids.
60
+ * - Declared capacity = count of {@link ServiceSlot} rows sharing `service.value`
61
+ * - No idempotent skip — if all slots are ACTIVE (e.g. crashed prior instance), throws
62
+ * `SERVICE_SLOTS_FULL` until monitor/ops releases the slot
63
+ * - Does not write heartbeats; guard maintains {@link ServiceDetails.runtime}
64
+ * - Graceful release: {@link unregisterService}; crash recovery: future monitor
65
+ */
66
+ export declare function registerService(input: RegisterServiceInput): Promise<void>;
67
+ /** Resolve the ACTIVE registry slot id for a declared `serviceValue`. */
68
+ export declare function resolveActiveRegistryServiceId(serviceValue: string): Promise<string | null>;
69
+ export interface PatchServiceRuntimeInput {
70
+ serviceValue: string;
71
+ /** Prefer explicit id (N>1 replicas); falls back to first ACTIVE slot when omitted. */
72
+ serviceId?: string;
73
+ nodes: readonly Node[];
74
+ lastHeartBeat: number;
75
+ }
76
+ /** Roll up Node liveness into `Service.details.runtime` (service guard only). */
77
+ export declare function patchServiceRuntime(input: PatchServiceRuntimeInput): Promise<void>;
78
+ /**
79
+ * Claim a registry slot at L3 startup — propagates {@link ServiceRegistryError} (e.g. `SERVICE_SLOTS_FULL`).
80
+ */
81
+ export declare function registerServiceAtStartup(input: RegisterServiceInput): Promise<void>;
82
+ /**
83
+ * Release the ACTIVE slot owned by this Service instance (`ACTIVE → EMPTY` only).
84
+ *
85
+ * - Idempotent when no ACTIVE slot is bound to `service.id`
86
+ * - Does not mutate the Service row or `details.runtime`
87
+ * - Does not release slots owned by other instances
88
+ */
89
+ export declare function unregisterService(input: RegisterServiceInput): Promise<void>;
90
+ /**
91
+ * Best-effort slot release for process shutdown — never throws.
92
+ */
93
+ export declare function unregisterServiceAtShutdown(input: RegisterServiceInput): Promise<void>;
94
+ //# sourceMappingURL=registry.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.service.d.ts","sourceRoot":"","sources":["../../src/service/registry.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGnD,OAAO,EAAE,KAAK,MAAM,EAAkD,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EACH,KAAK,OAAO,EAGZ,KAAK,WAAW,EAEnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAUhE,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,WAAW,CAAC;IAClB,mEAAmE;IACnE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,4BAA4B,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACjC,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAGvC,QAAQ,CAAC,IAAI,EACP,2BAA2B,GAC3B,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,GACpB,wBAAwB;gBAN9B,OAAO,EAAE,MAAM,EACN,IAAI,EACP,2BAA2B,GAC3B,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,GACpB,wBAAwB;CAKrC;AAcD,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CA2BnE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CAS/D;AAqCD;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAejF;AA2BD;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBrF;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB/G;AA+CD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFhF;AAED,yEAAyE;AACzE,wBAAsB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQjG;AAUD,MAAM,WAAW,wBAAwB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,iFAAiF;AACjF,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBxF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6ElF;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB5F"}
@@ -0,0 +1,28 @@
1
+ import { type LoggerWithScope } from "../shared/log";
2
+ import type { ServiceLifecycle } from "./base.interface";
3
+ import type { Service, ServiceDetails } from "./service.interface";
4
+ /** Default ACTIVE lifecycle for a newly posted Service instance row. */
5
+ export declare function createActiveServiceLifecycle(activeSince?: string): ServiceLifecycle;
6
+ /** Standard L3 Service `details` — empty apiKeys, manifest v0, ACTIVE lifecycle. */
7
+ export declare function defaultL3ServiceDetails(options?: {
8
+ dependencies?: string[];
9
+ }): ServiceDetails;
10
+ export interface PostServiceInstanceOptions {
11
+ name: string;
12
+ value: string;
13
+ tagList?: string[];
14
+ dependencies?: string[];
15
+ logger?: LoggerWithScope;
16
+ /** Log topic for instance-created message. Default `bootstrap`. */
17
+ logTopic?: string;
18
+ }
19
+ /**
20
+ * Post a new Service instance row (L3 blueprint).
21
+ * Same `value` may exist on many rows; registry slot claim selects the live instance.
22
+ */
23
+ export declare function postServiceInstance(options: PostServiceInstanceOptions): Promise<Service>;
24
+ export interface ServiceBootstrapResult {
25
+ service: Service;
26
+ baseUrl: string;
27
+ }
28
+ //# sourceMappingURL=service-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-bootstrap.d.ts","sourceRoot":"","sources":["../../src/service/service-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AASnE,wEAAwE;AACxE,wBAAgB,4BAA4B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAOnF;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,cAAc,CAO7F;AAED,MAAM,WAAW,0BAA0B;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB/F;AAED,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { NodeStatus } from "../node/node.interface";
2
3
  import { type FieldDefinition, type SchemaDefinition, ServiceLifecycleStatus } from "./base.interface";
3
4
  import { type Api, ApiMethod, type Service } from "./service.interface";
4
5
  declare const schemaDefinitionSchema: z.ZodType<SchemaDefinition>;
@@ -90,6 +91,49 @@ export declare const apiDetailsSchema: z.ZodObject<{
90
91
  sunsetAt: string | null;
91
92
  };
92
93
  }>;
94
+ export declare const serviceNodeSnapshotSchema: z.ZodObject<{
95
+ nodeId: z.ZodString;
96
+ status: z.ZodNativeEnum<typeof NodeStatus>;
97
+ lastHeartBeat: z.ZodNumber;
98
+ }, "strip", z.ZodTypeAny, {
99
+ status: NodeStatus;
100
+ nodeId: string;
101
+ lastHeartBeat: number;
102
+ }, {
103
+ status: NodeStatus;
104
+ nodeId: string;
105
+ lastHeartBeat: number;
106
+ }>;
107
+ export declare const serviceRuntimeSchema: z.ZodObject<{
108
+ lastHeartBeat: z.ZodNumber;
109
+ nodes: z.ZodDefault<z.ZodArray<z.ZodObject<{
110
+ nodeId: z.ZodString;
111
+ status: z.ZodNativeEnum<typeof NodeStatus>;
112
+ lastHeartBeat: z.ZodNumber;
113
+ }, "strip", z.ZodTypeAny, {
114
+ status: NodeStatus;
115
+ nodeId: string;
116
+ lastHeartBeat: number;
117
+ }, {
118
+ status: NodeStatus;
119
+ nodeId: string;
120
+ lastHeartBeat: number;
121
+ }>, "many">>;
122
+ }, "strip", z.ZodTypeAny, {
123
+ lastHeartBeat: number;
124
+ nodes: {
125
+ status: NodeStatus;
126
+ nodeId: string;
127
+ lastHeartBeat: number;
128
+ }[];
129
+ }, {
130
+ lastHeartBeat: number;
131
+ nodes?: {
132
+ status: NodeStatus;
133
+ nodeId: string;
134
+ lastHeartBeat: number;
135
+ }[] | undefined;
136
+ }>;
93
137
  export declare const serviceDetailsSchema: z.ZodObject<{
94
138
  manifestVersion: z.ZodNumber;
95
139
  apiKeys: z.ZodArray<z.ZodString, "many">;
@@ -110,6 +154,36 @@ export declare const serviceDetailsSchema: z.ZodObject<{
110
154
  deprecatedAt: string | null;
111
155
  sunsetAt: string | null;
112
156
  }>;
157
+ runtime: z.ZodOptional<z.ZodObject<{
158
+ lastHeartBeat: z.ZodNumber;
159
+ nodes: z.ZodDefault<z.ZodArray<z.ZodObject<{
160
+ nodeId: z.ZodString;
161
+ status: z.ZodNativeEnum<typeof NodeStatus>;
162
+ lastHeartBeat: z.ZodNumber;
163
+ }, "strip", z.ZodTypeAny, {
164
+ status: NodeStatus;
165
+ nodeId: string;
166
+ lastHeartBeat: number;
167
+ }, {
168
+ status: NodeStatus;
169
+ nodeId: string;
170
+ lastHeartBeat: number;
171
+ }>, "many">>;
172
+ }, "strip", z.ZodTypeAny, {
173
+ lastHeartBeat: number;
174
+ nodes: {
175
+ status: NodeStatus;
176
+ nodeId: string;
177
+ lastHeartBeat: number;
178
+ }[];
179
+ }, {
180
+ lastHeartBeat: number;
181
+ nodes?: {
182
+ status: NodeStatus;
183
+ nodeId: string;
184
+ lastHeartBeat: number;
185
+ }[] | undefined;
186
+ }>>;
113
187
  }, "strip", z.ZodTypeAny, {
114
188
  manifestVersion: number;
115
189
  lifecycle: {
@@ -120,6 +194,14 @@ export declare const serviceDetailsSchema: z.ZodObject<{
120
194
  };
121
195
  apiKeys: string[];
122
196
  dependencies: string[];
197
+ runtime?: {
198
+ lastHeartBeat: number;
199
+ nodes: {
200
+ status: NodeStatus;
201
+ nodeId: string;
202
+ lastHeartBeat: number;
203
+ }[];
204
+ } | undefined;
123
205
  }, {
124
206
  manifestVersion: number;
125
207
  lifecycle: {
@@ -130,6 +212,14 @@ export declare const serviceDetailsSchema: z.ZodObject<{
130
212
  };
131
213
  apiKeys: string[];
132
214
  dependencies?: string[] | undefined;
215
+ runtime?: {
216
+ lastHeartBeat: number;
217
+ nodes?: {
218
+ status: NodeStatus;
219
+ nodeId: string;
220
+ lastHeartBeat: number;
221
+ }[] | undefined;
222
+ } | undefined;
133
223
  }>;
134
224
  export declare const postApiSchema: z.ZodObject<{
135
225
  name: z.ZodString;
@@ -317,6 +407,36 @@ export declare const postServiceSchema: z.ZodObject<{
317
407
  deprecatedAt: string | null;
318
408
  sunsetAt: string | null;
319
409
  }>;
410
+ runtime: z.ZodOptional<z.ZodObject<{
411
+ lastHeartBeat: z.ZodNumber;
412
+ nodes: z.ZodDefault<z.ZodArray<z.ZodObject<{
413
+ nodeId: z.ZodString;
414
+ status: z.ZodNativeEnum<typeof NodeStatus>;
415
+ lastHeartBeat: z.ZodNumber;
416
+ }, "strip", z.ZodTypeAny, {
417
+ status: NodeStatus;
418
+ nodeId: string;
419
+ lastHeartBeat: number;
420
+ }, {
421
+ status: NodeStatus;
422
+ nodeId: string;
423
+ lastHeartBeat: number;
424
+ }>, "many">>;
425
+ }, "strip", z.ZodTypeAny, {
426
+ lastHeartBeat: number;
427
+ nodes: {
428
+ status: NodeStatus;
429
+ nodeId: string;
430
+ lastHeartBeat: number;
431
+ }[];
432
+ }, {
433
+ lastHeartBeat: number;
434
+ nodes?: {
435
+ status: NodeStatus;
436
+ nodeId: string;
437
+ lastHeartBeat: number;
438
+ }[] | undefined;
439
+ }>>;
320
440
  }, "strip", z.ZodTypeAny, {
321
441
  manifestVersion: number;
322
442
  lifecycle: {
@@ -327,6 +447,14 @@ export declare const postServiceSchema: z.ZodObject<{
327
447
  };
328
448
  apiKeys: string[];
329
449
  dependencies: string[];
450
+ runtime?: {
451
+ lastHeartBeat: number;
452
+ nodes: {
453
+ status: NodeStatus;
454
+ nodeId: string;
455
+ lastHeartBeat: number;
456
+ }[];
457
+ } | undefined;
330
458
  }, {
331
459
  manifestVersion: number;
332
460
  lifecycle: {
@@ -337,6 +465,14 @@ export declare const postServiceSchema: z.ZodObject<{
337
465
  };
338
466
  apiKeys: string[];
339
467
  dependencies?: string[] | undefined;
468
+ runtime?: {
469
+ lastHeartBeat: number;
470
+ nodes?: {
471
+ status: NodeStatus;
472
+ nodeId: string;
473
+ lastHeartBeat: number;
474
+ }[] | undefined;
475
+ } | undefined;
340
476
  }>;
341
477
  tagList: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
342
478
  extra: z.ZodOptional<z.ZodString>;
@@ -354,6 +490,14 @@ export declare const postServiceSchema: z.ZodObject<{
354
490
  };
355
491
  apiKeys: string[];
356
492
  dependencies: string[];
493
+ runtime?: {
494
+ lastHeartBeat: number;
495
+ nodes: {
496
+ status: NodeStatus;
497
+ nodeId: string;
498
+ lastHeartBeat: number;
499
+ }[];
500
+ } | undefined;
357
501
  };
358
502
  extra?: string | undefined;
359
503
  }, {
@@ -369,6 +513,14 @@ export declare const postServiceSchema: z.ZodObject<{
369
513
  };
370
514
  apiKeys: string[];
371
515
  dependencies?: string[] | undefined;
516
+ runtime?: {
517
+ lastHeartBeat: number;
518
+ nodes?: {
519
+ status: NodeStatus;
520
+ nodeId: string;
521
+ lastHeartBeat: number;
522
+ }[] | undefined;
523
+ } | undefined;
372
524
  };
373
525
  tagList?: string[] | undefined;
374
526
  extra?: string | undefined;
@@ -497,6 +649,14 @@ export declare const postService: (payload: {
497
649
  };
498
650
  apiKeys: string[];
499
651
  dependencies: string[];
652
+ runtime?: {
653
+ lastHeartBeat: number;
654
+ nodes: {
655
+ status: NodeStatus;
656
+ nodeId: string;
657
+ lastHeartBeat: number;
658
+ }[];
659
+ } | undefined;
500
660
  };
501
661
  extra?: string | undefined;
502
662
  }) => import("..").SupabaseResponse<Service> | Promise<import("..").SupabaseResponse<Service>>;