@kici-dev/orchestrator 0.1.21 → 0.1.22

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 (44) hide show
  1. package/dist/agent/dispatcher.d.ts +44 -0
  2. package/dist/agent/host-roster-reaper.d.ts +2 -1
  3. package/dist/agent/host-roster.d.ts +18 -0
  4. package/dist/approvals/step-approval-bridge.d.ts +5 -0
  5. package/dist/cli/commands/source-manifest.d.ts +8 -0
  6. package/dist/cli/service/compose.d.ts +13 -0
  7. package/dist/cli/service/deploy-env.d.ts +31 -0
  8. package/dist/cli.js +515 -209
  9. package/dist/config.d.ts +6 -0
  10. package/dist/dashboard/needs-edges.d.ts +4 -3
  11. package/dist/db/migrations/047_needs_run_on.d.ts +4 -0
  12. package/dist/db/migrations/048_host_reboot_pending.d.ts +19 -0
  13. package/dist/db/migrations/049_held_runs_payload.d.ts +14 -0
  14. package/dist/db/migrations/050_sources_slug.d.ts +17 -0
  15. package/dist/db/types.d.ts +27 -4
  16. package/dist/deployment/deployment-identity.d.ts +9 -0
  17. package/dist/entry-helpers.d.ts +7 -0
  18. package/dist/environments/held-runs.d.ts +7 -1
  19. package/dist/github-app-name-refresher/github-app-name-refresher.d.ts +77 -0
  20. package/dist/index.js +21 -2
  21. package/dist/orchestrator-core.d.ts +13 -1
  22. package/dist/pipeline/decorating-secret-resolver.d.ts +32 -0
  23. package/dist/pipeline/dispatch-matched-workflow.d.ts +75 -3
  24. package/dist/pipeline/install-secrets-resolver.d.ts +2 -2
  25. package/dist/pipeline/needs-scheduler.d.ts +22 -13
  26. package/dist/pipeline/processor.d.ts +2 -2
  27. package/dist/pipeline/test-pipeline.d.ts +31 -59
  28. package/dist/providers/github/manifest.d.ts +25 -0
  29. package/dist/routes/admin-sources.d.ts +7 -0
  30. package/dist/secrets/secret-resolver.d.ts +16 -1
  31. package/dist/server.js +2728 -1725
  32. package/dist/sources/source-store.d.ts +4 -0
  33. package/dist/sources/source-validator.d.ts +2 -0
  34. package/dist/stale-detector/reboot-deadline-sweep.d.ts +29 -0
  35. package/dist/standalone.js +1307 -677
  36. package/dist/ws/agent-handler.d.ts +11 -6
  37. package/dist/ws/dashboard-fleet-handler.d.ts +33 -0
  38. package/dist/ws/dashboard-fleet-write-handler.d.ts +60 -0
  39. package/dist/ws/fleet-runs-on-all.d.ts +16 -0
  40. package/dist/ws/platform-client.d.ts +13 -1
  41. package/dist/ws/test-relay-handlers.d.ts +4 -2
  42. package/installer-image-digests.json +3 -3
  43. package/package.json +4 -4
  44. package/sbom.spdx.json +50 -50
@@ -227,12 +227,13 @@ export interface AgentWsHandlerDeps {
227
227
  reason?: string;
228
228
  }>;
229
229
  /**
230
- * Optional callback when an agent blocks a `requireApproval` step. The server
231
- * creates a step-scoped hold from the carried clauses and returns a promise
232
- * that resolves when the hold is approved, rejected, or expired. The handler
233
- * relays the resolution back to the originating agent as a
234
- * `step.approval-resolved` message. The `agentId` lets the server drop the
235
- * pending resolver when the agent disconnects.
230
+ * Optional callback when an agent blocks an `approval` step. The server
231
+ * creates a step-scoped hold from the carried clauses (and the drift
232
+ * `payload` for a `when: 'drift'` gate) and returns a promise that resolves
233
+ * when the hold is approved, rejected, or expired. The handler relays the
234
+ * resolution back to the originating agent as a `step.approval-resolved`
235
+ * message. The `agentId` lets the server drop the pending resolver when the
236
+ * agent disconnects.
236
237
  */
