@kici-dev/engine 0.1.16 → 0.1.18

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 (104) hide show
  1. package/dist/approval/types.js +1 -1
  2. package/dist/audit/access-log-policy.js +3 -1
  3. package/dist/audit/activity.js +1 -1
  4. package/dist/audit/retention-policy.js +5 -1
  5. package/dist/bundler/index.js +1 -1
  6. package/dist/bundler/rolldown-config.js +1 -1
  7. package/dist/env/environment-allowlist.d.ts +1 -1
  8. package/dist/env/environment-allowlist.js +13 -2
  9. package/dist/environment/index.js +1 -1
  10. package/dist/environment/scope-resolver.js +1 -1
  11. package/dist/environment/types.js +1 -1
  12. package/dist/fanout/materialize.d.ts +123 -0
  13. package/dist/fanout/materialize.js +176 -0
  14. package/dist/index.d.ts +4 -2
  15. package/dist/index.js +9 -7
  16. package/dist/labels/compile.d.ts +40 -0
  17. package/dist/labels/compile.js +91 -0
  18. package/dist/labels-match.d.ts +32 -0
  19. package/dist/labels-match.js +55 -0
  20. package/dist/labels.js +1 -1
  21. package/dist/matrix/expand.d.ts +48 -0
  22. package/dist/matrix/expand.js +72 -0
  23. package/dist/matrix/format.d.ts +10 -0
  24. package/dist/matrix/format.js +20 -0
  25. package/dist/metrics/catalog-policy.js +8 -3
  26. package/dist/metrics/metric-catalog.generated.d.ts +11 -1
  27. package/dist/metrics/metric-catalog.generated.js +14 -2
  28. package/dist/protocol/analytics-events.js +1 -1
  29. package/dist/protocol/cluster-name.js +1 -1
  30. package/dist/protocol/dashboard-global-workflows.js +1 -1
  31. package/dist/protocol/dashboard-write-operations.js +1 -1
  32. package/dist/protocol/event-log-payload.js +1 -1
  33. package/dist/protocol/messages/access-log.d.ts +15 -5
  34. package/dist/protocol/messages/access-log.js +3 -1
  35. package/dist/protocol/messages/actor.js +1 -1
  36. package/dist/protocol/messages/auth.d.ts +1 -0
  37. package/dist/protocol/messages/auth.js +11 -2
  38. package/dist/protocol/messages/browser.js +1 -1
  39. package/dist/protocol/messages/capabilities.js +1 -1
  40. package/dist/protocol/messages/common.js +1 -1
  41. package/dist/protocol/messages/dashboard-global-workflows.js +1 -1
  42. package/dist/protocol/messages/dashboard.d.ts +985 -57
  43. package/dist/protocol/messages/dashboard.js +368 -13
  44. package/dist/protocol/messages/event-log.js +1 -1
  45. package/dist/protocol/messages/execution-status.d.ts +13 -1
  46. package/dist/protocol/messages/execution-status.js +13 -3
  47. package/dist/protocol/messages/join.js +1 -1
  48. package/dist/protocol/messages/log-pull.js +1 -1
  49. package/dist/protocol/messages/observe.d.ts +1 -0
  50. package/dist/protocol/messages/oidc-token-relay.d.ts +31 -0
  51. package/dist/protocol/messages/oidc-token-relay.js +34 -0
  52. package/dist/protocol/messages/orchestrator-agent.d.ts +56 -0
  53. package/dist/protocol/messages/orchestrator-agent.js +47 -2
  54. package/dist/protocol/messages/peer.d.ts +48 -0
  55. package/dist/protocol/messages/peer.js +12 -1
  56. package/dist/protocol/messages/platform-orchestrator.d.ts +171 -4
  57. package/dist/protocol/messages/platform-orchestrator.js +1 -1
  58. package/dist/protocol/messages/run-events.js +1 -1
  59. package/dist/protocol/messages/scaler-event.js +1 -1
  60. package/dist/protocol/messages/source-registration.d.ts +7 -6
  61. package/dist/protocol/messages/source-registration.js +7 -6
  62. package/dist/protocol/version.js +1 -1
  63. package/dist/provenance/bundle.d.ts +54 -0
  64. package/dist/provenance/bundle.js +53 -0
  65. package/dist/provenance/dsse.d.ts +39 -0
  66. package/dist/provenance/dsse.js +53 -0
  67. package/dist/provenance/schema.js +1 -1
  68. package/dist/provenance/verify.d.ts +71 -0
  69. package/dist/provenance/verify.js +135 -0
  70. package/dist/provider/changed-files-fetcher.js +1 -1
  71. package/dist/provider/check-run-conclusion.js +1 -1
  72. package/dist/provider/check-status-poster.js +1 -1
  73. package/dist/provider/clone-token-provider.js +1 -1
  74. package/dist/provider/contributor-resolver.js +1 -1
  75. package/dist/provider/index.js +1 -1
  76. package/dist/provider/lock-file-fetcher.js +1 -1
  77. package/dist/provider/lock-file-parse-error.js +3 -1
  78. package/dist/provider/repo-url-builder.js +1 -1
  79. package/dist/provider/types.d.ts +2 -2
  80. package/dist/provider/types.js +1 -1
  81. package/dist/provider/webhook-normalizer.js +1 -1
  82. package/dist/registration/registerable-trigger-type.js +1 -1
  83. package/dist/scaler/resource-types.js +1 -1
  84. package/dist/scaler/scaler-backend-type.js +1 -1
  85. package/dist/secrets/index.js +1 -1
  86. package/dist/secrets/types.js +1 -1
  87. package/dist/state-machine/index.js +1 -1
  88. package/dist/state-machine/machine.js +1 -1
  89. package/dist/state-machine/types.js +1 -1
  90. package/dist/trigger/decision-trace.js +1 -1
  91. package/dist/trigger/jsonpath-matcher.js +1 -1
  92. package/dist/trigger/matcher.js +1 -1
  93. package/dist/trigger/trigger-event-type.js +1 -1
  94. package/dist/trigger/types.d.ts +76 -3
  95. package/dist/trigger/types.js +33 -5
  96. package/dist/webhook/signature.js +1 -1
  97. package/dist/ws/close-codes.js +1 -1
  98. package/dist/ws/rate-limiter.js +3 -1
  99. package/dist/ws/ws-like.js +1 -1
  100. package/package.json +26 -3
  101. package/sbom.spdx.json +85 -10
  102. package/dist/protocol/messages/observe.js +0 -70
  103. package/dist/protocol/messages/test-run.js +0 -52
  104. /package/dist/{chunk-gOLHoazu.js → chunk-BTugEXQM.js} +0 -0
