specweave 0.28.17 → 0.28.20
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/plugins/specweave-ado/lib/ado-board-resolver.d.ts +94 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +219 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +16 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +63 -3
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +12 -3
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js +37 -3
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +6 -11
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.js +6 -11
- package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts +21 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +445 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-status-sync.d.ts +10 -0
- package/dist/plugins/specweave-github/lib/github-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-status-sync.js +40 -2
- package/dist/plugins/specweave-github/lib/github-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts +94 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js +369 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +50 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +84 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +12 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +57 -5
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +5 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js +12 -4
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -1
- package/dist/src/cli/commands/import-external.d.ts.map +1 -1
- package/dist/src/cli/commands/import-external.js +12 -7
- package/dist/src/cli/commands/import-external.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +308 -36
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +115 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +590 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts +65 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js +278 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.d.ts +64 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js +251 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js.map +1 -0
- package/dist/src/config/types.d.ts +6 -6
- package/dist/src/core/ac-test-validator-cli.js +4 -1
- package/dist/src/core/ac-test-validator-cli.js.map +1 -1
- package/dist/src/core/ac-test-validator.d.ts.map +1 -1
- package/dist/src/core/ac-test-validator.js +4 -1
- package/dist/src/core/ac-test-validator.js.map +1 -1
- package/dist/src/core/background/index.d.ts +11 -0
- package/dist/src/core/background/index.d.ts.map +1 -0
- package/dist/src/core/background/index.js +11 -0
- package/dist/src/core/background/index.js.map +1 -0
- package/dist/src/core/background/job-manager.d.ts +65 -0
- package/dist/src/core/background/job-manager.d.ts.map +1 -0
- package/dist/src/core/background/job-manager.js +192 -0
- package/dist/src/core/background/job-manager.js.map +1 -0
- package/dist/src/core/background/types.d.ts +59 -0
- package/dist/src/core/background/types.d.ts.map +1 -0
- package/dist/src/core/background/types.js +8 -0
- package/dist/src/core/background/types.js.map +1 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.d.ts +25 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.d.ts.map +1 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.js +614 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.js.map +1 -0
- package/dist/src/core/repo-structure/repo-initializer.d.ts +40 -0
- package/dist/src/core/repo-structure/repo-initializer.d.ts.map +1 -0
- package/dist/src/core/repo-structure/repo-initializer.js +252 -0
- package/dist/src/core/repo-structure/repo-initializer.js.map +1 -0
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts +3 -37
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
- package/dist/src/core/repo-structure/repo-structure-manager.js +23 -803
- package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
- package/dist/src/core/types/increment-metadata.d.ts +75 -0
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
- package/dist/src/core/types/spec-metadata.d.ts +2 -0
- package/dist/src/core/types/spec-metadata.d.ts.map +1 -1
- package/dist/src/core/types/sync-profile.d.ts +137 -5
- package/dist/src/core/types/sync-profile.d.ts.map +1 -1
- package/dist/src/core/types/sync-profile.js +63 -0
- package/dist/src/core/types/sync-profile.js.map +1 -1
- package/dist/src/importers/external-importer.d.ts +25 -0
- package/dist/src/importers/external-importer.d.ts.map +1 -1
- package/dist/src/importers/github-importer.d.ts.map +1 -1
- package/dist/src/importers/github-importer.js +5 -3
- package/dist/src/importers/github-importer.js.map +1 -1
- package/dist/src/importers/import-coordinator.d.ts +20 -0
- package/dist/src/importers/import-coordinator.d.ts.map +1 -1
- package/dist/src/importers/import-coordinator.js.map +1 -1
- package/dist/src/importers/item-converter.d.ts +51 -0
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +39 -12
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/init/architecture/types.d.ts +2 -2
- package/dist/src/init/compliance/types.d.ts +1 -1
- package/dist/src/init/repo/types.d.ts +1 -1
- package/dist/src/living-docs/fs-id-allocator.d.ts +72 -3
- package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +142 -16
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/dist/src/locales/de/cli.json +14 -0
- package/dist/src/locales/es/cli.json +14 -0
- package/dist/src/locales/fr/cli.json +14 -0
- package/dist/src/locales/ja/cli.json +14 -0
- package/dist/src/locales/ko/cli.json +14 -0
- package/dist/src/locales/pt/cli.json +14 -0
- package/dist/src/locales/ru/cli.json +14 -0
- package/dist/src/locales/zh/cli.json +14 -0
- package/dist/src/utils/chalk-fallback.d.ts +38 -0
- package/dist/src/utils/chalk-fallback.d.ts.map +1 -0
- package/dist/src/utils/chalk-fallback.js +118 -0
- package/dist/src/utils/chalk-fallback.js.map +1 -0
- package/dist/src/utils/project-id-generator.d.ts +127 -0
- package/dist/src/utils/project-id-generator.d.ts.map +1 -0
- package/dist/src/utils/project-id-generator.js +228 -0
- package/dist/src/utils/project-id-generator.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/agents/pm/AGENT.md +202 -0
- package/plugins/specweave/commands/specweave-import-external.md +5 -3
- package/plugins/specweave/commands/specweave-jobs.md +160 -0
- package/plugins/specweave/commands/specweave-sync-docs.md +6 -2
- package/plugins/specweave/hooks/pre-task-completion.sh +35 -17
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.d.ts +16 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js +121 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js.map +1 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.d.ts +111 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.js +295 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.js.map +1 -0
- package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +75 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.d.ts +38 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.js +118 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.js.map +1 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.d.ts +179 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.js +319 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.js.map +1 -0
- package/plugins/specweave/skills/code-reviewer/SKILL.md +1 -1
- package/plugins/specweave/skills/docs-updater/SKILL.md +61 -0
- package/plugins/specweave/skills/increment-planner/SKILL.md +10 -335
- package/plugins/specweave/skills/increment-planner/templates/metadata.json +13 -0
- package/plugins/specweave/skills/increment-planner/templates/plan.md +50 -0
- package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +86 -0
- package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +50 -0
- package/plugins/specweave/skills/increment-planner/templates/tasks-multi-project.md +86 -0
- package/plugins/specweave/skills/increment-planner/templates/tasks-single-project.md +48 -0
- package/plugins/specweave-ado/commands/specweave-ado-import-areas.md +358 -0
- package/plugins/specweave-ado/lib/ado-spec-sync.js +59 -3
- package/plugins/specweave-ado/lib/ado-spec-sync.ts +72 -3
- package/plugins/specweave-ado/lib/ado-status-sync.js +35 -3
- package/plugins/specweave-ado/lib/ado-status-sync.ts +48 -4
- package/plugins/specweave-alternatives/skills/architecture-alternatives/SKILL.md +1 -0
- package/plugins/specweave-alternatives/skills/bmad-method/SKILL.md +1 -0
- package/plugins/specweave-core/skills/code-quality/SKILL.md +1 -0
- package/plugins/specweave-core/skills/design-patterns/SKILL.md +1 -0
- package/plugins/specweave-core/skills/software-architecture/SKILL.md +1 -0
- package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +14 -10
- package/plugins/specweave-github/commands/specweave-github-sync.md +57 -0
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +74 -0
- package/plugins/specweave-github/lib/github-feature-sync.ts +6 -11
- package/plugins/specweave-github/lib/github-increment-sync-cli.js +456 -0
- package/plugins/specweave-github/lib/github-increment-sync-cli.ts +588 -0
- package/plugins/specweave-github/lib/github-status-sync.js +37 -1
- package/plugins/specweave-github/lib/github-status-sync.ts +60 -4
- package/plugins/specweave-github/lib/increment-issue-builder.js +389 -0
- package/plugins/specweave-github/lib/increment-issue-builder.ts +502 -0
- package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +19 -24
- package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +15 -23
- package/plugins/specweave-jira/commands/specweave-jira-import-boards.md +331 -0
- package/plugins/specweave-jira/lib/jira-spec-sync.js +53 -5
- package/plugins/specweave-jira/lib/jira-spec-sync.ts +87 -7
- package/plugins/specweave-jira/lib/jira-status-sync.js +9 -3
- package/plugins/specweave-jira/lib/jira-status-sync.ts +15 -6
- package/plugins/specweave-ml/agents/data-scientist/AGENT.md +16 -20
- package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +18 -19
- package/plugins/specweave-ml/skills/{ml-pipeline-workflow → mlops-dag-builder}/SKILL.md +18 -14
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +111 -0
- package/plugins/specweave-ui/skills/browser-automation/SKILL.md +1 -1
- package/plugins/specweave-ui/skills/ui-testing/SKILL.md +10 -122
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts +0 -70
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +0 -1
- package/dist/plugins/specweave-github/lib/epic-content-builder.js +0 -258
- package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +0 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts +0 -83
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts.map +0 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.js +0 -466
- package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +0 -1
- package/plugins/specweave-github/lib/epic-content-builder.js +0 -265
- package/plugins/specweave-github/lib/epic-content-builder.ts +0 -376
- package/plugins/specweave-github/lib/github-epic-sync.js +0 -488
- package/plugins/specweave-github/lib/github-epic-sync.ts +0 -715
|
@@ -15,22 +15,53 @@ import * as fs from '../utils/fs-native.js';
|
|
|
15
15
|
import path from 'path';
|
|
16
16
|
import matter from 'gray-matter';
|
|
17
17
|
import { formatOrigin } from '../core/types/origin-metadata.js';
|
|
18
|
+
import { normalizeToProjectId } from '../utils/project-id-generator.js';
|
|
18
19
|
/**
|
|
19
20
|
* FS-ID Allocator
|
|
20
21
|
*
|
|
21
|
-
* Intelligently allocates Feature IDs with chronological placement
|
|
22
|
+
* Intelligently allocates Feature IDs with chronological placement.
|
|
23
|
+
*
|
|
24
|
+
* CRITICAL: In umbrella/multi-repo setups, enable globalCollisionDetection
|
|
25
|
+
* to prevent ID collisions like FS-001 in project-a and FS-001E in project-b.
|
|
22
26
|
*/
|
|
23
27
|
export class FSIdAllocator {
|
|
24
|
-
constructor(projectRoot, projectId) {
|
|
28
|
+
constructor(projectRoot, projectId, options) {
|
|
25
29
|
this.existingFeatures = new Map();
|
|
26
30
|
this.scanned = false;
|
|
27
31
|
this.projectRoot = projectRoot;
|
|
28
32
|
// projectId can be:
|
|
29
|
-
// - undefined: items go directly to specs/ (no project subfolder)
|
|
33
|
+
// - undefined: items go directly to specs/ (no project subfolder) - DEPRECATED for umbrella
|
|
34
|
+
// - 'parent': parent project items go to specs/parent/
|
|
30
35
|
// - string: items go to specs/{projectId}/
|
|
31
36
|
this.projectId = projectId;
|
|
32
37
|
this.specsPath = path.join(projectRoot, '.specweave/docs/internal/specs');
|
|
33
38
|
this.archivePath = path.join(projectRoot, '.specweave/docs/_archive/specs');
|
|
39
|
+
this.globalCollisionDetection = options?.globalCollisionDetection ?? false;
|
|
40
|
+
this.externalContainer = options?.externalContainer;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get base directory for features, handling both 1-level and 2-level structures
|
|
44
|
+
*
|
|
45
|
+
* Structure patterns:
|
|
46
|
+
* - 2-level (JIRA): specs/JIRA-{containerId}/{projectId}/
|
|
47
|
+
* - 2-level (ADO): specs/ADO-{containerId}/{projectId}/
|
|
48
|
+
* - 1-level (GitHub): specs/{projectId}/
|
|
49
|
+
* - Legacy: specs/ (no projectId)
|
|
50
|
+
*/
|
|
51
|
+
getBaseDirectory() {
|
|
52
|
+
if (this.externalContainer) {
|
|
53
|
+
// 2-level structure for JIRA/ADO
|
|
54
|
+
const containerType = this.externalContainer.type === 'jira-project' ? 'jira' : 'ado';
|
|
55
|
+
const containerDirName = `${containerType.toUpperCase()}-${normalizeToProjectId(this.externalContainer.containerId)}`;
|
|
56
|
+
const projectId = this.projectId || 'default';
|
|
57
|
+
return path.join(this.specsPath, containerDirName, projectId);
|
|
58
|
+
}
|
|
59
|
+
// 1-level structure for GitHub or single-project mode
|
|
60
|
+
if (this.projectId) {
|
|
61
|
+
return path.join(this.specsPath, this.projectId);
|
|
62
|
+
}
|
|
63
|
+
// Legacy: direct to specs/
|
|
64
|
+
return this.specsPath;
|
|
34
65
|
}
|
|
35
66
|
/**
|
|
36
67
|
* Scan existing FS-IDs (both active and archived)
|
|
@@ -40,23 +71,113 @@ export class FSIdAllocator {
|
|
|
40
71
|
* Structure:
|
|
41
72
|
* - With projectId: specs/{projectId}/FS-XXX/
|
|
42
73
|
* - Without projectId: specs/FS-XXX/
|
|
74
|
+
*
|
|
75
|
+
* When globalCollisionDetection is enabled (umbrella mode):
|
|
76
|
+
* - Scans ALL project folders under specs/
|
|
77
|
+
* - Prevents ID collisions like FS-001 in project-a and FS-001E in project-b
|
|
43
78
|
*/
|
|
44
79
|
async scanExistingIds() {
|
|
45
80
|
this.existingFeatures.clear();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
: this.specsPath;
|
|
50
|
-
if (await fs.pathExists(projectSpecsPath)) {
|
|
51
|
-
await this.scanDirectory(projectSpecsPath, 'active');
|
|
81
|
+
if (this.globalCollisionDetection) {
|
|
82
|
+
// GLOBAL MODE: Scan ALL projects under specs/ to prevent cross-project collisions
|
|
83
|
+
await this.scanAllProjects();
|
|
52
84
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
85
|
+
else {
|
|
86
|
+
// LEGACY MODE: Scan only the specified projectId folder
|
|
87
|
+
const projectSpecsPath = this.projectId
|
|
88
|
+
? path.join(this.specsPath, this.projectId)
|
|
89
|
+
: this.specsPath;
|
|
90
|
+
if (await fs.pathExists(projectSpecsPath)) {
|
|
91
|
+
await this.scanDirectory(projectSpecsPath, 'active');
|
|
92
|
+
}
|
|
93
|
+
// Scan archive: {specsPath}/_archive/FS-XXX/
|
|
94
|
+
const projectArchivePath = path.join(projectSpecsPath, '_archive');
|
|
95
|
+
if (await fs.pathExists(projectArchivePath)) {
|
|
96
|
+
await this.scanDirectory(projectArchivePath, 'archived');
|
|
97
|
+
}
|
|
57
98
|
}
|
|
58
99
|
this.scanned = true;
|
|
59
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Scan ALL projects under specs/ for global collision detection
|
|
103
|
+
*
|
|
104
|
+
* This scans both 1-level and 2-level structures:
|
|
105
|
+
* - specs/FS-XXX/ (root-level features, legacy)
|
|
106
|
+
* - specs/{project}/FS-XXX/ (1-level: all project folders)
|
|
107
|
+
* - specs/{project}/_archive/FS-XXX/ (1-level archived)
|
|
108
|
+
* - specs/JIRA-{container}/{project}/FS-XXX/ (2-level JIRA)
|
|
109
|
+
* - specs/ADO-{container}/{project}/FS-XXX/ (2-level ADO)
|
|
110
|
+
* - specs/JIRA-{container}/{project}/_archive/FS-XXX/ (2-level archived)
|
|
111
|
+
*/
|
|
112
|
+
async scanAllProjects() {
|
|
113
|
+
if (!await fs.pathExists(this.specsPath)) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const entries = await fs.readdir(this.specsPath, { withFileTypes: true });
|
|
117
|
+
for (const entry of entries) {
|
|
118
|
+
if (!entry.isDirectory())
|
|
119
|
+
continue;
|
|
120
|
+
const entryPath = path.join(this.specsPath, entry.name);
|
|
121
|
+
// Check if this is an FS-XXX folder (root-level feature)
|
|
122
|
+
if (/^FS-\d{3}E?$/.test(entry.name)) {
|
|
123
|
+
const metadata = await this.parseFeatureMetadata(entryPath, entry.name);
|
|
124
|
+
if (metadata) {
|
|
125
|
+
this.existingFeatures.set(entry.name, metadata);
|
|
126
|
+
}
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
// Skip _archive at root (handled per-project)
|
|
130
|
+
if (entry.name === '_archive')
|
|
131
|
+
continue;
|
|
132
|
+
// Check if this is a 2-level container folder (JIRA-* or ADO-*)
|
|
133
|
+
if (/^(JIRA|ADO)-/.test(entry.name)) {
|
|
134
|
+
// 2-level structure: scan project folders INSIDE the container
|
|
135
|
+
await this.scanContainerFolder(entryPath);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
// This is a 1-level project folder - scan it for FS-XXX folders
|
|
139
|
+
await this.scanDirectory(entryPath, 'active');
|
|
140
|
+
// Also scan project's archive
|
|
141
|
+
const projectArchivePath = path.join(entryPath, '_archive');
|
|
142
|
+
if (await fs.pathExists(projectArchivePath)) {
|
|
143
|
+
await this.scanDirectory(projectArchivePath, 'archived');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Also scan root-level _archive
|
|
147
|
+
const rootArchivePath = path.join(this.specsPath, '_archive');
|
|
148
|
+
if (await fs.pathExists(rootArchivePath)) {
|
|
149
|
+
await this.scanDirectory(rootArchivePath, 'archived');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Scan a 2-level container folder (JIRA-* or ADO-*)
|
|
154
|
+
*
|
|
155
|
+
* Container structure:
|
|
156
|
+
* - specs/JIRA-CORE/
|
|
157
|
+
* - fe/
|
|
158
|
+
* - FS-001/
|
|
159
|
+
* - _archive/
|
|
160
|
+
* - be/
|
|
161
|
+
* - FS-002/
|
|
162
|
+
*/
|
|
163
|
+
async scanContainerFolder(containerPath) {
|
|
164
|
+
const projectEntries = await fs.readdir(containerPath, { withFileTypes: true });
|
|
165
|
+
for (const projectEntry of projectEntries) {
|
|
166
|
+
if (!projectEntry.isDirectory())
|
|
167
|
+
continue;
|
|
168
|
+
// Skip _archive at container level (shouldn't exist, but just in case)
|
|
169
|
+
if (projectEntry.name === '_archive')
|
|
170
|
+
continue;
|
|
171
|
+
// This is a project folder inside the container
|
|
172
|
+
const projectPath = path.join(containerPath, projectEntry.name);
|
|
173
|
+
await this.scanDirectory(projectPath, 'active');
|
|
174
|
+
// Also scan project's archive
|
|
175
|
+
const projectArchivePath = path.join(projectPath, '_archive');
|
|
176
|
+
if (await fs.pathExists(projectArchivePath)) {
|
|
177
|
+
await this.scanDirectory(projectArchivePath, 'archived');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
60
181
|
/**
|
|
61
182
|
* Scan directory for FS-XXX folders
|
|
62
183
|
*/
|
|
@@ -279,7 +400,11 @@ export class FSIdAllocator {
|
|
|
279
400
|
/**
|
|
280
401
|
* Create feature folder with FEATURE.md and metadata
|
|
281
402
|
*
|
|
282
|
-
* Structure:
|
|
403
|
+
* Structure patterns:
|
|
404
|
+
* - 2-level (JIRA): specs/JIRA-{containerId}/{projectId}/FS-XXX/FEATURE.md
|
|
405
|
+
* - 2-level (ADO): specs/ADO-{containerId}/{projectId}/FS-XXX/FEATURE.md
|
|
406
|
+
* - 1-level (GitHub): specs/{projectId}/FS-XXX/FEATURE.md
|
|
407
|
+
* - Legacy: specs/FS-XXX/FEATURE.md (not recommended for umbrella)
|
|
283
408
|
*
|
|
284
409
|
* @param fsId - Feature ID (e.g., "FS-042E")
|
|
285
410
|
* @param workItem - External work item metadata
|
|
@@ -287,8 +412,9 @@ export class FSIdAllocator {
|
|
|
287
412
|
* @returns Path to created feature folder
|
|
288
413
|
*/
|
|
289
414
|
async createFeatureFolder(fsId, workItem, metadata) {
|
|
290
|
-
// Create folder path
|
|
291
|
-
const
|
|
415
|
+
// Create folder path using 2-level or 1-level structure based on externalContainer
|
|
416
|
+
const baseDir = this.getBaseDirectory();
|
|
417
|
+
const featurePath = path.join(baseDir, fsId);
|
|
292
418
|
await fs.ensureDir(featurePath);
|
|
293
419
|
// Generate README.md with frontmatter
|
|
294
420
|
const originBadge = formatOrigin(metadata);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-id-allocator.js","sourceRoot":"","sources":["../../../src/living-docs/fs-id-allocator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fs-id-allocator.js","sourceRoot":"","sources":["../../../src/living-docs/fs-id-allocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,20 @@
|
|
|
40
40
|
"overwriteDirectory": "Directory {{projectName}} already exists. Overwrite?",
|
|
41
41
|
"enablePlugins": "Enable suggested plugins now?"
|
|
42
42
|
},
|
|
43
|
+
"toolDetection": {
|
|
44
|
+
"header": "KI-Tool-Erkennung",
|
|
45
|
+
"detected": "Erkannt: {{tool}}",
|
|
46
|
+
"confirmPrompt": "{{tool}} für dieses Projekt verwenden?",
|
|
47
|
+
"ciAutoConfirm": "CI-Umgebung erkannt - automatische Bestätigung für {{tool}}",
|
|
48
|
+
"selectPrompt": "Welches KI-Tool werden Sie verwenden?",
|
|
49
|
+
"recommended": "Empfohlen - Vollautomatisierung",
|
|
50
|
+
"tools": {
|
|
51
|
+
"claude": "Claude Code",
|
|
52
|
+
"cursor": "Cursor",
|
|
53
|
+
"copilot": "GitHub Copilot",
|
|
54
|
+
"generic": "Andere (ChatGPT, Gemini, etc.)"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
43
57
|
"info": {
|
|
44
58
|
"nestedEnforcement": "SpecWeave enforces a single source of truth:",
|
|
45
59
|
"nestedBullet1": "• Use the parent folder for all increments",
|
|
@@ -12,6 +12,20 @@
|
|
|
12
12
|
"invalidName": "El nombre del proyecto debe contener solo letras minúsculas, números y guiones",
|
|
13
13
|
"alreadyExists": "El directorio .specweave ya existe",
|
|
14
14
|
"cancelled": "❌ Inicialización cancelada"
|
|
15
|
+
},
|
|
16
|
+
"toolDetection": {
|
|
17
|
+
"header": "Detección de herramienta de IA",
|
|
18
|
+
"detected": "Detectado: {{tool}}",
|
|
19
|
+
"confirmPrompt": "¿Usar {{tool}} para este proyecto?",
|
|
20
|
+
"ciAutoConfirm": "Entorno CI detectado - confirmando automáticamente {{tool}}",
|
|
21
|
+
"selectPrompt": "¿Qué herramienta de IA usarás?",
|
|
22
|
+
"recommended": "Recomendado - Automatización completa",
|
|
23
|
+
"tools": {
|
|
24
|
+
"claude": "Claude Code",
|
|
25
|
+
"cursor": "Cursor",
|
|
26
|
+
"copilot": "GitHub Copilot",
|
|
27
|
+
"generic": "Otro (ChatGPT, Gemini, etc.)"
|
|
28
|
+
}
|
|
15
29
|
}
|
|
16
30
|
},
|
|
17
31
|
"increment": {
|
|
@@ -40,6 +40,20 @@
|
|
|
40
40
|
"overwriteDirectory": "Directory {{projectName}} already exists. Overwrite?",
|
|
41
41
|
"enablePlugins": "Enable suggested plugins now?"
|
|
42
42
|
},
|
|
43
|
+
"toolDetection": {
|
|
44
|
+
"header": "Détection de l'outil IA",
|
|
45
|
+
"detected": "Détecté: {{tool}}",
|
|
46
|
+
"confirmPrompt": "Utiliser {{tool}} pour ce projet?",
|
|
47
|
+
"ciAutoConfirm": "Environnement CI détecté - confirmation automatique de {{tool}}",
|
|
48
|
+
"selectPrompt": "Quel outil IA allez-vous utiliser?",
|
|
49
|
+
"recommended": "Recommandé - Automatisation complète",
|
|
50
|
+
"tools": {
|
|
51
|
+
"claude": "Claude Code",
|
|
52
|
+
"cursor": "Cursor",
|
|
53
|
+
"copilot": "GitHub Copilot",
|
|
54
|
+
"generic": "Autre (ChatGPT, Gemini, etc.)"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
43
57
|
"info": {
|
|
44
58
|
"nestedEnforcement": "SpecWeave enforces a single source of truth:",
|
|
45
59
|
"nestedBullet1": "• Use the parent folder for all increments",
|
|
@@ -40,6 +40,20 @@
|
|
|
40
40
|
"overwriteDirectory": "Directory {{projectName}} already exists. Overwrite?",
|
|
41
41
|
"enablePlugins": "Enable suggested plugins now?"
|
|
42
42
|
},
|
|
43
|
+
"toolDetection": {
|
|
44
|
+
"header": "AIツール検出",
|
|
45
|
+
"detected": "検出: {{tool}}",
|
|
46
|
+
"confirmPrompt": "このプロジェクトで {{tool}} を使用しますか?",
|
|
47
|
+
"ciAutoConfirm": "CI環境を検出 - {{tool}} を自動確認",
|
|
48
|
+
"selectPrompt": "どのAIツールを使用しますか?",
|
|
49
|
+
"recommended": "推奨 - 完全自動化",
|
|
50
|
+
"tools": {
|
|
51
|
+
"claude": "Claude Code",
|
|
52
|
+
"cursor": "Cursor",
|
|
53
|
+
"copilot": "GitHub Copilot",
|
|
54
|
+
"generic": "その他 (ChatGPT, Gemini など)"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
43
57
|
"info": {
|
|
44
58
|
"nestedEnforcement": "SpecWeave enforces a single source of truth:",
|
|
45
59
|
"nestedBullet1": "• Use the parent folder for all increments",
|
|
@@ -40,6 +40,20 @@
|
|
|
40
40
|
"overwriteDirectory": "Directory {{projectName}} already exists. Overwrite?",
|
|
41
41
|
"enablePlugins": "Enable suggested plugins now?"
|
|
42
42
|
},
|
|
43
|
+
"toolDetection": {
|
|
44
|
+
"header": "AI 도구 감지",
|
|
45
|
+
"detected": "감지됨: {{tool}}",
|
|
46
|
+
"confirmPrompt": "이 프로젝트에 {{tool}}을(를) 사용하시겠습니까?",
|
|
47
|
+
"ciAutoConfirm": "CI 환경 감지 - {{tool}} 자동 확인",
|
|
48
|
+
"selectPrompt": "어떤 AI 도구를 사용하시겠습니까?",
|
|
49
|
+
"recommended": "추천 - 완전 자동화",
|
|
50
|
+
"tools": {
|
|
51
|
+
"claude": "Claude Code",
|
|
52
|
+
"cursor": "Cursor",
|
|
53
|
+
"copilot": "GitHub Copilot",
|
|
54
|
+
"generic": "기타 (ChatGPT, Gemini 등)"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
43
57
|
"info": {
|
|
44
58
|
"nestedEnforcement": "SpecWeave enforces a single source of truth:",
|
|
45
59
|
"nestedBullet1": "• Use the parent folder for all increments",
|
|
@@ -40,6 +40,20 @@
|
|
|
40
40
|
"overwriteDirectory": "Directory {{projectName}} already exists. Overwrite?",
|
|
41
41
|
"enablePlugins": "Enable suggested plugins now?"
|
|
42
42
|
},
|
|
43
|
+
"toolDetection": {
|
|
44
|
+
"header": "Detecção de ferramenta de IA",
|
|
45
|
+
"detected": "Detectado: {{tool}}",
|
|
46
|
+
"confirmPrompt": "Usar {{tool}} para este projeto?",
|
|
47
|
+
"ciAutoConfirm": "Ambiente CI detectado - confirmação automática de {{tool}}",
|
|
48
|
+
"selectPrompt": "Qual ferramenta de IA você vai usar?",
|
|
49
|
+
"recommended": "Recomendado - Automação completa",
|
|
50
|
+
"tools": {
|
|
51
|
+
"claude": "Claude Code",
|
|
52
|
+
"cursor": "Cursor",
|
|
53
|
+
"copilot": "GitHub Copilot",
|
|
54
|
+
"generic": "Outro (ChatGPT, Gemini, etc.)"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
43
57
|
"info": {
|
|
44
58
|
"nestedEnforcement": "SpecWeave enforces a single source of truth:",
|
|
45
59
|
"nestedBullet1": "• Use the parent folder for all increments",
|
|
@@ -61,6 +61,20 @@
|
|
|
61
61
|
"overwriteDirectory": "Директория {{projectName}} уже существует. Перезаписать?",
|
|
62
62
|
"enablePlugins": "Включить предложенные плагины сейчас?"
|
|
63
63
|
},
|
|
64
|
+
"toolDetection": {
|
|
65
|
+
"header": "Определение AI-инструмента",
|
|
66
|
+
"detected": "Обнаружен: {{tool}}",
|
|
67
|
+
"confirmPrompt": "Использовать {{tool}} для этого проекта?",
|
|
68
|
+
"ciAutoConfirm": "Обнаружена CI среда - автоматическое подтверждение {{tool}}",
|
|
69
|
+
"selectPrompt": "Какой AI-инструмент вы будете использовать?",
|
|
70
|
+
"recommended": "Рекомендуется - Полная автоматизация",
|
|
71
|
+
"tools": {
|
|
72
|
+
"claude": "Claude Code",
|
|
73
|
+
"cursor": "Cursor",
|
|
74
|
+
"copilot": "GitHub Copilot",
|
|
75
|
+
"generic": "Другой (ChatGPT, Gemini и т.д.)"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
64
78
|
"info": {
|
|
65
79
|
"nestedEnforcement": "SpecWeave требует единого источника истины:",
|
|
66
80
|
"nestedBullet1": "• Используйте родительскую папку для всех инкрементов",
|
|
@@ -40,6 +40,20 @@
|
|
|
40
40
|
"overwriteDirectory": "Directory {{projectName}} already exists. Overwrite?",
|
|
41
41
|
"enablePlugins": "Enable suggested plugins now?"
|
|
42
42
|
},
|
|
43
|
+
"toolDetection": {
|
|
44
|
+
"header": "AI工具检测",
|
|
45
|
+
"detected": "检测到: {{tool}}",
|
|
46
|
+
"confirmPrompt": "使用 {{tool}} 来开发此项目?",
|
|
47
|
+
"ciAutoConfirm": "检测到CI环境 - 自动确认 {{tool}}",
|
|
48
|
+
"selectPrompt": "您将使用哪个AI工具?",
|
|
49
|
+
"recommended": "推荐 - 全自动化",
|
|
50
|
+
"tools": {
|
|
51
|
+
"claude": "Claude Code",
|
|
52
|
+
"cursor": "Cursor",
|
|
53
|
+
"copilot": "GitHub Copilot",
|
|
54
|
+
"generic": "其他 (ChatGPT, Gemini 等)"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
43
57
|
"info": {
|
|
44
58
|
"nestedEnforcement": "SpecWeave enforces a single source of truth:",
|
|
45
59
|
"nestedBullet1": "• Use the parent folder for all increments",
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chalk Fallback Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides chalk-like API for colored console output with graceful fallback
|
|
5
|
+
* to plain text when chalk is not available (e.g., in marketplace plugins).
|
|
6
|
+
*
|
|
7
|
+
* This enables AC test validator to work in both:
|
|
8
|
+
* 1. Full npm-installed environments (uses real chalk)
|
|
9
|
+
* 2. Marketplace plugin environments (uses ANSI codes or plain text)
|
|
10
|
+
*/
|
|
11
|
+
type ChalkInput = string | number;
|
|
12
|
+
interface ChalkFn {
|
|
13
|
+
(text: ChalkInput): string;
|
|
14
|
+
bold: ChalkFn;
|
|
15
|
+
}
|
|
16
|
+
interface ChalkInstance {
|
|
17
|
+
red: ChalkFn;
|
|
18
|
+
green: ChalkFn;
|
|
19
|
+
yellow: ChalkFn;
|
|
20
|
+
blue: ChalkFn;
|
|
21
|
+
gray: ChalkFn;
|
|
22
|
+
bold: ChalkFn & {
|
|
23
|
+
(text: string): string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Chalk-compatible API using ANSI codes
|
|
28
|
+
* Falls back to plain text if terminal doesn't support colors
|
|
29
|
+
*/
|
|
30
|
+
export declare const chalkFallback: ChalkInstance;
|
|
31
|
+
export declare function getChalk(): Promise<ChalkInstance>;
|
|
32
|
+
/**
|
|
33
|
+
* Synchronous chalk getter - uses fallback if chalk wasn't pre-loaded
|
|
34
|
+
* Call getChalk() at module init to try loading real chalk first
|
|
35
|
+
*/
|
|
36
|
+
export declare function getChalkSync(): ChalkInstance;
|
|
37
|
+
export default chalkFallback;
|
|
38
|
+
//# sourceMappingURL=chalk-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chalk-fallback.d.ts","sourceRoot":"","sources":["../../../src/utils/chalk-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAoClC,UAAU,OAAO;IACf,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,GAAG;QACd,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,aAoB3B,CAAC;AAqBF,wBAAsB,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,CAavD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,aAAa,CAE5C;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chalk Fallback Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides chalk-like API for colored console output with graceful fallback
|
|
5
|
+
* to plain text when chalk is not available (e.g., in marketplace plugins).
|
|
6
|
+
*
|
|
7
|
+
* This enables AC test validator to work in both:
|
|
8
|
+
* 1. Full npm-installed environments (uses real chalk)
|
|
9
|
+
* 2. Marketplace plugin environments (uses ANSI codes or plain text)
|
|
10
|
+
*/
|
|
11
|
+
// Simple ANSI color codes for terminal output
|
|
12
|
+
const ANSI = {
|
|
13
|
+
reset: '\x1b[0m',
|
|
14
|
+
bold: '\x1b[1m',
|
|
15
|
+
red: '\x1b[31m',
|
|
16
|
+
green: '\x1b[32m',
|
|
17
|
+
yellow: '\x1b[33m',
|
|
18
|
+
blue: '\x1b[34m',
|
|
19
|
+
gray: '\x1b[90m',
|
|
20
|
+
};
|
|
21
|
+
// Check if we're in a TTY that supports colors
|
|
22
|
+
const supportsColor = process.stdout?.isTTY ?? false;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a chalk-like color function
|
|
25
|
+
*/
|
|
26
|
+
function createColorFn(colorCode) {
|
|
27
|
+
const fn = ((text) => {
|
|
28
|
+
const str = String(text);
|
|
29
|
+
if (!supportsColor)
|
|
30
|
+
return str;
|
|
31
|
+
return `${colorCode}${str}${ANSI.reset}`;
|
|
32
|
+
});
|
|
33
|
+
// Add chainable modifiers
|
|
34
|
+
fn.bold = ((text) => {
|
|
35
|
+
const str = String(text);
|
|
36
|
+
if (!supportsColor)
|
|
37
|
+
return str;
|
|
38
|
+
return `${ANSI.bold}${colorCode}${str}${ANSI.reset}`;
|
|
39
|
+
});
|
|
40
|
+
return fn;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Creates a bold color function
|
|
44
|
+
*/
|
|
45
|
+
function createBoldColorFn(colorCode) {
|
|
46
|
+
const fn = ((text) => {
|
|
47
|
+
const str = String(text);
|
|
48
|
+
if (!supportsColor)
|
|
49
|
+
return str;
|
|
50
|
+
return `${ANSI.bold}${colorCode}${str}${ANSI.reset}`;
|
|
51
|
+
});
|
|
52
|
+
fn.bold = fn;
|
|
53
|
+
return fn;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Chalk-compatible API using ANSI codes
|
|
57
|
+
* Falls back to plain text if terminal doesn't support colors
|
|
58
|
+
*/
|
|
59
|
+
export const chalkFallback = {
|
|
60
|
+
red: createColorFn(ANSI.red),
|
|
61
|
+
green: createColorFn(ANSI.green),
|
|
62
|
+
yellow: createColorFn(ANSI.yellow),
|
|
63
|
+
blue: createColorFn(ANSI.blue),
|
|
64
|
+
gray: createColorFn(ANSI.gray),
|
|
65
|
+
bold: Object.assign(((text) => {
|
|
66
|
+
const str = String(text);
|
|
67
|
+
if (!supportsColor)
|
|
68
|
+
return str;
|
|
69
|
+
return `${ANSI.bold}${str}${ANSI.reset}`;
|
|
70
|
+
}), {
|
|
71
|
+
bold: ((text) => {
|
|
72
|
+
const str = String(text);
|
|
73
|
+
if (!supportsColor)
|
|
74
|
+
return str;
|
|
75
|
+
return `${ANSI.bold}${str}${ANSI.reset}`;
|
|
76
|
+
}),
|
|
77
|
+
}),
|
|
78
|
+
};
|
|
79
|
+
// Add nested color methods to bold
|
|
80
|
+
chalkFallback.bold.red = createBoldColorFn(ANSI.red);
|
|
81
|
+
chalkFallback.bold.green = createBoldColorFn(ANSI.green);
|
|
82
|
+
chalkFallback.bold.yellow = createBoldColorFn(ANSI.yellow);
|
|
83
|
+
chalkFallback.bold.blue = createBoldColorFn(ANSI.blue);
|
|
84
|
+
chalkFallback.bold.gray = createBoldColorFn(ANSI.gray);
|
|
85
|
+
// Add bold method to color functions for chaining like chalk.green.bold()
|
|
86
|
+
chalkFallback.red.bold = createBoldColorFn(ANSI.red);
|
|
87
|
+
chalkFallback.green.bold = createBoldColorFn(ANSI.green);
|
|
88
|
+
chalkFallback.yellow.bold = createBoldColorFn(ANSI.yellow);
|
|
89
|
+
chalkFallback.blue.bold = createBoldColorFn(ANSI.blue);
|
|
90
|
+
chalkFallback.gray.bold = createBoldColorFn(ANSI.gray);
|
|
91
|
+
/**
|
|
92
|
+
* Try to import chalk, fall back to ANSI implementation
|
|
93
|
+
*/
|
|
94
|
+
let resolvedChalk = null;
|
|
95
|
+
export async function getChalk() {
|
|
96
|
+
if (resolvedChalk)
|
|
97
|
+
return resolvedChalk;
|
|
98
|
+
try {
|
|
99
|
+
// Try to dynamically import chalk
|
|
100
|
+
const chalkModule = await import('chalk');
|
|
101
|
+
resolvedChalk = chalkModule.default;
|
|
102
|
+
return resolvedChalk;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// Chalk not available, use fallback
|
|
106
|
+
resolvedChalk = chalkFallback;
|
|
107
|
+
return resolvedChalk;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Synchronous chalk getter - uses fallback if chalk wasn't pre-loaded
|
|
112
|
+
* Call getChalk() at module init to try loading real chalk first
|
|
113
|
+
*/
|
|
114
|
+
export function getChalkSync() {
|
|
115
|
+
return resolvedChalk ?? chalkFallback;
|
|
116
|
+
}
|
|
117
|
+
export default chalkFallback;
|
|
118
|
+
//# sourceMappingURL=chalk-fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chalk-fallback.js","sourceRoot":"","sources":["../../../src/utils/chalk-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,8CAA8C;AAC9C,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC;AAKrD;;GAEG;AACH,SAAS,aAAa,CAAC,SAAiB;IACtC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAgB,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa;YAAE,OAAO,GAAG,CAAC;QAC/B,OAAO,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC,CAAY,CAAC;IAEd,0BAA0B;IAC1B,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAgB,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa;YAAE,OAAO,GAAG,CAAC;QAC/B,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC,CAAY,CAAC;IAEd,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,IAAgB,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa;YAAE,OAAO,GAAG,CAAC;QAC/B,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC,CAAY,CAAC;IAEd,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;AACZ,CAAC;AAkBD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5B,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,CACjB,CAAC,CAAC,IAAgB,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa;YAAE,OAAO,GAAG,CAAC;QAC/B,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC,CAAY,EACb;QACE,IAAI,EAAE,CAAC,CAAC,IAAgB,EAAE,EAAE;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa;gBAAE,OAAO,GAAG,CAAC;YAC/B,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC,CAAY;KACd,CACF;CACF,CAAC;AAEF,mCAAmC;AAClC,aAAa,CAAC,IAAY,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,aAAa,CAAC,IAAY,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjE,aAAa,CAAC,IAAY,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnE,aAAa,CAAC,IAAY,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,aAAa,CAAC,IAAY,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhE,0EAA0E;AAC1E,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,aAAa,CAAC,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3D,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEvD;;GAEG;AACH,IAAI,aAAa,GAAyB,IAAI,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,aAAa,GAAG,WAAW,CAAC,OAAmC,CAAC;QAChE,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;QACpC,aAAa,GAAG,aAAa,CAAC;QAC9B,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,aAAa,IAAI,aAAa,CAAC;AACxC,CAAC;AAED,eAAe,aAAa,CAAC"}
|