@lumenflow/core 3.3.0 → 3.5.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/adapters/context-adapters.d.ts +75 -3
- package/dist/adapters/context-adapters.d.ts.map +1 -1
- package/dist/adapters/context-adapters.js +74 -3
- package/dist/adapters/context-adapters.js.map +1 -1
- package/dist/adapters/filesystem-metrics.adapter.js +1 -1
- package/dist/agent-patterns-registry.d.ts.map +1 -1
- package/dist/agent-patterns-registry.js +2 -1
- package/dist/agent-patterns-registry.js.map +1 -1
- package/dist/arg-parser.d.ts.map +1 -1
- package/dist/arg-parser.js +31 -0
- package/dist/arg-parser.js.map +1 -1
- package/dist/atomic-merge.d.ts.map +1 -1
- package/dist/atomic-merge.js +3 -4
- package/dist/atomic-merge.js.map +1 -1
- package/dist/backlog-editor.d.ts +2 -1
- package/dist/backlog-editor.d.ts.map +1 -1
- package/dist/backlog-editor.js.map +1 -1
- package/dist/backlog-parser.d.ts +1 -1
- package/dist/backlog-parser.d.ts.map +1 -1
- package/dist/backlog-parser.js.map +1 -1
- package/dist/backlog-sync-validator.d.ts.map +1 -1
- package/dist/backlog-sync-validator.js +9 -5
- package/dist/backlog-sync-validator.js.map +1 -1
- package/dist/branch-check.d.ts.map +1 -1
- package/dist/branch-check.js +3 -2
- package/dist/branch-check.js.map +1 -1
- package/dist/branch-drift.d.ts +1 -1
- package/dist/branch-drift.d.ts.map +1 -1
- package/dist/branch-drift.js.map +1 -1
- package/dist/cleanup-lock.d.ts +13 -4
- package/dist/cleanup-lock.d.ts.map +1 -1
- package/dist/cleanup-lock.js +1 -1
- package/dist/cleanup-lock.js.map +1 -1
- package/dist/code-path-validator.d.ts.map +1 -1
- package/dist/code-path-validator.js +3 -2
- package/dist/code-path-validator.js.map +1 -1
- package/dist/code-paths-overlap.d.ts +5 -4
- package/dist/code-paths-overlap.d.ts.map +1 -1
- package/dist/code-paths-overlap.js +16 -9
- package/dist/code-paths-overlap.js.map +1 -1
- package/dist/commands-logger.d.ts.map +1 -1
- package/dist/commands-logger.js +17 -9
- package/dist/commands-logger.js.map +1 -1
- package/dist/commit-message-utils.d.ts +1 -1
- package/dist/commit-message-utils.d.ts.map +1 -1
- package/dist/commit-message-utils.js.map +1 -1
- package/dist/constants/backlog-patterns.d.ts +1 -1
- package/dist/constants/backlog-patterns.d.ts.map +1 -1
- package/dist/constants/backlog-patterns.js.map +1 -1
- package/dist/core/scope-checker.d.ts +2 -2
- package/dist/core/scope-checker.d.ts.map +1 -1
- package/dist/core/scope-checker.js +18 -25
- package/dist/core/scope-checker.js.map +1 -1
- package/dist/core/tool-runner.d.ts.map +1 -1
- package/dist/core/tool-runner.js +2 -1
- package/dist/core/tool-runner.js.map +1 -1
- package/dist/core/tool.schemas.d.ts +2 -2
- package/dist/core/worktree-guard.d.ts.map +1 -1
- package/dist/core/worktree-guard.js +13 -18
- package/dist/core/worktree-guard.js.map +1 -1
- package/dist/date-utils.d.ts +3 -3
- package/dist/date-utils.d.ts.map +1 -1
- package/dist/date-utils.js +2 -2
- package/dist/date-utils.js.map +1 -1
- package/dist/delegation-escalation.d.ts.map +1 -1
- package/dist/delegation-escalation.js +6 -5
- package/dist/delegation-escalation.js.map +1 -1
- package/dist/delegation-registry-store.d.ts.map +1 -1
- package/dist/delegation-registry-store.js +6 -5
- package/dist/delegation-registry-store.js.map +1 -1
- package/dist/dependency-guard.d.ts +2 -2
- package/dist/dependency-guard.d.ts.map +1 -1
- package/dist/dependency-guard.js +4 -3
- package/dist/dependency-guard.js.map +1 -1
- package/dist/docs-layout-presets.d.ts +29 -0
- package/dist/docs-layout-presets.d.ts.map +1 -0
- package/dist/docs-layout-presets.js +38 -0
- package/dist/docs-layout-presets.js.map +1 -0
- package/dist/docs-path-validator.d.ts +2 -2
- package/dist/docs-path-validator.d.ts.map +1 -1
- package/dist/docs-path-validator.js +6 -9
- package/dist/docs-path-validator.js.map +1 -1
- package/dist/domain/index.d.ts +1 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +2 -0
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/result.d.ts +116 -0
- package/dist/domain/result.d.ts.map +1 -0
- package/dist/domain/result.js +96 -0
- package/dist/domain/result.js.map +1 -0
- package/dist/domain/validation.schemas.d.ts +3 -3
- package/dist/error-handler.d.ts +36 -3
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +36 -0
- package/dist/error-handler.js.map +1 -1
- package/dist/file-classifiers.d.ts +10 -18
- package/dist/file-classifiers.d.ts.map +1 -1
- package/dist/file-classifiers.js +22 -6
- package/dist/file-classifiers.js.map +1 -1
- package/dist/gates-coverage.js.map +1 -1
- package/dist/git-adapter.d.ts.map +1 -1
- package/dist/git-adapter.js +5 -4
- package/dist/git-adapter.js.map +1 -1
- package/dist/git-staged-validator.d.ts +4 -4
- package/dist/git-staged-validator.js +4 -4
- package/dist/incremental-lint.d.ts +3 -3
- package/dist/incremental-lint.d.ts.map +1 -1
- package/dist/incremental-lint.js.map +1 -1
- package/dist/incremental-test.d.ts +1 -1
- package/dist/incremental-test.d.ts.map +1 -1
- package/dist/incremental-test.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/invariants/check-automated-tests.d.ts +1 -1
- package/dist/invariants/check-automated-tests.d.ts.map +1 -1
- package/dist/invariants/check-automated-tests.js.map +1 -1
- package/dist/invariants-runner.d.ts.map +1 -1
- package/dist/invariants-runner.js +4 -4
- package/dist/invariants-runner.js.map +1 -1
- package/dist/lane-checker.d.ts.map +1 -1
- package/dist/lane-checker.js +13 -12
- package/dist/lane-checker.js.map +1 -1
- package/dist/lane-validator.d.ts +17 -10
- package/dist/lane-validator.d.ts.map +1 -1
- package/dist/lane-validator.js +6 -6
- package/dist/lane-validator.js.map +1 -1
- package/dist/logs-lib.d.ts +1 -1
- package/dist/logs-lib.d.ts.map +1 -1
- package/dist/logs-lib.js.map +1 -1
- package/dist/lumenflow-config-schema.d.ts +8 -0
- package/dist/lumenflow-config-schema.d.ts.map +1 -1
- package/dist/lumenflow-config-schema.js +3 -1
- package/dist/lumenflow-config-schema.js.map +1 -1
- package/dist/lumenflow-config.d.ts +9 -2
- package/dist/lumenflow-config.d.ts.map +1 -1
- package/dist/lumenflow-config.js +12 -4
- package/dist/lumenflow-config.js.map +1 -1
- package/dist/lumenflow-home.d.ts +3 -3
- package/dist/lumenflow-home.js +3 -3
- package/dist/manual-test-validator.d.ts +15 -7
- package/dist/manual-test-validator.d.ts.map +1 -1
- package/dist/manual-test-validator.js +9 -8
- package/dist/manual-test-validator.js.map +1 -1
- package/dist/micro-worktree.d.ts.map +1 -1
- package/dist/micro-worktree.js +6 -5
- package/dist/micro-worktree.js.map +1 -1
- package/dist/orphan-detector.d.ts +11 -11
- package/dist/orphan-detector.d.ts.map +1 -1
- package/dist/orphan-detector.js.map +1 -1
- package/dist/pack-authoring-template-engine.d.ts.map +1 -1
- package/dist/pack-authoring-template-engine.js +8 -7
- package/dist/pack-authoring-template-engine.js.map +1 -1
- package/dist/path-classifiers.d.ts +6 -18
- package/dist/path-classifiers.d.ts.map +1 -1
- package/dist/path-classifiers.js +11 -15
- package/dist/path-classifiers.js.map +1 -1
- package/dist/path-factory.d.ts +54 -0
- package/dist/path-factory.d.ts.map +1 -0
- package/dist/path-factory.js +67 -0
- package/dist/path-factory.js.map +1 -0
- package/dist/piped-command-detector.d.ts +2 -2
- package/dist/piped-command-detector.d.ts.map +1 -1
- package/dist/piped-command-detector.js.map +1 -1
- package/dist/ports/context.ports.d.ts +17 -1
- package/dist/ports/context.ports.d.ts.map +1 -1
- package/dist/ports/recovery.ports.d.ts +10 -0
- package/dist/ports/recovery.ports.d.ts.map +1 -1
- package/dist/ports/validation.ports.d.ts +5 -0
- package/dist/ports/validation.ports.d.ts.map +1 -1
- package/dist/ports/wu-state.ports.d.ts +8 -1
- package/dist/ports/wu-state.ports.d.ts.map +1 -1
- package/dist/process-detector.d.ts +13 -6
- package/dist/process-detector.d.ts.map +1 -1
- package/dist/process-detector.js +3 -2
- package/dist/process-detector.js.map +1 -1
- package/dist/prompt-linter.d.ts +19 -1
- package/dist/prompt-linter.d.ts.map +1 -1
- package/dist/prompt-linter.js +13 -18
- package/dist/prompt-linter.js.map +1 -1
- package/dist/prompt-monitor.js +13 -9
- package/dist/prompt-monitor.js.map +1 -1
- package/dist/retry-strategy.d.ts +18 -39
- package/dist/retry-strategy.d.ts.map +1 -1
- package/dist/retry-strategy.js +13 -9
- package/dist/retry-strategy.js.map +1 -1
- package/dist/schemas/directories-config.d.ts +1 -0
- package/dist/schemas/directories-config.d.ts.map +1 -1
- package/dist/schemas/directories-config.js +25 -39
- package/dist/schemas/directories-config.js.map +1 -1
- package/dist/schemas/flow-arg-validators.d.ts +6 -6
- package/dist/schemas/flow-schemas.d.ts +12 -12
- package/dist/schemas/initiative-arg-validators.d.ts +2 -2
- package/dist/schemas/initiative-schemas.d.ts +5 -5
- package/dist/schemas/operational-config.d.ts +17 -0
- package/dist/schemas/operational-config.d.ts.map +1 -1
- package/dist/schemas/operational-config.js +21 -0
- package/dist/schemas/operational-config.js.map +1 -1
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -2
- package/dist/schemas/wu-lifecycle-schemas.d.ts +4 -4
- package/dist/section-headings.d.ts +1 -1
- package/dist/section-headings.d.ts.map +1 -1
- package/dist/section-headings.js.map +1 -1
- package/dist/telemetry.d.ts +65 -6
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +516 -3
- package/dist/telemetry.js.map +1 -1
- package/dist/template-loader.d.ts +1 -5
- package/dist/template-loader.d.ts.map +1 -1
- package/dist/template-loader.js +5 -20
- package/dist/template-loader.js.map +1 -1
- package/dist/usecases/index.d.ts +9 -0
- package/dist/usecases/index.d.ts.map +1 -1
- package/dist/usecases/index.js +9 -0
- package/dist/usecases/index.js.map +1 -1
- package/dist/user-normalizer.d.ts +3 -3
- package/dist/user-normalizer.d.ts.map +1 -1
- package/dist/user-normalizer.js +1 -1
- package/dist/user-normalizer.js.map +1 -1
- package/dist/worktree-ownership.d.ts +1 -1
- package/dist/worktree-ownership.d.ts.map +1 -1
- package/dist/worktree-ownership.js.map +1 -1
- package/dist/wu-backlog-updater.d.ts +1 -1
- package/dist/wu-backlog-updater.d.ts.map +1 -1
- package/dist/wu-backlog-updater.js.map +1 -1
- package/dist/wu-checkpoint.d.ts +16 -9
- package/dist/wu-checkpoint.d.ts.map +1 -1
- package/dist/wu-checkpoint.js +0 -10
- package/dist/wu-checkpoint.js.map +1 -1
- package/dist/wu-claim-helpers.d.ts +4 -2
- package/dist/wu-claim-helpers.d.ts.map +1 -1
- package/dist/wu-claim-helpers.js +2 -1
- package/dist/wu-claim-helpers.js.map +1 -1
- package/dist/wu-claim-resume.d.ts +49 -37
- package/dist/wu-claim-resume.d.ts.map +1 -1
- package/dist/wu-claim-resume.js +9 -6
- package/dist/wu-claim-resume.js.map +1 -1
- package/dist/wu-consistency-file-repairs.d.ts +1 -1
- package/dist/wu-consistency-file-repairs.d.ts.map +1 -1
- package/dist/wu-consistency-file-repairs.js +7 -5
- package/dist/wu-consistency-file-repairs.js.map +1 -1
- package/dist/wu-constants.d.ts +2 -2
- package/dist/wu-constants.d.ts.map +1 -1
- package/dist/wu-constants.js +2 -2
- package/dist/wu-constants.js.map +1 -1
- package/dist/wu-context-constants.d.ts +68 -0
- package/dist/wu-context-constants.d.ts.map +1 -1
- package/dist/wu-context-constants.js +73 -0
- package/dist/wu-context-constants.js.map +1 -1
- package/dist/wu-create-validators.d.ts +9 -6
- package/dist/wu-create-validators.d.ts.map +1 -1
- package/dist/wu-create-validators.js +7 -5
- package/dist/wu-create-validators.js.map +1 -1
- package/dist/wu-done-branch-only.d.ts.map +1 -1
- package/dist/wu-done-branch-only.js +14 -14
- package/dist/wu-done-branch-only.js.map +1 -1
- package/dist/wu-done-branch-utils.d.ts +1 -1
- package/dist/wu-done-branch-utils.d.ts.map +1 -1
- package/dist/wu-done-branch-utils.js.map +1 -1
- package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
- package/dist/wu-done-concurrent-merge.js +8 -7
- package/dist/wu-done-concurrent-merge.js.map +1 -1
- package/dist/wu-done-docs-only.d.ts +1 -1
- package/dist/wu-done-docs-only.d.ts.map +1 -1
- package/dist/wu-done-docs-only.js +3 -2
- package/dist/wu-done-docs-only.js.map +1 -1
- package/dist/wu-done-errors.d.ts +3 -3
- package/dist/wu-done-errors.d.ts.map +1 -1
- package/dist/wu-done-errors.js.map +1 -1
- package/dist/wu-done-inputs.d.ts +1 -1
- package/dist/wu-done-inputs.d.ts.map +1 -1
- package/dist/wu-done-inputs.js.map +1 -1
- package/dist/wu-done-metadata.d.ts +2 -2
- package/dist/wu-done-metadata.d.ts.map +1 -1
- package/dist/wu-done-metadata.js +3 -5
- package/dist/wu-done-metadata.js.map +1 -1
- package/dist/wu-done-preflight-checks.js +2 -2
- package/dist/wu-done-preflight-checks.js.map +1 -1
- package/dist/wu-done-preflight.d.ts.map +1 -1
- package/dist/wu-done-preflight.js +3 -2
- package/dist/wu-done-preflight.js.map +1 -1
- package/dist/wu-done-rebase.d.ts.map +1 -1
- package/dist/wu-done-rebase.js +6 -8
- package/dist/wu-done-rebase.js.map +1 -1
- package/dist/wu-done-retry-helpers.d.ts +30 -7
- package/dist/wu-done-retry-helpers.d.ts.map +1 -1
- package/dist/wu-done-retry-helpers.js +17 -14
- package/dist/wu-done-retry-helpers.js.map +1 -1
- package/dist/wu-done-ui.d.ts +1 -1
- package/dist/wu-done-ui.d.ts.map +1 -1
- package/dist/wu-done-ui.js +1 -3
- package/dist/wu-done-ui.js.map +1 -1
- package/dist/wu-done-validation.d.ts.map +1 -1
- package/dist/wu-done-validation.js +10 -23
- package/dist/wu-done-validation.js.map +1 -1
- package/dist/wu-done-worktree.js.map +1 -1
- package/dist/wu-event-sourcer.d.ts +15 -2
- package/dist/wu-event-sourcer.d.ts.map +1 -1
- package/dist/wu-event-sourcer.js +79 -44
- package/dist/wu-event-sourcer.js.map +1 -1
- package/dist/wu-events-cleanup.d.ts.map +1 -1
- package/dist/wu-events-cleanup.js +4 -3
- package/dist/wu-events-cleanup.js.map +1 -1
- package/dist/wu-helpers.d.ts.map +1 -1
- package/dist/wu-helpers.js +3 -3
- package/dist/wu-helpers.js.map +1 -1
- package/dist/wu-id-generator.d.ts.map +1 -1
- package/dist/wu-id-generator.js +2 -1
- package/dist/wu-id-generator.js.map +1 -1
- package/dist/wu-inconsistency-repairer.d.ts.map +1 -1
- package/dist/wu-inconsistency-repairer.js +7 -5
- package/dist/wu-inconsistency-repairer.js.map +1 -1
- package/dist/wu-lint.d.ts +61 -78
- package/dist/wu-lint.d.ts.map +1 -1
- package/dist/wu-lint.js +9 -4
- package/dist/wu-lint.js.map +1 -1
- package/dist/wu-lock-manager.d.ts.map +1 -1
- package/dist/wu-lock-manager.js +2 -1
- package/dist/wu-lock-manager.js.map +1 -1
- package/dist/wu-paths-constants.d.ts +4 -9
- package/dist/wu-paths-constants.d.ts.map +1 -1
- package/dist/wu-paths-constants.js +10 -13
- package/dist/wu-paths-constants.js.map +1 -1
- package/dist/wu-paths.d.ts +11 -1
- package/dist/wu-paths.d.ts.map +1 -1
- package/dist/wu-paths.js +10 -20
- package/dist/wu-paths.js.map +1 -1
- package/dist/wu-recovery.js +2 -2
- package/dist/wu-recovery.js.map +1 -1
- package/dist/wu-repair-core.js +1 -1
- package/dist/wu-repair-core.js.map +1 -1
- package/dist/wu-rules-core.d.ts.map +1 -1
- package/dist/wu-rules-core.js +2 -1
- package/dist/wu-rules-core.js.map +1 -1
- package/dist/wu-schema-normalization.d.ts +3 -1
- package/dist/wu-schema-normalization.d.ts.map +1 -1
- package/dist/wu-schema-normalization.js +6 -4
- package/dist/wu-schema-normalization.js.map +1 -1
- package/dist/wu-schema.d.ts +64 -5
- package/dist/wu-schema.d.ts.map +1 -1
- package/dist/wu-schema.js +49 -6
- package/dist/wu-schema.js.map +1 -1
- package/dist/wu-spawn-context.d.ts.map +1 -1
- package/dist/wu-spawn-context.js +2 -1
- package/dist/wu-spawn-context.js.map +1 -1
- package/dist/wu-spawn-helpers.d.ts.map +1 -1
- package/dist/wu-spawn-helpers.js +4 -4
- package/dist/wu-spawn-helpers.js.map +1 -1
- package/dist/wu-spawn.js.map +1 -1
- package/dist/wu-state-schema.d.ts +1 -1
- package/dist/wu-state-schema.d.ts.map +1 -1
- package/dist/wu-state-schema.js.map +1 -1
- package/dist/wu-state-store.d.ts +1 -1
- package/dist/wu-state-store.d.ts.map +1 -1
- package/dist/wu-state-store.js +6 -5
- package/dist/wu-state-store.js.map +1 -1
- package/dist/wu-status-updater.d.ts +2 -2
- package/dist/wu-status-updater.d.ts.map +1 -1
- package/dist/wu-status-updater.js.map +1 -1
- package/dist/wu-yaml.d.ts +12 -9
- package/dist/wu-yaml.d.ts.map +1 -1
- package/dist/wu-yaml.js +62 -55
- package/dist/wu-yaml.js.map +1 -1
- package/package.json +2 -2
- package/dist/wu-delegation-cutover.d.ts +0 -5
- package/dist/wu-delegation-cutover.d.ts.map +0 -1
- package/dist/wu-delegation-cutover.js +0 -231
- package/dist/wu-delegation-cutover.js.map +0 -1
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import fs from 'node:fs/promises';
|
|
18
18
|
import path from 'node:path';
|
|
19
19
|
import { validateDelegationEvent, generateDelegationId, DelegationStatus, } from './delegation-registry-schema.js';
|
|
20
|
+
import { createError, ErrorCodes } from './error-handler.js';
|
|
20
21
|
/** Delegation registry file name constant */
|
|
21
22
|
export const DELEGATION_REGISTRY_FILE_NAME = 'delegation-registry.jsonl';
|
|
22
23
|
/**
|
|
@@ -97,7 +98,7 @@ export class DelegationRegistryStore {
|
|
|
97
98
|
parsed = JSON.parse(line);
|
|
98
99
|
}
|
|
99
100
|
catch (error) {
|
|
100
|
-
throw
|
|
101
|
+
throw createError(ErrorCodes.PARSE_ERROR, `Malformed JSON on line ${i + 1}: ${error.message}`);
|
|
101
102
|
}
|
|
102
103
|
// Validate against schema
|
|
103
104
|
const validation = validateDelegationEvent(parsed);
|
|
@@ -105,7 +106,7 @@ export class DelegationRegistryStore {
|
|
|
105
106
|
const issues = validation.error.issues
|
|
106
107
|
.map((issue) => `${issue.path.join('.')}: ${issue.message}`)
|
|
107
108
|
.join(', ');
|
|
108
|
-
throw
|
|
109
|
+
throw createError(ErrorCodes.VALIDATION_ERROR, `Validation error on line ${i + 1}: ${issues}`);
|
|
109
110
|
}
|
|
110
111
|
const event = validation.data;
|
|
111
112
|
// Apply event to state (latest event for same ID wins)
|
|
@@ -153,7 +154,7 @@ export class DelegationRegistryStore {
|
|
|
153
154
|
const issues = validation.error.issues
|
|
154
155
|
.map((issue) => `${issue.path.join('.')}: ${issue.message}`)
|
|
155
156
|
.join(', ');
|
|
156
|
-
throw
|
|
157
|
+
throw createError(ErrorCodes.VALIDATION_ERROR, `Validation error: ${issues}`);
|
|
157
158
|
}
|
|
158
159
|
const line = JSON.stringify(event) + '\n';
|
|
159
160
|
// Ensure parent directory exists before appending
|
|
@@ -204,7 +205,7 @@ export class DelegationRegistryStore {
|
|
|
204
205
|
async updateStatus(delegationId, status) {
|
|
205
206
|
const existing = this.delegations.get(delegationId);
|
|
206
207
|
if (!existing) {
|
|
207
|
-
throw
|
|
208
|
+
throw createError(ErrorCodes.DELEGATION_NOT_FOUND, `Delegation ID ${delegationId} not found`);
|
|
208
209
|
}
|
|
209
210
|
const event = {
|
|
210
211
|
...existing,
|
|
@@ -229,7 +230,7 @@ export class DelegationRegistryStore {
|
|
|
229
230
|
async recordPickup(delegationId, pickedUpBy, pickedUpAt) {
|
|
230
231
|
const existing = this.delegations.get(delegationId);
|
|
231
232
|
if (!existing) {
|
|
232
|
-
throw
|
|
233
|
+
throw createError(ErrorCodes.DELEGATION_NOT_FOUND, `Delegation ID ${delegationId} not found`);
|
|
233
234
|
}
|
|
234
235
|
const event = {
|
|
235
236
|
...existing,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-registry-store.js","sourceRoot":"","sources":["../src/delegation-registry-store.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,GAGjB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"delegation-registry-store.js","sourceRoot":"","sources":["../src/delegation-registry-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export declare const DEPENDENCY_MUTATING_COMMANDS: string[];
|
|
|
22
22
|
* isDependencyMutatingCommand('pnpm run test'); // false
|
|
23
23
|
* isDependencyMutatingCommand('npm install'); // false (not pnpm)
|
|
24
24
|
*/
|
|
25
|
-
export declare function isDependencyMutatingCommand(command:
|
|
25
|
+
export declare function isDependencyMutatingCommand(command: string): boolean;
|
|
26
26
|
/**
|
|
27
27
|
* Build a blocking message for dependency-mutating commands on main.
|
|
28
28
|
*
|
|
@@ -33,7 +33,7 @@ export declare function isDependencyMutatingCommand(command: UnsafeAny): boolean
|
|
|
33
33
|
* const message = buildDependencyBlockMessage('pnpm add react');
|
|
34
34
|
* // Returns multi-line message with guidance
|
|
35
35
|
*/
|
|
36
|
-
export declare function buildDependencyBlockMessage(command:
|
|
36
|
+
export declare function buildDependencyBlockMessage(command: string): string;
|
|
37
37
|
/**
|
|
38
38
|
* Log prefix for dependency guard output
|
|
39
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-guard.d.ts","sourceRoot":"","sources":["../src/dependency-guard.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,UASxC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dependency-guard.d.ts","sourceRoot":"","sources":["../src/dependency-guard.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,UASxC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,WA2C1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,UA8C1D;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAiB,CAAC"}
|
package/dist/dependency-guard.js
CHANGED
|
@@ -66,7 +66,7 @@ export function isDependencyMutatingCommand(command) {
|
|
|
66
66
|
const parts = trimmed.split(/\s+/);
|
|
67
67
|
// Find the first non-flag argument after 'pnpm'
|
|
68
68
|
for (let i = 1; i < parts.length; i++) {
|
|
69
|
-
const part = parts[i];
|
|
69
|
+
const part = parts[i] ?? '';
|
|
70
70
|
// Skip flags (start with -)
|
|
71
71
|
if (part.startsWith('-')) {
|
|
72
72
|
// Handle --filter=value format
|
|
@@ -100,8 +100,9 @@ export function buildDependencyBlockMessage(command) {
|
|
|
100
100
|
const parts = command.trim().split(/\s+/);
|
|
101
101
|
let subcommand = '';
|
|
102
102
|
for (let i = 1; i < parts.length; i++) {
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
const part = parts[i] ?? '';
|
|
104
|
+
if (!part.startsWith('-')) {
|
|
105
|
+
subcommand = part;
|
|
105
106
|
break;
|
|
106
107
|
}
|
|
107
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-guard.js","sourceRoot":"","sources":["../src/dependency-guard.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,KAAK;IACL,SAAS;IACT,GAAG,EAAE,wBAAwB;IAC7B,QAAQ;IACR,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,mBAAmB;IAChC,QAAQ;IACR,IAAI,EAAE,uBAAuB;CAC9B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CAAC,
|
|
1
|
+
{"version":3,"file":"dependency-guard.js","sourceRoot":"","sources":["../src/dependency-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const DOCS_LAYOUT_PRESETS: {
|
|
2
|
+
readonly simple: {
|
|
3
|
+
readonly operations: string;
|
|
4
|
+
readonly tasks: string;
|
|
5
|
+
readonly onboarding: string;
|
|
6
|
+
readonly quickRefLink: `${string}/quick-ref-commands.md`;
|
|
7
|
+
readonly completeGuidePath: `${string}/lumenflow-complete.md`;
|
|
8
|
+
readonly quickRefPath: `${string}/quick-ref-commands.md`;
|
|
9
|
+
readonly startingPromptPath: `${string}/starting-prompt.md`;
|
|
10
|
+
readonly sizingGuidePath: `${string}/wu-sizing-guide.md`;
|
|
11
|
+
readonly governancePath: `${string}/governance/project-governance.md`;
|
|
12
|
+
};
|
|
13
|
+
readonly arc42: {
|
|
14
|
+
readonly operations: string;
|
|
15
|
+
readonly tasks: string;
|
|
16
|
+
readonly onboarding: string;
|
|
17
|
+
readonly quickRefLink: `${string}/quick-ref-commands.md`;
|
|
18
|
+
readonly completeGuidePath: `${string}/lumenflow-complete.md`;
|
|
19
|
+
readonly quickRefPath: `${string}/quick-ref-commands.md`;
|
|
20
|
+
readonly startingPromptPath: `${string}/starting-prompt.md`;
|
|
21
|
+
readonly sizingGuidePath: `${string}/wu-sizing-guide.md`;
|
|
22
|
+
readonly governancePath: `${string}/governance/project-governance.md`;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export type DocsLayoutType = keyof typeof DOCS_LAYOUT_PRESETS;
|
|
26
|
+
export type DocsLayoutPreset = (typeof DOCS_LAYOUT_PRESETS)[DocsLayoutType];
|
|
27
|
+
export declare const DEFAULT_DOCS_LAYOUT: DocsLayoutType;
|
|
28
|
+
export declare function getDocsLayoutPreset(layout: DocsLayoutType): DocsLayoutPreset;
|
|
29
|
+
//# sourceMappingURL=docs-layout-presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-layout-presets.d.ts","sourceRoot":"","sources":["../src/docs-layout-presets.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;CAGtB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,cAAc,CAAC,CAAC;AAE5E,eAAO,MAAM,mBAAmB,EAAE,cAAyB,CAAC;AAE5D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAE5E"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* Canonical docs layout presets used across scaffolding and defaults.
|
|
5
|
+
*
|
|
6
|
+
* Keeping presets in one place avoids path-literal drift between:
|
|
7
|
+
* - schema defaults
|
|
8
|
+
* - init docs-structure mapping
|
|
9
|
+
* - runtime prompt/path helpers
|
|
10
|
+
*/
|
|
11
|
+
function buildDocsLayout(operations, tasks) {
|
|
12
|
+
const frameworkRoot = `${operations}/_frameworks/lumenflow`;
|
|
13
|
+
const onboarding = `${frameworkRoot}/agent/onboarding`;
|
|
14
|
+
return {
|
|
15
|
+
operations,
|
|
16
|
+
tasks,
|
|
17
|
+
onboarding,
|
|
18
|
+
quickRefLink: `${onboarding}/quick-ref-commands.md`,
|
|
19
|
+
completeGuidePath: `${frameworkRoot}/lumenflow-complete.md`,
|
|
20
|
+
quickRefPath: `${onboarding}/quick-ref-commands.md`,
|
|
21
|
+
startingPromptPath: `${onboarding}/starting-prompt.md`,
|
|
22
|
+
sizingGuidePath: `${frameworkRoot}/wu-sizing-guide.md`,
|
|
23
|
+
governancePath: `${operations}/governance/project-governance.md`,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const DOCS_ROOT = 'docs';
|
|
27
|
+
const SIMPLE_TASKS_PATH = `${DOCS_ROOT}/tasks`;
|
|
28
|
+
const ARC42_OPERATIONS_PATH = [DOCS_ROOT, '04-operations'].join('/');
|
|
29
|
+
const ARC42_TASKS_PATH = [ARC42_OPERATIONS_PATH, 'tasks'].join('/');
|
|
30
|
+
export const DOCS_LAYOUT_PRESETS = {
|
|
31
|
+
simple: buildDocsLayout(DOCS_ROOT, SIMPLE_TASKS_PATH),
|
|
32
|
+
arc42: buildDocsLayout(ARC42_OPERATIONS_PATH, ARC42_TASKS_PATH),
|
|
33
|
+
};
|
|
34
|
+
export const DEFAULT_DOCS_LAYOUT = 'simple';
|
|
35
|
+
export function getDocsLayoutPreset(layout) {
|
|
36
|
+
return DOCS_LAYOUT_PRESETS[layout];
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=docs-layout-presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-layout-presets.js","sourceRoot":"","sources":["../src/docs-layout-presets.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;GAOG;AAEH,SAAS,eAAe,CAAC,UAAkB,EAAE,KAAa;IACxD,MAAM,aAAa,GAAG,GAAG,UAAU,wBAAwB,CAAC;IAC5D,MAAM,UAAU,GAAG,GAAG,aAAa,mBAAmB,CAAC;IAEvD,OAAO;QACL,UAAU;QACV,KAAK;QACL,UAAU;QACV,YAAY,EAAE,GAAG,UAAU,wBAAwB;QACnD,iBAAiB,EAAE,GAAG,aAAa,wBAAwB;QAC3D,YAAY,EAAE,GAAG,UAAU,wBAAwB;QACnD,kBAAkB,EAAE,GAAG,UAAU,qBAAqB;QACtD,eAAe,EAAE,GAAG,aAAa,qBAAqB;QACtD,cAAc,EAAE,GAAG,UAAU,mCAAmC;KACxD,CAAC;AACb,CAAC;AAED,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,iBAAiB,GAAG,GAAG,SAAS,QAAQ,CAAC;AAC/C,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,MAAM,gBAAgB,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACrD,KAAK,EAAE,eAAe,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;CACvD,CAAC;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAAmB,QAAQ,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACxD,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* @param {string[]} stagedFiles - Array of file paths
|
|
5
5
|
* @returns {{valid: boolean, violations: string[]}} - Validation result
|
|
6
6
|
*/
|
|
7
|
-
export declare function validateDocsOnly(stagedFiles:
|
|
7
|
+
export declare function validateDocsOnly(stagedFiles: string[]): {
|
|
8
8
|
valid: boolean;
|
|
9
|
-
violations:
|
|
9
|
+
violations: string[];
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
12
12
|
* Get a human-readable description of allowed paths
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-path-validator.d.ts","sourceRoot":"","sources":["../src/docs-path-validator.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"docs-path-validator.d.ts","sourceRoot":"","sources":["../src/docs-path-validator.ts"],"names":[],"mappings":";AAmEA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE;;;EAYrD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,WAWzC"}
|
|
@@ -25,22 +25,18 @@
|
|
|
25
25
|
import path from 'node:path';
|
|
26
26
|
import { WU_EVENTS_FILE_NAME } from './wu-state-store.js';
|
|
27
27
|
import { LUMENFLOW_PATHS, DIRECTORIES, FILE_EXTENSIONS, STRING_LITERALS } from './wu-constants.js';
|
|
28
|
+
import { getDocsOnlyPrefixes } from './file-classifiers.js';
|
|
28
29
|
const POSIX = path.posix;
|
|
29
|
-
const DOCS_ONLY_PREFIXES = Object.freeze([
|
|
30
|
-
DIRECTORIES.DOCS,
|
|
31
|
-
DIRECTORIES.AI,
|
|
32
|
-
DIRECTORIES.CLAUDE,
|
|
33
|
-
DIRECTORIES.MEMORY_BANK,
|
|
34
|
-
]);
|
|
35
30
|
const TOOLS_TESTS_PREFIX = `${POSIX.join(DIRECTORIES.TOOLS, '__tests__')}${STRING_LITERALS.SLASH}`;
|
|
36
31
|
const STAMPS_PREFIX = `${LUMENFLOW_PATHS.STAMPS_DIR}${STRING_LITERALS.SLASH}`;
|
|
37
32
|
const WU_EVENTS_PATH = POSIX.join(LUMENFLOW_PATHS.STATE_DIR, WU_EVENTS_FILE_NAME);
|
|
38
33
|
/**
|
|
39
34
|
* Check if a file path is allowed for docs-only WUs
|
|
40
35
|
* @param {string} filePath - The file path to validate
|
|
36
|
+
* @param {readonly string[]} docsOnlyPrefixes - Config-driven docs path prefixes
|
|
41
37
|
* @returns {boolean} - True if the path is allowed
|
|
42
38
|
*/
|
|
43
|
-
function isAllowedPath(filePath) {
|
|
39
|
+
function isAllowedPath(filePath, docsOnlyPrefixes) {
|
|
44
40
|
if (!filePath)
|
|
45
41
|
return false;
|
|
46
42
|
if (filePath === WU_EVENTS_PATH)
|
|
@@ -55,7 +51,7 @@ function isAllowedPath(filePath) {
|
|
|
55
51
|
}
|
|
56
52
|
if (filePath.endsWith(FILE_EXTENSIONS.MARKDOWN))
|
|
57
53
|
return true;
|
|
58
|
-
for (const prefix of
|
|
54
|
+
for (const prefix of docsOnlyPrefixes) {
|
|
59
55
|
if (filePath.startsWith(prefix)) {
|
|
60
56
|
return true;
|
|
61
57
|
}
|
|
@@ -68,9 +64,10 @@ function isAllowedPath(filePath) {
|
|
|
68
64
|
* @returns {{valid: boolean, violations: string[]}} - Validation result
|
|
69
65
|
*/
|
|
70
66
|
export function validateDocsOnly(stagedFiles) {
|
|
67
|
+
const docsOnlyPrefixes = getDocsOnlyPrefixes();
|
|
71
68
|
const violations = [];
|
|
72
69
|
for (const file of stagedFiles) {
|
|
73
|
-
if (!isAllowedPath(file)) {
|
|
70
|
+
if (!isAllowedPath(file, docsOnlyPrefixes)) {
|
|
74
71
|
violations.push(file);
|
|
75
72
|
}
|
|
76
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-path-validator.js","sourceRoot":"","sources":["../src/docs-path-validator.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"docs-path-validator.js","sourceRoot":"","sources":["../src/docs-path-validator.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAEzB,MAAM,kBAAkB,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;AACnG,MAAM,aAAa,GAAG,GAAG,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;AAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAElF;;;;;GAKG;AACH,SAAS,aAAa,CAAC,QAAgB,EAAE,gBAAmC;IAC1E,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,IAAI,QAAQ,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAE7C,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,GAAG,eAAe,CAAC,KAAK,YAAY,eAAe,CAAC,KAAK,EAAE,CAAC;QACjF,OAAO,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAqB;IACpD,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAC9B,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;;;;;;;uBAOc,mBAAmB;;+CAEK,CAAC;AAChD,CAAC"}
|
package/dist/domain/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
export * from './context.schemas.js';
|
|
11
11
|
export { VALIDATION_ERROR_CODE_VALUES, ValidationErrorCodeSchema, PREDICATE_SEVERITY_VALUES, PredicateSeveritySchema, ValidationErrorSchema, ValidationWarningSchema, ValidationResultSchema, CommandPredicateConfigSchema, CommandDefinitionConfigSchema, type ValidationErrorCode, type PredicateSeverity, type ValidationError, type ValidationWarning, type ValidationResult, type CommandPredicateConfig, type CommandDefinitionConfig, } from './validation.schemas.js';
|
|
12
12
|
export * from './recovery.schemas.js';
|
|
13
|
+
export { ok, fail, unwrap, unwrapOr, mapResult, tryCatch, tryCatchAsync, type Result, type Success, type Failure, } from './result.js';
|
|
13
14
|
export * from './orchestration.schemas.js';
|
|
14
15
|
export * from './orchestration.constants.js';
|
|
15
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAIH,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAIjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAIH,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAIjC,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EACL,EAAE,EACF,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,EACb,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,OAAO,GACb,MAAM,aAAa,CAAC;AAGrB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC"}
|
package/dist/domain/index.js
CHANGED
|
@@ -17,6 +17,8 @@ export { VALIDATION_ERROR_CODE_VALUES, ValidationErrorCodeSchema, PREDICATE_SEVE
|
|
|
17
17
|
// Recovery schemas
|
|
18
18
|
// Includes RecoveryIssueCode and RecoveryActionType enum constants
|
|
19
19
|
export * from './recovery.schemas.js';
|
|
20
|
+
// Result type (WU-2128: Standardize error return contracts)
|
|
21
|
+
export { ok, fail, unwrap, unwrapOr, mapResult, tryCatch, tryCatchAsync, } from './result.js';
|
|
20
22
|
// Orchestration schemas (existing)
|
|
21
23
|
export * from './orchestration.schemas.js';
|
|
22
24
|
export * from './orchestration.constants.js';
|
package/dist/domain/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;GAQG;AAEH,oEAAoE;AACpE,sCAAsC;AACtC,cAAc,sBAAsB,CAAC;AAErC,gEAAgE;AAChE,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,GAQ9B,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,mEAAmE;AACnE,cAAc,uBAAuB,CAAC;AAEtC,mCAAmC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;GAQG;AAEH,oEAAoE;AACpE,sCAAsC;AACtC,cAAc,sBAAsB,CAAC;AAErC,gEAAgE;AAChE,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,GAQ9B,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,mEAAmE;AACnE,cAAc,uBAAuB,CAAC;AAEtC,4DAA4D;AAC5D,OAAO,EACL,EAAE,EACF,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,GAId,MAAM,aAAa,CAAC;AAErB,mCAAmC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result Type - Discriminated Union for Error Contracts
|
|
3
|
+
*
|
|
4
|
+
* WU-2128: Standardize error return contracts
|
|
5
|
+
*
|
|
6
|
+
* Contract:
|
|
7
|
+
* - Ports THROW on failure (boundary contracts at the hexagonal architecture edge)
|
|
8
|
+
* - Adapters RETURN Result<T, E> (no exceptions in adapter layer)
|
|
9
|
+
* - CLI command handlers CATCH and format errors for user output
|
|
10
|
+
*
|
|
11
|
+
* This module defines the canonical Result<T, E> discriminated union type
|
|
12
|
+
* used by adapter implementations. It follows the same pattern as the
|
|
13
|
+
* existing ParseResult<T> in test-baseline.ts but with a generic error type.
|
|
14
|
+
*
|
|
15
|
+
* @module domain/result
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Success variant of the Result type.
|
|
19
|
+
*/
|
|
20
|
+
export interface Success<T> {
|
|
21
|
+
readonly ok: true;
|
|
22
|
+
readonly value: T;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Failure variant of the Result type.
|
|
26
|
+
*/
|
|
27
|
+
export interface Failure<E> {
|
|
28
|
+
readonly ok: false;
|
|
29
|
+
readonly error: E;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Discriminated union representing either a successful value or an error.
|
|
33
|
+
*
|
|
34
|
+
* Adapters return Result<T, E> instead of throwing exceptions.
|
|
35
|
+
* This enables predictable error handling without try-catch in calling code.
|
|
36
|
+
*
|
|
37
|
+
* @typeParam T - The success value type
|
|
38
|
+
* @typeParam E - The error type (defaults to Error)
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // Adapter returning Result
|
|
43
|
+
* async resolveLocation(cwd?: string): Promise<Result<LocationContext>> {
|
|
44
|
+
* try {
|
|
45
|
+
* const location = await this.resolveLocationFn(cwd);
|
|
46
|
+
* return ok(location);
|
|
47
|
+
* } catch (error) {
|
|
48
|
+
* return fail(error instanceof Error ? error : new Error(String(error)));
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
*
|
|
52
|
+
* // Consumer using Result
|
|
53
|
+
* const result = await adapter.resolveLocation();
|
|
54
|
+
* if (result.ok) {
|
|
55
|
+
* console.log(result.value.type); // 'main' | 'worktree'
|
|
56
|
+
* } else {
|
|
57
|
+
* console.error(result.error.message);
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export type Result<T, E = Error> = Success<T> | Failure<E>;
|
|
62
|
+
/**
|
|
63
|
+
* Create a Success result.
|
|
64
|
+
*
|
|
65
|
+
* @param value - The success value
|
|
66
|
+
* @returns A Success<T> instance
|
|
67
|
+
*/
|
|
68
|
+
export declare function ok<T>(value: T): Success<T>;
|
|
69
|
+
/**
|
|
70
|
+
* Create a Failure result.
|
|
71
|
+
*
|
|
72
|
+
* @param error - The error value
|
|
73
|
+
* @returns A Failure<E> instance
|
|
74
|
+
*/
|
|
75
|
+
export declare function fail<E = Error>(error: E): Failure<E>;
|
|
76
|
+
/**
|
|
77
|
+
* Unwrap a Result, throwing the error if it is a Failure.
|
|
78
|
+
*
|
|
79
|
+
* Useful at port boundaries where the contract is to throw.
|
|
80
|
+
*
|
|
81
|
+
* @param result - The Result to unwrap
|
|
82
|
+
* @returns The success value
|
|
83
|
+
* @throws The error value if Result is a Failure
|
|
84
|
+
*/
|
|
85
|
+
export declare function unwrap<T, E>(result: Result<T, E>): T;
|
|
86
|
+
/**
|
|
87
|
+
* Unwrap a Result with a default value for the Failure case.
|
|
88
|
+
*
|
|
89
|
+
* @param result - The Result to unwrap
|
|
90
|
+
* @param defaultValue - The value to return if Result is a Failure
|
|
91
|
+
* @returns The success value or the default value
|
|
92
|
+
*/
|
|
93
|
+
export declare function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
|
|
94
|
+
/**
|
|
95
|
+
* Map the success value of a Result.
|
|
96
|
+
*
|
|
97
|
+
* @param result - The Result to map
|
|
98
|
+
* @param fn - The mapping function
|
|
99
|
+
* @returns A new Result with the mapped value, or the original Failure
|
|
100
|
+
*/
|
|
101
|
+
export declare function mapResult<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
|
|
102
|
+
/**
|
|
103
|
+
* Wrap a throwing function into a Result-returning function.
|
|
104
|
+
*
|
|
105
|
+
* @param fn - A function that may throw
|
|
106
|
+
* @returns A Result containing the return value or the caught error
|
|
107
|
+
*/
|
|
108
|
+
export declare function tryCatch<T>(fn: () => T): Result<T, Error>;
|
|
109
|
+
/**
|
|
110
|
+
* Wrap an async throwing function into a Result-returning function.
|
|
111
|
+
*
|
|
112
|
+
* @param fn - An async function that may throw
|
|
113
|
+
* @returns A Promise<Result> containing the return value or the caught error
|
|
114
|
+
*/
|
|
115
|
+
export declare function tryCatchAsync<T>(fn: () => Promise<T>): Promise<Result<T, Error>>;
|
|
116
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/domain/result.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAMH;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAM3D;;;;;GAKG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEpD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAKpD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAKvE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAK1F;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAMzD;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAMtF"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Constructor Functions
|
|
5
|
+
// =============================================================================
|
|
6
|
+
/**
|
|
7
|
+
* Create a Success result.
|
|
8
|
+
*
|
|
9
|
+
* @param value - The success value
|
|
10
|
+
* @returns A Success<T> instance
|
|
11
|
+
*/
|
|
12
|
+
export function ok(value) {
|
|
13
|
+
return { ok: true, value };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Create a Failure result.
|
|
17
|
+
*
|
|
18
|
+
* @param error - The error value
|
|
19
|
+
* @returns A Failure<E> instance
|
|
20
|
+
*/
|
|
21
|
+
export function fail(error) {
|
|
22
|
+
return { ok: false, error };
|
|
23
|
+
}
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// Utility Functions
|
|
26
|
+
// =============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Unwrap a Result, throwing the error if it is a Failure.
|
|
29
|
+
*
|
|
30
|
+
* Useful at port boundaries where the contract is to throw.
|
|
31
|
+
*
|
|
32
|
+
* @param result - The Result to unwrap
|
|
33
|
+
* @returns The success value
|
|
34
|
+
* @throws The error value if Result is a Failure
|
|
35
|
+
*/
|
|
36
|
+
export function unwrap(result) {
|
|
37
|
+
if (result.ok) {
|
|
38
|
+
return result.value;
|
|
39
|
+
}
|
|
40
|
+
throw result.error;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Unwrap a Result with a default value for the Failure case.
|
|
44
|
+
*
|
|
45
|
+
* @param result - The Result to unwrap
|
|
46
|
+
* @param defaultValue - The value to return if Result is a Failure
|
|
47
|
+
* @returns The success value or the default value
|
|
48
|
+
*/
|
|
49
|
+
export function unwrapOr(result, defaultValue) {
|
|
50
|
+
if (result.ok) {
|
|
51
|
+
return result.value;
|
|
52
|
+
}
|
|
53
|
+
return defaultValue;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Map the success value of a Result.
|
|
57
|
+
*
|
|
58
|
+
* @param result - The Result to map
|
|
59
|
+
* @param fn - The mapping function
|
|
60
|
+
* @returns A new Result with the mapped value, or the original Failure
|
|
61
|
+
*/
|
|
62
|
+
export function mapResult(result, fn) {
|
|
63
|
+
if (result.ok) {
|
|
64
|
+
return ok(fn(result.value));
|
|
65
|
+
}
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Wrap a throwing function into a Result-returning function.
|
|
70
|
+
*
|
|
71
|
+
* @param fn - A function that may throw
|
|
72
|
+
* @returns A Result containing the return value or the caught error
|
|
73
|
+
*/
|
|
74
|
+
export function tryCatch(fn) {
|
|
75
|
+
try {
|
|
76
|
+
return ok(fn());
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
return fail(error instanceof Error ? error : new Error(String(error)));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Wrap an async throwing function into a Result-returning function.
|
|
84
|
+
*
|
|
85
|
+
* @param fn - An async function that may throw
|
|
86
|
+
* @returns A Promise<Result> containing the return value or the caught error
|
|
87
|
+
*/
|
|
88
|
+
export async function tryCatchAsync(fn) {
|
|
89
|
+
try {
|
|
90
|
+
return ok(await fn());
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
return fail(error instanceof Error ? error : new Error(String(error)));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/domain/result.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAuEzC,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAY,KAAQ;IACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAO,MAAoB;IAC/C,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAO,MAAoB,EAAE,YAAe;IAClE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAU,MAAoB,EAAE,EAAmB;IAC1E,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAI,EAAW;IACrC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAoB;IACzD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
|
|
@@ -21,8 +21,8 @@ export declare const VALIDATION_ERROR_CODE_VALUES: readonly ["WRONG_LOCATION", "
|
|
|
21
21
|
* Schema for validation error codes
|
|
22
22
|
*/
|
|
23
23
|
export declare const ValidationErrorCodeSchema: z.ZodEnum<{
|
|
24
|
-
WRONG_LOCATION: "WRONG_LOCATION";
|
|
25
24
|
WU_NOT_FOUND: "WU_NOT_FOUND";
|
|
25
|
+
WRONG_LOCATION: "WRONG_LOCATION";
|
|
26
26
|
WU_ALREADY_EXISTS: "WU_ALREADY_EXISTS";
|
|
27
27
|
WRONG_WU_STATUS: "WRONG_WU_STATUS";
|
|
28
28
|
LANE_OCCUPIED: "LANE_OCCUPIED";
|
|
@@ -51,8 +51,8 @@ export declare const PredicateSeveritySchema: z.ZodEnum<{
|
|
|
51
51
|
*/
|
|
52
52
|
export declare const ValidationErrorSchema: z.ZodObject<{
|
|
53
53
|
code: z.ZodEnum<{
|
|
54
|
-
WRONG_LOCATION: "WRONG_LOCATION";
|
|
55
54
|
WU_NOT_FOUND: "WU_NOT_FOUND";
|
|
55
|
+
WRONG_LOCATION: "WRONG_LOCATION";
|
|
56
56
|
WU_ALREADY_EXISTS: "WU_ALREADY_EXISTS";
|
|
57
57
|
WRONG_WU_STATUS: "WRONG_WU_STATUS";
|
|
58
58
|
LANE_OCCUPIED: "LANE_OCCUPIED";
|
|
@@ -84,8 +84,8 @@ export declare const ValidationResultSchema: z.ZodObject<{
|
|
|
84
84
|
valid: z.ZodBoolean;
|
|
85
85
|
errors: z.ZodArray<z.ZodObject<{
|
|
86
86
|
code: z.ZodEnum<{
|
|
87
|
-
WRONG_LOCATION: "WRONG_LOCATION";
|
|
88
87
|
WU_NOT_FOUND: "WU_NOT_FOUND";
|
|
88
|
+
WRONG_LOCATION: "WRONG_LOCATION";
|
|
89
89
|
WU_ALREADY_EXISTS: "WU_ALREADY_EXISTS";
|
|
90
90
|
WRONG_WU_STATUS: "WRONG_WU_STATUS";
|
|
91
91
|
LANE_OCCUPIED: "LANE_OCCUPIED";
|