@lumenflow/packs-software-delivery 4.23.0 → 5.0.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/manifest-schema.d.ts +12 -0
- package/dist/manifest-schema.d.ts.map +1 -1
- package/dist/manifest-schema.js +10 -0
- package/dist/manifest-schema.js.map +1 -1
- package/dist/manifest.d.ts +21 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +92 -1
- package/dist/manifest.js.map +1 -1
- package/dist/src/commands/index.d.ts +2 -0
- package/dist/src/commands/index.d.ts.map +1 -0
- package/dist/src/commands/index.js +5 -0
- package/dist/src/commands/index.js.map +1 -0
- package/dist/src/config/delivery-review-contract.d.ts +17 -0
- package/dist/src/config/delivery-review-contract.d.ts.map +1 -0
- package/dist/src/config/delivery-review-contract.js +19 -0
- package/dist/src/config/delivery-review-contract.js.map +1 -0
- package/dist/src/config/env-accessors.d.ts +16 -0
- package/dist/src/config/env-accessors.d.ts.map +1 -0
- package/dist/src/config/env-accessors.js +18 -0
- package/dist/src/config/env-accessors.js.map +1 -0
- package/dist/src/config/index.d.ts +3 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +8 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/config/normalize-config-keys.d.ts +16 -0
- package/dist/src/config/normalize-config-keys.d.ts.map +1 -0
- package/dist/src/config/normalize-config-keys.js +18 -0
- package/dist/src/config/normalize-config-keys.js.map +1 -0
- package/dist/src/config/schemas/lumenflow-config-schema-types.d.ts +190 -0
- package/dist/src/config/schemas/lumenflow-config-schema-types.d.ts.map +1 -0
- package/dist/src/config/schemas/lumenflow-config-schema-types.js +182 -0
- package/dist/src/config/schemas/lumenflow-config-schema-types.js.map +1 -0
- package/dist/src/config/schemas/lumenflow-config-schema.d.ts +190 -0
- package/dist/src/config/schemas/lumenflow-config-schema.d.ts.map +1 -0
- package/dist/src/config/schemas/lumenflow-config-schema.js +182 -0
- package/dist/src/config/schemas/lumenflow-config-schema.js.map +1 -0
- package/dist/src/config/workspace-reader.d.ts +56 -0
- package/dist/src/config/workspace-reader.d.ts.map +1 -0
- package/dist/src/config/workspace-reader.js +209 -0
- package/dist/src/config/workspace-reader.js.map +1 -0
- package/dist/src/constants/backlog-patterns.d.ts +21 -0
- package/dist/src/constants/backlog-patterns.d.ts.map +1 -0
- package/dist/src/constants/backlog-patterns.js +26 -0
- package/dist/src/constants/backlog-patterns.js.map +1 -0
- package/dist/src/constants/client-ids.d.ts +16 -0
- package/dist/src/constants/client-ids.d.ts.map +1 -0
- package/dist/src/constants/client-ids.js +16 -0
- package/dist/src/constants/client-ids.js.map +1 -0
- package/dist/src/constants/config-contract.d.ts +2 -0
- package/dist/src/constants/config-contract.d.ts.map +1 -0
- package/dist/src/constants/config-contract.js +7 -0
- package/dist/src/constants/config-contract.js.map +1 -0
- package/dist/src/constants/docs-layout-presets.d.ts +31 -0
- package/dist/src/constants/docs-layout-presets.d.ts.map +1 -0
- package/dist/src/constants/docs-layout-presets.js +41 -0
- package/dist/src/constants/docs-layout-presets.js.map +1 -0
- package/dist/src/constants/duration-constants.d.ts +11 -0
- package/dist/src/constants/duration-constants.d.ts.map +1 -0
- package/dist/src/constants/duration-constants.js +13 -0
- package/dist/src/constants/duration-constants.js.map +1 -0
- package/dist/src/constants/gate-constants.d.ts +24 -0
- package/dist/src/constants/gate-constants.d.ts.map +1 -0
- package/dist/src/constants/gate-constants.js +26 -0
- package/dist/src/constants/gate-constants.js.map +1 -0
- package/dist/src/constants/index.d.ts +18 -0
- package/dist/src/constants/index.d.ts.map +1 -0
- package/dist/src/constants/index.js +29 -0
- package/dist/src/constants/index.js.map +1 -0
- package/dist/src/constants/lock-constants.d.ts +29 -0
- package/dist/src/constants/lock-constants.d.ts.map +1 -0
- package/dist/src/constants/lock-constants.js +31 -0
- package/dist/src/constants/lock-constants.js.map +1 -0
- package/dist/src/constants/object-guards.d.ts +9 -0
- package/dist/src/constants/object-guards.d.ts.map +1 -0
- package/dist/src/constants/object-guards.js +11 -0
- package/dist/src/constants/object-guards.js.map +1 -0
- package/dist/src/constants/section-headings.d.ts +35 -0
- package/dist/src/constants/section-headings.d.ts.map +1 -0
- package/dist/src/constants/section-headings.js +82 -0
- package/dist/src/constants/section-headings.js.map +1 -0
- package/dist/src/constants/wu-cli-constants.d.ts +434 -0
- package/dist/src/constants/wu-cli-constants.d.ts.map +1 -0
- package/dist/src/constants/wu-cli-constants.js +439 -0
- package/dist/src/constants/wu-cli-constants.js.map +1 -0
- package/dist/src/constants/wu-domain-constants.d.ts +296 -0
- package/dist/src/constants/wu-domain-constants.d.ts.map +1 -0
- package/dist/src/constants/wu-domain-constants.js +400 -0
- package/dist/src/constants/wu-domain-constants.js.map +1 -0
- package/dist/src/constants/wu-git-constants.d.ts +2 -0
- package/dist/src/constants/wu-git-constants.d.ts.map +1 -0
- package/dist/src/constants/wu-git-constants.js +7 -0
- package/dist/src/constants/wu-git-constants.js.map +1 -0
- package/dist/src/constants/wu-id-format.d.ts +138 -0
- package/dist/src/constants/wu-id-format.d.ts.map +1 -0
- package/dist/src/constants/wu-id-format.js +265 -0
- package/dist/src/constants/wu-id-format.js.map +1 -0
- package/dist/src/constants/wu-paths-constants.d.ts +254 -0
- package/dist/src/constants/wu-paths-constants.d.ts.map +1 -0
- package/dist/src/constants/wu-paths-constants.js +276 -0
- package/dist/src/constants/wu-paths-constants.js.map +1 -0
- package/dist/src/constants/wu-statuses.d.ts +209 -0
- package/dist/src/constants/wu-statuses.d.ts.map +1 -0
- package/dist/src/constants/wu-statuses.js +245 -0
- package/dist/src/constants/wu-statuses.js.map +1 -0
- package/dist/src/constants/wu-type-helpers.d.ts +28 -0
- package/dist/src/constants/wu-type-helpers.d.ts.map +1 -0
- package/dist/src/constants/wu-type-helpers.js +49 -0
- package/dist/src/constants/wu-type-helpers.js.map +1 -0
- package/dist/src/constants/wu-ui-constants.d.ts +236 -0
- package/dist/src/constants/wu-ui-constants.d.ts.map +1 -0
- package/dist/src/constants/wu-ui-constants.js +238 -0
- package/dist/src/constants/wu-ui-constants.js.map +1 -0
- package/dist/src/constants/wu-validation-constants.d.ts +61 -0
- package/dist/src/constants/wu-validation-constants.d.ts.map +1 -0
- package/dist/src/constants/wu-validation-constants.js +69 -0
- package/dist/src/constants/wu-validation-constants.js.map +1 -0
- package/dist/src/domain/index.d.ts +4 -0
- package/dist/src/domain/index.d.ts.map +1 -0
- package/dist/src/domain/index.js +6 -0
- package/dist/src/domain/index.js.map +1 -0
- package/dist/src/domain/orchestration.constants.d.ts +111 -0
- package/dist/src/domain/orchestration.constants.d.ts.map +1 -0
- package/dist/src/domain/orchestration.constants.js +130 -0
- package/dist/src/domain/orchestration.constants.js.map +1 -0
- package/dist/src/domain/orchestration.schemas.d.ts +307 -0
- package/dist/src/domain/orchestration.schemas.d.ts.map +1 -0
- package/dist/src/domain/orchestration.schemas.js +214 -0
- package/dist/src/domain/orchestration.schemas.js.map +1 -0
- package/dist/src/domain/orchestration.types.d.ts +134 -0
- package/dist/src/domain/orchestration.types.d.ts.map +1 -0
- package/dist/src/domain/orchestration.types.js +5 -0
- package/dist/src/domain/orchestration.types.js.map +1 -0
- package/dist/src/methodology/incremental-test.d.ts +33 -0
- package/dist/src/methodology/incremental-test.d.ts.map +1 -0
- package/dist/src/methodology/incremental-test.js +73 -0
- package/dist/src/methodology/incremental-test.js.map +1 -0
- package/dist/src/methodology/index.d.ts +3 -0
- package/dist/src/methodology/index.d.ts.map +1 -0
- package/dist/src/methodology/index.js +6 -0
- package/dist/src/methodology/index.js.map +1 -0
- package/dist/src/methodology/manual-test-validator.d.ts +97 -0
- package/dist/src/methodology/manual-test-validator.d.ts.map +1 -0
- package/dist/src/methodology/manual-test-validator.js +248 -0
- package/dist/src/methodology/manual-test-validator.js.map +1 -0
- package/dist/src/policy/coverage-gate.d.ts +127 -0
- package/dist/src/policy/coverage-gate.d.ts.map +1 -0
- package/dist/src/policy/coverage-gate.js +211 -0
- package/dist/src/policy/coverage-gate.js.map +1 -0
- package/dist/src/policy/gates-agent-mode.d.ts +107 -0
- package/dist/src/policy/gates-agent-mode.d.ts.map +1 -0
- package/dist/src/policy/gates-agent-mode.js +138 -0
- package/dist/src/policy/gates-agent-mode.js.map +1 -0
- package/dist/src/policy/gates-config-internal.d.ts +54 -0
- package/dist/src/policy/gates-config-internal.d.ts.map +1 -0
- package/dist/src/policy/gates-config-internal.js +108 -0
- package/dist/src/policy/gates-config-internal.js.map +1 -0
- package/dist/src/policy/gates-config.d.ts +67 -0
- package/dist/src/policy/gates-config.d.ts.map +1 -0
- package/dist/src/policy/gates-config.js +193 -0
- package/dist/src/policy/gates-config.js.map +1 -0
- package/dist/src/policy/gates-coverage.d.ts +48 -0
- package/dist/src/policy/gates-coverage.d.ts.map +1 -0
- package/dist/src/policy/gates-coverage.js +182 -0
- package/dist/src/policy/gates-coverage.js.map +1 -0
- package/dist/src/policy/gates-presets.d.ts +51 -0
- package/dist/src/policy/gates-presets.d.ts.map +1 -0
- package/dist/src/policy/gates-presets.js +117 -0
- package/dist/src/policy/gates-presets.js.map +1 -0
- package/dist/src/policy/gates-schemas.d.ts +142 -0
- package/dist/src/policy/gates-schemas.d.ts.map +1 -0
- package/dist/src/policy/gates-schemas.js +67 -0
- package/dist/src/policy/gates-schemas.js.map +1 -0
- package/dist/src/policy/index.d.ts +19 -0
- package/dist/src/policy/index.d.ts.map +1 -0
- package/dist/src/policy/index.js +21 -0
- package/dist/src/policy/index.js.map +1 -0
- package/dist/src/policy/package-manager-resolver.d.ts +79 -0
- package/dist/src/policy/package-manager-resolver.d.ts.map +1 -0
- package/dist/src/policy/package-manager-resolver.js +245 -0
- package/dist/src/policy/package-manager-resolver.js.map +1 -0
- package/dist/src/policy/resolve-policy.d.ts +337 -0
- package/dist/src/policy/resolve-policy.d.ts.map +1 -0
- package/dist/src/policy/resolve-policy.js +353 -0
- package/dist/src/policy/resolve-policy.js.map +1 -0
- package/dist/src/ports/config.ports.d.ts +83 -0
- package/dist/src/ports/config.ports.d.ts.map +1 -0
- package/dist/src/ports/config.ports.js +4 -0
- package/dist/src/ports/config.ports.js.map +1 -0
- package/dist/src/ports/dashboard-renderer.port.d.ts +113 -0
- package/dist/src/ports/dashboard-renderer.port.d.ts.map +1 -0
- package/dist/src/ports/dashboard-renderer.port.js +4 -0
- package/dist/src/ports/dashboard-renderer.port.js.map +1 -0
- package/dist/src/ports/index.d.ts +5 -0
- package/dist/src/ports/index.d.ts.map +1 -0
- package/dist/src/ports/index.js +10 -0
- package/dist/src/ports/index.js.map +1 -0
- package/dist/src/ports/sync-validator.ports.d.ts +52 -0
- package/dist/src/ports/sync-validator.ports.d.ts.map +1 -0
- package/dist/src/ports/sync-validator.ports.js +4 -0
- package/dist/src/ports/sync-validator.ports.js.map +1 -0
- package/dist/src/ports/wu-helpers.ports.d.ts +157 -0
- package/dist/src/ports/wu-helpers.ports.d.ts.map +1 -0
- package/dist/src/ports/wu-helpers.ports.js +4 -0
- package/dist/src/ports/wu-helpers.ports.js.map +1 -0
- package/dist/src/ports/wu-state.ports.d.ts +209 -0
- package/dist/src/ports/wu-state.ports.d.ts.map +1 -0
- package/dist/src/ports/wu-state.ports.js +4 -0
- package/dist/src/ports/wu-state.ports.js.map +1 -0
- package/dist/src/primitives/index.d.ts +2 -0
- package/dist/src/primitives/index.d.ts.map +1 -0
- package/dist/src/primitives/index.js +5 -0
- package/dist/src/primitives/index.js.map +1 -0
- package/dist/src/runtime/index.d.ts +2 -0
- package/dist/src/runtime/index.d.ts.map +1 -0
- package/dist/src/runtime/index.js +6 -0
- package/dist/src/runtime/index.js.map +1 -0
- package/dist/src/runtime/work-classifier.d.ts +103 -0
- package/dist/src/runtime/work-classifier.d.ts.map +1 -0
- package/dist/src/runtime/work-classifier.js +427 -0
- package/dist/src/runtime/work-classifier.js.map +1 -0
- package/dist/src/sandbox/index.d.ts +6 -0
- package/dist/src/sandbox/index.d.ts.map +1 -0
- package/dist/src/sandbox/index.js +10 -0
- package/dist/src/sandbox/index.js.map +1 -0
- package/dist/src/sandbox/sandbox-allowlist.d.ts +16 -0
- package/dist/src/sandbox/sandbox-allowlist.d.ts.map +1 -0
- package/dist/src/sandbox/sandbox-allowlist.js +77 -0
- package/dist/src/sandbox/sandbox-allowlist.js.map +1 -0
- package/dist/src/sandbox/sandbox-backend-linux.d.ts +6 -0
- package/dist/src/sandbox/sandbox-backend-linux.d.ts.map +1 -0
- package/dist/src/sandbox/sandbox-backend-linux.js +67 -0
- package/dist/src/sandbox/sandbox-backend-linux.js.map +1 -0
- package/dist/src/sandbox/sandbox-backend-macos.d.ts +6 -0
- package/dist/src/sandbox/sandbox-backend-macos.d.ts.map +1 -0
- package/dist/src/sandbox/sandbox-backend-macos.js +112 -0
- package/dist/src/sandbox/sandbox-backend-macos.js.map +1 -0
- package/dist/src/sandbox/sandbox-backend-windows.d.ts +6 -0
- package/dist/src/sandbox/sandbox-backend-windows.d.ts.map +1 -0
- package/dist/src/sandbox/sandbox-backend-windows.js +30 -0
- package/dist/src/sandbox/sandbox-backend-windows.js.map +1 -0
- package/dist/src/sandbox/sandbox-profile.d.ts +58 -0
- package/dist/src/sandbox/sandbox-profile.d.ts.map +1 -0
- package/dist/src/sandbox/sandbox-profile.js +69 -0
- package/dist/src/sandbox/sandbox-profile.js.map +1 -0
- package/dist/src/schemas/index.d.ts +2 -0
- package/dist/src/schemas/index.d.ts.map +1 -0
- package/dist/src/schemas/index.js +5 -0
- package/dist/src/schemas/index.js.map +1 -0
- package/dist/src/state/date-utils.d.ts +66 -0
- package/dist/src/state/date-utils.d.ts.map +1 -0
- package/dist/src/state/date-utils.js +143 -0
- package/dist/src/state/date-utils.js.map +1 -0
- package/dist/src/state/index.d.ts +8 -0
- package/dist/src/state/index.d.ts.map +1 -0
- package/dist/src/state/index.js +15 -0
- package/dist/src/state/index.js.map +1 -0
- package/dist/src/state/state-machine.d.ts +14 -0
- package/dist/src/state/state-machine.d.ts.map +1 -0
- package/dist/src/state/state-machine.js +92 -0
- package/dist/src/state/state-machine.js.map +1 -0
- package/dist/src/state/wu-doc-types.d.ts +48 -0
- package/dist/src/state/wu-doc-types.d.ts.map +1 -0
- package/dist/src/state/wu-doc-types.js +4 -0
- package/dist/src/state/wu-doc-types.js.map +1 -0
- package/dist/src/state/wu-paths.d.ts +275 -0
- package/dist/src/state/wu-paths.d.ts.map +1 -0
- package/dist/src/state/wu-paths.js +335 -0
- package/dist/src/state/wu-paths.js.map +1 -0
- package/dist/src/state/wu-schema.d.ts +831 -0
- package/dist/src/state/wu-schema.d.ts.map +1 -0
- package/dist/src/state/wu-schema.js +934 -0
- package/dist/src/state/wu-schema.js.map +1 -0
- package/dist/src/state/wu-state-schema.d.ts +292 -0
- package/dist/src/state/wu-state-schema.d.ts.map +1 -0
- package/dist/src/state/wu-state-schema.js +215 -0
- package/dist/src/state/wu-state-schema.js.map +1 -0
- package/dist/src/state/wu-yaml.d.ts +113 -0
- package/dist/src/state/wu-yaml.d.ts.map +1 -0
- package/dist/src/state/wu-yaml.js +307 -0
- package/dist/src/state/wu-yaml.js.map +1 -0
- package/dist/tool-impl/wu-lifecycle-tools.d.ts +11 -0
- package/dist/tool-impl/wu-lifecycle-tools.d.ts.map +1 -1
- package/dist/tool-impl/wu-lifecycle-tools.js +17 -0
- package/dist/tool-impl/wu-lifecycle-tools.js.map +1 -1
- package/manifest.yaml +46 -0
- package/package.json +88 -3
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* Orchestration Domain Schemas
|
|
5
|
+
*
|
|
6
|
+
* Zod schemas for runtime validation of orchestration domain types.
|
|
7
|
+
* Single source of truth - types are inferred from these schemas.
|
|
8
|
+
*
|
|
9
|
+
* @module orchestration.schemas
|
|
10
|
+
* @see {@link ./orchestration.types.ts} - Types inferred from these schemas
|
|
11
|
+
* @see {@link ./orchestration.constants.ts} - Constants used in validation
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
import { LANES, AGENT_NAMES, SEVERITY_LEVELS, AGENT_RESULT_STATUSES, TIMELINE_EVENT_TYPES, EVENT_SEVERITY_LEVELS, USER_CHOICE_OPTIONS, DOD_TOTAL, } from './orchestration.constants.js';
|
|
15
|
+
/**
|
|
16
|
+
* Schema for the longest running WU information.
|
|
17
|
+
*/
|
|
18
|
+
const LongestRunningSchema = z.object({
|
|
19
|
+
wuId: z.string().min(1),
|
|
20
|
+
lane: z.enum(LANES),
|
|
21
|
+
durationMs: z.number().nonnegative(),
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* Schema for pending mandatory agent information.
|
|
25
|
+
*/
|
|
26
|
+
const PendingMandatorySchema = z.object({
|
|
27
|
+
wuId: z.string().min(1),
|
|
28
|
+
agent: z.enum(AGENT_NAMES),
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Schema for active agent session (WU-1438).
|
|
32
|
+
*/
|
|
33
|
+
const ActiveSessionSchema = z.object({
|
|
34
|
+
sessionId: z.string().uuid(),
|
|
35
|
+
wuId: z.string().min(1),
|
|
36
|
+
started: z.string().datetime(),
|
|
37
|
+
contextTier: z.union([z.literal(1), z.literal(2), z.literal(3)]),
|
|
38
|
+
incidentsLogged: z.number().int().nonnegative(),
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Schema for worktree with uncommitted changes (WU-1748).
|
|
42
|
+
* Used for cross-agent visibility of abandoned WU work.
|
|
43
|
+
*/
|
|
44
|
+
const WorktreeWithUncommittedChangesSchema = z.object({
|
|
45
|
+
/** WU ID extracted from worktree branch name */
|
|
46
|
+
wuId: z.string().min(1),
|
|
47
|
+
/** Worktree directory path */
|
|
48
|
+
worktreePath: z.string().min(1),
|
|
49
|
+
/** Number of uncommitted files */
|
|
50
|
+
uncommittedFileCount: z.number().int().nonnegative(),
|
|
51
|
+
/** Last git activity timestamp (ISO 8601) */
|
|
52
|
+
lastActivityTimestamp: z.string(),
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* Schema for global orchestration status.
|
|
56
|
+
* Shows high-level dashboard metrics at a glance.
|
|
57
|
+
*/
|
|
58
|
+
export const GlobalStatusSchema = z.object({
|
|
59
|
+
/** Number of WUs currently in progress */
|
|
60
|
+
activeWUs: z.number().int().nonnegative(),
|
|
61
|
+
/** Number of WUs completed in the last 24 hours */
|
|
62
|
+
completed24h: z.number().int().nonnegative(),
|
|
63
|
+
/** Number of currently blocked WUs */
|
|
64
|
+
blocked: z.number().int().nonnegative(),
|
|
65
|
+
/** Number of WUs with failing gates */
|
|
66
|
+
gatesFailing: z.number().int().nonnegative(),
|
|
67
|
+
/** Information about the longest running WU, or null if none active */
|
|
68
|
+
longestRunning: LongestRunningSchema.nullable(),
|
|
69
|
+
/** List of WUs with pending mandatory agents */
|
|
70
|
+
pendingMandatory: z.array(PendingMandatorySchema),
|
|
71
|
+
/** Current active agent session, or null if none (WU-1438) */
|
|
72
|
+
activeSession: ActiveSessionSchema.nullable(),
|
|
73
|
+
/** Worktrees with uncommitted changes for cross-agent visibility (WU-1748) */
|
|
74
|
+
worktreesWithUncommittedChanges: z.array(WorktreeWithUncommittedChangesSchema),
|
|
75
|
+
});
|
|
76
|
+
/**
|
|
77
|
+
* Schema for last run information within agent metrics.
|
|
78
|
+
*/
|
|
79
|
+
const LastRunSchema = z.object({
|
|
80
|
+
wuId: z.string().min(1),
|
|
81
|
+
timestamp: z.string().datetime(),
|
|
82
|
+
result: z.enum(['pass', 'fail']),
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* Schema for per-agent metrics.
|
|
86
|
+
* Tracks invocation counts, pass rates, and timing.
|
|
87
|
+
*/
|
|
88
|
+
export const AgentMetricSchema = z.object({
|
|
89
|
+
/** Total number of times this agent has been invoked */
|
|
90
|
+
invoked: z.number().int().nonnegative(),
|
|
91
|
+
/** Pass rate as percentage (0-100) */
|
|
92
|
+
passRate: z.number().min(0).max(100),
|
|
93
|
+
/** Average duration in milliseconds */
|
|
94
|
+
avgDurationMs: z.number().nonnegative(),
|
|
95
|
+
/** Information about the most recent run, or null if never run */
|
|
96
|
+
lastRun: LastRunSchema.nullable(),
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* Schema for WU progress tracking.
|
|
100
|
+
* Shows DoD progress and agent status per WU.
|
|
101
|
+
*/
|
|
102
|
+
export const WUProgressSchema = z.object({
|
|
103
|
+
/** Work Unit ID (e.g., "WU-1234") */
|
|
104
|
+
wuId: z.string().min(1),
|
|
105
|
+
/** Lane the WU is assigned to */
|
|
106
|
+
lane: z.enum(LANES),
|
|
107
|
+
/** Human-readable title of the WU */
|
|
108
|
+
title: z.string().min(1),
|
|
109
|
+
/** Current DoD checkpoint progress (0 to DOD_TOTAL) */
|
|
110
|
+
dodProgress: z.number().int().min(0).max(DOD_TOTAL),
|
|
111
|
+
/** Total DoD checkpoints (always DOD_TOTAL) */
|
|
112
|
+
dodTotal: z.literal(DOD_TOTAL),
|
|
113
|
+
/** Status of each agent that has been or should be run */
|
|
114
|
+
agents: z.record(z.string(), z.enum(AGENT_RESULT_STATUSES)),
|
|
115
|
+
/** Tufte-style headline sentence describing current state */
|
|
116
|
+
headline: z.string(),
|
|
117
|
+
});
|
|
118
|
+
/**
|
|
119
|
+
* Schema for timeline events.
|
|
120
|
+
* Records orchestration history for dashboard display.
|
|
121
|
+
*/
|
|
122
|
+
export const TimelineEventSchema = z.object({
|
|
123
|
+
/** ISO 8601 timestamp of the event */
|
|
124
|
+
timestamp: z.string().datetime(),
|
|
125
|
+
/** Type of orchestration event */
|
|
126
|
+
event: z.enum(TIMELINE_EVENT_TYPES),
|
|
127
|
+
/** Associated Work Unit ID */
|
|
128
|
+
wuId: z.string().min(1),
|
|
129
|
+
/** Human-readable event description */
|
|
130
|
+
detail: z.string(),
|
|
131
|
+
/** Visual severity for display */
|
|
132
|
+
severity: z.enum(EVENT_SEVERITY_LEVELS),
|
|
133
|
+
});
|
|
134
|
+
/**
|
|
135
|
+
* Schema for dashboard alerts.
|
|
136
|
+
* Highlights items requiring attention.
|
|
137
|
+
*/
|
|
138
|
+
export const AlertSchema = z.object({
|
|
139
|
+
/** Alert severity level */
|
|
140
|
+
severity: z.enum(SEVERITY_LEVELS),
|
|
141
|
+
/** Human-readable alert message */
|
|
142
|
+
message: z.string().min(1),
|
|
143
|
+
/** Associated Work Unit ID */
|
|
144
|
+
wuId: z.string().min(1),
|
|
145
|
+
/** Suggested action or command */
|
|
146
|
+
action: z.string().min(1),
|
|
147
|
+
});
|
|
148
|
+
/**
|
|
149
|
+
* Schema for orchestration suggestions.
|
|
150
|
+
* Recommendations for next actions.
|
|
151
|
+
*/
|
|
152
|
+
export const SuggestionSchema = z.object({
|
|
153
|
+
/** Unique suggestion identifier */
|
|
154
|
+
id: z.string().min(1),
|
|
155
|
+
/** Suggestion priority level */
|
|
156
|
+
priority: z.enum(SEVERITY_LEVELS),
|
|
157
|
+
/** Short action description */
|
|
158
|
+
action: z.string().min(1),
|
|
159
|
+
/** Reason for the suggestion */
|
|
160
|
+
reason: z.string().min(1),
|
|
161
|
+
/** CLI command to execute the suggestion */
|
|
162
|
+
command: z.string().min(1),
|
|
163
|
+
});
|
|
164
|
+
/**
|
|
165
|
+
* Schema for execution plan steps.
|
|
166
|
+
*/
|
|
167
|
+
const ExecutionStepSchema = z.object({
|
|
168
|
+
/** Execution order (1-based) */
|
|
169
|
+
order: z.number().int().positive(),
|
|
170
|
+
/** Agent to run (if applicable) */
|
|
171
|
+
agent: z.string().optional(),
|
|
172
|
+
/** Action to perform (if not an agent) */
|
|
173
|
+
action: z.string().optional(),
|
|
174
|
+
/** Step execution status */
|
|
175
|
+
status: z.enum(AGENT_RESULT_STATUSES),
|
|
176
|
+
});
|
|
177
|
+
/**
|
|
178
|
+
* Schema for execution plans.
|
|
179
|
+
* Proposed sequence of orchestration actions.
|
|
180
|
+
*/
|
|
181
|
+
export const ExecutionPlanSchema = z.object({
|
|
182
|
+
/** Work Unit ID this plan is for */
|
|
183
|
+
wuId: z.string().min(1),
|
|
184
|
+
/** Ordered list of steps to execute */
|
|
185
|
+
steps: z.array(ExecutionStepSchema),
|
|
186
|
+
/** Estimated token cost for the full plan */
|
|
187
|
+
estimatedTokens: z.number().int().nonnegative(),
|
|
188
|
+
});
|
|
189
|
+
/**
|
|
190
|
+
* Schema for user choices on execution plans.
|
|
191
|
+
*/
|
|
192
|
+
export const UserChoiceSchema = z.object({
|
|
193
|
+
/** User's choice */
|
|
194
|
+
choice: z.enum(USER_CHOICE_OPTIONS),
|
|
195
|
+
/** Modifications if choice is 'edit' */
|
|
196
|
+
modifications: z.array(z.string()).optional(),
|
|
197
|
+
});
|
|
198
|
+
/**
|
|
199
|
+
* Schema for complete dashboard data.
|
|
200
|
+
* Aggregates all data needed for dashboard rendering.
|
|
201
|
+
*/
|
|
202
|
+
export const DashboardDataSchema = z.object({
|
|
203
|
+
/** Global status metrics */
|
|
204
|
+
globalStatus: GlobalStatusSchema,
|
|
205
|
+
/** Per-agent metrics keyed by agent name */
|
|
206
|
+
agentMetrics: z.record(z.string(), AgentMetricSchema),
|
|
207
|
+
/** Progress for all active WUs */
|
|
208
|
+
wuProgress: z.array(WUProgressSchema),
|
|
209
|
+
/** Recent timeline events */
|
|
210
|
+
timeline: z.array(TimelineEventSchema),
|
|
211
|
+
/** Current alerts */
|
|
212
|
+
alerts: z.array(AlertSchema),
|
|
213
|
+
});
|
|
214
|
+
//# sourceMappingURL=orchestration.schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestration.schemas.js","sourceRoot":"","sources":["../../../src/domain/orchestration.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestration Domain Types
|
|
3
|
+
*
|
|
4
|
+
* TypeScript types inferred from Zod schemas.
|
|
5
|
+
* Single source of truth - schemas validate at runtime, types at compile time.
|
|
6
|
+
*
|
|
7
|
+
* @module orchestration.types
|
|
8
|
+
* @see {@link ./orchestration.schemas.ts} - Schemas these types are inferred from
|
|
9
|
+
* @see {@link ./orchestration.constants.ts} - Constants and derived types
|
|
10
|
+
*/
|
|
11
|
+
import type { z } from 'zod';
|
|
12
|
+
import type { GlobalStatusSchema, AgentMetricSchema, WUProgressSchema, TimelineEventSchema, AlertSchema, SuggestionSchema, ExecutionPlanSchema, UserChoiceSchema, DashboardDataSchema } from './orchestration.schemas.js';
|
|
13
|
+
export type { Lane, AgentName, SeverityLevel, AgentResultStatus, TimelineEventType, EventSeverityLevel, UserChoiceOption, MandatoryAgentName, } from './orchestration.constants.js';
|
|
14
|
+
export { LANES, AGENT_NAMES, SEVERITY_LEVELS, AGENT_RESULT_STATUSES, TIMELINE_EVENT_TYPES, EVENT_SEVERITY_LEVELS, USER_CHOICE_OPTIONS, MANDATORY_AGENT_NAMES, } from './orchestration.constants.js';
|
|
15
|
+
/**
|
|
16
|
+
* Global orchestration status.
|
|
17
|
+
* Shows high-level dashboard metrics at a glance.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* const status: GlobalStatus = {
|
|
21
|
+
* activeWUs: 2,
|
|
22
|
+
* completed24h: 5,
|
|
23
|
+
* blocked: 1,
|
|
24
|
+
* gatesFailing: 0,
|
|
25
|
+
* longestRunning: { wuId: 'WU-1234', lane: 'Intelligence', durationMs: 2700000 },
|
|
26
|
+
* pendingMandatory: [{ wuId: 'WU-1235', agent: 'security-auditor' }],
|
|
27
|
+
* };
|
|
28
|
+
*/
|
|
29
|
+
export type GlobalStatus = z.infer<typeof GlobalStatusSchema>;
|
|
30
|
+
/**
|
|
31
|
+
* Per-agent metrics for dashboard display.
|
|
32
|
+
* Tracks invocation counts, pass rates, and timing.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* const metric: AgentMetric = {
|
|
36
|
+
* invoked: 3,
|
|
37
|
+
* passRate: 100,
|
|
38
|
+
* avgDurationMs: 120000,
|
|
39
|
+
* lastRun: { wuId: 'WU-1234', timestamp: '2025-01-15T10:00:00Z', result: 'pass' },
|
|
40
|
+
* };
|
|
41
|
+
*/
|
|
42
|
+
export type AgentMetric = z.infer<typeof AgentMetricSchema>;
|
|
43
|
+
/**
|
|
44
|
+
* Work Unit progress for dashboard display.
|
|
45
|
+
* Shows DoD progress and agent status per WU.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* const progress: WUProgress = {
|
|
49
|
+
* wuId: 'WU-1234',
|
|
50
|
+
* lane: 'Intelligence',
|
|
51
|
+
* title: 'LLM Classification Feature',
|
|
52
|
+
* dodProgress: 8,
|
|
53
|
+
* dodTotal: 11,
|
|
54
|
+
* agents: { 'llm-reviewer': 'pass', 'code-reviewer': 'pending' },
|
|
55
|
+
* headline: 'Blocked on code-reviewer - awaiting approval',
|
|
56
|
+
* };
|
|
57
|
+
*/
|
|
58
|
+
export type WUProgress = z.infer<typeof WUProgressSchema>;
|
|
59
|
+
/**
|
|
60
|
+
* Timeline event for orchestration history.
|
|
61
|
+
* Records key events for dashboard display.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* const event: TimelineEvent = {
|
|
65
|
+
* timestamp: '2025-01-15T09:00:00Z',
|
|
66
|
+
* event: 'claim',
|
|
67
|
+
* wuId: 'WU-1234',
|
|
68
|
+
* detail: 'Claimed for Intelligence lane',
|
|
69
|
+
* severity: 'info',
|
|
70
|
+
* };
|
|
71
|
+
*/
|
|
72
|
+
export type TimelineEvent = z.infer<typeof TimelineEventSchema>;
|
|
73
|
+
/**
|
|
74
|
+
* Dashboard alert for items requiring attention.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* const alert: Alert = {
|
|
78
|
+
* severity: 'high',
|
|
79
|
+
* message: 'Mandatory agent not yet invoked',
|
|
80
|
+
* wuId: 'WU-1235',
|
|
81
|
+
* action: 'Run security-auditor before wu:done',
|
|
82
|
+
* };
|
|
83
|
+
*/
|
|
84
|
+
export type Alert = z.infer<typeof AlertSchema>;
|
|
85
|
+
/**
|
|
86
|
+
* Orchestration suggestion for next actions.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* const suggestion: Suggestion = {
|
|
90
|
+
* id: 'sug-001',
|
|
91
|
+
* priority: 'high',
|
|
92
|
+
* action: 'Run security-auditor',
|
|
93
|
+
* reason: 'WU touches auth paths',
|
|
94
|
+
* command: 'pnpm orchestrate:run security-auditor',
|
|
95
|
+
* };
|
|
96
|
+
*/
|
|
97
|
+
export type Suggestion = z.infer<typeof SuggestionSchema>;
|
|
98
|
+
/**
|
|
99
|
+
* Execution plan for proposed orchestration actions.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* const plan: ExecutionPlan = {
|
|
103
|
+
* wuId: 'WU-1234',
|
|
104
|
+
* steps: [
|
|
105
|
+
* { order: 1, agent: 'llm-reviewer', status: 'pending' },
|
|
106
|
+
* { order: 2, action: 'gates', status: 'pending' },
|
|
107
|
+
* ],
|
|
108
|
+
* estimatedTokens: 5000,
|
|
109
|
+
* };
|
|
110
|
+
*/
|
|
111
|
+
export type ExecutionPlan = z.infer<typeof ExecutionPlanSchema>;
|
|
112
|
+
/**
|
|
113
|
+
* User choice on execution plan confirmation.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* const choice: UserChoice = { choice: 'approve' };
|
|
117
|
+
* const editChoice: UserChoice = { choice: 'edit', modifications: ['Skip step 2'] };
|
|
118
|
+
*/
|
|
119
|
+
export type UserChoice = z.infer<typeof UserChoiceSchema>;
|
|
120
|
+
/**
|
|
121
|
+
* Complete dashboard data aggregating all metrics.
|
|
122
|
+
* This is the main data structure passed to renderers.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* const data: DashboardData = {
|
|
126
|
+
* globalStatus: { ... },
|
|
127
|
+
* agentMetrics: { 'security-auditor': { ... } },
|
|
128
|
+
* wuProgress: [{ ... }],
|
|
129
|
+
* timeline: [{ ... }],
|
|
130
|
+
* alerts: [{ ... }],
|
|
131
|
+
* };
|
|
132
|
+
*/
|
|
133
|
+
export type DashboardData = z.infer<typeof DashboardDataSchema>;
|
|
134
|
+
//# sourceMappingURL=orchestration.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestration.types.d.ts","sourceRoot":"","sources":["../../../src/domain/orchestration.types.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EACV,IAAI,EACJ,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
// Re-export const values as well
|
|
4
|
+
export { LANES, AGENT_NAMES, SEVERITY_LEVELS, AGENT_RESULT_STATUSES, TIMELINE_EVENT_TYPES, EVENT_SEVERITY_LEVELS, USER_CHOICE_OPTIONS, MANDATORY_AGENT_NAMES, } from './orchestration.constants.js';
|
|
5
|
+
//# sourceMappingURL=orchestration.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestration.types.js","sourceRoot":"","sources":["../../../src/domain/orchestration.types.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAsCzC,iCAAiC;AACjC,OAAO,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glob patterns to exclude slow integration/golden tests from changed runs.
|
|
3
|
+
* @type {string[]}
|
|
4
|
+
*/
|
|
5
|
+
export declare const VITEST_CHANGED_EXCLUDES: readonly string[];
|
|
6
|
+
/**
|
|
7
|
+
* File extensions considered executable code for test runs.
|
|
8
|
+
* @type {string[]}
|
|
9
|
+
*/
|
|
10
|
+
export declare const CODE_FILE_EXTENSIONS: readonly string[];
|
|
11
|
+
/**
|
|
12
|
+
* Check if a path points to a code file that should trigger full tests.
|
|
13
|
+
*
|
|
14
|
+
* @param {string} filePath - Path to check
|
|
15
|
+
* @returns {boolean} True if the path has a code extension
|
|
16
|
+
*/
|
|
17
|
+
export declare function isCodeFilePath(filePath: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Options for building Vitest changed args
|
|
20
|
+
*/
|
|
21
|
+
interface BuildVitestChangedArgsOptions {
|
|
22
|
+
/** Base branch for diff */
|
|
23
|
+
baseBranch?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Build Vitest CLI args for --changed runs.
|
|
27
|
+
*
|
|
28
|
+
* @param {BuildVitestChangedArgsOptions} [options]
|
|
29
|
+
* @returns {string[]} Vitest args for changed test runs
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildVitestChangedArgs(options?: BuildVitestChangedArgsOptions): string[];
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=incremental-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incremental-test.d.ts","sourceRoot":"","sources":["../../../src/methodology/incremental-test.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mBAA8D,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,oBAAoB,mBAS/B,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,WAO9C;AAED;;GAEG;AACH,UAAU,6BAA6B;IACrC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,6BAAkC,YAgBjF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* @file incremental-test.ts
|
|
5
|
+
* @description Helpers for Vitest --changed execution
|
|
6
|
+
*
|
|
7
|
+
* WU-1920: Add incremental test execution to gates
|
|
8
|
+
* WU-2504: Use Vitest --changed instead of custom file diff logic
|
|
9
|
+
*/
|
|
10
|
+
import { GIT_REFS } from '../constants/wu-git-constants.js';
|
|
11
|
+
// WU-2790 follow-up: the software-delivery pack cannot import from
|
|
12
|
+
// @lumenflow/core (pack import-boundary enforcement restricts packs to
|
|
13
|
+
// @lumenflow/kernel + Node built-ins). Vitest --changed's base branch
|
|
14
|
+
// therefore stays on the pack's own GIT_REFS constant. If the host
|
|
15
|
+
// workspace reconfigures software_delivery.git.mainBranch, incremental
|
|
16
|
+
// test selection here falls back to origin/main — slightly over-selects
|
|
17
|
+
// when running --changed, but preserves correctness. Proper fix requires
|
|
18
|
+
// relocating the integration-target resolver into kernel; tracked
|
|
19
|
+
// separately as a pack-boundary follow-up.
|
|
20
|
+
/**
|
|
21
|
+
* Glob patterns to exclude slow integration/golden tests from changed runs.
|
|
22
|
+
* @type {string[]}
|
|
23
|
+
*/
|
|
24
|
+
export const VITEST_CHANGED_EXCLUDES = Object.freeze(['**/*.integration.*', '**/golden-*.test.*']);
|
|
25
|
+
/**
|
|
26
|
+
* File extensions considered executable code for test runs.
|
|
27
|
+
* @type {string[]}
|
|
28
|
+
*/
|
|
29
|
+
export const CODE_FILE_EXTENSIONS = Object.freeze([
|
|
30
|
+
'.ts',
|
|
31
|
+
'.tsx',
|
|
32
|
+
'.js',
|
|
33
|
+
'.jsx',
|
|
34
|
+
'.js',
|
|
35
|
+
'.cjs',
|
|
36
|
+
'.mts',
|
|
37
|
+
'.cts',
|
|
38
|
+
]);
|
|
39
|
+
/**
|
|
40
|
+
* Check if a path points to a code file that should trigger full tests.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} filePath - Path to check
|
|
43
|
+
* @returns {boolean} True if the path has a code extension
|
|
44
|
+
*/
|
|
45
|
+
export function isCodeFilePath(filePath) {
|
|
46
|
+
if (!filePath || typeof filePath !== 'string') {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const normalized = filePath.replace(/\\/g, '/').toLowerCase();
|
|
50
|
+
return CODE_FILE_EXTENSIONS.some((ext) => normalized.endsWith(ext));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Build Vitest CLI args for --changed runs.
|
|
54
|
+
*
|
|
55
|
+
* @param {BuildVitestChangedArgsOptions} [options]
|
|
56
|
+
* @returns {string[]} Vitest args for changed test runs
|
|
57
|
+
*/
|
|
58
|
+
export function buildVitestChangedArgs(options = {}) {
|
|
59
|
+
const { baseBranch = GIT_REFS.ORIGIN_MAIN } = options;
|
|
60
|
+
const args = [
|
|
61
|
+
'--changed',
|
|
62
|
+
baseBranch,
|
|
63
|
+
'--run',
|
|
64
|
+
'--passWithNoTests',
|
|
65
|
+
'--maxWorkers=1',
|
|
66
|
+
'--teardownTimeout=30000',
|
|
67
|
+
];
|
|
68
|
+
for (const pattern of VITEST_CHANGED_EXCLUDES) {
|
|
69
|
+
args.push(`--exclude='${pattern}'`);
|
|
70
|
+
}
|
|
71
|
+
return args;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=incremental-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incremental-test.js","sourceRoot":"","sources":["../../../src/methodology/incremental-test.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,mEAAmE;AACnE,uEAAuE;AACvE,sEAAsE;AACtE,mEAAmE;AACnE,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,kEAAkE;AAClE,2CAA2C;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAEnG;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9D,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAUD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAyC,EAAE;IAChF,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG;QACX,WAAW;QACX,UAAU;QACV,OAAO;QACP,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;KAC1B,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/methodology/index.ts"],"names":[],"mappings":"AAIA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
// WU-2683 (INIT-058 L4): Methodology cohort barrel — re-export relocated modules.
|
|
4
|
+
export * from './manual-test-validator.js';
|
|
5
|
+
export * from './incremental-test.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/methodology/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC,kFAAkF;AAClF,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Manual Test Escape Hatch Validator
|
|
4
|
+
*
|
|
5
|
+
* WU-1433: Restricts manual-only tests for WUs touching hex core code.
|
|
6
|
+
* WU-2332: Require automated tests for all code files, remove lane exemptions.
|
|
7
|
+
*
|
|
8
|
+
* Implementation WUs must have at least one automated test (unit/e2e/integration).
|
|
9
|
+
*
|
|
10
|
+
* Exemptions:
|
|
11
|
+
* - type: documentation only
|
|
12
|
+
* - code_paths containing only documentation/config files (no code files)
|
|
13
|
+
* - WU-2273: notes containing tdd-exception: marker (explicit opt-out)
|
|
14
|
+
*
|
|
15
|
+
* @see {@link packages/@lumenflow/cli/src/lib/wu-done-validators.ts} - Integration point
|
|
16
|
+
* @see {@link config.directories.completeGuidePath} - TDD requirements
|
|
17
|
+
*/
|
|
18
|
+
/** Minimal WU document shape for test validation */
|
|
19
|
+
interface WuDocForTests {
|
|
20
|
+
type?: string;
|
|
21
|
+
code_paths?: unknown;
|
|
22
|
+
tests?: unknown;
|
|
23
|
+
test_paths?: unknown;
|
|
24
|
+
notes?: unknown;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Path prefixes for hex core code requiring automated tests.
|
|
28
|
+
* These are the critical application layer paths.
|
|
29
|
+
*
|
|
30
|
+
* WU-1068: Changed from @exampleapp to @lumenflow for framework reusability.
|
|
31
|
+
* Project-specific patterns should be configured in workspace.yaml.
|
|
32
|
+
*
|
|
33
|
+
* @constant {string[]}
|
|
34
|
+
*/
|
|
35
|
+
export declare const HEX_CORE_CODE_PATTERNS: readonly string[];
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Lane-based exemptions removed in WU-2332.
|
|
38
|
+
* Test requirements are now based on file types, not lanes.
|
|
39
|
+
* Kept for backward compatibility but no longer used.
|
|
40
|
+
* @constant {string[]}
|
|
41
|
+
*/
|
|
42
|
+
export declare const EXEMPT_LANES: readonly never[];
|
|
43
|
+
/**
|
|
44
|
+
* WU types exempt from automated test requirement.
|
|
45
|
+
* Only 'documentation' type is exempt - actual code changes require automated tests.
|
|
46
|
+
*
|
|
47
|
+
* @constant {string[]}
|
|
48
|
+
*/
|
|
49
|
+
export declare const EXEMPT_TYPES: readonly import("../constants/wu-statuses.js").WUType[];
|
|
50
|
+
/**
|
|
51
|
+
* Determine if a file path represents a code file requiring automated tests.
|
|
52
|
+
*
|
|
53
|
+
* Code files are those with extensions like .ts, .ts, .tsx, .js
|
|
54
|
+
* EXCEPT config files (vitest.config.ts, .eslintrc.js, etc.)
|
|
55
|
+
*
|
|
56
|
+
* @param {string} filePath - File path to check
|
|
57
|
+
* @returns {boolean} True if the file is a code file requiring tests
|
|
58
|
+
*/
|
|
59
|
+
export declare function isCodeFile(filePath: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Check if code_paths contains any hex core code.
|
|
62
|
+
*
|
|
63
|
+
* @param {string[]|null|undefined} codePaths - Array of file paths from WU YAML
|
|
64
|
+
* @returns {boolean} True if any path is in hex core layer
|
|
65
|
+
*/
|
|
66
|
+
export declare function containsHexCoreCode(codePaths: unknown): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Check if a WU is exempt from automated test requirement.
|
|
69
|
+
*
|
|
70
|
+
* WU-2332: Only type: 'documentation' is exempt.
|
|
71
|
+
* WU-2273: Also exempt if notes contain tdd-exception: marker,
|
|
72
|
+
* aligning wu:done with wu:prep behavior.
|
|
73
|
+
*
|
|
74
|
+
* Lane-based exemptions have been removed - test requirements
|
|
75
|
+
* are now based on file types in code_paths.
|
|
76
|
+
*
|
|
77
|
+
* @param {object} doc - WU YAML document
|
|
78
|
+
* @returns {boolean} True if WU is exempt
|
|
79
|
+
*/
|
|
80
|
+
export declare function isExemptFromAutomatedTests(doc: WuDocForTests | null | undefined): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Validate automated test requirement for WU.
|
|
83
|
+
*
|
|
84
|
+
* WU-2332: Requirements are based on file types, not lanes.
|
|
85
|
+
* - WUs with ANY code files in code_paths must have automated tests
|
|
86
|
+
* - WUs with only docs/config files can use manual-only tests
|
|
87
|
+
* - type: 'documentation' is always exempt
|
|
88
|
+
*
|
|
89
|
+
* @param {object} doc - WU YAML document
|
|
90
|
+
* @returns {{ valid: boolean, errors: string[] }} Validation result
|
|
91
|
+
*/
|
|
92
|
+
export declare function validateAutomatedTestRequirement(doc: WuDocForTests | null | undefined): {
|
|
93
|
+
valid: boolean;
|
|
94
|
+
errors: string[];
|
|
95
|
+
};
|
|
96
|
+
export {};
|
|
97
|
+
//# sourceMappingURL=manual-test-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual-test-validator.d.ts","sourceRoot":"","sources":["../../../src/methodology/manual-test-validator.ts"],"names":[],"mappings":";AAGA;;;;;;;;;;;;;;;GAeG;AAMH,oDAAoD;AACpD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyBD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,mBAIjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,kBAAoB,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,YAAY,yDAA0C,CAAC;AAYpE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,WA0B1C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,WASrD;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,WAe/E;AAuCD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS;;;EAuCrF"}
|