@sudocode-ai/local-server 0.1.0 → 0.1.2

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 (117) hide show
  1. package/dist/cli.js +6 -104
  2. package/dist/cli.js.map +1 -7
  3. package/dist/execution/engine/engine.js +10 -0
  4. package/dist/execution/engine/engine.js.map +1 -0
  5. package/dist/execution/engine/simple-engine.js +611 -0
  6. package/dist/execution/engine/simple-engine.js.map +1 -0
  7. package/dist/execution/engine/types.js +10 -0
  8. package/dist/execution/engine/types.js.map +1 -0
  9. package/dist/execution/output/ag-ui-adapter.js +438 -0
  10. package/dist/execution/output/ag-ui-adapter.js.map +1 -0
  11. package/dist/execution/output/ag-ui-integration.js +96 -0
  12. package/dist/execution/output/ag-ui-integration.js.map +1 -0
  13. package/dist/execution/output/claude-code-output-processor.js +769 -0
  14. package/dist/execution/output/claude-code-output-processor.js.map +1 -0
  15. package/dist/execution/output/index.js +15 -0
  16. package/dist/execution/output/index.js.map +1 -0
  17. package/dist/execution/output/types.js +22 -0
  18. package/dist/execution/output/types.js.map +1 -0
  19. package/dist/execution/process/builders/claude.js +59 -0
  20. package/dist/execution/process/builders/claude.js.map +1 -0
  21. package/dist/execution/process/index.js +15 -0
  22. package/dist/execution/process/index.js.map +1 -0
  23. package/dist/execution/process/manager.js +10 -0
  24. package/dist/execution/process/manager.js.map +1 -0
  25. package/dist/execution/process/simple-manager.js +336 -0
  26. package/dist/execution/process/simple-manager.js.map +1 -0
  27. package/dist/execution/process/types.js +10 -0
  28. package/dist/execution/process/types.js.map +1 -0
  29. package/dist/execution/process/utils.js +97 -0
  30. package/dist/execution/process/utils.js.map +1 -0
  31. package/dist/execution/resilience/circuit-breaker.js +291 -0
  32. package/dist/execution/resilience/circuit-breaker.js.map +1 -0
  33. package/dist/execution/resilience/executor.js +10 -0
  34. package/dist/execution/resilience/executor.js.map +1 -0
  35. package/dist/execution/resilience/index.js +15 -0
  36. package/dist/execution/resilience/index.js.map +1 -0
  37. package/dist/execution/resilience/resilient-executor.js +261 -0
  38. package/dist/execution/resilience/resilient-executor.js.map +1 -0
  39. package/dist/execution/resilience/retry.js +234 -0
  40. package/dist/execution/resilience/retry.js.map +1 -0
  41. package/dist/execution/resilience/types.js +30 -0
  42. package/dist/execution/resilience/types.js.map +1 -0
  43. package/dist/execution/transport/event-buffer.js +208 -0
  44. package/dist/execution/transport/event-buffer.js.map +1 -0
  45. package/dist/execution/transport/index.js +10 -0
  46. package/dist/execution/transport/index.js.map +1 -0
  47. package/dist/execution/transport/sse-transport.js +282 -0
  48. package/dist/execution/transport/sse-transport.js.map +1 -0
  49. package/dist/execution/transport/transport-manager.js +231 -0
  50. package/dist/execution/transport/transport-manager.js.map +1 -0
  51. package/dist/execution/workflow/index.js +13 -0
  52. package/dist/execution/workflow/index.js.map +1 -0
  53. package/dist/execution/workflow/linear-orchestrator.js +683 -0
  54. package/dist/execution/workflow/linear-orchestrator.js.map +1 -0
  55. package/dist/execution/workflow/memory-storage.js +68 -0
  56. package/dist/execution/workflow/memory-storage.js.map +1 -0
  57. package/dist/execution/workflow/orchestrator.js +9 -0
  58. package/dist/execution/workflow/orchestrator.js.map +1 -0
  59. package/dist/execution/workflow/types.js +9 -0
  60. package/dist/execution/workflow/types.js.map +1 -0
  61. package/dist/execution/workflow/utils.js +152 -0
  62. package/dist/execution/workflow/utils.js.map +1 -0
  63. package/dist/execution/worktree/config.js +280 -0
  64. package/dist/execution/worktree/config.js.map +1 -0
  65. package/dist/execution/worktree/git-cli.js +189 -0
  66. package/dist/execution/worktree/git-cli.js.map +1 -0
  67. package/dist/execution/worktree/index.js +15 -0
  68. package/dist/execution/worktree/index.js.map +1 -0
  69. package/dist/execution/worktree/manager.js +452 -0
  70. package/dist/execution/worktree/manager.js.map +1 -0
  71. package/dist/execution/worktree/types.js +42 -0
  72. package/dist/execution/worktree/types.js.map +1 -0
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +357 -104
  75. package/dist/index.js.map +1 -7
  76. package/dist/routes/executions-stream.js +55 -0
  77. package/dist/routes/executions-stream.js.map +1 -0
  78. package/dist/routes/executions.js +267 -0
  79. package/dist/routes/executions.js.map +1 -0
  80. package/dist/routes/feedback.js +329 -0
  81. package/dist/routes/feedback.js.map +1 -0
  82. package/dist/routes/issues.js +280 -0
  83. package/dist/routes/issues.js.map +1 -0
  84. package/dist/routes/relationships.js +308 -0
  85. package/dist/routes/relationships.js.map +1 -0
  86. package/dist/routes/specs.js +270 -0
  87. package/dist/routes/specs.js.map +1 -0
  88. package/dist/services/db.js +85 -0
  89. package/dist/services/db.js.map +1 -0
  90. package/dist/services/execution-lifecycle.d.ts.map +1 -1
  91. package/dist/services/execution-lifecycle.js +291 -0
  92. package/dist/services/execution-lifecycle.js.map +1 -0
  93. package/dist/services/execution-service.js +676 -0
  94. package/dist/services/execution-service.js.map +1 -0
  95. package/dist/services/executions.js +164 -0
  96. package/dist/services/executions.js.map +1 -0
  97. package/dist/services/export.js +106 -0
  98. package/dist/services/export.js.map +1 -0
  99. package/dist/services/feedback.js +54 -0
  100. package/dist/services/feedback.js.map +1 -0
  101. package/dist/services/issues.js +35 -0
  102. package/dist/services/issues.js.map +1 -0
  103. package/dist/services/prompt-template-engine.js +212 -0
  104. package/dist/services/prompt-template-engine.js.map +1 -0
  105. package/dist/services/prompt-templates.js +236 -0
  106. package/dist/services/prompt-templates.js.map +1 -0
  107. package/dist/services/relationships.js +42 -0
  108. package/dist/services/relationships.js.map +1 -0
  109. package/dist/services/specs.js +35 -0
  110. package/dist/services/specs.js.map +1 -0
  111. package/dist/services/watcher.js +69 -0
  112. package/dist/services/watcher.js.map +1 -0
  113. package/dist/services/websocket.js +389 -0
  114. package/dist/services/websocket.js.map +1 -0
  115. package/dist/utils/sudocode-dir.js +9 -0
  116. package/dist/utils/sudocode-dir.js.map +1 -0
  117. package/package.json +4 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear-orchestrator.js","sourceRoot":"","sources":["../../../src/execution/workflow/linear-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * In-Memory Workflow Storage Implementation