237
238
  onStepApproval?: (agentId: string, msg: {
238
239
  runId: string;
@@ -246,6 +247,10 @@ export interface AgentWsHandlerDeps {
246
247
  }>;
247
248
  reason: string;
248
249
  timeoutSeconds?: number;
250
+ payload?: {
251
+ summaryMarkdown: string;
252
+ drift: unknown;
253
+ };
249
254
  }) => Promise<{
250
255
  outcome: 'approved' | 'rejected' | 'expired';
251
256
  reason?: string;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Orchestrator-side handlers for the fleet-management read path (P2).
3
+ *
4
+ * Each handler answers one Platform->orchestrator read-relay request from
5
+ * `HostRosterStore`, returning the canonical `HostInventoryEntry` shape on the
6
+ * wire. The handlers are pure (they take their dependencies as arguments) so
7
+ * the WS wiring in `server.ts` stays a thin adapter and the logic is unit
8
+ * testable without a live DB / Platform connection.
9
+ */
10
+ import type { Kysely } from 'kysely';
11
+ import type { Database } from '../db/types.js';
12
+ import { HostRosterStore } from '../agent/host-roster.js';
13
+ import type { DashboardFleetHostsResponse, DashboardFleetHostResponse, DashboardFleetPreviewResponse, LabelMatcher, OnUnreachableMode } from '@kici-dev/engine';
14
+ /** A workflow's resolved runsOnAll predicate, or null when it has none. */
15
+ export interface ResolvedRunsOnAll {
16
+ include: readonly (readonly LabelMatcher[])[];
17
+ exclude: readonly LabelMatcher[];
18
+ onUnreachable: OnUnreachableMode;
19
+ }
20
+ export interface FleetHandlerDeps {
21
+ db: Kysely<Database>;
22
+ rosterStore: HostRosterStore;
23
+ rosterGraceMs: number;
24
+ /** Resolve a workflow's runsOnAll predicate + onUnreachable, or null. */
25
+ resolveRunsOnAll: (workflowName: string) => Promise<ResolvedRunsOnAll | null>;
26
+ }
27
+ /** Roster: every declared/live host as a `HostInventoryEntry`. */
28
+ export declare function handleFleetHostsRequest(deps: FleetHandlerDeps, requestId: string): Promise<DashboardFleetHostsResponse>;
29
+ /** Host detail: one host (or null) plus its most-recent pinned runs. */
30
+ export declare function handleFleetHostRequest(deps: FleetHandlerDeps, requestId: string, agentId: string): Promise<DashboardFleetHostResponse>;
31
+ /** runsOnAll preview: matched hosts + the fan-out policy + estimated child count. */
32
+ export declare function handleFleetPreviewRequest(deps: FleetHandlerDeps, requestId: string, workflowName: string): Promise<DashboardFleetPreviewResponse>;
33
+ //# sourceMappingURL=dashboard-fleet-handler.d.ts.map
@@ -0,0 +1,60 @@
1
+ import type { FleetHostDeclareRequest, FleetHostRemoveRequest } from '@kici-dev/engine';
2
+ import type { Kysely } from 'kysely';
3
+ import type { Database } from '../db/types.js';
4
+ import type { HostRosterStore } from '../agent/host-roster.js';
5
+ import type { AccessLogWriter } from '../audit/access-log.js';
6
+ interface DashboardFleetWriteHandlerDeps {
7
+ /** Send a response message back to Platform over the WS connection. */
8
+ send: (msg: unknown) => void;
9
+ /** The orchestrator host roster store (declare / remove). */
10
+ rosterStore: HostRosterStore;
11
+ /** Database — required for dashboard-write policy lookups. */
12
+ db: Kysely<Database>;
13
+ /** Access log writer — records one row per mutation with actor attribution. */
14
+ accessLog?: AccessLogWriter;
15
+ /** Org ID for access_log rows (null when the orchestrator isn't org-scoped). */
16
+ orgId?: string | null;
17
+ /** Routing key for access_log rows (null when not run-scoped). */
18
+ routingKey?: string | null;
19
+ }
20
+ /** Messages this handler owns. */
21
+ type FleetWriteMessage = FleetHostDeclareRequest | FleetHostRemoveRequest;
22
+ /**
23
+ * Handler for the fleet host-write WS messages. Dispatches by type and calls
24
+ * the host roster store behind the dashboard-write policy gate.
25
+ */
26
+ export declare class DashboardFleetWriteHandler {
27
+ private readonly deps;
28
+ private orgId;
29
+ private routingKey;
30
+ private readonly accessLog;
31
+ constructor(deps: DashboardFleetWriteHandlerDeps);
32
+ /**
33
+ * Update the bound orgId + routingKey. Called from server.ts after resolving
34
+ * the single tenant org from the `sources` / `generic_webhook_sources` table.
35
+ */
36
+ setOrgContext(orgId: string | null, routingKey: string | null): void;
37
+ /**
38
+ * Defense-in-depth dashboard-write policy gate. Returns true when the
39
+ * operation is allowed and the caller should proceed. Returns false when the
40
+ * policy is disabled — also records a `denied` access_log row and emits a
41
+ * structured `operation_disabled` envelope on the WS.
42
+ *
43
+ * Fails open when no org is bound — the orch hasn't resolved a customer yet.
44
+ */
45
+ private enforcePolicy;
46
+ /**
47
+ * Write an access_log row for a handler invocation. Best-effort; the writer
48
+ * swallows failures.
49
+ */
50
+ private recordAccess;
51
+ /**
52
+ * Route a fleet host-write message to the appropriate handler. Returns true
53
+ * if the message was handled, false otherwise.
54
+ */
55
+ handleMessage(msg: FleetWriteMessage): Promise<boolean>;
56
+ private handleDeclare;
57
+ private handleRemove;
58
+ }
59
+ export {};
60
+ //# sourceMappingURL=dashboard-fleet-write-handler.d.ts.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Resolve a workflow's `runsOnAll` host-fan-out predicate from the orchestrator's
3
+ * persisted registrations, for the fleet runsOnAll-preview read path.
4
+ *
5
+ * The orchestrator stores each registered workflow's full lock entry in
6
+ * `workflow_registrations.lock_entry` (JSON). This reader parses that entry,
7
+ * finds the first static job carrying a `runsOnAll` predicate, and returns its
8
+ * `{ include, exclude, onUnreachable }` — or null when no registered workflow of
9
+ * that name declares a host fan-out.
10
+ */
11
+ import type { Kysely } from 'kysely';
12
+ import type { Database } from '../db/types.js';
13
+ import type { ResolvedRunsOnAll } from './dashboard-fleet-handler.js';
14
+ /** Find the resolved runsOnAll predicate for a workflow by name, or null. */
15
+ export declare function resolveWorkflowRunsOnAll(db: Kysely<Database>, workflowName: string): Promise<ResolvedRunsOnAll | null>;
16
+ //# sourceMappingURL=fleet-runs-on-all.d.ts.map
@@ -1,4 +1,4 @@
1
- import { type OrchestratorToPlatformMessage, type WebhookRelay, type WebhookRelayResult, type TrustPolicyUpdate, type StaleCheckrunCleanup, type DashboardRunDetailRequest, type DashboardRunsListRequest, type DashboardRunsFiltersRequest, type DashboardSourcesListRequest, type DashboardStepLogsRequest, type DashboardAttestationsListRequest, type DashboardOrchLogsRequest, type RunRerunRequest, type ManualScheduleRequest, type RunCancelRequest, type DashboardPayloadRequest, type DashboardPlatformToOrchMessage, type TestRelayRequest, type DashboardDiagnosticsRequest, type DashboardScalerCapacityRequest, type DashboardScalerAgentsRequest, type JoinRequest, type JoinResponse, type OrchCapabilities, type OrchRole } from '@kici-dev/engine';
1
+ import { type OrchestratorToPlatformMessage, type WebhookRelay, type WebhookRelayResult, type TrustPolicyUpdate, type StaleCheckrunCleanup, type DashboardRunDetailRequest, type DashboardRunsListRequest, type DashboardRunsFiltersRequest, type DashboardSourcesListRequest, type DashboardStepLogsRequest, type DashboardAttestationsListRequest, type DashboardOrchLogsRequest, type RunRerunRequest, type ManualScheduleRequest, type RunCancelRequest, type DashboardPayloadRequest, type DashboardPlatformToOrchMessage, type TestRelayRequest, type DashboardDiagnosticsRequest, type DashboardScalerCapacityRequest, type DashboardScalerAgentsRequest, type DashboardFleetHostsRequest, type DashboardFleetHostRequest, type DashboardFleetPreviewRequest, type JoinRequest, type JoinResponse, type DeploymentIdentity, type OrchCapabilities, type OrchRole } from '@kici-dev/engine';
2
2
  import { RelayBufferRegistry, type RelayStartMeta } from '../webhook/relay-buffer.js';
3
3
  /**
4
4
  * Verification + processing outcome returned by the chunked relay path's
@@ -58,6 +58,8 @@ export interface PlatformClientOptions {
58
58
  mode?: string;
59
59
  /** Scaler backends configured (e.g. ["container", "firecracker"]). Sent in source.register for diagnostics. */
60
60
  scalerBackends?: string[];
61
+ /** How the orchestrator process was deployed. Sent in source.register so the dashboard can build the correct kici-admin invocation. */
62
+ deployment?: DeploymentIdentity;
61
63
  /** Whether this orchestrator has S3 log storage configured. Sent in source.register for pool validation. */
62
64
  s3LogAccess?: boolean;
63
65
  /** Queue timeout in ms. Sent in source.register for Platform safety-net GC. */
@@ -134,6 +136,12 @@ export interface PlatformClientOptions {
134
136
  onDashboardScalerCapacity?: (msg: DashboardScalerCapacityRequest) => void;
135
137
  /** Optional callback for dashboard scaler agents requests from Platform. */
136
138
  onDashboardScalerAgents?: (msg: DashboardScalerAgentsRequest) => void;
139
+ /** Optional callback for fleet roster requests from Platform. */
140
+ onFleetHosts?: (msg: DashboardFleetHostsRequest) => void;
141
+ /** Optional callback for fleet host-detail requests from Platform. */
142
+ onFleetHost?: (msg: DashboardFleetHostRequest) => void;
143
+ /** Optional callback for fleet runsOnAll-preview requests from Platform. */
144
+ onFleetPreview?: (msg: DashboardFleetPreviewRequest) => void;
137
145
  /** Optional callback for trust policy updates pushed from Platform. */
138
146
  onTrustPolicyUpdate?: (msg: TrustPolicyUpdate) => void;
139
147
  /** Optional callback for stale check run cleanup requests from Platform. */
@@ -192,6 +200,7 @@ export declare class PlatformClient {
192
200
  private readonly version?;
193
201
  private readonly mode?;
194
202
  private readonly scalerBackends?;
203
+ private readonly deployment?;
195
204
  private readonly s3LogAccess?;
196
205
  private readonly queueTimeoutMs?;
197
206
  private readonly heartbeatIntervalMs;
@@ -216,6 +225,9 @@ export declare class PlatformClient {
216
225
  private readonly onDashboardDiagnostics?;
217
226
  private readonly onDashboardScalerCapacity?;
218
227
  private readonly onDashboardScalerAgents?;
228
+ private readonly onFleetHosts?;
229
+ private readonly onFleetHost?;
230
+ private readonly onFleetPreview?;
219
231
  private readonly onTrustPolicyUpdate?;
220
232
  private readonly onStaleCheckrunCleanup?;
221
233
  private readonly onJoinRequest?;
@@ -16,10 +16,12 @@ import type { Database } from '../db/types.js';
16
16
  import type { CacheStorage } from '../storage/types.js';
17
17
  import type { LogStorage } from '../reporting/log-storage.js';
18
18
  import type { AccessLogWriter } from '../audit/access-log.js';
19
- import { type TestPipelineDeps } from '../pipeline/test-pipeline.js';
19
+ import type { ProcessingDeps } from '../pipeline/processor.js';
20
20
  /** Dependencies shared by all five test-relay handlers. */
21
- export interface TestRelayHandlerDeps extends TestPipelineDeps {
21
+ export interface TestRelayHandlerDeps extends ProcessingDeps {
22
22
  db: Kysely<Database>;
23
+ /** Agent registry — required here: the cancel handler resolves the job's agent. */
24
+ agentRegistry: NonNullable<ProcessingDeps['agentRegistry']>;
23
25
  cacheStorage?: CacheStorage;
24
26
  logStorage?: LogStorage;
25
27
  accessLog?: AccessLogWriter;
@@ -1,7 +1,7 @@
1
1
  {
2
- "version": "0.1.21",
2
+ "version": "0.1.22",
3
3
  "images": {
4
- "kici-agent": "sha256:28896aa6665887f959765c821d0535f44e6bcaa73b3f45d21c39b6f2f9604c49",
5
- "kici-orchestrator": "sha256:d8b1b6306be8beaa973b0828e6d5ffbcb6f10b3c81b2875e37435b4bf140ecbe"
4
+ "kici-agent": "sha256:7d3b048a45f46f51b843944ce106514094f2aac428ffe3aa35d8a97b174b553f",
5
+ "kici-orchestrator": "sha256:98e3b1ef13a3d28844b48ecbfbf26b982fc6fe12292cf138959721c08b48eabe"
6
6
  }
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kici-dev/orchestrator",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "Customer-deployable orchestrator for the KiCI CI/CD stack. Receives webhook events (direct or via Platform relay), matches triggers against the lock file, and dispatches jobs to connected agents.",
5
5
  "keywords": [
6
6
  "ci",
@@ -86,8 +86,8 @@
86
86
  "ws": "^8.21.0",
87
87
  "yaml": "^2.9.0",
88
88
  "zod": "^4.4.3",
89
- "@kici-dev/engine": "0.1.21",
90
- "@kici-dev/shared": "0.1.21"
89
+ "@kici-dev/engine": "0.1.22",
90
+ "@kici-dev/shared": "0.1.22"
91
91
  },
92
92
  "kici": {
93
93
  "metrics": {
@@ -101,7 +101,7 @@
101
101
  "@types/archiver": "^8.0.0",
102
102
  "@types/dockerode": "^4.0.1",
103
103
  "kysely-ctl": "^0.21.0",
104
- "@kici-dev/agent": "0.1.21"
104
+ "@kici-dev/agent": "0.1.22"
105
105
  },
106
106
  "scripts": {
107
107
  "build": "node ../../scripts/build-service.mjs && tsc --emitDeclarationOnly",
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/orchestrator@0.1.21",
6
- "documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Forchestrator/0.1.21/96906491-ff38-4e39-abbb-4865cceead57",
5
+ "name": "@kici-dev/orchestrator@0.1.22",
6
+ "documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Forchestrator/0.1.22/090cbcf4-472b-408f-9dfa-9f26a1c15df6",
7
7
  "creationInfo": {
8
- "created": "2026-06-23T05:10:27Z",
8
+ "created": "2026-06-24T06:03:19Z",
9
9
  "creators": [
10
10
  "Tool: kici-sbom-generator"
11
11
  ]
@@ -1190,9 +1190,9 @@
1190
1190
  "homepage": "https://ericsmekens.github.io/jsep/tree/master/packages/regex#readme"
1191
1191
  },
1192
1192
  {
1193
- "SPDXID": "SPDXRef-Package--kici-dev-core-0.1.21",
1193
+ "SPDXID": "SPDXRef-Package--kici-dev-core-0.1.22",
1194
1194
  "name": "@kici-dev/core",
1195
- "versionInfo": "0.1.21",
1195
+ "versionInfo": "0.1.22",
1196
1196
  "downloadLocation": "NOASSERTION",
1197
1197
  "filesAnalyzed": false,
1198
1198
  "licenseConcluded": "NOASSERTION",
@@ -1203,16 +1203,16 @@
1203
1203
  {
1204
1204
  "referenceCategory": "PACKAGE-MANAGER",
1205
1205
  "referenceType": "purl",
1206
- "referenceLocator": "pkg:npm/%40kici-dev/core@0.1.21"
1206
+ "referenceLocator": "pkg:npm/%40kici-dev/core@0.1.22"
1207
1207
  }
1208
1208
  ],
1209
1209
  "description": "Light shared utilities for the KiCI stack (logging, errors, formatting, crypto, zx init, the TypeScript ESM loader hook). No server-side dependencies.",
1210
1210
  "homepage": "https://kici.dev"
1211
1211
  },
1212
1212
  {
1213
- "SPDXID": "SPDXRef-Package--kici-dev-engine-0.1.21",
1213
+ "SPDXID": "SPDXRef-Package--kici-dev-engine-0.1.22",
1214
1214
  "name": "@kici-dev/engine",
1215
- "versionInfo": "0.1.21",
1215
+ "versionInfo": "0.1.22",
1216
1216
  "downloadLocation": "NOASSERTION",
1217
1217
  "filesAnalyzed": false,
1218
1218
  "licenseConcluded": "NOASSERTION",
@@ -1223,7 +1223,7 @@
1223
1223
  {
1224
1224
  "referenceCategory": "PACKAGE-MANAGER",
1225
1225
  "referenceType": "purl",
1226
- "referenceLocator": "pkg:npm/%40kici-dev/engine@0.1.21"
1226
+ "referenceLocator": "pkg:npm/%40kici-dev/engine@0.1.22"
1227
1227
  }
1228
1228
  ],
1229
1229
  "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.",
@@ -1232,7 +1232,7 @@
1232
1232
  {
1233
1233
  "SPDXID": "SPDXRef-RootPackage",
1234
1234
  "name": "@kici-dev/orchestrator",
1235
- "versionInfo": "0.1.21",
1235
+ "versionInfo": "0.1.22",
1236
1236
  "downloadLocation": "NOASSERTION",
1237
1237
  "filesAnalyzed": false,
1238
1238
  "licenseConcluded": "NOASSERTION",
@@ -1243,16 +1243,16 @@
1243
1243
  {
1244
1244
  "referenceCategory": "PACKAGE-MANAGER",
1245
1245
  "referenceType": "purl",
1246
- "referenceLocator": "pkg:npm/%40kici-dev/orchestrator@0.1.21"
1246
+ "referenceLocator": "pkg:npm/%40kici-dev/orchestrator@0.1.22"
1247
1247
  }
1248
1248
  ],
1249
1249
  "description": "Customer-deployable orchestrator for the KiCI CI/CD stack. Receives webhook events (direct or via Platform relay), matches triggers against the lock file, and dispatches jobs to connected agents.",
1250
1250
  "homepage": "https://kici.dev"
1251
1251
  },
1252
1252
  {
1253
- "SPDXID": "SPDXRef-Package--kici-dev-shared-0.1.21",
1253
+ "SPDXID": "SPDXRef-Package--kici-dev-shared-0.1.22",
1254
1254
  "name": "@kici-dev/shared",
1255
- "versionInfo": "0.1.21",
1255
+ "versionInfo": "0.1.22",
1256
1256
  "downloadLocation": "NOASSERTION",
1257
1257
  "filesAnalyzed": false,
1258
1258
  "licenseConcluded": "NOASSERTION",
@@ -1263,7 +1263,7 @@
1263
1263
  {
1264
1264
  "referenceCategory": "PACKAGE-MANAGER",
1265
1265
  "referenceType": "purl",
1266
- "referenceLocator": "pkg:npm/%40kici-dev/shared@0.1.21"
1266
+ "referenceLocator": "pkg:npm/%40kici-dev/shared@0.1.22"
1267
1267
  }
1268
1268
  ],
1269
1269
  "description": "Shared utilities for the KiCI CI/CD stack — logging, zx setup, crypto, telemetry, health and metrics routes. No business logic.",
@@ -8201,57 +8201,57 @@
8201
8201
  "relationshipType": "DEPENDS_ON"
8202
8202
  },
8203
8203
  {
8204
- "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.21",
8204
+ "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.22",
8205
8205
  "relatedSpdxElement": "SPDXRef-Package-oxc-transform-0.135.0",
8206
8206
  "relationshipType": "DEPENDS_ON"
8207
8207
  },
8208
8208
  {
8209
- "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.21",
8209
+ "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.22",
8210
8210
  "relatedSpdxElement": "SPDXRef-Package-picocolors-1.1.1",
8211
8211
  "relationshipType": "DEPENDS_ON"
8212
8212
  },
8213
8213
  {
8214
- "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.21",
8214
+ "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.22",
8215
8215
  "relatedSpdxElement": "SPDXRef-Package-winston-daily-rotate-file-5.0.0",
8216
8216
  "relationshipType": "DEPENDS_ON"
8217
8217
  },
8218
8218
  {
8219
- "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.21",
8219
+ "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.22",
8220
8220
  "relatedSpdxElement": "SPDXRef-Package-winston-3.19.0",
8221
8221
  "relationshipType": "DEPENDS_ON"
8222
8222
  },
8223
8223
  {
8224
- "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.21",
8224
+ "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.22",
8225
8225
  "relatedSpdxElement": "SPDXRef-Package-zod-4.4.3",
8226
8226
  "relationshipType": "DEPENDS_ON"
8227
8227
  },
8228
8228
  {
8229
- "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.21",
8229
+ "spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.22",
8230
8230
  "relatedSpdxElement": "SPDXRef-Package-zx-8.8.5",
8231
8231
  "relationshipType": "DEPENDS_ON"
8232
8232
  },
8233
8233
  {
8234
- "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.21",
8234
+ "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.22",
8235
8235
  "relatedSpdxElement": "SPDXRef-Package-jose-6.2.3",
8236
8236
  "relationshipType": "DEPENDS_ON"
8237
8237
  },
8238
8238
  {
8239
- "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.21",
8239
+ "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.22",
8240
8240
  "relatedSpdxElement": "SPDXRef-Package-jsonpath-plus-10.4.0",
8241
8241
  "relationshipType": "DEPENDS_ON"
8242
8242
  },
8243
8243
  {
8244
- "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.21",
8244
+ "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.22",
8245
8245
  "relatedSpdxElement": "SPDXRef-Package-picomatch-4.0.4",
8246
8246
  "relationshipType": "DEPENDS_ON"
8247
8247
  },
8248
8248
  {
8249
- "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.21",
8249
+ "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.22",
8250
8250
  "relatedSpdxElement": "SPDXRef-Package-safe-regex-2.1.1",
8251
8251
  "relationshipType": "DEPENDS_ON"
8252
8252
  },
8253
8253
  {
8254
- "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.21",
8254
+ "spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.22",
8255
8255
  "relatedSpdxElement": "SPDXRef-Package-zod-4.4.3",
8256
8256
  "relationshipType": "DEPENDS_ON"
8257
8257
  },
@@ -8287,12 +8287,12 @@
8287
8287
  },
8288
8288
  {
8289
8289
  "spdxElementId": "SPDXRef-RootPackage",
8290
- "relatedSpdxElement": "SPDXRef-Package--kici-dev-engine-0.1.21",
8290
+ "relatedSpdxElement": "SPDXRef-Package--kici-dev-engine-0.1.22",
8291
8291
  "relationshipType": "DEPENDS_ON"
8292
8292
  },
8293
8293
  {
8294
8294
  "spdxElementId": "SPDXRef-RootPackage",
8295
- "relatedSpdxElement": "SPDXRef-Package--kici-dev-shared-0.1.21",
8295
+ "relatedSpdxElement": "SPDXRef-Package--kici-dev-shared-0.1.22",
8296
8296
  "relationshipType": "DEPENDS_ON"
8297
8297
  },
8298
8298
  {
@@ -8396,112 +8396,112 @@
8396
8396
  "relationshipType": "DEPENDS_ON"
8397
8397
  },
8398
8398
  {
8399
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8399
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8400
8400
  "relatedSpdxElement": "SPDXRef-Package--aws-sdk-client-s3-3.1064.0",
8401
8401
  "relationshipType": "DEPENDS_ON"
8402
8402
  },
8403
8403
  {
8404
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8405
- "relatedSpdxElement": "SPDXRef-Package--kici-dev-core-0.1.21",
8404
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8405
+ "relatedSpdxElement": "SPDXRef-Package--kici-dev-core-0.1.22",
8406
8406
  "relationshipType": "DEPENDS_ON"
8407
8407
  },
8408
8408
  {
8409
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8409
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8410
8410
  "relatedSpdxElement": "SPDXRef-Package--opentelemetry-api-1.9.1",
8411
8411
  "relationshipType": "DEPENDS_ON"
8412
8412
  },
8413
8413
  {
8414
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8414
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8415
8415
  "relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-metrics-otlp-http-0.218.0",
8416
8416
  "relationshipType": "DEPENDS_ON"
8417
8417
  },
8418
8418
  {
8419
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8419
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8420
8420
  "relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-prometheus-0.218.0",
8421
8421
  "relationshipType": "DEPENDS_ON"
8422
8422
  },
8423
8423
  {
8424
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8424
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8425
8425
  "relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-trace-otlp-http-0.218.0",
8426
8426
  "relationshipType": "DEPENDS_ON"
8427
8427
  },
8428
8428
  {
8429
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8429
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8430
8430
  "relatedSpdxElement": "SPDXRef-Package--opentelemetry-instrumentation-runtime-node-0.31.0",
8431
8431
  "relationshipType": "DEPENDS_ON"
8432
8432
  },
8433
8433
  {
8434
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8434
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8435
8435
  "relatedSpdxElement": "SPDXRef-Package--opentelemetry-resources-2.7.1",
8436
8436
  "relationshipType": "DEPENDS_ON"
8437
8437
  },
8438
8438
  {
8439
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8439
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8440
8440
  "relatedSpdxElement": "SPDXRef-Package--opentelemetry-sdk-node-0.218.0",
8441
8441
  "relationshipType": "DEPENDS_ON"
8442
8442
  },
8443
8443
  {
8444
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8444
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8445
8445
  "relatedSpdxElement": "SPDXRef-Package--opentelemetry-semantic-conventions-1.41.1",
8446
8446
  "relationshipType": "DEPENDS_ON"
8447
8447
  },
8448
8448
  {
8449
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8449
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8450
8450
  "relatedSpdxElement": "SPDXRef-Package-archiver-8.0.0",
8451
8451
  "relationshipType": "DEPENDS_ON"
8452
8452
  },
8453
8453
  {
8454
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8454
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8455
8455
  "relatedSpdxElement": "SPDXRef-Package-diff-9.0.0",
8456
8456
  "relationshipType": "DEPENDS_ON"
8457
8457
  },
8458
8458
  {
8459
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8459
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8460
8460
  "relatedSpdxElement": "SPDXRef-Package-hono-4.12.25",
8461
8461
  "relationshipType": "DEPENDS_ON"
8462
8462
  },
8463
8463
  {
8464
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8464
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8465
8465
  "relatedSpdxElement": "SPDXRef-Package-kysely-0.29.2",
8466
8466
  "relationshipType": "DEPENDS_ON"
8467
8467
  },
8468
8468
  {
8469
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8469
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8470
8470
  "relatedSpdxElement": "SPDXRef-Package-oxc-transform-0.135.0",
8471
8471
  "relationshipType": "DEPENDS_ON"
8472
8472
  },
8473
8473
  {
8474
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8474
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8475
8475
  "relatedSpdxElement": "SPDXRef-Package-pg-8.21.0",
8476
8476
  "relationshipType": "DEPENDS_ON"
8477
8477
  },
8478
8478
  {
8479
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8479
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8480
8480
  "relatedSpdxElement": "SPDXRef-Package-picocolors-1.1.1",
8481
8481
  "relationshipType": "DEPENDS_ON"
8482
8482
  },
8483
8483
  {
8484
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8484
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8485
8485
  "relatedSpdxElement": "SPDXRef-Package-winston-daily-rotate-file-5.0.0",
8486
8486
  "relationshipType": "DEPENDS_ON"
8487
8487
  },
8488
8488
  {
8489
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8489
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8490
8490
  "relatedSpdxElement": "SPDXRef-Package-winston-3.19.0",
8491
8491
  "relationshipType": "DEPENDS_ON"
8492
8492
  },
8493
8493
  {
8494
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8494
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8495
8495
  "relatedSpdxElement": "SPDXRef-Package-yaml-2.9.0",
8496
8496
  "relationshipType": "DEPENDS_ON"
8497
8497
  },
8498
8498
  {
8499
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8499
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8500
8500
  "relatedSpdxElement": "SPDXRef-Package-zod-4.4.3",
8501
8501
  "relationshipType": "DEPENDS_ON"
8502
8502
  },
8503
8503
  {
8504
- "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.21",
8504
+ "spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.22",
8505
8505
  "relatedSpdxElement": "SPDXRef-Package-zx-8.8.5",
8506
8506
  "relationshipType": "DEPENDS_ON"
8507
8507
  },