specweave 0.24.6 → 0.24.8

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 (147) hide show
  1. package/CLAUDE.md +64 -0
  2. package/README.md +34 -0
  3. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts +5 -2
  4. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -1
  5. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +72 -6
  6. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
  7. package/dist/src/cli/helpers/issue-tracker/github.d.ts +2 -1
  8. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -1
  9. package/dist/src/cli/helpers/issue-tracker/github.js +4 -3
  10. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
  11. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  12. package/dist/src/cli/helpers/issue-tracker/index.js +26 -9
  13. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  14. package/dist/src/cli/helpers/issue-tracker/types.d.ts +1 -0
  15. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
  16. package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
  17. package/dist/src/core/repo-structure/git-error-handler.d.ts +37 -0
  18. package/dist/src/core/repo-structure/git-error-handler.d.ts.map +1 -0
  19. package/dist/src/core/repo-structure/git-error-handler.js +214 -0
  20. package/dist/src/core/repo-structure/git-error-handler.js.map +1 -0
  21. package/dist/src/core/repo-structure/git-provider.d.ts +183 -0
  22. package/dist/src/core/repo-structure/git-provider.d.ts.map +1 -0
  23. package/dist/src/core/repo-structure/git-provider.js +57 -0
  24. package/dist/src/core/repo-structure/git-provider.js.map +1 -0
  25. package/dist/src/core/repo-structure/github-validator.d.ts +1 -0
  26. package/dist/src/core/repo-structure/github-validator.d.ts.map +1 -1
  27. package/dist/src/core/repo-structure/github-validator.js +35 -9
  28. package/dist/src/core/repo-structure/github-validator.js.map +1 -1
  29. package/dist/src/core/repo-structure/platform-registry.d.ts +114 -0
  30. package/dist/src/core/repo-structure/platform-registry.d.ts.map +1 -0
  31. package/dist/src/core/repo-structure/platform-registry.js +195 -0
  32. package/dist/src/core/repo-structure/platform-registry.js.map +1 -0
  33. package/dist/src/core/repo-structure/prompt-consolidator.d.ts +30 -0
  34. package/dist/src/core/repo-structure/prompt-consolidator.d.ts.map +1 -1
  35. package/dist/src/core/repo-structure/prompt-consolidator.js +69 -0
  36. package/dist/src/core/repo-structure/prompt-consolidator.js.map +1 -1
  37. package/dist/src/core/repo-structure/providers/bitbucket-provider.d.ts +54 -0
  38. package/dist/src/core/repo-structure/providers/bitbucket-provider.d.ts.map +1 -0
  39. package/dist/src/core/repo-structure/providers/bitbucket-provider.js +104 -0
  40. package/dist/src/core/repo-structure/providers/bitbucket-provider.js.map +1 -0
  41. package/dist/src/core/repo-structure/providers/github-provider.d.ts +53 -0
  42. package/dist/src/core/repo-structure/providers/github-provider.d.ts.map +1 -0
  43. package/dist/src/core/repo-structure/providers/github-provider.js +239 -0
  44. package/dist/src/core/repo-structure/providers/github-provider.js.map +1 -0
  45. package/dist/src/core/repo-structure/providers/gitlab-provider.d.ts +50 -0
  46. package/dist/src/core/repo-structure/providers/gitlab-provider.d.ts.map +1 -0
  47. package/dist/src/core/repo-structure/providers/gitlab-provider.js +97 -0
  48. package/dist/src/core/repo-structure/providers/gitlab-provider.js.map +1 -0
  49. package/dist/src/core/repo-structure/providers/index.d.ts +33 -0
  50. package/dist/src/core/repo-structure/providers/index.d.ts.map +1 -0
  51. package/dist/src/core/repo-structure/providers/index.js +60 -0
  52. package/dist/src/core/repo-structure/providers/index.js.map +1 -0
  53. package/dist/src/core/repo-structure/repo-structure-manager.d.ts +10 -3
  54. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  55. package/dist/src/core/repo-structure/repo-structure-manager.js +125 -42
  56. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  57. package/dist/src/core/repo-structure/url-generator.d.ts +80 -0
  58. package/dist/src/core/repo-structure/url-generator.d.ts.map +1 -0
  59. package/dist/src/core/repo-structure/url-generator.js +110 -0
  60. package/dist/src/core/repo-structure/url-generator.js.map +1 -0
  61. package/package.json +1 -1
  62. package/plugins/specweave-ado/lib/ado-multi-project-sync.js +0 -1
  63. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +3 -3
  64. package/plugins/specweave/agents/pm/AGENT.md.bak +0 -1893
  65. package/plugins/specweave/hooks/docs-changed.sh.backup +0 -79
  66. package/plugins/specweave/hooks/human-input-required.sh.backup +0 -75
  67. package/plugins/specweave/hooks/lib/migrate-increment-work.sh.bak +0 -245
  68. package/plugins/specweave/hooks/lib/sync-spec-content.sh.bak +0 -149
  69. package/plugins/specweave/hooks/lib/validate-spec-status.sh.bak +0 -163
  70. package/plugins/specweave/hooks/post-first-increment.sh.backup +0 -61
  71. package/plugins/specweave/hooks/post-first-increment.sh.bak +0 -61
  72. package/plugins/specweave/hooks/post-increment-change.sh.backup +0 -98
  73. package/plugins/specweave/hooks/post-increment-completion.sh.backup +0 -231
  74. package/plugins/specweave/hooks/post-increment-planning.sh.backup +0 -1048
  75. package/plugins/specweave/hooks/post-increment-status-change.sh.backup +0 -147
  76. package/plugins/specweave/hooks/post-spec-update.sh.backup +0 -158
  77. package/plugins/specweave/hooks/post-spec-update.sh.bak +0 -158
  78. package/plugins/specweave/hooks/post-user-story-complete.sh.backup +0 -179
  79. package/plugins/specweave/hooks/post-user-story-complete.sh.bak +0 -179
  80. package/plugins/specweave/hooks/pre-command-deduplication.sh.backup +0 -83
  81. package/plugins/specweave/hooks/pre-command-deduplication.sh.bak +0 -83
  82. package/plugins/specweave/hooks/pre-implementation.sh.backup +0 -67
  83. package/plugins/specweave/hooks/pre-task-completion.sh.backup +0 -194
  84. package/plugins/specweave/hooks/pre-tool-use.sh.backup +0 -133
  85. package/plugins/specweave/hooks/user-prompt-submit.sh.backup +0 -386
  86. package/plugins/specweave/hooks/user-prompt-submit.sh.bak +0 -386
  87. package/plugins/specweave/lib/hooks/auto-transition.js.bak +0 -50
  88. package/plugins/specweave/lib/hooks/auto-transition.ts.bak +0 -84
  89. package/plugins/specweave/lib/hooks/git-diff-analyzer.d.js.bak +0 -0
  90. package/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.bak +0 -89
  91. package/plugins/specweave/lib/hooks/git-diff-analyzer.js.bak +0 -142
  92. package/plugins/specweave/lib/hooks/git-diff-analyzer.ts.bak +0 -269
  93. package/plugins/specweave/lib/hooks/invoke-translator-skill.d.js.bak +0 -0
  94. package/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.bak +0 -60
  95. package/plugins/specweave/lib/hooks/invoke-translator-skill.js.bak +0 -155
  96. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts.bak +0 -264
  97. package/plugins/specweave/lib/hooks/prepare-reflection-context.d.js.bak +0 -0
  98. package/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.bak +0 -42
  99. package/plugins/specweave/lib/hooks/prepare-reflection-context.js.bak +0 -110
  100. package/plugins/specweave/lib/hooks/prepare-reflection-context.ts.bak +0 -178
  101. package/plugins/specweave/lib/hooks/reflection-config-loader.d.js.bak +0 -0
  102. package/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.bak +0 -45
  103. package/plugins/specweave/lib/hooks/reflection-config-loader.js.bak +0 -92
  104. package/plugins/specweave/lib/hooks/reflection-config-loader.ts.bak +0 -156
  105. package/plugins/specweave/lib/hooks/reflection-parser.d.js.bak +0 -0
  106. package/plugins/specweave/lib/hooks/reflection-parser.d.ts.bak +0 -33
  107. package/plugins/specweave/lib/hooks/reflection-parser.js.bak +0 -301
  108. package/plugins/specweave/lib/hooks/reflection-parser.ts.bak +0 -484
  109. package/plugins/specweave/lib/hooks/reflection-prompt-builder.d.js.bak +0 -0
  110. package/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.bak +0 -56
  111. package/plugins/specweave/lib/hooks/reflection-prompt-builder.js.bak +0 -182
  112. package/plugins/specweave/lib/hooks/reflection-prompt-builder.ts.bak +0 -306
  113. package/plugins/specweave/lib/hooks/reflection-storage.d.js.bak +0 -0
  114. package/plugins/specweave/lib/hooks/reflection-storage.d.ts.bak +0 -64
  115. package/plugins/specweave/lib/hooks/reflection-storage.js.bak +0 -231
  116. package/plugins/specweave/lib/hooks/reflection-storage.ts.bak +0 -369
  117. package/plugins/specweave/lib/hooks/run-self-reflection.d.js.bak +0 -0
  118. package/plugins/specweave/lib/hooks/run-self-reflection.d.ts.bak +0 -43
  119. package/plugins/specweave/lib/hooks/run-self-reflection.js.bak +0 -132
  120. package/plugins/specweave/lib/hooks/run-self-reflection.ts.bak +0 -258
  121. package/plugins/specweave/lib/hooks/sync-cache.js.bak +0 -294
  122. package/plugins/specweave/lib/hooks/sync-living-docs.d.js.bak +0 -1
  123. package/plugins/specweave/lib/hooks/sync-living-docs.d.ts.bak +0 -27
  124. package/plugins/specweave/lib/hooks/sync-living-docs.js.bak +0 -339
  125. package/plugins/specweave/lib/hooks/sync-us-tasks.js.bak +0 -476
  126. package/plugins/specweave/lib/hooks/translate-file.d.js.bak +0 -0
  127. package/plugins/specweave/lib/hooks/translate-file.d.ts.bak +0 -59
  128. package/plugins/specweave/lib/hooks/translate-file.js.bak +0 -289
  129. package/plugins/specweave/lib/hooks/translate-file.ts.bak +0 -428
  130. package/plugins/specweave/lib/hooks/translate-living-docs.d.js.bak +0 -0
  131. package/plugins/specweave/lib/hooks/translate-living-docs.d.ts.bak +0 -13
  132. package/plugins/specweave/lib/hooks/translate-living-docs.js.bak +0 -119
  133. package/plugins/specweave/lib/hooks/translate-living-docs.ts.bak +0 -224
  134. package/plugins/specweave/lib/hooks/update-ac-status.js.bak +0 -51
  135. package/plugins/specweave/lib/hooks/update-ac-status.ts.bak +0 -103
  136. package/plugins/specweave/lib/hooks/update-tasks-md.d.js.bak +0 -1
  137. package/plugins/specweave/lib/hooks/update-tasks-md.d.ts.bak +0 -29
  138. package/plugins/specweave/lib/hooks/update-tasks-md.js.bak +0 -296
  139. package/plugins/specweave/lib/hooks/update-tasks-md.ts.bak +0 -489
  140. package/plugins/specweave-ado/hooks/post-living-docs-update.sh.backup +0 -353
  141. package/plugins/specweave-ado/hooks/post-task-completion.sh.backup +0 -172
  142. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -170
  143. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +0 -360
  144. package/plugins/specweave-github/hooks/post-task-completion.sh.backup +0 -258
  145. package/plugins/specweave-jira/hooks/post-task-completion.sh.backup +0 -172
  146. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +0 -444
  147. package/plugins/specweave-release/hooks/post-task-completion.sh.backup +0 -110
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Git Platform Registry
3
+ *
4
+ * Central registry for all supported Git platforms.
5
+ * Manages platform instances and provides platform selection.
6
+ *
7
+ * @module platform-registry
8
+ */
9
+ import type { GitProvider, GitPlatformType, PlatformConfig } from './git-provider.js';
10
+ /**
11
+ * Platform registry entry
12
+ */
13
+ export interface PlatformEntry {
14
+ /** Platform type identifier */
15
+ type: GitPlatformType;
16
+ /** Display name */
17
+ name: string;
18
+ /** Short description */
19
+ description: string;
20
+ /** Whether platform is fully supported */
21
+ supported: boolean;
22
+ /** Status message (e.g., "Coming Soon", "Beta") */
23
+ status?: string;
24
+ /** Platform configuration */
25
+ config: PlatformConfig;
26
+ }
27
+ /**
28
+ * Platform selection option (for prompts)
29
+ */
30
+ export interface PlatformOption {
31
+ value: GitPlatformType;
32
+ name: string;
33
+ description: string;
34
+ disabled?: boolean | string;
35
+ }
36
+ /**
37
+ * Git Platform Registry
38
+ *
39
+ * Singleton registry for all Git hosting platforms.
40
+ */
41
+ export declare class GitPlatformRegistry {
42
+ private static instance;
43
+ private platforms;
44
+ private providers;
45
+ private constructor();
46
+ /**
47
+ * Get singleton instance
48
+ */
49
+ static getInstance(): GitPlatformRegistry;
50
+ /**
51
+ * Register default platforms
52
+ */
53
+ private registerDefaultPlatforms;
54
+ /**
55
+ * Register a platform
56
+ */
57
+ registerPlatform(entry: PlatformEntry): void;
58
+ /**
59
+ * Register a provider instance
60
+ * Idempotent: skips if provider already registered (Issue #4 fix)
61
+ */
62
+ registerProvider(type: GitPlatformType, provider: GitProvider): void;
63
+ /**
64
+ * Clear all registered providers (for testing/cleanup)
65
+ * @internal
66
+ */
67
+ clearProviders(): void;
68
+ /**
69
+ * Clear all registered platforms (for testing/cleanup)
70
+ * @internal
71
+ */
72
+ clearPlatforms(): void;
73
+ /**
74
+ * Reset the entire registry (for testing only)
75
+ * @internal
76
+ */
77
+ reset(): void;
78
+ /**
79
+ * Get platform entry
80
+ */
81
+ getPlatform(type: GitPlatformType): PlatformEntry | undefined;
82
+ /**
83
+ * Get provider instance
84
+ */
85
+ getProvider(type: GitPlatformType): GitProvider | undefined;
86
+ /**
87
+ * Get all supported platforms
88
+ */
89
+ getSupportedPlatforms(): PlatformEntry[];
90
+ /**
91
+ * Get all platforms (including unsupported)
92
+ */
93
+ getAllPlatforms(): PlatformEntry[];
94
+ /**
95
+ * Get platform options for user selection
96
+ *
97
+ * @param includeUnsupported - Whether to include unsupported platforms
98
+ * @returns Platform options for prompts
99
+ */
100
+ getPlatformOptions(includeUnsupported?: boolean): PlatformOption[];
101
+ /**
102
+ * Check if a platform is supported
103
+ */
104
+ isSupported(type: GitPlatformType): boolean;
105
+ /**
106
+ * Get default platform (GitHub)
107
+ */
108
+ getDefaultPlatform(): GitPlatformType;
109
+ }
110
+ /**
111
+ * Get platform registry instance (convenience function)
112
+ */
113
+ export declare function getPlatformRegistry(): GitPlatformRegistry;
114
+ //# sourceMappingURL=platform-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-registry.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/platform-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,IAAI,EAAE,eAAe,CAAC;IAEtB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,SAAS,EAAE,OAAO,CAAC;IAEnB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6BAA6B;IAC7B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,SAAS,CAAoC;IAErD,OAAO;IAMP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAiEhC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAI5C;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IASpE;;;OAGG;IACH,cAAc,IAAI,IAAI;IAItB;;;OAGG;IACH,cAAc,IAAI,IAAI;IAItB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS;IAI7D;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,SAAS;IAI3D;;OAEG;IACH,qBAAqB,IAAI,aAAa,EAAE;IAIxC;;OAEG;IACH,eAAe,IAAI,aAAa,EAAE;IAIlC;;;;;OAKG;IACH,kBAAkB,CAAC,kBAAkB,GAAE,OAAe,GAAG,cAAc,EAAE;IAazE;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO;IAK3C;;OAEG;IACH,kBAAkB,IAAI,eAAe;CAGtC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,CAEzD"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Git Platform Registry
3
+ *
4
+ * Central registry for all supported Git platforms.
5
+ * Manages platform instances and provides platform selection.
6
+ *
7
+ * @module platform-registry
8
+ */
9
+ /**
10
+ * Git Platform Registry
11
+ *
12
+ * Singleton registry for all Git hosting platforms.
13
+ */
14
+ export class GitPlatformRegistry {
15
+ constructor() {
16
+ this.platforms = new Map();
17
+ this.providers = new Map();
18
+ this.registerDefaultPlatforms();
19
+ }
20
+ /**
21
+ * Get singleton instance
22
+ */
23
+ static getInstance() {
24
+ if (!GitPlatformRegistry.instance) {
25
+ GitPlatformRegistry.instance = new GitPlatformRegistry();
26
+ }
27
+ return GitPlatformRegistry.instance;
28
+ }
29
+ /**
30
+ * Register default platforms
31
+ */
32
+ registerDefaultPlatforms() {
33
+ // GitHub (fully supported)
34
+ this.registerPlatform({
35
+ type: 'github',
36
+ name: 'GitHub',
37
+ description: 'GitHub.com - Most popular Git hosting',
38
+ supported: true,
39
+ config: {
40
+ type: 'github',
41
+ name: 'GitHub',
42
+ host: 'github.com',
43
+ apiBaseUrl: 'https://api.github.com',
44
+ selfHosted: false
45
+ }
46
+ });
47
+ // GitLab (stub - coming soon)
48
+ this.registerPlatform({
49
+ type: 'gitlab',
50
+ name: 'GitLab',
51
+ description: 'GitLab.com - DevOps platform',
52
+ supported: false,
53
+ status: 'Coming Soon',
54
+ config: {
55
+ type: 'gitlab',
56
+ name: 'GitLab',
57
+ host: 'gitlab.com',
58
+ apiBaseUrl: 'https://gitlab.com/api/v4',
59
+ selfHosted: false
60
+ }
61
+ });
62
+ // Bitbucket (stub - coming soon)
63
+ this.registerPlatform({
64
+ type: 'bitbucket',
65
+ name: 'Bitbucket',
66
+ description: 'Bitbucket.org - Atlassian Git hosting',
67
+ supported: false,
68
+ status: 'Coming Soon',
69
+ config: {
70
+ type: 'bitbucket',
71
+ name: 'Bitbucket',
72
+ host: 'bitbucket.org',
73
+ apiBaseUrl: 'https://api.bitbucket.org/2.0',
74
+ selfHosted: false
75
+ }
76
+ });
77
+ // Azure DevOps (stub - coming soon)
78
+ this.registerPlatform({
79
+ type: 'azure-devops',
80
+ name: 'Azure DevOps',
81
+ description: 'Azure DevOps Repos - Microsoft DevOps platform',
82
+ supported: false,
83
+ status: 'Coming Soon',
84
+ config: {
85
+ type: 'azure-devops',
86
+ name: 'Azure DevOps',
87
+ host: 'dev.azure.com',
88
+ apiBaseUrl: 'https://dev.azure.com',
89
+ selfHosted: false
90
+ }
91
+ });
92
+ }
93
+ /**
94
+ * Register a platform
95
+ */
96
+ registerPlatform(entry) {
97
+ this.platforms.set(entry.type, entry);
98
+ }
99
+ /**
100
+ * Register a provider instance
101
+ * Idempotent: skips if provider already registered (Issue #4 fix)
102
+ */
103
+ registerProvider(type, provider) {
104
+ // Issue #4 fix: Idempotency check to prevent unnecessary re-registration
105
+ if (this.providers.has(type)) {
106
+ // Provider already registered, skip to avoid replacing existing instance
107
+ return;
108
+ }
109
+ this.providers.set(type, provider);
110
+ }
111
+ /**
112
+ * Clear all registered providers (for testing/cleanup)
113
+ * @internal
114
+ */
115
+ clearProviders() {
116
+ this.providers.clear();
117
+ }
118
+ /**
119
+ * Clear all registered platforms (for testing/cleanup)
120
+ * @internal
121
+ */
122
+ clearPlatforms() {
123
+ this.platforms.clear();
124
+ }
125
+ /**
126
+ * Reset the entire registry (for testing only)
127
+ * @internal
128
+ */
129
+ reset() {
130
+ this.providers.clear();
131
+ this.platforms.clear();
132
+ this.registerDefaultPlatforms();
133
+ }
134
+ /**
135
+ * Get platform entry
136
+ */
137
+ getPlatform(type) {
138
+ return this.platforms.get(type);
139
+ }
140
+ /**
141
+ * Get provider instance
142
+ */
143
+ getProvider(type) {
144
+ return this.providers.get(type);
145
+ }
146
+ /**
147
+ * Get all supported platforms
148
+ */
149
+ getSupportedPlatforms() {
150
+ return Array.from(this.platforms.values()).filter(p => p.supported);
151
+ }
152
+ /**
153
+ * Get all platforms (including unsupported)
154
+ */
155
+ getAllPlatforms() {
156
+ return Array.from(this.platforms.values());
157
+ }
158
+ /**
159
+ * Get platform options for user selection
160
+ *
161
+ * @param includeUnsupported - Whether to include unsupported platforms
162
+ * @returns Platform options for prompts
163
+ */
164
+ getPlatformOptions(includeUnsupported = false) {
165
+ const platforms = includeUnsupported
166
+ ? this.getAllPlatforms()
167
+ : this.getSupportedPlatforms();
168
+ return platforms.map(p => ({
169
+ value: p.type,
170
+ name: p.status ? `${p.name} (${p.status})` : p.name,
171
+ description: p.description,
172
+ disabled: p.supported ? false : p.status || 'Not yet supported'
173
+ }));
174
+ }
175
+ /**
176
+ * Check if a platform is supported
177
+ */
178
+ isSupported(type) {
179
+ const platform = this.getPlatform(type);
180
+ return platform?.supported || false;
181
+ }
182
+ /**
183
+ * Get default platform (GitHub)
184
+ */
185
+ getDefaultPlatform() {
186
+ return 'github';
187
+ }
188
+ }
189
+ /**
190
+ * Get platform registry instance (convenience function)
191
+ */
192
+ export function getPlatformRegistry() {
193
+ return GitPlatformRegistry.getInstance();
194
+ }
195
+ //# sourceMappingURL=platform-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-registry.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/platform-registry.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,36 @@ export declare function getVisibilityPrompt(repoName: string): {
60
60
  }>;
