@kici-dev/engine 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -93,6 +93,7 @@ export declare const MetricNames: {
93
93
  readonly KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: 'kici_orch_trigger_match_duration_seconds';
94
94
  readonly KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: 'kici_orch_trust_match_refused_no_id_total';
95
95
  readonly KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: 'kici_orch_trust_policy_decisions_total';
96
+ readonly KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: 'kici_orch_unroutable_fast_failed_total';
96
97
  readonly KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: 'kici_orch_webhooks_processed_total';
97
98
  readonly KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: 'kici_orch_webhooks_received_total';
98
99
  readonly KICI_ORCH_WS_NACK_RECEIVED_TOTAL: 'kici_orch_ws_nack_received_total';
@@ -294,6 +295,7 @@ export declare const MetricLabels: {
294
295
  readonly KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: readonly [];
295
296
  readonly KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: readonly ['reason'];
296
297
  readonly KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: readonly ['arm', 'action'];
298
+ readonly KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: readonly [];
297
299
  readonly KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: readonly ['result'];
298
300
  readonly KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: readonly ['source', 'event'];
299
301
  readonly KICI_ORCH_WS_NACK_RECEIVED_TOTAL: readonly [];
@@ -494,6 +496,7 @@ export declare const MetricKind: {
494
496
  readonly KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: 'histogram';
495
497
  readonly KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: 'counter';
496
498
  readonly KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: 'counter';
499
+ readonly KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: 'counter';
497
500
  readonly KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: 'counter';
498
501
  readonly KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: 'counter';
499
502
  readonly KICI_ORCH_WS_NACK_RECEIVED_TOTAL: 'counter';
@@ -694,6 +697,7 @@ export declare const MetricDescription: {
694
697
  readonly KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: 'Duration of trigger matching operations in seconds';
695
698
  readonly KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: 'Trust-resolution attempts refused because the provider numeric id was missing or did not match';
696
699
  readonly KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: 'Total org trust-policy gate decisions by arm and action';
700
+ readonly KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: 'Jobs terminalized as unroutable by the fast-fail probe (not the queue timeout)';
697
701
  readonly KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: 'Total number of webhooks processed';
698
702
  readonly KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: 'Total number of webhooks received';
699
703
  readonly KICI_ORCH_WS_NACK_RECEIVED_TOTAL: 'NACKs received from the Platform for a message it could not process (version skew)';
@@ -901,6 +905,7 @@ export declare const MetricService: {
901
905
  readonly KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: 'orchestrator';
902
906
  readonly KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: 'orchestrator';
903
907
  readonly KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: 'orchestrator';
908
+ readonly KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: 'orchestrator';
904
909
  readonly KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: 'orchestrator';
905
910
  readonly KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: 'orchestrator';
906
911
  readonly KICI_ORCH_WS_NACK_RECEIVED_TOTAL: 'orchestrator';
@@ -95,6 +95,7 @@ const MetricNames = {
95
95
  KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: "kici_orch_trigger_match_duration_seconds",
96
96
  KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: "kici_orch_trust_match_refused_no_id_total",
97
97
  KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: "kici_orch_trust_policy_decisions_total",
98
+ KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: "kici_orch_unroutable_fast_failed_total",
98
99
  KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: "kici_orch_webhooks_processed_total",
99
100
  KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: "kici_orch_webhooks_received_total",
100
101
  KICI_ORCH_WS_NACK_RECEIVED_TOTAL: "kici_orch_ws_nack_received_total",
@@ -307,6 +308,7 @@ const MetricLabels = {
307
308
  KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: [],
308
309
  KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: ["reason"],
309
310
  KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: ["arm", "action"],
311
+ KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: [],
310
312
  KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: ["result"],
311
313
  KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: ["source", "event"],
312
314
  KICI_ORCH_WS_NACK_RECEIVED_TOTAL: [],
@@ -511,6 +513,7 @@ const MetricKind = {
511
513
  KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: "histogram",
512
514
  KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: "counter",
513
515
  KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: "counter",
516
+ KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: "counter",
514
517
  KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: "counter",
515
518
  KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: "counter",
516
519
  KICI_ORCH_WS_NACK_RECEIVED_TOTAL: "counter",
@@ -711,6 +714,7 @@ const MetricDescription = {
711
714
  KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: "Duration of trigger matching operations in seconds",
712
715
  KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: "Trust-resolution attempts refused because the provider numeric id was missing or did not match",
713
716
  KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: "Total org trust-policy gate decisions by arm and action",
717
+ KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: "Jobs terminalized as unroutable by the fast-fail probe (not the queue timeout)",
714
718
  KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: "Total number of webhooks processed",
715
719
  KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: "Total number of webhooks received",
716
720
  KICI_ORCH_WS_NACK_RECEIVED_TOTAL: "NACKs received from the Platform for a message it could not process (version skew)",
@@ -918,6 +922,7 @@ const MetricService = {
918
922
  KICI_ORCH_TRIGGER_MATCH_DURATION_SECONDS: "orchestrator",
919
923
  KICI_ORCH_TRUST_MATCH_REFUSED_NO_ID_TOTAL: "orchestrator",
920
924
  KICI_ORCH_TRUST_POLICY_DECISIONS_TOTAL: "orchestrator",
925
+ KICI_ORCH_UNROUTABLE_FAST_FAILED_TOTAL: "orchestrator",
921
926
  KICI_ORCH_WEBHOOKS_PROCESSED_TOTAL: "orchestrator",
922
927
  KICI_ORCH_WEBHOOKS_RECEIVED_TOTAL: "orchestrator",
923
928
  KICI_ORCH_WS_NACK_RECEIVED_TOTAL: "orchestrator",
@@ -1119,6 +1124,7 @@ const ALL_METRIC_NAMES = [
1119
1124
  "kici_orch_trigger_match_duration_seconds",
1120
1125
  "kici_orch_trust_match_refused_no_id_total",
1121
1126
  "kici_orch_trust_policy_decisions_total",
1127
+ "kici_orch_unroutable_fast_failed_total",
1122
1128
  "kici_orch_webhooks_processed_total",
1123
1129
  "kici_orch_webhooks_received_total",
1124
1130
  "kici_orch_ws_nack_received_total",
@@ -386,6 +386,7 @@ export declare const dashboardJobDetailSchema: z.ZodObject<{
386
386
  agentId: z.ZodNullable<z.ZodString>;
387
387
  orchestratorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
388
388
  errorMessage: z.ZodNullable<z.ZodString>;
389
+ routingReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
389
390
  runsOnLabels: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
390
391
  contexts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
391
392
  skippedContexts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
@@ -475,6 +476,7 @@ export declare const dashboardRunDetailResponseSchema: z.ZodObject<{
475
476
  agentId: z.ZodNullable<z.ZodString>;
476
477
  orchestratorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
477
478
  errorMessage: z.ZodNullable<z.ZodString>;
479
+ routingReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
478
480
  runsOnLabels: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
479
481
  contexts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
480
482
  skippedContexts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
@@ -7005,6 +7007,7 @@ export declare const dashboardOrchToPlatformSchema: z.ZodDiscriminatedUnion<[z.Z
7005
7007
  agentId: z.ZodNullable<z.ZodString>;
7006
7008
  orchestratorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7007
7009
  errorMessage: z.ZodNullable<z.ZodString>;
7010
+ routingReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7008
7011
  runsOnLabels: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
7009
7012
  contexts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
7010
7013
  skippedContexts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
@@ -8638,6 +8641,7 @@ export declare const dashboardRunDetailApiResponseSchema: z.ZodObject<{
8638
8641
  agentId: z.ZodNullable<z.ZodString>;
8639
8642
  orchestratorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8640
8643
  errorMessage: z.ZodNullable<z.ZodString>;
8644
+ routingReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8641
8645
  runsOnLabels: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
8642
8646
  contexts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
8643
8647
  skippedContexts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
@@ -132,6 +132,16 @@ const dashboardJobDetailSchema = z.object({
132
132
  agentId: z.string().nullable(),
133
133
  orchestratorId: z.string().nullable().optional(),
134
134
  errorMessage: z.string().nullable(),
135
+ /**
136
+ * Why this job cannot currently be routed to any agent, present only while it
137
+ * is still queued and nothing in the fleet matches its `runsOn`; cleared once
138
+ * a matching agent or scaler backend appears.
139
+ *
140
+ * OPTIONAL, and must stay optional: the wire protocol is compatibility-
141
+ * protected, so an orchestrator that predates the unroutable probe simply
142
+ * omits it.
143
+ */
144
+ routingReason: z.string().nullable().optional(),
135
145
  /** Labels used for agent routing (e.g. ["kici:os:linux", "kici:arch:x64"]). */
136
146
  runsOnLabels: z.array(z.string()).nullable().optional(),
137
147
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kici-dev/engine",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Shared business logic for the KiCI CI/CD stack: protocol, triggers, state machine, and provider interfaces used by the Platform relay, orchestrator, and compiler.",
5
5
  "keywords": [
6
6
  "ci",
package/sbom.spdx.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "spdxVersion": "SPDX-2.3",
3
3
  "dataLicense": "CC0-1.0",
4
4
  "SPDXID": "SPDXRef-DOCUMENT",
5
- "name": "@kici-dev/engine@0.2.0",
6
- "documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Fengine/0.2.0/542cdb3d-4979-42ab-ac13-1e4b9c793893",
5
+ "name": "@kici-dev/engine@0.3.0",
6
+ "documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Fengine/0.3.0/efa4dc6e-9041-4801-bb71-cb5f0e5d0cc2",
7
7
  "creationInfo": {
8
- "created": "2026-08-08T04:27:05Z",
8
+ "created": "2026-08-09T01:30:10Z",
9
9
  "creators": [
10
10
  "Tool: kici-sbom-generator"
11
11
  ]
@@ -54,7 +54,7 @@
54
54
  {
55
55
  "SPDXID": "SPDXRef-RootPackage",
56
56
  "name": "@kici-dev/engine",
57
- "versionInfo": "0.2.0",
57
+ "versionInfo": "0.3.0",
58
58
  "downloadLocation": "NOASSERTION",
59
59
  "filesAnalyzed": false,
60
60
  "licenseConcluded": "NOASSERTION",
@@ -65,7 +65,7 @@
65
65
  {
66
66
  "referenceCategory": "PACKAGE-MANAGER",
67
67
  "referenceType": "purl",
68
- "referenceLocator": "pkg:npm/%40kici-dev/engine@0.2.0"
68
+ "referenceLocator": "pkg:npm/%40kici-dev/engine@0.3.0"
69
69
  }
70
70
  ],
71
71
  "description": "Shared business logic for the KiCI CI/CD stack: protocol, triggers, state machine, and provider interfaces used by the Platform relay, orchestrator, and compiler.",