@sudocode-ai/cli 0.1.18 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1299 -0
- package/dist/auth/claude.d.ts +19 -0
- package/dist/auth/claude.d.ts.map +1 -0
- package/dist/auth/claude.js +179 -0
- package/dist/auth/claude.js.map +1 -0
- package/dist/auth/clear.d.ts +17 -0
- package/dist/auth/clear.d.ts.map +1 -0
- package/dist/auth/clear.js +68 -0
- package/dist/auth/clear.js.map +1 -0
- package/dist/auth/credentials.d.ts +93 -0
- package/dist/auth/credentials.d.ts.map +1 -0
- package/dist/auth/credentials.js +255 -0
- package/dist/auth/credentials.js.map +1 -0
- package/dist/auth/index.d.ts +13 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +19 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/status.d.ts +17 -0
- package/dist/auth/status.d.ts.map +1 -0
- package/dist/auth/status.js +132 -0
- package/dist/auth/status.js.map +1 -0
- package/dist/cli/auth-commands.d.ts +34 -0
- package/dist/cli/auth-commands.d.ts.map +1 -0
- package/dist/cli/auth-commands.js +28 -0
- package/dist/cli/auth-commands.js.map +1 -0
- package/dist/cli/issue-commands.d.ts.map +1 -1
- package/dist/cli/issue-commands.js +6 -3
- package/dist/cli/issue-commands.js.map +1 -1
- package/dist/cli/remote-commands.d.ts +59 -0
- package/dist/cli/remote-commands.d.ts.map +1 -0
- package/dist/cli/remote-commands.js +391 -0
- package/dist/cli/remote-commands.js.map +1 -0
- package/dist/cli/sync-commands.d.ts.map +1 -1
- package/dist/cli/sync-commands.js +6 -16
- package/dist/cli/sync-commands.js.map +1 -1
- package/dist/cli/update-commands.d.ts.map +1 -1
- package/dist/cli/update-commands.js +56 -0
- package/dist/cli/update-commands.js.map +1 -1
- package/dist/cli.js +131 -1
- package/dist/cli.js.map +1 -1
- package/dist/filename-generator.d.ts +10 -0
- package/dist/filename-generator.d.ts.map +1 -1
- package/dist/filename-generator.js +30 -0
- package/dist/filename-generator.js.map +1 -1
- package/dist/operations/feedback-anchors.d.ts +4 -2
- package/dist/operations/feedback-anchors.d.ts.map +1 -1
- package/dist/operations/feedback-anchors.js +14 -0
- package/dist/operations/feedback-anchors.js.map +1 -1
- package/dist/remote/claude-auth.d.ts +65 -0
- package/dist/remote/claude-auth.d.ts.map +1 -0
- package/dist/remote/claude-auth.js +100 -0
- package/dist/remote/claude-auth.js.map +1 -0
- package/dist/remote/config.d.ts +83 -0
- package/dist/remote/config.d.ts.map +1 -0
- package/dist/remote/config.js +266 -0
- package/dist/remote/config.js.map +1 -0
- package/dist/remote/errors.d.ts +18 -0
- package/dist/remote/errors.d.ts.map +1 -0
- package/dist/remote/errors.js +27 -0
- package/dist/remote/errors.js.map +1 -0
- package/dist/remote/git-context.d.ts +51 -0
- package/dist/remote/git-context.d.ts.map +1 -0
- package/dist/remote/git-context.js +107 -0
- package/dist/remote/git-context.js.map +1 -0
- package/dist/remote/spawn-service.d.ts +86 -0
- package/dist/remote/spawn-service.d.ts.map +1 -0
- package/dist/remote/spawn-service.js +248 -0
- package/dist/remote/spawn-service.js.map +1 -0
- package/dist/remote/types.d.ts +82 -0
- package/dist/remote/types.d.ts.map +1 -0
- package/dist/remote/types.js +5 -0
- package/dist/remote/types.js.map +1 -0
- package/dist/sync.d.ts +1 -1
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +17 -15
- package/dist/sync.js.map +1 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +20 -7
- package/dist/watcher.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-service.d.ts","sourceRoot":"","sources":["../../src/remote/spawn-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD;;GAEG;AACH,qBAAa,kBAAkB;IAKjB,OAAO,CAAC,WAAW;IAJ/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAwB;gBAE3B,WAAW,EAAE,MAAM;IAMvC;;;OAGG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;;;OAMG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAwHnG;;;;;;OAMG;IACG,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IASvE;;;;;;;OAOG;IACG,MAAM,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBnF;;;;;;OAMG;IACG,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvE;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;OAKG;YACW,WAAW;CAY1B"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RemoteSpawnService - Main service for remote deployments
|
|
3
|
+
*
|
|
4
|
+
* Coordinates the full deployment workflow:
|
|
5
|
+
* 1. Check GitHub CLI authentication
|
|
6
|
+
* 2. Detect git context
|
|
7
|
+
* 3. Ensure Claude authentication
|
|
8
|
+
* 4. Load and merge configuration
|
|
9
|
+
* 5. Create sudopod provider
|
|
10
|
+
* 6. Execute deployment with progress indicator
|
|
11
|
+
*/
|
|
12
|
+
import { execSync, exec } from 'child_process';
|
|
13
|
+
import chalk from 'chalk';
|
|
14
|
+
import { GitContextDetector } from './git-context.js';
|
|
15
|
+
import { SpawnConfigManager } from './config.js';
|
|
16
|
+
import { ClaudeAuthIntegration } from './claude-auth.js';
|
|
17
|
+
/**
|
|
18
|
+
* Main service for remote deployments
|
|
19
|
+
*/
|
|
20
|
+
export class RemoteSpawnService {
|
|
21
|
+
sudocodeDir;
|
|
22
|
+
configManager;
|
|
23
|
+
gitDetector;
|
|
24
|
+
authIntegration;
|
|
25
|
+
constructor(sudocodeDir) {
|
|
26
|
+
this.sudocodeDir = sudocodeDir;
|
|
27
|
+
this.configManager = new SpawnConfigManager(sudocodeDir);
|
|
28
|
+
this.gitDetector = new GitContextDetector();
|
|
29
|
+
this.authIntegration = new ClaudeAuthIntegration();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Open a URL in the default browser (platform-agnostic)
|
|
33
|
+
* Fire and forget - doesn't block or throw errors
|
|
34
|
+
*/
|
|
35
|
+
openBrowser(url) {
|
|
36
|
+
const platform = process.platform;
|
|
37
|
+
let command;
|
|
38
|
+
if (platform === 'darwin') {
|
|
39
|
+
command = `open "${url}"`;
|
|
40
|
+
}
|
|
41
|
+
else if (platform === 'win32') {
|
|
42
|
+
command = `start "" "${url}"`;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Linux and other Unix-like systems
|
|
46
|
+
command = `xdg-open "${url}"`;
|
|
47
|
+
}
|
|
48
|
+
// Fire and forget - don't block on browser open
|
|
49
|
+
exec(command, (error) => {
|
|
50
|
+
if (error) {
|
|
51
|
+
// Silently fail - browser open is nice-to-have, not critical
|
|
52
|
+
console.log(chalk.gray(` (Could not auto-open browser: ${error.message})`));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Spawn to a remote provider
|
|
58
|
+
*
|
|
59
|
+
* @param options Spawn options with optional overrides
|
|
60
|
+
* @returns Deployment information
|
|
61
|
+
* @throws Error if deployment fails or prerequisites are not met
|
|
62
|
+
*/
|
|
63
|
+
async spawn(options) {
|
|
64
|
+
// 1. Check GitHub CLI authentication
|
|
65
|
+
console.log(chalk.blue('Checking GitHub authentication...'));
|
|
66
|
+
this.checkGitHubAuth();
|
|
67
|
+
console.log(chalk.green('✓ GitHub authenticated\n'));
|
|
68
|
+
// 2. Detect git context
|
|
69
|
+
console.log(chalk.blue('Detecting git context...'));
|
|
70
|
+
const gitContext = this.gitDetector.detectContext({
|
|
71
|
+
owner: options.owner,
|
|
72
|
+
repo: options.repo,
|
|
73
|
+
branch: options.branch,
|
|
74
|
+
remote: options.remote,
|
|
75
|
+
});
|
|
76
|
+
console.log(chalk.green(`✓ Detected: ${gitContext.owner}/${gitContext.repo} (${gitContext.branch})\n`));
|
|
77
|
+
// 3. Ensure Claude authentication
|
|
78
|
+
console.log(chalk.blue('Checking Claude authentication...'));
|
|
79
|
+
const claudeToken = await this.authIntegration.ensureAuthenticated();
|
|
80
|
+
if (!claudeToken) {
|
|
81
|
+
throw new Error('Claude authentication failed - no token available');
|
|
82
|
+
}
|
|
83
|
+
console.log(chalk.green('✓ Claude authenticated'));
|
|
84
|
+
console.log(chalk.gray(` Token length: ${claudeToken.length} characters\n`));
|
|
85
|
+
// 4. Load and merge configuration
|
|
86
|
+
const providerConfig = this.configManager.getProviderConfig('codespaces');
|
|
87
|
+
// Use defaults if provider config doesn't exist
|
|
88
|
+
const defaults = SpawnConfigManager.getDefaults().providers.codespaces;
|
|
89
|
+
const config = providerConfig || defaults;
|
|
90
|
+
const spawnConfig = {
|
|
91
|
+
git: {
|
|
92
|
+
owner: gitContext.owner,
|
|
93
|
+
repo: gitContext.repo,
|
|
94
|
+
branch: gitContext.branch,
|
|
95
|
+
},
|
|
96
|
+
server: {
|
|
97
|
+
port: options.port ?? config.port,
|
|
98
|
+
idleTimeout: options.idleTimeout ?? config.idleTimeout,
|
|
99
|
+
keepAliveHours: options.keepAliveHours ?? config.keepAliveHours,
|
|
100
|
+
},
|
|
101
|
+
providerOptions: {
|
|
102
|
+
machine: options.machine ?? config.machine,
|
|
103
|
+
retentionPeriod: options.retentionPeriod ?? config.retentionPeriod,
|
|
104
|
+
},
|
|
105
|
+
dev: options.dev ?? false,
|
|
106
|
+
agents: {
|
|
107
|
+
install: ['claude'],
|
|
108
|
+
},
|
|
109
|
+
models: {
|
|
110
|
+
claudeLtt: claudeToken,
|
|
111
|
+
},
|
|
112
|
+
sudocode: {
|
|
113
|
+
mode: options.dev ? 'local' : 'npm',
|
|
114
|
+
version: 'latest',
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
// 5. Create sudopod provider
|
|
118
|
+
const sudopod = await this.loadSudopod();
|
|
119
|
+
const provider = sudopod.createProvider({ type: 'codespaces' });
|
|
120
|
+
// 6. Execute deployment with progress indicator
|
|
121
|
+
console.log(chalk.blue('Spawning to GitHub Codespaces...'));
|
|
122
|
+
// Simple progress dots (no external dependency)
|
|
123
|
+
const progressInterval = setInterval(() => {
|
|
124
|
+
process.stdout.write('.');
|
|
125
|
+
}, 500);
|
|
126
|
+
try {
|
|
127
|
+
const deployment = await provider.deploy(spawnConfig);
|
|
128
|
+
clearInterval(progressInterval);
|
|
129
|
+
console.log(); // New line after dots
|
|
130
|
+
console.log(chalk.green('✓ Spawn complete'));
|
|
131
|
+
// Open browsers (unless noOpen option is set)
|
|
132
|
+
const noOpen = options.noOpen;
|
|
133
|
+
if (!noOpen) {
|
|
134
|
+
if (deployment.urls?.workspace) {
|
|
135
|
+
console.log(chalk.gray('Opening codespace in browser...'));
|
|
136
|
+
this.openBrowser(deployment.urls.workspace);
|
|
137
|
+
}
|
|
138
|
+
// Wait 5 seconds before opening Sudocode UI to give codespace time to initialize
|
|
139
|
+
if (deployment.urls?.sudocode) {
|
|
140
|
+
console.log(chalk.gray('Opening Sudocode UI in 5 seconds...\n'));
|
|
141
|
+
setTimeout(() => {
|
|
142
|
+
this.openBrowser(deployment.urls.sudocode);
|
|
143
|
+
}, 5000);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return deployment;
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
clearInterval(progressInterval);
|
|
150
|
+
console.log(); // New line after dots
|
|
151
|
+
console.log(chalk.red('✗ Spawn failed'));
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* List all deployments for a provider
|
|
157
|
+
*
|
|
158
|
+
* @param provider Provider name ('codespaces' or 'coder')
|
|
159
|
+
* @returns List of deployments
|
|
160
|
+
* @throws Error if provider not supported or listing fails
|
|
161
|
+
*/
|
|
162
|
+
async list(provider) {
|
|
163
|
+
this.validateProvider(provider);
|
|
164
|
+
const sudopod = await this.loadSudopod();
|
|
165
|
+
const providerInstance = sudopod.createProvider({ type: provider });
|
|
166
|
+
return await providerInstance.list();
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get status of a specific deployment
|
|
170
|
+
*
|
|
171
|
+
* @param provider Provider name ('codespaces' or 'coder')
|
|
172
|
+
* @param id Deployment ID
|
|
173
|
+
* @returns Deployment information
|
|
174
|
+
* @throws Error if deployment not found
|
|
175
|
+
*/
|
|
176
|
+
async status(provider, id) {
|
|
177
|
+
this.validateProvider(provider);
|
|
178
|
+
const sudopod = await this.loadSudopod();
|
|
179
|
+
const providerInstance = sudopod.createProvider({ type: provider });
|
|
180
|
+
// sudopod.getStatus() returns just the status string, not full deployment info
|
|
181
|
+
// So we need to list all deployments and find the one we're looking for
|
|
182
|
+
const deployments = await providerInstance.list();
|
|
183
|
+
const deployment = deployments.find((d) => d.id === id || d.name === id);
|
|
184
|
+
if (!deployment) {
|
|
185
|
+
throw new Error(`Deployment not found: ${id}`);
|
|
186
|
+
}
|
|
187
|
+
return deployment;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Stop and delete a deployment
|
|
191
|
+
*
|
|
192
|
+
* @param provider Provider name ('codespaces' or 'coder')
|
|
193
|
+
* @param id Deployment ID
|
|
194
|
+
* @throws Error if deployment not found or stop fails
|
|
195
|
+
*/
|
|
196
|
+
async stop(provider, id) {
|
|
197
|
+
this.validateProvider(provider);
|
|
198
|
+
const sudopod = await this.loadSudopod();
|
|
199
|
+
const providerInstance = sudopod.createProvider({ type: provider });
|
|
200
|
+
await providerInstance.stop(id);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Validate provider is supported
|
|
204
|
+
*
|
|
205
|
+
* @param provider Provider name to validate
|
|
206
|
+
* @throws Error if provider not supported
|
|
207
|
+
*/
|
|
208
|
+
validateProvider(provider) {
|
|
209
|
+
const supported = ['codespaces', 'coder'];
|
|
210
|
+
if (!supported.includes(provider)) {
|
|
211
|
+
throw new Error(`Unknown provider '${provider}'.\nSupported providers: ${supported.join(', ')}`);
|
|
212
|
+
}
|
|
213
|
+
if (provider === 'coder') {
|
|
214
|
+
throw new Error("Provider 'coder' is not yet supported.\nCurrently supported: codespaces");
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check if GitHub CLI is authenticated
|
|
219
|
+
*
|
|
220
|
+
* @throws Error if not authenticated
|
|
221
|
+
*/
|
|
222
|
+
checkGitHubAuth() {
|
|
223
|
+
try {
|
|
224
|
+
execSync('gh auth status', { stdio: 'ignore' });
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
throw new Error('GitHub CLI is not authenticated.\nRun: gh auth login');
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Load sudopod SDK dynamically
|
|
232
|
+
*
|
|
233
|
+
* @returns sudopod module
|
|
234
|
+
* @throws Error if sudopod is not installed
|
|
235
|
+
*/
|
|
236
|
+
async loadSudopod() {
|
|
237
|
+
try {
|
|
238
|
+
const sudopod = await import('sudopod');
|
|
239
|
+
return sudopod;
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
throw new Error('sudopod SDK is not installed.\n' +
|
|
243
|
+
'Install it with: npm install sudopod\n' +
|
|
244
|
+
'Or install globally: npm install -g sudopod');
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=spawn-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-service.js","sourceRoot":"","sources":["../../src/remote/spawn-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for remote deployment system
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Options for spawning a remote deployment
|
|
6
|
+
*/
|
|
7
|
+
export interface SpawnOptions {
|
|
8
|
+
/** Git repository owner */
|
|
9
|
+
owner?: string;
|
|
10
|
+
/** Git repository name */
|
|
11
|
+
repo?: string;
|
|
12
|
+
/** Branch to deploy */
|
|
13
|
+
branch?: string;
|
|
14
|
+
/** Server port */
|
|
15
|
+
port?: number;
|
|
16
|
+
/** Machine type/size */
|
|
17
|
+
machine?: string;
|
|
18
|
+
/** Idle timeout in minutes */
|
|
19
|
+
idleTimeout?: number;
|
|
20
|
+
/** Keep-alive duration in hours */
|
|
21
|
+
keepAliveHours?: number;
|
|
22
|
+
/** Retention period in days */
|
|
23
|
+
retentionPeriod?: number;
|
|
24
|
+
/** Git remote name (default: 'origin') */
|
|
25
|
+
remote?: string;
|
|
26
|
+
/** Development mode - use local sudocode packages instead of npm */
|
|
27
|
+
dev?: boolean;
|
|
28
|
+
/** Don't open browser automatically after deployment */
|
|
29
|
+
noOpen?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Git context information
|
|
33
|
+
*/
|
|
34
|
+
export interface GitInfo {
|
|
35
|
+
owner: string;
|
|
36
|
+
repo: string;
|
|
37
|
+
branch: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Server configuration
|
|
41
|
+
*/
|
|
42
|
+
export interface ServerConfig {
|
|
43
|
+
port: number;
|
|
44
|
+
idleTimeout: number;
|
|
45
|
+
keepAliveHours: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Provider-specific options
|
|
49
|
+
*/
|
|
50
|
+
export interface ProviderOptions {
|
|
51
|
+
machine: string;
|
|
52
|
+
retentionPeriod: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Deployment URLs
|
|
56
|
+
*/
|
|
57
|
+
export interface DeploymentUrls {
|
|
58
|
+
workspace: string;
|
|
59
|
+
sudocode: string;
|
|
60
|
+
ssh: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Information about a deployment
|
|
64
|
+
*/
|
|
65
|
+
export interface DeploymentInfo {
|
|
66
|
+
id: string;
|
|
67
|
+
name: string;
|
|
68
|
+
provider: 'codespaces' | 'coder';
|
|
69
|
+
git: GitInfo;
|
|
70
|
+
status: DeploymentStatus;
|
|
71
|
+
createdAt: string;
|
|
72
|
+
urls: DeploymentUrls;
|
|
73
|
+
keepAliveHours: number;
|
|
74
|
+
idleTimeout: number;
|
|
75
|
+
machine?: string;
|
|
76
|
+
retentionPeriod?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Deployment status
|
|
80
|
+
*/
|
|
81
|
+
export type DeploymentStatus = 'running' | 'stopped' | 'starting' | 'stopping' | 'provisioning' | 'failed';
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/remote/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,cAAc,GACd,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/remote/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/sync.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export interface SyncOptions {
|
|
|
41
41
|
export declare function syncMarkdownToJSONL(db: Database.Database, mdPath: string, options?: SyncOptions): Promise<MarkdownSyncResult>;
|
|
42
42
|
/**
|
|
43
43
|
* Sync from JSONL/SQLite to markdown file
|
|
44
|
-
*
|
|
44
|
+
* Writes full content (frontmatter + body) from database to markdown
|
|
45
45
|
*/
|
|
46
46
|
export declare function syncJSONLToMarkdown(db: Database.Database, entityId: string, entityType: "spec" | "issue", mdPath: string): Promise<MarkdownSyncResult>;
|
|
47
47
|
//# sourceMappingURL=sync.d.ts.map
|
package/dist/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAuB3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAoED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAoK7B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,OAAO,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAuB3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAoED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAoK7B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,OAAO,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,CAuD7B"}
|
package/dist/sync.js
CHANGED
|
@@ -183,7 +183,7 @@ export async function syncMarkdownToJSONL(db, mdPath, options = {}) {
|
|
|
183
183
|
}
|
|
184
184
|
/**
|
|
185
185
|
* Sync from JSONL/SQLite to markdown file
|
|
186
|
-
*
|
|
186
|
+
* Writes full content (frontmatter + body) from database to markdown
|
|
187
187
|
*/
|
|
188
188
|
export async function syncJSONLToMarkdown(db, entityId, entityType, mdPath) {
|
|
189
189
|
try {
|
|
@@ -204,17 +204,13 @@ export async function syncJSONLToMarkdown(db, entityId, entityType, mdPath) {
|
|
|
204
204
|
const tags = getTags(db, entityId, entityType);
|
|
205
205
|
// Build frontmatter
|
|
206
206
|
const frontmatter = entityToFrontmatter(entity, entityType, relationships, tags);
|
|
207
|
-
// Check if file exists
|
|
207
|
+
// Check if file exists (for action reporting)
|
|
208
208
|
const fileExists = fs.existsSync(mdPath);
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
// Create new file with content from database
|
|
215
|
-
const content = entity.content || "";
|
|
216
|
-
writeMarkdownFile(mdPath, frontmatter, content);
|
|
217
|
-
}
|
|
209
|
+
// Write full content (frontmatter + body) from database
|
|
210
|
+
// When this function is called, sync direction has already determined
|
|
211
|
+
// that database is the source of truth, so we write everything
|
|
212
|
+
const content = entity.content || "";
|
|
213
|
+
writeMarkdownFile(mdPath, frontmatter, content);
|
|
218
214
|
return {
|
|
219
215
|
success: true,
|
|
220
216
|
action: fileExists ? "updated" : "created",
|
|
@@ -296,12 +292,18 @@ async function syncSpec(db, id, frontmatter, content, references, isNew, user, f
|
|
|
296
292
|
const oldAnchor = typeof feedback.anchor === "string"
|
|
297
293
|
? JSON.parse(feedback.anchor)
|
|
298
294
|
: feedback.anchor;
|
|
295
|
+
// Skip feedback without anchors - they should be preserved unchanged
|
|
296
|
+
if (!oldAnchor) {
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
299
|
// Relocate the anchor
|
|
300
300
|
const newAnchor = relocateFeedbackAnchor(oldContent, content, oldAnchor);
|
|
301
|
-
// Update feedback with new anchor
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
301
|
+
// Update feedback with new anchor (newAnchor is never null here since oldAnchor was checked)
|
|
302
|
+
if (newAnchor) {
|
|
303
|
+
updateFeedback(db, feedback.id, {
|
|
304
|
+
anchor: newAnchor,
|
|
305
|
+
});
|
|
306
|
+
}
|
|
305
307
|
}
|
|
306
308
|
}
|
|
307
309
|
}
|
package/dist/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/watcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAkB3C,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAuClF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAiCD,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAkB3C,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAuClF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAiCD,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAu0BpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CA+BnE"}
|
package/dist/watcher.js
CHANGED
|
@@ -107,28 +107,38 @@ export function startWatcher(options) {
|
|
|
107
107
|
* and array element ordering. This ensures consistent hashes regardless of:
|
|
108
108
|
* - Object key order: {"id":"x","title":"y"} vs {"title":"y","id":"x"}
|
|
109
109
|
* - Array element order: [{to:"A"},{to:"B"}] vs [{to:"B"},{to:"A"}]
|
|
110
|
+
*
|
|
111
|
+
* IMPORTANT: Excludes timestamp fields (updated_at, created_at) from the hash
|
|
112
|
+
* because these change as a side effect of syncing and shouldn't trigger
|
|
113
|
+
* change detection. We only want to detect actual content changes.
|
|
110
114
|
*/
|
|
111
115
|
function computeCanonicalHash(entity) {
|
|
116
|
+
// Fields to exclude from hash comparison (timestamps change on every sync)
|
|
117
|
+
const excludeFields = new Set(["updated_at", "created_at"]);
|
|
112
118
|
// Recursively sort keys and array elements for consistent ordering
|
|
113
|
-
const canonicalize = (obj) => {
|
|
119
|
+
const canonicalize = (obj, isTopLevel = false) => {
|
|
114
120
|
if (obj === null || typeof obj !== "object") {
|
|
115
121
|
return obj;
|
|
116
122
|
}
|
|
117
123
|
if (Array.isArray(obj)) {
|
|
118
124
|
// Sort array elements by their JSON representation for deterministic ordering
|
|
119
125
|
return obj
|
|
120
|
-
.map(canonicalize)
|
|
126
|
+
.map((item) => canonicalize(item, false))
|
|
121
127
|
.sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b)));
|
|
122
128
|
}
|
|
123
129
|
const sorted = {};
|
|
124
130
|
Object.keys(obj)
|
|
125
131
|
.sort()
|
|
126
132
|
.forEach((key) => {
|
|
127
|
-
|
|
133
|
+
// Only exclude timestamp fields at the top level of the entity
|
|
134
|
+
if (isTopLevel && excludeFields.has(key)) {
|
|
135
|
+
return; // Skip this field
|
|
136
|
+
}
|
|
137
|
+
sorted[key] = canonicalize(obj[key], false);
|
|
128
138
|
});
|
|
129
139
|
return sorted;
|
|
130
140
|
};
|
|
131
|
-
const canonical = canonicalize(entity);
|
|
141
|
+
const canonical = canonicalize(entity, true);
|
|
132
142
|
return crypto
|
|
133
143
|
.createHash("sha256")
|
|
134
144
|
.update(JSON.stringify(canonical))
|
|
@@ -162,15 +172,18 @@ export function startWatcher(options) {
|
|
|
162
172
|
}
|
|
163
173
|
// Compare other key fields
|
|
164
174
|
if (entityType === "spec") {
|
|
165
|
-
if (frontmatter.priority !== dbEntity.priority)
|
|
175
|
+
if (frontmatter.priority !== dbEntity.priority) {
|
|
166
176
|
return false;
|
|
177
|
+
}
|
|
167
178
|
}
|
|
168
179
|
else {
|
|
169
180
|
const issue = dbEntity;
|
|
170
|
-
if (frontmatter.status !== issue.status)
|
|
181
|
+
if (frontmatter.status !== issue.status) {
|
|
171
182
|
return false;
|
|
172
|
-
|
|
183
|
+
}
|
|
184
|
+
if (frontmatter.priority !== issue.priority) {
|
|
173
185
|
return false;
|
|
186
|
+
}
|
|
174
187
|
}
|
|
175
188
|
return true; // Content matches
|
|
176
189
|
}
|