@@ -11,12 +11,17 @@
11
11
  * Schema version 14: adds declarative cache specs to LockJob and LockStep.
12
12
  * Schema version 15: adds per-job init config(s) to LockJob.
13
13
  * Schema version 16: adds normalized approval config to LockWorkflow/LockJob/LockStep.
14
+ * Schema version 17: widens LockJob.init to typed presets ('mise' / { mise }) and 'auto' detection.
15
+ * Schema version 18: adds LockJob.runsOnAll host fan-out predicate + onUnreachable policy.
16
+ * Schema version 19: adds LockJob.maxParallel/failFast fan-out concurrency (rolling waves).
17
+ * Schema version 20: runsOn/runsOnAll/excludeLabels carry LabelMatcher (exact|regex) for glob+regex selectors.
14
18
  */
15
19
  import { z } from 'zod';
16
20
  import type { ProviderType } from '../provider/types.js';
17
21
  import type { ApproverClause } from '../approval/types.js';
22
+ import { LabelMatcher } from '../labels-match.js';
18
23
  /** Schema version - increment on breaking changes */
19
- export declare const SCHEMA_VERSION: 16;
24
+ export declare const SCHEMA_VERSION: 20;
20
25
  /**
21
26
  * Normalized approval config carried in the lock file. Produced by the compiler
22
27
  * from an SDK `requireApproval` at any of the three levels; consumed by the
@@ -346,6 +351,17 @@ export interface LockInlineValue {
346
351
  }
347
352
  /** Type guard for inline expression values */
348
353
  export declare function isLockInlineValue(value: unknown): value is LockInlineValue;
