autogit-tool 1.0.19 → 1.0.22
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 +61 -7
- package/dist/ai/prompts.d.ts +6 -0
- package/dist/ai/prompts.d.ts.map +1 -1
- package/dist/ai/prompts.js +111 -19
- package/dist/ai/prompts.js.map +1 -1
- package/dist/ai/provider.d.ts.map +1 -1
- package/dist/ai/provider.js +27 -0
- package/dist/ai/provider.js.map +1 -1
- package/dist/ai/readme-agent.d.ts +5 -0
- package/dist/ai/readme-agent.d.ts.map +1 -0
- package/dist/ai/readme-agent.js +126 -0
- package/dist/ai/readme-agent.js.map +1 -0
- package/dist/cli.js +62 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/brag.d.ts +2 -0
- package/dist/commands/brag.d.ts.map +1 -0
- package/dist/commands/brag.js +10 -0
- package/dist/commands/brag.js.map +1 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +18 -2
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/github.d.ts +1 -0
- package/dist/commands/github.d.ts.map +1 -1
- package/dist/commands/github.js +11 -2
- package/dist/commands/github.js.map +1 -1
- package/dist/commands/linkedin.d.ts +3 -0
- package/dist/commands/linkedin.d.ts.map +1 -1
- package/dist/commands/linkedin.js +124 -12
- package/dist/commands/linkedin.js.map +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +15 -46
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/readme.d.ts.map +1 -1
- package/dist/commands/readme.js +14 -0
- package/dist/commands/readme.js.map +1 -1
- package/dist/commands/resume.d.ts +2 -0
- package/dist/commands/resume.d.ts.map +1 -1
- package/dist/commands/resume.js +311 -81
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +74 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/showcase.d.ts +4 -0
- package/dist/commands/showcase.d.ts.map +1 -0
- package/dist/commands/showcase.js +35 -0
- package/dist/commands/showcase.js.map +1 -0
- package/dist/config/manager.d.ts +16 -1
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js +9 -0
- package/dist/config/manager.js.map +1 -1
- package/dist/pipeline/main-pipeline.d.ts +2 -0
- package/dist/pipeline/main-pipeline.d.ts.map +1 -1
- package/dist/pipeline/main-pipeline.js +135 -119
- package/dist/pipeline/main-pipeline.js.map +1 -1
- package/dist/services/brag-agent.d.ts +20 -0
- package/dist/services/brag-agent.d.ts.map +1 -0
- package/dist/services/brag-agent.js +203 -0
- package/dist/services/brag-agent.js.map +1 -0
- package/dist/services/brag-runtime.d.ts +7 -0
- package/dist/services/brag-runtime.d.ts.map +1 -0
- package/dist/services/brag-runtime.js +68 -0
- package/dist/services/brag-runtime.js.map +1 -0
- package/dist/services/commit-workflow.d.ts +2 -0
- package/dist/services/commit-workflow.d.ts.map +1 -0
- package/dist/services/commit-workflow.js +60 -0
- package/dist/services/commit-workflow.js.map +1 -0
- package/dist/services/git-service.d.ts +12 -1
- package/dist/services/git-service.d.ts.map +1 -1
- package/dist/services/git-service.js +42 -3
- package/dist/services/git-service.js.map +1 -1
- package/dist/services/pdf-to-latex.d.ts +17 -0
- package/dist/services/pdf-to-latex.d.ts.map +1 -0
- package/dist/services/pdf-to-latex.js +108 -0
- package/dist/services/pdf-to-latex.js.map +1 -0
- package/dist/services/publish-workflow.d.ts +14 -0
- package/dist/services/publish-workflow.d.ts.map +1 -0
- package/dist/services/publish-workflow.js +96 -0
- package/dist/services/publish-workflow.js.map +1 -0
- package/dist/services/readme-manager.d.ts +2 -1
- package/dist/services/readme-manager.d.ts.map +1 -1
- package/dist/services/readme-manager.js +35 -24
- package/dist/services/readme-manager.js.map +1 -1
- package/dist/services/share-package.d.ts +10 -0
- package/dist/services/share-package.d.ts.map +1 -0
- package/dist/services/share-package.js +21 -0
- package/dist/services/share-package.js.map +1 -0
- package/dist/services/showcase-cards.d.ts +7 -0
- package/dist/services/showcase-cards.d.ts.map +1 -0
- package/dist/services/showcase-cards.js +47 -0
- package/dist/services/showcase-cards.js.map +1 -0
- package/dist/services/showcase.d.ts +16 -0
- package/dist/services/showcase.d.ts.map +1 -0
- package/dist/services/showcase.js +79 -0
- package/dist/services/showcase.js.map +1 -0
- package/dist/services/social-generator.d.ts +5 -0
- package/dist/services/social-generator.d.ts.map +1 -1
- package/dist/services/social-generator.js +34 -0
- package/dist/services/social-generator.js.map +1 -1
- package/dist/services/social-images.d.ts +5 -0
- package/dist/services/social-images.d.ts.map +1 -0
- package/dist/services/social-images.js +79 -0
- package/dist/services/social-images.js.map +1 -0
- package/package.json +6 -2
|
@@ -5,11 +5,16 @@ import { scanProject } from '../scanner/file-scanner.js';
|
|
|
5
5
|
import { analyzeProject } from '../scanner/project-analyzer.js';
|
|
6
6
|
import { generateReadme, writeReadme, displayDiff } from '../services/readme-manager.js';
|
|
7
7
|
import { generateDocs, writeDocs } from '../services/docs-generator.js';
|
|
8
|
-
import { getGitStatus, initGit, generateGitignore,
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { getGitStatus, initGit, generateGitignore, getCommitPlan } from '../services/git-service.js';
|
|
9
|
+
import { runCommitWorkflow } from '../services/commit-workflow.js';
|
|
10
|
+
import { runPublishWorkflow } from '../services/publish-workflow.js';
|
|
11
|
+
import { generateSocialContent, openLinkedInShare, openTwitterShare, copyToClipboard } from '../services/social-generator.js';
|
|
11
12
|
import { runResumeUpdate } from '../commands/resume.js';
|
|
12
13
|
import { loadConfig } from '../config/manager.js';
|
|
14
|
+
import { createSharePackage } from '../services/share-package.js';
|
|
15
|
+
import { runBragInProject, selectBragAgent } from '../services/brag-agent.js';
|
|
16
|
+
import { captureProjectScreenshot, generatePromotionalArtwork } from '../services/social-images.js';
|
|
17
|
+
import { join } from 'path';
|
|
13
18
|
import { logger, spinner } from '../utils/logger.js';
|
|
14
19
|
export async function runMainPipeline(options) {
|
|
15
20
|
const rootDir = resolve(process.cwd());
|
|
@@ -33,13 +38,14 @@ export async function runMainPipeline(options) {
|
|
|
33
38
|
logger.blank();
|
|
34
39
|
const useAI = !options.noAI;
|
|
35
40
|
let resolvedRepoUrl;
|
|
41
|
+
let published = false;
|
|
36
42
|
// Step 3: README
|
|
37
43
|
let readmeResult = null;
|
|
38
44
|
if (!options.skipReadme) {
|
|
39
45
|
readmeResult = await handleReadme(rootDir, analysis, useAI, options, scan);
|
|
40
46
|
}
|
|
41
47
|
// Step 4: Additional documentation
|
|
42
|
-
|
|
48
|
+
await handleDocs(rootDir, analysis, scan, useAI, options);
|
|
43
49
|
// Step 5: Resume auto-update — runs AFTER git init but BEFORE commit
|
|
44
50
|
// so the updated resume can be included in the same commit
|
|
45
51
|
if (!options.skipResume && !options.dryRun) {
|
|
@@ -49,17 +55,19 @@ export async function runMainPipeline(options) {
|
|
|
49
55
|
logger.dimmed('[dry-run] Would update resume (if configured)');
|
|
50
56
|
}
|
|
51
57
|
// Step 6: Git operations
|
|
52
|
-
await handleGit(rootDir, analysis,
|
|
58
|
+
const canPublish = await handleGit(rootDir, analysis, useAI, options);
|
|
53
59
|
// Step 7: GitHub
|
|
54
|
-
if (!options.skipGithub) {
|
|
55
|
-
|
|
60
|
+
if (!options.skipGithub && canPublish) {
|
|
61
|
+
const result = await runPublishWorkflow(rootDir, analysis, options);
|
|
62
|
+
resolvedRepoUrl = result.url;
|
|
63
|
+
published = result.published;
|
|
56
64
|
}
|
|
57
65
|
// Step 7: Social content
|
|
58
66
|
if (!options.skipLinkedin) {
|
|
59
|
-
await handleSocialContent(analysis, useAI, options, resolvedRepoUrl);
|
|
67
|
+
await handleSocialContent(rootDir, scan, analysis, useAI, options, published ? resolvedRepoUrl : undefined);
|
|
60
68
|
}
|
|
61
69
|
logger.blank();
|
|
62
|
-
logger.success(chalk.bold('Done! Your project
|
|
70
|
+
logger.success(chalk.bold(published ? 'Done! Your project was published.' : 'Done! Local project work finished; no push was made.'));
|
|
63
71
|
}
|
|
64
72
|
function formatAnalysisSummary(analysis) {
|
|
65
73
|
const parts = [];
|
|
@@ -90,6 +98,16 @@ async function handleReadme(rootDir, analysis, useAI, options, scan) {
|
|
|
90
98
|
const result = await generateReadme(rootDir, analysis, useAI, scan);
|
|
91
99
|
if (result.isNew) {
|
|
92
100
|
logger.info('No README found. Generated new README.md');
|
|
101
|
+
if (!options.yes && !options.dryRun) {
|
|
102
|
+
logger.blank();
|
|
103
|
+
console.log(result.content);
|
|
104
|
+
logger.blank();
|
|
105
|
+
const { confirm } = await inquirer.prompt([{
|
|
106
|
+
type: 'confirm', name: 'confirm', message: 'Create README.md?', default: true,
|
|
107
|
+
}]);
|
|
108
|
+
if (!confirm)
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
93
111
|
}
|
|
94
112
|
else if (result.diff) {
|
|
95
113
|
logger.info('README improvements found');
|
|
@@ -110,6 +128,10 @@ async function handleReadme(rootDir, analysis, useAI, options, scan) {
|
|
|
110
128
|
}
|
|
111
129
|
}
|
|
112
130
|
}
|
|
131
|
+
if (!result.isNew && !result.diff) {
|
|
132
|
+
logger.dimmed('README is already up to date');
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
113
135
|
if (!options.dryRun) {
|
|
114
136
|
await writeReadme(result);
|
|
115
137
|
logger.success('README updated');
|
|
@@ -151,7 +173,7 @@ async function handleDocs(rootDir, analysis, scan, useAI, options) {
|
|
|
151
173
|
}
|
|
152
174
|
return docs;
|
|
153
175
|
}
|
|
154
|
-
async function handleGit(rootDir, analysis,
|
|
176
|
+
async function handleGit(rootDir, analysis, useAI, options) {
|
|
155
177
|
const status = await getGitStatus(rootDir);
|
|
156
178
|
// Initialize git if needed
|
|
157
179
|
if (!status.isRepo) {
|
|
@@ -163,128 +185,93 @@ async function handleGit(rootDir, analysis, readmeResult, docs, useAI, options)
|
|
|
163
185
|
logger.dimmed('[dry-run] Would initialize Git repository');
|
|
164
186
|
}
|
|
165
187
|
}
|
|
166
|
-
// Stage changes
|
|
167
188
|
if (options.dryRun) {
|
|
168
|
-
|
|
169
|
-
|
|
189
|
+
if (status.isRepo) {
|
|
190
|
+
const plan = await getCommitPlan(rootDir);
|
|
191
|
+
logger.dimmed(`[dry-run] Branch: ${plan.branch || '(not yet named)'}, origin: ${plan.remoteUrl || '(none)'}`);
|
|
192
|
+
logger.dimmed(`[dry-run] Already staged: ${plan.staged.join(', ') || '(none)'}`);
|
|
193
|
+
logger.dimmed(`[dry-run] Would stage: ${plan.toStage.join(', ') || '(none)'}`);
|
|
194
|
+
if (plan.sensitive.length)
|
|
195
|
+
logger.warn(`[dry-run] Sensitive files detected: ${plan.sensitive.join(', ')}`);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
logger.dimmed('[dry-run] Would stage the generated project files and commit them');
|
|
199
|
+
}
|
|
200
|
+
return true;
|
|
170
201
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
202
|
+
return runCommitWorkflow(rootDir, options.yes === true, useAI);
|
|
203
|
+
}
|
|
204
|
+
async function handleSocialContent(rootDir, scan, analysis, useAI, options, repoUrl) {
|
|
205
|
+
const content = await generateSocialContent(analysis, useAI);
|
|
206
|
+
// Replace placeholder with real repo URL if we have it
|
|
207
|
+
const url = repoUrl;
|
|
208
|
+
let linkedinText = content.linkedin.medium.replace(/\[GITHUB_LINK\]/g, url || '[ADD_PROJECT_URL]');
|
|
209
|
+
const tweetText = content.twitter.replace(/\[GITHUB_LINK\]/g, url || '[ADD_PROJECT_URL]');
|
|
210
|
+
let shareDirectory;
|
|
211
|
+
if (options.dryRun) {
|
|
212
|
+
logger.dimmed('[dry-run] Would create a share package with sourced post, drafts, and three PNG cards');
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
try {
|
|
216
|
+
const share = await createSharePackage(rootDir, scan, analysis, content, useAI, url);
|
|
217
|
+
shareDirectory = share.directory;
|
|
218
|
+
linkedinText = share.post;
|
|
219
|
+
logger.success(`Share package saved: ${share.directory}`);
|
|
220
|
+
logger.dimmed(`${share.cards.length} PNG cards and sourced post are ready for review.`);
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
logger.warn(`Share package could not be saved: ${error.message}`);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
let screenshotUrl = options.screenshotUrl;
|
|
227
|
+
let promoImage = options.promoImage === true;
|
|
228
|
+
if (!options.yes && !options.dryRun && !screenshotUrl && !promoImage && shareDirectory) {
|
|
229
|
+
const answer = await inquirer.prompt([{
|
|
230
|
+
type: 'list', name: 'media', message: 'Add a real screenshot or promotional artwork?',
|
|
231
|
+
choices: [
|
|
232
|
+
{ name: 'No additional media', value: 'none' },
|
|
233
|
+
{ name: 'Real app screenshot', value: 'screenshot' },
|
|
234
|
+
{ name: 'Conceptual artwork', value: 'artwork' },
|
|
235
|
+
{ name: 'Both', value: 'both' },
|
|
236
|
+
], default: 'none',
|
|
182
237
|
}]);
|
|
183
|
-
if (
|
|
184
|
-
const
|
|
185
|
-
type: 'input',
|
|
186
|
-
|
|
187
|
-
message: 'Commit message:',
|
|
188
|
-
default: commitMsg,
|
|
238
|
+
if (answer.media === 'screenshot' || answer.media === 'both') {
|
|
239
|
+
const urlAnswer = await inquirer.prompt([{
|
|
240
|
+
type: 'input', name: 'url', message: 'Running app URL:',
|
|
241
|
+
validate: value => /^https?:\/\//i.test(value) || 'Enter an http:// or https:// URL',
|
|
189
242
|
}]);
|
|
190
|
-
|
|
243
|
+
screenshotUrl = urlAnswer.url;
|
|
191
244
|
}
|
|
245
|
+
promoImage = answer.media === 'artwork' || answer.media === 'both';
|
|
192
246
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
logger.warn('GitHub not configured. Run "autogit login" or set GITHUB_TOKEN');
|
|
199
|
-
return undefined;
|
|
247
|
+
if (options.dryRun) {
|
|
248
|
+
if (screenshotUrl)
|
|
249
|
+
logger.dimmed(`[dry-run] Would capture screenshot from ${screenshotUrl}`);
|
|
250
|
+
if (promoImage)
|
|
251
|
+
logger.dimmed('[dry-run] Would generate promotional artwork');
|
|
200
252
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
let repoHtmlUrl = `https://github.com/${user.login}/${repoName}`;
|
|
208
|
-
if (!exists) {
|
|
209
|
-
// Ask about visibility if not already specified via flags
|
|
210
|
-
let isPrivate;
|
|
211
|
-
if (options.private !== undefined || options.public !== undefined) {
|
|
212
|
-
isPrivate = options.private ?? !(options.public ?? false);
|
|
213
|
-
}
|
|
214
|
-
else if (options.yes) {
|
|
215
|
-
isPrivate = false; // default to public when --yes
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
logger.blank();
|
|
219
|
-
const { visibility } = await inquirer.prompt([{
|
|
220
|
-
type: 'list',
|
|
221
|
-
name: 'visibility',
|
|
222
|
-
message: `Repository visibility for "${repoName}":`,
|
|
223
|
-
choices: [
|
|
224
|
-
{ name: 'Public (anyone can see it)', value: 'public' },
|
|
225
|
-
{ name: 'Private (only you can see it)', value: 'private' },
|
|
226
|
-
],
|
|
227
|
-
default: 'public',
|
|
228
|
-
}]);
|
|
229
|
-
isPrivate = visibility === 'private';
|
|
230
|
-
}
|
|
231
|
-
if (!options.yes) {
|
|
232
|
-
logger.blank();
|
|
233
|
-
logger.info(`Will create ${isPrivate ? 'private' : 'public'} repository: ${user.login}/${repoName}`);
|
|
234
|
-
const { confirm } = await inquirer.prompt([{
|
|
235
|
-
type: 'confirm',
|
|
236
|
-
name: 'confirm',
|
|
237
|
-
message: 'Create GitHub repository?',
|
|
238
|
-
default: true,
|
|
239
|
-
}]);
|
|
240
|
-
if (!confirm) {
|
|
241
|
-
logger.dimmed('GitHub repository creation skipped');
|
|
242
|
-
return undefined;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
if (!options.dryRun) {
|
|
246
|
-
const topics = generateTopics(analysis);
|
|
247
|
-
const repo = await createRepo({
|
|
248
|
-
name: repoName,
|
|
249
|
-
description: analysis.description || `${analysis.languages[0] || ''} project`,
|
|
250
|
-
isPrivate,
|
|
251
|
-
topics,
|
|
252
|
-
});
|
|
253
|
-
await addRemote(rootDir, repo.cloneUrl);
|
|
254
|
-
repoHtmlUrl = repo.htmlUrl;
|
|
255
|
-
logger.success(`Created repository: ${chalk.underline(repo.htmlUrl)}`);
|
|
253
|
+
else if (shareDirectory) {
|
|
254
|
+
if (screenshotUrl) {
|
|
255
|
+
try {
|
|
256
|
+
const path = join(shareDirectory, 'screenshot.png');
|
|
257
|
+
await captureProjectScreenshot(screenshotUrl, path);
|
|
258
|
+
logger.success(`Screenshot saved: ${path}`);
|
|
256
259
|
}
|
|
257
|
-
|
|
258
|
-
logger.
|
|
260
|
+
catch (error) {
|
|
261
|
+
logger.warn(`Screenshot unavailable: ${error.message}`);
|
|
259
262
|
}
|
|
260
263
|
}
|
|
261
|
-
|
|
262
|
-
logger.info(`Repository exists: ${chalk.underline(repoHtmlUrl)}`);
|
|
263
|
-
}
|
|
264
|
-
// Push
|
|
265
|
-
if (!options.dryRun) {
|
|
266
|
-
const pushSpin = spinner('Pushing to GitHub...').start();
|
|
264
|
+
if (promoImage) {
|
|
267
265
|
try {
|
|
268
|
-
|
|
269
|
-
|
|
266
|
+
const path = join(shareDirectory, 'artwork.png');
|
|
267
|
+
await generatePromotionalArtwork(analysis, path);
|
|
268
|
+
logger.success(`Artwork saved: ${path}`);
|
|
270
269
|
}
|
|
271
270
|
catch (error) {
|
|
272
|
-
|
|
271
|
+
logger.warn(`Artwork unavailable: ${error.message}`);
|
|
273
272
|
}
|
|
274
273
|
}
|
|
275
|
-
return repoHtmlUrl;
|
|
276
|
-
}
|
|
277
|
-
catch (error) {
|
|
278
|
-
logger.error(`GitHub error: ${error.message}`);
|
|
279
|
-
return undefined;
|
|
280
274
|
}
|
|
281
|
-
}
|
|
282
|
-
async function handleSocialContent(analysis, useAI, options, repoUrl) {
|
|
283
|
-
const content = await generateSocialContent(analysis, useAI);
|
|
284
|
-
// Replace placeholder with real repo URL if we have it
|
|
285
|
-
const url = repoUrl || `https://github.com/${analysis.name}`;
|
|
286
|
-
const linkedinText = content.linkedin.medium.replace(/\[GITHUB_LINK\]/g, url);
|
|
287
|
-
const tweetText = content.twitter.replace(/\[GITHUB_LINK\]/g, url);
|
|
288
275
|
logger.blank();
|
|
289
276
|
logger.header('LinkedIn Post (Medium)');
|
|
290
277
|
console.log(linkedinText);
|
|
@@ -299,8 +286,16 @@ async function handleSocialContent(analysis, useAI, options, repoUrl) {
|
|
|
299
286
|
message: 'Open LinkedIn share dialog in browser?',
|
|
300
287
|
default: true,
|
|
301
288
|
}]);
|
|
302
|
-
if (openLinkedIn) {
|
|
289
|
+
if (openLinkedIn && url) {
|
|
290
|
+
// Auto-copy the post text to clipboard so user can paste immediately
|
|
291
|
+
const copied = await copyToClipboard(linkedinText);
|
|
303
292
|
await openLinkedInShare(url);
|
|
293
|
+
if (copied) {
|
|
294
|
+
logger.success('LinkedIn post copied to clipboard — just paste it into the share dialog');
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
else if (openLinkedIn) {
|
|
298
|
+
logger.warn('No repository URL found. Add a project URL before sharing.');
|
|
304
299
|
}
|
|
305
300
|
const { openTwitter } = await inquirer.prompt([{
|
|
306
301
|
type: 'confirm',
|
|
@@ -309,10 +304,31 @@ async function handleSocialContent(analysis, useAI, options, repoUrl) {
|
|
|
309
304
|
default: true,
|
|
310
305
|
}]);
|
|
311
306
|
if (openTwitter) {
|
|
312
|
-
await openTwitterShare(tweetText, url);
|
|
307
|
+
await openTwitterShare(tweetText, url || '');
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
if (!options.dryRun) {
|
|
311
|
+
const config = loadConfig();
|
|
312
|
+
const agent = config.setup?.agent || selectBragAgent(config.ai?.provider || 'openai');
|
|
313
|
+
if (config.setup?.brag === 'installed' && config.setup.agent === agent) {
|
|
314
|
+
let createVideo = options.yes === true;
|
|
315
|
+
if (!options.yes) {
|
|
316
|
+
const answer = await inquirer.prompt([{
|
|
317
|
+
type: 'confirm', name: 'createVideo', message: 'Create a Brag video for this project?', default: false,
|
|
318
|
+
}]);
|
|
319
|
+
createVideo = answer.createVideo;
|
|
320
|
+
}
|
|
321
|
+
if (createVideo) {
|
|
322
|
+
try {
|
|
323
|
+
await runBragInProject(rootDir);
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
logger.warn(`Brag video was not completed: ${error.message}`);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
313
329
|
}
|
|
314
330
|
}
|
|
315
|
-
logger.dimmed('
|
|
331
|
+
logger.dimmed('Review the saved post and media before publishing on LinkedIn.');
|
|
316
332
|
}
|
|
317
333
|
async function handleResume(rootDir, useAI, options, scan) {
|
|
318
334
|
const config = loadConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-pipeline.js","sourceRoot":"","sources":["../../src/pipeline/main-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main-pipeline.js","sourceRoot":"","sources":["../../src/pipeline/main-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type AIProviderName } from '../config/manager.js';
|
|
2
|
+
export type BragAgent = 'codex' | 'claude-code' | 'antigravity' | 'opencode';
|
|
3
|
+
export type BragAgentPreference = 'automatic' | BragAgent;
|
|
4
|
+
export declare function selectBragAgent(provider: AIProviderName, preferred?: BragAgentPreference): BragAgent;
|
|
5
|
+
export declare function agentPackageName(agent: BragAgent): string;
|
|
6
|
+
export declare function bragSkillInstallCommand(agent: BragAgent, platform: NodeJS.Platform): {
|
|
7
|
+
executable: string;
|
|
8
|
+
args: string[];
|
|
9
|
+
};
|
|
10
|
+
export declare function ensureBragAgent(agent: BragAgent, pathPrefix?: string): Promise<void>;
|
|
11
|
+
export declare function installBragSkill(agent: BragAgent, pathPrefix?: string): Promise<void>;
|
|
12
|
+
export interface BragLaunch {
|
|
13
|
+
agent: BragAgent;
|
|
14
|
+
executable: string;
|
|
15
|
+
args: string[];
|
|
16
|
+
env: NodeJS.ProcessEnv;
|
|
17
|
+
}
|
|
18
|
+
export declare function buildBragLaunch(provider: AIProviderName, prompt: string, preferred?: BragAgentPreference): BragLaunch;
|
|
19
|
+
export declare function runBragInProject(root: string): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=brag-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brag-agent.d.ts","sourceRoot":"","sources":["../../src/services/brag-agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AASpF,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAC;AAC7E,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,SAAS,CAAC;AA2B1D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,GAAE,mBAAiC,GAAG,SAAS,CAKjH;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAQ3H;AAmBD,wBAAsB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtF;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvF;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,mBAAiC,GAAG,UAAU,CAwDlI;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBlE"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { execFile, spawn } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
import { getAIConfig, loadConfig } from '../config/manager.js';
|
|
4
|
+
import { listProviders } from '../ai/provider.js';
|
|
5
|
+
import { ensureBragRuntime } from './brag-runtime.js';
|
|
6
|
+
import { delimiter, join } from 'path';
|
|
7
|
+
import { homedir } from 'os';
|
|
8
|
+
import { existsSync } from 'fs';
|
|
9
|
+
const run = promisify(execFile);
|
|
10
|
+
const AGENTS = {
|
|
11
|
+
codex: { command: 'codex', packageName: '@openai/codex' },
|
|
12
|
+
'claude-code': { command: 'claude', packageName: '@anthropic-ai/claude-code' },
|
|
13
|
+
antigravity: { command: 'agy' },
|
|
14
|
+
opencode: { command: 'opencode', packageName: 'opencode-ai' },
|
|
15
|
+
};
|
|
16
|
+
function installerEnv() {
|
|
17
|
+
const allowed = [
|
|
18
|
+
'PATH', 'Path', 'PATHEXT', 'ComSpec', 'SystemRoot', 'WINDIR', 'USERPROFILE', 'HOME',
|
|
19
|
+
'APPDATA', 'LOCALAPPDATA', 'TEMP', 'TMP', 'TMPDIR', 'XDG_CONFIG_HOME', 'XDG_CACHE_HOME',
|
|
20
|
+
'HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY', 'NODE_EXTRA_CA_CERTS', 'npm_config_prefix',
|
|
21
|
+
'npm_config_registry',
|
|
22
|
+
];
|
|
23
|
+
return Object.fromEntries(allowed.filter(name => process.env[name] !== undefined).map(name => [name, process.env[name]]));
|
|
24
|
+
}
|
|
25
|
+
function agentEnv() {
|
|
26
|
+
const env = installerEnv();
|
|
27
|
+
for (const name of ['TERM', 'COLORTERM', 'FORCE_COLOR', 'NO_COLOR', 'LANG', 'LC_ALL', 'CI']) {
|
|
28
|
+
if (process.env[name] !== undefined)
|
|
29
|
+
env[name] = process.env[name];
|
|
30
|
+
}
|
|
31
|
+
return env;
|
|
32
|
+
}
|
|
33
|
+
export function selectBragAgent(provider, preferred = 'automatic') {
|
|
34
|
+
if (preferred !== 'automatic')
|
|
35
|
+
return preferred;
|
|
36
|
+
if (provider === 'openai')
|
|
37
|
+
return 'codex';
|
|
38
|
+
if (provider === 'anthropic')
|
|
39
|
+
return 'claude-code';
|
|
40
|
+
return 'opencode';
|
|
41
|
+
}
|
|
42
|
+
export function agentPackageName(agent) {
|
|
43
|
+
return AGENTS[agent].packageName || 'Google Antigravity CLI';
|
|
44
|
+
}
|
|
45
|
+
export function bragSkillInstallCommand(agent, platform) {
|
|
46
|
+
const args = [
|
|
47
|
+
'--yes', 'skills', 'add', 'https://github.com/latent-spaces/brag',
|
|
48
|
+
'--skill', 'brag', '--global', '--agent', agent, '--copy', '--yes',
|
|
49
|
+
];
|
|
50
|
+
return platform === 'win32'
|
|
51
|
+
? { executable: process.env.ComSpec || 'cmd.exe', args: ['/d', '/s', '/c', 'npx.cmd', ...args] }
|
|
52
|
+
: { executable: 'npx', args };
|
|
53
|
+
}
|
|
54
|
+
async function executablePath(command) {
|
|
55
|
+
try {
|
|
56
|
+
const finder = process.platform === 'win32' ? 'where.exe' : 'which';
|
|
57
|
+
const result = await run(finder, [command], { timeout: 10_000, windowsHide: true });
|
|
58
|
+
return result.stdout.split(/\r?\n/).map(line => line.trim()).find(Boolean) || null;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function agentExecutablePath(agent) {
|
|
65
|
+
const discovered = await executablePath(AGENTS[agent].command);
|
|
66
|
+
if (discovered || agent !== 'antigravity')
|
|
67
|
+
return discovered;
|
|
68
|
+
const installed = process.platform === 'win32'
|
|
69
|
+
? join(process.env.LOCALAPPDATA || homedir(), 'agy', 'bin', 'agy.exe')
|
|
70
|
+
: join(homedir(), '.local', 'bin', 'agy');
|
|
71
|
+
return existsSync(installed) ? installed : null;
|
|
72
|
+
}
|
|
73
|
+
export async function ensureBragAgent(agent, pathPrefix = '') {
|
|
74
|
+
if (await agentExecutablePath(agent))
|
|
75
|
+
return;
|
|
76
|
+
const env = installerEnv();
|
|
77
|
+
if (pathPrefix)
|
|
78
|
+
env.PATH = `${pathPrefix}${delimiter}${env.Path || env.PATH || ''}`;
|
|
79
|
+
if (process.platform === 'win32' && pathPrefix)
|
|
80
|
+
env.Path = env.PATH;
|
|
81
|
+
if (agent === 'antigravity') {
|
|
82
|
+
const executable = process.platform === 'win32' ? 'powershell.exe' : '/bin/sh';
|
|
83
|
+
const args = process.platform === 'win32'
|
|
84
|
+
? ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-Command', 'irm https://antigravity.google/cli/install.ps1 | iex']
|
|
85
|
+
: ['-c', 'curl -fsSL https://antigravity.google/cli/install.sh | bash'];
|
|
86
|
+
await run(executable, args, { timeout: 240_000, windowsHide: true, maxBuffer: 2 * 1024 * 1024, env });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const packageName = AGENTS[agent].packageName;
|
|
90
|
+
const executable = process.platform === 'win32' ? (process.env.ComSpec || 'cmd.exe') : 'npm';
|
|
91
|
+
const args = process.platform === 'win32'
|
|
92
|
+
? ['/d', '/s', '/c', 'npm.cmd', 'install', '--global', packageName]
|
|
93
|
+
: ['install', '--global', packageName];
|
|
94
|
+
await run(executable, args, { timeout: 240_000, windowsHide: true, maxBuffer: 2 * 1024 * 1024, env });
|
|
95
|
+
}
|
|
96
|
+
if (!(await agentExecutablePath(agent))) {
|
|
97
|
+
throw new Error(`${agentPackageName(agent)} installed, but ${AGENTS[agent].command} is not available. Restart your terminal and run autogit setup again.`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export async function installBragSkill(agent, pathPrefix = '') {
|
|
101
|
+
const command = bragSkillInstallCommand(agent, process.platform);
|
|
102
|
+
const env = installerEnv();
|
|
103
|
+
if (pathPrefix)
|
|
104
|
+
env.PATH = `${pathPrefix}${delimiter}${env.Path || env.PATH || ''}`;
|
|
105
|
+
if (process.platform === 'win32' && pathPrefix)
|
|
106
|
+
env.Path = env.PATH;
|
|
107
|
+
await run(command.executable, command.args, { timeout: 180_000, windowsHide: true, maxBuffer: 2 * 1024 * 1024, env });
|
|
108
|
+
}
|
|
109
|
+
export function buildBragLaunch(provider, prompt, preferred = 'automatic') {
|
|
110
|
+
const ai = getAIConfig();
|
|
111
|
+
const agent = selectBragAgent(provider, preferred);
|
|
112
|
+
const env = agentEnv();
|
|
113
|
+
// Native agents use their own saved OAuth session, not AutoGit API credentials.
|
|
114
|
+
if (agent === 'codex')
|
|
115
|
+
return { agent, executable: 'codex', args: ['exec', prompt], env };
|
|
116
|
+
if (agent === 'claude-code')
|
|
117
|
+
return { agent, executable: 'claude', args: ['-p', prompt], env };
|
|
118
|
+
if (agent === 'antigravity')
|
|
119
|
+
return { agent, executable: 'agy', args: ['-p', prompt, '--print-timeout', '10m'], env };
|
|
120
|
+
const keyFields = {
|
|
121
|
+
openai: ['OPENAI_API_KEY', ai.openaiKey],
|
|
122
|
+
anthropic: ['ANTHROPIC_API_KEY', ai.anthropicKey],
|
|
123
|
+
gemini: ['GEMINI_API_KEY', ai.geminiKey],
|
|
124
|
+
openrouter: ['OPENROUTER_API_KEY', ai.openrouterKey],
|
|
125
|
+
mistral: ['MISTRAL_API_KEY', ai.mistralKey],
|
|
126
|
+
groq: ['GROQ_API_KEY', ai.groqKey],
|
|
127
|
+
deepseek: ['DEEPSEEK_API_KEY', ai.deepseekKey],
|
|
128
|
+
perplexity: ['PERPLEXITY_API_KEY', ai.perplexityKey],
|
|
129
|
+
together: ['TOGETHER_API_KEY', ai.togetherKey],
|
|
130
|
+
cohere: ['COHERE_API_KEY', ai.cohereKey],
|
|
131
|
+
xai: ['XAI_API_KEY', ai.xaiKey],
|
|
132
|
+
nvidia: ['NVIDIA_API_KEY', ai.nvidiaKey],
|
|
133
|
+
cerebras: ['CEREBRAS_API_KEY', ai.cerebrasKey],
|
|
134
|
+
deepinfra: ['DEEPINFRA_API_KEY', ai.deepinfraKey],
|
|
135
|
+
huggingface: ['HUGGINGFACE_API_KEY', ai.huggingfaceKey],
|
|
136
|
+
fireworks: ['FIREWORKS_API_KEY', ai.fireworksKey],
|
|
137
|
+
custom: ['AUTOGIT_BRAG_API_KEY', ai.customKey],
|
|
138
|
+
'azure-openai': ['AZURE_OPENAI_API_KEY', ai.azureOpenAIKey],
|
|
139
|
+
};
|
|
140
|
+
const credential = keyFields[provider];
|
|
141
|
+
if (credential && !credential[1] && provider !== 'custom')
|
|
142
|
+
throw new Error(`No ${provider} credential is configured. Run autogit config.`);
|
|
143
|
+
if (credential)
|
|
144
|
+
env[credential[0]] = credential[1] || '';
|
|
145
|
+
const defaultModel = listProviders().find(item => item.name === provider)?.defaultModel;
|
|
146
|
+
const model = provider === 'custom'
|
|
147
|
+
? ai.customModelName || ai.model || defaultModel
|
|
148
|
+
: ai.model || defaultModel;
|
|
149
|
+
if (!model || model.startsWith('('))
|
|
150
|
+
throw new Error(`Configure a model for ${provider} before using Brag.`);
|
|
151
|
+
if (!/^[a-zA-Z0-9_./:@-]+$/.test(model))
|
|
152
|
+
throw new Error('The selected model ID contains unsupported characters.');
|
|
153
|
+
let providerId = provider === 'gemini' ? 'google' : provider;
|
|
154
|
+
let config = { model: `${providerId}/${model}` };
|
|
155
|
+
if (provider === 'ollama') {
|
|
156
|
+
const baseURL = `${ai.ollamaEndpoint.replace(/\/(?:v1)?\/?$/, '')}/v1`;
|
|
157
|
+
config = { ...config, provider: { ollama: { npm: '@ai-sdk/openai-compatible', name: 'Ollama', options: { baseURL }, models: { [model]: { name: model } } } } };
|
|
158
|
+
}
|
|
159
|
+
else if (provider === 'custom') {
|
|
160
|
+
if (!ai.customEndpoint)
|
|
161
|
+
throw new Error('Configure the custom API endpoint before using Brag.');
|
|
162
|
+
providerId = 'autogit-custom';
|
|
163
|
+
const options = { baseURL: ai.customEndpoint };
|
|
164
|
+
if (ai.customKey)
|
|
165
|
+
options.apiKey = '{env:AUTOGIT_BRAG_API_KEY}';
|
|
166
|
+
config = { model: `${providerId}/${model}`, provider: { [providerId]: { npm: '@ai-sdk/openai-compatible', name: 'AutoGit custom provider', options, models: { [model]: { name: model } } } } };
|
|
167
|
+
}
|
|
168
|
+
else if (provider === 'azure-openai') {
|
|
169
|
+
throw new Error('Automatic Azure OpenAI mapping to OpenCode is not yet supported. Choose another provider for Brag.');
|
|
170
|
+
}
|
|
171
|
+
else if (credential) {
|
|
172
|
+
config = { ...config, provider: { [providerId]: { options: { apiKey: `{env:${credential[0]}}` } } } };
|
|
173
|
+
}
|
|
174
|
+
env.OPENCODE_CONFIG_CONTENT = JSON.stringify(config);
|
|
175
|
+
return { agent, executable: 'opencode', args: ['run', '--model', `${providerId}/${model}`, prompt], env };
|
|
176
|
+
}
|
|
177
|
+
export async function runBragInProject(root) {
|
|
178
|
+
const config = loadConfig();
|
|
179
|
+
const provider = config.ai?.provider || getAIConfig().provider;
|
|
180
|
+
const agent = config.setup?.agent || selectBragAgent(provider);
|
|
181
|
+
if (config.setup?.brag !== 'installed' || config.setup.agent !== agent) {
|
|
182
|
+
throw new Error(`Brag is not installed for ${agent}. Run autogit setup first.`);
|
|
183
|
+
}
|
|
184
|
+
const prompt = 'Use the installed brag skill to inspect this project and produce its launch video and share copy. Do not invent features, results, or UI that the project does not have. For a CLI, API, library, or data project, show real commands, requests, usage, or verified results instead of a fake app screenshot. Do not modify project source files.';
|
|
185
|
+
const launch = buildBragLaunch(provider, prompt, agent);
|
|
186
|
+
const runtime = await ensureBragRuntime();
|
|
187
|
+
const inheritedPath = launch.env.Path || launch.env.PATH || '';
|
|
188
|
+
launch.env.PATH = `${runtime.pathPrefix}${delimiter}${inheritedPath}`;
|
|
189
|
+
if (process.platform === 'win32')
|
|
190
|
+
launch.env.Path = launch.env.PATH;
|
|
191
|
+
const path = await agentExecutablePath(launch.agent);
|
|
192
|
+
if (!path)
|
|
193
|
+
throw new Error(`${launch.agent} is not on PATH. Run autogit setup again.`);
|
|
194
|
+
const isBatch = process.platform === 'win32' && /\.(cmd|bat)$/i.test(path);
|
|
195
|
+
const executable = isBatch ? (process.env.ComSpec || 'cmd.exe') : path;
|
|
196
|
+
const args = isBatch ? ['/d', '/s', '/c', path, ...launch.args] : launch.args;
|
|
197
|
+
await new Promise((resolve, reject) => {
|
|
198
|
+
const child = spawn(executable, args, { cwd: root, env: launch.env, stdio: 'inherit', windowsHide: true });
|
|
199
|
+
child.once('error', reject);
|
|
200
|
+
child.once('exit', code => code === 0 ? resolve() : reject(new Error(`${launch.agent} exited with code ${code}`)));
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=brag-agent.js.map
|