@kici-dev/orchestrator 0.9.0 → 0.9.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/cli.js +35 -26
- package/dist/server.js +70 -58
- package/dist/standalone.js +70 -58
- package/installer-image-digests.json +3 -3
- package/package.json +4 -4
- package/sbom.spdx.json +53 -53
package/dist/cli.js
CHANGED
|
@@ -1056,28 +1056,41 @@ async function loadAccessLogRange(args) {
|
|
|
1056
1056
|
const coldToTs = toTs && toTs < warmCutoff ? toTs : warmCutoff;
|
|
1057
1057
|
const coldRemaining = limit - hotItems.length;
|
|
1058
1058
|
const tenantToScan = filter.orgId ?? "__orchestrator__";
|
|
1059
|
+
const matches = (row) => {
|
|
1060
|
+
if (filter.actorType && row.actor_type !== filter.actorType) return false;
|
|
1061
|
+
if (filter.actorId && row.actor_id !== filter.actorId) return false;
|
|
1062
|
+
if (filter.action && row.action !== filter.action) return false;
|
|
1063
|
+
if (filter.source && row.source !== filter.source) return false;
|
|
1064
|
+
if (filter.outcome && row.outcome !== filter.outcome) return false;
|
|
1065
|
+
if (filter.targetType && row.target_type !== filter.targetType) return false;
|
|
1066
|
+
if (filter.targetId && row.target_id !== filter.targetId) return false;
|
|
1067
|
+
if (filter.agentLabel && row.agent_label !== filter.agentLabel) return false;
|
|
1068
|
+
if (filter.agentOnly && row.agent_label == null) return false;
|
|
1069
|
+
if (filter.q && filter.q.length > 0) {
|
|
1070
|
+
if (!(row.error_message ?? "").toLowerCase().includes(filter.q.toLowerCase())) return false;
|
|
1071
|
+
}
|
|
1072
|
+
return true;
|
|
1073
|
+
};
|
|
1074
|
+
const beforeCursor = (it) => !cursor || cursor.source !== "cold" || it.createdAt < cursor.createdAt || it.createdAt === cursor.createdAt && it.id < cursor.id;
|
|
1059
1075
|
const coldItems = [];
|
|
1076
|
+
let stoppedEarly = false;
|
|
1060
1077
|
try {
|
|
1061
1078
|
for await (const row of coldStore.fetchRange({
|
|
1062
1079
|
db: "orchestrator",
|
|
1063
1080
|
table: "access_log",
|
|
1064
1081
|
tenantId: tenantToScan,
|
|
1065
1082
|
fromTs: coldFromTs,
|
|
1066
|
-
toTs: coldToTs
|
|
1083
|
+
toTs: coldToTs,
|
|
1084
|
+
order: "desc"
|
|
1067
1085
|
})) {
|
|
1068
|
-
if (
|
|
1069
|
-
|
|
1070
|
-
if (
|
|
1071
|
-
if (
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
if (filter.agentOnly && row.agent_label == null) continue;
|
|
1077
|
-
if (filter.q && filter.q.length > 0) {
|
|
1078
|
-
if (!(row.error_message ?? "").toLowerCase().includes(filter.q.toLowerCase())) continue;
|
|
1079
|
-
}
|
|
1080
|
-
coldItems.push(toAccessLogItem(row));
|
|
1086
|
+
if (!matches(row)) continue;
|
|
1087
|
+
const item = toAccessLogItem(row);
|
|
1088
|
+
if (!beforeCursor(item)) continue;
|
|
1089
|
+
if (coldItems.length >= coldRemaining && item.createdAt < coldItems[coldRemaining - 1].createdAt) {
|
|
1090
|
+
stoppedEarly = true;
|
|
1091
|
+
break;
|
|
1092
|
+
}
|
|
1093
|
+
coldItems.push(item);
|
|
1081
1094
|
}
|
|
1082
1095
|
} catch (err) {
|
|
1083
1096
|
if (cursor?.source === "cold") {
|
|
@@ -1096,14 +1109,9 @@ async function loadAccessLogRange(args) {
|
|
|
1096
1109
|
nextCursor: hotHasMore && hotItems.length > 0 ? buildHotCursor(hotItems[hotItems.length - 1]) : null
|
|
1097
1110
|
};
|
|
1098
1111
|
}
|
|
1099
|
-
coldItems.sort((a, b) => a.createdAt < b.createdAt ? 1 : a.createdAt > b.createdAt ? -1 : 0);
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
coldStart = coldItems.findIndex((it) => it.createdAt < cursor.createdAt || it.createdAt === cursor.createdAt && it.id < cursor.id);
|
|
1103
|
-
if (coldStart < 0) coldStart = coldItems.length;
|
|
1104
|
-
}
|
|
1105
|
-
const coldPage = coldItems.slice(coldStart, coldStart + coldRemaining);
|
|
1106
|
-
const coldHasMore = coldStart + coldRemaining < coldItems.length;
|
|
1112
|
+
coldItems.sort((a, b) => a.createdAt < b.createdAt ? 1 : a.createdAt > b.createdAt ? -1 : a.id < b.id ? 1 : a.id > b.id ? -1 : 0);
|
|
1113
|
+
const coldPage = coldItems.slice(0, coldRemaining);
|
|
1114
|
+
const coldHasMore = stoppedEarly || coldItems.length > coldRemaining;
|
|
1107
1115
|
return {
|
|
1108
1116
|
items: [...hotItems, ...coldPage],
|
|
1109
1117
|
nextCursor: coldHasMore && coldPage.length > 0 ? buildColdCursor(coldPage[coldPage.length - 1]) : hotHasMore && hotItems.length > 0 && coldPage.length === 0 ? buildHotCursor(hotItems[hotItems.length - 1]) : null
|
|
@@ -1230,11 +1238,13 @@ async function loadSecretAuditLogRange(args) {
|
|
|
1230
1238
|
table: "secret_audit_log",
|
|
1231
1239
|
tenantId: tenant,
|
|
1232
1240
|
fromTs: coldFromTs,
|
|
1233
|
-
toTs: coldToTs
|
|
1241
|
+
toTs: coldToTs,
|
|
1242
|
+
order: "desc"
|
|
1234
1243
|
})) {
|
|
1235
1244
|
if (contextName && row.context_name !== contextName) continue;
|
|
1236
1245
|
if (action && row.action !== action) continue;
|
|
1237
1246
|
coldRows.push(row);
|
|
1247
|
+
if (coldRows.length >= coldOffset + remaining) break;
|
|
1238
1248
|
}
|
|
1239
1249
|
} catch (err) {
|
|
1240
1250
|
if (hotRows.length === 0) {
|
|
@@ -1244,7 +1254,6 @@ async function loadSecretAuditLogRange(args) {
|
|
|
1244
1254
|
logger$21.warn("cold-store fetchRange failed; returning hot rows only", { error: toErrorMessage(err) });
|
|
1245
1255
|
return hotRows;
|
|
1246
1256
|
}
|
|
1247
|
-
coldRows.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
1248
1257
|
const coldSlice = coldRows.slice(coldOffset, coldOffset + remaining);
|
|
1249
1258
|
return [...hotRows, ...coldSlice];
|
|
1250
1259
|
}
|
|
@@ -22268,7 +22277,7 @@ init_manifest();
|
|
|
22268
22277
|
const ALL_PLATFORMS = AgentPlatform.options;
|
|
22269
22278
|
/** The orchestrator's own version (single-version invariant) = the packaged agent version. */
|
|
22270
22279
|
function resolveKiciVersion() {
|
|
22271
|
-
return "0.9.
|
|
22280
|
+
return "0.9.1";
|
|
22272
22281
|
}
|
|
22273
22282
|
/** Parse the --platform value: default set | single | CSV | `all`. */
|
|
22274
22283
|
function parsePlatforms(raw) {
|
|
@@ -33335,7 +33344,7 @@ Token vocabulary:
|
|
|
33335
33344
|
* where no bundler substituted the constant — the same shape `server.ts` and
|
|
33336
33345
|
* `standalone.ts` use for `ORCHESTRATOR_VERSION`.
|
|
33337
33346
|
*/
|
|
33338
|
-
const CLI_VERSION = "0.9.
|
|
33347
|
+
const CLI_VERSION = "0.9.1";
|
|
33339
33348
|
/**
|
|
33340
33349
|
* Build the kici-admin Commander program with every command group registered.
|
|
33341
33350
|
* Exported so the surface registry can walk the real command tree without
|
package/dist/server.js
CHANGED
|
@@ -3,7 +3,7 @@ import { dirname as __cjs_dirname } from "node:path";
|
|
|
3
3
|
const __filename = __cjs_fileURLToPath(import.meta.url);
|
|
4
4
|
__cjs_dirname(__filename);
|
|
5
5
|
import "node:module";
|
|
6
|
-
import { AgentDeliveryMode, AgentPlatform, BaseColdStore, ChunkRequestWaiter, RingBuffer, addLogsToArchive, chunkBuffer, computeBackoffDelay, computeMigrationsHash, createDb, createHealthRoutes, createLogger, createMeter, createMetricsRoutes, createPool, createS3Client, decrypt, decryptJson, deriveKey, encodeKeySegment, encrypt, enrichRequestContext, formatDuration, getPrometheusExporter, getReconnectDelay, getRequestContext, guardStartup, initTelemetry, isPgUniqueViolation, logger, parseDatabaseUrl, redactConfig, requestContext, serializeError, setServiceName, setupGracefulShutdown, sha256, storeMigrationContentHash, toErrorMessage, validateRequiredTools } from "@kici-dev/shared";
|
|
6
|
+
import { AgentDeliveryMode, AgentPlatform, BaseColdStore, ChunkLru, ChunkRequestWaiter, RingBuffer, addLogsToArchive, applyProxyKeepAliveTimeouts, chunkBuffer, computeBackoffDelay, computeMigrationsHash, createDb, createHealthRoutes, createLogger, createMeter, createMetricsRoutes, createPool, createS3Client, decrypt, decryptJson, deriveKey, encodeKeySegment, encrypt, enrichRequestContext, formatDuration, getPrometheusExporter, getReconnectDelay, getRequestContext, guardStartup, initTelemetry, isPgUniqueViolation, logger, parseDatabaseUrl, redactConfig, requestContext, serializeError, setServiceName, setupGracefulShutdown, sha256, storeMigrationContentHash, toErrorMessage, validateRequiredTools } from "@kici-dev/shared";
|
|
7
7
|
import { ACTOR_AGENT_SUFFIX, ALLOWED_SYSTEM_VARS, ARTIFACT_NAME_MAX_LENGTH, AccessLogAction, AccessLogOutcome, AccessLogSource, AccessLogTargetType, ActorType, AgentFailureCategory, ApprovalDecision, ArtifactCompleteAckOutcome, ArtifactDownloadOutcome, ArtifactUploadOutcome, AttestationOrigin, BREAKING_FLOOR, CANONICAL_STATUSES, CLUSTER_MEMBERSHIP_MAX_WORKERS, CONTAINER_BUILD_RUNTIME_LABEL, CacheRefScope, CheckMode, CheckRunConclusion, CheckStepOutcome, CiTrustLevel, ConcurrencyStrategy, ContextDeleteErrorCode, ContextGateRejectReason, DASHBOARD_REQUEST_TYPE_SET, DEFAULT_APPROVAL_EXPIRY_HOURS, DEFAULT_APPROVAL_EXPIRY_SECONDS, DEFAULT_CONCURRENCY_STRATEGY, DEFAULT_HOLD_EXPIRY_SECONDS, DashboardResponseErrorCode, DeploymentContainerRuntimeSchema, DeploymentModeSchema, EVENT_LOG_PAYLOAD_CHUNK_BYTES, EventLogPayloadStreamError, EventLogSource, EventLogStatus, ExecutionJobStatus, ExecutionRunStatus, ExecutionStepStatus, FanoutCause, FanoutError, ForkPolicy, HeldRunQueueType, HeldRunStatus, HoldScope, HoldType, ID_TOKEN_CLAIM_NAMES, INIT_LABEL, INIT_RUNNER_ROLE_LABEL, INSTALL_JOB_ID_PREFIX, InitFailureCategory, InventorySelectorSchema, KICI_AGENT_ENV_PREFIX, KNOWN_ROLES, LabelMatcher, LockFileParseError, LogStream, MIN_APPROVAL_EXPIRY_SECONDS, MIN_PROTOCOL_VERSION, MinimumTrustSchema, ORCH_AGENT_CAPABILITIES, ORCH_CAPABILITIES, OWN_INGRESS_MODES, OrchLogPhase, OrchRole, OrchestratorMode, PLATFORM_CONNECTED_MODES, PLATFORM_TAINT_LABELS, PLATFORM_TO_ORCH_RECOGNIZED_TYPES, PRIVILEGED_ROOT_LABEL, PROTOCOL_VERSION, PayloadOmittedReason, RELAY_INGRESS_MODES, RegisterableTriggerType, RunFailureClass, SCALER_EVENT_NAMES, SCHEMA_VERSION, SECURITY_HOLD_JOB_IDS, SSH_TRANSPORT_CAPABILITY, ScaleDownReason, ScalerBackendType, ScalerEventType, ScalerEventType as ScalerEventType$1, ScalerScaleDownPayload, ScalerScaleUpPayload, SetupStepType, SourceOrigin, SourceSubtype, TERMINAL_JOB_STATES, TERMINAL_RUN_STATES, TRIGGER_EVENT_TYPES, TimeoutReason, TraceCheck, TriggerSource, TrustTierSchema, VariantKind, WEBHOOK_RELAY_MAX_BODY_BYTES, WS_CLOSE_AGENT_AUTH_FAILED, WS_CLOSE_AUTH_TIMEOUT, WS_CLOSE_DISPATCH_ACK_TIMEOUT, WS_CLOSE_GOING_AWAY, WS_CLOSE_HEARTBEAT_TIMEOUT, WS_CLOSE_INTERNAL_ERROR, WS_CLOSE_INVALID_MESSAGE, WS_CLOSE_PLAN_LIMIT, WS_CLOSE_PROTOCOL_ERROR, WS_CLOSE_SUPERSEDED_BY_RECONNECT, WS_CLOSE_UNAUTHORIZED, WS_MAX_PAYLOAD_BYTES, WebhookRelayResult, WsRateLimiter, accessLogWarmSqlCase, agentAuthRequestSchema, agentLabelOf, agentToOrchestratorMessageSchema, agentTypeLabel, appendChecks, approvalExpiryHoursOf, approvalExpirySecondsOf, approvalTimeoutSecondsSchema, artifactInvalidNameError, assertValidScopeName, assertValidSecretKey, attestationVerifyStatusSchema, buildEventClaims, buildIdTokenSubject, buildTrustedPassthroughEnv, buildUnsupportedMessageNack, canonicalizeCapability, canonicalizeLabel, canonicalizeLabelSet, canonicalizeLabels, canonicalizeMatcher, checkArtifactName, coerceDispatchInputs, collectDiscriminatorTypes, createContentRequirementsTraceEntry, createDispatchFailureTraceEntry, createGlobalFilterTraceEntry, createWorkflowDecision, dashboardArtifactsListResponseSchema, dashboardAttestationGetResponseSchema, dashboardAttestationsListAllResponseSchema, dashboardAttestationsListResponseSchema, dashboardRunDetailApiResponseSchema, dashboardStepLogsApiResponseSchema, deriveOsArchLabels, derivePlatformTaints, fanoutEnvelopeFields, flattenActor, getAccessLogColdDays, getRepoGlobMatcher, getSecretAuditLogColdDays, githubIngressPath, githubWebhookPath, globalEvalRoundResultSchema, hasPlatformCapability, hostLabel, hostSatisfiesTarget, hostToScalerPlatform, installGateJobId, isFailureStatus, isKnownCapability, isLockDynamicJobFn, isLockParallelStep, isLockStaticJob, isPullRequestFamilyTriggerEvent, isSecurityHoldJobId, isSelfReportedLabel, joinRequestSchema, logPullPlatformToOrchSchema, matchAllWorkflows, matchScopePattern, matchWorkflowsForEvent, matcherSatisfiedBy, materializeFanout, materializeResolvedHosts, materializeResolvedMatrix, matrixEnvelopeFields, mergeOrderedMaps, minAccessLogWarmDays, minSecretAuditLogWarmDays, normalizePersistedHoldType, partitionMatchers, peerAuthRequestSchema, peerFromPeerMessageSchema, peerHelloResponseSchema, peerHelloSchema, persistedHoldTypeSpellings, platformToOrchestratorMessageSchema, platformToOsArchLabels, platformToTaints, reservedEventNamePrefix, resolveRoleLabels, resolveScheduleInputs, resolveSecretsWithProvenance, scalerAgentLabels, scalerLabel, scalerPlatformSchema, scheduleTriggerKey, secretAuditLogWarmSqlCase, shouldRecordAccess, shouldRecordSecretResolve, stateReplaySchema, stringifyActor, truncateDecisionsToByteBudget, trustPolicyUpdateSchema, trustedContributorHoldReason, validateScopeName, validateSecretKey, wrapUntrusted } from "@kici-dev/engine";
|
|
8
8
|
import * as fs$1 from "node:fs";
|
|
9
9
|
import { chmodSync, closeSync, createReadStream, createWriteStream, fsyncSync, mkdirSync, mkdtempSync, openSync, promises, readFileSync, renameSync, rmSync, statSync, unwatchFile, watchFile, writeFileSync, writeSync } from "node:fs";
|
|
@@ -10345,28 +10345,41 @@ async function loadAccessLogRange(args) {
|
|
|
10345
10345
|
const coldToTs = toTs && toTs < warmCutoff ? toTs : warmCutoff;
|
|
10346
10346
|
const coldRemaining = limit - hotItems.length;
|
|
10347
10347
|
const tenantToScan = filter.orgId ?? "__orchestrator__";
|
|
10348
|
+
const matches = (row) => {
|
|
10349
|
+
if (filter.actorType && row.actor_type !== filter.actorType) return false;
|
|
10350
|
+
if (filter.actorId && row.actor_id !== filter.actorId) return false;
|
|
10351
|
+
if (filter.action && row.action !== filter.action) return false;
|
|
10352
|
+
if (filter.source && row.source !== filter.source) return false;
|
|
10353
|
+
if (filter.outcome && row.outcome !== filter.outcome) return false;
|
|
10354
|
+
if (filter.targetType && row.target_type !== filter.targetType) return false;
|
|
10355
|
+
if (filter.targetId && row.target_id !== filter.targetId) return false;
|
|
10356
|
+
if (filter.agentLabel && row.agent_label !== filter.agentLabel) return false;
|
|
10357
|
+
if (filter.agentOnly && row.agent_label == null) return false;
|
|
10358
|
+
if (filter.q && filter.q.length > 0) {
|
|
10359
|
+
if (!(row.error_message ?? "").toLowerCase().includes(filter.q.toLowerCase())) return false;
|
|
10360
|
+
}
|
|
10361
|
+
return true;
|
|
10362
|
+
};
|
|
10363
|
+
const beforeCursor = (it) => !cursor || cursor.source !== "cold" || it.createdAt < cursor.createdAt || it.createdAt === cursor.createdAt && it.id < cursor.id;
|
|
10348
10364
|
const coldItems = [];
|
|
10365
|
+
let stoppedEarly = false;
|
|
10349
10366
|
try {
|
|
10350
10367
|
for await (const row of coldStore.fetchRange({
|
|
10351
10368
|
db: "orchestrator",
|
|
10352
10369
|
table: "access_log",
|
|
10353
10370
|
tenantId: tenantToScan,
|
|
10354
10371
|
fromTs: coldFromTs,
|
|
10355
|
-
toTs: coldToTs
|
|
10372
|
+
toTs: coldToTs,
|
|
10373
|
+
order: "desc"
|
|
10356
10374
|
})) {
|
|
10357
|
-
if (
|
|
10358
|
-
|
|
10359
|
-
if (
|
|
10360
|
-
if (
|
|
10361
|
-
|
|
10362
|
-
|
|
10363
|
-
|
|
10364
|
-
|
|
10365
|
-
if (filter.agentOnly && row.agent_label == null) continue;
|
|
10366
|
-
if (filter.q && filter.q.length > 0) {
|
|
10367
|
-
if (!(row.error_message ?? "").toLowerCase().includes(filter.q.toLowerCase())) continue;
|
|
10368
|
-
}
|
|
10369
|
-
coldItems.push(toAccessLogItem(row));
|
|
10375
|
+
if (!matches(row)) continue;
|
|
10376
|
+
const item = toAccessLogItem(row);
|
|
10377
|
+
if (!beforeCursor(item)) continue;
|
|
10378
|
+
if (coldItems.length >= coldRemaining && item.createdAt < coldItems[coldRemaining - 1].createdAt) {
|
|
10379
|
+
stoppedEarly = true;
|
|
10380
|
+
break;
|
|
10381
|
+
}
|
|
10382
|
+
coldItems.push(item);
|
|
10370
10383
|
}
|
|
10371
10384
|
} catch (err) {
|
|
10372
10385
|
if (cursor?.source === "cold") {
|
|
@@ -10385,14 +10398,9 @@ async function loadAccessLogRange(args) {
|
|
|
10385
10398
|
nextCursor: hotHasMore && hotItems.length > 0 ? buildHotCursor(hotItems[hotItems.length - 1]) : null
|
|
10386
10399
|
};
|
|
10387
10400
|
}
|
|
10388
|
-
coldItems.sort((a, b) => a.createdAt < b.createdAt ? 1 : a.createdAt > b.createdAt ? -1 : 0);
|
|
10389
|
-
|
|
10390
|
-
|
|
10391
|
-
coldStart = coldItems.findIndex((it) => it.createdAt < cursor.createdAt || it.createdAt === cursor.createdAt && it.id < cursor.id);
|
|
10392
|
-
if (coldStart < 0) coldStart = coldItems.length;
|
|
10393
|
-
}
|
|
10394
|
-
const coldPage = coldItems.slice(coldStart, coldStart + coldRemaining);
|
|
10395
|
-
const coldHasMore = coldStart + coldRemaining < coldItems.length;
|
|
10401
|
+
coldItems.sort((a, b) => a.createdAt < b.createdAt ? 1 : a.createdAt > b.createdAt ? -1 : a.id < b.id ? 1 : a.id > b.id ? -1 : 0);
|
|
10402
|
+
const coldPage = coldItems.slice(0, coldRemaining);
|
|
10403
|
+
const coldHasMore = stoppedEarly || coldItems.length > coldRemaining;
|
|
10396
10404
|
return {
|
|
10397
10405
|
items: [...hotItems, ...coldPage],
|
|
10398
10406
|
nextCursor: coldHasMore && coldPage.length > 0 ? buildColdCursor(coldPage[coldPage.length - 1]) : hotHasMore && hotItems.length > 0 && coldPage.length === 0 ? buildHotCursor(hotItems[hotItems.length - 1]) : null
|
|
@@ -45074,7 +45082,8 @@ async function loadEventLogRange(args) {
|
|
|
45074
45082
|
table: "event_log",
|
|
45075
45083
|
tenantId: routingKey,
|
|
45076
45084
|
fromTs: coldFromTs,
|
|
45077
|
-
toTs: coldToTs
|
|
45085
|
+
toTs: coldToTs,
|
|
45086
|
+
order: "desc"
|
|
45078
45087
|
})) {
|
|
45079
45088
|
if (orgId !== void 0 && row.org_id !== orgId) continue;
|
|
45080
45089
|
if (event !== void 0 && row.event !== event) continue;
|
|
@@ -45082,6 +45091,7 @@ async function loadEventLogRange(args) {
|
|
|
45082
45091
|
if (status !== void 0 && row.status !== status) continue;
|
|
45083
45092
|
if (deliveryId !== void 0 && !row.delivery_id.includes(deliveryId)) continue;
|
|
45084
45093
|
coldRows.push(row);
|
|
45094
|
+
if (coldRows.length >= coldOffset + remaining) break;
|
|
45085
45095
|
}
|
|
45086
45096
|
} catch (err) {
|
|
45087
45097
|
if (hotRows.length === 0) {
|
|
@@ -45097,10 +45107,6 @@ async function loadEventLogRange(args) {
|
|
|
45097
45107
|
});
|
|
45098
45108
|
return hotRows;
|
|
45099
45109
|
}
|
|
45100
|
-
coldRows.sort((a, b) => {
|
|
45101
|
-
const at = a.received_at instanceof Date ? a.received_at.getTime() : new Date(a.received_at).getTime();
|
|
45102
|
-
return (b.received_at instanceof Date ? b.received_at.getTime() : new Date(b.received_at).getTime()) - at;
|
|
45103
|
-
});
|
|
45104
45110
|
return [...hotRows, ...coldRows.slice(coldOffset, coldOffset + remaining)];
|
|
45105
45111
|
}
|
|
45106
45112
|
/**
|
|
@@ -46273,14 +46279,14 @@ var init_admin_config = __esmMin((() => {
|
|
|
46273
46279
|
function createHealthRoutes$1(deps = {}) {
|
|
46274
46280
|
return createHealthRoutes({
|
|
46275
46281
|
livenessInfo: () => ({
|
|
46276
|
-
version: "0.9.
|
|
46277
|
-
buildDate: "2026-09-
|
|
46278
|
-
buildCommit: "
|
|
46279
|
-
sdkVersion: "0.9.
|
|
46282
|
+
version: "0.9.1",
|
|
46283
|
+
buildDate: "2026-09-22T01:37:00.466Z",
|
|
46284
|
+
buildCommit: "38c8c0e0b",
|
|
46285
|
+
sdkVersion: "0.9.1",
|
|
46280
46286
|
sdkBundleHash: "b012bd8bace3df9e574252bf290c652bc39766da617acf51729a08586756266d",
|
|
46281
|
-
sharedVersion: "0.9.
|
|
46282
|
-
sharedBundleHash: "
|
|
46283
|
-
engineVersion: "0.9.
|
|
46287
|
+
sharedVersion: "0.9.1",
|
|
46288
|
+
sharedBundleHash: "500b8ea553b9686ed8e5f6dda956dbcf2d429fed6153c46aefdc687643c2dfc5",
|
|
46289
|
+
engineVersion: "0.9.1",
|
|
46284
46290
|
engineBundleHash: "c5e0e34d8d7f56f747bba71076a5fbccac4c932be855ef71c596b4211ca8698c"
|
|
46285
46291
|
}),
|
|
46286
46292
|
readinessCheck: deps.db ? async () => {
|
|
@@ -46316,7 +46322,7 @@ function createCapabilitiesRoutes() {
|
|
|
46316
46322
|
const app = new Hono();
|
|
46317
46323
|
app.get("/api/v1/capabilities", (c) => {
|
|
46318
46324
|
const manifest = {
|
|
46319
|
-
orchestratorVersion: "0.9.
|
|
46325
|
+
orchestratorVersion: "0.9.1",
|
|
46320
46326
|
protocolVersion: PROTOCOL_VERSION,
|
|
46321
46327
|
minProtocolVersion: MIN_PROTOCOL_VERSION
|
|
46322
46328
|
};
|
|
@@ -49609,7 +49615,7 @@ var init_app = __esmMin((() => {
|
|
|
49609
49615
|
init_log_chunk_sink();
|
|
49610
49616
|
init_agent_metrics_aggregator();
|
|
49611
49617
|
logger$63 = createLogger({ prefix: "app" });
|
|
49612
|
-
ORCHESTRATOR_VERSION$2 = "0.9.
|
|
49618
|
+
ORCHESTRATOR_VERSION$2 = "0.9.1";
|
|
49613
49619
|
SourceLocationStore = class {
|
|
49614
49620
|
cache = /* @__PURE__ */ new Map();
|
|
49615
49621
|
key(workflowName, jobName) {
|
|
@@ -63411,7 +63417,7 @@ var logger$45, SOFTWARE_VERSION$1, PeerClient$1;
|
|
|
63411
63417
|
var init_peer_client = __esmMin((() => {
|
|
63412
63418
|
init_peer_crypto();
|
|
63413
63419
|
logger$45 = createLogger({ prefix: "peer-client" });
|
|
63414
|
-
SOFTWARE_VERSION$1 = "0.9.
|
|
63420
|
+
SOFTWARE_VERSION$1 = "0.9.1";
|
|
63415
63421
|
PeerClient$1 = class {
|
|
63416
63422
|
ws = null;
|
|
63417
63423
|
_state = "disconnected";
|
|
@@ -65425,7 +65431,7 @@ var init_peer_handler = __esmMin((() => {
|
|
|
65425
65431
|
init_peer_crypto();
|
|
65426
65432
|
init_join_token();
|
|
65427
65433
|
logger$43 = createLogger({ prefix: "peer-handler" });
|
|
65428
|
-
SOFTWARE_VERSION = "0.9.
|
|
65434
|
+
SOFTWARE_VERSION = "0.9.1";
|
|
65429
65435
|
RATE_LIMIT_MAX = 5;
|
|
65430
65436
|
RATE_LIMIT_WINDOW_MS = 6e4;
|
|
65431
65437
|
}));
|
|
@@ -67788,11 +67794,13 @@ async function loadSecretAuditLogRange(args) {
|
|
|
67788
67794
|
table: "secret_audit_log",
|
|
67789
67795
|
tenantId: tenant,
|
|
67790
67796
|
fromTs: coldFromTs,
|
|
67791
|
-
toTs: coldToTs
|
|
67797
|
+
toTs: coldToTs,
|
|
67798
|
+
order: "desc"
|
|
67792
67799
|
})) {
|
|
67793
67800
|
if (contextName && row.context_name !== contextName) continue;
|
|
67794
67801
|
if (action && row.action !== action) continue;
|
|
67795
67802
|
coldRows.push(row);
|
|
67803
|
+
if (coldRows.length >= coldOffset + remaining) break;
|
|
67796
67804
|
}
|
|
67797
67805
|
} catch (err) {
|
|
67798
67806
|
if (hotRows.length === 0) {
|
|
@@ -67802,7 +67810,6 @@ async function loadSecretAuditLogRange(args) {
|
|
|
67802
67810
|
logger$37.warn("cold-store fetchRange failed; returning hot rows only", { error: toErrorMessage(err) });
|
|
67803
67811
|
return hotRows;
|
|
67804
67812
|
}
|
|
67805
|
-
coldRows.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
67806
67813
|
const coldSlice = coldRows.slice(coldOffset, coldOffset + remaining);
|
|
67807
67814
|
return [...hotRows, ...coldSlice];
|
|
67808
67815
|
}
|
|
@@ -73937,6 +73944,10 @@ async function bootstrapOrchestrator$1(config, hooks, options) {
|
|
|
73937
73944
|
config: csConfig,
|
|
73938
73945
|
instanceId: config.instanceId,
|
|
73939
73946
|
kdb: db,
|
|
73947
|
+
chunkCache: new ChunkLru({
|
|
73948
|
+
maxBytes: COLD_STORE_CHUNK_CACHE_BYTES,
|
|
73949
|
+
sizeOf: (v) => v.byteLength
|
|
73950
|
+
}),
|
|
73940
73951
|
log: (level, msg, extra) => {
|
|
73941
73952
|
if (level === "info") logger$25.info(msg, extra);
|
|
73942
73953
|
else if (level === "warn") logger$25.warn(msg, extra);
|
|
@@ -74805,7 +74816,7 @@ async function bootstrapOrchestrator$1(config, hooks, options) {
|
|
|
74805
74816
|
markProcessingDepsReady();
|
|
74806
74817
|
tryDispatchNextQueuedRef = tryDispatchNextQueued;
|
|
74807
74818
|
ingestOverflowReplayer.setReinjectDirect(reinjectDirect);
|
|
74808
|
-
const server = serve({
|
|
74819
|
+
const server = applyProxyKeepAliveTimeouts(serve({
|
|
74809
74820
|
fetch: app.fetch,
|
|
74810
74821
|
port: config.port,
|
|
74811
74822
|
hostname: config.host,
|
|
@@ -74817,7 +74828,7 @@ async function bootstrapOrchestrator$1(config, hooks, options) {
|
|
|
74817
74828
|
mode: config.mode,
|
|
74818
74829
|
environment: config.nodeEnv
|
|
74819
74830
|
});
|
|
74820
|
-
});
|
|
74831
|
+
}));
|
|
74821
74832
|
const heartbeatMonitor = new AgentHeartbeatMonitor({
|
|
74822
74833
|
registry: agentRegistry,
|
|
74823
74834
|
dispatcher
|
|
@@ -75146,7 +75157,7 @@ async function bootstrapOrchestrator$1(config, hooks, options) {
|
|
|
75146
75157
|
]
|
|
75147
75158
|
});
|
|
75148
75159
|
}
|
|
75149
|
-
var logger$25;
|
|
75160
|
+
var logger$25, COLD_STORE_CHUNK_CACHE_BYTES;
|
|
75150
75161
|
var init_orchestrator_core = __esmMin((() => {
|
|
75151
75162
|
init_data_dir();
|
|
75152
75163
|
init_reload();
|
|
@@ -75269,6 +75280,7 @@ var init_orchestrator_core = __esmMin((() => {
|
|
|
75269
75280
|
init_disk_guard();
|
|
75270
75281
|
init_types$1();
|
|
75271
75282
|
logger$25 = createLogger({ prefix: "core" });
|
|
75283
|
+
COLD_STORE_CHUNK_CACHE_BYTES = 134217728;
|
|
75272
75284
|
}));
|
|
75273
75285
|
//#endregion
|
|
75274
75286
|
//#region src/contexts/protection/aggregate.ts
|
|
@@ -95227,7 +95239,7 @@ async function bootstrapWorker(config, _opts) {
|
|
|
95227
95239
|
onConcurrencyReport: void 0
|
|
95228
95240
|
});
|
|
95229
95241
|
app.get("/ws", upgradeWebSocket(() => agentWsHandler));
|
|
95230
|
-
const server = serve({
|
|
95242
|
+
const server = applyProxyKeepAliveTimeouts(serve({
|
|
95231
95243
|
fetch: app.fetch,
|
|
95232
95244
|
port: config.port,
|
|
95233
95245
|
hostname: config.host,
|
|
@@ -95240,7 +95252,7 @@ async function bootstrapWorker(config, _opts) {
|
|
|
95240
95252
|
coordinatorUrls: coordUrls,
|
|
95241
95253
|
instanceId: config.cluster.instanceId
|
|
95242
95254
|
});
|
|
95243
|
-
});
|
|
95255
|
+
}));
|
|
95244
95256
|
const heartbeatMonitor = new AgentHeartbeatMonitor({
|
|
95245
95257
|
registry: agentRegistry,
|
|
95246
95258
|
dispatcher
|
|
@@ -95353,13 +95365,13 @@ var init_worker_core = __esmMin((() => {
|
|
|
95353
95365
|
init_peer_outbox();
|
|
95354
95366
|
init_worker_outbox_relay();
|
|
95355
95367
|
init_app_on_error();
|
|
95356
|
-
ORCHESTRATOR_VERSION$1 = "0.9.
|
|
95357
|
-
WORKER_BUILD_COMMIT = "
|
|
95358
|
-
WORKER_SDK_VERSION = "0.9.
|
|
95368
|
+
ORCHESTRATOR_VERSION$1 = "0.9.1";
|
|
95369
|
+
WORKER_BUILD_COMMIT = "38c8c0e0b";
|
|
95370
|
+
WORKER_SDK_VERSION = "0.9.1";
|
|
95359
95371
|
WORKER_SDK_BUNDLE_HASH = "b012bd8bace3df9e574252bf290c652bc39766da617acf51729a08586756266d";
|
|
95360
|
-
WORKER_SHARED_VERSION = "0.9.
|
|
95361
|
-
WORKER_SHARED_BUNDLE_HASH = "
|
|
95362
|
-
WORKER_ENGINE_VERSION = "0.9.
|
|
95372
|
+
WORKER_SHARED_VERSION = "0.9.1";
|
|
95373
|
+
WORKER_SHARED_BUNDLE_HASH = "500b8ea553b9686ed8e5f6dda956dbcf2d429fed6153c46aefdc687643c2dfc5";
|
|
95374
|
+
WORKER_ENGINE_VERSION = "0.9.1";
|
|
95363
95375
|
WORKER_ENGINE_BUNDLE_HASH = "c5e0e34d8d7f56f747bba71076a5fbccac4c932be855ef71c596b4211ca8698c";
|
|
95364
95376
|
logger$2 = createLogger({ prefix: "worker" });
|
|
95365
95377
|
DRAIN_TIMEOUT_MS = 3e5;
|
|
@@ -95387,13 +95399,13 @@ init_processor();
|
|
|
95387
95399
|
init_verify_inbound();
|
|
95388
95400
|
init_ingest_overflow_types();
|
|
95389
95401
|
init_scope_routing();
|
|
95390
|
-
const ORCHESTRATOR_VERSION = "0.9.
|
|
95391
|
-
const BUILD_COMMIT = "
|
|
95392
|
-
const SDK_VERSION = "0.9.
|
|
95402
|
+
const ORCHESTRATOR_VERSION = "0.9.1";
|
|
95403
|
+
const BUILD_COMMIT = "38c8c0e0b";
|
|
95404
|
+
const SDK_VERSION = "0.9.1";
|
|
95393
95405
|
const SDK_BUNDLE_HASH = "b012bd8bace3df9e574252bf290c652bc39766da617acf51729a08586756266d";
|
|
95394
|
-
const SHARED_VERSION = "0.9.
|
|
95395
|
-
const SHARED_BUNDLE_HASH = "
|
|
95396
|
-
const ENGINE_VERSION = "0.9.
|
|
95406
|
+
const SHARED_VERSION = "0.9.1";
|
|
95407
|
+
const SHARED_BUNDLE_HASH = "500b8ea553b9686ed8e5f6dda956dbcf2d429fed6153c46aefdc687643c2dfc5";
|
|
95408
|
+
const ENGINE_VERSION = "0.9.1";
|
|
95397
95409
|
const ENGINE_BUNDLE_HASH = "c5e0e34d8d7f56f747bba71076a5fbccac4c932be855ef71c596b4211ca8698c";
|
|
95398
95410
|
const otelSdk = initTelemetry({
|
|
95399
95411
|
serviceName: "kici-orchestrator",
|
package/dist/standalone.js
CHANGED
|
@@ -3,7 +3,7 @@ import { dirname as __cjs_dirname } from "node:path";
|
|
|
3
3
|
const __filename = __cjs_fileURLToPath(import.meta.url);
|
|
4
4
|
__cjs_dirname(__filename);
|
|
5
5
|
import "node:module";
|
|
6
|
-
import { AgentDeliveryMode, AgentPlatform, BaseColdStore, ChunkRequestWaiter, addLogsToArchive, chunkBuffer, computeBackoffDelay, computeMigrationsHash, createDb, createHealthRoutes, createLogger, createMeter, createMetricsRoutes, createPool, createS3Client, decrypt, deriveKey, encodeKeySegment, encrypt, enrichRequestContext, formatDuration, getPrometheusExporter, getReconnectDelay, getRequestContext, guardStartup, initTelemetry, isPgUniqueViolation, logger, parseDatabaseUrl, redactConfig, requestContext, serializeError, setServiceName, setupGracefulShutdown, sha256, storeMigrationContentHash, toErrorMessage, validateRequiredTools } from "@kici-dev/shared";
|
|
6
|
+
import { AgentDeliveryMode, AgentPlatform, BaseColdStore, ChunkLru, ChunkRequestWaiter, addLogsToArchive, applyProxyKeepAliveTimeouts, chunkBuffer, computeBackoffDelay, computeMigrationsHash, createDb, createHealthRoutes, createLogger, createMeter, createMetricsRoutes, createPool, createS3Client, decrypt, deriveKey, encodeKeySegment, encrypt, enrichRequestContext, formatDuration, getPrometheusExporter, getReconnectDelay, getRequestContext, guardStartup, initTelemetry, isPgUniqueViolation, logger, parseDatabaseUrl, redactConfig, requestContext, serializeError, setServiceName, setupGracefulShutdown, sha256, storeMigrationContentHash, toErrorMessage, validateRequiredTools } from "@kici-dev/shared";
|
|
7
7
|
import { ACTOR_AGENT_SUFFIX, ALLOWED_SYSTEM_VARS, ARTIFACT_NAME_MAX_LENGTH, AccessLogAction, AccessLogOutcome, AccessLogSource, AccessLogTargetType, ActorType, AgentFailureCategory, ApprovalDecision, ArtifactCompleteAckOutcome, ArtifactDownloadOutcome, ArtifactUploadOutcome, AttestationOrigin, BREAKING_FLOOR, CANONICAL_STATUSES, CONTAINER_BUILD_RUNTIME_LABEL, CacheRefScope, CheckMode, CheckRunConclusion, CheckStepOutcome, CiTrustLevel, ConcurrencyStrategy, ContextDeleteErrorCode, ContextGateRejectReason, DASHBOARD_REQUEST_TYPE_SET, DEFAULT_APPROVAL_EXPIRY_HOURS, DEFAULT_APPROVAL_EXPIRY_SECONDS, DEFAULT_CONCURRENCY_STRATEGY, DEFAULT_HOLD_EXPIRY_SECONDS, EventLogSource, EventLogStatus, ExecutionJobStatus, ExecutionRunStatus, ExecutionStepStatus, FanoutCause, FanoutError, ForkPolicy, HeldRunQueueType, HeldRunStatus, HoldScope, HoldType, ID_TOKEN_CLAIM_NAMES, INIT_LABEL, INIT_RUNNER_ROLE_LABEL, INSTALL_JOB_ID_PREFIX, InitFailureCategory, InventorySelectorSchema, KICI_AGENT_ENV_PREFIX, KNOWN_ROLES, LabelMatcher, LockFileParseError, LogStream, MIN_APPROVAL_EXPIRY_SECONDS, MIN_PROTOCOL_VERSION, MinimumTrustSchema, ORCH_AGENT_CAPABILITIES, OWN_INGRESS_MODES, OrchLogPhase, OrchestratorMode, PLATFORM_CONNECTED_MODES, PLATFORM_TAINT_LABELS, PLATFORM_TO_ORCH_RECOGNIZED_TYPES, PRIVILEGED_ROOT_LABEL, PROTOCOL_VERSION, PayloadOmittedReason, RegisterableTriggerType, RunFailureClass, SCALER_EVENT_NAMES, SCHEMA_VERSION, SECURITY_HOLD_JOB_IDS, SSH_TRANSPORT_CAPABILITY, ScaleDownReason, ScalerBackendType, ScalerEventType, ScalerEventType as ScalerEventType$1, ScalerScaleDownPayload, ScalerScaleUpPayload, SetupStepType, SourceOrigin, SourceSubtype, TERMINAL_JOB_STATES, TERMINAL_RUN_STATES, TRIGGER_EVENT_TYPES, TimeoutReason, TraceCheck, TriggerSource, TrustTierSchema, VariantKind, WS_CLOSE_AGENT_AUTH_FAILED, WS_CLOSE_AUTH_TIMEOUT, WS_CLOSE_DISPATCH_ACK_TIMEOUT, WS_CLOSE_GOING_AWAY, WS_CLOSE_HEARTBEAT_TIMEOUT, WS_CLOSE_INTERNAL_ERROR, WS_CLOSE_INVALID_MESSAGE, WS_CLOSE_PLAN_LIMIT, WS_CLOSE_PROTOCOL_ERROR, WS_CLOSE_SUPERSEDED_BY_RECONNECT, WS_CLOSE_UNAUTHORIZED, WS_MAX_PAYLOAD_BYTES, WebhookRelayResult, WsRateLimiter, accessLogWarmSqlCase, agentAuthRequestSchema, agentLabelOf, agentToOrchestratorMessageSchema, agentTypeLabel, appendChecks, approvalExpiryHoursOf, approvalExpirySecondsOf, approvalTimeoutSecondsSchema, artifactInvalidNameError, assertValidSecretKey, attestationVerifyStatusSchema, buildEventClaims, buildIdTokenSubject, buildTrustedPassthroughEnv, canonicalizeCapability, canonicalizeLabel, canonicalizeLabelSet, canonicalizeLabels, canonicalizeMatcher, checkArtifactName, collectDiscriminatorTypes, createContentRequirementsTraceEntry, createDispatchFailureTraceEntry, createGlobalFilterTraceEntry, deriveOsArchLabels, derivePlatformTaints, fanoutEnvelopeFields, flattenActor, getAccessLogColdDays, getSecretAuditLogColdDays, githubIngressPath, globalEvalRoundResultSchema, hostLabel, hostSatisfiesTarget, hostToScalerPlatform, installGateJobId, isFailureStatus, isKnownCapability, isLockDynamicJobFn, isLockParallelStep, isLockStaticJob, isPullRequestFamilyTriggerEvent, isSecurityHoldJobId, isSelfReportedLabel, joinRequestSchema, logPullPlatformToOrchSchema, matchAllWorkflows, matchScopePattern, matchWorkflowsForEvent, matcherSatisfiedBy, materializeFanout, materializeResolvedHosts, materializeResolvedMatrix, matrixEnvelopeFields, mergeOrderedMaps, minAccessLogWarmDays, minSecretAuditLogWarmDays, normalizePersistedHoldType, partitionMatchers, peerAuthRequestSchema, peerFromPeerMessageSchema, peerHelloResponseSchema, peerHelloSchema, persistedHoldTypeSpellings, platformToOsArchLabels, platformToTaints, reservedEventNamePrefix, resolveRoleLabels, resolveScheduleInputs, resolveSecretsWithProvenance, scalerAgentLabels, scalerLabel, scalerPlatformSchema, scheduleTriggerKey, secretAuditLogWarmSqlCase, shouldRecordAccess, shouldRecordSecretResolve, truncateDecisionsToByteBudget, trustPolicyUpdateSchema, trustedContributorHoldReason, validateScopeName, validateSecretKey, wrapUntrusted } from "@kici-dev/engine";
|
|
8
8
|
import * as os$1 from "node:os";
|
|
9
9
|
import os, { cpus, freemem, homedir, hostname, release, tmpdir, totalmem, uptime, userInfo } from "node:os";
|
|
@@ -1359,7 +1359,7 @@ var logger$135, SOFTWARE_VERSION$1, PeerClient$1;
|
|
|
1359
1359
|
var init_peer_client = __esmMin((() => {
|
|
1360
1360
|
init_peer_crypto();
|
|
1361
1361
|
logger$135 = createLogger({ prefix: "peer-client" });
|
|
1362
|
-
SOFTWARE_VERSION$1 = "0.9.
|
|
1362
|
+
SOFTWARE_VERSION$1 = "0.9.1";
|
|
1363
1363
|
PeerClient$1 = class {
|
|
1364
1364
|
ws = null;
|
|
1365
1365
|
_state = "disconnected";
|
|
@@ -3373,7 +3373,7 @@ var init_peer_handler = __esmMin((() => {
|
|
|
3373
3373
|
init_peer_crypto();
|
|
3374
3374
|
init_join_token();
|
|
3375
3375
|
logger$133 = createLogger({ prefix: "peer-handler" });
|
|
3376
|
-
SOFTWARE_VERSION = "0.9.
|
|
3376
|
+
SOFTWARE_VERSION = "0.9.1";
|
|
3377
3377
|
RATE_LIMIT_MAX = 5;
|
|
3378
3378
|
RATE_LIMIT_WINDOW_MS = 6e4;
|
|
3379
3379
|
}));
|
|
@@ -12938,28 +12938,41 @@ async function loadAccessLogRange(args) {
|
|
|
12938
12938
|
const coldToTs = toTs && toTs < warmCutoff ? toTs : warmCutoff;
|
|
12939
12939
|
const coldRemaining = limit - hotItems.length;
|
|
12940
12940
|
const tenantToScan = filter.orgId ?? "__orchestrator__";
|
|
12941
|
+
const matches = (row) => {
|
|
12942
|
+
if (filter.actorType && row.actor_type !== filter.actorType) return false;
|
|
12943
|
+
if (filter.actorId && row.actor_id !== filter.actorId) return false;
|
|
12944
|
+
if (filter.action && row.action !== filter.action) return false;
|
|
12945
|
+
if (filter.source && row.source !== filter.source) return false;
|
|
12946
|
+
if (filter.outcome && row.outcome !== filter.outcome) return false;
|
|
12947
|
+
if (filter.targetType && row.target_type !== filter.targetType) return false;
|
|
12948
|
+
if (filter.targetId && row.target_id !== filter.targetId) return false;
|
|
12949
|
+
if (filter.agentLabel && row.agent_label !== filter.agentLabel) return false;
|
|
12950
|
+
if (filter.agentOnly && row.agent_label == null) return false;
|
|
12951
|
+
if (filter.q && filter.q.length > 0) {
|
|
12952
|
+
if (!(row.error_message ?? "").toLowerCase().includes(filter.q.toLowerCase())) return false;
|
|
12953
|
+
}
|
|
12954
|
+
return true;
|
|
12955
|
+
};
|
|
12956
|
+
const beforeCursor = (it) => !cursor || cursor.source !== "cold" || it.createdAt < cursor.createdAt || it.createdAt === cursor.createdAt && it.id < cursor.id;
|
|
12941
12957
|
const coldItems = [];
|
|
12958
|
+
let stoppedEarly = false;
|
|
12942
12959
|
try {
|
|
12943
12960
|
for await (const row of coldStore.fetchRange({
|
|
12944
12961
|
db: "orchestrator",
|
|
12945
12962
|
table: "access_log",
|
|
12946
12963
|
tenantId: tenantToScan,
|
|
12947
12964
|
fromTs: coldFromTs,
|
|
12948
|
-
toTs: coldToTs
|
|
12965
|
+
toTs: coldToTs,
|
|
12966
|
+
order: "desc"
|
|
12949
12967
|
})) {
|
|
12950
|
-
if (
|
|
12951
|
-
|
|
12952
|
-
if (
|
|
12953
|
-
if (
|
|
12954
|
-
|
|
12955
|
-
|
|
12956
|
-
|
|
12957
|
-
|
|
12958
|
-
if (filter.agentOnly && row.agent_label == null) continue;
|
|
12959
|
-
if (filter.q && filter.q.length > 0) {
|
|
12960
|
-
if (!(row.error_message ?? "").toLowerCase().includes(filter.q.toLowerCase())) continue;
|
|
12961
|
-
}
|
|
12962
|
-
coldItems.push(toAccessLogItem(row));
|
|
12968
|
+
if (!matches(row)) continue;
|
|
12969
|
+
const item = toAccessLogItem(row);
|
|
12970
|
+
if (!beforeCursor(item)) continue;
|
|
12971
|
+
if (coldItems.length >= coldRemaining && item.createdAt < coldItems[coldRemaining - 1].createdAt) {
|
|
12972
|
+
stoppedEarly = true;
|
|
12973
|
+
break;
|
|
12974
|
+
}
|
|
12975
|
+
coldItems.push(item);
|
|
12963
12976
|
}
|
|
12964
12977
|
} catch (err) {
|
|
12965
12978
|
if (cursor?.source === "cold") {
|
|
@@ -12978,14 +12991,9 @@ async function loadAccessLogRange(args) {
|
|
|
12978
12991
|
nextCursor: hotHasMore && hotItems.length > 0 ? buildHotCursor(hotItems[hotItems.length - 1]) : null
|
|
12979
12992
|
};
|
|
12980
12993
|
}
|
|
12981
|
-
coldItems.sort((a, b) => a.createdAt < b.createdAt ? 1 : a.createdAt > b.createdAt ? -1 : 0);
|
|
12982
|
-
|
|
12983
|
-
|
|
12984
|
-
coldStart = coldItems.findIndex((it) => it.createdAt < cursor.createdAt || it.createdAt === cursor.createdAt && it.id < cursor.id);
|
|
12985
|
-
if (coldStart < 0) coldStart = coldItems.length;
|
|
12986
|
-
}
|
|
12987
|
-
const coldPage = coldItems.slice(coldStart, coldStart + coldRemaining);
|
|
12988
|
-
const coldHasMore = coldStart + coldRemaining < coldItems.length;
|
|
12994
|
+
coldItems.sort((a, b) => a.createdAt < b.createdAt ? 1 : a.createdAt > b.createdAt ? -1 : a.id < b.id ? 1 : a.id > b.id ? -1 : 0);
|
|
12995
|
+
const coldPage = coldItems.slice(0, coldRemaining);
|
|
12996
|
+
const coldHasMore = stoppedEarly || coldItems.length > coldRemaining;
|
|
12989
12997
|
return {
|
|
12990
12998
|
items: [...hotItems, ...coldPage],
|
|
12991
12999
|
nextCursor: coldHasMore && coldPage.length > 0 ? buildColdCursor(coldPage[coldPage.length - 1]) : hotHasMore && hotItems.length > 0 && coldPage.length === 0 ? buildHotCursor(hotItems[hotItems.length - 1]) : null
|
|
@@ -60206,7 +60214,8 @@ async function loadEventLogRange(args) {
|
|
|
60206
60214
|
table: "event_log",
|
|
60207
60215
|
tenantId: routingKey,
|
|
60208
60216
|
fromTs: coldFromTs,
|
|
60209
|
-
toTs: coldToTs
|
|
60217
|
+
toTs: coldToTs,
|
|
60218
|
+
order: "desc"
|
|
60210
60219
|
})) {
|
|
60211
60220
|
if (orgId !== void 0 && row.org_id !== orgId) continue;
|
|
60212
60221
|
if (event !== void 0 && row.event !== event) continue;
|
|
@@ -60214,6 +60223,7 @@ async function loadEventLogRange(args) {
|
|
|
60214
60223
|
if (status !== void 0 && row.status !== status) continue;
|
|
60215
60224
|
if (deliveryId !== void 0 && !row.delivery_id.includes(deliveryId)) continue;
|
|
60216
60225
|
coldRows.push(row);
|
|
60226
|
+
if (coldRows.length >= coldOffset + remaining) break;
|
|
60217
60227
|
}
|
|
60218
60228
|
} catch (err) {
|
|
60219
60229
|
if (hotRows.length === 0) {
|
|
@@ -60229,10 +60239,6 @@ async function loadEventLogRange(args) {
|
|
|
60229
60239
|
});
|
|
60230
60240
|
return hotRows;
|
|
60231
60241
|
}
|
|
60232
|
-
coldRows.sort((a, b) => {
|
|
60233
|
-
const at = a.received_at instanceof Date ? a.received_at.getTime() : new Date(a.received_at).getTime();
|
|
60234
|
-
return (b.received_at instanceof Date ? b.received_at.getTime() : new Date(b.received_at).getTime()) - at;
|
|
60235
|
-
});
|
|
60236
60242
|
return [...hotRows, ...coldRows.slice(coldOffset, coldOffset + remaining)];
|
|
60237
60243
|
}
|
|
60238
60244
|
/**
|
|
@@ -61405,14 +61411,14 @@ var init_admin_config = __esmMin((() => {
|
|
|
61405
61411
|
function createHealthRoutes$1(deps = {}) {
|
|
61406
61412
|
return createHealthRoutes({
|
|
61407
61413
|
livenessInfo: () => ({
|
|
61408
|
-
version: "0.9.
|
|
61409
|
-
buildDate: "2026-09-
|
|
61410
|
-
buildCommit: "
|
|
61411
|
-
sdkVersion: "0.9.
|
|
61414
|
+
version: "0.9.1",
|
|
61415
|
+
buildDate: "2026-09-22T01:37:00.466Z",
|
|
61416
|
+
buildCommit: "38c8c0e0b",
|
|
61417
|
+
sdkVersion: "0.9.1",
|
|
61412
61418
|
sdkBundleHash: "b012bd8bace3df9e574252bf290c652bc39766da617acf51729a08586756266d",
|
|
61413
|
-
sharedVersion: "0.9.
|
|
61414
|
-
sharedBundleHash: "
|
|
61415
|
-
engineVersion: "0.9.
|
|
61419
|
+
sharedVersion: "0.9.1",
|
|
61420
|
+
sharedBundleHash: "500b8ea553b9686ed8e5f6dda956dbcf2d429fed6153c46aefdc687643c2dfc5",
|
|
61421
|
+
engineVersion: "0.9.1",
|
|
61416
61422
|
engineBundleHash: "c5e0e34d8d7f56f747bba71076a5fbccac4c932be855ef71c596b4211ca8698c"
|
|
61417
61423
|
}),
|
|
61418
61424
|
readinessCheck: deps.db ? async () => {
|
|
@@ -61448,7 +61454,7 @@ function createCapabilitiesRoutes() {
|
|
|
61448
61454
|
const app = new Hono();
|
|
61449
61455
|
app.get("/api/v1/capabilities", (c) => {
|
|
61450
61456
|
const manifest = {
|
|
61451
|
-
orchestratorVersion: "0.9.
|
|
61457
|
+
orchestratorVersion: "0.9.1",
|
|
61452
61458
|
protocolVersion: PROTOCOL_VERSION,
|
|
61453
61459
|
minProtocolVersion: MIN_PROTOCOL_VERSION
|
|
61454
61460
|
};
|
|
@@ -64390,7 +64396,7 @@ var init_app = __esmMin((() => {
|
|
|
64390
64396
|
init_log_chunk_sink();
|
|
64391
64397
|
init_agent_metrics_aggregator();
|
|
64392
64398
|
logger$32 = createLogger({ prefix: "app" });
|
|
64393
|
-
ORCHESTRATOR_VERSION$2 = "0.9.
|
|
64399
|
+
ORCHESTRATOR_VERSION$2 = "0.9.1";
|
|
64394
64400
|
SourceLocationStore = class {
|
|
64395
64401
|
cache = /* @__PURE__ */ new Map();
|
|
64396
64402
|
key(workflowName, jobName) {
|
|
@@ -75470,11 +75476,13 @@ async function loadSecretAuditLogRange(args) {
|
|
|
75470
75476
|
table: "secret_audit_log",
|
|
75471
75477
|
tenantId: tenant,
|
|
75472
75478
|
fromTs: coldFromTs,
|
|
75473
|
-
toTs: coldToTs
|
|
75479
|
+
toTs: coldToTs,
|
|
75480
|
+
order: "desc"
|
|
75474
75481
|
})) {
|
|
75475
75482
|
if (contextName && row.context_name !== contextName) continue;
|
|
75476
75483
|
if (action && row.action !== action) continue;
|
|
75477
75484
|
coldRows.push(row);
|
|
75485
|
+
if (coldRows.length >= coldOffset + remaining) break;
|
|
75478
75486
|
}
|
|
75479
75487
|
} catch (err) {
|
|
75480
75488
|
if (hotRows.length === 0) {
|
|
@@ -75484,7 +75492,6 @@ async function loadSecretAuditLogRange(args) {
|
|
|
75484
75492
|
logger$16.warn("cold-store fetchRange failed; returning hot rows only", { error: toErrorMessage(err) });
|
|
75485
75493
|
return hotRows;
|
|
75486
75494
|
}
|
|
75487
|
-
coldRows.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
75488
75495
|
const coldSlice = coldRows.slice(coldOffset, coldOffset + remaining);
|
|
75489
75496
|
return [...hotRows, ...coldSlice];
|
|
75490
75497
|
}
|
|
@@ -81488,6 +81495,10 @@ async function bootstrapOrchestrator$1(config, hooks, options) {
|
|
|
81488
81495
|
config: csConfig,
|
|
81489
81496
|
instanceId: config.instanceId,
|
|
81490
81497
|
kdb: db,
|
|
81498
|
+
chunkCache: new ChunkLru({
|
|
81499
|
+
maxBytes: COLD_STORE_CHUNK_CACHE_BYTES,
|
|
81500
|
+
sizeOf: (v) => v.byteLength
|
|
81501
|
+
}),
|
|
81491
81502
|
log: (level, msg, extra) => {
|
|
81492
81503
|
if (level === "info") logger$5.info(msg, extra);
|
|
81493
81504
|
else if (level === "warn") logger$5.warn(msg, extra);
|
|
@@ -82356,7 +82367,7 @@ async function bootstrapOrchestrator$1(config, hooks, options) {
|
|
|
82356
82367
|
markProcessingDepsReady();
|
|
82357
82368
|
tryDispatchNextQueuedRef = tryDispatchNextQueued;
|
|
82358
82369
|
ingestOverflowReplayer.setReinjectDirect(reinjectDirect);
|
|
82359
|
-
const server = serve({
|
|
82370
|
+
const server = applyProxyKeepAliveTimeouts(serve({
|
|
82360
82371
|
fetch: app.fetch,
|
|
82361
82372
|
port: config.port,
|
|
82362
82373
|
hostname: config.host,
|
|
@@ -82368,7 +82379,7 @@ async function bootstrapOrchestrator$1(config, hooks, options) {
|
|
|
82368
82379
|
mode: config.mode,
|
|
82369
82380
|
environment: config.nodeEnv
|
|
82370
82381
|
});
|
|
82371
|
-
});
|
|
82382
|
+
}));
|
|
82372
82383
|
const heartbeatMonitor = new AgentHeartbeatMonitor({
|
|
82373
82384
|
registry: agentRegistry,
|
|
82374
82385
|
dispatcher
|
|
@@ -82697,7 +82708,7 @@ async function bootstrapOrchestrator$1(config, hooks, options) {
|
|
|
82697
82708
|
]
|
|
82698
82709
|
});
|
|
82699
82710
|
}
|
|
82700
|
-
var logger$5;
|
|
82711
|
+
var logger$5, COLD_STORE_CHUNK_CACHE_BYTES;
|
|
82701
82712
|
var init_orchestrator_core = __esmMin((() => {
|
|
82702
82713
|
init_data_dir();
|
|
82703
82714
|
init_reload();
|
|
@@ -82820,6 +82831,7 @@ var init_orchestrator_core = __esmMin((() => {
|
|
|
82820
82831
|
init_disk_guard();
|
|
82821
82832
|
init_types$1();
|
|
82822
82833
|
logger$5 = createLogger({ prefix: "core" });
|
|
82834
|
+
COLD_STORE_CHUNK_CACHE_BYTES = 134217728;
|
|
82823
82835
|
}));
|
|
82824
82836
|
//#endregion
|
|
82825
82837
|
//#region src/secrets/context-secret-resolver.ts
|
|
@@ -84329,7 +84341,7 @@ async function bootstrapWorker(config, _opts) {
|
|
|
84329
84341
|
onConcurrencyReport: void 0
|
|
84330
84342
|
});
|
|
84331
84343
|
app.get("/ws", upgradeWebSocket(() => agentWsHandler));
|
|
84332
|
-
const server = serve({
|
|
84344
|
+
const server = applyProxyKeepAliveTimeouts(serve({
|
|
84333
84345
|
fetch: app.fetch,
|
|
84334
84346
|
port: config.port,
|
|
84335
84347
|
hostname: config.host,
|
|
@@ -84342,7 +84354,7 @@ async function bootstrapWorker(config, _opts) {
|
|
|
84342
84354
|
coordinatorUrls: coordUrls,
|
|
84343
84355
|
instanceId: config.cluster.instanceId
|
|
84344
84356
|
});
|
|
84345
|
-
});
|
|
84357
|
+
}));
|
|
84346
84358
|
const heartbeatMonitor = new AgentHeartbeatMonitor({
|
|
84347
84359
|
registry: agentRegistry,
|
|
84348
84360
|
dispatcher
|
|
@@ -84455,13 +84467,13 @@ var init_worker_core = __esmMin((() => {
|
|
|
84455
84467
|
init_peer_outbox();
|
|
84456
84468
|
init_worker_outbox_relay();
|
|
84457
84469
|
init_app_on_error();
|
|
84458
|
-
ORCHESTRATOR_VERSION$1 = "0.9.
|
|
84459
|
-
WORKER_BUILD_COMMIT = "
|
|
84460
|
-
WORKER_SDK_VERSION = "0.9.
|
|
84470
|
+
ORCHESTRATOR_VERSION$1 = "0.9.1";
|
|
84471
|
+
WORKER_BUILD_COMMIT = "38c8c0e0b";
|
|
84472
|
+
WORKER_SDK_VERSION = "0.9.1";
|
|
84461
84473
|
WORKER_SDK_BUNDLE_HASH = "b012bd8bace3df9e574252bf290c652bc39766da617acf51729a08586756266d";
|
|
84462
|
-
WORKER_SHARED_VERSION = "0.9.
|
|
84463
|
-
WORKER_SHARED_BUNDLE_HASH = "
|
|
84464
|
-
WORKER_ENGINE_VERSION = "0.9.
|
|
84474
|
+
WORKER_SHARED_VERSION = "0.9.1";
|
|
84475
|
+
WORKER_SHARED_BUNDLE_HASH = "500b8ea553b9686ed8e5f6dda956dbcf2d429fed6153c46aefdc687643c2dfc5";
|
|
84476
|
+
WORKER_ENGINE_VERSION = "0.9.1";
|
|
84465
84477
|
WORKER_ENGINE_BUNDLE_HASH = "c5e0e34d8d7f56f747bba71076a5fbccac4c932be855ef71c596b4211ca8698c";
|
|
84466
84478
|
logger$2 = createLogger({ prefix: "worker" });
|
|
84467
84479
|
DRAIN_TIMEOUT_MS = 3e5;
|
|
@@ -84486,13 +84498,13 @@ var init_worker_core = __esmMin((() => {
|
|
|
84486
84498
|
* Graceful shutdown:
|
|
84487
84499
|
* agent WS -> heartbeat -> HTTP -> DB
|
|
84488
84500
|
*/
|
|
84489
|
-
const ORCHESTRATOR_VERSION = "0.9.
|
|
84490
|
-
const BUILD_COMMIT = "
|
|
84491
|
-
const SDK_VERSION = "0.9.
|
|
84501
|
+
const ORCHESTRATOR_VERSION = "0.9.1";
|
|
84502
|
+
const BUILD_COMMIT = "38c8c0e0b";
|
|
84503
|
+
const SDK_VERSION = "0.9.1";
|
|
84492
84504
|
const SDK_BUNDLE_HASH = "b012bd8bace3df9e574252bf290c652bc39766da617acf51729a08586756266d";
|
|
84493
|
-
const SHARED_VERSION = "0.9.
|
|
84494
|
-
const SHARED_BUNDLE_HASH = "
|
|
84495
|
-
const ENGINE_VERSION = "0.9.
|
|
84505
|
+
const SHARED_VERSION = "0.9.1";
|
|
84506
|
+
const SHARED_BUNDLE_HASH = "500b8ea553b9686ed8e5f6dda956dbcf2d429fed6153c46aefdc687643c2dfc5";
|
|
84507
|
+
const ENGINE_VERSION = "0.9.1";
|
|
84496
84508
|
const ENGINE_BUNDLE_HASH = "c5e0e34d8d7f56f747bba71076a5fbccac4c932be855ef71c596b4211ca8698c";
|
|
84497
84509
|
const otelSdk = initTelemetry({
|
|
84498
84510
|
serviceName: "kici-orchestrator",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.9.
|
|
2
|
+
"version": "0.9.1",
|
|
3
3
|
"images": {
|
|
4
|
-
"kici-agent": "sha256:
|
|
5
|
-
"kici-orchestrator": "sha256:
|
|
4
|
+
"kici-agent": "sha256:e5d740180cf3aa12128355bc9ff9dd2594fc70b7362bf5884430f74cee6677ae",
|
|
5
|
+
"kici-orchestrator": "sha256:bfe2c58cd88e700f23e6e757ebdb92a97f840632bb1450643d46f5c4180dcb2c"
|
|
6
6
|
}
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kici-dev/orchestrator",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
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",
|
|
@@ -90,8 +90,8 @@
|
|
|
90
90
|
"ws": "^8.21.3",
|
|
91
91
|
"yaml": "^2.9.1",
|
|
92
92
|
"zod": "^4.6.5",
|
|
93
|
-
"@kici-dev/engine": "0.9.
|
|
94
|
-
"@kici-dev/shared": "0.9.
|
|
93
|
+
"@kici-dev/engine": "0.9.1",
|
|
94
|
+
"@kici-dev/shared": "0.9.1"
|
|
95
95
|
},
|
|
96
96
|
"kici": {
|
|
97
97
|
"metrics": {
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"@types/dockerode": "^4.0.1",
|
|
107
107
|
"@types/ws": "^8.18.1",
|
|
108
108
|
"kysely-ctl": "^0.21.0",
|
|
109
|
-
"@kici-dev/agent": "0.9.
|
|
109
|
+
"@kici-dev/agent": "0.9.1"
|
|
110
110
|
},
|
|
111
111
|
"scripts": {
|
|
112
112
|
"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.9.
|
|
6
|
-
"documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Forchestrator/0.9.
|
|
5
|
+
"name": "@kici-dev/orchestrator@0.9.1",
|
|
6
|
+
"documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Forchestrator/0.9.1/2061fac6-aebc-4b57-9d8b-6142fd482a5b",
|
|
7
7
|
"creationInfo": {
|
|
8
|
-
"created": "2026-09-
|
|
8
|
+
"created": "2026-09-22T02:16:40Z",
|
|
9
9
|
"creators": [
|
|
10
10
|
"Tool: kici-sbom-generator"
|
|
11
11
|
]
|
|
@@ -964,9 +964,9 @@
|
|
|
964
964
|
"homepage": "https://ericsmekens.github.io/jsep/tree/master/packages/regex#readme"
|
|
965
965
|
},
|
|
966
966
|
{
|
|
967
|
-
"SPDXID": "SPDXRef-Package--kici-dev-core-0.9.
|
|
967
|
+
"SPDXID": "SPDXRef-Package--kici-dev-core-0.9.1",
|
|
968
968
|
"name": "@kici-dev/core",
|
|
969
|
-
"versionInfo": "0.9.
|
|
969
|
+
"versionInfo": "0.9.1",
|
|
970
970
|
"downloadLocation": "NOASSERTION",
|
|
971
971
|
"filesAnalyzed": false,
|
|
972
972
|
"licenseConcluded": "NOASSERTION",
|
|
@@ -977,16 +977,16 @@
|
|
|
977
977
|
{
|
|
978
978
|
"referenceCategory": "PACKAGE-MANAGER",
|
|
979
979
|
"referenceType": "purl",
|
|
980
|
-
"referenceLocator": "pkg:npm/%40kici-dev/core@0.9.
|
|
980
|
+
"referenceLocator": "pkg:npm/%40kici-dev/core@0.9.1"
|
|
981
981
|
}
|
|
982
982
|
],
|
|
983
983
|
"description": "Light shared utilities for the KiCI stack (logging, errors, formatting, crypto, zx init, the TypeScript ESM loader hook). No server-side dependencies.",
|
|
984
984
|
"homepage": "https://kici.dev"
|
|
985
985
|
},
|
|
986
986
|
{
|
|
987
|
-
"SPDXID": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
987
|
+
"SPDXID": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
988
988
|
"name": "@kici-dev/engine",
|
|
989
|
-
"versionInfo": "0.9.
|
|
989
|
+
"versionInfo": "0.9.1",
|
|
990
990
|
"downloadLocation": "NOASSERTION",
|
|
991
991
|
"filesAnalyzed": false,
|
|
992
992
|
"licenseConcluded": "NOASSERTION",
|
|
@@ -997,7 +997,7 @@
|
|
|
997
997
|
{
|
|
998
998
|
"referenceCategory": "PACKAGE-MANAGER",
|
|
999
999
|
"referenceType": "purl",
|
|
1000
|
-
"referenceLocator": "pkg:npm/%40kici-dev/engine@0.9.
|
|
1000
|
+
"referenceLocator": "pkg:npm/%40kici-dev/engine@0.9.1"
|
|
1001
1001
|
}
|
|
1002
1002
|
],
|
|
1003
1003
|
"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.",
|
|
@@ -1006,7 +1006,7 @@
|
|
|
1006
1006
|
{
|
|
1007
1007
|
"SPDXID": "SPDXRef-RootPackage",
|
|
1008
1008
|
"name": "@kici-dev/orchestrator",
|
|
1009
|
-
"versionInfo": "0.9.
|
|
1009
|
+
"versionInfo": "0.9.1",
|
|
1010
1010
|
"downloadLocation": "NOASSERTION",
|
|
1011
1011
|
"filesAnalyzed": false,
|
|
1012
1012
|
"licenseConcluded": "NOASSERTION",
|
|
@@ -1017,16 +1017,16 @@
|
|
|
1017
1017
|
{
|
|
1018
1018
|
"referenceCategory": "PACKAGE-MANAGER",
|
|
1019
1019
|
"referenceType": "purl",
|
|
1020
|
-
"referenceLocator": "pkg:npm/%40kici-dev/orchestrator@0.9.
|
|
1020
|
+
"referenceLocator": "pkg:npm/%40kici-dev/orchestrator@0.9.1"
|
|
1021
1021
|
}
|
|
1022
1022
|
],
|
|
1023
1023
|
"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.",
|
|
1024
1024
|
"homepage": "https://kici.dev"
|
|
1025
1025
|
},
|
|
1026
1026
|
{
|
|
1027
|
-
"SPDXID": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
1027
|
+
"SPDXID": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
1028
1028
|
"name": "@kici-dev/shared",
|
|
1029
|
-
"versionInfo": "0.9.
|
|
1029
|
+
"versionInfo": "0.9.1",
|
|
1030
1030
|
"downloadLocation": "NOASSERTION",
|
|
1031
1031
|
"filesAnalyzed": false,
|
|
1032
1032
|
"licenseConcluded": "NOASSERTION",
|
|
@@ -1037,7 +1037,7 @@
|
|
|
1037
1037
|
{
|
|
1038
1038
|
"referenceCategory": "PACKAGE-MANAGER",
|
|
1039
1039
|
"referenceType": "purl",
|
|
1040
|
-
"referenceLocator": "pkg:npm/%40kici-dev/shared@0.9.
|
|
1040
|
+
"referenceLocator": "pkg:npm/%40kici-dev/shared@0.9.1"
|
|
1041
1041
|
}
|
|
1042
1042
|
],
|
|
1043
1043
|
"description": "Shared utilities for the KiCI CI/CD stack — logging, zx setup, crypto, telemetry, health and metrics routes. No business logic.",
|
|
@@ -7676,62 +7676,62 @@
|
|
|
7676
7676
|
"relationshipType": "DEPENDS_ON"
|
|
7677
7677
|
},
|
|
7678
7678
|
{
|
|
7679
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.
|
|
7679
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.1",
|
|
7680
7680
|
"relatedSpdxElement": "SPDXRef-Package-oxc-transform-0.150.0",
|
|
7681
7681
|
"relationshipType": "DEPENDS_ON"
|
|
7682
7682
|
},
|
|
7683
7683
|
{
|
|
7684
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.
|
|
7684
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.1",
|
|
7685
7685
|
"relatedSpdxElement": "SPDXRef-Package-picocolors-1.1.1",
|
|
7686
7686
|
"relationshipType": "DEPENDS_ON"
|
|
7687
7687
|
},
|
|
7688
7688
|
{
|
|
7689
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.
|
|
7689
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.1",
|
|
7690
7690
|
"relatedSpdxElement": "SPDXRef-Package-winston-daily-rotate-file-5.0.0",
|
|
7691
7691
|
"relationshipType": "DEPENDS_ON"
|
|
7692
7692
|
},
|
|
7693
7693
|
{
|
|
7694
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.
|
|
7694
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.1",
|
|
7695
7695
|
"relatedSpdxElement": "SPDXRef-Package-winston-3.19.0",
|
|
7696
7696
|
"relationshipType": "DEPENDS_ON"
|
|
7697
7697
|
},
|
|
7698
7698
|
{
|
|
7699
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.
|
|
7699
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.1",
|
|
7700
7700
|
"relatedSpdxElement": "SPDXRef-Package-zod-4.6.5",
|
|
7701
7701
|
"relationshipType": "DEPENDS_ON"
|
|
7702
7702
|
},
|
|
7703
7703
|
{
|
|
7704
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.
|
|
7704
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-core-0.9.1",
|
|
7705
7705
|
"relatedSpdxElement": "SPDXRef-Package-zx-8.8.5",
|
|
7706
7706
|
"relationshipType": "DEPENDS_ON"
|
|
7707
7707
|
},
|
|
7708
7708
|
{
|
|
7709
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
7709
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
7710
7710
|
"relatedSpdxElement": "SPDXRef-Package-jose-6.2.12",
|
|
7711
7711
|
"relationshipType": "DEPENDS_ON"
|
|
7712
7712
|
},
|
|
7713
7713
|
{
|
|
7714
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
7714
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
7715
7715
|
"relatedSpdxElement": "SPDXRef-Package-jsonpath-plus-10.4.0",
|
|
7716
7716
|
"relationshipType": "DEPENDS_ON"
|
|
7717
7717
|
},
|
|
7718
7718
|
{
|
|
7719
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
7719
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
7720
7720
|
"relatedSpdxElement": "SPDXRef-Package-picomatch-4.0.7",
|
|
7721
7721
|
"relationshipType": "DEPENDS_ON"
|
|
7722
7722
|
},
|
|
7723
7723
|
{
|
|
7724
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
7724
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
7725
7725
|
"relatedSpdxElement": "SPDXRef-Package-safe-regex-2.1.1",
|
|
7726
7726
|
"relationshipType": "DEPENDS_ON"
|
|
7727
7727
|
},
|
|
7728
7728
|
{
|
|
7729
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
7729
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
7730
7730
|
"relatedSpdxElement": "SPDXRef-Package-yaml-2.9.1",
|
|
7731
7731
|
"relationshipType": "DEPENDS_ON"
|
|
7732
7732
|
},
|
|
7733
7733
|
{
|
|
7734
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
7734
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
7735
7735
|
"relatedSpdxElement": "SPDXRef-Package-zod-4.6.5",
|
|
7736
7736
|
"relationshipType": "DEPENDS_ON"
|
|
7737
7737
|
},
|
|
@@ -7767,12 +7767,12 @@
|
|
|
7767
7767
|
},
|
|
7768
7768
|
{
|
|
7769
7769
|
"spdxElementId": "SPDXRef-RootPackage",
|
|
7770
|
-
"relatedSpdxElement": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
7770
|
+
"relatedSpdxElement": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
7771
7771
|
"relationshipType": "DEPENDS_ON"
|
|
7772
7772
|
},
|
|
7773
7773
|
{
|
|
7774
7774
|
"spdxElementId": "SPDXRef-RootPackage",
|
|
7775
|
-
"relatedSpdxElement": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7775
|
+
"relatedSpdxElement": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7776
7776
|
"relationshipType": "DEPENDS_ON"
|
|
7777
7777
|
},
|
|
7778
7778
|
{
|
|
@@ -7881,117 +7881,117 @@
|
|
|
7881
7881
|
"relationshipType": "DEPENDS_ON"
|
|
7882
7882
|
},
|
|
7883
7883
|
{
|
|
7884
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7884
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7885
7885
|
"relatedSpdxElement": "SPDXRef-Package--aws-sdk-client-s3-3.1135.0",
|
|
7886
7886
|
"relationshipType": "DEPENDS_ON"
|
|
7887
7887
|
},
|
|
7888
7888
|
{
|
|
7889
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7890
|
-
"relatedSpdxElement": "SPDXRef-Package--kici-dev-core-0.9.
|
|
7889
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7890
|
+
"relatedSpdxElement": "SPDXRef-Package--kici-dev-core-0.9.1",
|
|
7891
7891
|
"relationshipType": "DEPENDS_ON"
|
|
7892
7892
|
},
|
|
7893
7893
|
{
|
|
7894
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7895
|
-
"relatedSpdxElement": "SPDXRef-Package--kici-dev-engine-0.9.
|
|
7894
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7895
|
+
"relatedSpdxElement": "SPDXRef-Package--kici-dev-engine-0.9.1",
|
|
7896
7896
|
"relationshipType": "DEPENDS_ON"
|
|
7897
7897
|
},
|
|
7898
7898
|
{
|
|
7899
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7899
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7900
7900
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-api-1.9.1",
|
|
7901
7901
|
"relationshipType": "DEPENDS_ON"
|
|
7902
7902
|
},
|
|
7903
7903
|
{
|
|
7904
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7904
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7905
7905
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-metrics-otlp-http-0.222.0",
|
|
7906
7906
|
"relationshipType": "DEPENDS_ON"
|
|
7907
7907
|
},
|
|
7908
7908
|
{
|
|
7909
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7909
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7910
7910
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-prometheus-0.222.0",
|
|
7911
7911
|
"relationshipType": "DEPENDS_ON"
|
|
7912
7912
|
},
|
|
7913
7913
|
{
|
|
7914
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7914
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7915
7915
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-exporter-trace-otlp-http-0.222.0",
|
|
7916
7916
|
"relationshipType": "DEPENDS_ON"
|
|
7917
7917
|
},
|
|
7918
7918
|
{
|
|
7919
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7919
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7920
7920
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-instrumentation-runtime-node-0.35.0",
|
|
7921
7921
|
"relationshipType": "DEPENDS_ON"
|
|
7922
7922
|
},
|
|
7923
7923
|
{
|
|
7924
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7924
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7925
7925
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-resources-2.11.0",
|
|
7926
7926
|
"relationshipType": "DEPENDS_ON"
|
|
7927
7927
|
},
|
|
7928
7928
|
{
|
|
7929
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7929
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7930
7930
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-sdk-node-0.222.0",
|
|
7931
7931
|
"relationshipType": "DEPENDS_ON"
|
|
7932
7932
|
},
|
|
7933
7933
|
{
|
|
7934
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7934
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7935
7935
|
"relatedSpdxElement": "SPDXRef-Package--opentelemetry-semantic-conventions-1.43.0",
|
|
7936
7936
|
"relationshipType": "DEPENDS_ON"
|
|
7937
7937
|
},
|
|
7938
7938
|
{
|
|
7939
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7939
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7940
7940
|
"relatedSpdxElement": "SPDXRef-Package-archiver-8.0.0",
|
|
7941
7941
|
"relationshipType": "DEPENDS_ON"
|
|
7942
7942
|
},
|
|
7943
7943
|
{
|
|
7944
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7944
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7945
7945
|
"relatedSpdxElement": "SPDXRef-Package-diff-9.0.0",
|
|
7946
7946
|
"relationshipType": "DEPENDS_ON"
|
|
7947
7947
|
},
|
|
7948
7948
|
{
|
|
7949
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7949
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7950
7950
|
"relatedSpdxElement": "SPDXRef-Package-hono-4.13.7",
|
|
7951
7951
|
"relationshipType": "DEPENDS_ON"
|
|
7952
7952
|
},
|
|
7953
7953
|
{
|
|
7954
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7954
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7955
7955
|
"relatedSpdxElement": "SPDXRef-Package-kysely-0.29.4",
|
|
7956
7956
|
"relationshipType": "DEPENDS_ON"
|
|
7957
7957
|
},
|
|
7958
7958
|
{
|
|
7959
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7959
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7960
7960
|
"relatedSpdxElement": "SPDXRef-Package-oxc-transform-0.150.0",
|
|
7961
7961
|
"relationshipType": "DEPENDS_ON"
|
|
7962
7962
|
},
|
|
7963
7963
|
{
|
|
7964
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7964
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7965
7965
|
"relatedSpdxElement": "SPDXRef-Package-pg-8.23.0",
|
|
7966
7966
|
"relationshipType": "DEPENDS_ON"
|
|
7967
7967
|
},
|
|
7968
7968
|
{
|
|
7969
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7969
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7970
7970
|
"relatedSpdxElement": "SPDXRef-Package-picocolors-1.1.1",
|
|
7971
7971
|
"relationshipType": "DEPENDS_ON"
|
|
7972
7972
|
},
|
|
7973
7973
|
{
|
|
7974
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7974
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7975
7975
|
"relatedSpdxElement": "SPDXRef-Package-winston-daily-rotate-file-5.0.0",
|
|
7976
7976
|
"relationshipType": "DEPENDS_ON"
|
|
7977
7977
|
},
|
|
7978
7978
|
{
|
|
7979
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7979
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7980
7980
|
"relatedSpdxElement": "SPDXRef-Package-winston-3.19.0",
|
|
7981
7981
|
"relationshipType": "DEPENDS_ON"
|
|
7982
7982
|
},
|
|
7983
7983
|
{
|
|
7984
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7984
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7985
7985
|
"relatedSpdxElement": "SPDXRef-Package-yaml-2.9.1",
|
|
7986
7986
|
"relationshipType": "DEPENDS_ON"
|
|
7987
7987
|
},
|
|
7988
7988
|
{
|
|
7989
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7989
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7990
7990
|
"relatedSpdxElement": "SPDXRef-Package-zod-4.6.5",
|
|
7991
7991
|
"relationshipType": "DEPENDS_ON"
|
|
7992
7992
|
},
|
|
7993
7993
|
{
|
|
7994
|
-
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.
|
|
7994
|
+
"spdxElementId": "SPDXRef-Package--kici-dev-shared-0.9.1",
|
|
7995
7995
|
"relatedSpdxElement": "SPDXRef-Package-zx-8.8.5",
|
|
7996
7996
|
"relationshipType": "DEPENDS_ON"
|
|
7997
7997
|
},
|