354
+ /**
355
+ * Per-edge failure policy for a `needs` dependency: `skip` propagates an
356
+ * upstream failure to the downstream job (default), `run` runs the downstream
357
+ * job regardless of the upstream outcome. Single source of truth for this
358
+ * value across lock-file schemas and protocol messages.
359
+ */
360
+ export declare const IfFailedPolicy: z.ZodEnum<{
361
+ run: "run";
362
+ skip: "skip";
363
+ }>;
364
+ export type IfFailedPolicy = z.infer<typeof IfFailedPolicy>;
349
365
  /**
350
366
  * Needs entry with per-edge failure policy.
351
367
  * Used in lock file needs arrays for explicit ifFailed override.
@@ -374,11 +390,59 @@ export type NeedsGroupEntry = z.infer<typeof NeedsGroupEntrySchema>;
374
390
  * Static job in lock file.
375
391
  * Contains all orchestrator-readable information for scheduling.
376
392
  */
393
+ /** Normalized runsOnAll predicate: OR of AND-groups (include), minus exclude matchers. */
394
+ export interface RunsOnAllPredicate {
395
+ /** OR across groups; AND within a group. */
396
+ readonly include: readonly (readonly LabelMatcher[])[];
397
+ /** Matchers that disqualify a host (AND-NOT, applied to the union). */
398
+ readonly exclude: readonly LabelMatcher[];
399
+ }
400
+ /** Author-facing input forms for runsOnAll (string | RegExp | array-with-! | structured). */
401
+ export type RunsOnAllInput = string | RegExp | readonly (string | RegExp)[] | {
402
+ readonly include: readonly {
403
+ readonly all: readonly (string | RegExp)[];
404
+ }[];
405
+ readonly exclude?: readonly (string | RegExp)[];
406
+ };
407
+ /**
408
+ * Failure policy for a host fan-out (`runsOnAll`) when an expected durable host
409
+ * is in the declared roster but not currently reachable.
410
+ *
411
+ * - `skip`: omit the unreachable durable host (fan out to reachable hosts only).
412
+ * - `fail`: fail the run init if any expected durable host is unreachable.
413
+ * - `hold`: queue a pinned child for each unreachable durable host and wait for
414
+ * it to (re)connect (the durable default).
415
+ *
416
+ * Ephemeral hosts that are not live are always skipped (a scaled-down node may
417
+ * never return), independent of this policy.
418
+ */
419
+ export declare const OnUnreachableMode: z.ZodEnum<{
420
+ skip: "skip";
421
+ fail: "fail";
422
+ hold: "hold";
423
+ }>;
424
+ export type OnUnreachableMode = z.infer<typeof OnUnreachableMode>;
377
425
  export interface LockJob {
378
426
  readonly _type: 'static';
379
427
  readonly name: string;
380
- readonly runsOn: string | readonly string[];
381
- readonly excludeLabels?: readonly string[];
428
+ /** Single-agent targeting matchers. Absent when the job uses `runsOnAll` instead. */
429
+ readonly runsOn?: readonly LabelMatcher[];
430
+ readonly excludeLabels?: readonly LabelMatcher[];
431
+ /**
432
+ * Host fan-out predicate (mutually exclusive with `runsOn`). When set, the job
433
+ * fans out to every roster host matching the predicate, one pinned child per host.
434
+ */
435
+ readonly runsOnAll?: RunsOnAllPredicate;
436
+ /** Failure policy for unreachable durable hosts in a `runsOnAll` fan-out. */
437
+ readonly onUnreachable?: OnUnreachableMode;
438
+ /**
439
+ * Fan-out concurrency width (sliding window; `1` = serial). When set on a
440
+ * fan-out job (matrix or `runsOnAll`), only the first `maxParallel` children
441
+ * dispatch; the rest are held `wave_gated` and released one-per-terminal.
442
+ */
443
+ readonly maxParallel?: number;
444
+ /** Halt the fan-out on first child failure, skipping the held remainder. Default `false`. */
445
+ readonly failFast?: boolean;
382
446
  readonly needs: readonly (string | NeedsEntry | NeedsGroupEntry)[];
383
447
  /** Group names this job depends on (populated by compiler from dynamicGroup refs). */
384
448
  readonly dependsOnGroups?: readonly string[];
@@ -423,6 +487,15 @@ export interface LockDynamicJobFn {
423
487
  };
424
488
  /** Group name for cross-domain needs (set when dynamicJob('name', fn) is used). */
425
489
  readonly group?: string;
490
+ /**
491
+ * Declared upstream needs for a result-aware generator. When present the
492
+ * generator's eval job is deferred until these upstreams complete, then run
493
+ * with their frozen outputs available as ctx.needs. Same normalized shape as
494
+ * a static job's `needs`.
495
+ */
496
+ readonly needs?: readonly (string | NeedsEntry | NeedsGroupEntry)[];
497
+ /** True when this dynamic entry was authored as dynamicJob(group, { needs, generate }). */
498
+ readonly resultAware?: boolean;
426
499
  }
