specweave 0.24.6 → 0.24.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CLAUDE.md +64 -0
  2. package/README.md +34 -0
  3. package/dist/src/cli/commands/init.d.ts.map +1 -1
  4. package/dist/src/cli/commands/init.js +3 -1
  5. package/dist/src/cli/commands/init.js.map +1 -1
  6. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts +5 -2
  7. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -1
  8. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +90 -8
  9. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
  10. package/dist/src/cli/helpers/issue-tracker/github.d.ts +2 -1
  11. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -1
  12. package/dist/src/cli/helpers/issue-tracker/github.js +4 -3
  13. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
  14. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  15. package/dist/src/cli/helpers/issue-tracker/index.js +26 -9
  16. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  17. package/dist/src/cli/helpers/issue-tracker/types.d.ts +1 -0
  18. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
  19. package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
  20. package/dist/src/core/repo-structure/git-error-handler.d.ts +37 -0
  21. package/dist/src/core/repo-structure/git-error-handler.d.ts.map +1 -0
  22. package/dist/src/core/repo-structure/git-error-handler.js +214 -0
  23. package/dist/src/core/repo-structure/git-error-handler.js.map +1 -0
  24. package/dist/src/core/repo-structure/git-provider.d.ts +183 -0
  25. package/dist/src/core/repo-structure/git-provider.d.ts.map +1 -0
  26. package/dist/src/core/repo-structure/git-provider.js +57 -0
  27. package/dist/src/core/repo-structure/git-provider.js.map +1 -0
  28. package/dist/src/core/repo-structure/github-validator.d.ts +1 -0
  29. package/dist/src/core/repo-structure/github-validator.d.ts.map +1 -1
  30. package/dist/src/core/repo-structure/github-validator.js +35 -9
  31. package/dist/src/core/repo-structure/github-validator.js.map +1 -1
  32. package/dist/src/core/repo-structure/platform-registry.d.ts +114 -0
  33. package/dist/src/core/repo-structure/platform-registry.d.ts.map +1 -0
  34. package/dist/src/core/repo-structure/platform-registry.js +206 -0
  35. package/dist/src/core/repo-structure/platform-registry.js.map +1 -0
  36. package/dist/src/core/repo-structure/prompt-consolidator.d.ts +42 -0
  37. package/dist/src/core/repo-structure/prompt-consolidator.d.ts.map +1 -1
  38. package/dist/src/core/repo-structure/prompt-consolidator.js +102 -0
  39. package/dist/src/core/repo-structure/prompt-consolidator.js.map +1 -1
  40. package/dist/src/core/repo-structure/providers/azure-devops-provider.d.ts +64 -0
  41. package/dist/src/core/repo-structure/providers/azure-devops-provider.d.ts.map +1 -0
  42. package/dist/src/core/repo-structure/providers/azure-devops-provider.js +263 -0
  43. package/dist/src/core/repo-structure/providers/azure-devops-provider.js.map +1 -0
  44. package/dist/src/core/repo-structure/providers/bitbucket-provider.d.ts +55 -0
  45. package/dist/src/core/repo-structure/providers/bitbucket-provider.d.ts.map +1 -0
  46. package/dist/src/core/repo-structure/providers/bitbucket-provider.js +238 -0
  47. package/dist/src/core/repo-structure/providers/bitbucket-provider.js.map +1 -0
  48. package/dist/src/core/repo-structure/providers/github-provider.d.ts +53 -0
  49. package/dist/src/core/repo-structure/providers/github-provider.d.ts.map +1 -0
  50. package/dist/src/core/repo-structure/providers/github-provider.js +239 -0
  51. package/dist/src/core/repo-structure/providers/github-provider.js.map +1 -0
  52. package/dist/src/core/repo-structure/providers/gitlab-provider.d.ts +51 -0
  53. package/dist/src/core/repo-structure/providers/gitlab-provider.d.ts.map +1 -0
  54. package/dist/src/core/repo-structure/providers/gitlab-provider.js +251 -0
  55. package/dist/src/core/repo-structure/providers/gitlab-provider.js.map +1 -0
  56. package/dist/src/core/repo-structure/providers/index.d.ts +35 -0
  57. package/dist/src/core/repo-structure/providers/index.d.ts.map +1 -0
  58. package/dist/src/core/repo-structure/providers/index.js +68 -0
  59. package/dist/src/core/repo-structure/providers/index.js.map +1 -0
  60. package/dist/src/core/repo-structure/providers/local-provider.d.ts +61 -0
  61. package/dist/src/core/repo-structure/providers/local-provider.d.ts.map +1 -0
  62. package/dist/src/core/repo-structure/providers/local-provider.js +148 -0
  63. package/dist/src/core/repo-structure/providers/local-provider.js.map +1 -0
  64. package/dist/src/core/repo-structure/repo-structure-manager.d.ts +21 -4
  65. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  66. package/dist/src/core/repo-structure/repo-structure-manager.js +380 -113
  67. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  68. package/dist/src/core/repo-structure/url-generator.d.ts +80 -0
  69. package/dist/src/core/repo-structure/url-generator.d.ts.map +1 -0
  70. package/dist/src/core/repo-structure/url-generator.js +110 -0
  71. package/dist/src/core/repo-structure/url-generator.js.map +1 -0
  72. package/package.json +1 -1
  73. package/plugins/specweave/hooks/post-task-completion.sh +69 -175
  74. package/plugins/specweave/lib/hooks/consolidated-sync.js +183 -0
  75. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +64 -0
  76. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +96 -0
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Git Providers Index
3
+ *
4
+ * Exports all Git provider implementations and provides
5
+ * initialization functions.
6
+ *
7
+ * @module providers
8
+ */
9
+ export { GitHubProvider, createGitHubProvider } from './github-provider.js';
10
+ export { GitLabProvider, createGitLabProvider } from './gitlab-provider.js';
11
+ export { BitbucketProvider, createBitbucketProvider } from './bitbucket-provider.js';
12
+ export { AzureDevOpsProvider, createAzureDevOpsProvider } from './azure-devops-provider.js';
13
+ export { LocalGitProvider, createLocalGitProvider } from './local-provider.js';
14
+ import { getPlatformRegistry } from '../platform-registry.js';
15
+ import { createGitHubProvider } from './github-provider.js';
16
+ import { createGitLabProvider } from './gitlab-provider.js';
17
+ import { createBitbucketProvider } from './bitbucket-provider.js';
18
+ import { createAzureDevOpsProvider } from './azure-devops-provider.js';
19
+ import { createLocalGitProvider } from './local-provider.js';
20
+ /**
21
+ * Track whether providers have been initialized
22
+ * Prevents re-initialization in long-running sessions (Issue #2 fix)
23
+ */
24
+ let providersInitialized = false;
25
+ /**
26
+ * Initialize and register all Git providers
27
+ *
28
+ * Call this once during application initialization to make
29
+ * all providers available through the platform registry.
30
+ *
31
+ * Idempotent: Safe to call multiple times - only initializes once.
32
+ */
33
+ export function initializeProviders() {
34
+ // Idempotency guard: prevent re-initialization (Issue #2 fix)
35
+ if (providersInitialized) {
36
+ return;
37
+ }
38
+ const registry = getPlatformRegistry();
39
+ // Register GitHub provider (fully supported)
40
+ registry.registerProvider('github', createGitHubProvider());
41
+ // Register GitLab provider (fully supported)
42
+ registry.registerProvider('gitlab', createGitLabProvider());
43
+ // Register Bitbucket provider (fully supported)
44
+ registry.registerProvider('bitbucket', createBitbucketProvider());
45
+ // Register Azure DevOps provider (fully supported)
46
+ registry.registerProvider('azure-devops', createAzureDevOpsProvider());
47
+ // Register Local Git provider (fully supported)
48
+ registry.registerProvider('local', createLocalGitProvider());
49
+ providersInitialized = true;
50
+ }
51
+ /**
52
+ * Reset provider initialization state (for testing only)
53
+ * @internal
54
+ */
55
+ export function resetProviders() {
56
+ providersInitialized = false;
57
+ }
58
+ /**
59
+ * Get provider by platform type (convenience function)
60
+ *
61
+ * @param platform - Platform type
62
+ * @returns Provider instance or undefined
63
+ */
64
+ export function getProvider(platform) {
65
+ const registry = getPlatformRegistry();
66
+ return registry.getProvider(platform);
67
+ }
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/repo-structure/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;GAGG;AACH,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,8DAA8D;IAC9D,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAEvC,6CAA6C;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAE5D,6CAA6C;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAE5D,gDAAgD;IAChD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAElE,mDAAmD;IACnD,QAAQ,CAAC,gBAAgB,CAAC,cAAc,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAEvE,gDAAgD;IAChD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAE7D,oBAAoB,GAAG,IAAI,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,oBAAoB,GAAG,KAAK,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,QAAsE;IAChG,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,OAAO,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Local Git Provider Implementation
3
+ *
4
+ * Implements GitProvider interface for local-only Git repositories.
5
+ * Suitable for repositories without remote hosting (GitHub, GitLab, etc.).
6
+ *
7
+ * @module providers/local-provider
8
+ */
9
+ import { BaseGitProvider, type PlatformConfig, type RepoValidationResult, type OwnerValidationResult, type CreateRepoOptions } from '../git-provider.js';
10
+ import type { UrlType } from '../url-generator.js';
11
+ /**
12
+ * Local Git Provider
13
+ *
14
+ * Implements Git operations for local-only repositories.
15
+ * Does not require API tokens or remote hosting.
16
+ */
17
+ export declare class LocalGitProvider extends BaseGitProvider {
18
+ constructor(config?: Partial<PlatformConfig>);
19
+ /**
20
+ * Validate if a local repository exists
21
+ * owner represents the parent directory path
22
+ * repo represents the repository directory name
23
+ */
24
+ validateRepository(owner: string, repo: string, token?: string): Promise<RepoValidationResult>;
25
+ /**
26
+ * Validate if a local directory (owner) exists
27
+ */
28
+ validateOwner(owner: string, token?: string): Promise<OwnerValidationResult>;
29
+ /**
30
+ * Create a new local repository
31
+ * Note: This creates a bare directory, not a Git repository.
32
+ * Users should run `git init` separately.
33
+ */
34
+ createRepository(options: CreateRepoOptions, token: string): Promise<string>;
35
+ /**
36
+ * Local directories are never organizations
37
+ */
38
+ isOrganization(account: string, token?: string): Promise<boolean>;
39
+ /**
40
+ * Get token creation URL (not applicable for local Git)
41
+ */
42
+ getTokenUrl(): string;
43
+ /**
44
+ * Get required token scopes (none for local Git)
45
+ */
46
+ getRequiredScopes(isOrganization?: boolean): string[];
47
+ /**
48
+ * Generate Git remote URL for local repositories
49
+ * Local repos use file:// protocol
50
+ */
51
+ getRemoteUrl(owner: string, repo: string, urlType: UrlType): string;
52
+ /**
53
+ * Override getAuthHeaders (not needed for local Git)
54
+ */
55
+ protected getAuthHeaders(token: string): Record<string, string>;
56
+ }
57
+ /**
58
+ * Create a Local Git provider instance
59
+ */
60
+ export declare function createLocalGitProvider(config?: Partial<PlatformConfig>): LocalGitProvider;
61
+ //# sourceMappingURL=local-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-provider.d.ts","sourceRoot":"","sources":["../../../../../src/core/repo-structure/providers/local-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzJ,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;gBACvC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAW5C;;;;OAIG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,oBAAoB,CAAC;IAqChC;;OAEG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC;IAsBjC;;;;OAIG;IACG,gBAAgB,CACpB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAmBlB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,iBAAiB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE;IAIrD;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAKnE;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAEzF"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Local Git Provider Implementation
3
+ *
4
+ * Implements GitProvider interface for local-only Git repositories.
5
+ * Suitable for repositories without remote hosting (GitHub, GitLab, etc.).
6
+ *
7
+ * @module providers/local-provider
8
+ */
9
+ import { BaseGitProvider } from '../git-provider.js';
10
+ import { existsSync } from 'fs';
11
+ import { resolve, join } from 'path';
12
+ /**
13
+ * Local Git Provider
14
+ *
15
+ * Implements Git operations for local-only repositories.
16
+ * Does not require API tokens or remote hosting.
17
+ */
18
+ export class LocalGitProvider extends BaseGitProvider {
19
+ constructor(config) {
20
+ super({
21
+ type: 'custom',
22
+ name: 'Local Git',
23
+ host: 'localhost',
24
+ apiBaseUrl: '',
25
+ selfHosted: true,
26
+ customDomain: config?.customDomain
27
+ });
28
+ }
29
+ /**
30
+ * Validate if a local repository exists
31
+ * owner represents the parent directory path
32
+ * repo represents the repository directory name
33
+ */
34
+ async validateRepository(owner, repo, token) {
35
+ try {
36
+ // Resolve the full path
37
+ const repoPath = resolve(owner, repo);
38
+ const gitPath = join(repoPath, '.git');
39
+ // Check if directory exists
40
+ if (!existsSync(repoPath)) {
41
+ return { exists: false, valid: true };
42
+ }
43
+ // Check if it's a Git repository
44
+ const isGitRepo = existsSync(gitPath);
45
+ if (isGitRepo) {
46
+ return {
47
+ exists: true,
48
+ valid: true,
49
+ url: `file://${repoPath}`
50
+ };
51
+ }
52
+ else {
53
+ // Directory exists but is not a Git repository
54
+ return {
55
+ exists: false,
56
+ valid: true
57
+ };
58
+ }
59
+ }
60
+ catch (error) {
61
+ return {
62
+ exists: false,
63
+ valid: false,
64
+ error: `File system error: ${error instanceof Error ? error.message : String(error)}`
65
+ };
66
+ }
67
+ }
68
+ /**
69
+ * Validate if a local directory (owner) exists
70
+ */
71
+ async validateOwner(owner, token) {
72
+ try {
73
+ const ownerPath = resolve(owner);
74
+ if (!existsSync(ownerPath)) {
75
+ return {
76
+ valid: false,
77
+ error: `Directory does not exist: ${ownerPath}`
78
+ };
79
+ }
80
+ // Local directories are always treated as "user" type
81
+ return { valid: true, type: 'user' };
82
+ }
83
+ catch (error) {
84
+ return {
85
+ valid: false,
86
+ error: `File system error: ${error instanceof Error ? error.message : String(error)}`
87
+ };
88
+ }
89
+ }
90
+ /**
91
+ * Create a new local repository
92
+ * Note: This creates a bare directory, not a Git repository.
93
+ * Users should run `git init` separately.
94
+ */
95
+ async createRepository(options, token) {
96
+ const repoPath = resolve(options.owner, options.name);
97
+ // Check if directory already exists
98
+ if (existsSync(repoPath)) {
99
+ return `file://${repoPath}`;
100
+ }
101
+ // Note: We don't actually create the directory here
102
+ // The repository initialization should be done separately with git init
103
+ throw new Error(`Local repository creation requires manual setup:\n` +
104
+ ` mkdir -p "${repoPath}"\n` +
105
+ ` cd "${repoPath}"\n` +
106
+ ` git init\n\n` +
107
+ `SpecWeave does not automatically create local Git repositories.`);
108
+ }
109
+ /**
110
+ * Local directories are never organizations
111
+ */
112
+ async isOrganization(account, token) {
113
+ return false;
114
+ }
115
+ /**
116
+ * Get token creation URL (not applicable for local Git)
117
+ */
118
+ getTokenUrl() {
119
+ return '';
120
+ }
121
+ /**
122
+ * Get required token scopes (none for local Git)
123
+ */
124
+ getRequiredScopes(isOrganization) {
125
+ return [];
126
+ }
127
+ /**
128
+ * Generate Git remote URL for local repositories
129
+ * Local repos use file:// protocol
130
+ */
131
+ getRemoteUrl(owner, repo, urlType) {
132
+ const repoPath = resolve(owner, repo);
133
+ return `file://${repoPath}`;
134
+ }
135
+ /**
136
+ * Override getAuthHeaders (not needed for local Git)
137
+ */
138
+ getAuthHeaders(token) {
139
+ return {};
140
+ }
141
+ }
142
+ /**
143
+ * Create a Local Git provider instance
144
+ */
145
+ export function createLocalGitProvider(config) {
146
+ return new LocalGitProvider(config);
147
+ }
148
+ //# sourceMappingURL=local-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-provider.js","sourceRoot":"","sources":["../../../../../src/core/repo-structure/providers/local-provider.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,14 @@
14
14
  * - Organize specs per project/team
