@kici-dev/engine 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/audit/access-log-policy.d.ts +2 -2
  2. package/dist/audit/access-log-policy.js +2 -2
  3. package/dist/audit/activity.d.ts +1 -2
  4. package/dist/audit/activity.js +1 -2
  5. package/dist/audit/retention-policy.d.ts +1 -3
  6. package/dist/audit/retention-policy.js +1 -1
  7. package/dist/context/hold-reason.d.ts +3 -5
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +3 -2
  10. package/dist/labels.d.ts +1 -1
  11. package/dist/labels.js +1 -1
  12. package/dist/mcp/tool-schemas.d.ts +1 -1
  13. package/dist/mcp/tool-schemas.js +1 -1
  14. package/dist/metrics/catalog-policy.d.ts +1 -2
  15. package/dist/metrics/catalog-policy.js +1 -2
  16. package/dist/protocol/dashboard-global-workflows.d.ts +1 -1
  17. package/dist/protocol/messages/common.d.ts +0 -1
  18. package/dist/protocol/messages/common.js +0 -1
  19. package/dist/protocol/messages/dashboard.d.ts +1 -1
  20. package/dist/protocol/messages/dashboard.js +4 -4
  21. package/dist/protocol/messages/orchestrator-agent.d.ts +0 -1
  22. package/dist/protocol/messages/orchestrator-agent.js +0 -1
  23. package/dist/protocol/messages/peer.js +1 -1
  24. package/dist/protocol/messages/platform-orchestrator.d.ts +6 -6
  25. package/dist/protocol/messages/platform-orchestrator.js +6 -6
  26. package/dist/registration/registerable-trigger-type.d.ts +1 -1
  27. package/dist/registration/registerable-trigger-type.js +1 -1
  28. package/dist/trigger/decision-trace.d.ts +9 -3
  29. package/dist/trigger/decision-trace.js +3 -3
  30. package/dist/trigger/diff-range.d.ts +66 -0
  31. package/dist/trigger/diff-range.js +68 -0
  32. package/dist/trigger/matcher.d.ts +14 -1
  33. package/dist/trigger/matcher.js +53 -21
  34. package/dist/trigger/types.d.ts +14 -2
  35. package/package.json +2 -2
  36. package/sbom.spdx.json +5 -5
@@ -48,8 +48,8 @@ export interface AccessLogRateLimiter {
48
48
  permit(action: AccessLogAction, actorKey: string, perMinute: number): boolean;
49
49
  }
50
50
  /**
51
- * Policy table mirroring research-doc §2 verdicts (with the user's
52
- * §7 platform-operator override applied separately in `shouldRecordAccess`).
51
+ * Per-action recording policy (the platform-operator override is applied
52
+ * separately in `shouldRecordAccess`).
53
53
  *
54
54
  * Exhaustive over `AccessLogAction.options` — TypeScript catches additions.
55
55
  */
@@ -32,8 +32,8 @@ const AccessLogPolicyKind = z.enum([
32
32
  "rate_limit"
33
33
  ]);
34
34
  /**
35
- * Policy table mirroring research-doc §2 verdicts (with the user's
36
- * §7 platform-operator override applied separately in `shouldRecordAccess`).
35
+ * Per-action recording policy (the platform-operator override is applied
36
+ * separately in `shouldRecordAccess`).
37
37
  *
38
38
  * Exhaustive over `AccessLogAction.options` — TypeScript catches additions.
39
39
  */
@@ -2,8 +2,7 @@
2
2
  * Unified Activity row + filter schemas for the dashboard's federated
3
3
  * "Activity" view. Federates Platform `audit_log` (mutation events,
4
4
  * free-form target_type) with orchestrator `access_log` (reads + admin
5
- * mutations, strict-enum target_type) at the query layer — see plan
6
- * `~/.claude/plans/ui-audit-logs-page-sleepy-wave.md`.
5
+ * mutations, strict-enum target_type) at the query layer.
7
6
  *
8
7
  * The `source` discriminator on each row tells the UI whether to render
9
8
  * the audit_log or access_log column set. Fields unique to access_log
@@ -7,8 +7,7 @@ import { z } from "zod";
7
7
  * Unified Activity row + filter schemas for the dashboard's federated
8
8
  * "Activity" view. Federates Platform `audit_log` (mutation events,
9
9
  * free-form target_type) with orchestrator `access_log` (reads + admin
10
- * mutations, strict-enum target_type) at the query layer — see plan
11
- * `~/.claude/plans/ui-audit-logs-page-sleepy-wave.md`.
10
+ * mutations, strict-enum target_type) at the query layer.
12
11
  *
13
12
  * The `source` discriminator on each row tells the UI whether to render
14
13
  * the audit_log or access_log column set. Fields unique to access_log
@@ -8,9 +8,7 @@
8
8
  * `./access-log-policy.ts`; both modules classify by the same action
9
9
  * dimension, just for different downstream decisions.
10
10
  *
11
- * The classification table came from research-doc §5
12
- * and the user's
13
- * `## Decisions` section. Two override layers apply uniformly:
11
+ * Two override layers apply uniformly:
14
12
  *
15
13
  * 1. `outcome` is `denied` or `error` → retain 180d (forensic value).
16
14
  * 2. `actor.type === 'platform_operator'` → retain 365d
@@ -100,7 +100,7 @@ const FORENSIC_OUTCOME_DAYS = 180;
100
100
  const PLATFORM_OPERATOR_DAYS = 365;
101
101
  /**
102
102
  * Default warm TTL for action strings outside `AccessLogAction.options`. Hit
103
- * by E2E synthetic action names and would-be-future enum additions on a
103
+ * by synthetic test action names and would-be-future enum additions on a
104
104
  * rolling deploy. Matches the conservative `180d` mutations bucket so
105
105
  * unknown rows are never archived sooner than a tenant-plane mutation.
106
106
  */
@@ -4,16 +4,14 @@
4
4
  * `minimumTrust`.
5
5
  *
6
6
  * Single source of truth for the sentence: the orchestrator's trust gate emits
7
- * it, the ci-security DB fixture seeds it, and the unit and E2E assertions
8
- * compare against it. One copy means a copy edit moves every site at once
9
- * (`.claude/rules/code-style.md` § "Enums over hardcoded strings").
7
+ * it, and test fixtures and assertions compare against it. One copy means a
8
+ * copy edit moves every site at once.
10
9
  *
11
10
  * `held_runs.reason` is a free-text column, so this is a function rather than
12
11
  * an enum: the sentence carries the context name, which is per-hold data.
13
12
  *
14
13
  * Carries no runtime import on purpose — this module reaches the browser
15
- * through the engine barrel, which must pull in no Node built-ins
16
- * (`.claude/rules/engine.md` § "Browser-safe barrel export"). The one import
14
+ * through the engine barrel, which must pull in no Node built-ins. The one import
17
15
  * below is type-only and is erased at compile time.
18
16
  */
19
17
  import type { TrustTier } from './types.js';
package/dist/index.d.ts CHANGED
@@ -53,6 +53,7 @@ export * from './trigger/text-match.js';
53
53
  export * from './trigger/trigger-event-type.js';
54
54
  export * from './trigger/decision-trace.js';
55
55
  export * from './trigger/matcher.js';
56
+ export * from './trigger/diff-range.js';
56
57
  export { getRepoGlobMatcher } from './trigger/compiled-matchers.js';
57
58
  export { REGEX_NEGATIVE_ASSERTION, isNegatedPattern, negatedPatternReason, } from './repo/pattern-negation.js';
58
59
  export * from './trigger/event-buckets.js';
package/dist/index.js CHANGED
@@ -55,7 +55,8 @@ import { KNOWN_LINUX_CAPABILITIES, canonicalizeCapability, isKnownCapability } f
55
55
  import { compileSafeRegex, describeTextMatch, evaluateTextMatch, textMatchHasQuery } from "./trigger/text-match.js";
56
56
  import { REDACTED_TRACE_FIELD, TRACE_TEXT_MAX, TRACE_TRUNCATION_WORKFLOW_NAME, TraceCheck, TraceVerdict, appendChecks, createCommitMessageTraceEntry, createContentRequirementsTraceEntry, createDispatchFailureTraceEntry, createGlobalFilterTraceEntry, createTraceEntry, createTraceTruncationMarker, createWorkflowDecision, truncateDecisionsToByteBudget, truncateTraceText, utf8ByteLength } from "./trigger/decision-trace.js";
57
57
  import { getRepoGlobMatcher } from "./trigger/compiled-matchers.js";
58
- import { matchAllWorkflows, matchBranchPattern, matchPathPatterns, matchRepoPatterns, matchTrigger, matchWorkflowTriggers } from "./trigger/matcher.js";
58
+ import { diffRangeKindSchema, isDeferrableRange, isZeroSha, resolveDiffRange } from "./trigger/diff-range.js";
59
+ import { DEFERRED_PATHS_SUMMARY_SUFFIX, UnavailablePathsTrace, matchAllWorkflows, matchBranchPattern, matchPathPatterns, matchRepoPatterns, matchTrigger, matchWorkflowTriggers } from "./trigger/matcher.js";
59
60
  import { TRIGGER_TYPE_TO_EVENT_TYPES, matchWorkflowsForEvent, prepareEventBuckets } from "./trigger/event-buckets.js";
60
61
  import { scheduleTriggerKey } from "./trigger/schedule-key.js";
61
62
  import { DispatchInputType, InputDescriptor, InputsDescriptorMapSchema } from "./inputs/descriptor.js";