427
500
  /** Job or dynamic job generator */
428
501
  export type LockJobOrFactory = LockJob | LockDynamicJobFn;
@@ -1,4 +1,4 @@
1
- import "../chunk-gOLHoazu.js";
1
+ import "../chunk-BTugEXQM.js";
2
2
  import { z } from "zod";
3
3
  //#region src/trigger/types.ts
4
4
  /**
@@ -14,20 +14,31 @@ import { z } from "zod";
14
14
  * Schema version 14: adds declarative cache specs to LockJob and LockStep.
15
15
  * Schema version 15: adds per-job init config(s) to LockJob.
16
16
  * Schema version 16: adds normalized approval config to LockWorkflow/LockJob/LockStep.
17
+ * Schema version 17: widens LockJob.init to typed presets ('mise' / { mise }) and 'auto' detection.
18
+ * Schema version 18: adds LockJob.runsOnAll host fan-out predicate + onUnreachable policy.
19
+ * Schema version 19: adds LockJob.maxParallel/failFast fan-out concurrency (rolling waves).
20
+ * Schema version 20: runsOn/runsOnAll/excludeLabels carry LabelMatcher (exact|regex) for glob+regex selectors.
17
21
  */
18
22
  /** Schema version - increment on breaking changes */
19
- const SCHEMA_VERSION = 16;
23
+ const SCHEMA_VERSION = 20;
20
24
  /** Type guard for inline expression values */
21
25
  function isLockInlineValue(value) {
22
26
  return typeof value === "object" && value !== null && value._type === "inline";
23
27
  }
24
28
  /**
29
+ * Per-edge failure policy for a `needs` dependency: `skip` propagates an
30
+ * upstream failure to the downstream job (default), `run` runs the downstream
31
+ * job regardless of the upstream outcome. Single source of truth for this
32
+ * value across lock-file schemas and protocol messages.
33
+ */
34
+ const IfFailedPolicy = z.enum(["skip", "run"]);
35
+ /**
25
36
  * Needs entry with per-edge failure policy.
26
37
  * Used in lock file needs arrays for explicit ifFailed override.
27
38
  */
28
39
  const NeedsEntrySchema = z.object({
29
40
  name: z.string(),
30
- ifFailed: z.enum(["skip", "run"]).default("skip")
41
+ ifFailed: IfFailedPolicy.default(IfFailedPolicy.enum.skip)
31
42
  });
32
43
  /**
33
44
  * Needs group entry with per-edge failure policy.
@@ -35,8 +46,25 @@ const NeedsEntrySchema = z.object({
35
46
  */
36
47
  const NeedsGroupEntrySchema = z.object({
37
48
  group: z.string(),
38
- ifFailed: z.enum(["skip", "run"]).default("skip")
49
+ ifFailed: IfFailedPolicy.default(IfFailedPolicy.enum.skip)
39
50
  });
51
+ /**
52
+ * Failure policy for a host fan-out (`runsOnAll`) when an expected durable host
53
+ * is in the declared roster but not currently reachable.
54
+ *
55
+ * - `skip`: omit the unreachable durable host (fan out to reachable hosts only).
56
+ * - `fail`: fail the run init if any expected durable host is unreachable.
57
+ * - `hold`: queue a pinned child for each unreachable durable host and wait for
58
+ * it to (re)connect (the durable default).
59
+ *
60
+ * Ephemeral hosts that are not live are always skipped (a scaled-down node may
61
+ * never return), independent of this policy.
62
+ */
63
+ const OnUnreachableMode = z.enum([
64
+ "skip",
65
+ "fail",
66
+ "hold"
67
+ ]);
40
68
  /** Type guard for static jobs */
