@kici-dev/engine 0.11.0 → 0.12.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.
- package/dist/audit/access-log-policy.d.ts +2 -2
- package/dist/audit/access-log-policy.js +2 -2
- package/dist/audit/activity.d.ts +1 -2
- package/dist/audit/activity.js +1 -2
- package/dist/audit/retention-policy.d.ts +1 -3
- package/dist/audit/retention-policy.js +1 -1
- package/dist/context/hold-reason.d.ts +3 -5
- package/dist/labels.d.ts +1 -1
- package/dist/labels.js +1 -1
- package/dist/mcp/tool-schemas.d.ts +1 -1
- package/dist/mcp/tool-schemas.js +1 -1
- package/dist/metrics/catalog-policy.d.ts +1 -2
- package/dist/metrics/catalog-policy.js +1 -2
- package/dist/protocol/dashboard-global-workflows.d.ts +1 -1
- package/dist/protocol/messages/common.d.ts +0 -1
- package/dist/protocol/messages/common.js +0 -1
- package/dist/protocol/messages/dashboard.d.ts +1 -1
- package/dist/protocol/messages/dashboard.js +4 -4
- package/dist/protocol/messages/orchestrator-agent.d.ts +0 -1
- package/dist/protocol/messages/orchestrator-agent.js +0 -1
- package/dist/protocol/messages/peer.js +1 -1
- package/dist/protocol/messages/platform-orchestrator.d.ts +6 -6
- package/dist/protocol/messages/platform-orchestrator.js +6 -6
- package/dist/registration/registerable-trigger-type.d.ts +1 -1
- package/dist/registration/registerable-trigger-type.js +1 -1
- package/dist/trigger/decision-trace.d.ts +3 -3
- package/dist/trigger/decision-trace.js +3 -3
- package/dist/trigger/types.d.ts +8 -2
- package/package.json +1 -1
- 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
|
-
*
|
|
52
|
-
*
|
|
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
|
-
*
|
|
36
|
-
*
|
|
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
|
*/
|
package/dist/audit/activity.d.ts
CHANGED
|
@@ -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
|
|
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
|
package/dist/audit/activity.js
CHANGED
|
@@ -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
|
|
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
|
-
*
|
|
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
|
|
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,
|
|
8
|
-
*
|
|
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/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:
|
|
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:
|
|
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
|
|
7
|
+
* server is the consumer.
|
|
8
8
|
*/
|
|
9
9
|
import { z } from 'zod';
|
|
10
10
|
export declare const listRunsToolSchema: {
|
package/dist/mcp/tool-schemas.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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. "
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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.
|
|
@@ -159,9 +159,9 @@ export declare function createCommitMessageTraceEntry(args: {
|
|
|
159
159
|
* What a withheld trace field is replaced with when the reader does not hold
|
|
160
160
|
* `event_log:read_payload`.
|
|
161
161
|
*
|
|
162
|
-
* Lives here rather than beside the Platform's redactor because
|
|
163
|
-
*
|
|
164
|
-
*
|
|
162
|
+
* Lives here rather than beside the Platform's redactor because it crosses
|
|
163
|
+
* packages: the Platform writes it, the dashboard renders it, and tests assert
|
|
164
|
+
* the permission boundary against it. A literal repeated at each site
|
|
165
165
|
* would drift into a marker one of them no longer recognizes.
|
|
166
166
|
*/
|
|
167
167
|
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
|
|
149
|
-
*
|
|
150
|
-
*
|
|
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]";
|
package/dist/trigger/types.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kici-dev/engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Shared business logic for the KiCI CI/CD stack: protocol, triggers, state machine, and provider interfaces used by the Platform relay, orchestrator, and compiler.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ci",
|
package/sbom.spdx.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"spdxVersion": "SPDX-2.3",
|
|
3
3
|
"dataLicense": "CC0-1.0",
|
|
4
4
|
"SPDXID": "SPDXRef-DOCUMENT",
|
|
5
|
-
"name": "@kici-dev/engine@0.
|
|
6
|
-
"documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Fengine/0.
|
|
5
|
+
"name": "@kici-dev/engine@0.12.0",
|
|
6
|
+
"documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Fengine/0.12.0/26df8fdf-b46b-49db-86d9-b586bd3124fa",
|
|
7
7
|
"creationInfo": {
|
|
8
|
-
"created": "2026-09-
|
|
8
|
+
"created": "2026-09-28T05:10:36Z",
|
|
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.
|
|
57
|
+
"versionInfo": "0.12.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.
|
|
68
|
+
"referenceLocator": "pkg:npm/%40kici-dev/engine@0.12.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.",
|