61
61
  default: 'private' | 'public';
62
62
  };
63
+ /**
64
+ * Get Git remote URL type prompt (SSH vs HTTPS)
65
+ *
66
+ * @returns URL type question and options
67
+ */
68
+ export declare function getUrlTypePrompt(): {
69
+ question: string;
70
+ options: Array<{
71
+ value: 'ssh' | 'https';
72
+ label: string;
73
+ description: string;
74
+ }>;
75
+ default: 'ssh' | 'https';
76
+ };
77
+ /**
78
+ * Get platform selection prompt
79
+ *
80
+ * @returns Platform selection question and options
81
+ */
82
+ export declare function getPlatformSelectionPrompt(): {
83
+ question: string;
84
+ message: string;
85
+ };
86
+ /**
87
+ * Get GitHub token permission guidance
88
+ *
89
+ * @param isOrganization - Whether creating repos in an organization
90
+ * @returns Formatted guidance message
91
+ */
92
+ export declare function getGitHubTokenGuidance(isOrganization?: boolean): string;
63
93
  /**
64
94
  * Format architecture choice for display
65
95
  *
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-consolidator.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/prompt-consolidator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B,CAkCA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAwC9C;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAYxF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC/B,CAiBA;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAS3E"}
1
+ {"version":3,"file":"prompt-consolidator.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/prompt-consolidator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B,CAkCA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAwC9C;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAYxF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC/B,CAiBA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;CAC1B,CAiBA;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAaA;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,GAAE,OAAe,GAAG,MAAM,CAsB9E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAS3E"}
@@ -137,6 +137,75 @@ export function getVisibilityPrompt(repoName) {
137
137
  default: 'private'
138
138
  };
139
139
  }
140
+ /**
141
+ * Get Git remote URL type prompt (SSH vs HTTPS)
142
+ *
143
+ * @returns URL type question and options
144
+ */
145
+ export function getUrlTypePrompt() {
146
+ return {
147
+ question: 'Git remote URL format?',
148
+ options: [
149
+ {
150
+ value: 'ssh',
151
+ label: 'SSH (Recommended)',
152
+ description: 'git@github.com:owner/repo.git - More secure, no password needed'
153
+ },
154
+ {
155
+ value: 'https',
156
+ label: 'HTTPS',
157
+ description: 'https://github.com/owner/repo.git - Works everywhere, uses tokens'
158
+ }
159
+ ],
160
+ default: 'ssh'
161
+ };
162
+ }
163
+ /**
164
+ * Get platform selection prompt
165
+ *
166
+ * @returns Platform selection question and options
167
+ */
168
+ export function getPlatformSelectionPrompt() {
169
+ return {
170
+ question: 'Select your Git hosting platform:',
171
+ message: `
172
+ 🌐 Git Platform Selection
173
+
174
+ SpecWeave supports multiple Git hosting platforms.
175
+ Choose where your repositories will be hosted.
176
+
177
+ Note: Currently, only GitHub is fully supported.
178
+ Other platforms (GitLab, Bitbucket, Azure DevOps) are coming soon!
179
+ `.trim()
180
+ };
181
+ }
182
+ /**
183
+ * Get GitHub token permission guidance
184
+ *
185
+ * @param isOrganization - Whether creating repos in an organization
186
+ * @returns Formatted guidance message
187
+ */
188
+ export function getGitHubTokenGuidance(isOrganization = false) {
189
+ const requiredScopes = [
190
+ '• repo (Full control of private repositories)',
191
+ ];
192
+ if (isOrganization) {
193
+ requiredScopes.push('• admin:org (Manage organization repositories)');
194
+ }
195
+ return `
196
+ 📋 GitHub Personal Access Token Requirements
197
+
198
+ Required Scopes:
199
+ ${requiredScopes.join('\n')}
200
+
201
+ 🔗 Create token at: https://github.com/settings/tokens/new
202
+
203
+ ⚠️ Important:
204
+ - Select "repo" scope at minimum
205
+ ${isOrganization ? '- Select "admin:org" if creating in organization\n' : ''}- Token will be stored in .env (never committed)
206
+ - Keep your token secure
207
+ `.trim();
208
+ }
140
209
  /**
141
210
  * Format architecture choice for display
142
211
  *
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-consolidator.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/prompt-consolidator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB;IAInC,OAAO;QACL,QAAQ,EAAE,uCAAuC;QACjD,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,4BAA4B;gBACzC,OAAO,EAAE;;;;;;SAMR,CAAC,IAAI,EAAE;aACT;YACD;gBACE,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,iDAAiD;gBACxD,WAAW,EAAE,+DAA+D;gBAC5E,OAAO,EAAE;;;;;;;;;;SAUR,CAAC,IAAI,EAAE;aACT;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCN,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,SAAiB;IAC9E,MAAM,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;IAEtC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,qCAAqC,KAAK;;MAE/C,SAAS,mBAAmB,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc;;eAElE,KAAK,yCAAyC,CAAC;IAC5D,CAAC;IAED,OAAO,qCAAqC,KAAK,EAAE,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAKlD,OAAO;QACL,QAAQ,EAAE,8BAA8B,QAAQ,IAAI;QACpD,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,oDAAoD;aAClE;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC;QAC7B,KAAK,eAAe;YAClB,OAAO,qCAAqC,CAAC;QAC/C;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"prompt-consolidator.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/prompt-consolidator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB;IAInC,OAAO;QACL,QAAQ,EAAE,uCAAuC;QACjD,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,4BAA4B;gBACzC,OAAO,EAAE;;;;;;SAMR,CAAC,IAAI,EAAE;aACT;YACD;gBACE,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,iDAAiD;gBACxD,WAAW,EAAE,+DAA+D;gBAC5E,OAAO,EAAE;;;;;;;;;;SAUR,CAAC,IAAI,EAAE;aACT;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCN,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,SAAiB;IAC9E,MAAM,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;IAEtC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,qCAAqC,KAAK;;MAE/C,SAAS,mBAAmB,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc;;eAElE,KAAK,yCAAyC,CAAC;IAC5D,CAAC;IAED,OAAO,qCAAqC,KAAK,EAAE,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAKlD,OAAO;QACL,QAAQ,EAAE,8BAA8B,QAAQ,IAAI;QACpD,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,oDAAoD;aAClE;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAK9B,OAAO;QACL,QAAQ,EAAE,wBAAwB;QAClC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,iEAAiE;aAC/E;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,mEAAmE;aACjF;SACF;QACD,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IAIxC,OAAO;QACL,QAAQ,EAAE,mCAAmC;QAC7C,OAAO,EAAE;;;;;;;;KAQR,CAAC,IAAI,EAAE;KACT,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,iBAA0B,KAAK;IACpE,MAAM,cAAc,GAAG;QACrB,+CAA+C;KAChD,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,cAAc,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;;;;EAIP,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;KAMtB,cAAc,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,EAAE;;GAE5E,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC;QAC7B,KAAK,eAAe;YAClB,OAAO,qCAAqC,CAAC;QAC/C;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Bitbucket Provider Implementation (STUB)
3
+ *
4
+ * Stub implementation for Bitbucket.org and Bitbucket Server/Data Center.
5
+ * Full implementation coming soon!
6
+ *
7
+ * @module providers/bitbucket-provider
8
+ */
9
+ import { BaseGitProvider, type PlatformConfig, type RepoValidationResult, type OwnerValidationResult, type CreateRepoOptions } from '../git-provider.js';
10
+ /**
11
+ * Bitbucket Provider (Stub)
12
+ *
13
+ * Placeholder implementation for Bitbucket support.
14
+ */
15
+ export declare class BitbucketProvider extends BaseGitProvider {
16
+ constructor(config?: Partial<PlatformConfig>);
17
+ /**
18
+ * Validate repository (stub)
19
+ */
20
+ validateRepository(owner: string, repo: string, token?: string): Promise<RepoValidationResult>;
21
+ /**
22
+ * Validate owner (stub)
23
+ */
24
+ validateOwner(owner: string, token?: string): Promise<OwnerValidationResult>;
25
+ /**
26
+ * Create repository (stub)
27
+ */
28
+ createRepository(options: CreateRepoOptions, token: string): Promise<string>;
29
+ /**
30
+ * Check if organization (stub)
31
+ */
32
+ isOrganization(account: string, token?: string): Promise<boolean>;
33
+ /**
34
+ * Get token creation URL
35
+ */
36
+ getTokenUrl(): string;
37
+ /**
38
+ * Get required token scopes
39
+ */
40
+ getRequiredScopes(isOrganization?: boolean): string[];
41
+ /**
42
+ * Override SSH user for Bitbucket (uses 'git' not 'hg')
43
+ */
44
+ protected getSSHUser(): string;
45
+ /**
46
+ * Override getAuthHeaders for Bitbucket-specific auth
47
+ */
48
+ protected getAuthHeaders(token: string): Record<string, string>;
49
+ }
50
+ /**
51
+ * Create a Bitbucket provider instance
52
+ */
53
+ export declare function createBitbucketProvider(config?: Partial<PlatformConfig>): BitbucketProvider;
54
+ //# sourceMappingURL=bitbucket-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitbucket-provider.d.ts","sourceRoot":"","sources":["../../../../../src/core/repo-structure/providers/bitbucket-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;AAEzJ;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAW5C;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,oBAAoB,CAAC;IAmBhC;;OAEG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC;IAIjC;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAIlB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE;;OAEG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,iBAAiB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE;IAIrD;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAQhE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,iBAAiB,CAE3F"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Bitbucket Provider Implementation (STUB)
3
+ *
4
+ * Stub implementation for Bitbucket.org and Bitbucket Server/Data Center.
5
+ * Full implementation coming soon!
6
+ *
7
+ * @module providers/bitbucket-provider
8
+ */
9
+ import { BaseGitProvider } from '../git-provider.js';
10
+ /**
11
+ * Bitbucket Provider (Stub)
12
+ *
13
+ * Placeholder implementation for Bitbucket support.
14
+ */
15
+ export class BitbucketProvider extends BaseGitProvider {
16
+ constructor(config) {
17
+ super({
18
+ type: 'bitbucket',
19
+ name: 'Bitbucket',
20
+ host: config?.host || 'bitbucket.org',
21
+ apiBaseUrl: config?.apiBaseUrl || 'https://api.bitbucket.org/2.0',
22
+ selfHosted: config?.selfHosted || false,
23
+ customDomain: config?.customDomain
24
+ });
25
+ }
26
+ /**
27
+ * Validate repository (stub)
28
+ */
29
+ async validateRepository(owner, repo, token) {
30
+ throw new Error(`
31
+ ❌ Bitbucket Support Coming Soon!
32
+
33
+ Bitbucket integration is not yet implemented.
34
+ Currently, only GitHub is fully supported.
35
+
36
+ 🔜 What's coming:
37
+ • Bitbucket.org and Bitbucket Server/Data Center support
38
+ • Repository validation and creation
39
+ • Workspace support
40
+ • SSH and HTTPS remote URLs
41
+
42
+ For now, please use GitHub or wait for the next SpecWeave release.
43
+
44
+ 📖 Track progress: https://github.com/anton-abyzov/specweave/issues
45
+ `.trim());
46
+ }
47
+ /**
48
+ * Validate owner (stub)
49
+ */
50
+ async validateOwner(owner, token) {
51
+ throw new Error('Bitbucket support coming soon! Please use GitHub for now.');
52
+ }
53
+ /**
54
+ * Create repository (stub)
55
+ */
56
+ async createRepository(options, token) {
57
+ throw new Error('Bitbucket support coming soon! Please use GitHub for now.');
58
+ }
59
+ /**
60
+ * Check if organization (stub)
61
+ */
62
+ async isOrganization(account, token) {
63
+ return false;
64
+ }
65
+ /**
66
+ * Get token creation URL
67
+ */
68
+ getTokenUrl() {
69
+ if (this.config.selfHosted) {
70
+ return `https://${this.config.customDomain || this.config.host}/account/settings/app-passwords/`;
71
+ }
72
+ return 'https://bitbucket.org/account/settings/app-passwords/';
73
+ }
74
+ /**
75
+ * Get required token scopes
76
+ */
77
+ getRequiredScopes(isOrganization) {
78
+ return ['repository:read', 'repository:write', 'repository:admin'];
79
+ }
80
+ /**
81
+ * Override SSH user for Bitbucket (uses 'git' not 'hg')
82
+ */
83
+ getSSHUser() {
84
+ return 'git';
85
+ }
86
+ /**
87
+ * Override getAuthHeaders for Bitbucket-specific auth
88
+ */
89
+ getAuthHeaders(token) {
90
+ // Bitbucket uses HTTP Basic Auth or App Passwords
91
+ return {
92
+ 'Authorization': `Bearer ${token}`,
93
+ 'Accept': 'application/json',
94
+ 'Content-Type': 'application/json'
95
+ };
96
+ }
97
+ }
98
+ /**
99
+ * Create a Bitbucket provider instance
100
+ */
101
+ export function createBitbucketProvider(config) {
102
+ return new BitbucketProvider(config);
103
+ }
104
+ //# sourceMappingURL=bitbucket-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitbucket-provider.js","sourceRoot":"","sources":["../../../../../src/core/repo-structure/providers/bitbucket-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAsG,MAAM,oBAAoB,CAAC;AAEzJ;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,MAAgC;QAC1C,KAAK,CAAC;YACJ,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,eAAe;YACrC,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,+BAA+B;YACjE,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,KAAK;YACvC,YAAY,EAAE,MAAM,EAAE,YAAY;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,IAAY,EACZ,KAAc;QAEd,MAAM,IAAI,KAAK,CAAC;;;;;;;;;;;;;;;KAef,CAAC,IAAI,EAAE,CAAC,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,KAAc;QAEd,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAA0B,EAC1B,KAAa;QAEb,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,KAAc;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,kCAAkC,CAAC;QACnG,CAAC;QACD,OAAO,uDAAuD,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,cAAwB;QACxC,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACO,UAAU;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,KAAa;QACpC,kDAAkD;QAClD,OAAO;YACL,eAAe,EAAE,UAAU,KAAK,EAAE;YAClC,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,kBAAkB;SACnC,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAgC;IACtE,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * GitHub Provider Implementation
3
+ *
4
+ * Implements GitProvider interface for GitHub.com and GitHub Enterprise.
5
+ * Handles repository validation, creation, and management via GitHub API.
6
+ *
7
+ * @module providers/github-provider
8
+ */
9
+ import { BaseGitProvider, type PlatformConfig, type RepoValidationResult, type OwnerValidationResult, type CreateRepoOptions } from '../git-provider.js';
10
+ /**
11
+ * GitHub Provider
12
+ *
13
+ * Implements Git operations for GitHub platform.
14
+ */
15
+ export declare class GitHubProvider extends BaseGitProvider {
16
+ constructor(config?: Partial<PlatformConfig>);
17
+ /**
18
+ * Validate if a repository exists on GitHub
19
+ */
20
+ validateRepository(owner: string, repo: string, token?: string): Promise<RepoValidationResult>;
21
+ /**
22
+ * Validate if a GitHub owner (user or organization) exists
23
+ */
24
+ validateOwner(owner: string, token?: string): Promise<OwnerValidationResult>;
25
+ /**
26
+ * Create a new repository on GitHub
27
+ */
28
+ createRepository(options: CreateRepoOptions, token: string): Promise<string>;
29
+ /**
30
+ * Check if an account is an organization
31
+ */
32
+ isOrganization(account: string, token?: string): Promise<boolean>;
33
+ /**
34
+ * Get token creation URL
35
+ */
36
+ getTokenUrl(): string;
37
+ /**
38
+ * Get required token scopes
39
+ */
40
+ getRequiredScopes(isOrganization?: boolean): string[];
41
+ /**
42
+ * Override getAuthHeaders for GitHub-specific auth
43
+ */
44
+ protected getAuthHeaders(token: string): Record<string, string>;
45
+ }
46
+ /**
47
+ * Create a GitHub provider instance
48
+ *
49
+ * @param config - Optional platform configuration
50
+ * @returns GitHub provider instance
51
+ */
52
+ export declare function createGitHubProvider(config?: Partial<PlatformConfig>): GitHubProvider;
53
+ //# sourceMappingURL=github-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-provider.d.ts","sourceRoot":"","sources":["../../../../../src/core/repo-structure/providers/github-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;AAIzJ;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,eAAe;gBACrC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAW5C;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,oBAAoB,CAAC;IAuEhC;;OAEG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC;IAqDjC;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAmDlB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBvE;;OAEG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,iBAAiB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE;IAQrD;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAOhE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAErF"}