41
69
  function isLockStaticJob(job) {
42
70
  return job._type === "static";
@@ -46,6 +74,6 @@ function isLockDynamicJobFn(job) {
46
74
  return job._type === "dynamic";
47
75
  }
48
76
  //#endregion
49
- export { NeedsEntrySchema, NeedsGroupEntrySchema, SCHEMA_VERSION, isLockDynamicJobFn, isLockInlineValue, isLockStaticJob };
77
+ export { IfFailedPolicy, NeedsEntrySchema, NeedsGroupEntrySchema, OnUnreachableMode, SCHEMA_VERSION, isLockDynamicJobFn, isLockInlineValue, isLockStaticJob };
50
78
 
51
79
  //# sourceMappingURL=types.js.map
@@ -1,4 +1,4 @@
1
- import "../chunk-gOLHoazu.js";
1
+ import "../chunk-BTugEXQM.js";
2
2
  import { createHmac, timingSafeEqual } from "node:crypto";
3
3
  //#region src/webhook/signature.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import "../chunk-gOLHoazu.js";
1
+ import "../chunk-BTugEXQM.js";
2
2
  //#region src/ws/close-codes.ts
3
3
  /**
4
4
  * Unified WebSocket close codes for KiCI connections.
@@ -1,4 +1,4 @@
1
- import "../chunk-gOLHoazu.js";
1
+ import "../chunk-BTugEXQM.js";
2
2
  //#region src/ws/rate-limiter.ts
3
3
  /**
4
4
  * WebSocket rate limiter with two-tier token bucket (messages + bytes).
@@ -18,6 +18,8 @@ import "../chunk-gOLHoazu.js";
18
18
  * When tokens are exhausted, returns a retryAfterMs estimate.
19
19
  */
20
20
  var TokenBucket = class {
21
+ capacity;
22
+ refillRate;
21
23
  tokens;
22
24
  lastRefill;
23
25
  constructor(capacity, refillRate) {
@@ -1,2 +1,2 @@
1
- import "../chunk-gOLHoazu.js";
1
+ import "../chunk-BTugEXQM.js";
2
2
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kici-dev/engine",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
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",
@@ -49,6 +49,10 @@
49
49
  "import": "./dist/webhook/signature.js",
50
50
  "types": "./dist/webhook/signature.d.ts"
51
51
  },
52
+ "./labels/compile": {
53
+ "import": "./dist/labels/compile.js",
54
+ "types": "./dist/labels/compile.d.ts"
55
+ },
52
56
  "./protocol/dashboard-global-workflows": {
53
57
  "import": "./dist/protocol/dashboard-global-workflows.js",
54
58
  "types": "./dist/protocol/dashboard-global-workflows.d.ts"
@@ -65,10 +69,26 @@
65
69
  "import": "./dist/protocol/cluster-name.js",
66
70
  "types": "./dist/protocol/cluster-name.d.ts"
67
71
  },
72
+ "./protocol/messages/oidc-token-relay": {
73
+ "import": "./dist/protocol/messages/oidc-token-relay.js",
74
+ "types": "./dist/protocol/messages/oidc-token-relay.d.ts"
75
+ },
68
76
  "./provenance/schema": {
69
77
  "import": "./dist/provenance/schema.js",
70
78
  "types": "./dist/provenance/schema.d.ts"
71
79
  },
80
+ "./provenance/dsse": {
81
+ "import": "./dist/provenance/dsse.js",
82
+ "types": "./dist/provenance/dsse.d.ts"
83
+ },
84
+ "./provenance/bundle": {
85
+ "import": "./dist/provenance/bundle.js",
86
+ "types": "./dist/provenance/bundle.d.ts"
87
+ },
88
+ "./provenance/verify": {
89
+ "import": "./dist/provenance/verify.js",
90
+ "types": "./dist/provenance/verify.d.ts"
91
+ },
72
92
  "./metrics/catalog": {
73
93
  "import": "./dist/metrics/metric-catalog.generated.js",
74
94
  "types": "./dist/metrics/metric-catalog.generated.d.ts"
@@ -79,12 +99,15 @@
79
99
  }
80
100
  },
81
101
  "dependencies": {
102
+ "jose": "^6.1.0",
82
103
  "jsonpath-plus": "^10.4.0",
83
104
  "picomatch": "^4.0.4",
84
- "zod": "^4.3.6"
105
+ "safe-regex": "^2.1.1",
106
+ "zod": "^4.4.3"
85
107
  },
86
108
  "devDependencies": {
87
- "@types/node": "^24.12.0"
109
+ "@types/node": "^24.12.0",
110
+ "@types/safe-regex": "^1.1.6"
88
111
  },
89
112
  "scripts": {
90
113
  "build": "node ../../scripts/build-ts.mjs && tsc --emitDeclarationOnly",
package/sbom.spdx.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "spdxVersion": "SPDX-2.3",
3
3
  "dataLicense": "CC0-1.0",
4
4
  "SPDXID": "SPDXRef-DOCUMENT",
5
- "name": "@kici-dev/engine@0.1.16",
6
- "documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Fengine/0.1.16/33d50570-d86e-4a27-b1c9-26cef35a15c7",
5
+ "name": "@kici-dev/engine@0.1.18",
6
+ "documentNamespace": "https://kici.dev/sbom/%40kici-dev%2Fengine/0.1.18/fe01b1af-8e27-4bc2-a638-9b00ac77e671",
7
7
  "creationInfo": {
8
- "created": "2026-06-12T09:41:34Z",
8
+ "created": "2026-06-17T10:55:42Z",
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.1.16",
57
+ "versionInfo": "0.1.18",
58
58
  "downloadLocation": "NOASSERTION",
59
59
  "filesAnalyzed": false,
60
60
  "licenseConcluded": "NOASSERTION",
@@ -65,12 +65,32 @@
65
65
  {
66
66
  "referenceCategory": "PACKAGE-MANAGER",
67
67
  "referenceType": "purl",
68
- "referenceLocator": "pkg:npm/%40kici-dev/engine@0.1.16"
68
+ "referenceLocator": "pkg:npm/%40kici-dev/engine@0.1.18"
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.",
72
72
  "homepage": "https://kici.dev"
73
73
  },
74
+ {
75
+ "SPDXID": "SPDXRef-Package-jose-6.2.3",
76
+ "name": "jose",
77
+ "versionInfo": "6.2.3",
78
+ "downloadLocation": "https://registry.npmjs.org/jose/-/jose-6.2.3.tgz",
79
+ "filesAnalyzed": false,
80
+ "licenseConcluded": "NOASSERTION",
81
+ "licenseDeclared": "MIT",
82
+ "copyrightText": "NOASSERTION",
83
+ "supplier": "NOASSERTION",
84
+ "externalRefs": [
85
+ {
86
+ "referenceCategory": "PACKAGE-MANAGER",
87
+ "referenceType": "purl",
88
+ "referenceLocator": "pkg:npm/jose@6.2.3"
89
+ }
90
+ ],
91
+ "description": "JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes",
92
+ "homepage": "https://github.com/panva/jose"
93
+ },
74
94
  {
75
95
  "SPDXID": "SPDXRef-Package-jsep-1.4.0",
76
96
  "name": "jsep",
@@ -132,10 +152,50 @@
132
152
  "homepage": "https://github.com/micromatch/picomatch"
133
153
  },
134
154
  {
135
- "SPDXID": "SPDXRef-Package-zod-4.3.6",
155
+ "SPDXID": "SPDXRef-Package-regexp-tree-0.1.27",
156
+ "name": "regexp-tree",
157
+ "versionInfo": "0.1.27",
158
+ "downloadLocation": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
159
+ "filesAnalyzed": false,
160
+ "licenseConcluded": "NOASSERTION",
161
+ "licenseDeclared": "MIT",
162
+ "copyrightText": "NOASSERTION",
163
+ "supplier": "NOASSERTION",
164
+ "externalRefs": [
165
+ {
166
+ "referenceCategory": "PACKAGE-MANAGER",
167
+ "referenceType": "purl",
168
+ "referenceLocator": "pkg:npm/regexp-tree@0.1.27"
169
+ }
170
+ ],
171
+ "description": "Regular Expressions parser in JavaScript",
172
+ "homepage": "https://github.com/DmitrySoshnikov/regexp-tree"
173
+ },
174
+ {
175
+ "SPDXID": "SPDXRef-Package-safe-regex-2.1.1",
176
+ "name": "safe-regex",
177
+ "versionInfo": "2.1.1",
178
+ "downloadLocation": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
179
+ "filesAnalyzed": false,
180
+ "licenseConcluded": "NOASSERTION",
181
+ "licenseDeclared": "MIT",
182
+ "copyrightText": "NOASSERTION",
183
+ "supplier": "NOASSERTION",
184
+ "externalRefs": [
185
+ {
186
+ "referenceCategory": "PACKAGE-MANAGER",
187
+ "referenceType": "purl",
188
+ "referenceLocator": "pkg:npm/safe-regex@2.1.1"
189
+ }
190
+ ],
191
+ "description": "detect possibly catastrophic, exponential-time regular expressions",
192
+ "homepage": "https://github.com/davisjam/safe-regex"
193
+ },
194
+ {
195
+ "SPDXID": "SPDXRef-Package-zod-4.4.3",
136
196
  "name": "zod",
137
- "versionInfo": "4.3.6",
138
- "downloadLocation": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",
197
+ "versionInfo": "4.4.3",
198
+ "downloadLocation": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
139
199
  "filesAnalyzed": false,
140
200
  "licenseConcluded": "NOASSERTION",
141
201
  "licenseDeclared": "MIT",
@@ -145,7 +205,7 @@
145
205
  {
146
206
  "referenceCategory": "PACKAGE-MANAGER",
147
207
  "referenceType": "purl",
148
- "referenceLocator": "pkg:npm/zod@4.3.6"
208
+ "referenceLocator": "pkg:npm/zod@4.4.3"
149
209
  }
150
210
  ],
151
211
  "description": "TypeScript-first schema declaration and validation library with static type inference",
@@ -168,6 +228,11 @@
168
228
  "relatedSpdxElement": "SPDXRef-Package-jsep-1.4.0",
169
229
  "relationshipType": "DEPENDS_ON"
170
230
  },
231
+ {
232
+ "spdxElementId": "SPDXRef-RootPackage",
233
+ "relatedSpdxElement": "SPDXRef-Package-jose-6.2.3",
234
+ "relationshipType": "DEPENDS_ON"
235
+ },
171
236
  {
172
237
  "spdxElementId": "SPDXRef-RootPackage",
173
238
  "relatedSpdxElement": "SPDXRef-Package-jsonpath-plus-10.4.0",
@@ -180,7 +245,12 @@
180
245
  },
181
246
  {
182
247
  "spdxElementId": "SPDXRef-RootPackage",
183
- "relatedSpdxElement": "SPDXRef-Package-zod-4.3.6",
248
+ "relatedSpdxElement": "SPDXRef-Package-safe-regex-2.1.1",
249
+ "relationshipType": "DEPENDS_ON"
250
+ },
251
+ {
252
+ "spdxElementId": "SPDXRef-RootPackage",
253
+ "relatedSpdxElement": "SPDXRef-Package-zod-4.4.3",
184
254
  "relationshipType": "DEPENDS_ON"
185
255
  },
186
256
  {
@@ -197,6 +267,11 @@
197
267
  "spdxElementId": "SPDXRef-Package-jsonpath-plus-10.4.0",
198
268
  "relatedSpdxElement": "SPDXRef-Package-jsep-1.4.0",
199
269
  "relationshipType": "DEPENDS_ON"
270
+ },
271
+ {
272
+ "spdxElementId": "SPDXRef-Package-safe-regex-2.1.1",
273
+ "relatedSpdxElement": "SPDXRef-Package-regexp-tree-0.1.27",
274
+ "relationshipType": "DEPENDS_ON"
200
275
  }
201
276
  ]
202
277
  }
