@speclife/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/adapters/claude-cli-adapter.d.ts +57 -0
  2. package/dist/adapters/claude-cli-adapter.d.ts.map +1 -0
  3. package/dist/adapters/claude-cli-adapter.js +161 -0
  4. package/dist/adapters/claude-cli-adapter.js.map +1 -0
  5. package/dist/adapters/claude-sdk-adapter.d.ts +49 -0
  6. package/dist/adapters/claude-sdk-adapter.d.ts.map +1 -0
  7. package/dist/adapters/claude-sdk-adapter.js +278 -0
  8. package/dist/adapters/claude-sdk-adapter.js.map +1 -0
  9. package/dist/adapters/cursor-adapter.d.ts +26 -0
  10. package/dist/adapters/cursor-adapter.d.ts.map +1 -0
  11. package/dist/adapters/cursor-adapter.js +54 -0
  12. package/dist/adapters/cursor-adapter.js.map +1 -0
  13. package/dist/adapters/environment-adapter.d.ts +153 -0
  14. package/dist/adapters/environment-adapter.d.ts.map +1 -0
  15. package/dist/adapters/environment-adapter.js +690 -0
  16. package/dist/adapters/environment-adapter.js.map +1 -0
  17. package/dist/adapters/git-adapter.d.ts +41 -0
  18. package/dist/adapters/git-adapter.d.ts.map +1 -0
  19. package/dist/adapters/git-adapter.js +95 -0
  20. package/dist/adapters/git-adapter.js.map +1 -0
  21. package/dist/adapters/github-adapter.d.ts +39 -0
  22. package/dist/adapters/github-adapter.d.ts.map +1 -0
  23. package/dist/adapters/github-adapter.js +129 -0
  24. package/dist/adapters/github-adapter.js.map +1 -0
  25. package/dist/adapters/index.d.ts +11 -0
  26. package/dist/adapters/index.d.ts.map +1 -0
  27. package/dist/adapters/index.js +13 -0
  28. package/dist/adapters/index.js.map +1 -0
  29. package/dist/adapters/openspec-adapter.d.ts +36 -0
  30. package/dist/adapters/openspec-adapter.d.ts.map +1 -0
  31. package/dist/adapters/openspec-adapter.js +182 -0
  32. package/dist/adapters/openspec-adapter.js.map +1 -0
  33. package/dist/config.d.ts +60 -0
  34. package/dist/config.d.ts.map +1 -0
  35. package/dist/config.js +112 -0
  36. package/dist/config.js.map +1 -0
  37. package/dist/index.d.ts +10 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +14 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/types.d.ts +105 -0
  42. package/dist/types.d.ts.map +1 -0
  43. package/dist/types.js +28 -0
  44. package/dist/types.js.map +1 -0
  45. package/dist/workflows/implement.d.ts +28 -0
  46. package/dist/workflows/implement.d.ts.map +1 -0
  47. package/dist/workflows/implement.js +277 -0
  48. package/dist/workflows/implement.js.map +1 -0
  49. package/dist/workflows/index.d.ts +9 -0
  50. package/dist/workflows/index.d.ts.map +1 -0
  51. package/dist/workflows/index.js +9 -0
  52. package/dist/workflows/index.js.map +1 -0
  53. package/dist/workflows/init.d.ts +55 -0
  54. package/dist/workflows/init.d.ts.map +1 -0
  55. package/dist/workflows/init.js +195 -0
  56. package/dist/workflows/init.js.map +1 -0
  57. package/dist/workflows/merge.d.ts +40 -0
  58. package/dist/workflows/merge.d.ts.map +1 -0
  59. package/dist/workflows/merge.js +90 -0
  60. package/dist/workflows/merge.js.map +1 -0
  61. package/dist/workflows/status.d.ts +34 -0
  62. package/dist/workflows/status.d.ts.map +1 -0
  63. package/dist/workflows/status.js +53 -0
  64. package/dist/workflows/status.js.map +1 -0
  65. package/dist/workflows/submit.d.ts +44 -0
  66. package/dist/workflows/submit.d.ts.map +1 -0
  67. package/dist/workflows/submit.js +143 -0
  68. package/dist/workflows/submit.js.map +1 -0
  69. package/package.json +48 -0
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Environment adapters for language-specific worktree setup
3
+ *
4
+ * These adapters handle dependency bootstrapping when creating worktrees,
5
+ * ensuring the worktree is ready to build without manual intervention.
6
+ */
7
+ import { type ProgressCallback } from '../types.js';
8
+ /** Bootstrap strategy for environment setup */
9
+ export type BootstrapStrategy = 'symlink' | 'install' | 'none';
10
+ /** Result of environment detection */
11
+ export interface DetectionResult {
12
+ /** Environment name (e.g., 'nodejs', 'python') */
13
+ name: string;
14
+ /** Confidence level 0-1 */
15
+ confidence: number;
16
+ /** Detected package manager */
17
+ packageManager?: string;
18
+ /** Files that triggered detection */
19
+ markerFiles: string[];
20
+ }
21
+ /** Result of bootstrap operation */
22
+ export interface BootstrapResult {
23
+ /** Environment that was bootstrapped */
24
+ environment: string;
25
+ /** Strategy used */
26
+ strategy: BootstrapStrategy;
27
+ /** Whether bootstrap was successful */
28
+ success: boolean;
29
+ /** Human-readable message */
30
+ message: string;
31
+ /** Path that was set up (if applicable) */
32
+ path?: string;
33
+ /** Whether tsconfig was patched for monorepo support */
34
+ tsconfigPatched?: boolean;
35
+ /** Detected monorepo info */
36
+ monorepo?: MonorepoInfo;
37
+ }
38
+ /** Monorepo information */
39
+ export interface MonorepoInfo {
40
+ /** Whether this is a monorepo */
41
+ isMonorepo: boolean;
42
+ /** Type of monorepo setup */
43
+ type?: 'npm-workspaces' | 'yarn-workspaces' | 'pnpm-workspaces' | 'lerna';
44
+ /** Root package.json path */
45
+ rootPackageJson: string;
46
+ /** List of workspace package paths */
47
+ workspacePackages: WorkspacePackage[];
48
+ }
49
+ /** A workspace package in a monorepo */
50
+ export interface WorkspacePackage {
51
+ /** Package name (from package.json) */
52
+ name: string;
53
+ /** Relative path from project root */
54
+ path: string;
55
+ /** Absolute path */
56
+ absolutePath: string;
57
+ /** Entry point for TypeScript (src/index.ts or similar) */
58
+ entryPoint?: string;
59
+ }
60
+ /** Environment adapter interface */
61
+ export interface EnvironmentAdapter {
62
+ /** Unique identifier for this environment */
63
+ readonly name: string;
64
+ /** Human-readable display name */
65
+ readonly displayName: string;
66
+ /** Priority for detection (higher = checked first) */
67
+ readonly priority: number;
68
+ /**
69
+ * Detect if this environment is present in the project
70
+ * @param projectRoot - Path to the project root
71
+ * @returns Detection result or null if not detected
72
+ */
73
+ detect(projectRoot: string): Promise<DetectionResult | null>;
74
+ /**
75
+ * Bootstrap the environment in a worktree
76
+ * @param worktreePath - Path to the worktree
77
+ * @param sourceRoot - Path to the source project root
78
+ * @param strategy - Bootstrap strategy to use
79
+ * @param onProgress - Progress callback
80
+ */
81
+ bootstrap(worktreePath: string, sourceRoot: string, strategy: BootstrapStrategy, onProgress?: ProgressCallback): Promise<BootstrapResult>;
82
+ /**
83
+ * Clean up environment artifacts before worktree removal
84
+ * @param worktreePath - Path to the worktree
85
+ */
86
+ cleanup(worktreePath: string): Promise<void>;
87
+ }
88
+ /** Registry of environment adapters */
89
+ export interface EnvironmentRegistry {
90
+ /** Register an adapter */
91
+ register(adapter: EnvironmentAdapter): void;
92
+ /** Get all registered adapters sorted by priority */
93
+ getAdapters(): EnvironmentAdapter[];
94
+ /** Get adapter by name */
95
+ getAdapter(name: string): EnvironmentAdapter | undefined;
96
+ /** Detect all environments in a project */
97
+ detectEnvironments(projectRoot: string): Promise<DetectionResult[]>;
98
+ /**
99
+ * Bootstrap all detected environments
100
+ * @param worktreePath - Path to the worktree
101
+ * @param sourceRoot - Path to the source project root
102
+ * @param strategy - Bootstrap strategy to use
103
+ * @param onProgress - Progress callback
104
+ */
105
+ bootstrapAll(worktreePath: string, sourceRoot: string, strategy: BootstrapStrategy, onProgress?: ProgressCallback): Promise<BootstrapResult[]>;
106
+ /** Clean up all environments */
107
+ cleanupAll(worktreePath: string): Promise<void>;
108
+ }
109
+ /**
110
+ * Create an environment registry with optional initial adapters
111
+ */
112
+ export declare function createEnvironmentRegistry(initialAdapters?: EnvironmentAdapter[]): EnvironmentRegistry;
113
+ /**
114
+ * Node.js environment adapter
115
+ * Detects: package.json, package-lock.json, yarn.lock, pnpm-lock.yaml
116
+ * Bootstraps: symlinks node_modules from source to worktree
117
+ *
118
+ * For monorepos: Detects workspace packages and auto-patches tsconfig.json
119
+ * with paths mappings to ensure TypeScript resolves to worktree source.
120
+ */
121
+ export declare function createNodejsAdapter(): EnvironmentAdapter;
122
+ /**
123
+ * Python environment adapter
124
+ * Detects: requirements.txt, pyproject.toml, setup.py, Pipfile
125
+ * Bootstraps: symlinks .venv from source to worktree
126
+ */
127
+ export declare function createPythonAdapter(): EnvironmentAdapter;
128
+ /**
129
+ * Go environment adapter
130
+ * Detects: go.mod
131
+ * Bootstraps: no-op (Go uses global module cache)
132
+ */
133
+ export declare function createGoAdapter(): EnvironmentAdapter;
134
+ /**
135
+ * Rust environment adapter
136
+ * Detects: Cargo.toml
137
+ * Bootstraps: no-op (Rust uses global cargo cache)
138
+ */
139
+ export declare function createRustAdapter(): EnvironmentAdapter;
140
+ /**
141
+ * Create the default environment registry with all built-in adapters
142
+ */
143
+ export declare function createDefaultEnvironmentRegistry(): EnvironmentRegistry;
144
+ /**
145
+ * Detect if a project is a monorepo and identify workspace packages
146
+ */
147
+ export declare function detectMonorepo(projectRoot: string): MonorepoInfo;
148
+ /**
149
+ * Patch tsconfig files in a worktree to add paths for local workspace packages
150
+ * This ensures TypeScript resolves to worktree source, not the symlinked main repo
151
+ */
152
+ export declare function patchTsconfigForMonorepo(worktreePath: string, monorepo: MonorepoInfo, onProgress?: ProgressCallback): boolean;
153
+ //# sourceMappingURL=environment-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/environment-adapter.ts"],"names":[],"mappings":"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"}