guidemode 0.2.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.
- package/LICENSE +21 -0
- package/README.md +85 -0
- package/dist/cjs/auth.d.ts +4 -0
- package/dist/cjs/auth.d.ts.map +1 -0
- package/dist/cjs/auth.js +191 -0
- package/dist/cjs/auth.js.map +1 -0
- package/dist/cjs/config.d.ts +24 -0
- package/dist/cjs/config.d.ts.map +1 -0
- package/dist/cjs/config.js +55 -0
- package/dist/cjs/config.js.map +1 -0
- package/dist/cjs/deploy.d.ts +18 -0
- package/dist/cjs/deploy.d.ts.map +1 -0
- package/dist/cjs/deploy.js +89 -0
- package/dist/cjs/deploy.js.map +1 -0
- package/dist/cjs/issue.d.ts +18 -0
- package/dist/cjs/issue.d.ts.map +1 -0
- package/dist/cjs/issue.js +79 -0
- package/dist/cjs/issue.js.map +1 -0
- package/dist/cjs/logs.d.ts +7 -0
- package/dist/cjs/logs.d.ts.map +1 -0
- package/dist/cjs/logs.js +75 -0
- package/dist/cjs/logs.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/setup.d.ts +8 -0
- package/dist/cjs/setup.d.ts.map +1 -0
- package/dist/cjs/setup.js +110 -0
- package/dist/cjs/setup.js.map +1 -0
- package/dist/cjs/status.d.ts +6 -0
- package/dist/cjs/status.d.ts.map +1 -0
- package/dist/cjs/status.js +171 -0
- package/dist/cjs/status.js.map +1 -0
- package/dist/cjs/sync.d.ts +8 -0
- package/dist/cjs/sync.d.ts.map +1 -0
- package/dist/cjs/sync.js +201 -0
- package/dist/cjs/sync.js.map +1 -0
- package/dist/cjs/utils/brand.d.ts +5 -0
- package/dist/cjs/utils/brand.d.ts.map +1 -0
- package/dist/cjs/utils/brand.js +8 -0
- package/dist/cjs/utils/brand.js.map +1 -0
- package/dist/cjs/utils/git.d.ts +11 -0
- package/dist/cjs/utils/git.d.ts.map +1 -0
- package/dist/cjs/utils/git.js +92 -0
- package/dist/cjs/utils/git.js.map +1 -0
- package/dist/cjs/utils/logger.d.ts +2 -0
- package/dist/cjs/utils/logger.d.ts.map +1 -0
- package/dist/cjs/utils/logger.js +26 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/cjs/validate.d.ts +22 -0
- package/dist/cjs/validate.d.ts.map +1 -0
- package/dist/cjs/validate.js +169 -0
- package/dist/cjs/validate.js.map +1 -0
- package/dist/esm/auth.d.ts +4 -0
- package/dist/esm/auth.d.ts.map +1 -0
- package/dist/esm/auth.js +191 -0
- package/dist/esm/auth.js.map +1 -0
- package/dist/esm/cli.d.ts +3 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js +348 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/config.d.ts +24 -0
- package/dist/esm/config.d.ts.map +1 -0
- package/dist/esm/config.js +55 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/deploy.d.ts +18 -0
- package/dist/esm/deploy.d.ts.map +1 -0
- package/dist/esm/deploy.js +89 -0
- package/dist/esm/deploy.js.map +1 -0
- package/dist/esm/issue.d.ts +18 -0
- package/dist/esm/issue.d.ts.map +1 -0
- package/dist/esm/issue.js +79 -0
- package/dist/esm/issue.js.map +1 -0
- package/dist/esm/logs.d.ts +7 -0
- package/dist/esm/logs.d.ts.map +1 -0
- package/dist/esm/logs.js +75 -0
- package/dist/esm/logs.js.map +1 -0
- package/dist/esm/setup.d.ts +8 -0
- package/dist/esm/setup.d.ts.map +1 -0
- package/dist/esm/setup.js +110 -0
- package/dist/esm/setup.js.map +1 -0
- package/dist/esm/status.d.ts +6 -0
- package/dist/esm/status.d.ts.map +1 -0
- package/dist/esm/status.js +171 -0
- package/dist/esm/status.js.map +1 -0
- package/dist/esm/sync.d.ts +8 -0
- package/dist/esm/sync.d.ts.map +1 -0
- package/dist/esm/sync.js +201 -0
- package/dist/esm/sync.js.map +1 -0
- package/dist/esm/utils/brand.d.ts +5 -0
- package/dist/esm/utils/brand.d.ts.map +1 -0
- package/dist/esm/utils/brand.js +8 -0
- package/dist/esm/utils/brand.js.map +1 -0
- package/dist/esm/utils/git.d.ts +11 -0
- package/dist/esm/utils/git.d.ts.map +1 -0
- package/dist/esm/utils/git.js +92 -0
- package/dist/esm/utils/git.js.map +1 -0
- package/dist/esm/utils/logger.d.ts +2 -0
- package/dist/esm/utils/logger.d.ts.map +1 -0
- package/dist/esm/utils/logger.js +26 -0
- package/dist/esm/utils/logger.js.map +1 -0
- package/dist/esm/validate.d.ts +22 -0
- package/dist/esm/validate.d.ts.map +1 -0
- package/dist/esm/validate.js +169 -0
- package/dist/esm/validate.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +54 -0
package/dist/esm/cli.js
ADDED
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { execSync } from 'node:child_process';
|
|
3
|
+
import { createInterface } from 'node:readline';
|
|
4
|
+
import { readFileSync } from 'node:fs';
|
|
5
|
+
import { dirname, join } from 'node:path';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
import { loginFlow, logoutFlow, whoAmI } from './auth.js';
|
|
10
|
+
import { loadConfig } from './config.js';
|
|
11
|
+
import { PREFIX } from './utils/brand.js';
|
|
12
|
+
import { createDeployment } from './deploy.js';
|
|
13
|
+
import { createIssue } from './issue.js';
|
|
14
|
+
import { runLogs } from './logs.js';
|
|
15
|
+
import { detectHooksTarget, installHooks, runSetup } from './setup.js';
|
|
16
|
+
import { runStatus } from './status.js';
|
|
17
|
+
import { runSync } from './sync.js';
|
|
18
|
+
import { validateCommand, validateWatch } from './validate.js';
|
|
19
|
+
const program = new Command();
|
|
20
|
+
// Get package version
|
|
21
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
|
+
// Try both paths: ../package.json (when running from src) and ../../package.json (when running from dist)
|
|
23
|
+
let packageJson;
|
|
24
|
+
try {
|
|
25
|
+
packageJson = JSON.parse(readFileSync(join(__dirname, '../package.json'), 'utf-8'));
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
packageJson = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
|
|
29
|
+
}
|
|
30
|
+
program.name('guidemode').description(`${PREFIX} CLI for GuideMode`).version(packageJson.version);
|
|
31
|
+
// Authentication commands
|
|
32
|
+
program
|
|
33
|
+
.command('login')
|
|
34
|
+
.description('Authenticate with GuideMode server')
|
|
35
|
+
.option('--server <url>', 'Server URL', 'https://app.guidemode.dev')
|
|
36
|
+
.action(async (options) => {
|
|
37
|
+
try {
|
|
38
|
+
await loginFlow(options.server);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
program
|
|
46
|
+
.command('logout')
|
|
47
|
+
.description('Remove stored credentials')
|
|
48
|
+
.action(async () => {
|
|
49
|
+
try {
|
|
50
|
+
await logoutFlow();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
program
|
|
58
|
+
.command('whoami')
|
|
59
|
+
.description('Show current authenticated user')
|
|
60
|
+
.action(async () => {
|
|
61
|
+
try {
|
|
62
|
+
await whoAmI();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
// Validation command
|
|
70
|
+
program
|
|
71
|
+
.command('validate <path>')
|
|
72
|
+
.description('Validate canonical JSONL files')
|
|
73
|
+
.option('--strict', 'Treat warnings as errors')
|
|
74
|
+
.option('--json', 'Output JSON format')
|
|
75
|
+
.option('--verbose', 'Show detailed error information')
|
|
76
|
+
.option('--watch', 'Watch for file changes and re-validate')
|
|
77
|
+
.option('--provider <name>', 'Filter by provider name (e.g., "cursor", "claude", "gemini")')
|
|
78
|
+
.action(async (path, options) => {
|
|
79
|
+
try {
|
|
80
|
+
if (options.watch) {
|
|
81
|
+
await validateWatch(path, options);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
await validateCommand(path, options);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
// Issue command
|
|
93
|
+
program
|
|
94
|
+
.command('issue <title>')
|
|
95
|
+
.description('Create or update an issue in GuideMode')
|
|
96
|
+
.requiredOption('--type <type>', 'Issue type: feature, bug, chore, discovery, incident, other')
|
|
97
|
+
.requiredOption('--state <state>', 'Issue state: open, closed, in_progress')
|
|
98
|
+
.requiredOption('--repository <key>', 'Repository key (e.g., "owner/repo")')
|
|
99
|
+
.option('--external-id <id>', 'Unique external ID (auto-generated if omitted)')
|
|
100
|
+
.option('--body <text>', 'Issue description')
|
|
101
|
+
.option('--url <url>', 'Link to source issue')
|
|
102
|
+
.option('--labels <labels>', 'Comma-separated labels')
|
|
103
|
+
.option('--assignee <username>', 'Assignee username')
|
|
104
|
+
.option('--closed-at <timestamp>', 'ISO8601 timestamp when closed')
|
|
105
|
+
.option('--json', 'Output JSON response')
|
|
106
|
+
.action(async (title, options) => {
|
|
107
|
+
try {
|
|
108
|
+
// Validate type
|
|
109
|
+
const validTypes = ['feature', 'bug', 'chore', 'discovery', 'incident', 'other'];
|
|
110
|
+
if (!validTypes.includes(options.type)) {
|
|
111
|
+
console.error(chalk.red(`✗ Invalid type: ${options.type}`));
|
|
112
|
+
console.error(chalk.gray(` Valid types: ${validTypes.join(', ')}`));
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
// Validate state
|
|
116
|
+
const validStates = ['open', 'closed', 'in_progress'];
|
|
117
|
+
if (!validStates.includes(options.state)) {
|
|
118
|
+
console.error(chalk.red(`✗ Invalid state: ${options.state}`));
|
|
119
|
+
console.error(chalk.gray(` Valid states: ${validStates.join(', ')}`));
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
await createIssue({
|
|
123
|
+
title,
|
|
124
|
+
type: options.type,
|
|
125
|
+
state: options.state,
|
|
126
|
+
repository: options.repository,
|
|
127
|
+
externalId: options.externalId,
|
|
128
|
+
body: options.body,
|
|
129
|
+
url: options.url,
|
|
130
|
+
labels: options.labels,
|
|
131
|
+
assignee: options.assignee,
|
|
132
|
+
closedAt: options.closedAt,
|
|
133
|
+
json: options.json,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
// Deploy command
|
|
142
|
+
program
|
|
143
|
+
.command('deploy <ref> <sha>')
|
|
144
|
+
.description('Create or update a deployment in GuideMode')
|
|
145
|
+
.requiredOption('--env <environment>', 'Environment: production, staging, development, qa, preview, other')
|
|
146
|
+
.requiredOption('--status <status>', 'Deployment status: pending, queued, in_progress, success, failure, error')
|
|
147
|
+
.requiredOption('--repository <key>', 'Repository key (e.g., "owner/repo")')
|
|
148
|
+
.option('--external-id <id>', 'Unique external ID (auto-generated if omitted)')
|
|
149
|
+
.option('--description <text>', 'Deployment description')
|
|
150
|
+
.option('--url <url>', 'Deployment URL')
|
|
151
|
+
.option('--rollback', 'Flag this as a rollback deployment')
|
|
152
|
+
.option('--rollback-from <sha>', 'SHA being rolled back from')
|
|
153
|
+
.option('--json', 'Output JSON response')
|
|
154
|
+
.action(async (ref, sha, options) => {
|
|
155
|
+
try {
|
|
156
|
+
// Validate environment
|
|
157
|
+
const validEnvs = ['production', 'staging', 'development', 'qa', 'preview', 'other'];
|
|
158
|
+
if (!validEnvs.includes(options.env)) {
|
|
159
|
+
console.error(chalk.red(`✗ Invalid environment: ${options.env}`));
|
|
160
|
+
console.error(chalk.gray(` Valid environments: ${validEnvs.join(', ')}`));
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
// Validate status
|
|
164
|
+
const validStatuses = [
|
|
165
|
+
'pending',
|
|
166
|
+
'queued',
|
|
167
|
+
'in_progress',
|
|
168
|
+
'success',
|
|
169
|
+
'failure',
|
|
170
|
+
'error',
|
|
171
|
+
'inactive',
|
|
172
|
+
];
|
|
173
|
+
if (!validStatuses.includes(options.status)) {
|
|
174
|
+
console.error(chalk.red(`✗ Invalid status: ${options.status}`));
|
|
175
|
+
console.error(chalk.gray(` Valid statuses: ${validStatuses.join(', ')}`));
|
|
176
|
+
process.exit(1);
|
|
177
|
+
}
|
|
178
|
+
await createDeployment({
|
|
179
|
+
ref,
|
|
180
|
+
sha,
|
|
181
|
+
env: options.env,
|
|
182
|
+
status: options.status,
|
|
183
|
+
repository: options.repository,
|
|
184
|
+
externalId: options.externalId,
|
|
185
|
+
description: options.description,
|
|
186
|
+
url: options.url,
|
|
187
|
+
rollback: options.rollback,
|
|
188
|
+
rollbackFrom: options.rollbackFrom,
|
|
189
|
+
json: options.json,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
// Setup command
|
|
198
|
+
program
|
|
199
|
+
.command('setup')
|
|
200
|
+
.description('Configure GuideMode: login, install hooks, verify')
|
|
201
|
+
.option('--server <url>', 'Server URL', 'https://app.guidemode.dev')
|
|
202
|
+
.option('--force', 'Force re-authentication')
|
|
203
|
+
.action(async (options) => {
|
|
204
|
+
try {
|
|
205
|
+
await runSetup({ server: options.server, force: options.force });
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
// Sync command (used by hooks - always exits 0, never writes to stdout)
|
|
213
|
+
program
|
|
214
|
+
.command('sync')
|
|
215
|
+
.description('Sync Claude Code session transcript to GuideMode')
|
|
216
|
+
.option('--session-id <id>', 'Session ID')
|
|
217
|
+
.option('--transcript-path <path>', 'Path to transcript file')
|
|
218
|
+
.option('--cwd <dir>', 'Working directory')
|
|
219
|
+
.option('--hook-event <event>', 'Hook event name')
|
|
220
|
+
.action(async (options) => {
|
|
221
|
+
try {
|
|
222
|
+
await runSync({
|
|
223
|
+
sessionId: options.sessionId,
|
|
224
|
+
transcriptPath: options.transcriptPath,
|
|
225
|
+
cwd: options.cwd,
|
|
226
|
+
hookEvent: options.hookEvent,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
// Sync must never fail visibly - errors are logged to file
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
// Status command
|
|
234
|
+
program
|
|
235
|
+
.command('status')
|
|
236
|
+
.description('Check GuideMode health and configuration')
|
|
237
|
+
.option('--verbose', 'Show detailed status')
|
|
238
|
+
.option('--json', 'Output JSON format')
|
|
239
|
+
.action(async (options) => {
|
|
240
|
+
try {
|
|
241
|
+
await runStatus({ verbose: options.verbose, json: options.json });
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
245
|
+
process.exit(1);
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
// Logs command
|
|
249
|
+
program
|
|
250
|
+
.command('logs')
|
|
251
|
+
.description('View sync log file')
|
|
252
|
+
.option('--lines <n>', 'Number of lines to show', '30')
|
|
253
|
+
.option('--errors', 'Show only errors and warnings')
|
|
254
|
+
.option('--follow', 'Follow log file for new entries')
|
|
255
|
+
.action(async (options) => {
|
|
256
|
+
try {
|
|
257
|
+
await runLogs({
|
|
258
|
+
lines: Number.parseInt(options.lines, 10),
|
|
259
|
+
errors: options.errors,
|
|
260
|
+
follow: options.follow,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
265
|
+
process.exit(1);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
async function promptYesNo(question) {
|
|
269
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
270
|
+
return new Promise(resolve => {
|
|
271
|
+
rl.question(question, answer => {
|
|
272
|
+
rl.close();
|
|
273
|
+
resolve(answer.trim().toLowerCase() !== 'n');
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
async function firstRunFlow() {
|
|
278
|
+
const config = await loadConfig();
|
|
279
|
+
if (config.apiKey) {
|
|
280
|
+
// Already configured, show help
|
|
281
|
+
program.help();
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
// First run — guide the user through setup
|
|
285
|
+
console.log(chalk.bold(`\n${PREFIX} Welcome to GuideMode!\n`));
|
|
286
|
+
console.log(chalk.gray('It looks like this is your first time running GuideMode.'));
|
|
287
|
+
console.log(chalk.gray('Let\'s get you set up.\n'));
|
|
288
|
+
// Step 1: Login
|
|
289
|
+
console.log(chalk.bold('Step 1: Authentication\n'));
|
|
290
|
+
try {
|
|
291
|
+
await loginFlow('https://app.guidemode.dev');
|
|
292
|
+
console.log();
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : 'Unknown error');
|
|
296
|
+
process.exit(1);
|
|
297
|
+
}
|
|
298
|
+
// Step 2: Ask about hooks
|
|
299
|
+
const wantsHooks = await promptYesNo(`${chalk.bold('Step 2:')} Install Claude Code sync hooks? (Y/n) `);
|
|
300
|
+
if (wantsHooks) {
|
|
301
|
+
const targetPath = await detectHooksTarget();
|
|
302
|
+
console.log(chalk.gray(` Target: ${targetPath}`));
|
|
303
|
+
try {
|
|
304
|
+
await installHooks(targetPath);
|
|
305
|
+
console.log(chalk.green(' Hooks installed for: Stop, PreCompact, SessionEnd\n'));
|
|
306
|
+
}
|
|
307
|
+
catch (err) {
|
|
308
|
+
console.error(chalk.red(' Failed to install hooks:'), err instanceof Error ? err.message : String(err));
|
|
309
|
+
console.log(chalk.gray(' You can run "guidemode setup" later to install hooks.\n'));
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
console.log(chalk.gray('\n Skipped. You can run "guidemode setup" later to install hooks.\n'));
|
|
314
|
+
}
|
|
315
|
+
// Step 3: Offer global install if running via npx
|
|
316
|
+
const isNpx = process.env.npm_command === 'exec' || process.argv[1]?.includes('_npx');
|
|
317
|
+
if (isNpx) {
|
|
318
|
+
const wantsGlobal = await promptYesNo(`${chalk.bold('Step 3:')} Install guidemode globally (so you can use it without npx)? (Y/n) `);
|
|
319
|
+
if (wantsGlobal) {
|
|
320
|
+
try {
|
|
321
|
+
console.log(chalk.gray(' Running: npm install -g guidemode'));
|
|
322
|
+
execSync('npm install -g guidemode', { stdio: 'inherit' });
|
|
323
|
+
console.log(chalk.green(' Installed globally. You can now use "guidemode" directly.\n'));
|
|
324
|
+
}
|
|
325
|
+
catch {
|
|
326
|
+
console.log(chalk.yellow(' Global install failed. You can install manually later:'));
|
|
327
|
+
console.log(chalk.gray(' npm install -g guidemode\n'));
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
console.log(chalk.gray('\n Skipped. You can install later: npm install -g guidemode\n'));
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
// Verify
|
|
335
|
+
console.log(chalk.bold('Verification\n'));
|
|
336
|
+
await runStatus({ verbose: true });
|
|
337
|
+
}
|
|
338
|
+
// If no subcommand provided, run first-run flow or show help
|
|
339
|
+
if (process.argv.length === 2) {
|
|
340
|
+
firstRunFlow().catch(err => {
|
|
341
|
+
console.error(chalk.red('Error:'), err instanceof Error ? err.message : 'Unknown error');
|
|
342
|
+
process.exit(1);
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
program.parse();
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface GuideModeConfig {
|
|
2
|
+
apiKey?: string;
|
|
3
|
+
serverUrl?: string;
|
|
4
|
+
username?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
avatarUrl?: string;
|
|
7
|
+
tenantId?: string;
|
|
8
|
+
tenantName?: string;
|
|
9
|
+
syncHooks?: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare const DEFAULT_SYNC_HOOKS: string[];
|
|
12
|
+
export declare const DEFAULT_SERVER_URL = "https://app.guidemode.dev";
|
|
13
|
+
export declare const CONFIG_DIR: string;
|
|
14
|
+
export declare const CONFIG_FILE: string;
|
|
15
|
+
export declare const LOG_DIR: string;
|
|
16
|
+
export declare const LOG_FILE: string;
|
|
17
|
+
export declare function ensureConfigDir(): Promise<void>;
|
|
18
|
+
export declare function loadConfig(): Promise<GuideModeConfig>;
|
|
19
|
+
export declare function saveConfig(config: GuideModeConfig): Promise<void>;
|
|
20
|
+
export declare function getApiKey(): Promise<string | undefined>;
|
|
21
|
+
export declare function getServerUrl(): Promise<string>;
|
|
22
|
+
export declare function clearConfig(): Promise<void>;
|
|
23
|
+
export declare function updateConfig(updates: Partial<GuideModeConfig>): Promise<void>;
|
|
24
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,eAAO,MAAM,kBAAkB,UAAuC,CAAA;AACtE,eAAO,MAAM,kBAAkB,8BAA8B,CAAA;AAC7D,eAAO,MAAM,UAAU,QAAgC,CAAA;AACvD,eAAO,MAAM,WAAW,QAAkC,CAAA;AAC1D,eAAO,MAAM,OAAO,QAA2B,CAAA;AAC/C,eAAO,MAAM,QAAQ,QAAqC,CAAA;AAE1D,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC,CAQ3D;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAQpD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjD;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { access, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
export const DEFAULT_SYNC_HOOKS = ['Stop', 'PreCompact', 'SessionEnd'];
|
|
5
|
+
export const DEFAULT_SERVER_URL = 'https://app.guidemode.dev';
|
|
6
|
+
export const CONFIG_DIR = join(homedir(), '.guidemode');
|
|
7
|
+
export const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
|
|
8
|
+
export const LOG_DIR = join(CONFIG_DIR, 'logs');
|
|
9
|
+
export const LOG_FILE = join(LOG_DIR, 'plugin-upload.log');
|
|
10
|
+
export async function ensureConfigDir() {
|
|
11
|
+
try {
|
|
12
|
+
await access(CONFIG_DIR);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
await mkdir(CONFIG_DIR, { recursive: true, mode: 0o700 });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export async function loadConfig() {
|
|
19
|
+
try {
|
|
20
|
+
await ensureConfigDir();
|
|
21
|
+
const content = await readFile(CONFIG_FILE, 'utf-8');
|
|
22
|
+
return JSON.parse(content);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export async function saveConfig(config) {
|
|
29
|
+
await ensureConfigDir();
|
|
30
|
+
await writeFile(CONFIG_FILE, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
31
|
+
}
|
|
32
|
+
export async function getApiKey() {
|
|
33
|
+
// Check environment variable first (for CI/CD)
|
|
34
|
+
if (process.env.GUIDEMODE_API_KEY) {
|
|
35
|
+
return process.env.GUIDEMODE_API_KEY;
|
|
36
|
+
}
|
|
37
|
+
const config = await loadConfig();
|
|
38
|
+
return config.apiKey;
|
|
39
|
+
}
|
|
40
|
+
export async function getServerUrl() {
|
|
41
|
+
// Check environment variable first (for CI/CD)
|
|
42
|
+
if (process.env.GUIDEMODE_SERVICE_URL) {
|
|
43
|
+
return process.env.GUIDEMODE_SERVICE_URL;
|
|
44
|
+
}
|
|
45
|
+
const config = await loadConfig();
|
|
46
|
+
return config.serverUrl || 'https://app.guidemode.dev';
|
|
47
|
+
}
|
|
48
|
+
export async function clearConfig() {
|
|
49
|
+
await saveConfig({});
|
|
50
|
+
}
|
|
51
|
+
export async function updateConfig(updates) {
|
|
52
|
+
const config = await loadConfig();
|
|
53
|
+
await saveConfig({ ...config, ...updates });
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAahC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,2BAA2B,CAAA;AAC7D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAA;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;AAC1D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;AAC/C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,eAAe,EAAE,CAAA;QACvB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAuB;IACtD,MAAM,eAAe,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,+CAA+C;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;IACtC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,OAAO,MAAM,CAAC,MAAM,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,+CAA+C;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,OAAO,MAAM,CAAC,SAAS,IAAI,2BAA2B,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,UAAU,CAAC,EAAE,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAiC;IAClE,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;AAC7C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface DeployOptions {
|
|
2
|
+
ref: string;
|
|
3
|
+
sha: string;
|
|
4
|
+
env: 'production' | 'staging' | 'development' | 'qa' | 'preview' | 'other';
|
|
5
|
+
status: 'pending' | 'queued' | 'in_progress' | 'success' | 'failure' | 'error' | 'inactive';
|
|
6
|
+
repository: string;
|
|
7
|
+
externalId?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
url?: string;
|
|
10
|
+
rollback?: boolean;
|
|
11
|
+
rollbackFrom?: string;
|
|
12
|
+
json?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Create or update a deployment via the GuideMode API
|
|
16
|
+
*/
|
|
17
|
+
export declare function createDeployment(options: DeployOptions): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/deploy.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAA;IAC1E,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;IAC3F,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAcD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6F5E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { getApiKey, getServerUrl } from './config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create or update a deployment via the GuideMode API
|
|
5
|
+
*/
|
|
6
|
+
export async function createDeployment(options) {
|
|
7
|
+
const apiKey = await getApiKey();
|
|
8
|
+
if (!apiKey) {
|
|
9
|
+
console.error(chalk.red('✗ Not authenticated'));
|
|
10
|
+
console.log(chalk.gray('Run "guidemode login" to authenticate first'));
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
const serverUrl = await getServerUrl();
|
|
14
|
+
// Validate SHA length (allow short SHAs of 7+ characters or full 40 character SHAs)
|
|
15
|
+
if (options.sha.length < 7 || options.sha.length > 40) {
|
|
16
|
+
console.error(chalk.red('✗ Invalid SHA: must be 7-40 characters'));
|
|
17
|
+
console.log(chalk.gray(` Received: ${options.sha} (${options.sha.length} characters)`));
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
// Generate external ID if not provided
|
|
21
|
+
const externalId = options.externalId || `manual-deploy-${crypto.randomUUID()}`;
|
|
22
|
+
const payload = {
|
|
23
|
+
projectKey: options.repository,
|
|
24
|
+
externalId,
|
|
25
|
+
ref: options.ref,
|
|
26
|
+
sha: options.sha,
|
|
27
|
+
environment: options.env,
|
|
28
|
+
status: options.status,
|
|
29
|
+
description: options.description,
|
|
30
|
+
url: options.url,
|
|
31
|
+
isRollback: options.rollback,
|
|
32
|
+
rollbackFromSha: options.rollbackFrom,
|
|
33
|
+
};
|
|
34
|
+
try {
|
|
35
|
+
const response = await fetch(`${serverUrl}/api/webhooks/v1/deployments`, {
|
|
36
|
+
method: 'POST',
|
|
37
|
+
headers: {
|
|
38
|
+
Authorization: `Bearer ${apiKey}`,
|
|
39
|
+
'Content-Type': 'application/json',
|
|
40
|
+
},
|
|
41
|
+
body: JSON.stringify(payload),
|
|
42
|
+
});
|
|
43
|
+
if (!response.ok) {
|
|
44
|
+
const errorData = (await response.json());
|
|
45
|
+
if (response.status === 401) {
|
|
46
|
+
console.error(chalk.red('✗ Authentication failed'));
|
|
47
|
+
console.log(chalk.gray('Your API key may have expired. Run "guidemode login" to re-authenticate'));
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
if (response.status === 400 && errorData.details) {
|
|
51
|
+
console.error(chalk.red('✗ Validation failed:'));
|
|
52
|
+
for (const detail of errorData.details) {
|
|
53
|
+
console.error(chalk.gray(` ${detail.path}: ${detail.message}`));
|
|
54
|
+
}
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
console.error(chalk.red(`✗ Error: ${errorData.error}`));
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
const result = (await response.json());
|
|
61
|
+
if (options.json) {
|
|
62
|
+
console.log(JSON.stringify(result, null, 2));
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const actionVerb = result.action === 'created' ? 'Created' : 'Updated';
|
|
66
|
+
const deployType = options.rollback ? 'rollback' : 'deployment';
|
|
67
|
+
console.log(chalk.green(`✓ ${actionVerb} ${deployType} successfully`));
|
|
68
|
+
console.log(chalk.gray(` ID: ${result.id}`));
|
|
69
|
+
console.log(chalk.gray(` External ID: ${result.externalId}`));
|
|
70
|
+
console.log(chalk.gray(` Repository: ${options.repository}`));
|
|
71
|
+
console.log(chalk.gray(` Ref: ${options.ref}`));
|
|
72
|
+
console.log(chalk.gray(` SHA: ${options.sha.substring(0, 7)}`));
|
|
73
|
+
console.log(chalk.gray(` Environment: ${options.env}`));
|
|
74
|
+
console.log(chalk.gray(` Status: ${options.status}`));
|
|
75
|
+
if (options.rollback && options.rollbackFrom) {
|
|
76
|
+
console.log(chalk.gray(` Rollback from: ${options.rollbackFrom.substring(0, 7)}`));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
if (error instanceof TypeError && error.message.includes('fetch')) {
|
|
82
|
+
console.error(chalk.red('✗ Network error: Could not connect to server'));
|
|
83
|
+
console.log(chalk.gray(`Server URL: ${serverUrl}`));
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface IssueOptions {
|
|
2
|
+
title: string;
|
|
3
|
+
type: 'feature' | 'bug' | 'chore' | 'discovery' | 'incident' | 'other';
|
|
4
|
+
state: 'open' | 'closed' | 'in_progress';
|
|
5
|
+
repository: string;
|
|
6
|
+
externalId?: string;
|
|
7
|
+
body?: string;
|
|
8
|
+
url?: string;
|
|
9
|
+
labels?: string;
|
|
10
|
+
assignee?: string;
|
|
11
|
+
closedAt?: string;
|
|
12
|
+
json?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Create or update an issue via the GuideMode API
|
|
16
|
+
*/
|
|
17
|
+
export declare function createIssue(options: IssueOptions): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=issue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/issue.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAA;IACtE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAcD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFtE"}
|