@@ -1,70 +0,0 @@
1
- import "../../chunk-gOLHoazu.js";
2
- import { ExecutionRunStatus } from "./execution-status.js";
3
- import { z } from "zod";
4
- //#region src/protocol/messages/observe.ts
5
- /** Subscribe to observe a running test execution. */
6
- const observeSubscribeSchema = z.object({
7
- type: z.literal("observe.subscribe"),
8
- runId: z.string(),
9
- token: z.string(),
10
- lastSeenSequence: z.number().optional()
11
- });
12
- /** Run status update sent to observer. */
13
- const observeStatusSchema = z.object({
14
- type: z.literal("observe.status"),
15
- runId: z.string(),
16
- status: ExecutionRunStatus,
17
- jobName: z.string().optional(),
18
- timestamp: z.number()
19
- });
20
- /** Log chunk sent to observer. */
21
- const observeLogSchema = z.object({
22
- type: z.literal("observe.log"),
23
- runId: z.string(),
24
- jobId: z.string(),
25
- jobName: z.string(),
26
- stepIndex: z.number(),
27
- stepName: z.string(),
28
- lines: z.array(z.string()),
29
- sequence: z.number(),
30
- timestamp: z.number()
31
- });
32
- /** Step lifecycle event sent to observer. */
33
- const observeStepSchema = z.object({
34
- type: z.literal("observe.step"),
35
- runId: z.string(),
36
- jobId: z.string(),
37
- jobName: z.string(),
38
- stepName: z.string(),
39
- state: z.enum([
40
- "pending",
41
- "running",
42
- "success",
43
- "failed",
44
- "skipped"
45
- ]),
46
- durationMs: z.number().optional(),
47
- timestamp: z.number()
48
- });
49
- /** Run completion summary sent to observer. */
50
- const observeCompleteSchema = z.object({
51
- type: z.literal("observe.complete"),
52
- runId: z.string(),
53
- status: z.enum([
54
- "success",
55
- "failed",
56
- "cancelled"
57
- ]),
58
- summary: z.object({
59
- totalDurationMs: z.number(),
60
- jobs: z.array(z.object({
61
- name: z.string(),
62
- status: z.string(),
63
- durationMs: z.number().optional()
64
- }))
65
- })
66
- });
67
- //#endregion
68
- export { observeCompleteSchema, observeLogSchema, observeStatusSchema, observeStepSchema, observeSubscribeSchema };
69
-
70
- //# sourceMappingURL=observe.js.map
@@ -1,52 +0,0 @@
1
- import "../../chunk-gOLHoazu.js";
2
- import { z } from "zod";
3
- //#region src/protocol/messages/test-run.ts
4
- /** Simulated event shape embedded in test trigger messages. */
5
- const testEventSchema = z.object({
6
- type: z.string(),
7
- action: z.string().optional(),
8
- targetBranch: z.string(),
9
- sourceBranch: z.string().optional(),
10
- payload: z.record(z.string(), z.unknown()),
11
- changedFiles: z.array(z.string()).optional()
12
- });
13
- /** Test trigger sent by CLI to orchestrator to initiate a test run. */
14
- const testTriggerSchema = z.object({
15
- type: z.literal("test.trigger"),
16
- messageId: z.string(),
17
- fixtureId: z.string(),
18
- event: testEventSchema,
19
- uploadId: z.string().optional(),
20
- routingKey: z.string(),
21
- secrets: z.record(z.string(), z.string()).optional(),
22
- workflowName: z.string().optional()
23
- });
24
- /** Test trigger response from orchestrator to CLI. */
25
- const testTriggerResponseSchema = z.object({
26
- type: z.literal("test.trigger.response"),
27
- messageId: z.string(),
28
- runId: z.string(),
29
- observeUrl: z.string(),
30
- status: z.enum(["accepted", "rejected"]),
31
- reason: z.string().optional()
32
- });
33
- /** Test cancel request sent by CLI to orchestrator. */
34
- const testCancelSchema = z.object({
35
- type: z.literal("test.cancel"),
36
- messageId: z.string(),
37
- runId: z.string()
38
- });
39
- /** Test cancel response from orchestrator to CLI. */
40
- const testCancelResponseSchema = z.object({
41
- type: z.literal("test.cancel.response"),
42
- messageId: z.string(),
43
- status: z.enum([
44
- "cancelled",
45
- "not_found",
46
- "already_complete"
47
- ])
48
- });
49
- //#endregion
50
- export { testCancelResponseSchema, testCancelSchema, testEventSchema, testTriggerResponseSchema, testTriggerSchema };
51
-
52
- //# sourceMappingURL=test-run.js.map
File without changes