@seanmars/tospec 0.24.0 → 0.26.0-beta
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/CHANGELOG.md +241 -0
- package/README.md +10 -6
- package/assets/dashboard/lib/derive.js +11 -5
- package/assets/dashboard/lib/store.js +4 -2
- package/assets/dashboard/views/change.js +5 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +42 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +213 -100
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/dashboard.d.ts +9 -0
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +77 -21
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/decision.d.ts +38 -1
- package/dist/commands/decision.d.ts.map +1 -1
- package/dist/commands/decision.js +303 -27
- package/dist/commands/decision.js.map +1 -1
- package/dist/commands/metrics.d.ts +3 -4
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +3 -5
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/shared-output.d.ts +24 -0
- package/dist/commands/shared-output.d.ts.map +1 -1
- package/dist/commands/shared-output.js +21 -2
- package/dist/commands/shared-output.js.map +1 -1
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +12 -9
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/validate.d.ts +19 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +243 -64
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/workflow/instructions.d.ts +7 -1
- package/dist/commands/workflow/instructions.d.ts.map +1 -1
- package/dist/commands/workflow/instructions.js +299 -81
- package/dist/commands/workflow/instructions.js.map +1 -1
- package/dist/commands/workflow/new-change.d.ts.map +1 -1
- package/dist/commands/workflow/new-change.js +26 -17
- package/dist/commands/workflow/new-change.js.map +1 -1
- package/dist/commands/workflow/prompt-escape.d.ts +25 -0
- package/dist/commands/workflow/prompt-escape.d.ts.map +1 -0
- package/dist/commands/workflow/prompt-escape.js +62 -0
- package/dist/commands/workflow/prompt-escape.js.map +1 -0
- package/dist/commands/workflow/schemas.d.ts.map +1 -1
- package/dist/commands/workflow/schemas.js +34 -16
- package/dist/commands/workflow/schemas.js.map +1 -1
- package/dist/commands/workflow/shared.d.ts +46 -10
- package/dist/commands/workflow/shared.d.ts.map +1 -1
- package/dist/commands/workflow/shared.js +66 -30
- package/dist/commands/workflow/shared.js.map +1 -1
- package/dist/commands/workflow/status.d.ts +5 -2
- package/dist/commands/workflow/status.d.ts.map +1 -1
- package/dist/commands/workflow/status.js +62 -28
- package/dist/commands/workflow/status.js.map +1 -1
- package/dist/core/archive.d.ts +38 -0
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +492 -75
- package/dist/core/archive.js.map +1 -1
- package/dist/core/artifact-graph/index.d.ts +2 -2
- package/dist/core/artifact-graph/index.d.ts.map +1 -1
- package/dist/core/artifact-graph/index.js +2 -2
- package/dist/core/artifact-graph/index.js.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts +8 -0
- package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.js +58 -36
- package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
- package/dist/core/artifact-graph/resolver.d.ts +39 -12
- package/dist/core/artifact-graph/resolver.d.ts.map +1 -1
- package/dist/core/artifact-graph/resolver.js +82 -36
- package/dist/core/artifact-graph/resolver.js.map +1 -1
- package/dist/core/artifact-graph/schema.d.ts +24 -0
- package/dist/core/artifact-graph/schema.d.ts.map +1 -1
- package/dist/core/artifact-graph/schema.js +32 -1
- package/dist/core/artifact-graph/schema.js.map +1 -1
- package/dist/core/artifact-graph/stub-detection.d.ts +10 -2
- package/dist/core/artifact-graph/stub-detection.d.ts.map +1 -1
- package/dist/core/artifact-graph/stub-detection.js +18 -11
- package/dist/core/artifact-graph/stub-detection.js.map +1 -1
- package/dist/core/artifact-graph/types.d.ts +2 -2
- package/dist/core/artifact-graph/types.d.ts.map +1 -1
- package/dist/core/artifact-graph/types.js +10 -1
- package/dist/core/artifact-graph/types.js.map +1 -1
- package/dist/core/change-metadata/schema.d.ts.map +1 -1
- package/dist/core/change-metadata/schema.js +18 -4
- package/dist/core/change-metadata/schema.js.map +1 -1
- package/dist/core/change-presenter.d.ts.map +1 -1
- package/dist/core/change-presenter.js +13 -8
- package/dist/core/change-presenter.js.map +1 -1
- package/dist/core/change-status-policy.d.ts.map +1 -1
- package/dist/core/change-status-policy.js +3 -1
- package/dist/core/change-status-policy.js.map +1 -1
- package/dist/core/codex-metrics.d.ts +1 -1
- package/dist/core/codex-metrics.js +1 -1
- package/dist/core/config-schema.d.ts +8 -0
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +10 -0
- package/dist/core/config-schema.js.map +1 -1
- package/dist/core/dashboard-activity.d.ts +4 -4
- package/dist/core/dashboard-activity.js +4 -4
- package/dist/core/dashboard-data.d.ts +11 -5
- package/dist/core/dashboard-data.d.ts.map +1 -1
- package/dist/core/dashboard-data.js +54 -28
- package/dist/core/dashboard-data.js.map +1 -1
- package/dist/core/dashboard-hub.d.ts +3 -3
- package/dist/core/dashboard-hub.d.ts.map +1 -1
- package/dist/core/dashboard-hub.js +16 -4
- package/dist/core/dashboard-hub.js.map +1 -1
- package/dist/core/dashboard-routes.d.ts +2 -1
- package/dist/core/dashboard-routes.d.ts.map +1 -1
- package/dist/core/dashboard-routes.js +102 -33
- package/dist/core/dashboard-routes.js.map +1 -1
- package/dist/core/global-config.d.ts +71 -2
- package/dist/core/global-config.d.ts.map +1 -1
- package/dist/core/global-config.js +149 -4
- package/dist/core/global-config.js.map +1 -1
- package/dist/core/id.d.ts +9 -0
- package/dist/core/id.d.ts.map +1 -1
- package/dist/core/id.js +37 -0
- package/dist/core/id.js.map +1 -1
- package/dist/core/init.d.ts +9 -2
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +116 -33
- package/dist/core/init.js.map +1 -1
- package/dist/core/list.d.ts.map +1 -1
- package/dist/core/list.js +69 -45
- package/dist/core/list.js.map +1 -1
- package/dist/core/local-server.d.ts +9 -2
- package/dist/core/local-server.d.ts.map +1 -1
- package/dist/core/local-server.js +24 -4
- package/dist/core/local-server.js.map +1 -1
- package/dist/core/markdown-render.d.ts.map +1 -1
- package/dist/core/markdown-render.js +7 -2
- package/dist/core/markdown-render.js.map +1 -1
- package/dist/core/migrate.d.ts +24 -2
- package/dist/core/migrate.d.ts.map +1 -1
- package/dist/core/migrate.js +335 -59
- package/dist/core/migrate.js.map +1 -1
- package/dist/core/parsers/change-parser.d.ts +20 -1
- package/dist/core/parsers/change-parser.d.ts.map +1 -1
- package/dist/core/parsers/change-parser.js +76 -73
- package/dist/core/parsers/change-parser.js.map +1 -1
- package/dist/core/parsers/markdown-parser.d.ts +24 -0
- package/dist/core/parsers/markdown-parser.d.ts.map +1 -1
- package/dist/core/parsers/markdown-parser.js +65 -10
- package/dist/core/parsers/markdown-parser.js.map +1 -1
- package/dist/core/parsers/requirement-blocks.d.ts +127 -6
- package/dist/core/parsers/requirement-blocks.d.ts.map +1 -1
- package/dist/core/parsers/requirement-blocks.js +349 -56
- package/dist/core/parsers/requirement-blocks.js.map +1 -1
- package/dist/core/parsers/requirement-text.d.ts +25 -1
- package/dist/core/parsers/requirement-text.d.ts.map +1 -1
- package/dist/core/parsers/requirement-text.js +62 -6
- package/dist/core/parsers/requirement-text.js.map +1 -1
- package/dist/core/parsers/spec-structure.d.ts.map +1 -1
- package/dist/core/parsers/spec-structure.js +36 -24
- package/dist/core/parsers/spec-structure.js.map +1 -1
- package/dist/core/project-config.d.ts +9 -2
- package/dist/core/project-config.d.ts.map +1 -1
- package/dist/core/project-config.js +30 -7
- package/dist/core/project-config.js.map +1 -1
- package/dist/core/project-layout.d.ts +26 -0
- package/dist/core/project-layout.d.ts.map +1 -1
- package/dist/core/project-layout.js +51 -1
- package/dist/core/project-layout.js.map +1 -1
- package/dist/core/schema-names.d.ts +17 -0
- package/dist/core/schema-names.d.ts.map +1 -1
- package/dist/core/schema-names.js +24 -0
- package/dist/core/schema-names.js.map +1 -1
- package/dist/core/shared/index.d.ts +1 -1
- package/dist/core/shared/index.d.ts.map +1 -1
- package/dist/core/shared/index.js +1 -1
- package/dist/core/shared/index.js.map +1 -1
- package/dist/core/shared/rules-generation.d.ts +12 -0
- package/dist/core/shared/rules-generation.d.ts.map +1 -1
- package/dist/core/shared/rules-generation.js +26 -2
- package/dist/core/shared/rules-generation.js.map +1 -1
- package/dist/core/shared/skill-generation.d.ts +7 -0
- package/dist/core/shared/skill-generation.d.ts.map +1 -1
- package/dist/core/shared/skill-generation.js +19 -0
- package/dist/core/shared/skill-generation.js.map +1 -1
- package/dist/core/shared/tool-detection.d.ts +10 -1
- package/dist/core/shared/tool-detection.d.ts.map +1 -1
- package/dist/core/shared/tool-detection.js +37 -6
- package/dist/core/shared/tool-detection.js.map +1 -1
- package/dist/core/spec-presenter.d.ts.map +1 -1
- package/dist/core/spec-presenter.js +23 -1
- package/dist/core/spec-presenter.js.map +1 -1
- package/dist/core/specs-apply.d.ts +98 -1
- package/dist/core/specs-apply.d.ts.map +1 -1
- package/dist/core/specs-apply.js +426 -63
- package/dist/core/specs-apply.js.map +1 -1
- package/dist/core/templates/fragments/change-diff.d.ts +37 -0
- package/dist/core/templates/fragments/change-diff.d.ts.map +1 -0
- package/dist/core/templates/fragments/change-diff.js +37 -0
- package/dist/core/templates/fragments/change-diff.js.map +1 -0
- package/dist/core/templates/fragments/sync-fail.d.ts +8 -0
- package/dist/core/templates/fragments/sync-fail.d.ts.map +1 -0
- package/dist/core/templates/fragments/sync-fail.js +8 -0
- package/dist/core/templates/fragments/sync-fail.js.map +1 -0
- package/dist/core/templates/fragments/validate.d.ts +14 -1
- package/dist/core/templates/fragments/validate.d.ts.map +1 -1
- package/dist/core/templates/fragments/validate.js +14 -1
- package/dist/core/templates/fragments/validate.js.map +1 -1
- package/dist/core/templates/fragments/verify.d.ts +2 -2
- package/dist/core/templates/fragments/verify.d.ts.map +1 -1
- package/dist/core/templates/fragments/verify.js +8 -5
- package/dist/core/templates/fragments/verify.js.map +1 -1
- package/dist/core/templates/workflows/apply.d.ts +1 -1
- package/dist/core/templates/workflows/apply.d.ts.map +1 -1
- package/dist/core/templates/workflows/apply.js +29 -10
- package/dist/core/templates/workflows/apply.js.map +1 -1
- package/dist/core/templates/workflows/archive.d.ts.map +1 -1
- package/dist/core/templates/workflows/archive.js +27 -9
- package/dist/core/templates/workflows/archive.js.map +1 -1
- package/dist/core/templates/workflows/decision.d.ts.map +1 -1
- package/dist/core/templates/workflows/decision.js +10 -4
- package/dist/core/templates/workflows/decision.js.map +1 -1
- package/dist/core/templates/workflows/explore.d.ts +2 -2
- package/dist/core/templates/workflows/explore.d.ts.map +1 -1
- package/dist/core/templates/workflows/explore.js +7 -3
- package/dist/core/templates/workflows/explore.js.map +1 -1
- package/dist/core/templates/workflows/grill.d.ts +2 -2
- package/dist/core/templates/workflows/grill.d.ts.map +1 -1
- package/dist/core/templates/workflows/grill.js +5 -4
- package/dist/core/templates/workflows/grill.js.map +1 -1
- package/dist/core/templates/workflows/issue.d.ts.map +1 -1
- package/dist/core/templates/workflows/issue.js +9 -3
- package/dist/core/templates/workflows/issue.js.map +1 -1
- package/dist/core/templates/workflows/propose.d.ts.map +1 -1
- package/dist/core/templates/workflows/propose.js +4 -1
- package/dist/core/templates/workflows/propose.js.map +1 -1
- package/dist/core/templates/workflows/sync.d.ts.map +1 -1
- package/dist/core/templates/workflows/sync.js +25 -11
- package/dist/core/templates/workflows/sync.js.map +1 -1
- package/dist/core/templates/workflows/update.d.ts.map +1 -1
- package/dist/core/templates/workflows/update.js +17 -10
- package/dist/core/templates/workflows/update.js.map +1 -1
- package/dist/core/update.d.ts +5 -0
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +66 -29
- package/dist/core/update.js.map +1 -1
- package/dist/core/validation/constants.d.ts +7 -1
- package/dist/core/validation/constants.d.ts.map +1 -1
- package/dist/core/validation/constants.js +16 -2
- package/dist/core/validation/constants.js.map +1 -1
- package/dist/core/validation/purpose-placeholder.d.ts.map +1 -1
- package/dist/core/validation/purpose-placeholder.js +35 -11
- package/dist/core/validation/purpose-placeholder.js.map +1 -1
- package/dist/core/validation/section-validator.d.ts +7 -0
- package/dist/core/validation/section-validator.d.ts.map +1 -1
- package/dist/core/validation/section-validator.js +22 -2
- package/dist/core/validation/section-validator.js.map +1 -1
- package/dist/core/validation/sister-changes.d.ts +93 -0
- package/dist/core/validation/sister-changes.d.ts.map +1 -0
- package/dist/core/validation/sister-changes.js +180 -0
- package/dist/core/validation/sister-changes.js.map +1 -0
- package/dist/core/validation/task-markers.d.ts +9 -0
- package/dist/core/validation/task-markers.d.ts.map +1 -0
- package/dist/core/validation/task-markers.js +71 -0
- package/dist/core/validation/task-markers.js.map +1 -0
- package/dist/core/validation/types.d.ts +58 -0
- package/dist/core/validation/types.d.ts.map +1 -1
- package/dist/core/validation/types.js +22 -0
- package/dist/core/validation/types.js.map +1 -1
- package/dist/core/validation/validator.d.ts +79 -2
- package/dist/core/validation/validator.d.ts.map +1 -1
- package/dist/core/validation/validator.js +565 -84
- package/dist/core/validation/validator.js.map +1 -1
- package/dist/utils/change-metadata.d.ts +62 -5
- package/dist/utils/change-metadata.d.ts.map +1 -1
- package/dist/utils/change-metadata.js +193 -31
- package/dist/utils/change-metadata.js.map +1 -1
- package/dist/utils/change-utils.d.ts +21 -0
- package/dist/utils/change-utils.d.ts.map +1 -1
- package/dist/utils/change-utils.js +168 -53
- package/dist/utils/change-utils.js.map +1 -1
- package/dist/utils/command-line.d.ts +11 -0
- package/dist/utils/command-line.d.ts.map +1 -0
- package/dist/utils/command-line.js +43 -0
- package/dist/utils/command-line.js.map +1 -0
- package/dist/utils/display-width.d.ts +10 -0
- package/dist/utils/display-width.d.ts.map +1 -0
- package/dist/utils/display-width.js +15 -0
- package/dist/utils/display-width.js.map +1 -0
- package/dist/utils/file-system.d.ts +16 -0
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +49 -2
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +11 -5
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/interactive.d.ts.map +1 -1
- package/dist/utils/interactive.js +3 -1
- package/dist/utils/interactive.js.map +1 -1
- package/dist/utils/item-discovery.d.ts +3 -2
- package/dist/utils/item-discovery.d.ts.map +1 -1
- package/dist/utils/item-discovery.js +34 -16
- package/dist/utils/item-discovery.js.map +1 -1
- package/dist/utils/link.d.ts +0 -1
- package/dist/utils/link.d.ts.map +1 -1
- package/dist/utils/link.js +0 -1
- package/dist/utils/link.js.map +1 -1
- package/dist/utils/match.d.ts.map +1 -1
- package/dist/utils/match.js +10 -1
- package/dist/utils/match.js.map +1 -1
- package/dist/utils/option-flags.d.ts +9 -0
- package/dist/utils/option-flags.d.ts.map +1 -0
- package/dist/utils/option-flags.js +12 -0
- package/dist/utils/option-flags.js.map +1 -0
- package/dist/utils/sentence.d.ts +9 -0
- package/dist/utils/sentence.d.ts.map +1 -0
- package/dist/utils/sentence.js +12 -0
- package/dist/utils/sentence.js.map +1 -0
- package/dist/utils/spec-files.d.ts +84 -1
- package/dist/utils/spec-files.d.ts.map +1 -1
- package/dist/utils/spec-files.js +192 -3
- package/dist/utils/spec-files.js.map +1 -1
- package/dist/utils/task-progress.d.ts.map +1 -1
- package/dist/utils/task-progress.js +32 -9
- package/dist/utils/task-progress.js.map +1 -1
- package/dist/utils/timestamp.d.ts +27 -0
- package/dist/utils/timestamp.d.ts.map +1 -1
- package/dist/utils/timestamp.js +37 -0
- package/dist/utils/timestamp.js.map +1 -1
- package/package.json +4 -1
- package/schemas/decision/templates/decision.md +2 -2
- package/schemas/issue/schema.yaml +12 -6
- package/schemas/issue/templates/task.md +1 -1
- package/schemas/sdd/schema.yaml +21 -10
- package/schemas/sdd/templates/proposal.md +1 -1
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/** Types, constants and validation helpers shared by the workflow commands. */
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { listActiveChangeDirs } from '../../utils/item-discovery.js';
|
|
5
|
+
import { assertSchemaName, getSchemaDir, listLoadableSchemas, resolveSchema, } from '../../core/artifact-graph/index.js';
|
|
6
|
+
import { isReservedChangeName, RESERVED_CHANGE_NAME_REASON, validateChangeName, } from '../../utils/change-utils.js';
|
|
7
|
+
import { assertChangeSchema, DEFAULT_SCHEMA, isChangeSchema } from '../../core/schema-names.js';
|
|
8
|
+
import { getChangeDir } from '../../core/planning-home.js';
|
|
9
|
+
import { unreadableChangeFix } from '../../utils/change-metadata.js';
|
|
10
|
+
import { asStatus } from '../shared-output.js';
|
|
7
11
|
// Defined in core/schema-names so this module and decision.ts share it without
|
|
8
12
|
// importing each other; re-exported because the workflow barrel publishes it.
|
|
9
13
|
export { DEFAULT_SCHEMA };
|
|
@@ -24,19 +28,13 @@ export function getStatusIndicator(status) {
|
|
|
24
28
|
return '[!]';
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* Change directory names under `tospec/changes/`, minus `archive` and dotdirs.
|
|
33
|
+
* Delegates so `status` / `validate` and `list` / `show` cannot disagree on
|
|
34
|
+
* which changes exist, or on what a file at `tospec/changes` means.
|
|
35
|
+
*/
|
|
28
36
|
export async function getAvailableChanges(projectRoot, changesDir = path.join(projectRoot, 'tospec', 'changes')) {
|
|
29
|
-
|
|
30
|
-
const entries = await fs.promises.readdir(changesDir, { withFileTypes: true });
|
|
31
|
-
return entries
|
|
32
|
-
.filter((e) => e.isDirectory() && e.name !== 'archive' && !e.name.startsWith('.'))
|
|
33
|
-
.map((e) => e.name);
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
if (error.code === 'ENOENT')
|
|
37
|
-
return [];
|
|
38
|
-
throw error;
|
|
39
|
-
}
|
|
37
|
+
return listActiveChangeDirs(changesDir, projectRoot);
|
|
40
38
|
}
|
|
41
39
|
/**
|
|
42
40
|
* Resolves a change name, listing what is available when it does not exist.
|
|
@@ -59,6 +57,9 @@ export async function validateChangeExists(changeName, projectRoot, changesDir =
|
|
|
59
57
|
if (!nameValidation.valid) {
|
|
60
58
|
throw new Error(`Invalid change name '${changeName}': ${nameValidation.error}`);
|
|
61
59
|
}
|
|
60
|
+
if (isReservedChangeName(changeName)) {
|
|
61
|
+
throw new Error(`Invalid change name '${changeName}': ${RESERVED_CHANGE_NAME_REASON}, and is not itself a change.`);
|
|
62
|
+
}
|
|
62
63
|
const changePath = path.join(changesDir, changeName);
|
|
63
64
|
const exists = fs.existsSync(changePath) && fs.statSync(changePath).isDirectory();
|
|
64
65
|
if (!exists) {
|
|
@@ -70,33 +71,68 @@ export async function validateChangeExists(changeName, projectRoot, changesDir =
|
|
|
70
71
|
}
|
|
71
72
|
return changeName;
|
|
72
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* The diagnostic for a change that exists but fails to load, so `status
|
|
76
|
+
* --change`, `status --all` and `instructions` name one target and one fix:
|
|
77
|
+
* each fell through to the CLI's bare `change_error`, which says what broke
|
|
78
|
+
* and not which file to edit. `reason` is the load error alone, for the
|
|
79
|
+
* degraded row `status --all` prints, which already names the change.
|
|
80
|
+
*/
|
|
81
|
+
export function changeUnreadable(changeName, error, where) {
|
|
82
|
+
const reason = asStatus(error, 'change_error').message;
|
|
83
|
+
const changeDir = getChangeDir(where.planningHome, changeName);
|
|
84
|
+
return {
|
|
85
|
+
reason,
|
|
86
|
+
diagnostic: {
|
|
87
|
+
severity: 'error',
|
|
88
|
+
code: 'change_unreadable',
|
|
89
|
+
message: `Change '${changeName}' could not be read: ${reason}`,
|
|
90
|
+
target: changeDir,
|
|
91
|
+
fix: unreadableChangeFix(changeName, changeDir, where.projectRoot, where.schema),
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/** Carries the `change_unreadable` diagnostic to the CLI wrapper, whose `asStatus` adopts it. */
|
|
96
|
+
export class ChangeUnreadableError extends Error {
|
|
97
|
+
diagnostic;
|
|
98
|
+
constructor(diagnostic) {
|
|
99
|
+
super(diagnostic.message);
|
|
100
|
+
this.diagnostic = diagnostic;
|
|
101
|
+
this.name = 'ChangeUnreadableError';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
73
104
|
/**
|
|
74
105
|
* Validates that a schema is usable, not merely present on disk. A directory
|
|
75
106
|
* check alone lets `new change --schema <name>` succeed against a schema.yaml
|
|
76
107
|
* that does not parse, leaving a change nothing can read.
|
|
77
108
|
*/
|
|
78
109
|
export function validateSchemaExists(schemaName, projectRoot) {
|
|
110
|
+
return requireLoadableSchema(schemaName, projectRoot, () => true);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* `validateSchemaExists` plus `assertChangeSchema`, for commands that operate
|
|
114
|
+
* on a change. Separate from `validateSchemaExists` because `templates` lists
|
|
115
|
+
* the decision schema's templates, so its "Available" list has to keep it.
|
|
116
|
+
*/
|
|
117
|
+
export function validateChangeSchema(schemaName, projectRoot) {
|
|
118
|
+
requireLoadableSchema(schemaName, projectRoot, isChangeSchema);
|
|
119
|
+
assertChangeSchema(schemaName);
|
|
120
|
+
return schemaName;
|
|
121
|
+
}
|
|
122
|
+
function requireLoadableSchema(schemaName, projectRoot, offered) {
|
|
123
|
+
// Before the lookup, which reads a path as "not found" and would then offer
|
|
124
|
+
// the list as though the name were merely misspelled.
|
|
125
|
+
assertSchemaName(schemaName);
|
|
79
126
|
const schemaDir = getSchemaDir(schemaName, projectRoot);
|
|
80
127
|
if (!schemaDir) {
|
|
81
128
|
// Loadable, not merely present, so the list is advice that works.
|
|
82
|
-
const availableSchemas = listLoadableSchemas(projectRoot);
|
|
129
|
+
const availableSchemas = listLoadableSchemas(projectRoot).filter(offered);
|
|
83
130
|
throw new Error(`Schema '${schemaName}' not found. Available schemas:\n ${availableSchemas.join('\n ')}`);
|
|
84
131
|
}
|
|
85
132
|
resolveSchema(schemaName, projectRoot);
|
|
86
133
|
return schemaName;
|
|
87
134
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
* directory `decision list` never sees and a `decision.md` archive never merges.
|
|
92
|
-
*
|
|
93
|
-
* `templates --schema decision` does not call this — listing that schema's
|
|
94
|
-
* templates is what `decision new` itself needs.
|
|
95
|
-
*/
|
|
96
|
-
export function assertChangeSchema(schemaName) {
|
|
97
|
-
if (schemaName === DECISION_SCHEMA_NAME) {
|
|
98
|
-
throw new Error(`Schema '${DECISION_SCHEMA_NAME}' records an architecture decision, not a change. ` +
|
|
99
|
-
'Use: tospec decision new <topic>');
|
|
100
|
-
}
|
|
101
|
-
}
|
|
135
|
+
// Defined in core/schema-names so createChange can apply it without importing
|
|
136
|
+
// the command layer; re-exported for the workflow commands that reach it here.
|
|
137
|
+
export { assertChangeSchema };
|
|
102
138
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/workflow/shared.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/workflow/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,12 @@ export declare const BATCH_STATUS_FAILURE_PAYLOAD: Record<string, unknown>;
|
|
|
17
17
|
* `instructions` and `show`, so it nulls a key its success output really carries
|
|
18
18
|
* (`changeName`) — otherwise a caller cannot tell this envelope from an
|
|
19
19
|
* unrelated error document.
|
|
20
|
-
* decisions/20260917_155623-flat-json-payloads-null-a-real-success-key.md
|
|
21
20
|
*/
|
|
22
21
|
export declare const STATUS_FAILURE_PAYLOAD: Record<string, unknown>;
|
|
23
22
|
export declare function statusCommand(options: StatusOptions): Promise<void>;
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* `printedSchemaWarnings` is shared across a batch so a schema's warning prints
|
|
25
|
+
* once for all changes on that schema, not once per change.
|
|
26
|
+
*/
|
|
27
|
+
export declare function printStatusText(status: ChangeStatus, printedSchemaWarnings?: Set<string>): void;
|
|
25
28
|
//# sourceMappingURL=status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/workflow/status.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAQjF,OAAO,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/workflow/status.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAQjF,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,oCAAoC,CAAC;AAa5C,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AASD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAiC,CAAC;AAEnG;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAoC,CAAC;AAEhG,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CA2D/F"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/** `tospec status` — artifact completion for one change, or for every change. */
|
|
2
2
|
import { getChangeDir } from '../../core/planning-home.js';
|
|
3
3
|
import { resolveRootForCommand, toPlanningHome, toRootOutput, } from '../../core/root-selection.js';
|
|
4
|
-
import { loadChangeContext, formatChangeStatus, } from '../../core/artifact-graph/index.js';
|
|
5
|
-
import { validateChangeExists,
|
|
6
|
-
import { emitSuccess,
|
|
4
|
+
import { loadChangeContext, formatChangeStatus, SCHEMA_WARNING_CODES, } from '../../core/artifact-graph/index.js';
|
|
5
|
+
import { validateChangeExists, validateChangeSchema, getAvailableChanges, getStatusIndicator, changeUnreadable, ChangeUnreadableError, } from './shared.js';
|
|
6
|
+
import { emitSuccess, formatLabeled, indentContinuation } from '../shared-output.js';
|
|
7
7
|
import { findTicketPath } from '../../utils/item-discovery.js';
|
|
8
8
|
import { printProjectConfigDiagnostics } from '../../core/project-config.js';
|
|
9
9
|
/**
|
|
@@ -17,7 +17,6 @@ export const BATCH_STATUS_FAILURE_PAYLOAD = { changes: null, root: null };
|
|
|
17
17
|
* `instructions` and `show`, so it nulls a key its success output really carries
|
|
18
18
|
* (`changeName`) — otherwise a caller cannot tell this envelope from an
|
|
19
19
|
* unrelated error document.
|
|
20
|
-
* decisions/20260917_155623-flat-json-payloads-null-a-real-success-key.md
|
|
21
20
|
*/
|
|
22
21
|
export const STATUS_FAILURE_PAYLOAD = { changeName: null, root: null };
|
|
23
22
|
export async function statusCommand(options) {
|
|
@@ -49,18 +48,20 @@ export async function statusCommand(options) {
|
|
|
49
48
|
// The ticket lives outside the change dir under a CLI-generated timestamp, so
|
|
50
49
|
// it appears in no artifact path; without this an agent has to glob
|
|
51
50
|
// `tospec/tickets/` and match frontmatter by hand.
|
|
52
|
-
const
|
|
53
|
-
...
|
|
54
|
-
ticketPath: (await findTicketPath(projectRoot, changeName)) ?? null,
|
|
51
|
+
const withTicket = async (status) => ({
|
|
52
|
+
...status,
|
|
53
|
+
ticketPath: (await findTicketPath(projectRoot, status.changeName)) ?? null,
|
|
55
54
|
});
|
|
55
|
+
// Shared with `instructions`, so `--change`, `--all` and every other reader
|
|
56
|
+
// of one broken change report it alike.
|
|
57
|
+
const unreadable = (changeName, error) => changeUnreadable(changeName, error, { planningHome, projectRoot, schema: options.schema });
|
|
56
58
|
// `--schema` is judged on its own, before anything about changes is read: a
|
|
57
59
|
// wrong name is wrong whatever else was passed, and checking it later sends
|
|
58
60
|
// the caller to create a change first. `decision` is refused too, since it
|
|
59
61
|
// would plan an artifact at `tospec/changes/<change>/decision.md` — the orphan
|
|
60
62
|
// `instructions` and `new change` already refuse.
|
|
61
63
|
if (options.schema) {
|
|
62
|
-
|
|
63
|
-
assertChangeSchema(options.schema);
|
|
64
|
+
validateChangeSchema(options.schema, projectRoot);
|
|
64
65
|
}
|
|
65
66
|
// A change's schema falls back to the project config, so a config that no
|
|
66
67
|
// longer parses changes what this command reports — say so, once.
|
|
@@ -83,21 +84,18 @@ export async function statusCommand(options) {
|
|
|
83
84
|
// Top-level copies of the per-entry failures, for the `status` array the
|
|
84
85
|
// partial envelope carries: `list --json` and `validate --all --json`
|
|
85
86
|
// report an unreadable change there too, so a caller reads one place.
|
|
86
|
-
|
|
87
|
+
// The entry carries the same diagnostic: it held the bare `change_error`,
|
|
88
|
+
// so one command reported one failure under two codes. Keyed by change
|
|
89
|
+
// so the human row can print the load error alone.
|
|
90
|
+
const failures = new Map();
|
|
87
91
|
for (const changeName of available.sort((a, b) => a.localeCompare(b))) {
|
|
88
92
|
try {
|
|
89
|
-
entries.push(await
|
|
93
|
+
entries.push(await withTicket(loadStatus(changeName)));
|
|
90
94
|
}
|
|
91
95
|
catch (error) {
|
|
92
|
-
const
|
|
93
|
-
entries.push({ changeName, status: [diagnostic] });
|
|
94
|
-
|
|
95
|
-
...diagnostic,
|
|
96
|
-
code: 'change_unreadable',
|
|
97
|
-
message: `Change '${changeName}' could not be read: ${diagnostic.message}`,
|
|
98
|
-
target: getChangeDir(planningHome, changeName),
|
|
99
|
-
fix: `Fix ${changeName}'s .tospec.yaml, or move the directory out of tospec/changes/.`,
|
|
100
|
-
});
|
|
96
|
+
const failure = unreadable(changeName, error);
|
|
97
|
+
entries.push({ changeName, status: [failure.diagnostic] });
|
|
98
|
+
failures.set(changeName, failure);
|
|
101
99
|
}
|
|
102
100
|
}
|
|
103
101
|
// `artifacts` is what a loaded status has and a diagnostic entry does not.
|
|
@@ -105,17 +103,31 @@ export async function statusCommand(options) {
|
|
|
105
103
|
if (options.json) {
|
|
106
104
|
// The full envelope is emitted even on partial failure: dropping the
|
|
107
105
|
// report to report the failure would lose every change that did load.
|
|
108
|
-
emitSuccess({
|
|
106
|
+
emitSuccess({
|
|
107
|
+
changes: entries,
|
|
108
|
+
...(failures.size ? { status: [...failures.values()].map((failure) => failure.diagnostic) } : {}),
|
|
109
|
+
}, rootOutput);
|
|
109
110
|
}
|
|
110
111
|
else {
|
|
112
|
+
// Human text only: each JSON entry must stay equal to what `status
|
|
113
|
+
// --change` reports for that change, so the repeat stays there.
|
|
114
|
+
const printedSchemaWarnings = new Set();
|
|
111
115
|
entries.forEach((entry, index) => {
|
|
112
116
|
if (index > 0)
|
|
113
117
|
console.log();
|
|
114
118
|
if ('artifacts' in entry) {
|
|
115
|
-
printStatusText(entry);
|
|
119
|
+
printStatusText(entry, printedSchemaWarnings);
|
|
116
120
|
}
|
|
117
121
|
else {
|
|
118
|
-
|
|
122
|
+
// Said twice, as `list` does: a pipe keeps only stdout, so the
|
|
123
|
+
// degraded row names the change there while stderr carries the fix.
|
|
124
|
+
// A multi-line message (a schema.yaml code frame) is indented under
|
|
125
|
+
// the row: at column 0 its later lines read as the next row.
|
|
126
|
+
const { diagnostic, reason } = failures.get(entry.changeName);
|
|
127
|
+
console.log(`Change: ${entry.changeName} (unreadable: ${indentContinuation(reason.trimEnd(), ' ')})`);
|
|
128
|
+
console.error(formatLabeled('Error', diagnostic.message));
|
|
129
|
+
if (diagnostic.fix)
|
|
130
|
+
console.error(formatLabeled('Fix', diagnostic.fix));
|
|
119
131
|
}
|
|
120
132
|
});
|
|
121
133
|
}
|
|
@@ -131,15 +143,27 @@ export async function statusCommand(options) {
|
|
|
131
143
|
throw new Error(`Missing required option --change (or --all for every active change). Available changes:\n ${available.join('\n ')}`);
|
|
132
144
|
}
|
|
133
145
|
const changeName = await validateChangeExists(options.change, projectRoot, root.changesDir, { newChangeHint });
|
|
134
|
-
// The schema comes from the change's metadata when not given.
|
|
146
|
+
// The schema comes from the change's metadata when not given. Only the load
|
|
147
|
+
// is wrapped: a ticket lookup failure (a file at `tospec/tickets`) keeps its
|
|
148
|
+
// own code, since the change itself read fine.
|
|
149
|
+
let status;
|
|
150
|
+
try {
|
|
151
|
+
status = loadStatus(changeName);
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
throw new ChangeUnreadableError(unreadable(changeName, error).diagnostic);
|
|
155
|
+
}
|
|
135
156
|
if (options.json) {
|
|
136
|
-
emitSuccess({ ...(await
|
|
157
|
+
emitSuccess({ ...(await withTicket(status)) }, rootOutput);
|
|
137
158
|
return;
|
|
138
159
|
}
|
|
139
|
-
const status = loadStatus(changeName);
|
|
140
160
|
printStatusText(status);
|
|
141
161
|
}
|
|
142
|
-
|
|
162
|
+
/**
|
|
163
|
+
* `printedSchemaWarnings` is shared across a batch so a schema's warning prints
|
|
164
|
+
* once for all changes on that schema, not once per change.
|
|
165
|
+
*/
|
|
166
|
+
export function printStatusText(status, printedSchemaWarnings) {
|
|
143
167
|
// Counted against the same definition `graph.isComplete` uses: an optional
|
|
144
168
|
// artifact nobody wrote and one the change declared away are not outstanding
|
|
145
169
|
// work, so counting them prints "Progress: 1/2" above "All artifacts
|
|
@@ -175,7 +199,17 @@ export function printStatusText(status) {
|
|
|
175
199
|
console.log(line);
|
|
176
200
|
}
|
|
177
201
|
for (const diagnostic of status.status ?? []) {
|
|
178
|
-
|
|
202
|
+
if (printedSchemaWarnings && SCHEMA_WARNING_CODES.has(diagnostic.code)) {
|
|
203
|
+
const key = `${status.schemaName}\0${diagnostic.code}\0${diagnostic.message}`;
|
|
204
|
+
if (printedSchemaWarnings.has(key))
|
|
205
|
+
continue;
|
|
206
|
+
printedSchemaWarnings.add(key);
|
|
207
|
+
}
|
|
208
|
+
// The lines every other command prints for these codes, fix included: a
|
|
209
|
+
// `schema_tracks_unmatched` read here and in `schemas` must say the same.
|
|
210
|
+
console.error(`Warning: ${diagnostic.message}`);
|
|
211
|
+
if (diagnostic.fix)
|
|
212
|
+
console.error(`Fix: ${diagnostic.fix}`);
|
|
179
213
|
}
|
|
180
214
|
if (status.isComplete) {
|
|
181
215
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/workflow/status.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,GACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/workflow/status.ts"],"names":[],"mappings":"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"}
|
package/dist/core/archive.d.ts
CHANGED
|
@@ -36,6 +36,22 @@ export declare class MoveSourceNotRemovedError extends Error {
|
|
|
36
36
|
* back to copy-then-remove. Exported for migrate's two-phase promotion.
|
|
37
37
|
*/
|
|
38
38
|
export declare function moveDirectory(src: string, dest: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Points a ticket's `ref:` line at the archived change, keeping the referenced
|
|
41
|
+
* filename. Returns the text unchanged when no line matches.
|
|
42
|
+
*
|
|
43
|
+
* Line endings survive untouched because the pattern excludes line terminators
|
|
44
|
+
* (`[^/\r\n]+`, no `s` flag), so `replace` only rewrites within a line. Do not
|
|
45
|
+
* "simplify" this by splitting and rejoining the file.
|
|
46
|
+
*
|
|
47
|
+
* `$2` runs straight to `$`: a `[ \t]*` between them split a blank run with
|
|
48
|
+
* `[^/\r\n]+` every way, and a filename holding 80k blanks took 13 s. That
|
|
49
|
+
* `[ \t]*` never matched anything, since the greedy capture reached `$` first,
|
|
50
|
+
* so trailing blanks stay in `$2` as before. `(?![ \t])` keeps `.*` from
|
|
51
|
+
* re-splitting the blanks after `ref:` (2 s on a line with no `/`): a shorter
|
|
52
|
+
* `$1` only hands `.*` blanks, never another `/`, so it could not match anyway.
|
|
53
|
+
*/
|
|
54
|
+
export declare function retargetRefLine(content: string, archiveName: string): string;
|
|
39
55
|
/** Like moveDirectory but for a single file (copyFile fallback on Windows EPERM/EXDEV). */
|
|
40
56
|
export declare function moveFile(src: string, dest: string): Promise<void>;
|
|
41
57
|
export declare class ArchiveCommand {
|
|
@@ -57,11 +73,33 @@ export declare class ArchiveCommand {
|
|
|
57
73
|
* validation's to report.
|
|
58
74
|
*/
|
|
59
75
|
private findMissingRequiredArtifacts;
|
|
76
|
+
/**
|
|
77
|
+
* Same rule as `findMissingRequiredArtifacts`: a schema that does not resolve
|
|
78
|
+
* yields nothing, because reporting it is validation's job, not this one's.
|
|
79
|
+
*/
|
|
80
|
+
private findChangeSchemaWarnings;
|
|
60
81
|
/**
|
|
61
82
|
* Shared archive flow. Human mode prompts and returns null on cancellation;
|
|
62
83
|
* JSON mode keeps stdout clean and throws from every blocked path.
|
|
63
84
|
*/
|
|
64
85
|
private run;
|
|
86
|
+
/**
|
|
87
|
+
* One warning per MODIFIED / REMOVED / RENAMED in another in-progress change
|
|
88
|
+
* on a requirement this change's merge just wrote. That delta restates the
|
|
89
|
+
* text from before this archive, often copied from this change's own delta,
|
|
90
|
+
* and sync may have rewritten the requirement since; archived as is, it
|
|
91
|
+
* replaces the block and the edit is lost with nothing reporting it.
|
|
92
|
+
*
|
|
93
|
+
* Best effort, like the sister read it builds on: an unreadable delta is
|
|
94
|
+
* skipped, as the archive it warns about has already succeeded.
|
|
95
|
+
*/
|
|
96
|
+
private findStaleSisterRewrites;
|
|
97
|
+
/**
|
|
98
|
+
* Moves the change's ticket out of the active index. The ticket lives in the
|
|
99
|
+
* global tospec/tickets/ index, outside the change dir, so it moves alongside
|
|
100
|
+
* to keep the active index to in-flight changes.
|
|
101
|
+
*/
|
|
102
|
+
private archiveTicket;
|
|
65
103
|
private selectChange;
|
|
66
104
|
}
|
|
67
105
|
//# sourceMappingURL=archive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAkBxD,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,wBAAkB,CAAC;AAKlD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAoBjF;AASD,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA8DD;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAEhD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAF9B,YACW,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EAC5B,KAAK,EAAE,OAAO,EAQf;CACF;AAgED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC5E;AAgCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAK5E;AAiBD,2FAA2F;AAC3F,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYvE;AASD,qBAAa,cAAc;IACnB,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC9E;IAED,OAAO,CAAC,gBAAgB;IAiBxB;;;;OAIG;YACW,IAAI;IA2ClB;;;;;;;;OAQG;IACH,OAAO,CAAC,4BAA4B;IAqBpC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAShC;;;OAGG;YACW,GAAG;IAgtBjB;;;;;;;;;OASG;YACW,uBAAuB;IA4CrC;;;;OAIG;YACW,aAAa;YA2Db,YAAY;CAoC3B"}
|