@@ -95,4 +96,4 @@ import { ARTIFACT_INVALID_NAME_PREFIX, ARTIFACT_NAME_MAX_LENGTH, ArtifactNameSch
95
96
  import { PLAN_TYPES, PaidPlanType, PlanType, isPaidTier, planRank } from "./billing/plan-type.js";
96
97
  import { SUBSCRIPTION_EXISTS_CODE, StripeSubscriptionStatus, blocksNewCheckout } from "./billing/subscription-status.js";
97
98
  import { INFRA_ALERT_TYPES, InfraAlertSeverity, InfraAlertType, normalizeInfraAlertSeverity } from "./diagnostics/infra-alert.js";
98
- export { ACCESS_LOG_COLD_DAYS, ACCESS_LOG_WARM_DAYS, ACTOR_AGENT_SUFFIX, AGENT_API_REQUEST_TIMEOUT_MS, AGENT_CAPABILITIES, AGENT_FEATURE_LABELS, AGENT_FEATURE_LABEL_PREFIX, AGENT_REQUIRED_KICI_VARS, ALLOWED_SYSTEM_VARS, ARTIFACT_INVALID_NAME_PREFIX, ARTIFACT_NAME_MAX_LENGTH, AccessLogAction, AccessLogOutcome, AccessLogPolicyKind, AccessLogSource, AccessLogTargetType, ActivityFilterSource, ActivityRowSource, ActorType, AgentCapabilityFlag, AgentFailureCategory, AgentFeature, ApprovalDecision, ArtifactCompleteAckOutcome, ArtifactDownloadOutcome, ArtifactNameSchema, ArtifactRejectReason, ArtifactUploadOutcome, AttestationOrigin, BREAKING_FLOOR, CANONICAL_STATUSES, CAPABILITY_LABEL_PREFIX, CLUSTER_MEMBERSHIP_MAX_WORKERS, CONTAINER_BUILD_RUNTIME_LABEL, CONTEXTS_MAX, CacheOutcome, CacheRefScope, CacheRunEventType, CacheStepType, CheckMode, CheckRunConclusion, CheckStepOutcome, CiTrustLevel, ConcurrencyStrategy, ConfigPathsSchema, ContextDeleteErrorCode, ContextGateRejectReason, ContextType, DASHBOARD_REQUEST_TYPES, DASHBOARD_REQUEST_TYPE_SET, DEAD_ORCH_FAILURE_REASON, DEFAULT_APPROVAL_EXPIRY_HOURS, DEFAULT_APPROVAL_EXPIRY_SECONDS, DEFAULT_CONCURRENCY_STRATEGY, DEFAULT_HOLD_EXPIRY_SECONDS, DEVELOPER_OPERATIONS, DashboardResponseErrorCode, DeploymentContainerRuntimeSchema, DeploymentIdentitySchema, DeploymentModeSchema, DispatchInputError, DispatchInputType, EVENT_LOG_PAYLOAD_CHUNK_BYTES, EventLogPayloadStreamError, EventLogSource, EventLogStatus, ExecutionJobStatus, ExecutionRunStatus, ExecutionStepStatus, FanoutCause, FanoutError, FleetHostDisposition, ForkPolicy, GLOBAL_APPROVAL_MIN_READER, GLOBAL_EVAL_SKIPS_RESULT_AWARE_LABEL, HEARTBEAT_CLOSE_MS, HEARTBEAT_DEGRADED_MS, HEARTBEAT_FRESH_MS, HEARTBEAT_STALE_THRESHOLD_SECONDS, HEARTBEAT_UNHEALTHY_MARK_MS, HOST_LABEL_PREFIX, HeldRunQueueType, HeldRunStatus, HoldScope, HoldType, HostInventoryEntry, HostPropertyValue, HostTargetSelector, HostTargetValue, ID_TOKEN_CLAIM_NAMES, INFRA_ALERT_TYPES, INIT_LABEL, INIT_RUNNER_ROLE_LABEL, INSTALL_JOB_ID_PREFIX, INTERNAL_EVENT_NAME_PREFIX, InfraAlertSeverity, InfraAlertType, InitFailureCategory, InputDescriptor, InputsDescriptorMapSchema, InventoryHostStatus, InventoryLifecycleClass, InventorySelectorSchema, JOB_IMAGE_RUNTIME_LABEL, JobKind, JobRejectReason, KICI_AGENT_ENV_PREFIX, KICI_EVENT_NAME_PREFIX, KNOWN_LINUX_CAPABILITIES, KNOWN_ROLES, LEGACY_STATUS_ALIASES, LabelMatcher, LockFileParseError, LogStream, MAX_APPROVAL_EXPIRY_HOURS, MAX_APPROVAL_EXPIRY_SECONDS, MAX_FANOUT_JOBS, MAX_JOBS_PER_RUN, MAX_MATRIX_MATERIALIZATION, MIN_APPROVAL_EXPIRY_SECONDS, MIN_PROTOCOL_VERSION, MatrixShapeError, MinimumTrustSchema, NACK_EXEMPT_MESSAGE_TYPES, NeedsEntrySchema, NeedsGroupEntrySchema, NeedsRunOn, NeedsWhen, ORCH_AGENT_CAPABILITIES, ORCH_CAPABILITIES, ORCH_TO_PLATFORM_RECOGNIZED_TYPES, OWN_INGRESS_MODES, OnUnreachableMode, OrchLogPhase, OrchRole, OrchestratorMode, PING_EVENT_TYPE, PLAN_TYPES, PLATFORM_CAPABILITIES, PLATFORM_CONNECTED_MODES, PLATFORM_TAINT_LABELS, PLATFORM_TO_ORCH_RECOGNIZED_TYPES, POLICY_BY_ACTION, PRIVILEGED_ROOT_LABEL, PROTOCOL_VERSION, PULL_REQUEST_FAMILY_TRIGGER_EVENTS, PaidPlanType, PatKind, PayloadOmittedReason, PlanType, REDACTED_TRACE_FIELD, REGEX_NEGATIVE_ASSERTION, RELAY_INGRESS_MODES, REPO_IDENTIFIER_MAX, RUNS_ON_LABELS_MAX, RUNTIME_LABEL_PREFIX, RegisterableTriggerType, RunFailureClass, RunsOnPick, RuntimeFact, SANDBOX_DEFAULT_VARS, SANDBOX_NETWORK_MODES, SCALER_EVENT_NAMES, SCHEMA_VERSION, SCOPE_NAME_MAX_LENGTH, SCOPE_SEGMENT_PATTERN, SECONDS_PER_HOUR, SECRET_KEY_MAX_LENGTH, SECRET_KEY_PATTERN, SECURITY_HOLD_JOB_IDS, SECURITY_HOLD_JOB_LABELS, SELF_REPORTED_LABEL_PREFIXES, SSH_TRANSPORT_CAPABILITY, STATE_REPLAY_MAX_RUNS, STATUS_EPOCH_MAX, STATUS_FAILURE_CLASS, STATUS_FREE_TEXT_MAX, STATUS_ID_MAX, STATUS_PRECEDENCE, SUBSCRIBABLE_WEBHOOK_EVENT_TYPES, SUBSCRIPTION_EXISTS_CODE, ScaleDownReason, ScalerArch, ScalerBackendType, ScalerEventType, ScalerOs, ScalerScaleDownPayload, ScalerScaleUpPayload, ScopeNameError, SecretKeyError, SetupStepType, SourceOrigin, SourceProvider, SourceSubtype, StatusFailureClass, StepApprovalOutcome, StepConcurrencyKind, StripeSubscriptionStatus, SubscribableWebhookEventType, TERMINAL_JOB_STATES, TERMINAL_RUN_STATES, TERMINAL_STEP_STATES, TRACE_TEXT_MAX, TRACE_TRUNCATION_WORKFLOW_NAME, TRIGGER_EVENT_META, TRIGGER_EVENT_TYPES, TRIGGER_TYPE_TO_EVENT_TYPES, TRUSTED_ENV_SCRUB_EXACT, TestRelayType, TimeoutReason, TraceCheck, TraceVerdict, TriggerSource, TrustTierSchema, UNRESOLVED_CLAIM, UnsupportedDispatchInputError, VariantKind, WEBHOOK_RELAY_CHUNK_SIZE, WEBHOOK_RELAY_MAX_BODY_BYTES, WORKFLOW_MODIFICATION_JOB_ID, WS_CLOSE_AGENT_AUTH_FAILED, WS_CLOSE_AUTH_TIMEOUT, WS_CLOSE_CLUSTER_NAME_CONFLICT, 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_REBALANCE, WS_CLOSE_SUPERSEDED_BY_RECONNECT, WS_CLOSE_UNAUTHORIZED, WS_MAX_PAYLOAD_BYTES, WebhookEventType, WebhookRelayResult, WsRateLimiter, accessLogFilterSchema, accessLogItemSchema, accessLogWarmSqlCase, ackSchema, activityCursorSchema, activityFilterSchema, activityRowSchema, actorPrincipalSchema, agentApiRequestSchema, agentApiResponseSchema, agentAuthFailureSchema, agentAuthRequestSchema, agentAuthSuccessSchema, agentCapabilitiesSchema, agentDiagnosticsConnectionSchema, agentDiagnosticsSchema, agentFeatureLabel, agentJobResultSchema, agentLabelOf, agentLogChunkSchema, agentMetricsSchema, agentOrchestratorSummarySchema, agentOrgSummarySchema, agentRegisterSchema, agentRunListItemSchema, agentRunResultSchema, agentSecretScopeSchema, agentStatusSchema, agentStepLogsSchema, agentStepResultSchema, agentStepStatusSchema, agentToOrchestratorMessageSchema, agentTypeLabel, agentWorkflowSummarySchema, apiKeyActorSchema, appendChecks, applyIncludeExclude, approvalExpiryHoursOf, approvalExpirySecondsOf, approvalRequirementSchema, approvalTimeoutSecondsSchema, approveRunToolSchema, approverClauseSchema, artifactInvalidNameError, artifactListItemSchema, artifactsDownloadRequestSchema, artifactsDownloadResponseSchema, artifactsUploadCompleteAckSchema, artifactsUploadCompleteSchema, artifactsUploadRequestSchema, artifactsUploadResponseSchema, assertScheduleInputsSatisfiable, assertValidScopeName, assertValidSecretKey, attestationListFiltersSchema, attestationListItemSchema, attestationListSummarySchema, attestationVerifyStatusSchema, auditLogColdDays, auditLogWarmDays, auditLogWarmSqlCase, authFailureSchema, authRequestSchema, authSuccessSchema, backendGetRequestSchema, backendGetResponseSchema, backendItemSchema, backendSyncRequestSchema, backendSyncResponseSchema, backendTestRequestSchema, backendTestResponseSchema, backendsListRequestSchema, backendsListResponseSchema, backendsSyncAllRequestSchema, backendsSyncAllResponseSchema, blocksNewCheckout, browserAuthFailureSchema, browserAuthRefreshSchema, browserAuthRequestSchema, browserAuthSuccessSchema, browserErrorSchema, browserEventLogPayloadChunkSchema, browserEventLogPayloadFetchSchema, browserGapSchema, browserJobContextSchema, browserJobNewSchema, browserJobStatusSchema, browserLogLinesSchema, browserLogStreamTerminatedReason, browserLogStreamTerminatedSchema, browserLogSubscribeSchema, browserLogUnsubscribeSchema, browserOrchLogLinesSchema, browserOrchLogSubscribeSchema, browserOrchLogUnsubscribeSchema, browserPingSchema, browserPongSchema, browserRunEventSchema, browserRunNewSchema, browserRunStatusSchema, browserStatusSubscribeSchema, browserStatusUnsubscribeSchema, browserStepStatusSchema, browserToPlatformMessageSchema, buildEventClaims, buildIdTokenSubject, buildTrustedPassthroughEnv, buildUnsupportedMessageNack, buildZodFromDescriptor, buildZodObjectFromMap, cacheStatsSchema, cacheUserRestoreRequestSchema, cacheUserRestoreResponseSchema, cacheUserSaveCompleteSchema, cacheUserSaveRequestSchema, cacheUserSaveResponseSchema, cancelRunToolSchema, cancelRunsByBranchToolSchema, canonicalizeCapability, canonicalizeLabel, canonicalizeLabelSet, canonicalizeLabels, canonicalizeMatcher, capabilityLabel, changedFilesStatusSchema, checkArtifactName, clusterMembershipSchema, coerceDispatchInputs, coerceHostPropertyValue, collectDiscriminatorTypes, compileRegexMatcher, compileSafeRegex, configAckSchema, connectionHealthStatusSchema, contextBindingEntrySchema, contextBindingsListRequestSchema, contextBindingsSetRequestSchema, contextCreateRequestSchema, contextDeleteRequestSchema, contextGetRequestSchema, contextHistoryRequestSchema, contextHistoryResponseSchema, contextListRequestSchema, contextSecretDeleteRequestSchema, contextSecretScopeCreateRequestSchema, contextSecretScopeDeleteRequestSchema, contextSecretScopeRenameRequestSchema, contextSecretSetRequestSchema, contextSecretsListRequestSchema, contextSourceOverrideDeleteRequestSchema, contextSourceOverrideSetRequestSchema, contextSourceOverridesListRequestSchema, contextTestAccessSetRequestSchema, contextUpdateRequestSchema, contextVarDeleteRequestSchema, contextVarSetRequestSchema, contextVarsListRequestSchema, createCommitMessageTraceEntry, createContentRequirementsTraceEntry, createDispatchFailureTraceEntry, createGlobalFilterTraceEntry, createTraceEntry, createTraceTruncationMarker, createWorkflowBundleConfig, createWorkflowDecision, dashboardAccessLogListRequestSchema, dashboardAccessLogListResponseSchema, dashboardAdminTokenSummarySchema, dashboardAdminTokensListRequestSchema, dashboardAdminTokensListResponseSchema, dashboardArtifactsListRequestSchema, dashboardArtifactsListResponseSchema, dashboardAttestationGetRequestSchema, dashboardAttestationGetResponseSchema, dashboardAttestationRetryRequestSchema, dashboardAttestationRetryResponseSchema, dashboardAttestationsApiResponseSchema, dashboardAttestationsListAllRequestSchema, dashboardAttestationsListAllResponseSchema, dashboardAttestationsListRequestSchema, dashboardAttestationsListResponseSchema, dashboardDiagnosticsRequestSchema, dashboardDiagnosticsResponseSchema, dashboardEventDlqCountRequestSchema, dashboardEventDlqDiscardRequestSchema, dashboardEventDlqListItemSchema, dashboardEventDlqListRequestSchema, dashboardEventDlqRetryRequestSchema, dashboardEventLogActivityRequestSchema, dashboardEventLogActivityResponseSchema, dashboardEventLogDetailRequestSchema, dashboardEventLogListRequestSchema, dashboardEventLogPayloadChunkSchema, dashboardEventLogPayloadStreamRequestSchema, dashboardFleetHostRequestSchema, dashboardFleetHostResponseSchema, dashboardFleetHostsRequestSchema, dashboardFleetHostsResponseSchema, dashboardFleetPreviewRequestSchema, dashboardFleetPreviewResponseSchema, dashboardFleetWorkflowsForHostRequestSchema, dashboardFleetWorkflowsForHostResponseSchema, dashboardJobDetailSchema, dashboardOrchLogsRequestSchema, dashboardOrchLogsResponseSchema, dashboardOrchToPlatformSchema, dashboardPayloadRequestSchema, dashboardPlatformToOrchSchema, dashboardRunDetailApiResponseSchema, dashboardRunDetailRequestSchema, dashboardRunDetailResponseSchema, dashboardRunStateRequestSchema, dashboardRunStateResponseSchema, dashboardRunStructuredRequestSchema, dashboardRunStructuredResponseSchema, dashboardRunSummarySchema, dashboardRunsFiltersRequestSchema, dashboardRunsFiltersResponseSchema, dashboardRunsListRequestSchema, dashboardRunsListResponseSchema, dashboardScalerAgentsRequestSchema, dashboardScalerAgentsResponseSchema, dashboardScalerCapacityRequestSchema, dashboardScalerCapacityResponseSchema, dashboardSourceSummarySchema, dashboardSourcesListRequestSchema, dashboardSourcesListResponseSchema, dashboardStepLogsApiResponseSchema, dashboardStepLogsRequestSchema, dashboardStepLogsResponseSchema, decodeActivityCursor, deriveOsArchLabels, derivePlatformTaints, describeTextMatch, developerOpsForEntrypoint, diagnosticsInfraAlertSchema, diagnosticsInfrastructureResponseSchema, diagnosticsSummaryResponseSchema, encodeActivityCursor, errorSchema, evaluateTextMatch, eventEmitResponseSchema, eventEmitSchema, eventLogActivityCountsSchema, eventLogListItemSchema, executionEventSchema, executionStatusSchema, expandMatrix, expandMultiDimension, expandSingleDimension, extractInputDescriptor, extractInputsDescriptorMap, fanoutEnvelopeFields, findDuplicateCombination, flattenActor, fleetBundleChunkSchema, fleetBundleErrorSchema, fleetHostDeclareRequestSchema, fleetHostDeclareResponseSchema, fleetHostRemoveRequestSchema, fleetHostRemoveResponseSchema, fleetHostWorkflowSchema, fleetLogsRequestSchema, fleetPinnedRunSchema, fleetPreviewHostSchema, fleetSelectionSchema, fnv1a32, formatExpandedJobName, formatMatrixSuffix, getAccessLogColdDays, getAccessLogWarmDays, getAuditLogColdDays, getAuditLogWarmDays, getDiagnosticsToolSchema, getRepoGlobMatcher, getRunToolSchema, getSecretAuditLogColdDays, getSecretAuditLogWarmDays, getStepLogsToolSchema, gitAuthSchema, githubIngressPath, githubWebhookPath, globalEvalCandidateResultSchema, globalEvalRoundResultSchema, hasAgentCapability, hasOrchAgentCapability, hasOrchCapability, hasPlatformCapability, heartbeatSchema, heldRunApproveRequestSchema, heldRunRejectRequestSchema, heldRunsListRequestSchema, hostEnvelopeFields, hostLabel, hostSatisfiesTarget, hostToScalerPlatform, identityLinkItemSchema, identityLinkListResponseSchema, initFailureSchema, installGateJobId, invokeResultSchema, isFailureStatus, isInputSatisfiableFromDefaults, isKnownCapability, isLockDynamicJobFn, isLockParallelStep, isLockStaticJob, isMintedRef, isNegatedPattern, isPaidTier, isPullRequestFamilyTriggerEvent, isSecurityHoldJobId, isSelfReportedLabel, isSetupStepType, isTrustedEnvScrubbed, jobAckSchema, jobCancelSchema, jobConcurrencyAckSchema, jobConcurrencyReportSchema, jobContextMessageSchema, jobDispatchSchema, jobProgressAckSchema, jobProgressSchema, jobRejectSchema, jobRerouteAckSchema, jobRerouteSchema, jobStatusForwardSchema, jobStatusSchema, joinRequestSchema, joinResponseSchema, listOrchestratorsToolSchema, listOrgsToolSchema, listRunsToolSchema, listSecretsToolSchema, listWorkflowsToolSchema, logChunkSchema, logPullOrchToPlatformSchema, logPullPlatformToOrchSchema, manualScheduleRequestSchema, matchAllWorkflows, matchBranchPattern, matchPathPatterns, matchRepoPatterns, matchScopePattern, matchTrigger, matchWorkflowTriggers, matchWorkflowsForEvent, matcherMatches, matcherSatisfiedBy, materializeFanout, materializeResolvedHosts, materializeResolvedMatrix, matrixCombinationCount, matrixEnvelopeFields, memberIdentityLinkSchema, memberListResponseSchema, memberRoleAssignmentSchema, mergeAutoLabels, mergeOrderedMaps, minAccessLogWarmDays, minAuditLogWarmDays, minSecretAuditLogWarmDays, nackSchema, negatedPatternReason, nodeArchToScalerArch, nodePlatformToScalerOs, normalizeInfraAlertSeverity, normalizeMatrixInput, normalizePersistedHoldType, normalizeRegexFlags, normalizeRunsOn, orchAgentCapabilitiesSchema, orchCapabilitiesSchema, orchLogChunkSchema, orchMetricsSchema, orchestratorToAgentMessageSchema, orchestratorToPlatformMessageSchema, orgMemberSchema, parseActor, parseHostLabel, parseHostPropertyAssignments, parseInputPairs, parseMemoryString, partitionMatchers, peerAgentTokenRevokeSchema, peerAuthRequestSchema, peerAuthResponseSchema, peerCapabilitiesSchema, peerClusterSettingsRequestSchema, peerClusterSettingsResponseSchema, peerConfigReloadResponseSchema, peerConfigReloadSchema, peerDiscoverSchema, peerFromPeerMessageSchema, peerHeartbeatSchema, peerHelloResponseSchema, peerHelloSchema, peerJobCancelSchema, peerLeavingSchema, peerLogsCollectChunkSchema, peerLogsCollectErrorSchema, peerLogsCollectRequestSchema, peerScalerEventSchema, peerToPeerMessageSchema, peerUpdateSchema, persistedHoldTypeSpellings, planHeadroomSchema, planRank, platformCapabilitiesMessageSchema, platformCapabilitiesSchema, platformOperatorActorSchema, platformToBrowserMessageSchema, platformToOrchestratorMessageSchema, platformToOsArchLabels, platformToTaints, prepareEventBuckets, provenanceContextSchema, provenanceUploadCompleteSchema, provenanceUploadDeferSchema, provenanceUploadRequestSchema, provenanceUploadResponseSchema, raftAppendEntriesSchema, raftVoteRequestSchema, raftVoteResponseSchema, rateLimitWarningSchema, registerAckSchema, registrationDeleteRequestSchema, registrationDisableRequestSchema, registrationItemSchema, registrationsListRequestSchema, registrationsListResponseSchema, rejectRunToolSchema, renderFenced, rerunRunToolSchema, reservedEventNamePrefix, resolveContentFormat, resolveHeldRunId, resolveRoleLabels, resolveRunIdSugar, resolveScheduleInputs, resolveSecretsForContext, resolveSecretsWithProvenance, resolveWhenToRunOn, resourceRequestNestedSchema, resourceSpecSchema, runCancelRequestSchema, runEventMessageSchema, runEventSchema, runLineageResponseSchema, runListItemSchema, runListResponseSchema, runRerunRequestSchema, runtimeLabel, scalerAgentLabels, scalerClaimCredentialsResponseSchema, scalerClaimCredentialsSchema, scalerLabel, scalerPlatformSchema, scheduleTriggerKey, secretAuditLogColdDays, secretAuditLogWarmDays, secretAuditLogWarmSqlCase, serviceAccountActorSchema, shouldRecordAccess, shouldRecordSecretResolve, sourceDeregisterAckSchema, sourceDeregisterSchema, sourceRegistrationAckSchema, sourceRegistrationSchema, staleCheckrunCleanupSchema, stateReplayRunSchema, stateReplaySchema, statusOptionsForLevel, stepApprovalPayloadSchema, stepApprovalRequestSchema, stepApprovalResolvedSchema, stepStatusForwardSchema, stringifyActor, stripScopePrefix, stripStatefulRegexFlags, systemActorSchema, testRelayCancelRequestSchema, testRelayCancelResponseSchema, testRelayRunLogsRequestSchema, testRelayRunLogsResponseSchema, testRelayRunStatusRequestSchema, testRelayRunStatusResponseSchema, testRelayTriggerRequestSchema, testRelayTriggerResponseSchema, testRelayUploadsInitRequestSchema, testRelayUploadsInitResponseSchema, textMatchHasQuery, toCanonicalStatus, triggerRunToolSchema, truncateDecisionsToByteBudget, truncateTraceText, trustPolicyResponseSchema, trustPolicySchema, trustPolicyUpdateSchema, trustedContributorHoldReason, untrusted, upstreamSnapshotSchema, userActorSchema, utf8ByteLength, validateNoReservedLabels, validateResourceRequest, validateScopeName, validateSecretKey, webhookAckSchema, webhookRelayChunkSchema, webhookRelaySchema, webhookRelayStartSchema, workerClusterSettingsSchema, worstStatus, wrapUntrusted };
99
+ export { ACCESS_LOG_COLD_DAYS, ACCESS_LOG_WARM_DAYS, ACTOR_AGENT_SUFFIX, AGENT_API_REQUEST_TIMEOUT_MS, AGENT_CAPABILITIES, AGENT_FEATURE_LABELS, AGENT_FEATURE_LABEL_PREFIX, AGENT_REQUIRED_KICI_VARS, ALLOWED_SYSTEM_VARS, ARTIFACT_INVALID_NAME_PREFIX, ARTIFACT_NAME_MAX_LENGTH, AccessLogAction, AccessLogOutcome, AccessLogPolicyKind, AccessLogSource, AccessLogTargetType, ActivityFilterSource, ActivityRowSource, ActorType, AgentCapabilityFlag, AgentFailureCategory, AgentFeature, ApprovalDecision, ArtifactCompleteAckOutcome, ArtifactDownloadOutcome, ArtifactNameSchema, ArtifactRejectReason, ArtifactUploadOutcome, AttestationOrigin, BREAKING_FLOOR, CANONICAL_STATUSES, CAPABILITY_LABEL_PREFIX, CLUSTER_MEMBERSHIP_MAX_WORKERS, CONTAINER_BUILD_RUNTIME_LABEL, CONTEXTS_MAX, CacheOutcome, CacheRefScope, CacheRunEventType, CacheStepType, CheckMode, CheckRunConclusion, CheckStepOutcome, CiTrustLevel, ConcurrencyStrategy, ConfigPathsSchema, ContextDeleteErrorCode, ContextGateRejectReason, ContextType, DASHBOARD_REQUEST_TYPES, DASHBOARD_REQUEST_TYPE_SET, DEAD_ORCH_FAILURE_REASON, DEFAULT_APPROVAL_EXPIRY_HOURS, DEFAULT_APPROVAL_EXPIRY_SECONDS, DEFAULT_CONCURRENCY_STRATEGY, DEFAULT_HOLD_EXPIRY_SECONDS, DEFERRED_PATHS_SUMMARY_SUFFIX, DEVELOPER_OPERATIONS, DashboardResponseErrorCode, DeploymentContainerRuntimeSchema, DeploymentIdentitySchema, DeploymentModeSchema, DispatchInputError, DispatchInputType, EVENT_LOG_PAYLOAD_CHUNK_BYTES, EventLogPayloadStreamError, EventLogSource, EventLogStatus, ExecutionJobStatus, ExecutionRunStatus, ExecutionStepStatus, FanoutCause, FanoutError, FleetHostDisposition, ForkPolicy, GLOBAL_APPROVAL_MIN_READER, GLOBAL_EVAL_SKIPS_RESULT_AWARE_LABEL, HEARTBEAT_CLOSE_MS, HEARTBEAT_DEGRADED_MS, HEARTBEAT_FRESH_MS, HEARTBEAT_STALE_THRESHOLD_SECONDS, HEARTBEAT_UNHEALTHY_MARK_MS, HOST_LABEL_PREFIX, HeldRunQueueType, HeldRunStatus, HoldScope, HoldType, HostInventoryEntry, HostPropertyValue, HostTargetSelector, HostTargetValue, ID_TOKEN_CLAIM_NAMES, INFRA_ALERT_TYPES, INIT_LABEL, INIT_RUNNER_ROLE_LABEL, INSTALL_JOB_ID_PREFIX, INTERNAL_EVENT_NAME_PREFIX, InfraAlertSeverity, InfraAlertType, InitFailureCategory, InputDescriptor, InputsDescriptorMapSchema, InventoryHostStatus, InventoryLifecycleClass, InventorySelectorSchema, JOB_IMAGE_RUNTIME_LABEL, JobKind, JobRejectReason, KICI_AGENT_ENV_PREFIX, KICI_EVENT_NAME_PREFIX, KNOWN_LINUX_CAPABILITIES, KNOWN_ROLES, LEGACY_STATUS_ALIASES, LabelMatcher, LockFileParseError, LogStream, MAX_APPROVAL_EXPIRY_HOURS, MAX_APPROVAL_EXPIRY_SECONDS, MAX_FANOUT_JOBS, MAX_JOBS_PER_RUN, MAX_MATRIX_MATERIALIZATION, MIN_APPROVAL_EXPIRY_SECONDS, MIN_PROTOCOL_VERSION, MatrixShapeError, MinimumTrustSchema, NACK_EXEMPT_MESSAGE_TYPES, NeedsEntrySchema, NeedsGroupEntrySchema, NeedsRunOn, NeedsWhen, ORCH_AGENT_CAPABILITIES, ORCH_CAPABILITIES, ORCH_TO_PLATFORM_RECOGNIZED_TYPES, OWN_INGRESS_MODES, OnUnreachableMode, OrchLogPhase, OrchRole, OrchestratorMode, PING_EVENT_TYPE, PLAN_TYPES, PLATFORM_CAPABILITIES, PLATFORM_CONNECTED_MODES, PLATFORM_TAINT_LABELS, PLATFORM_TO_ORCH_RECOGNIZED_TYPES, POLICY_BY_ACTION, PRIVILEGED_ROOT_LABEL, PROTOCOL_VERSION, PULL_REQUEST_FAMILY_TRIGGER_EVENTS, PaidPlanType, PatKind, PayloadOmittedReason, PlanType, REDACTED_TRACE_FIELD, REGEX_NEGATIVE_ASSERTION, RELAY_INGRESS_MODES, REPO_IDENTIFIER_MAX, RUNS_ON_LABELS_MAX, RUNTIME_LABEL_PREFIX, RegisterableTriggerType, RunFailureClass, RunsOnPick, RuntimeFact, SANDBOX_DEFAULT_VARS, SANDBOX_NETWORK_MODES, SCALER_EVENT_NAMES, SCHEMA_VERSION, SCOPE_NAME_MAX_LENGTH, SCOPE_SEGMENT_PATTERN, SECONDS_PER_HOUR, SECRET_KEY_MAX_LENGTH, SECRET_KEY_PATTERN, SECURITY_HOLD_JOB_IDS, SECURITY_HOLD_JOB_LABELS, SELF_REPORTED_LABEL_PREFIXES, SSH_TRANSPORT_CAPABILITY, STATE_REPLAY_MAX_RUNS, STATUS_EPOCH_MAX, STATUS_FAILURE_CLASS, STATUS_FREE_TEXT_MAX, STATUS_ID_MAX, STATUS_PRECEDENCE, SUBSCRIBABLE_WEBHOOK_EVENT_TYPES, SUBSCRIPTION_EXISTS_CODE, ScaleDownReason, ScalerArch, ScalerBackendType, ScalerEventType, ScalerOs, ScalerScaleDownPayload, ScalerScaleUpPayload, ScopeNameError, SecretKeyError, SetupStepType, SourceOrigin, SourceProvider, SourceSubtype, StatusFailureClass, StepApprovalOutcome, StepConcurrencyKind, StripeSubscriptionStatus, SubscribableWebhookEventType, TERMINAL_JOB_STATES, TERMINAL_RUN_STATES, TERMINAL_STEP_STATES, TRACE_TEXT_MAX, TRACE_TRUNCATION_WORKFLOW_NAME, TRIGGER_EVENT_META, TRIGGER_EVENT_TYPES, TRIGGER_TYPE_TO_EVENT_TYPES, TRUSTED_ENV_SCRUB_EXACT, TestRelayType, TimeoutReason, TraceCheck, TraceVerdict, TriggerSource, TrustTierSchema, UNRESOLVED_CLAIM, UnavailablePathsTrace, UnsupportedDispatchInputError, VariantKind, WEBHOOK_RELAY_CHUNK_SIZE, WEBHOOK_RELAY_MAX_BODY_BYTES, WORKFLOW_MODIFICATION_JOB_ID, WS_CLOSE_AGENT_AUTH_FAILED, WS_CLOSE_AUTH_TIMEOUT, WS_CLOSE_CLUSTER_NAME_CONFLICT, 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_REBALANCE, WS_CLOSE_SUPERSEDED_BY_RECONNECT, WS_CLOSE_UNAUTHORIZED, WS_MAX_PAYLOAD_BYTES, WebhookEventType, WebhookRelayResult, WsRateLimiter, accessLogFilterSchema, accessLogItemSchema, accessLogWarmSqlCase, ackSchema, activityCursorSchema, activityFilterSchema, activityRowSchema, actorPrincipalSchema, agentApiRequestSchema, agentApiResponseSchema, agentAuthFailureSchema, agentAuthRequestSchema, agentAuthSuccessSchema, agentCapabilitiesSchema, agentDiagnosticsConnectionSchema, agentDiagnosticsSchema, agentFeatureLabel, agentJobResultSchema, agentLabelOf, agentLogChunkSchema, agentMetricsSchema, agentOrchestratorSummarySchema, agentOrgSummarySchema, agentRegisterSchema, agentRunListItemSchema, agentRunResultSchema, agentSecretScopeSchema, agentStatusSchema, agentStepLogsSchema, agentStepResultSchema, agentStepStatusSchema, agentToOrchestratorMessageSchema, agentTypeLabel, agentWorkflowSummarySchema, apiKeyActorSchema, appendChecks, applyIncludeExclude, approvalExpiryHoursOf, approvalExpirySecondsOf, approvalRequirementSchema, approvalTimeoutSecondsSchema, approveRunToolSchema, approverClauseSchema, artifactInvalidNameError, artifactListItemSchema, artifactsDownloadRequestSchema, artifactsDownloadResponseSchema, artifactsUploadCompleteAckSchema, artifactsUploadCompleteSchema, artifactsUploadRequestSchema, artifactsUploadResponseSchema, assertScheduleInputsSatisfiable, assertValidScopeName, assertValidSecretKey, attestationListFiltersSchema, attestationListItemSchema, attestationListSummarySchema, attestationVerifyStatusSchema, auditLogColdDays, auditLogWarmDays, auditLogWarmSqlCase, authFailureSchema, authRequestSchema, authSuccessSchema, backendGetRequestSchema, backendGetResponseSchema, backendItemSchema, backendSyncRequestSchema, backendSyncResponseSchema, backendTestRequestSchema, backendTestResponseSchema, backendsListRequestSchema, backendsListResponseSchema, backendsSyncAllRequestSchema, backendsSyncAllResponseSchema, blocksNewCheckout, browserAuthFailureSchema, browserAuthRefreshSchema, browserAuthRequestSchema, browserAuthSuccessSchema, browserErrorSchema, browserEventLogPayloadChunkSchema, browserEventLogPayloadFetchSchema, browserGapSchema, browserJobContextSchema, browserJobNewSchema, browserJobStatusSchema, browserLogLinesSchema, browserLogStreamTerminatedReason, browserLogStreamTerminatedSchema, browserLogSubscribeSchema, browserLogUnsubscribeSchema, browserOrchLogLinesSchema, browserOrchLogSubscribeSchema, browserOrchLogUnsubscribeSchema, browserPingSchema, browserPongSchema, browserRunEventSchema, browserRunNewSchema, browserRunStatusSchema, browserStatusSubscribeSchema, browserStatusUnsubscribeSchema, browserStepStatusSchema, browserToPlatformMessageSchema, buildEventClaims, buildIdTokenSubject, buildTrustedPassthroughEnv, buildUnsupportedMessageNack, buildZodFromDescriptor, buildZodObjectFromMap, cacheStatsSchema, cacheUserRestoreRequestSchema, cacheUserRestoreResponseSchema, cacheUserSaveCompleteSchema, cacheUserSaveRequestSchema, cacheUserSaveResponseSchema, cancelRunToolSchema, cancelRunsByBranchToolSchema, canonicalizeCapability, canonicalizeLabel, canonicalizeLabelSet, canonicalizeLabels, canonicalizeMatcher, capabilityLabel, changedFilesStatusSchema, checkArtifactName, clusterMembershipSchema, coerceDispatchInputs, coerceHostPropertyValue, collectDiscriminatorTypes, compileRegexMatcher, compileSafeRegex, configAckSchema, connectionHealthStatusSchema, contextBindingEntrySchema, contextBindingsListRequestSchema, contextBindingsSetRequestSchema, contextCreateRequestSchema, contextDeleteRequestSchema, contextGetRequestSchema, contextHistoryRequestSchema, contextHistoryResponseSchema, contextListRequestSchema, contextSecretDeleteRequestSchema, contextSecretScopeCreateRequestSchema, contextSecretScopeDeleteRequestSchema, contextSecretScopeRenameRequestSchema, contextSecretSetRequestSchema, contextSecretsListRequestSchema, contextSourceOverrideDeleteRequestSchema, contextSourceOverrideSetRequestSchema, contextSourceOverridesListRequestSchema, contextTestAccessSetRequestSchema, contextUpdateRequestSchema, contextVarDeleteRequestSchema, contextVarSetRequestSchema, contextVarsListRequestSchema, createCommitMessageTraceEntry, createContentRequirementsTraceEntry, createDispatchFailureTraceEntry, createGlobalFilterTraceEntry, createTraceEntry, createTraceTruncationMarker, createWorkflowBundleConfig, createWorkflowDecision, dashboardAccessLogListRequestSchema, dashboardAccessLogListResponseSchema, dashboardAdminTokenSummarySchema, dashboardAdminTokensListRequestSchema, dashboardAdminTokensListResponseSchema, dashboardArtifactsListRequestSchema, dashboardArtifactsListResponseSchema, dashboardAttestationGetRequestSchema, dashboardAttestationGetResponseSchema, dashboardAttestationRetryRequestSchema, dashboardAttestationRetryResponseSchema, dashboardAttestationsApiResponseSchema, dashboardAttestationsListAllRequestSchema, dashboardAttestationsListAllResponseSchema, dashboardAttestationsListRequestSchema, dashboardAttestationsListResponseSchema, dashboardDiagnosticsRequestSchema, dashboardDiagnosticsResponseSchema, dashboardEventDlqCountRequestSchema, dashboardEventDlqDiscardRequestSchema, dashboardEventDlqListItemSchema, dashboardEventDlqListRequestSchema, dashboardEventDlqRetryRequestSchema, dashboardEventLogActivityRequestSchema, dashboardEventLogActivityResponseSchema, dashboardEventLogDetailRequestSchema, dashboardEventLogListRequestSchema, dashboardEventLogPayloadChunkSchema, dashboardEventLogPayloadStreamRequestSchema, dashboardFleetHostRequestSchema, dashboardFleetHostResponseSchema, dashboardFleetHostsRequestSchema, dashboardFleetHostsResponseSchema, dashboardFleetPreviewRequestSchema, dashboardFleetPreviewResponseSchema, dashboardFleetWorkflowsForHostRequestSchema, dashboardFleetWorkflowsForHostResponseSchema, dashboardJobDetailSchema, dashboardOrchLogsRequestSchema, dashboardOrchLogsResponseSchema, dashboardOrchToPlatformSchema, dashboardPayloadRequestSchema, dashboardPlatformToOrchSchema, dashboardRunDetailApiResponseSchema, dashboardRunDetailRequestSchema, dashboardRunDetailResponseSchema, dashboardRunStateRequestSchema, dashboardRunStateResponseSchema, dashboardRunStructuredRequestSchema, dashboardRunStructuredResponseSchema, dashboardRunSummarySchema, dashboardRunsFiltersRequestSchema, dashboardRunsFiltersResponseSchema, dashboardRunsListRequestSchema, dashboardRunsListResponseSchema, dashboardScalerAgentsRequestSchema, dashboardScalerAgentsResponseSchema, dashboardScalerCapacityRequestSchema, dashboardScalerCapacityResponseSchema, dashboardSourceSummarySchema, dashboardSourcesListRequestSchema, dashboardSourcesListResponseSchema, dashboardStepLogsApiResponseSchema, dashboardStepLogsRequestSchema, dashboardStepLogsResponseSchema, decodeActivityCursor, deriveOsArchLabels, derivePlatformTaints, describeTextMatch, developerOpsForEntrypoint, diagnosticsInfraAlertSchema, diagnosticsInfrastructureResponseSchema, diagnosticsSummaryResponseSchema, diffRangeKindSchema, encodeActivityCursor, errorSchema, evaluateTextMatch, eventEmitResponseSchema, eventEmitSchema, eventLogActivityCountsSchema, eventLogListItemSchema, executionEventSchema, executionStatusSchema, expandMatrix, expandMultiDimension, expandSingleDimension, extractInputDescriptor, extractInputsDescriptorMap, fanoutEnvelopeFields, findDuplicateCombination, flattenActor, fleetBundleChunkSchema, fleetBundleErrorSchema, fleetHostDeclareRequestSchema, fleetHostDeclareResponseSchema, fleetHostRemoveRequestSchema, fleetHostRemoveResponseSchema, fleetHostWorkflowSchema, fleetLogsRequestSchema, fleetPinnedRunSchema, fleetPreviewHostSchema, fleetSelectionSchema, fnv1a32, formatExpandedJobName, formatMatrixSuffix, getAccessLogColdDays, getAccessLogWarmDays, getAuditLogColdDays, getAuditLogWarmDays, getDiagnosticsToolSchema, getRepoGlobMatcher, getRunToolSchema, getSecretAuditLogColdDays, getSecretAuditLogWarmDays, getStepLogsToolSchema, gitAuthSchema, githubIngressPath, githubWebhookPath, globalEvalCandidateResultSchema, globalEvalRoundResultSchema, hasAgentCapability, hasOrchAgentCapability, hasOrchCapability, hasPlatformCapability, heartbeatSchema, heldRunApproveRequestSchema, heldRunRejectRequestSchema, heldRunsListRequestSchema, hostEnvelopeFields, hostLabel, hostSatisfiesTarget, hostToScalerPlatform, identityLinkItemSchema, identityLinkListResponseSchema, initFailureSchema, installGateJobId, invokeResultSchema, isDeferrableRange, isFailureStatus, isInputSatisfiableFromDefaults, isKnownCapability, isLockDynamicJobFn, isLockParallelStep, isLockStaticJob, isMintedRef, isNegatedPattern, isPaidTier, isPullRequestFamilyTriggerEvent, isSecurityHoldJobId, isSelfReportedLabel, isSetupStepType, isTrustedEnvScrubbed, isZeroSha, jobAckSchema, jobCancelSchema, jobConcurrencyAckSchema, jobConcurrencyReportSchema, jobContextMessageSchema, jobDispatchSchema, jobProgressAckSchema, jobProgressSchema, jobRejectSchema, jobRerouteAckSchema, jobRerouteSchema, jobStatusForwardSchema, jobStatusSchema, joinRequestSchema, joinResponseSchema, listOrchestratorsToolSchema, listOrgsToolSchema, listRunsToolSchema, listSecretsToolSchema, listWorkflowsToolSchema, logChunkSchema, logPullOrchToPlatformSchema, logPullPlatformToOrchSchema, manualScheduleRequestSchema, matchAllWorkflows, matchBranchPattern, matchPathPatterns, matchRepoPatterns, matchScopePattern, matchTrigger, matchWorkflowTriggers, matchWorkflowsForEvent, matcherMatches, matcherSatisfiedBy, materializeFanout, materializeResolvedHosts, materializeResolvedMatrix, matrixCombinationCount, matrixEnvelopeFields, memberIdentityLinkSchema, memberListResponseSchema, memberRoleAssignmentSchema, mergeAutoLabels, mergeOrderedMaps, minAccessLogWarmDays, minAuditLogWarmDays, minSecretAuditLogWarmDays, nackSchema, negatedPatternReason, nodeArchToScalerArch, nodePlatformToScalerOs, normalizeInfraAlertSeverity, normalizeMatrixInput, normalizePersistedHoldType, normalizeRegexFlags, normalizeRunsOn, orchAgentCapabilitiesSchema, orchCapabilitiesSchema, orchLogChunkSchema, orchMetricsSchema, orchestratorToAgentMessageSchema, orchestratorToPlatformMessageSchema, orgMemberSchema, parseActor, parseHostLabel, parseHostPropertyAssignments, parseInputPairs, parseMemoryString, partitionMatchers, peerAgentTokenRevokeSchema, peerAuthRequestSchema, peerAuthResponseSchema, peerCapabilitiesSchema, peerClusterSettingsRequestSchema, peerClusterSettingsResponseSchema, peerConfigReloadResponseSchema, peerConfigReloadSchema, peerDiscoverSchema, peerFromPeerMessageSchema, peerHeartbeatSchema, peerHelloResponseSchema, peerHelloSchema, peerJobCancelSchema, peerLeavingSchema, peerLogsCollectChunkSchema, peerLogsCollectErrorSchema, peerLogsCollectRequestSchema, peerScalerEventSchema, peerToPeerMessageSchema, peerUpdateSchema, persistedHoldTypeSpellings, planHeadroomSchema, planRank, platformCapabilitiesMessageSchema, platformCapabilitiesSchema, platformOperatorActorSchema, platformToBrowserMessageSchema, platformToOrchestratorMessageSchema, platformToOsArchLabels, platformToTaints, prepareEventBuckets, provenanceContextSchema, provenanceUploadCompleteSchema, provenanceUploadDeferSchema, provenanceUploadRequestSchema, provenanceUploadResponseSchema, raftAppendEntriesSchema, raftVoteRequestSchema, raftVoteResponseSchema, rateLimitWarningSchema, registerAckSchema, registrationDeleteRequestSchema, registrationDisableRequestSchema, registrationItemSchema, registrationsListRequestSchema, registrationsListResponseSchema, rejectRunToolSchema, renderFenced, rerunRunToolSchema, reservedEventNamePrefix, resolveContentFormat, resolveDiffRange, resolveHeldRunId, resolveRoleLabels, resolveRunIdSugar, resolveScheduleInputs, resolveSecretsForContext, resolveSecretsWithProvenance, resolveWhenToRunOn, resourceRequestNestedSchema, resourceSpecSchema, runCancelRequestSchema, runEventMessageSchema, runEventSchema, runLineageResponseSchema, runListItemSchema, runListResponseSchema, runRerunRequestSchema, runtimeLabel, scalerAgentLabels, scalerClaimCredentialsResponseSchema, scalerClaimCredentialsSchema, scalerLabel, scalerPlatformSchema, scheduleTriggerKey, secretAuditLogColdDays, secretAuditLogWarmDays, secretAuditLogWarmSqlCase, serviceAccountActorSchema, shouldRecordAccess, shouldRecordSecretResolve, sourceDeregisterAckSchema, sourceDeregisterSchema, sourceRegistrationAckSchema, sourceRegistrationSchema, staleCheckrunCleanupSchema, stateReplayRunSchema, stateReplaySchema, statusOptionsForLevel, stepApprovalPayloadSchema, stepApprovalRequestSchema, stepApprovalResolvedSchema, stepStatusForwardSchema, stringifyActor, stripScopePrefix, stripStatefulRegexFlags, systemActorSchema, testRelayCancelRequestSchema, testRelayCancelResponseSchema, testRelayRunLogsRequestSchema, testRelayRunLogsResponseSchema, testRelayRunStatusRequestSchema, testRelayRunStatusResponseSchema, testRelayTriggerRequestSchema, testRelayTriggerResponseSchema, testRelayUploadsInitRequestSchema, testRelayUploadsInitResponseSchema, textMatchHasQuery, toCanonicalStatus, triggerRunToolSchema, truncateDecisionsToByteBudget, truncateTraceText, trustPolicyResponseSchema, trustPolicySchema, trustPolicyUpdateSchema, trustedContributorHoldReason, untrusted, upstreamSnapshotSchema, userActorSchema, utf8ByteLength, validateNoReservedLabels, validateResourceRequest, validateScopeName, validateSecretKey, webhookAckSchema, webhookRelayChunkSchema, webhookRelaySchema, webhookRelayStartSchema, workerClusterSettingsSchema, worstStatus, wrapUntrusted };
package/dist/labels.d.ts CHANGED
@@ -13,7 +13,7 @@ import { z } from 'zod';
13
13
  * kici:os: — operating system (kici:os:linux, kici:os:macos, kici:os:windows)
14
14
  * kici:arch: — CPU architecture (kici:arch:x64, kici:arch:amd64, kici:arch:arm64)
15
15
  * kici:agent: — scaler/execution backend type (kici:agent:container, kici:agent:bare-metal, kici:agent:firecracker)
16
- * kici:scaler: — scaler backend name (kici:scaler:stg-container, kici:scaler:prod-firecracker)
16
+ * kici:scaler: — scaler backend name (kici:scaler:linux-container, kici:scaler:prod-firecracker)
17
17
  * kici:host: — hostname of the machine running the agent (kici:host:<hostname>)
18
18
  * kici:role: — agent role (kici:role:builder, kici:role:init-runner)
19
19
  *
package/dist/labels.js CHANGED
@@ -15,7 +15,7 @@ import { z } from "zod";
15
15
  * kici:os: — operating system (kici:os:linux, kici:os:macos, kici:os:windows)
16
16
  * kici:arch: — CPU architecture (kici:arch:x64, kici:arch:amd64, kici:arch:arm64)
17
17
  * kici:agent: — scaler/execution backend type (kici:agent:container, kici:agent:bare-metal, kici:agent:firecracker)
18
- * kici:scaler: — scaler backend name (kici:scaler:stg-container, kici:scaler:prod-firecracker)
18
+ * kici:scaler: — scaler backend name (kici:scaler:linux-container, kici:scaler:prod-firecracker)
19
19
  * kici:host: — hostname of the machine running the agent (kici:host:<hostname>)
20
20
  * kici:role: — agent role (kici:role:builder, kici:role:init-runner)
21
21
  *
@@ -4,7 +4,7 @@
4
4
  * Browser-safe (zod only) so they live in the shared engine barrel. Each export
5
5
  * is a Zod *raw shape* (a plain object of Zod fields) so it can be passed
6
6
  * directly as an MCP tool `inputSchema`. The Platform-hosted developer MCP
7
- * server (packages/platform/src/mcp/server.ts) is the consumer.
7
+ * server is the consumer.
8
8
  */
9
9
  import { z } from 'zod';
10
10
  export declare const listRunsToolSchema: {
@@ -7,7 +7,7 @@ import { z } from "zod";
7
7
  * Browser-safe (zod only) so they live in the shared engine barrel. Each export
8
8
  * is a Zod *raw shape* (a plain object of Zod fields) so it can be passed
9
9
  * directly as an MCP tool `inputSchema`. The Platform-hosted developer MCP
10
- * server (packages/platform/src/mcp/server.ts) is the consumer.
10
+ * server is the consumer.
11
11
  */
12
12
  /**
13
13
  * Optional organization id. When the calling user belongs to exactly one org
@@ -2,8 +2,7 @@
2
2
  * Hand-maintained label-value policy on top of the auto-generated
3
3
  * `MetricLabels` / `MetricKind` allow-list in
4
4
  * `./metric-catalog.generated.ts`. Consumed by the Platform's
5
- * orchestrator-metrics filter (`packages/platform/src/ws/metrics-filter.ts`)
6
- * to harden the WS `orch.metrics` push path against pollution of the
5
+ * orchestrator-metrics filter to harden the WS `orch.metrics` push path against pollution of the
7
6
  * monitoring system.
8
7
  *
9
8
  * Three layers compose:
@@ -7,8 +7,7 @@ import { MetricNames, MetricService } from "./metric-catalog.generated.js";
7
7
  * Hand-maintained label-value policy on top of the auto-generated
8
8
  * `MetricLabels` / `MetricKind` allow-list in
9
9
  * `./metric-catalog.generated.ts`. Consumed by the Platform's
10
- * orchestrator-metrics filter (`packages/platform/src/ws/metrics-filter.ts`)
11
- * to harden the WS `orch.metrics` push path against pollution of the
10
+ * orchestrator-metrics filter to harden the WS `orch.metrics` push path against pollution of the
12
11
  * monitoring system.
13
12
  *
14
13
  * Three layers compose:
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Consumers import from `@kici-dev/engine/protocol/dashboard-global-workflows`.
5
5
  * This file is intentionally kept out of the engine barrel so it remains a
6
- * server-only surface (see `.claude/rules/engine.md`).
6
+ * server-only surface: the barrel must stay browser-safe.
7
7
  */
8
8
  export * from './messages/dashboard-global-workflows.js';
9
9
  //# sourceMappingURL=dashboard-global-workflows.d.ts.map
@@ -24,7 +24,6 @@ export declare const WS_MAX_PAYLOAD_BYTES: number;
24
24
  * FAST-PATHED: A manual validator exists in
25
25
  * packages/orchestrator/src/ws/agent-handler.ts (isValidHeartbeat).
26
26
  * If you change this schema, update the manual validator in the same commit.
27
- * See CLAUDE.md rule: "Zod fast-path sync invariant".
28
27
  */
29
28
  export declare const heartbeatSchema: z.ZodObject<{
30
29
  type: z.ZodLiteral<"heartbeat">;
@@ -26,7 +26,6 @@ const WS_MAX_PAYLOAD_BYTES = 26214400;
26
26
  * FAST-PATHED: A manual validator exists in
27
27
  * packages/orchestrator/src/ws/agent-handler.ts (isValidHeartbeat).
28
28
  * If you change this schema, update the manual validator in the same commit.
29
- * See CLAUDE.md rule: "Zod fast-path sync invariant".
30
29
  */
31
30
  const heartbeatSchema = z.object({
32
31
  type: z.literal("heartbeat"),
@@ -34,7 +34,7 @@ export declare const dashboardRunDetailRequestSchema: z.ZodObject<{
34
34
  /**
35
35
  * Request the machine-first, provenance-tagged structured run result from the
36
36
  * orchestrator (user-plane equivalent of the orchestrator-admin
37
- * `/runs/:id/structured` endpoint). Reuses the Phase-1 `AgentRunResult` shape.
37
+ * `/runs/:id/structured` endpoint). Reuses the `AgentRunResult` shape.
38
38
  */
39
39
  export declare const dashboardRunStructuredRequestSchema: z.ZodObject<{
40
40
  type: z.ZodLiteral<"dashboard.run.structured">;
@@ -33,7 +33,7 @@ const dashboardRunDetailRequestSchema = z.object({
33
33
  /**
34
34
  * Request the machine-first, provenance-tagged structured run result from the
35
35
  * orchestrator (user-plane equivalent of the orchestrator-admin
36
- * `/runs/:id/structured` endpoint). Reuses the Phase-1 `AgentRunResult` shape.
36
+ * `/runs/:id/structured` endpoint). Reuses the `AgentRunResult` shape.
37
37
  */
38
38
  const dashboardRunStructuredRequestSchema = z.object({
39
39
  type: z.literal("dashboard.run.structured"),
@@ -605,7 +605,7 @@ const runRerunRequestSchema = z.object({
605
605
  actor: actorPrincipalSchema,
606
606
  runId: z.string(),
607
607
  /**
608
- * Phase F — Platform forwards the original run's `routing_key` so the
608
+ * The Platform forwards the original run's `routing_key` so the
609
609
  * orchestrator can probe its cold-store under the right tenant prefix
610
610
  * when the run is missing from PG. Optional for backwards compatibility
611
611
  * with older Platform versions in mixed deploys; if absent, the
@@ -747,7 +747,7 @@ const dashboardEventLogDetailRequestSchema = z.object({
747
747
  orgId: z.string(),
748
748
  deliveryId: z.string(),
749
749
  /**
750
- * Phase E cold-store hint: when the Platform side has resurrected the
750
+ * Cold-store hint: when the Platform side has resurrected the
751
751
  * archived `event_log` row, it forwards the `routing_key` so the
752
752
  * orchestrator can scope its own cold-store fetch to a single tenant
753
753
  * prefix instead of scanning every routing_key for the org.
@@ -831,7 +831,7 @@ const dashboardEventLogPayloadStreamRequestSchema = z.object({
831
831
  orgId: z.string(),
832
832
  deliveryId: z.string(),
833
833
  /**
834
- * Phase E cold-store hint: when Platform has resurrected the archived
834
+ * Cold-store hint: when Platform has resurrected the archived
835
835
  * `event_log` row, it forwards `routing_key` so the orchestrator can scope
836
836
  * its own cold-store fetch to a single tenant prefix instead of scanning
837
837
  * every routing_key for the org. Mirrors `dashboardEventLogDetailRequestSchema`.
@@ -378,7 +378,6 @@ export declare const jobAckSchema: z.ZodObject<{
378
378
  * FAST-PATHED: A manual validator exists in
379
379
  * packages/orchestrator/src/ws/agent-handler.ts (isValidLogChunk).
380
380
  * If you change this schema, update the manual validator in the same commit.
381
- * See CLAUDE.md rule: "Zod fast-path sync invariant".
382
381
  */
383
382
  export declare const agentLogChunkSchema: z.ZodObject<{
384
383
  type: z.ZodLiteral<"log.chunk">;
@@ -442,7 +442,6 @@ const jobAckSchema = z.object({
442
442
  * FAST-PATHED: A manual validator exists in
443
443
  * packages/orchestrator/src/ws/agent-handler.ts (isValidLogChunk).
444
444
  * If you change this schema, update the manual validator in the same commit.
445
- * See CLAUDE.md rule: "Zod fast-path sync invariant".
446
445
  */
447
446
  const agentLogChunkSchema = z.object({
448
447
  type: z.literal("log.chunk"),
@@ -41,7 +41,7 @@ const peerCapabilitiesSchema = z.object({
41
41
  * version-skew signal rather than something to ignore.
42
42
  */
43
43
  const scalerCapacitySummarySchema = z.object({
44
- /** Scaler backend name (e.g. "stg-worker-bare-metal") */
44
+ /** Scaler backend name (e.g. "worker-bare-metal") */
45
45
  name: z.string().optional(),
46
46
  /** Scaler backend type (e.g. "bare-metal", "container") */
47
47
  type: z.string().optional(),
@@ -143,12 +143,12 @@ export type TrustPolicyUpdate = z.infer<typeof trustPolicyUpdateSchema>;
143
143
  *
144
144
  * NOT a wire-parseable schema: this shape is intentionally absent from the
145
145
  * `platformToOrchestratorMessageSchema` discriminated union so that a rogue
146
- * or compromised Platform process (A10) cannot fabricate one and bypass the
146
+ * or compromised Platform process cannot fabricate one and bypass the
147
147
  * on-orchestrator HMAC verification gate. The only legitimate construction
148
148
  * site is `completeChunkedRelay` in `packages/orchestrator/src/ws/platform-client.ts`,
149
149
  * which synthesizes this shape AFTER `onVerifyInbound` returns `'accepted'`.
150
150
  *
151
- * Migration `packages/platform/src/db/migrations/012_drop_webhook_secret_columns.ts`
151
+ * The Platform migration that dropped the webhook secret columns
152
152
  * makes the orch-side `verifyInboundWebhook` (called from `onVerifyInbound` on
153
153
  * the chunked relay path `webhook.relay.start` / `webhook.relay.chunk`) the
154
154
  * sole trust boundary against a malicious Platform; keeping this schema OUT
@@ -310,7 +310,7 @@ export type PlatformCapabilitiesMessage = z.infer<typeof platformCapabilitiesMes
310
310
  * Platform's monitoring system: a malformed or hostile push fails Zod
311
311
  * parse at the WS edge and never reaches the aggregator or the Mimir
312
312
  * relay. The content-level allow-list (catalog) is enforced one step
313
- * deeper — see `packages/platform/src/ws/metrics-filter.ts`.
313
+ * deeper, in the Platform's orchestrator-metrics filter.
314
314
  *
315
315
  * Caps:
316
316
  * - 2000 metric data points per push (one orch ships ~60 today)
@@ -552,10 +552,10 @@ export type OrchCapabilitiesUpdate = z.infer<typeof orchCapabilitiesUpdateSchema
552
552
  * The single-frame `webhookRelaySchema` is intentionally NOT a member of this
553
553
  * union: that shape carries an attacker-controlled `payload` and pre-existed
554
554
  * the chunked relay's on-orch HMAC verification, so accepting it on the wire
555
- * would let a compromised Platform (A10) fabricate webhook deliveries that
555
+ * would let a compromised Platform fabricate webhook deliveries that
556
556
  * bypass the only trust boundary against a malicious Platform (see the
557
- * docblock on `webhookRelaySchema` above and migration
558
- * `packages/platform/src/db/migrations/012_drop_webhook_secret_columns.ts`).
557
+ * docblock on `webhookRelaySchema` above and the Platform migration that
558
+ * dropped the webhook secret columns).
559
559
  * The chunked path `webhook.relay.start` + `webhook.relay.chunk` is the sole
560
560
  * legitimate route from Platform to `onWebhookRelay`. */
561
561
  export declare const platformToOrchestratorMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -173,12 +173,12 @@ const trustPolicyUpdateSchema = z.object({
173
173
  *
174
174
  * NOT a wire-parseable schema: this shape is intentionally absent from the
175
175
  * `platformToOrchestratorMessageSchema` discriminated union so that a rogue
176
- * or compromised Platform process (A10) cannot fabricate one and bypass the
176
+ * or compromised Platform process cannot fabricate one and bypass the
177
177
  * on-orchestrator HMAC verification gate. The only legitimate construction
178
178
  * site is `completeChunkedRelay` in `packages/orchestrator/src/ws/platform-client.ts`,
179
179
  * which synthesizes this shape AFTER `onVerifyInbound` returns `'accepted'`.
180
180
  *
181
- * Migration `packages/platform/src/db/migrations/012_drop_webhook_secret_columns.ts`
181
+ * The Platform migration that dropped the webhook secret columns
182
182
  * makes the orch-side `verifyInboundWebhook` (called from `onVerifyInbound` on
183
183
  * the chunked relay path `webhook.relay.start` / `webhook.relay.chunk`) the
184
184
  * sole trust boundary against a malicious Platform; keeping this schema OUT
@@ -363,7 +363,7 @@ const platformCapabilitiesMessageSchema = z.object({
363
363
  * Platform's monitoring system: a malformed or hostile push fails Zod
364
364
  * parse at the WS edge and never reaches the aggregator or the Mimir
365
365
  * relay. The content-level allow-list (catalog) is enforced one step
366
- * deeper — see `packages/platform/src/ws/metrics-filter.ts`.
366
+ * deeper, in the Platform's orchestrator-metrics filter.
367
367
  *
368
368
  * Caps:
369
369
  * - 2000 metric data points per push (one orch ships ~60 today)
@@ -543,10 +543,10 @@ const orchCapabilitiesUpdateSchema = z.object({
543
543
  * The single-frame `webhookRelaySchema` is intentionally NOT a member of this
544
544
  * union: that shape carries an attacker-controlled `payload` and pre-existed
545
545
  * the chunked relay's on-orch HMAC verification, so accepting it on the wire
546
- * would let a compromised Platform (A10) fabricate webhook deliveries that
546
+ * would let a compromised Platform fabricate webhook deliveries that
547
547
  * bypass the only trust boundary against a malicious Platform (see the
548
- * docblock on `webhookRelaySchema` above and migration
549
- * `packages/platform/src/db/migrations/012_drop_webhook_secret_columns.ts`).
548
+ * docblock on `webhookRelaySchema` above and the Platform migration that
549
+ * dropped the webhook secret columns).
550
550
  * The chunked path `webhook.relay.start` + `webhook.relay.chunk` is the sole
551
551
  * legitimate route from Platform to `onWebhookRelay`. */
552
552
  const platformToOrchestratorMessageSchema = z.discriminatedUnion("type", [
@@ -14,7 +14,7 @@ import { z } from 'zod';
14
14
  * matched via the per-event lock file pipeline on the same-source path
15
15
  * (e.g. a real GitHub push webhook). Registering them in addition is
16
16
  * what makes cross-source dispatch work for a generic webhook that
17
- * targets an externally-hosted repo (phase 28.5): the cross-source
17
+ * targets an externally-hosted repo: the cross-source
18
18
  * branch looks up `(customer_id, repo_identifier)` and reuses the
19
19
  * stored `provider_context` (installation id, app id, …) to mint
20
20
  * credentials for the actual provider bundle that owns the repo.
@@ -16,7 +16,7 @@ import { z } from "zod";
16
16
  * matched via the per-event lock file pipeline on the same-source path
17
17
  * (e.g. a real GitHub push webhook). Registering them in addition is
18
18
  * what makes cross-source dispatch work for a generic webhook that
19
- * targets an externally-hosted repo (phase 28.5): the cross-source
19
+ * targets an externally-hosted repo: the cross-source
20
20
  * branch looks up `(customer_id, repo_identifier)` and reuses the
21
21
  * stored `provider_context` (installation id, app id, …) to mint
22
22
  * credentials for the actual provider bundle that owns the repo.
@@ -30,6 +30,12 @@ export interface WorkflowDecision {
30
30
  checks: TraceEntry[];
31
31
  /** Summary reason */
32
32
  summary: string;
33
+ /**
34
+ * The `paths` lists of triggers that matched only because the changed files
35
+ * were unavailable while a git range existed. Set only when no trigger
36
+ * matched outright; the agent decides these from its clone.
37
+ */
38
+ deferredPaths?: string[][];
33
39
  }
34
40
  /**
35
41
  * Max characters of any free-text field a trace entry carries, so an
@@ -159,9 +165,9 @@ export declare function createCommitMessageTraceEntry(args: {
159
165
  * What a withheld trace field is replaced with when the reader does not hold
160
166
  * `event_log:read_payload`.
161
167
  *
162
- * Lives here rather than beside the Platform's redactor because three packages
163
- * read it: the Platform writes it, the dashboard renders it, and the E2E suite
164
- * asserts the permission boundary against it. A literal repeated at each site
168
+ * Lives here rather than beside the Platform's redactor because it crosses
169
+ * packages: the Platform writes it, the dashboard renders it, and tests assert
170
+ * the permission boundary against it. A literal repeated at each site
165
171
  * would drift into a marker one of them no longer recognizes.
166
172
  */
167
173
  export declare const REDACTED_TRACE_FIELD = "[redacted \u2014 requires event_log:read_payload]";
@@ -145,9 +145,9 @@ function createCommitMessageTraceEntry(args) {
145
145
  * What a withheld trace field is replaced with when the reader does not hold
146
146
  * `event_log:read_payload`.
147
147
  *
148
- * Lives here rather than beside the Platform's redactor because three packages
149
- * read it: the Platform writes it, the dashboard renders it, and the E2E suite
150
- * asserts the permission boundary against it. A literal repeated at each site
148
+ * Lives here rather than beside the Platform's redactor because it crosses
149
+ * packages: the Platform writes it, the dashboard renders it, and tests assert
150
+ * the permission boundary against it. A literal repeated at each site
151
151
  * would drift into a marker one of them no longer recognizes.
152
152
  */
153
153
  const REDACTED_TRACE_FIELD = "[redacted — requires event_log:read_payload]";
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Which files an event changed, expressed as a git range.
3
+ *
4
+ * The one definition the orchestrator's changed-files fetchers and the agent's
5
+ * clone diff share, so both layers reach the same answer from the same event.
6
+ * Pure — no I/O and no `node:*` import — because the engine barrel is
7
+ * browser-safe.
8
+ */
9
+ import { z } from 'zod';
10
+ export declare const diffRangeKindSchema: z.ZodEnum<{
11
+ deleted: "deleted";
12
+ "new-branch": "new-branch";
13
+ none: "none";
14
+ pr: "pr";
15
+ "two-dot": "two-dot";
16
+ }>;
17
+ export type DiffRangeKind = z.infer<typeof diffRangeKindSchema>;
18
+ declare const Kind: {
19
+ deleted: "deleted";
20
+ "new-branch": "new-branch";
21
+ none: "none";
22
+ pr: "pr";
23
+ "two-dot": "two-dot";
24
+ };
25
+ export type DiffRange =
26
+ /** `git diff base..head` — a push to an existing branch. */
27
+ {
28
+ kind: (typeof Kind)['two-dot'];
29
+ base: string;
30
+ head: string;
31
+ }
32
+ /** Three-dot `defaultBranch...head` — the files a new branch adds. */
33
+ | {
34
+ kind: (typeof Kind)['new-branch'];
35
+ defaultBranch: string;
36
+ head: string;
37
+ }
38
+ /** A deleted branch: no files changed. */
39
+ | {
40
+ kind: typeof Kind.deleted;
41
+ }
42
+ /** Three-dot `base...HEAD` — a pull request. */
43
+ | {
44
+ kind: typeof Kind.pr;
45
+ base: string;
46
+ }
47
+ /** No range exists: nobody can compute a diff for this event. */
48
+ | {
49
+ kind: typeof Kind.none;
50
+ };
51
+ /** The event fields a range is read from; `SimulatedEvent` and the SDK `EventPayload` both fit. */
52
+ export interface DiffRangeEvent {
53
+ type: string;
54
+ targetBranch?: string;
55
+ baseBranch?: string;
56
+ defaultBranch?: string;
57
+ payload?: Record<string, unknown>;
58
+ }
59
+ /** Whether a SHA is git's all-zero placeholder (a created or deleted ref). */
60
+ export declare function isZeroSha(sha: string): boolean;
61
+ /** The git range an event changed, or `none` when no diff exists anywhere. */
62
+ export declare function resolveDiffRange(event: DiffRangeEvent): DiffRange;
63
+ /** Whether a range lets an agent compute the diff the orchestrator could not. */
64
+ export declare function isDeferrableRange(range: DiffRange): boolean;
65
+ export {};
66
+ //# sourceMappingURL=diff-range.d.ts.map
@@ -0,0 +1,68 @@
1
+ import "../rolldown-runtime-ClRpJifh.js";
2
+ import { z } from "zod";
3
+ //#region src/trigger/diff-range.ts
4
+ /**
5
+ * Which files an event changed, expressed as a git range.
6
+ *
7
+ * The one definition the orchestrator's changed-files fetchers and the agent's
8
+ * clone diff share, so both layers reach the same answer from the same event.
9
+ * Pure — no I/O and no `node:*` import — because the engine barrel is
10
+ * browser-safe.
11
+ */
12
+ const diffRangeKindSchema = z.enum([
13
+ "two-dot",
14
+ "new-branch",
15
+ "deleted",
16
+ "pr",
17
+ "none"
18
+ ]);
19
+ const Kind = diffRangeKindSchema.enum;
20
+ const ZERO_SHA_RE = /^0+$/;
21
+ /** Whether a SHA is git's all-zero placeholder (a created or deleted ref). */
22
+ function isZeroSha(sha) {
23
+ return ZERO_SHA_RE.test(sha);
24
+ }
25
+ function nonEmptyString(value) {
26
+ return typeof value === "string" && value.length > 0 ? value : void 0;
27
+ }
28
+ function defaultBranchOf(event) {
29
+ if (event.defaultBranch) return event.defaultBranch;
30
+ const repository = event.payload?.repository;
31
+ if (repository === null || typeof repository !== "object") return void 0;
32
+ return nonEmptyString(repository.default_branch);
33
+ }
34
+ /** The git range an event changed, or `none` when no diff exists anywhere. */
35
+ function resolveDiffRange(event) {
36
+ if (event.type === "pull_request") {
37
+ const base = event.baseBranch ?? event.targetBranch;
38
+ return base ? {
39
+ kind: Kind.pr,
40
+ base
41
+ } : { kind: Kind.none };
42
+ }
43
+ if (event.type !== "push") return { kind: Kind.none };
44
+ const before = nonEmptyString(event.payload?.before);
45
+ const after = nonEmptyString(event.payload?.after);
46
+ if (!before || !after) return { kind: Kind.none };
47
+ if (isZeroSha(after)) return { kind: Kind.deleted };
48
+ if (!isZeroSha(before)) return {
49
+ kind: Kind["two-dot"],
50
+ base: before,
51
+ head: after
52
+ };
53
+ const defaultBranch = defaultBranchOf(event);
54
+ if (!defaultBranch || defaultBranch === event.targetBranch) return { kind: Kind.none };
55
+ return {
56
+ kind: Kind["new-branch"],
57
+ defaultBranch,
58
+ head: after
59
+ };
60
+ }
61
+ /** Whether a range lets an agent compute the diff the orchestrator could not. */
62
+ function isDeferrableRange(range) {
63
+ return range.kind === Kind["two-dot"] || range.kind === Kind["new-branch"] || range.kind === Kind.pr;
64
+ }
65
+ //#endregion
66
+ export { diffRangeKindSchema, isDeferrableRange, isZeroSha, resolveDiffRange };
67
+
68
+ //# sourceMappingURL=diff-range.js.map
@@ -17,10 +17,23 @@ export declare function matchPathPatterns(paths: readonly string[], changedFiles
17
17
  * Empty array = no filtering (matches all repos).
18
18
  */
19
19
  export declare function matchRepoPatterns(repos: readonly LockBranchPattern[], sourceRepo: string): boolean;
20
+ /** Set by a push/pr trigger whose `paths` check passed only because the diff was unavailable. */
21
+ /** Trace value of a `paths` check that read an unavailable diff. */
22
+ export declare const UnavailablePathsTrace: {
23
+ /** A git range exists: the agent decides from its clone. */
24
+ readonly DecidedOnAgent: '[unavailable — decided on agent]';
25
+ /** No range the agent can diff: the workflow runs conservatively. */
26
+ readonly Conservative: '[unavailable — matched conservatively]';
27
+ };
28
+ /** Appended to a matched decision's summary when its paths are left to the agent. */
29
+ export declare const DEFERRED_PATHS_SUMMARY_SUFFIX = " \u2014 paths decided on the agent";
30
+ export interface TriggerMatchNotes {
31
+ conservativePaths?: readonly string[];
32
+ }
20
33
  /**
21
34
  * Match a trigger against a simulated event.
22
35
  */
23
- export declare function matchTrigger(trigger: LockTrigger, event: SimulatedEvent, traces: TraceEntry[]): boolean;
36
+ export declare function matchTrigger(trigger: LockTrigger, event: SimulatedEvent, traces: TraceEntry[], notes?: TriggerMatchNotes): boolean;
24
37
  /**
25
38
  * Match all triggers for a workflow against an event.
26
39
  * Returns WorkflowDecision with full trace.
@@ -2,6 +2,7 @@ import "../rolldown-runtime-ClRpJifh.js";
2
2
  import { evaluateTextMatch } from "./text-match.js";
3
3
  import { TraceCheck, createCommitMessageTraceEntry, createTraceEntry, createWorkflowDecision } from "./decision-trace.js";
4
4
  import { getCompiledRegex, getGlobMatcher, getRepoGlobMatcher } from "./compiled-matchers.js";
5
+ import { isDeferrableRange, resolveDiffRange } from "./diff-range.js";
5
6
  import { matchJsonPath, matchJsonPathNot } from "./jsonpath-matcher.js";
6
7
  //#region src/trigger/matcher.ts
7
8
  /**
@@ -142,10 +143,37 @@ function evaluateCommitMessageFilter(trigger, event, traces) {
142
143
  }));
143
144
  return result.pass;
144
145
  }
146
+ /** Set by a push/pr trigger whose `paths` check passed only because the diff was unavailable. */
147
+ /** Trace value of a `paths` check that read an unavailable diff. */
148
+ const UnavailablePathsTrace = {
149
+ /** A git range exists: the agent decides from its clone. */
150
+ DecidedOnAgent: "[unavailable — decided on agent]",
151
+ /** No range the agent can diff: the workflow runs conservatively. */
152
+ Conservative: "[unavailable — matched conservatively]"
153
+ };
154
+ /** Appended to a matched decision's summary when its paths are left to the agent. */
155
+ const DEFERRED_PATHS_SUMMARY_SUFFIX = " — paths decided on the agent";
156
+ /**
157
+ * Evaluate a push/pr trigger's `paths` list and trace it. An `unavailable`
158
+ * diff matches; when the event still has a git range, the match is recorded in
159
+ * `notes` so the workflow's path decision moves to the agent's clone.
160
+ */
161
+ function checkTriggerPaths(paths, event, traces, notes) {
162
+ if (paths.length === 0) return true;
163
+ const changedFiles = event.changedFiles ?? [];
164
+ const { include, exclude } = splitStringPatterns(paths);
165
+ const unavailable = event.changedFilesStatus === "unavailable";
166
+ const deferrable = unavailable && isDeferrableRange(resolveDiffRange(event));
167
+ const matches = matchPathPatterns(paths, changedFiles, event.changedFilesStatus);
168
+ const value = !unavailable ? `[${changedFiles.join(", ")}]` : deferrable ? UnavailablePathsTrace.DecidedOnAgent : UnavailablePathsTrace.Conservative;
169
+ traces.push(createTraceEntry("paths", `include: [${include.join(", ")}] exclude: [${exclude.join(", ")}]`, value, matches));
170
+ if (deferrable && notes) notes.conservativePaths = paths;
171
+ return matches;
172
+ }
145
173
  /**
146
174
  * Match a PR trigger against a simulated event.
147
175
  */
148
- function matchPrTrigger(trigger, event, traces) {
176
+ function matchPrTrigger(trigger, event, traces, notes) {
149
177
  if (event.type !== "pull_request") {
150
178
  traces.push(createTraceEntry("event type", "pull_request", event.type, false));
151
179
  return false;
@@ -171,13 +199,7 @@ function matchPrTrigger(trigger, event, traces) {
171
199
  traces.push(createTraceEntry("source branch", trigger.sourceBranches.map((p) => p.pattern).join("|"), event.sourceBranch, matches));
172
200
  if (!matches) return false;
173
201
  }
174
- if (trigger.paths.length > 0) {
175
- const changedFiles = event.changedFiles ?? [];
176
- const { include, exclude } = splitStringPatterns(trigger.paths);
177
- const matches = matchPathPatterns(trigger.paths, changedFiles, event.changedFilesStatus);
178
- traces.push(createTraceEntry("paths", `include: [${include.join(", ")}] exclude: [${exclude.join(", ")}]`, event.changedFilesStatus === "unavailable" ? "[unavailable — matched conservatively]" : `[${changedFiles.join(", ")}]`, matches));
179
- if (!matches) return false;
180
- }
202
+ if (!checkTriggerPaths(trigger.paths, event, traces, notes)) return false;
181
203
  if (!evaluateCommitMessageFilter(trigger, event, traces)) return false;
182
204
  if (!evaluateRepoFilter(trigger, event, traces)) return false;
183
205
  return true;
@@ -185,7 +207,7 @@ function matchPrTrigger(trigger, event, traces) {
185
207
  /**
186
208
  * Match a push trigger against a simulated event.
187
209
  */
188
- function matchPushTrigger(trigger, event, traces) {
210
+ function matchPushTrigger(trigger, event, traces, notes) {
189
211
  if (event.type !== "push") {
190
212
  traces.push(createTraceEntry("event type", "push", event.type, false));
191
213
  return false;
@@ -196,13 +218,7 @@ function matchPushTrigger(trigger, event, traces) {
196
218
  traces.push(createTraceEntry("branch", trigger.branches.map((p) => p.pattern).join("|"), event.targetBranch, matches));
197
219
  if (!matches) return false;
198
220
  }
199
- if (trigger.paths.length > 0) {
200
- const changedFiles = event.changedFiles ?? [];
201
- const { include, exclude } = splitStringPatterns(trigger.paths);
202
- const matches = matchPathPatterns(trigger.paths, changedFiles, event.changedFilesStatus);
203
- traces.push(createTraceEntry("paths", `include: [${include.join(", ")}] exclude: [${exclude.join(", ")}]`, event.changedFilesStatus === "unavailable" ? "[unavailable — matched conservatively]" : `[${changedFiles.join(", ")}]`, matches));
204
- if (!matches) return false;
205
- }
221
+ if (!checkTriggerPaths(trigger.paths, event, traces, notes)) return false;
206
222
  if (!evaluateCommitMessageFilter(trigger, event, traces)) return false;
207
223
  if (!evaluateRepoFilter(trigger, event, traces)) return false;
208
224
  return true;
@@ -737,10 +753,10 @@ function matchLifecycleTrigger(trigger, event, traces) {
737
753
  /**
738
754
  * Match a trigger against a simulated event.
739
755
  */
740
- function matchTrigger(trigger, event, traces) {
756
+ function matchTrigger(trigger, event, traces, notes) {
741
757
  switch (trigger._type) {
742
- case "pr": return matchPrTrigger(trigger, event, traces);
743
- case "push": return matchPushTrigger(trigger, event, traces);
758
+ case "pr": return matchPrTrigger(trigger, event, traces, notes);
759
+ case "push": return matchPushTrigger(trigger, event, traces, notes);
744
760
  case "tag": return matchTagTrigger(trigger, event, traces);
745
761
  case "comment": return matchCommentTrigger(trigger, event, traces);
746
762
  case "review": return matchReviewTrigger(trigger, event, traces);
@@ -772,13 +788,29 @@ function matchTrigger(trigger, event, traces) {
772
788
  function matchWorkflowTriggers(workflow, event) {
773
789
  const allTraces = [];
774
790
  if (workflow.triggers.length === 0) return createWorkflowDecision(workflow.name, false, [], void 0, "No triggers defined");
791
+ let firstDeferred;
792
+ const deferredPaths = [];
775
793
  for (let i = 0; i < workflow.triggers.length; i++) {
776
794
  const trigger = workflow.triggers[i];
777
795
  if (trigger == null) continue;
778
796
  const triggerTraces = [];
779
- if (matchTrigger(trigger, event, triggerTraces)) return createWorkflowDecision(workflow.name, true, triggerTraces, i, `Matched trigger ${i + 1} (${trigger._type})`);
797
+ const notes = {};
798
+ if (matchTrigger(trigger, event, triggerTraces, notes)) {
799
+ if (notes.conservativePaths === void 0) return createWorkflowDecision(workflow.name, true, triggerTraces, i, `Matched trigger ${i + 1} (${trigger._type})`);
800
+ deferredPaths.push([...notes.conservativePaths]);
801
+ firstDeferred ??= {
802
+ index: i,
803
+ traces: triggerTraces,
804
+ type: trigger._type
805
+ };
806
+ continue;
807
+ }
780
808
  allTraces.push(...triggerTraces);
781
809
  }
810
+ if (firstDeferred) return {
811
+ ...createWorkflowDecision(workflow.name, true, firstDeferred.traces, firstDeferred.index, `Matched trigger ${firstDeferred.index + 1} (${firstDeferred.type})${DEFERRED_PATHS_SUMMARY_SUFFIX}`),
812
+ deferredPaths
813
+ };
782
814
  return createWorkflowDecision(workflow.name, false, allTraces, void 0, "No triggers matched");
783
815
  }
784
816
  /**
@@ -788,6 +820,6 @@ function matchAllWorkflows(workflows, event) {
788
820
  return workflows.map((w) => matchWorkflowTriggers(w, event));
789
821
  }
790
822
  //#endregion
791
- export { matchAllWorkflows, matchBranchPattern, matchPathPatterns, matchRepoPatterns, matchTrigger, matchWorkflowTriggers };
823
+ export { DEFERRED_PATHS_SUMMARY_SUFFIX, UnavailablePathsTrace, matchAllWorkflows, matchBranchPattern, matchPathPatterns, matchRepoPatterns, matchTrigger, matchWorkflowTriggers };
792
824
 
793
825
  //# sourceMappingURL=matcher.js.map
@@ -732,9 +732,15 @@ export interface ResolvedSandboxGrant {
732
732
  capabilities?: string[];
733
733
  /** Network override; when set it wins over the config network mode. */
734
734
  network?: SandboxNetworkMode;
735
- /** Force a read-only rootfs (operator-config path only in Phase 2). */
735
+ /**
736
+ * Force a read-only rootfs. The orchestrator does not grant it; the agent's
737
+ * own config sets it.
738
+ */
736
739
  readonlyRootfs?: boolean;
737
- /** Run the container as this user (operator-config path only in Phase 2). */
740
+ /**
741
+ * Run the container as this user. The orchestrator does not grant it; the
742
+ * agent's own config sets it.
743
+ */
738
744
  user?: string;
739
745
  }
740
746
  /**
@@ -1125,6 +1131,12 @@ export interface SimulatedEvent {
1125
1131
  isForkPR?: boolean;
1126
1132
  /** Base branch ref for PR events (the branch being merged into). */
1127
1133
  baseBranch?: string;
1134
+ /**
1135
+ * The repository's default branch, when the delivery names it. A new-branch
1136
+ * push diffs against it (`resolveDiffRange`); absent, the range falls back to
1137
+ * `payload.repository.default_branch`.
1138
+ */
1139
+ defaultBranch?: string;
1128
1140
  /** Sender username from the webhook payload (e.g. GitHub login). */
1129
1141
  senderUsername?: string;
1130
1142
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kici-dev/engine",
3
- "version": "0.11.0",
3
+ "version": "0.13.0",
4
4
  "description": "Shared business logic for the KiCI CI/CD stack: protocol, triggers, state machine, and provider interfaces used by the Platform relay, orchestrator, and compiler.",
5
5
  "keywords": [
6
6
  "ci",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "license": "AGPL-3.0-only",
25
25
  "engines": {
26
- "node": ">=24"
26
+ "node": ">=24.5.0"
27
27
  },
28
28
  "type": "module",
29
29
  "files": [
package/sbom.spdx.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "spdxVersion": "SPDX-2.3",
3
3
  "dataLicense": "CC0-1.0",
4
4
  "SPDXID": "SPDXRef-DOCUMENT",
5
- "name": "@kici-dev/engine@0.11.0",
6
- "documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Fengine/0.11.0/551d6e11-b929-4b7a-9e55-d758c60dec3d",
5
+ "name": "@kici-dev/engine@0.13.0",
6
+ "documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Fengine/0.13.0/4b96027f-523a-4ba7-ab05-2b81a6793c87",
7
7
  "creationInfo": {
8
- "created": "2026-09-25T16:08:00Z",
8
+ "created": "2026-09-30T15:38:56Z",
9
9
  "creators": [
10
10
  "Tool: kici-sbom-generator"
11
11
  ]
@@ -54,7 +54,7 @@
54
54
  {
55
55
  "SPDXID": "SPDXRef-RootPackage",
56
56
  "name": "@kici-dev/engine",
57
- "versionInfo": "0.11.0",
57
+ "versionInfo": "0.13.0",
58
58
  "downloadLocation": "NOASSERTION",
59
59
  "filesAnalyzed": false,
60
60
  "licenseConcluded": "NOASSERTION",
@@ -65,7 +65,7 @@
65
65
  {
66
66
  "referenceCategory": "PACKAGE-MANAGER",
67
67
  "referenceType": "purl",
68
- "referenceLocator": "pkg:npm/%40kici-dev/engine@0.11.0"
68
+ "referenceLocator": "pkg:npm/%40kici-dev/engine@0.13.0"
69
69
  }
70
70
  ],
71
71
  "description": "Shared business logic for the KiCI CI/CD stack: protocol, triggers, state machine, and provider interfaces used by the Platform relay, orchestrator, and compiler.",