15
15
  * - Split tasks between repositories
16
16
  */
17
+ import { type ArchitectureChoice } from './prompt-consolidator.js';
18
+ import type { GitProvider, GitPlatformType } from './git-provider.js';
17
19
  export type RepoArchitecture = 'single' | 'multi-repo' | 'monorepo' | 'parent';
18
20
  export interface RepoStructureConfig {
19
21
  architecture: RepoArchitecture;
22
+ urlType: 'ssh' | 'https';
23
+ platform: GitPlatformType;
24
+ provider: GitProvider;
20
25
  parentRepo?: {
21
26
  name: string;
22
27
  owner: string;
@@ -43,12 +48,21 @@ export declare class RepoStructureManager {
43
48
  constructor(projectPath: string, githubToken?: string);
44
49
  /**
45
50
  * Prompt user for repository structure decisions
51
+ *
52
+ * @param preSelectedArchitecture - Optional pre-selected architecture to skip duplicate prompts
46
53
  */
47
- promptStructure(): Promise<RepoStructureConfig>;
54
+ promptStructure(preSelectedArchitecture?: ArchitectureChoice): Promise<RepoStructureConfig>;
48
55
  /**
49
56
  * Map ArchitectureChoice to internal RepoArchitecture (2 options)
50
57
  */
51
58
  private mapArchitectureChoice;
59
+ /**
60
+ * Format architecture choice for display
61
+ *
62
+ * @param choice - Architecture choice
63
+ * @returns Human-readable format
64
+ */
65
+ private formatArchitectureForDisplay;
52
66
  /**
53
67
  * Resume setup from saved state
54
68
  */
@@ -61,6 +75,9 @@ export declare class RepoStructureManager {
61
75
  * Configure multi-repository architecture
62
76
  * @param useParent - Whether to use parent repository/folder
63
77
  * @param isLocalParent - If true, parent folder is local only (NOT pushed to GitHub)
78
+ * @param urlType - Git remote URL format (ssh or https)
79
+ * @param platform - Git hosting platform type
80
+ * @param provider - Git provider instance for API operations
64
81
  *
65
82
  * NOTE: This is primarily user-facing output (console.log/console.error).
66
83
  * All console.* calls in this method are legitimate user-facing exceptions
@@ -76,9 +93,9 @@ export declare class RepoStructureManager {
76
93
  */
77
94
  private configureMonorepo;
78
95
  /**
79
- * Create repositories on GitHub via API
96
+ * Create repositories on Git hosting platform via API
80
97
  */
81
- createGitHubRepositories(config: RepoStructureConfig): Promise<void>;
98
+ createRepositories(config: RepoStructureConfig): Promise<void>;
82
99
  /**
83
100
  * Generate .env file with GitHub configuration
84
101
  */
@@ -101,7 +118,7 @@ export declare class RepoStructureManager {
101
118
  private repositoryExistsOnGitHub;
102
119
  /**
103
120
  * Clone or initialize a repository
104
- * If the repo exists on GitHub, clone it; otherwise, init + add remote
121
+ * If the repo exists on the platform, clone it; otherwise, init + add remote
105
122
  */
106
123
  private cloneOrInitRepository;
107
124
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"repo-structure-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-structure-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAyBH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAoB;gBAE5B,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAMrD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAsDrD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;YACW,WAAW;IAsBzB;;OAEG;YACW,mBAAmB;IAoIjC;;;;;;;;OAQG;YACW,kBAAkB;IAkiBhC;;OAEG;YACW,cAAc;IAQ5B;;OAEG;YACW,iBAAiB;IAgF/B;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiF1E;;OAEG;YACW,eAAe;IA8C7B;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;YACW,wBAAwB;IAmBtC;;;OAGG;YACW,qBAAqB;IAiEnC;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoEtE;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;;;;OAKG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwC3E"}
1
+ {"version":3,"file":"repo-structure-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-structure-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGtE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAoB;gBAE5B,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IASrD;;;;OAIG;IACG,eAAe,CAAC,uBAAuB,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA8GjG;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAWpC;;OAEG;YACW,WAAW;IAgCzB;;OAEG;YACW,mBAAmB;IA8IjC;;;;;;;;;;;OAWG;YACW,kBAAkB;IA+tBhC;;OAEG;YACW,cAAc;IAQ5B;;OAEG;YACW,iBAAiB;IAuF/B;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiFpE;;OAEG;YACW,eAAe;IA8C7B;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;YACW,wBAAwB;IAmBtC;;;OAGG;YACW,qBAAqB;IAmEnC;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoEtE;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;;;;OAKG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwC3E"}