3
+ *
4
+ * Simple in-memory implementation of IWorkflowStorage for testing and development.
5
+ *
6
+ * @module execution/workflow/memory-storage
7
+ */
8
+ /**
9
+ * InMemoryWorkflowStorage - In-memory checkpoint storage
10
+ *
11
+ * Simple implementation that stores checkpoints in a Map.
12
+ * Suitable for testing and single-process workflows.
13
+ * Not suitable for production use with multiple processes.
14
+ */
15
+ export class InMemoryWorkflowStorage {
16
+ _checkpoints = new Map();
17
+ /**
18
+ * Save a checkpoint to memory
19
+ *
20
+ * @param checkpoint - Checkpoint to save
21
+ */
22
+ async saveCheckpoint(checkpoint) {
23
+ this._checkpoints.set(checkpoint.executionId, checkpoint);
24
+ }
25
+ /**
26
+ * Load a checkpoint from memory
27
+ *
28
+ * @param executionId - Execution ID to load
29
+ * @returns Checkpoint or null if not found
30
+ */
31
+ async loadCheckpoint(executionId) {
32
+ return this._checkpoints.get(executionId) || null;
33
+ }
34
+ /**
35
+ * List all checkpoints, optionally filtered by workflow ID
36
+ *
37
+ * @param workflowId - Optional workflow ID to filter by
38
+ * @returns Array of checkpoints
39
+ */
40
+ async listCheckpoints(workflowId) {
41
+ const all = Array.from(this._checkpoints.values());
42
+ if (workflowId) {
43
+ return all.filter((cp) => cp.workflowId === workflowId);
44
+ }
45
+ return all;
46
+ }
47
+ /**
48
+ * Delete a checkpoint from memory
49
+ *
50
+ * @param executionId - Execution ID to delete
51
+ */
52
+ async deleteCheckpoint(executionId) {
53
+ this._checkpoints.delete(executionId);
54
+ }
55
+ /**
56
+ * Clear all checkpoints (useful for testing)
57
+ */
58
+ clear() {
59
+ this._checkpoints.clear();
60
+ }
61
+ /**
62
+ * Get the number of stored checkpoints (useful for testing)
63
+ */
64
+ size() {
65
+ return this._checkpoints.size;
66
+ }
67
+ }
68
+ //# sourceMappingURL=memory-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-storage.js","sourceRoot":"","sources":["../../../src/execution/workflow/memory-storage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;;;GAMG;AACH,MAAM,OAAO,uBAAuB;IAC3B,YAAY,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE5D;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,UAA8B;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,WAAmB;QAEnB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,UAAmB;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Workflow Orchestrator Interface
3
+ *
4
+ * Defines the contract for workflow orchestration implementations.
5
+ *
6
+ * @module execution/workflow/orchestrator
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/execution/workflow/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Workflow Layer Types
3
+ *
4
+ * Layer 4: Task Execution Layer - Workflow Orchestration & State Management
5
+ *
6
+ * @module execution/workflow/types
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/execution/workflow/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Workflow Utility Functions
3
+ *
4
+ * Helper functions for template rendering, path extraction, and ID generation.
5
+ *
6
+ * @module execution/workflow/utils
7
+ */
8
+ /**
9
+ * Generate a unique ID with a given prefix
10
+ *
11
+ * @param prefix - Prefix for the ID (e.g., 'execution', 'checkpoint')
12
+ * @returns Unique ID string
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const id = generateId('execution');
17
+ * // Returns: 'execution-1234567890-abc123'
18
+ * ```
19
+ */
20
+ export function generateId(prefix = 'id') {
21
+ const timestamp = Date.now();
22
+ const random = Math.random().toString(36).substring(2, 9);
23
+ return `${prefix}-${timestamp}-${random}`;
24
+ }
25
+ /**
26
+ * Render a template string by replacing {{variable}} placeholders with context values
27
+ *
28
+ * @param template - Template string with {{variable}} placeholders
29
+ * @param context - Context object containing variable values
30
+ * @returns Rendered string with variables replaced
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const context = { name: 'World', greeting: 'Hello' };
35
+ * const result = renderTemplate('{{greeting}} {{name}}!', context);
36
+ * // Returns: 'Hello World!'
37
+ * ```
38
+ */
39
+ export function renderTemplate(template, context) {
40
+ let rendered = template;
41
+ // Replace all {{variable}} placeholders with values from context
42
+ const placeholderRegex = /\{\{(\w+(?:\.\w+)*)\}\}/g;
43
+ rendered = rendered.replace(placeholderRegex, (match, path) => {
44
+ const value = extractValue(context, path);
45
+ // If value is undefined or null, leave placeholder as-is
46
+ if (value === undefined || value === null) {
47
+ return match;
48
+ }
49
+ // Convert value to string
50
+ return String(value);
51
+ });
52
+ return rendered;
53
+ }
54
+ /**
55
+ * Extract a value from an object using a dot-notation path
56
+ *
57
+ * @param obj - Object to extract value from
58
+ * @param path - Dot-notation path (e.g., 'user.profile.name')
59
+ * @returns Extracted value or undefined if path doesn't exist
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const obj = { user: { profile: { name: 'Alice' } } };
64
+ * const name = extractValue(obj, 'user.profile.name');
65
+ * // Returns: 'Alice'
66
+ * ```
67
+ */
68
+ export function extractValue(obj, path) {
69
+ if (obj === null || obj === undefined) {
70
+ return undefined;
71
+ }
72
+ // Handle simple paths (no dots)
73
+ if (!path.includes('.')) {
74
+ return obj[path];
75
+ }
76
+ // Split path and traverse
77
+ const parts = path.split('.');
78
+ let value = obj;
79
+ for (const part of parts) {
80
+ if (value === null || value === undefined) {
81
+ return undefined;
82
+ }
83
+ value = value[part];
84
+ }
85
+ return value;
86
+ }
87
+ /**
88
+ * Merge two context objects, with the second overriding the first
89
+ *
90
+ * @param base - Base context object
91
+ * @param updates - Updates to merge into base
92
+ * @returns New merged context object
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const base = { a: 1, b: 2 };
97
+ * const updates = { b: 3, c: 4 };
98
+ * const merged = mergeContext(base, updates);
99
+ * // Returns: { a: 1, b: 3, c: 4 }
100
+ * ```
101
+ */
102
+ export function mergeContext(base, updates) {
103
+ return {
104
+ ...base,
105
+ ...updates,
106
+ };
107
+ }
108
+ /**
109
+ * Evaluate a condition string in the context
110
+ *
111
+ * @param condition - Condition string to evaluate (e.g., '{{isEnabled}}')
112
+ * @param context - Context object
113
+ * @returns Boolean result of condition
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const context = { isEnabled: true };
118
+ * const result = evaluateCondition('{{isEnabled}}', context);
119
+ * // Returns: true
120
+ * ```
121
+ */
122
+ export function evaluateCondition(condition, context) {
123
+ // Render the condition template
124
+ const rendered = renderTemplate(condition, context);
125
+ // If template still contains placeholders, variables are missing - treat as false (fail-safe)
126
+ if (rendered.includes('{{') && rendered.includes('}}')) {
127
+ return false;
128
+ }
129
+ // Simple boolean evaluation
130
+ // True if: 'true', '1', non-empty string
131
+ // False if: 'false', '0', '', or falsy value
132
+ if (rendered === 'true' || rendered === '1') {
133
+ return true;
134
+ }
135
+ if (rendered === 'false' || rendered === '0' || rendered === '') {
136
+ return false;
137
+ }
138
+ // For other values, check if they're truthy
139
+ return Boolean(rendered);
140
+ }
141
+ /**
142
+ * Create initial workflow context
143
+ *
144
+ * @param initialValues - Initial context values
145
+ * @returns New context object
146
+ */
147
+ export function createContext(initialValues = {}) {
148
+ return {
149
+ ...initialValues,
150
+ };
151
+ }
152
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/execution/workflow/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Worktree Configuration
3
+ *
4
+ * Loads and validates worktree configuration from .sudocode/config.json
5
+ *
6
+ * @module execution/worktree/config
7
+ */
8
+ import fs from 'fs';
9
+ import path from 'path';
10
+ /**
11
+ * Default worktree configuration
12
+ */
13
+ export const DEFAULT_WORKTREE_CONFIG = {
14
+ worktreeStoragePath: '.sudocode/worktrees',
15
+ autoCreateBranches: true,
16
+ autoDeleteBranches: false,
17
+ enableSparseCheckout: false,
18
+ sparseCheckoutPatterns: undefined,
19
+ branchPrefix: 'sudocode',
20
+ cleanupOrphanedWorktreesOnStartup: true,
21
+ };
22
+ /**
23
+ * Validate and normalize worktree configuration
24
+ *
25
+ * @param rawConfig - Raw configuration object from config.json
26
+ * @returns Validated configuration with warnings
27
+ */
28
+ export function validateWorktreeConfig(rawConfig) {
29
+ const warnings = [];
30
+ const config = { ...DEFAULT_WORKTREE_CONFIG };
31
+ // Validate worktreeStoragePath
32
+ if (rawConfig.worktreeStoragePath !== undefined) {
33
+ if (typeof rawConfig.worktreeStoragePath === 'string') {
34
+ config.worktreeStoragePath = rawConfig.worktreeStoragePath;
35
+ }
36
+ else {
37
+ warnings.push(`Invalid worktreeStoragePath: must be a string. Using default: ${DEFAULT_WORKTREE_CONFIG.worktreeStoragePath}`);
38
+ }
39
+ }
40
+ // Validate autoCreateBranches
41
+ if (rawConfig.autoCreateBranches !== undefined) {
42
+ if (typeof rawConfig.autoCreateBranches === 'boolean') {
43
+ config.autoCreateBranches = rawConfig.autoCreateBranches;
44
+ }
45
+ else {
46
+ warnings.push(`Invalid autoCreateBranches: must be a boolean. Using default: ${DEFAULT_WORKTREE_CONFIG.autoCreateBranches}`);
47
+ }
48
+ }
49
+ // Validate autoDeleteBranches
50
+ if (rawConfig.autoDeleteBranches !== undefined) {
51
+ if (typeof rawConfig.autoDeleteBranches === 'boolean') {
52
+ config.autoDeleteBranches = rawConfig.autoDeleteBranches;
53
+ }
54
+ else {
55
+ warnings.push(`Invalid autoDeleteBranches: must be a boolean. Using default: ${DEFAULT_WORKTREE_CONFIG.autoDeleteBranches}`);
56
+ }
57
+ }
58
+ // Validate enableSparseCheckout
59
+ if (rawConfig.enableSparseCheckout !== undefined) {
60
+ if (typeof rawConfig.enableSparseCheckout === 'boolean') {
61
+ config.enableSparseCheckout = rawConfig.enableSparseCheckout;
62
+ }
63
+ else {
64
+ warnings.push(`Invalid enableSparseCheckout: must be a boolean. Using default: ${DEFAULT_WORKTREE_CONFIG.enableSparseCheckout}`);
65
+ }
66
+ }
67
+ // Validate sparseCheckoutPatterns
68
+ if (rawConfig.sparseCheckoutPatterns !== undefined) {
69
+ if (Array.isArray(rawConfig.sparseCheckoutPatterns) &&
70
+ rawConfig.sparseCheckoutPatterns.every((p) => typeof p === 'string')) {
71
+ config.sparseCheckoutPatterns = rawConfig.sparseCheckoutPatterns;
72
+ }
73
+ else {
74
+ warnings.push('Invalid sparseCheckoutPatterns: must be an array of strings. Ignoring value.');
75
+ config.sparseCheckoutPatterns = undefined;
76
+ }
77
+ }
78
+ // Validate branchPrefix
79
+ if (rawConfig.branchPrefix !== undefined) {
80
+ if (typeof rawConfig.branchPrefix === 'string') {
81
+ // Validate git branch name characters (basic validation)
82
+ if (isValidGitBranchPrefix(rawConfig.branchPrefix)) {
83
+ config.branchPrefix = rawConfig.branchPrefix;
84
+ }
85
+ else {
86
+ warnings.push(`Invalid branchPrefix: contains invalid git branch name characters. Using default: ${DEFAULT_WORKTREE_CONFIG.branchPrefix}`);
87
+ }
88
+ }
89
+ else {
90
+ warnings.push(`Invalid branchPrefix: must be a string. Using default: ${DEFAULT_WORKTREE_CONFIG.branchPrefix}`);
91
+ }
92
+ }
93
+ // Validate cleanupOrphanedWorktreesOnStartup
94
+ if (rawConfig.cleanupOrphanedWorktreesOnStartup !== undefined) {
95
+ if (typeof rawConfig.cleanupOrphanedWorktreesOnStartup === 'boolean') {
96
+ config.cleanupOrphanedWorktreesOnStartup =
97
+ rawConfig.cleanupOrphanedWorktreesOnStartup;
98
+ }
99
+ else {
100
+ warnings.push(`Invalid cleanupOrphanedWorktreesOnStartup: must be a boolean. Using default: ${DEFAULT_WORKTREE_CONFIG.cleanupOrphanedWorktreesOnStartup}`);
101
+ }
102
+ }
103
+ return { config, warnings };
104
+ }
105
+ /**
106
+ * Validate git branch prefix characters
107
+ * Basic validation - checks for common invalid characters
108
+ *
109
+ * @param prefix - Branch prefix to validate
110
+ * @returns True if valid
111
+ */
112
+ function isValidGitBranchPrefix(prefix) {
113
+ // Git branch names cannot contain: .., @{, \, ^, ~, :, ?, *, [, space, or control characters
114
+ // Also cannot start with / or end with .lock
115
+ const invalidPatterns = [
116
+ /\.\./,
117
+ /@\{/,
118
+ /\\/,
119
+ /\^/,
120
+ /~/,
121
+ /:/,
122
+ /\?/,
123
+ /\*/,
124
+ /\[/,
125
+ /\s/,
126
+ // eslint-disable-next-line no-control-regex
127
+ /[\x00-\x1f\x7f]/,
128
+ ];
129
+ if (prefix.startsWith('/') || prefix.endsWith('.lock')) {
130
+ return false;
131
+ }
132
+ return !invalidPatterns.some((pattern) => pattern.test(prefix));
133
+ }
134
+ /**
135
+ * Load worktree configuration from .sudocode/config.json
136
+ *
137
+ * @param projectRoot - Path to project root (default: current working directory)
138
+ * @returns Validated configuration with warnings
139
+ */
140
+ export function loadWorktreeConfig(projectRoot = process.cwd()) {
141
+ const configPath = path.join(projectRoot, '.sudocode', 'config.json');
142
+ // If config file doesn't exist, return defaults
143
+ if (!fs.existsSync(configPath)) {
144
+ return {
145
+ config: DEFAULT_WORKTREE_CONFIG,
146
+ warnings: [
147
+ `Config file not found at ${configPath}. Using default configuration.`,
148
+ ],
149
+ };
150
+ }
151
+ try {
152
+ const rawFileContent = fs.readFileSync(configPath, 'utf-8');
153
+ const rawConfig = JSON.parse(rawFileContent);
154
+ // Extract worktree section
155
+ const worktreeConfig = rawConfig.worktree || {};
156
+ // Validate and return
157
+ return validateWorktreeConfig(worktreeConfig);
158
+ }
159
+ catch (error) {
160
+ const errorMessage = error instanceof Error ? error.message : String(error);
161
+ return {
162
+ config: DEFAULT_WORKTREE_CONFIG,
163
+ warnings: [
164
+ `Failed to load config from ${configPath}: ${errorMessage}. Using default configuration.`,
165
+ ],
166
+ };
167
+ }
168
+ }
169
+ /**
170
+ * Singleton instance of worktree configuration
171
+ */
172
+ let cachedConfig = null;
173
+ let cachedProjectRoot = null;
174
+ /**
175
+ * Get worktree configuration (singleton pattern)
176
+ * Caches the configuration per project root
177
+ *
178
+ * @param projectRoot - Path to project root (default: current working directory)
179
+ * @param forceReload - Force reload from disk
180
+ * @returns Worktree configuration
181
+ */
182
+ export function getWorktreeConfig(projectRoot = process.cwd(), forceReload = false) {
183
+ // Return cached config if same project root and not forcing reload
184
+ if (!forceReload && cachedConfig && cachedProjectRoot === projectRoot) {
185
+ return cachedConfig;
186
+ }
187
+ // Load and validate configuration
188
+ const { config, warnings } = loadWorktreeConfig(projectRoot);
189
+ // Log warnings
190
+ if (warnings.length > 0) {
191
+ console.warn('[Worktree Config] Configuration warnings:');
192
+ warnings.forEach((warning) => console.warn(` - ${warning}`));
193
+ }
194
+ // Cache the configuration
195
+ cachedConfig = config;
196
+ cachedProjectRoot = projectRoot;
197
+ return config;
198
+ }
199
+ /**
200
+ * Clear the cached configuration (useful for testing)
201
+ */
202
+ export function clearWorktreeConfigCache() {
203
+ cachedConfig = null;
204
+ cachedProjectRoot = null;
205
+ }
206
+ /**
207
+ * Update worktree configuration in .sudocode/config.json
208
+ * Preserves other configuration sections
209
+ *
210
+ * @param updates - Partial configuration to update
211
+ * @param projectRoot - Path to project root (default: current working directory)
212
+ * @returns Validation result with updated config
213
+ * @throws Error if unable to write config file
214
+ */
215
+ export function updateWorktreeConfig(updates, projectRoot = process.cwd()) {
216
+ const configPath = path.join(projectRoot, '.sudocode', 'config.json');
217
+ // Load existing config (or create new one)
218
+ let existingConfig = {};
219
+ if (fs.existsSync(configPath)) {
220
+ try {
221
+ const rawFileContent = fs.readFileSync(configPath, 'utf-8');
222
+ existingConfig = JSON.parse(rawFileContent);
223
+ }
224
+ catch (error) {
225
+ const errorMessage = error instanceof Error ? error.message : String(error);
226
+ throw new Error(`Failed to read existing config from ${configPath}: ${errorMessage}`);
227
+ }
228
+ }
229
+ else {
230
+ // Create .sudocode directory if it doesn't exist
231
+ const sudocodeDir = path.dirname(configPath);
232
+ if (!fs.existsSync(sudocodeDir)) {
233
+ fs.mkdirSync(sudocodeDir, { recursive: true });
234
+ }
235
+ }
236
+ // Merge updates with existing worktree config
237
+ const mergedWorktreeConfig = {
238
+ ...(existingConfig.worktree || {}),
239
+ ...updates,
240
+ };
241
+ // Validate merged config
242
+ const validationResult = validateWorktreeConfig(mergedWorktreeConfig);
243
+ // Update config object
244
+ existingConfig.worktree = validationResult.config;
245
+ // Write to file
246
+ try {
247
+ fs.writeFileSync(configPath, JSON.stringify(existingConfig, null, 2), 'utf-8');
248
+ }
249
+ catch (error) {
250
+ const errorMessage = error instanceof Error ? error.message : String(error);
251
+ throw new Error(`Failed to write config to ${configPath}: ${errorMessage}`);
252
+ }
253
+ // Invalidate cache
254
+ if (cachedProjectRoot === projectRoot) {
255
+ cachedConfig = null;
256
+ cachedProjectRoot = null;
257
+ }
258
+ return validationResult;
259
+ }
260
+ /**
261
+ * Set a single worktree configuration property
262
+ *
263
+ * @param key - Configuration key to set
264
+ * @param value - Value to set
265
+ * @param projectRoot - Path to project root (default: current working directory)
266
+ * @returns Validation result with updated config
267
+ */
268
+ export function setWorktreeConfigProperty(key, value, projectRoot = process.cwd()) {
269
+ return updateWorktreeConfig({ [key]: value }, projectRoot);
270
+ }
271
+ /**
272
+ * Reset worktree configuration to defaults
273
+ *
274
+ * @param projectRoot - Path to project root (default: current working directory)
275
+ * @returns Validation result with default config
276
+ */
277
+ export function resetWorktreeConfig(projectRoot = process.cwd()) {
278
+ return updateWorktreeConfig(DEFAULT_WORKTREE_CONFIG, projectRoot);
279
+ }
280
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/execution/worktree/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAmBxB;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,SAAS;IACjC,YAAY,EAAE,UAAU;IACxB,iCAAiC,EAAE,IAAI;CACxC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAkC;IAElC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAmB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAE9D,+BAA+B;IAC/B,IAAI,SAAS,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAChD,IAAI,OAAO,SAAS,CAAC,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,CAAC,mBAAmB,GAAG,SAAS,CAAC,mBAAmB,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,iEAAiE,uBAAuB,CAAC,mBAAmB,EAAE,CAC/G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,SAAS,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC/C,IAAI,OAAO,SAAS,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACtD,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,iEAAiE,uBAAuB,CAAC,kBAAkB,EAAE,CAC9G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,SAAS,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC/C,IAAI,OAAO,SAAS,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACtD,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,iEAAiE,uBAAuB,CAAC,kBAAkB,EAAE,CAC9G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAS,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACjD,IAAI,OAAO,SAAS,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACxD,MAAM,CAAC,oBAAoB,GAAG,SAAS,CAAC,oBAAoB,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,mEAAmE,uBAAuB,CAAC,oBAAoB,EAAE,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,SAAS,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACnD,IACE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC;YAC/C,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAC7E,CAAC;YACD,MAAM,CAAC,sBAAsB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,8EAA8E,CAC/E,CAAC;YACF,MAAM,CAAC,sBAAsB,GAAG,SAAS,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,OAAO,SAAS,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC/C,yDAAyD;YACzD,IAAI,sBAAsB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CACX,qFAAqF,uBAAuB,CAAC,YAAY,EAAE,CAC5H,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,0DAA0D,uBAAuB,CAAC,YAAY,EAAE,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,SAAS,CAAC,iCAAiC,KAAK,SAAS,EAAE,CAAC;QAC9D,IAAI,OAAO,SAAS,CAAC,iCAAiC,KAAK,SAAS,EAAE,CAAC;YACrE,MAAM,CAAC,iCAAiC;gBACtC,SAAS,CAAC,iCAAiC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,gFAAgF,uBAAuB,CAAC,iCAAiC,EAAE,CAC5I,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,MAAc;IAC5C,6FAA6F;IAC7F,6CAA6C;IAC7C,MAAM,eAAe,GAAG;QACtB,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,4CAA4C;QAC5C,iBAAiB;KAClB,CAAC;IAEF,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAEtE,gDAAgD;IAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,MAAM,EAAE,uBAAuB;YAC/B,QAAQ,EAAE;gBACR,4BAA4B,UAAU,gCAAgC;aACvE;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAc,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAExD,2BAA2B;QAC3B,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEhD,sBAAsB;QACtB,OAAO,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO;YACL,MAAM,EAAE,uBAAuB;YAC/B,QAAQ,EAAE;gBACR,8BAA8B,UAAU,KAAK,YAAY,gCAAgC;aAC1F;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,IAAI,YAAY,GAA0B,IAAI,CAAC;AAC/C,IAAI,iBAAiB,GAAkB,IAAI,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,cAAsB,OAAO,CAAC,GAAG,EAAE,EACnC,WAAW,GAAG,KAAK;IAEnB,mEAAmE;IACnE,IAAI,CAAC,WAAW,IAAI,YAAY,IAAI,iBAAiB,KAAK,WAAW,EAAE,CAAC;QACtE,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAkC;IAClC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAE7D,eAAe;IACf,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,0BAA0B;IAC1B,YAAY,GAAG,MAAM,CAAC;IACtB,iBAAiB,GAAG,WAAW,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,YAAY,GAAG,IAAI,CAAC;IACpB,iBAAiB,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgC,EAChC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAEtE,2CAA2C;IAC3C,IAAI,cAAc,GAAc,EAAE,CAAC;IAEnC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5D,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,uCAAuC,UAAU,KAAK,YAAY,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iDAAiD;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,oBAAoB,GAAG;QAC3B,GAAG,CAAC,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;QAClC,GAAG,OAAO;KACX,CAAC;IAEF,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IAEtE,uBAAuB;IACvB,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAElD,gBAAgB;IAChB,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,KAAK,YAAY,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,mBAAmB;IACnB,IAAI,iBAAiB,KAAK,WAAW,EAAE,CAAC;QACtC,YAAY,GAAG,IAAI,CAAC;QACpB,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAM,EACN,KAAwB,EACxB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,OAAO,oBAAoB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,OAAO,oBAAoB,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;AACpE,CAAC"}