@kici-dev/orchestrator 0.1.18 → 0.1.19
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/cli.js +3 -1
- package/dist/server.js +96 -39
- package/dist/standalone.js +64 -31
- package/installer-image-digests.json +3 -3
- package/package.json +4 -4
- package/sbom.spdx.json +50 -50
package/dist/cli.js
CHANGED
|
@@ -15096,7 +15096,9 @@ function renderBootScript(cfg) {
|
|
|
15096
15096
|
"#!/usr/bin/env bash",
|
|
15097
15097
|
`# Generated by kici-admin firecracker --persist for bridge ${cfg.bridgeName}. Do not hand-edit.`,
|
|
15098
15098
|
"set -euo pipefail",
|
|
15099
|
-
`
|
|
15099
|
+
`cat > ${NM_CONF_PATH} <<'KICI_NM_EOF' || true`,
|
|
15100
|
+
NM_CONF_CONTENT.replace(/\n$/, ""),
|
|
15101
|
+
"KICI_NM_EOF",
|
|
15100
15102
|
"HOST_IFACE=$(ip -j route show default | sed -n 's/.*\"dev\":\"\\([^\"]*\\)\".*/\\1/p' | head -1)",
|
|
15101
15103
|
"if [ -z \"$HOST_IFACE\" ]; then echo \"no default-route iface\" >&2; exit 1; fi",
|
|
15102
15104
|
...lines,
|
package/dist/server.js
CHANGED
|
@@ -8937,16 +8937,25 @@ async function cancelRunWithReason(deps, runId, reason, options = {}) {
|
|
|
8937
8937
|
const agentId = dispatcher.getAgentIdForJob(jobId);
|
|
8938
8938
|
if (!agentId) continue;
|
|
8939
8939
|
const entry = registry.get(agentId);
|
|
8940
|
-
if (
|
|
8941
|
-
|
|
8942
|
-
|
|
8943
|
-
|
|
8944
|
-
|
|
8945
|
-
|
|
8946
|
-
|
|
8947
|
-
|
|
8948
|
-
|
|
8949
|
-
|
|
8940
|
+
if (entry?.ws?.readyState !== 1) continue;
|
|
8941
|
+
try {
|
|
8942
|
+
entry.ws.send(JSON.stringify({
|
|
8943
|
+
type: "job.cancel",
|
|
8944
|
+
messageId: randomUUID(),
|
|
8945
|
+
runId,
|
|
8946
|
+
jobId,
|
|
8947
|
+
reason,
|
|
8948
|
+
...force && { force: true }
|
|
8949
|
+
}));
|
|
8950
|
+
agentsNotified++;
|
|
8951
|
+
} catch (err) {
|
|
8952
|
+
logger$88.warn("Failed to send job.cancel to agent; treating job as orphaned", {
|
|
8953
|
+
runId,
|
|
8954
|
+
jobId,
|
|
8955
|
+
agentId,
|
|
8956
|
+
error: err instanceof Error ? err.message : String(err)
|
|
8957
|
+
});
|
|
8958
|
+
}
|
|
8950
8959
|
}
|
|
8951
8960
|
const pendingResult = await db.updateTable("execution_jobs").set({
|
|
8952
8961
|
status: ExecutionJobStatus.enum.cancelled,
|
|
@@ -19383,6 +19392,21 @@ var init_admin_runs = __esmMin((() => {
|
|
|
19383
19392
|
}));
|
|
19384
19393
|
//#endregion
|
|
19385
19394
|
//#region src/cold-store/load-event-log-range.ts
|
|
19395
|
+
/**
|
|
19396
|
+
* Read-through helper for `event_log` (Orchestrator) — Phase E.
|
|
19397
|
+
*
|
|
19398
|
+
* Mirrors the Platform-side `load-event-log-range.ts`. Tenant column is
|
|
19399
|
+
* `routing_key` (NOT NULL on this side) so cold-store partitioning
|
|
19400
|
+
* doesn't need a synthetic-tenant fallback. Partition column is
|
|
19401
|
+
* `received_at`.
|
|
19402
|
+
*
|
|
19403
|
+
* The orchestrator's `event_log` row carries the `payload_key` reference
|
|
19404
|
+
* (an S3 object that holds the gzipped webhook body). Cold-store
|
|
19405
|
+
* archives the row metadata and preserves `payload_key` verbatim — the
|
|
19406
|
+
* payload blob itself stays in object storage indefinitely so the
|
|
19407
|
+
* dashboard's payload-detail view continues to resolve archived
|
|
19408
|
+
* deliveries identically to hot ones.
|
|
19409
|
+
*/
|
|
19386
19410
|
async function loadEventLogRange(args) {
|
|
19387
19411
|
const { db, coldStore, routingKey, orgId, event, action, status, deliveryId, fromTs, toTs, limit, offset, includeArchived } = args;
|
|
19388
19412
|
const warmCutoff = /* @__PURE__ */ new Date(Date.now() - EVENT_LOG_WARM_TTL_DAYS * 864e5);
|
|
@@ -19400,6 +19424,16 @@ async function loadEventLogRange(args) {
|
|
|
19400
19424
|
if (coldFromTs >= warmCutoff) return hotRows;
|
|
19401
19425
|
const remaining = limit - hotRows.length;
|
|
19402
19426
|
if (remaining <= 0) return hotRows;
|
|
19427
|
+
let hotCountQuery = db.selectFrom("event_log").select(sql`count(*)::text`.as("n")).where("routing_key", "=", routingKey);
|
|
19428
|
+
if (orgId) hotCountQuery = hotCountQuery.where("org_id", "=", orgId);
|
|
19429
|
+
if (event) hotCountQuery = hotCountQuery.where("event", "=", event);
|
|
19430
|
+
if (action) hotCountQuery = hotCountQuery.where("action", "=", action);
|
|
19431
|
+
if (status) hotCountQuery = hotCountQuery.where("status", "=", status);
|
|
19432
|
+
if (deliveryId) hotCountQuery = hotCountQuery.where("delivery_id", "like", `%${deliveryId}%`);
|
|
19433
|
+
if (fromTs) hotCountQuery = hotCountQuery.where("received_at", ">=", fromTs);
|
|
19434
|
+
if (toTs) hotCountQuery = hotCountQuery.where("received_at", "<", toTs);
|
|
19435
|
+
const hotCount = Number((await hotCountQuery.executeTakeFirst())?.n ?? "0");
|
|
19436
|
+
const coldOffset = Math.max(0, offset - hotCount);
|
|
19403
19437
|
const coldToTs = toTs && toTs < warmCutoff ? toTs : warmCutoff;
|
|
19404
19438
|
const coldRows = [];
|
|
19405
19439
|
try {
|
|
@@ -19416,7 +19450,6 @@ async function loadEventLogRange(args) {
|
|
|
19416
19450
|
if (status !== void 0 && row.status !== status) continue;
|
|
19417
19451
|
if (deliveryId !== void 0 && !row.delivery_id.includes(deliveryId)) continue;
|
|
19418
19452
|
coldRows.push(row);
|
|
19419
|
-
if (coldRows.length >= remaining) break;
|
|
19420
19453
|
}
|
|
19421
19454
|
} catch (err) {
|
|
19422
19455
|
if (hotRows.length === 0) {
|
|
@@ -19436,7 +19469,7 @@ async function loadEventLogRange(args) {
|
|
|
19436
19469
|
const at = a.received_at instanceof Date ? a.received_at.getTime() : new Date(a.received_at).getTime();
|
|
19437
19470
|
return (b.received_at instanceof Date ? b.received_at.getTime() : new Date(b.received_at).getTime()) - at;
|
|
19438
19471
|
});
|
|
19439
|
-
return [...hotRows, ...coldRows.slice(
|
|
19472
|
+
return [...hotRows, ...coldRows.slice(coldOffset, coldOffset + remaining)];
|
|
19440
19473
|
}
|
|
19441
19474
|
/**
|
|
19442
19475
|
* Detail lookup by `(orgId, deliveryId)`. The dashboard handler joins
|
|
@@ -20597,14 +20630,14 @@ var init_admin_config = __esmMin((() => {
|
|
|
20597
20630
|
function createHealthRoutes$1(deps = {}) {
|
|
20598
20631
|
return createHealthRoutes({
|
|
20599
20632
|
livenessInfo: () => ({
|
|
20600
|
-
version: "0.1.
|
|
20601
|
-
buildDate: "2026-06-
|
|
20602
|
-
buildCommit: "
|
|
20603
|
-
sdkVersion: "0.1.
|
|
20633
|
+
version: "0.1.19",
|
|
20634
|
+
buildDate: "2026-06-19T04:32:44.899Z",
|
|
20635
|
+
buildCommit: "1590f5e99",
|
|
20636
|
+
sdkVersion: "0.1.19",
|
|
20604
20637
|
sdkBundleHash: "8308089347c304e41b457d3867b17bbff11d6b5cd9706b6823e7abdbd849f33f",
|
|
20605
|
-
sharedVersion: "0.1.
|
|
20638
|
+
sharedVersion: "0.1.19",
|
|
20606
20639
|
sharedBundleHash: "5f2c220f24d166b0f13d0620a2e80d19689ac8b683a12154daef44e938fd46a7",
|
|
20607
|
-
engineVersion: "0.1.
|
|
20640
|
+
engineVersion: "0.1.19",
|
|
20608
20641
|
engineBundleHash: "79ce14640d1798eaaa7cb3aa6c4bc325da3bff1e9f4716936e19614eabb1d858"
|
|
20609
20642
|
}),
|
|
20610
20643
|
readinessCheck: deps.db ? async () => {
|
|
@@ -20639,7 +20672,7 @@ function createCapabilitiesRoutes() {
|
|
|
20639
20672
|
const app = new Hono();
|
|
20640
20673
|
app.get("/api/v1/capabilities", (c) => {
|
|
20641
20674
|
const manifest = {
|
|
20642
|
-
orchestratorVersion: "0.1.
|
|
20675
|
+
orchestratorVersion: "0.1.19",
|
|
20643
20676
|
protocolVersion: PROTOCOL_VERSION,
|
|
20644
20677
|
minProtocolVersion: MIN_PROTOCOL_VERSION
|
|
20645
20678
|
};
|
|
@@ -32495,7 +32528,7 @@ var init_peer_client = __esmMin((() => {
|
|
|
32495
32528
|
init_peer_crypto();
|
|
32496
32529
|
init_peer_credentials();
|
|
32497
32530
|
logger$42 = createLogger({ prefix: "peer-client" });
|
|
32498
|
-
SOFTWARE_VERSION$1 = "0.1.
|
|
32531
|
+
SOFTWARE_VERSION$1 = "0.1.19";
|
|
32499
32532
|
PeerClient$1 = class {
|
|
32500
32533
|
ws = null;
|
|
32501
32534
|
_state = "disconnected";
|
|
@@ -34021,7 +34054,7 @@ var init_peer_handler = __esmMin((() => {
|
|
|
34021
34054
|
init_peer_crypto();
|
|
34022
34055
|
init_join_token();
|
|
34023
34056
|
logger$41 = createLogger({ prefix: "peer-handler" });
|
|
34024
|
-
SOFTWARE_VERSION = "0.1.
|
|
34057
|
+
SOFTWARE_VERSION = "0.1.19";
|
|
34025
34058
|
RATE_LIMIT_MAX = 5;
|
|
34026
34059
|
RATE_LIMIT_WINDOW_MS = 6e4;
|
|
34027
34060
|
}));
|
|
@@ -49069,12 +49102,16 @@ async function resolveTestRunSecrets(input, deps, orgId, jobEnvironment) {
|
|
|
49069
49102
|
}
|
|
49070
49103
|
function buildJobInput(workflow, mat, ctx, input, secretBundle, fields, environmentVars) {
|
|
49071
49104
|
const staticJob = mat.lockJob;
|
|
49072
|
-
const
|
|
49105
|
+
const runsOnSel = partitionMatchers(staticJob.runsOn ?? []);
|
|
49106
|
+
const excludeSel = partitionMatchers(staticJob.excludeLabels ?? []);
|
|
49073
49107
|
return {
|
|
49074
49108
|
runId: ctx.runId,
|
|
49075
49109
|
workflowName: workflow.name,
|
|
49076
49110
|
jobName: mat.expandedName,
|
|
49077
|
-
runsOnLabels,
|
|
49111
|
+
runsOnLabels: runsOnSel.exact,
|
|
49112
|
+
runsOnPatterns: runsOnSel.regex,
|
|
49113
|
+
excludeLabels: excludeSel.exact,
|
|
49114
|
+
excludePatterns: excludeSel.regex,
|
|
49078
49115
|
jobConfig: {
|
|
49079
49116
|
source: workflow.source ?? ctx.fullLockFile.source,
|
|
49080
49117
|
workflowName: workflow.name,
|
|
@@ -56132,9 +56169,14 @@ async function dispatchRerunJobs(opts) {
|
|
|
56132
56169
|
if (deps.coordinator && materializedJobs.length > 0) {
|
|
56133
56170
|
const jobsToRoute = materializedJobs.map((mat) => {
|
|
56134
56171
|
const job = mat.lockJob;
|
|
56172
|
+
const runsOnSel = partitionMatchers(job.runsOn ?? []);
|
|
56173
|
+
const excludeSel = partitionMatchers(job.excludeLabels ?? []);
|
|
56135
56174
|
return {
|
|
56136
56175
|
jobName: mat.expandedName,
|
|
56137
|
-
runsOnLabels: [
|
|
56176
|
+
runsOnLabels: [runsOnSel.exact],
|
|
56177
|
+
runsOnPatterns: runsOnSel.regex,
|
|
56178
|
+
excludeLabels: excludeSel.exact,
|
|
56179
|
+
excludePatterns: excludeSel.regex,
|
|
56138
56180
|
jobConfig: buildRerunJobConfig(mat),
|
|
56139
56181
|
repoUrl,
|
|
56140
56182
|
ref: originalRun.ref,
|
|
@@ -56169,7 +56211,7 @@ async function dispatchRerunJobs(opts) {
|
|
|
56169
56211
|
for (const local of routeResult.localJobs) {
|
|
56170
56212
|
const runsOnLabels = (() => {
|
|
56171
56213
|
const job = materializedJobs.find((m) => m.expandedName === local.jobName)?.lockJob;
|
|
56172
|
-
return job ?
|
|
56214
|
+
return job ? partitionMatchers(job.runsOn ?? []).exact : void 0;
|
|
56173
56215
|
})();
|
|
56174
56216
|
const matrixValues = matrixByName.get(local.jobName);
|
|
56175
56217
|
dispatchedJobs.push({
|
|
@@ -56196,12 +56238,17 @@ async function dispatchRerunJobs(opts) {
|
|
|
56196
56238
|
if (!routedViaCoordinator) for (const mat of materializedJobs) {
|
|
56197
56239
|
const job = mat.lockJob;
|
|
56198
56240
|
const matrixValues = mat.variantValues;
|
|
56199
|
-
const
|
|
56241
|
+
const runsOnSel = partitionMatchers(job.runsOn ?? []);
|
|
56242
|
+
const excludeSel = partitionMatchers(job.excludeLabels ?? []);
|
|
56243
|
+
const runsOnLabels = runsOnSel.exact;
|
|
56200
56244
|
const jobInput = {
|
|
56201
56245
|
runId: newRunId,
|
|
56202
56246
|
workflowName: workflow.name,
|
|
56203
56247
|
jobName: mat.expandedName,
|
|
56204
56248
|
runsOnLabels,
|
|
56249
|
+
runsOnPatterns: runsOnSel.regex,
|
|
56250
|
+
excludeLabels: excludeSel.exact,
|
|
56251
|
+
excludePatterns: excludeSel.regex,
|
|
56205
56252
|
jobConfig: buildRerunJobConfig(mat),
|
|
56206
56253
|
repoUrl,
|
|
56207
56254
|
ref: originalRun.ref,
|
|
@@ -56415,9 +56462,14 @@ async function tryRouteViaCoordinator(args) {
|
|
|
56415
56462
|
const installationId = typeof registration.providerContext.installationId === "number" ? registration.providerContext.installationId : void 0;
|
|
56416
56463
|
const jobsToRoute = materializedJobs.map((mat) => {
|
|
56417
56464
|
const job = mat.lockJob;
|
|
56465
|
+
const runsOnSel = partitionMatchers(job.runsOn ?? []);
|
|
56466
|
+
const excludeSel = partitionMatchers(job.excludeLabels ?? []);
|
|
56418
56467
|
return {
|
|
56419
56468
|
jobName: mat.expandedName,
|
|
56420
|
-
runsOnLabels: [
|
|
56469
|
+
runsOnLabels: [runsOnSel.exact],
|
|
56470
|
+
runsOnPatterns: runsOnSel.regex,
|
|
56471
|
+
excludeLabels: excludeSel.exact,
|
|
56472
|
+
excludePatterns: excludeSel.regex,
|
|
56421
56473
|
jobConfig: buildManualJobConfig(workflow, mat),
|
|
56422
56474
|
repoUrl,
|
|
56423
56475
|
ref: "",
|
|
@@ -56450,7 +56502,7 @@ async function tryRouteViaCoordinator(args) {
|
|
|
56450
56502
|
if (!routeResult) return null;
|
|
56451
56503
|
const dispatchedJobs = routeResult.localJobs.map((local) => {
|
|
56452
56504
|
const job = materializedJobs.find((m) => m.expandedName === local.jobName)?.lockJob;
|
|
56453
|
-
const runsOnLabels = job ?
|
|
56505
|
+
const runsOnLabels = job ? partitionMatchers(job.runsOn ?? []).exact : void 0;
|
|
56454
56506
|
const matrixValues = matrixByName.get(local.jobName);
|
|
56455
56507
|
return {
|
|
56456
56508
|
jobId: local.jobId,
|
|
@@ -56483,12 +56535,17 @@ async function dispatchDirectly(args) {
|
|
|
56483
56535
|
for (const mat of materializedJobs) {
|
|
56484
56536
|
const job = mat.lockJob;
|
|
56485
56537
|
const matrixValues = mat.variantValues;
|
|
56486
|
-
const
|
|
56538
|
+
const runsOnSel = partitionMatchers(job.runsOn ?? []);
|
|
56539
|
+
const excludeSel = partitionMatchers(job.excludeLabels ?? []);
|
|
56540
|
+
const runsOnLabels = runsOnSel.exact;
|
|
56487
56541
|
const jobInput = {
|
|
56488
56542
|
runId: newRunId,
|
|
56489
56543
|
workflowName: workflow.name,
|
|
56490
56544
|
jobName: mat.expandedName,
|
|
56491
56545
|
runsOnLabels,
|
|
56546
|
+
runsOnPatterns: runsOnSel.regex,
|
|
56547
|
+
excludeLabels: excludeSel.exact,
|
|
56548
|
+
excludePatterns: excludeSel.regex,
|
|
56492
56549
|
jobConfig: buildManualJobConfig(workflow, mat),
|
|
56493
56550
|
repoUrl,
|
|
56494
56551
|
ref: "",
|
|
@@ -58212,13 +58269,13 @@ var init_worker_core = __esmMin((() => {
|
|
|
58212
58269
|
init_fleet_wiring();
|
|
58213
58270
|
init_worker_status();
|
|
58214
58271
|
init_agent_heartbeat();
|
|
58215
|
-
ORCHESTRATOR_VERSION$1 = "0.1.
|
|
58216
|
-
WORKER_BUILD_COMMIT = "
|
|
58217
|
-
WORKER_SDK_VERSION = "0.1.
|
|
58272
|
+
ORCHESTRATOR_VERSION$1 = "0.1.19";
|
|
58273
|
+
WORKER_BUILD_COMMIT = "1590f5e99";
|
|
58274
|
+
WORKER_SDK_VERSION = "0.1.19";
|
|
58218
58275
|
WORKER_SDK_BUNDLE_HASH = "8308089347c304e41b457d3867b17bbff11d6b5cd9706b6823e7abdbd849f33f";
|
|
58219
|
-
WORKER_SHARED_VERSION = "0.1.
|
|
58276
|
+
WORKER_SHARED_VERSION = "0.1.19";
|
|
58220
58277
|
WORKER_SHARED_BUNDLE_HASH = "5f2c220f24d166b0f13d0620a2e80d19689ac8b683a12154daef44e938fd46a7";
|
|
58221
|
-
WORKER_ENGINE_VERSION = "0.1.
|
|
58278
|
+
WORKER_ENGINE_VERSION = "0.1.19";
|
|
58222
58279
|
WORKER_ENGINE_BUNDLE_HASH = "79ce14640d1798eaaa7cb3aa6c4bc325da3bff1e9f4716936e19614eabb1d858";
|
|
58223
58280
|
logger$2 = createLogger({ prefix: "worker" });
|
|
58224
58281
|
DRAIN_TIMEOUT_MS = 3e5;
|
|
@@ -58240,13 +58297,13 @@ var init_worker_core = __esmMin((() => {
|
|
|
58240
58297
|
* Graceful shutdown in reverse order:
|
|
58241
58298
|
* Platform client -> agent WS -> heartbeat -> HTTP -> DB
|
|
58242
58299
|
*/
|
|
58243
|
-
const ORCHESTRATOR_VERSION = "0.1.
|
|
58244
|
-
const BUILD_COMMIT = "
|
|
58245
|
-
const SDK_VERSION = "0.1.
|
|
58300
|
+
const ORCHESTRATOR_VERSION = "0.1.19";
|
|
58301
|
+
const BUILD_COMMIT = "1590f5e99";
|
|
58302
|
+
const SDK_VERSION = "0.1.19";
|
|
58246
58303
|
const SDK_BUNDLE_HASH = "8308089347c304e41b457d3867b17bbff11d6b5cd9706b6823e7abdbd849f33f";
|
|
58247
|
-
const SHARED_VERSION = "0.1.
|
|
58304
|
+
const SHARED_VERSION = "0.1.19";
|
|
58248
58305
|
const SHARED_BUNDLE_HASH = "5f2c220f24d166b0f13d0620a2e80d19689ac8b683a12154daef44e938fd46a7";
|
|
58249
|
-
const ENGINE_VERSION = "0.1.
|
|
58306
|
+
const ENGINE_VERSION = "0.1.19";
|
|
58250
58307
|
const ENGINE_BUNDLE_HASH = "79ce14640d1798eaaa7cb3aa6c4bc325da3bff1e9f4716936e19614eabb1d858";
|
|
58251
58308
|
const otelSdk = initTelemetry({
|
|
58252
58309
|
serviceName: "kici-orchestrator",
|
package/dist/standalone.js
CHANGED
|
@@ -1065,7 +1065,7 @@ var init_peer_client = __esmMin((() => {
|
|
|
1065
1065
|
init_peer_crypto();
|
|
1066
1066
|
init_peer_credentials();
|
|
1067
1067
|
logger$89 = createLogger({ prefix: "peer-client" });
|
|
1068
|
-
SOFTWARE_VERSION$1 = "0.1.
|
|
1068
|
+
SOFTWARE_VERSION$1 = "0.1.19";
|
|
1069
1069
|
PeerClient$1 = class {
|
|
1070
1070
|
ws = null;
|
|
1071
1071
|
_state = "disconnected";
|
|
@@ -2591,7 +2591,7 @@ var init_peer_handler = __esmMin((() => {
|
|
|
2591
2591
|
init_peer_crypto();
|
|
2592
2592
|
init_join_token();
|
|
2593
2593
|
logger$88 = createLogger({ prefix: "peer-handler" });
|
|
2594
|
-
SOFTWARE_VERSION = "0.1.
|
|
2594
|
+
SOFTWARE_VERSION = "0.1.19";
|
|
2595
2595
|
RATE_LIMIT_MAX = 5;
|
|
2596
2596
|
RATE_LIMIT_WINDOW_MS = 6e4;
|
|
2597
2597
|
}));
|
|
@@ -12225,16 +12225,25 @@ async function cancelRunWithReason(deps, runId, reason, options = {}) {
|
|
|
12225
12225
|
const agentId = dispatcher.getAgentIdForJob(jobId);
|
|
12226
12226
|
if (!agentId) continue;
|
|
12227
12227
|
const entry = registry.get(agentId);
|
|
12228
|
-
if (
|
|
12229
|
-
|
|
12230
|
-
|
|
12231
|
-
|
|
12232
|
-
|
|
12233
|
-
|
|
12234
|
-
|
|
12235
|
-
|
|
12236
|
-
|
|
12237
|
-
|
|
12228
|
+
if (entry?.ws?.readyState !== 1) continue;
|
|
12229
|
+
try {
|
|
12230
|
+
entry.ws.send(JSON.stringify({
|
|
12231
|
+
type: "job.cancel",
|
|
12232
|
+
messageId: randomUUID(),
|
|
12233
|
+
runId,
|
|
12234
|
+
jobId,
|
|
12235
|
+
reason,
|
|
12236
|
+
...force && { force: true }
|
|
12237
|
+
}));
|
|
12238
|
+
agentsNotified++;
|
|
12239
|
+
} catch (err) {
|
|
12240
|
+
logger$71.warn("Failed to send job.cancel to agent; treating job as orphaned", {
|
|
12241
|
+
runId,
|
|
12242
|
+
jobId,
|
|
12243
|
+
agentId,
|
|
12244
|
+
error: err instanceof Error ? err.message : String(err)
|
|
12245
|
+
});
|
|
12246
|
+
}
|
|
12238
12247
|
}
|
|
12239
12248
|
const pendingResult = await db.updateTable("execution_jobs").set({
|
|
12240
12249
|
status: ExecutionJobStatus.enum.cancelled,
|
|
@@ -22331,6 +22340,21 @@ var init_admin_runs = __esmMin((() => {
|
|
|
22331
22340
|
}));
|
|
22332
22341
|
//#endregion
|
|
22333
22342
|
//#region src/cold-store/load-event-log-range.ts
|
|
22343
|
+
/**
|
|
22344
|
+
* Read-through helper for `event_log` (Orchestrator) — Phase E.
|
|
22345
|
+
*
|
|
22346
|
+
* Mirrors the Platform-side `load-event-log-range.ts`. Tenant column is
|
|
22347
|
+
* `routing_key` (NOT NULL on this side) so cold-store partitioning
|
|
22348
|
+
* doesn't need a synthetic-tenant fallback. Partition column is
|
|
22349
|
+
* `received_at`.
|
|
22350
|
+
*
|
|
22351
|
+
* The orchestrator's `event_log` row carries the `payload_key` reference
|
|
22352
|
+
* (an S3 object that holds the gzipped webhook body). Cold-store
|
|
22353
|
+
* archives the row metadata and preserves `payload_key` verbatim — the
|
|
22354
|
+
* payload blob itself stays in object storage indefinitely so the
|
|
22355
|
+
* dashboard's payload-detail view continues to resolve archived
|
|
22356
|
+
* deliveries identically to hot ones.
|
|
22357
|
+
*/
|
|
22334
22358
|
async function loadEventLogRange(args) {
|
|
22335
22359
|
const { db, coldStore, routingKey, orgId, event, action, status, deliveryId, fromTs, toTs, limit, offset, includeArchived } = args;
|
|
22336
22360
|
const warmCutoff = /* @__PURE__ */ new Date(Date.now() - EVENT_LOG_WARM_TTL_DAYS * 864e5);
|
|
@@ -22348,6 +22372,16 @@ async function loadEventLogRange(args) {
|
|
|
22348
22372
|
if (coldFromTs >= warmCutoff) return hotRows;
|
|
22349
22373
|
const remaining = limit - hotRows.length;
|
|
22350
22374
|
if (remaining <= 0) return hotRows;
|
|
22375
|
+
let hotCountQuery = db.selectFrom("event_log").select(sql`count(*)::text`.as("n")).where("routing_key", "=", routingKey);
|
|
22376
|
+
if (orgId) hotCountQuery = hotCountQuery.where("org_id", "=", orgId);
|
|
22377
|
+
if (event) hotCountQuery = hotCountQuery.where("event", "=", event);
|
|
22378
|
+
if (action) hotCountQuery = hotCountQuery.where("action", "=", action);
|
|
22379
|
+
if (status) hotCountQuery = hotCountQuery.where("status", "=", status);
|
|
22380
|
+
if (deliveryId) hotCountQuery = hotCountQuery.where("delivery_id", "like", `%${deliveryId}%`);
|
|
22381
|
+
if (fromTs) hotCountQuery = hotCountQuery.where("received_at", ">=", fromTs);
|
|
22382
|
+
if (toTs) hotCountQuery = hotCountQuery.where("received_at", "<", toTs);
|
|
22383
|
+
const hotCount = Number((await hotCountQuery.executeTakeFirst())?.n ?? "0");
|
|
22384
|
+
const coldOffset = Math.max(0, offset - hotCount);
|
|
22351
22385
|
const coldToTs = toTs && toTs < warmCutoff ? toTs : warmCutoff;
|
|
22352
22386
|
const coldRows = [];
|
|
22353
22387
|
try {
|
|
@@ -22364,7 +22398,6 @@ async function loadEventLogRange(args) {
|
|
|
22364
22398
|
if (status !== void 0 && row.status !== status) continue;
|
|
22365
22399
|
if (deliveryId !== void 0 && !row.delivery_id.includes(deliveryId)) continue;
|
|
22366
22400
|
coldRows.push(row);
|
|
22367
|
-
if (coldRows.length >= remaining) break;
|
|
22368
22401
|
}
|
|
22369
22402
|
} catch (err) {
|
|
22370
22403
|
if (hotRows.length === 0) {
|
|
@@ -22384,7 +22417,7 @@ async function loadEventLogRange(args) {
|
|
|
22384
22417
|
const at = a.received_at instanceof Date ? a.received_at.getTime() : new Date(a.received_at).getTime();
|
|
22385
22418
|
return (b.received_at instanceof Date ? b.received_at.getTime() : new Date(b.received_at).getTime()) - at;
|
|
22386
22419
|
});
|
|
22387
|
-
return [...hotRows, ...coldRows.slice(
|
|
22420
|
+
return [...hotRows, ...coldRows.slice(coldOffset, coldOffset + remaining)];
|
|
22388
22421
|
}
|
|
22389
22422
|
/**
|
|
22390
22423
|
* Detail lookup by `(orgId, deliveryId)`. The dashboard handler joins
|
|
@@ -23545,14 +23578,14 @@ var init_admin_config = __esmMin((() => {
|
|
|
23545
23578
|
function createHealthRoutes$1(deps = {}) {
|
|
23546
23579
|
return createHealthRoutes({
|
|
23547
23580
|
livenessInfo: () => ({
|
|
23548
|
-
version: "0.1.
|
|
23549
|
-
buildDate: "2026-06-
|
|
23550
|
-
buildCommit: "
|
|
23551
|
-
sdkVersion: "0.1.
|
|
23581
|
+
version: "0.1.19",
|
|
23582
|
+
buildDate: "2026-06-19T04:32:44.899Z",
|
|
23583
|
+
buildCommit: "1590f5e99",
|
|
23584
|
+
sdkVersion: "0.1.19",
|
|
23552
23585
|
sdkBundleHash: "8308089347c304e41b457d3867b17bbff11d6b5cd9706b6823e7abdbd849f33f",
|
|
23553
|
-
sharedVersion: "0.1.
|
|
23586
|
+
sharedVersion: "0.1.19",
|
|
23554
23587
|
sharedBundleHash: "5f2c220f24d166b0f13d0620a2e80d19689ac8b683a12154daef44e938fd46a7",
|
|
23555
|
-
engineVersion: "0.1.
|
|
23588
|
+
engineVersion: "0.1.19",
|
|
23556
23589
|
engineBundleHash: "79ce14640d1798eaaa7cb3aa6c4bc325da3bff1e9f4716936e19614eabb1d858"
|
|
23557
23590
|
}),
|
|
23558
23591
|
readinessCheck: deps.db ? async () => {
|
|
@@ -23587,7 +23620,7 @@ function createCapabilitiesRoutes() {
|
|
|
23587
23620
|
const app = new Hono();
|
|
23588
23621
|
app.get("/api/v1/capabilities", (c) => {
|
|
23589
23622
|
const manifest = {
|
|
23590
|
-
orchestratorVersion: "0.1.
|
|
23623
|
+
orchestratorVersion: "0.1.19",
|
|
23591
23624
|
protocolVersion: PROTOCOL_VERSION,
|
|
23592
23625
|
minProtocolVersion: MIN_PROTOCOL_VERSION
|
|
23593
23626
|
};
|
|
@@ -49499,13 +49532,13 @@ var init_worker_core = __esmMin((() => {
|
|
|
49499
49532
|
init_fleet_wiring();
|
|
49500
49533
|
init_worker_status();
|
|
49501
49534
|
init_agent_heartbeat();
|
|
49502
|
-
ORCHESTRATOR_VERSION$1 = "0.1.
|
|
49503
|
-
WORKER_BUILD_COMMIT = "
|
|
49504
|
-
WORKER_SDK_VERSION = "0.1.
|
|
49535
|
+
ORCHESTRATOR_VERSION$1 = "0.1.19";
|
|
49536
|
+
WORKER_BUILD_COMMIT = "1590f5e99";
|
|
49537
|
+
WORKER_SDK_VERSION = "0.1.19";
|
|
49505
49538
|
WORKER_SDK_BUNDLE_HASH = "8308089347c304e41b457d3867b17bbff11d6b5cd9706b6823e7abdbd849f33f";
|
|
49506
|
-
WORKER_SHARED_VERSION = "0.1.
|
|
49539
|
+
WORKER_SHARED_VERSION = "0.1.19";
|
|
49507
49540
|
WORKER_SHARED_BUNDLE_HASH = "5f2c220f24d166b0f13d0620a2e80d19689ac8b683a12154daef44e938fd46a7";
|
|
49508
|
-
WORKER_ENGINE_VERSION = "0.1.
|
|
49541
|
+
WORKER_ENGINE_VERSION = "0.1.19";
|
|
49509
49542
|
WORKER_ENGINE_BUNDLE_HASH = "79ce14640d1798eaaa7cb3aa6c4bc325da3bff1e9f4716936e19614eabb1d858";
|
|
49510
49543
|
logger$2 = createLogger({ prefix: "worker" });
|
|
49511
49544
|
DRAIN_TIMEOUT_MS = 3e5;
|
|
@@ -49530,13 +49563,13 @@ var init_worker_core = __esmMin((() => {
|
|
|
49530
49563
|
* Graceful shutdown:
|
|
49531
49564
|
* agent WS -> heartbeat -> HTTP -> DB
|
|
49532
49565
|
*/
|
|
49533
|
-
const ORCHESTRATOR_VERSION = "0.1.
|
|
49534
|
-
const BUILD_COMMIT = "
|
|
49535
|
-
const SDK_VERSION = "0.1.
|
|
49566
|
+
const ORCHESTRATOR_VERSION = "0.1.19";
|
|
49567
|
+
const BUILD_COMMIT = "1590f5e99";
|
|
49568
|
+
const SDK_VERSION = "0.1.19";
|
|
49536
49569
|
const SDK_BUNDLE_HASH = "8308089347c304e41b457d3867b17bbff11d6b5cd9706b6823e7abdbd849f33f";
|
|
49537
|
-
const SHARED_VERSION = "0.1.
|
|
49570
|
+
const SHARED_VERSION = "0.1.19";
|
|
49538
49571
|
const SHARED_BUNDLE_HASH = "5f2c220f24d166b0f13d0620a2e80d19689ac8b683a12154daef44e938fd46a7";
|
|
49539
|
-
const ENGINE_VERSION = "0.1.
|
|
49572
|
+
const ENGINE_VERSION = "0.1.19";
|
|
49540
49573
|
const ENGINE_BUNDLE_HASH = "79ce14640d1798eaaa7cb3aa6c4bc325da3bff1e9f4716936e19614eabb1d858";
|
|
49541
49574
|
const otelSdk = initTelemetry({
|
|
49542
49575
|
serviceName: "kici-orchestrator",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
2
|
+
"version": "0.1.19",
|
|
3
3
|
"images": {
|
|
4
|
-
"kici-agent": "sha256:
|
|
5
|
-
"kici-orchestrator": "sha256:
|
|
4
|
+
"kici-agent": "sha256:7e54dde6c087b0a8117b8a45a255dd4f0f749db3a5da798e350a266fba396570",
|
|
5
|
+
"kici-orchestrator": "sha256:47f2caf0c8effca17e13d80457f4dd517784ac3eabda270f6da78a49e529f7af"
|
|
6
6
|
}
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kici-dev/orchestrator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.19",
|
|
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/shared": "0.1.
|
|
90
|
-
"@kici-dev/engine": "0.1.
|
|
89
|
+
"@kici-dev/shared": "0.1.19",
|
|
90
|
+
"@kici-dev/engine": "0.1.19"
|
|
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.
|
|
104
|
+
"@kici-dev/agent": "0.1.19"
|
|
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.
|
|
6
|
-
"documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Forchestrator/0.1.
|
|
5
|
+
"name": "@kici-dev/orchestrator@0.1.19",
|
|
6
|
+
"documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Forchestrator/0.1.19/e51708f7-e161-4759-b280-198c788c29b4",
|
|
7
7
|
"creationInfo": {
|
|
8
|
-
"created": "2026-06-
|
|
8
|
+
"created": "2026-06-19T05:11:21Z",
|
|
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.
|
|
1193
|
+
"SPDXID": "SPDXRef-Package--kici-dev-core-0.1.19",
|
|
1194
1194
|
"name": "@kici-dev/core",
|
|
1195
|
-
"versionInfo": "0.1.
|
|
1195
|
+
"versionInfo": "0.1.19",
|
|
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.
|
|
1206
|
+
"referenceLocator": "pkg:npm/%40kici-dev/core@0.1.19"
|
|
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.
|
|
1213
|
+
"SPDXID": "SPDXRef-Package--kici-dev-engine-0.1.19",
|
|
1214
1214
|
"name": "@kici-dev/engine",
|
|
1215
|
-
"versionInfo": "0.1.
|
|
1215
|
+
"versionInfo": "0.1.19",
|
|
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.
|
|
1226
|
+
"referenceLocator": "pkg:npm/%40kici-dev/engine@0.1.19"
|
|
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.
|
|
1235
|
+
"versionInfo": "0.1.19",
|
|
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.
|
|
1246
|
+
"referenceLocator": "pkg:npm/%40kici-dev/orchestrator@0.1.19"
|
|
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.
|
|
1253
|
+
"SPDXID": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
1254
1254
|
"name": "@kici-dev/shared",
|
|
1255
|
-
"versionInfo": "0.1.
|
|
1255
|
+
"versionInfo": "0.1.19",
|
|
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.
|
|
1266
|
+
"referenceLocator": "pkg:npm/%40kici-dev/shared@0.1.19"
|
|
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.",
|
|
@@ -8242,57 +8242,57 @@
|
|
|
8242
8242
|
"relationshipType": "DEPENDS_ON"
|
|
8243
8243
|
},
|
|
8244
8244
|
{
|
|
8245
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.
|
|
8245
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.19",
|
|
8246
8246
|
"relatedSpdxElement": "SPDXRef-Package-oxc-transform-0.135.0",
|
|
8247
8247
|
"relationshipType": "DEPENDS_ON"
|
|
8248
8248
|
},
|
|
8249
8249
|
{
|
|
8250
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.
|
|
8250
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.19",
|
|
8251
8251
|
"relatedSpdxElement": "SPDXRef-Package-picocolors-1.1.1",
|
|
8252
8252
|
"relationshipType": "DEPENDS_ON"
|
|
8253
8253
|
},
|
|
8254
8254
|
{
|
|
8255
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.
|
|
8255
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.19",
|
|
8256
8256
|
"relatedSpdxElement": "SPDXRef-Package-winston-daily-rotate-file-5.0.0",
|
|
8257
8257
|
"relationshipType": "DEPENDS_ON"
|
|
8258
8258
|
},
|
|
8259
8259
|
{
|
|
8260
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.
|
|
8260
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.19",
|
|
8261
8261
|
"relatedSpdxElement": "SPDXRef-Package-winston-3.19.0",
|
|
8262
8262
|
"relationshipType": "DEPENDS_ON"
|
|
8263
8263
|
},
|
|
8264
8264
|
{
|
|
8265
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.
|
|
8265
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.19",
|
|
8266
8266
|
"relatedSpdxElement": "SPDXRef-Package-zod-4.4.3",
|
|
8267
8267
|
"relationshipType": "DEPENDS_ON"
|
|
8268
8268
|
},
|
|
8269
8269
|
{
|
|
8270
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.
|
|
8270
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.1.19",
|
|
8271
8271
|
"relatedSpdxElement": "SPDXRef-Package-zx-8.8.5",
|
|
8272
8272
|
"relationshipType": "DEPENDS_ON"
|
|
8273
8273
|
},
|
|
8274
8274
|
{
|
|
8275
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.
|
|
8275
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.19",
|
|
8276
8276
|
"relatedSpdxElement": "SPDXRef-Package-jose-6.2.3",
|
|
8277
8277
|
"relationshipType": "DEPENDS_ON"
|
|
8278
8278
|
},
|
|
8279
8279
|
{
|
|
8280
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.
|
|
8280
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.19",
|
|
8281
8281
|
"relatedSpdxElement": "SPDXRef-Package-jsonpath-plus-10.4.0",
|
|
8282
8282
|
"relationshipType": "DEPENDS_ON"
|
|
8283
8283
|
},
|
|
8284
8284
|
{
|
|
8285
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.
|
|
8285
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.19",
|
|
8286
8286
|
"relatedSpdxElement": "SPDXRef-Package-picomatch-4.0.4",
|
|
8287
8287
|
"relationshipType": "DEPENDS_ON"
|
|
8288
8288
|
},
|
|
8289
8289
|
{
|
|
8290
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.
|
|
8290
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.19",
|
|
8291
8291
|
"relatedSpdxElement": "SPDXRef-Package-safe-regex-2.1.1",
|
|
8292
8292
|
"relationshipType": "DEPENDS_ON"
|
|
8293
8293
|
},
|
|
8294
8294
|
{
|
|
8295
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.
|
|
8295
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.1.19",
|
|
8296
8296
|
"relatedSpdxElement": "SPDXRef-Package-zod-4.4.3",
|
|
8297
8297
|
"relationshipType": "DEPENDS_ON"
|
|
8298
8298
|
},
|
|
@@ -8328,12 +8328,12 @@
|
|
|
8328
8328
|
},
|
|
8329
8329
|
{
|
|
8330
8330
|
"spdxElementId": "SPDXRef-RootPackage",
|
|
8331
|
-
"relatedSpdxElement": "SPDXRef-Package--kici-dev-engine-0.1.
|
|
8331
|
+
"relatedSpdxElement": "SPDXRef-Package--kici-dev-engine-0.1.19",
|
|
8332
8332
|
"relationshipType": "DEPENDS_ON"
|
|
8333
8333
|
},
|
|
8334
8334
|
{
|
|
8335
8335
|
"spdxElementId": "SPDXRef-RootPackage",
|
|
8336
|
-
"relatedSpdxElement": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8336
|
+
"relatedSpdxElement": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8337
8337
|
"relationshipType": "DEPENDS_ON"
|
|
8338
8338
|
},
|
|
8339
8339
|
{
|
|
@@ -8437,112 +8437,112 @@
|
|
|
8437
8437
|
"relationshipType": "DEPENDS_ON"
|
|
8438
8438
|
},
|
|
8439
8439
|
{
|
|
8440
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8440
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8441
8441
|
"relatedSpdxElement": "SPDXRef-Package--aws-sdk-client-s3-3.1064.0",
|
|
8442
8442
|
"relationshipType": "DEPENDS_ON"
|
|
8443
8443
|
},
|
|
8444
8444
|
{
|
|
8445
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8446
|
-
"relatedSpdxElement": "SPDXRef-Package--kici-dev-core-0.1.
|
|
8445
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8446
|
+
"relatedSpdxElement": "SPDXRef-Package--kici-dev-core-0.1.19",
|
|
8447
8447
|
"relationshipType": "DEPENDS_ON"
|
|
8448
8448
|
},
|
|
8449
8449
|
{
|
|
8450
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8450
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8451
8451
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-api-1.9.1",
|
|
8452
8452
|
"relationshipType": "DEPENDS_ON"
|
|
8453
8453
|
},
|
|
8454
8454
|
{
|
|
8455
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8455
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8456
8456
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-metrics-otlp-http-0.218.0",
|
|
8457
8457
|
"relationshipType": "DEPENDS_ON"
|
|
8458
8458
|
},
|
|
8459
8459
|
{
|
|
8460
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8460
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8461
8461
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-prometheus-0.218.0",
|
|
8462
8462
|
"relationshipType": "DEPENDS_ON"
|
|
8463
8463
|
},
|
|
8464
8464
|
{
|
|
8465
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8465
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8466
8466
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-trace-otlp-http-0.218.0",
|
|
8467
8467
|
"relationshipType": "DEPENDS_ON"
|
|
8468
8468
|
},
|
|
8469
8469
|
{
|
|
8470
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8470
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8471
8471
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-instrumentation-runtime-node-0.31.0",
|
|
8472
8472
|
"relationshipType": "DEPENDS_ON"
|
|
8473
8473
|
},
|
|
8474
8474
|
{
|
|
8475
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8475
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8476
8476
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-resources-2.7.1",
|
|
8477
8477
|
"relationshipType": "DEPENDS_ON"
|
|
8478
8478
|
},
|
|
8479
8479
|
{
|
|
8480
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8480
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8481
8481
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-sdk-node-0.218.0",
|
|
8482
8482
|
"relationshipType": "DEPENDS_ON"
|
|
8483
8483
|
},
|
|
8484
8484
|
{
|
|
8485
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8485
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8486
8486
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-semantic-conventions-1.41.1",
|
|
8487
8487
|
"relationshipType": "DEPENDS_ON"
|
|
8488
8488
|
},
|
|
8489
8489
|
{
|
|
8490
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8490
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8491
8491
|
"relatedSpdxElement": "SPDXRef-Package-archiver-8.0.0",
|
|
8492
8492
|
"relationshipType": "DEPENDS_ON"
|
|
8493
8493
|
},
|
|
8494
8494
|
{
|
|
8495
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8495
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8496
8496
|
"relatedSpdxElement": "SPDXRef-Package-diff-9.0.0",
|
|
8497
8497
|
"relationshipType": "DEPENDS_ON"
|
|
8498
8498
|
},
|
|
8499
8499
|
{
|
|
8500
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8500
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8501
8501
|
"relatedSpdxElement": "SPDXRef-Package-hono-4.12.25",
|
|
8502
8502
|
"relationshipType": "DEPENDS_ON"
|
|
8503
8503
|
},
|
|
8504
8504
|
{
|
|
8505
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8505
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8506
8506
|
"relatedSpdxElement": "SPDXRef-Package-kysely-0.29.2",
|
|
8507
8507
|
"relationshipType": "DEPENDS_ON"
|
|
8508
8508
|
},
|
|
8509
8509
|
{
|
|
8510
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8510
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8511
8511
|
"relatedSpdxElement": "SPDXRef-Package-oxc-transform-0.135.0",
|
|
8512
8512
|
"relationshipType": "DEPENDS_ON"
|
|
8513
8513
|
},
|
|
8514
8514
|
{
|
|
8515
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8515
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8516
8516
|
"relatedSpdxElement": "SPDXRef-Package-pg-8.21.0",
|
|
8517
8517
|
"relationshipType": "DEPENDS_ON"
|
|
8518
8518
|
},
|
|
8519
8519
|
{
|
|
8520
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8520
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8521
8521
|
"relatedSpdxElement": "SPDXRef-Package-picocolors-1.1.1",
|
|
8522
8522
|
"relationshipType": "DEPENDS_ON"
|
|
8523
8523
|
},
|
|
8524
8524
|
{
|
|
8525
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8525
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8526
8526
|
"relatedSpdxElement": "SPDXRef-Package-winston-daily-rotate-file-5.0.0",
|
|
8527
8527
|
"relationshipType": "DEPENDS_ON"
|
|
8528
8528
|
},
|
|
8529
8529
|
{
|
|
8530
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8530
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8531
8531
|
"relatedSpdxElement": "SPDXRef-Package-winston-3.19.0",
|
|
8532
8532
|
"relationshipType": "DEPENDS_ON"
|
|
8533
8533
|
},
|
|
8534
8534
|
{
|
|
8535
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8535
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8536
8536
|
"relatedSpdxElement": "SPDXRef-Package-yaml-2.9.0",
|
|
8537
8537
|
"relationshipType": "DEPENDS_ON"
|
|
8538
8538
|
},
|
|
8539
8539
|
{
|
|
8540
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8540
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8541
8541
|
"relatedSpdxElement": "SPDXRef-Package-zod-4.4.3",
|
|
8542
8542
|
"relationshipType": "DEPENDS_ON"
|
|
8543
8543
|
},
|
|
8544
8544
|
{
|
|
8545
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.
|
|
8545
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.1.19",
|
|
8546
8546
|
"relatedSpdxElement": "SPDXRef-Package-zx-8.8.5",
|
|
8547
8547
|
"relationshipType": "DEPENDS_ON"
|
|
8548
8548
|
},
|