@automagik/omni 2.260922.15 → 2.260923.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/sources.d.ts.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/webhooks.d.ts +13 -0
- package/dist/commands/webhooks.d.ts.map +1 -1
- package/dist/index.js +51 -5
- package/dist/sdk/types.generated.d.ts +10 -7
- package/dist/sdk/types.generated.d.ts.map +1 -1
- package/dist/server/index.js +78 -12
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/commands/sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACrG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wEAAwE;AACxE,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/G,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,uBAAuB,EAAE,MAAM,CAAC;IAChC,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,yFAAyF;IACzF,qBAAqB,CACnB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GACtD,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAiCD,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAc,CAAC;AA+DhE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC;IACtF,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9G,WAAW,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,gGAAgG;IAChG,aAAa,EAAE,OAAO,CAAC;IACvB,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qBAAa,WAAY,SAAQ,KAAK;IAElC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE;gBADnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EAAE,EAC5B,KAAK,EAAE,OAAO;CAIjB;AAID,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAGpF;AAED,kHAAkH;AAClH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,OAAO,EACxB,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,gBAAgB,CAAC,GACzF,MAAM,EAAE,CAcV;AAED,eAAO,MAAM,KAAK,yFAA0F,CAAC;AAE7G,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA4E/E;AAMD,wBAAgB,oBAAoB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/commands/sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwMpC,wBAAgB,mBAAmB,IAAI,OAAO,CAU7C"}
|
|
@@ -86,6 +86,19 @@ declare function buildUpdateSourcePatch(options: UpdateSourceOptions): Promise<U
|
|
|
86
86
|
declare function assertPairedSignatureOnCreate(signatureConfig: WebhookSignatureConfigBody | undefined, signatureSecret: string | undefined): void;
|
|
87
87
|
declare const WINDOW_SEMANTICS: readonly ["future_only", "includes_in_progress"];
|
|
88
88
|
declare const MUTATION_POLICIES: readonly ["same_id", "new_id"];
|
|
89
|
+
/** Names of stalled and poll-disabled sources (#1239/#1241), surfaced by `omni status` and `omni webhooks list`. */
|
|
90
|
+
export declare function sourceHealthAlerts(sources: Array<{
|
|
91
|
+
name: string;
|
|
92
|
+
livenessStatus?: string | null;
|
|
93
|
+
}>): {
|
|
94
|
+
stalled: string[];
|
|
95
|
+
pollDisabled: string[];
|
|
96
|
+
};
|
|
97
|
+
/** One-line banner for the alerts above; null when every source is fine. */
|
|
98
|
+
export declare function formatSourceHealthAlerts(alerts: {
|
|
99
|
+
stalled: string[];
|
|
100
|
+
pollDisabled: string[];
|
|
101
|
+
}): string | null;
|
|
89
102
|
export declare function createWebhooksCommand(): Command;
|
|
90
103
|
/** Test-only surface — not part of the CLI contract. */
|
|
91
104
|
export declare const __testables: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -42633,6 +42633,8 @@ async function processRow2(row, now, deps, stats) {
|
|
|
42633
42633
|
const silentMs = Math.max(0, now.getTime() - signal.at.getTime());
|
|
42634
42634
|
const overdue = silentMs > row.expectedIntervalSeconds * 1000;
|
|
42635
42635
|
const silentForSeconds = Math.round(silentMs / 1000);
|
|
42636
|
+
if (row.livenessStatus === "disabled")
|
|
42637
|
+
return;
|
|
42636
42638
|
if (overdue) {
|
|
42637
42639
|
if (row.livenessStatus === "stalled")
|
|
42638
42640
|
return;
|
|
@@ -42647,6 +42649,7 @@ async function processRow2(row, now, deps, stats) {
|
|
|
42647
42649
|
silentForSeconds,
|
|
42648
42650
|
stalledAt: now.getTime()
|
|
42649
42651
|
};
|
|
42652
|
+
deps.logger.warn("connector stalled", { sourceName: row.name, silentForSeconds });
|
|
42650
42653
|
await publishTransition(deps, "system.connector.stalled", { ...payload }, row);
|
|
42651
42654
|
stats.stalled += 1;
|
|
42652
42655
|
return;
|
|
@@ -42663,6 +42666,10 @@ async function processRow2(row, now, deps, stats) {
|
|
|
42663
42666
|
recoveredBy: signal.kind,
|
|
42664
42667
|
recoveredAt: now.getTime()
|
|
42665
42668
|
};
|
|
42669
|
+
deps.logger.info("connector recovered", {
|
|
42670
|
+
sourceName: row.name,
|
|
42671
|
+
stalledForSeconds: payload.stalledForSeconds
|
|
42672
|
+
});
|
|
42666
42673
|
await publishTransition(deps, "system.connector.recovered", { ...payload }, row);
|
|
42667
42674
|
stats.recovered += 1;
|
|
42668
42675
|
}
|
|
@@ -83274,7 +83281,7 @@ var init_schema2 = __esm(() => {
|
|
|
83274
83281
|
eventStageIdx: index("event_payloads_event_stage_idx").on(table3.eventId, table3.stage)
|
|
83275
83282
|
}));
|
|
83276
83283
|
webhookSignatureAlgorithms = ["hmac-sha256", "hmac-sha1", "token-match"];
|
|
83277
|
-
connectorLivenessStatuses = ["healthy", "stalled"];
|
|
83284
|
+
connectorLivenessStatuses = ["healthy", "stalled", "disabled"];
|
|
83278
83285
|
connectorWindowSemanticsValues = ["future_only", "includes_in_progress"];
|
|
83279
83286
|
connectorMutationPolicies = ["same_id", "new_id"];
|
|
83280
83287
|
webhookSources = pgTable("webhook_sources", {
|
|
@@ -137453,7 +137460,7 @@ import { fileURLToPath } from "url";
|
|
|
137453
137460
|
// package.json
|
|
137454
137461
|
var package_default = {
|
|
137455
137462
|
name: "@automagik/omni",
|
|
137456
|
-
version: "2.
|
|
137463
|
+
version: "2.260923.1",
|
|
137457
137464
|
repository: {
|
|
137458
137465
|
type: "git",
|
|
137459
137466
|
url: "git+https://github.com/automagik-dev/omni.git",
|
|
@@ -151946,6 +151953,21 @@ function buildLifecycleUpdates(options3) {
|
|
|
151946
151953
|
updates.mutationPolicy = mutationPolicy;
|
|
151947
151954
|
return updates;
|
|
151948
151955
|
}
|
|
151956
|
+
function sourceHealthAlerts(sources) {
|
|
151957
|
+
return {
|
|
151958
|
+
stalled: sources.filter((s2) => s2.livenessStatus === "stalled").map((s2) => s2.name),
|
|
151959
|
+
pollDisabled: sources.filter((s2) => s2.livenessStatus === "disabled").map((s2) => s2.name)
|
|
151960
|
+
};
|
|
151961
|
+
}
|
|
151962
|
+
function formatSourceHealthAlerts(alerts) {
|
|
151963
|
+
const parts = [];
|
|
151964
|
+
if (alerts.stalled.length > 0)
|
|
151965
|
+
parts.push(`${alerts.stalled.length} stalled (${alerts.stalled.join(", ")})`);
|
|
151966
|
+
if (alerts.pollDisabled.length > 0) {
|
|
151967
|
+
parts.push(`${alerts.pollDisabled.length} poll disabled, no OMNI_POLL_COMMAND_DIR (${alerts.pollDisabled.join(", ")})`);
|
|
151968
|
+
}
|
|
151969
|
+
return parts.length > 0 ? `Sources: ${parts.join("; ")}` : null;
|
|
151970
|
+
}
|
|
151949
151971
|
function createWebhooksCommand() {
|
|
151950
151972
|
const webhooks = new Command("webhooks").description("Manage webhook sources");
|
|
151951
151973
|
webhooks.command("list").description("List webhook sources").option("--enabled", "Show only enabled sources").option("--disabled", "Show only disabled sources").action(async (options3) => {
|
|
@@ -151963,11 +151985,14 @@ function createWebhooksCommand() {
|
|
|
151963
151985
|
id: w.id,
|
|
151964
151986
|
name: w.name,
|
|
151965
151987
|
enabled: w.enabled ? "yes" : "no",
|
|
151966
|
-
health: w.livenessStatus ?? "-",
|
|
151988
|
+
health: w.livenessStatus === "disabled" ? "poll disabled" : w.livenessStatus ?? "-",
|
|
151967
151989
|
cadence: w.expectedIntervalSeconds != null ? `${w.expectedIntervalSeconds}s` : "-",
|
|
151968
151990
|
url: ingressUrl(w.name),
|
|
151969
151991
|
createdAt: w.createdAt
|
|
151970
151992
|
}));
|
|
151993
|
+
const banner = formatSourceHealthAlerts(sourceHealthAlerts(result));
|
|
151994
|
+
if (banner)
|
|
151995
|
+
warn(banner);
|
|
151971
151996
|
list(items, { emptyMessage: "No webhook sources found." });
|
|
151972
151997
|
} catch (err2) {
|
|
151973
151998
|
const message2 = err2 instanceof Error ? err2.message : "Unknown error";
|
|
@@ -152319,7 +152344,14 @@ function createSourcesCommand() {
|
|
|
152319
152344
|
error(`Failed to add source: ${err2 instanceof Error ? err2.message : String(err2)}`);
|
|
152320
152345
|
}
|
|
152321
152346
|
});
|
|
152322
|
-
sources.command("add-poll <name>").description("Create a supervised pull connector: omni runs --command every --interval seconds and ingests each JSON stdout line (command must live inside the API host OMNI_POLL_COMMAND_DIR)").requiredOption("--command <path>", "Executable to run (no shell, no arguments)").requiredOption("--interval <seconds>", "Seconds between runs (min 10); failures back off exponentially").requiredOption("--emit-type <type>", "Event type for each stdout line (custom.*)").option("--dedup-key <template>", "Idempotency key template, e.g. '{payload.message_id}'").option("--expected-interval <seconds>", "Liveness window (default: 2x --interval)").option("--env <KEY=VALUE...>", "Environment variables for the command (repeatable)").option("--description <desc>", "Description").
|
|
152347
|
+
sources.command("add-poll <name>").description("Create a supervised pull connector: omni runs --command every --interval seconds and ingests each JSON stdout line (command must live inside the API host OMNI_POLL_COMMAND_DIR)").requiredOption("--command <path>", "Executable to run (no shell, no arguments)").requiredOption("--interval <seconds>", "Seconds between runs (min 10); failures back off exponentially up to --max-backoff").option("--max-backoff <seconds>", "Backoff ceiling in seconds (default 3600)").requiredOption("--emit-type <type>", "Event type for each stdout line (custom.*)").option("--dedup-key <template>", "Idempotency key template, e.g. '{payload.message_id}'").option("--expected-interval <seconds>", "Liveness window (default: 2x --interval)").option("--env <KEY=VALUE...>", "Environment variables for the command (repeatable)").option("--description <desc>", "Description").addHelpText("after", `
|
|
152348
|
+
Exit codes:
|
|
152349
|
+
exit 0 success: each JSON stdout line is ingested (empty stdout = nothing new)
|
|
152350
|
+
exit != 0 failure, EVEN WITH EMPTY STDOUT, and backs off. Shell pipelines often
|
|
152351
|
+
exit 1 on "no matches" (grep, set -o pipefail): end them with "|| true"
|
|
152352
|
+
or "exit 0" when an empty result is normal.
|
|
152353
|
+
Config errors (OMNI_POLL_COMMAND_DIR unset, command missing) retry every min(interval, 300s)
|
|
152354
|
+
without backing off.`).action(async (name, options3) => {
|
|
152323
152355
|
const intervalSeconds = Number(options3.interval);
|
|
152324
152356
|
const env2 = Object.fromEntries((options3.env ?? []).map((pair) => [pair.slice(0, pair.indexOf("=")), pair.slice(pair.indexOf("=") + 1)]));
|
|
152325
152357
|
try {
|
|
@@ -152335,7 +152367,8 @@ function createSourcesCommand() {
|
|
|
152335
152367
|
intervalSeconds,
|
|
152336
152368
|
emitType: options3.emitType,
|
|
152337
152369
|
...options3.dedupKey && { dedupKeyTemplate: options3.dedupKey },
|
|
152338
|
-
...options3.env && { env: env2 }
|
|
152370
|
+
...options3.env && { env: env2 },
|
|
152371
|
+
...options3.maxBackoff && { maxBackoffSeconds: Number(options3.maxBackoff) }
|
|
152339
152372
|
}
|
|
152340
152373
|
})
|
|
152341
152374
|
});
|
|
@@ -152643,6 +152676,18 @@ async function validateAuthKey(statusInfo, client) {
|
|
|
152643
152676
|
statusInfo.keyValid = false;
|
|
152644
152677
|
}
|
|
152645
152678
|
}
|
|
152679
|
+
async function checkSourceHealth(statusInfo, client) {
|
|
152680
|
+
try {
|
|
152681
|
+
const alerts = sourceHealthAlerts(await client.webhooks.listSources({ enabled: true }));
|
|
152682
|
+
if (alerts.stalled.length > 0)
|
|
152683
|
+
statusInfo.stalledSources = alerts.stalled;
|
|
152684
|
+
if (alerts.pollDisabled.length > 0)
|
|
152685
|
+
statusInfo.pollDisabledSources = alerts.pollDisabled;
|
|
152686
|
+
const banner = formatSourceHealthAlerts(alerts);
|
|
152687
|
+
if (banner)
|
|
152688
|
+
warn(banner);
|
|
152689
|
+
} catch {}
|
|
152690
|
+
}
|
|
152646
152691
|
async function collectStatusInfo() {
|
|
152647
152692
|
const config2 = loadConfig();
|
|
152648
152693
|
const isAuthenticated = hasAuth();
|
|
@@ -152659,6 +152704,7 @@ async function collectStatusInfo() {
|
|
|
152659
152704
|
const client = getOptionalClient();
|
|
152660
152705
|
if (client) {
|
|
152661
152706
|
await validateAuthKey(statusInfo, client);
|
|
152707
|
+
await checkSourceHealth(statusInfo, client);
|
|
152662
152708
|
}
|
|
152663
152709
|
}
|
|
152664
152710
|
const processes = await getProcessStatus();
|
|
@@ -4970,7 +4970,7 @@ export interface components {
|
|
|
4970
4970
|
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
4971
4971
|
* @enum {string|null}
|
|
4972
4972
|
*/
|
|
4973
|
-
livenessStatus: "healthy" | "stalled" | null;
|
|
4973
|
+
livenessStatus: "healthy" | "stalled" | "disabled" | null;
|
|
4974
4974
|
/**
|
|
4975
4975
|
* Format: date-time
|
|
4976
4976
|
* @description When the cadence was (re)declared
|
|
@@ -5059,6 +5059,7 @@ export interface components {
|
|
|
5059
5059
|
env?: {
|
|
5060
5060
|
[key: string]: string;
|
|
5061
5061
|
};
|
|
5062
|
+
maxBackoffSeconds?: number;
|
|
5062
5063
|
} | null;
|
|
5063
5064
|
/**
|
|
5064
5065
|
* @description Whether enabled
|
|
@@ -5130,7 +5131,7 @@ export interface components {
|
|
|
5130
5131
|
* @description Status before this heartbeat (a stalled source recovers on the next sweep tick)
|
|
5131
5132
|
* @enum {string|null}
|
|
5132
5133
|
*/
|
|
5133
|
-
livenessStatus: "healthy" | "stalled" | null;
|
|
5134
|
+
livenessStatus: "healthy" | "stalled" | "disabled" | null;
|
|
5134
5135
|
/** @description Declared cadence, if any */
|
|
5135
5136
|
expectedIntervalSeconds: number | null;
|
|
5136
5137
|
};
|
|
@@ -14034,7 +14035,7 @@ export interface operations {
|
|
|
14034
14035
|
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
14035
14036
|
* @enum {string|null}
|
|
14036
14037
|
*/
|
|
14037
|
-
livenessStatus: "healthy" | "stalled" | null;
|
|
14038
|
+
livenessStatus: "healthy" | "stalled" | "disabled" | null;
|
|
14038
14039
|
/**
|
|
14039
14040
|
* Format: date-time
|
|
14040
14041
|
* @description When the cadence was (re)declared
|
|
@@ -14137,6 +14138,7 @@ export interface operations {
|
|
|
14137
14138
|
env?: {
|
|
14138
14139
|
[key: string]: string;
|
|
14139
14140
|
};
|
|
14141
|
+
maxBackoffSeconds?: number;
|
|
14140
14142
|
} | null;
|
|
14141
14143
|
/**
|
|
14142
14144
|
* @description Whether enabled
|
|
@@ -14242,7 +14244,7 @@ export interface operations {
|
|
|
14242
14244
|
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
14243
14245
|
* @enum {string|null}
|
|
14244
14246
|
*/
|
|
14245
|
-
livenessStatus: "healthy" | "stalled" | null;
|
|
14247
|
+
livenessStatus: "healthy" | "stalled" | "disabled" | null;
|
|
14246
14248
|
/**
|
|
14247
14249
|
* Format: date-time
|
|
14248
14250
|
* @description When the cadence was (re)declared
|
|
@@ -14394,7 +14396,7 @@ export interface operations {
|
|
|
14394
14396
|
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
14395
14397
|
* @enum {string|null}
|
|
14396
14398
|
*/
|
|
14397
|
-
livenessStatus: "healthy" | "stalled" | null;
|
|
14399
|
+
livenessStatus: "healthy" | "stalled" | "disabled" | null;
|
|
14398
14400
|
/**
|
|
14399
14401
|
* Format: date-time
|
|
14400
14402
|
* @description When the cadence was (re)declared
|
|
@@ -14568,6 +14570,7 @@ export interface operations {
|
|
|
14568
14570
|
env?: {
|
|
14569
14571
|
[key: string]: string;
|
|
14570
14572
|
};
|
|
14573
|
+
maxBackoffSeconds?: number;
|
|
14571
14574
|
} | null;
|
|
14572
14575
|
/**
|
|
14573
14576
|
* @description Whether enabled
|
|
@@ -14673,7 +14676,7 @@ export interface operations {
|
|
|
14673
14676
|
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
14674
14677
|
* @enum {string|null}
|
|
14675
14678
|
*/
|
|
14676
|
-
livenessStatus: "healthy" | "stalled" | null;
|
|
14679
|
+
livenessStatus: "healthy" | "stalled" | "disabled" | null;
|
|
14677
14680
|
/**
|
|
14678
14681
|
* Format: date-time
|
|
14679
14682
|
* @description When the cadence was (re)declared
|
|
@@ -14826,7 +14829,7 @@ export interface operations {
|
|
|
14826
14829
|
* @description Status before this heartbeat (a stalled source recovers on the next sweep tick)
|
|
14827
14830
|
* @enum {string|null}
|
|
14828
14831
|
*/
|
|
14829
|
-
livenessStatus: "healthy" | "stalled" | null;
|
|
14832
|
+
livenessStatus: "healthy" | "stalled" | "disabled" | null;
|
|
14830
14833
|
/** @description Declared cadence, if any */
|
|
14831
14834
|
expectedIntervalSeconds: number | null;
|
|
14832
14835
|
};
|