@gurulu/cli 0.1.2 → 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/dist/commands/install.js +15 -0
- package/dist/index.js +10 -5
- package/package.json +5 -2
package/dist/commands/install.js
CHANGED
|
@@ -403,6 +403,9 @@ async function runInstallFlow(args, deps, scriptsDir) {
|
|
|
403
403
|
log(deps, 'success', 'Patches applied.');
|
|
404
404
|
}
|
|
405
405
|
else {
|
|
406
|
+
if (args.autoInstrument) {
|
|
407
|
+
log(deps, 'info', `Auto-instrument: ${summary.instrumentation?.filesModified || 0} route files, ${summary.instrumentation?.eventsInstrumented || 0} events`);
|
|
408
|
+
}
|
|
406
409
|
log(deps, 'info', 'Dry-run: skipping apply, npm install, env merge, and ingest test.');
|
|
407
410
|
}
|
|
408
411
|
// ---- 5. npm install --------------------------------------------------
|
|
@@ -526,6 +529,15 @@ async function runInstallFlow(args, deps, scriptsDir) {
|
|
|
526
529
|
`${summary.instrumentation.eventsSkipped} skipped`);
|
|
527
530
|
}
|
|
528
531
|
log(deps, 'info', '');
|
|
532
|
+
// ---- Post-install guidance ---------------------------------------------
|
|
533
|
+
if (!summary.dryRun && summary.errors.length === 0) {
|
|
534
|
+
console.log('');
|
|
535
|
+
log(deps, 'info', '✓ Install complete! Next steps:');
|
|
536
|
+
log(deps, 'info', ` Run ${(0, ui_1.cyan)('gurulu doctor')} to verify setup health`);
|
|
537
|
+
log(deps, 'info', ` Run ${(0, ui_1.cyan)('gurulu events tail')} to watch live events`);
|
|
538
|
+
log(deps, 'info', ` Visit ${(0, ui_1.cyan)('https://gurulu.io/dashboard')} to view analytics`);
|
|
539
|
+
console.log('');
|
|
540
|
+
}
|
|
529
541
|
return summary;
|
|
530
542
|
}
|
|
531
543
|
function repoHashOf(repoRoot, remoteUrl = null) {
|
|
@@ -633,6 +645,9 @@ async function runAuthenticatedInstallFlow(args, authDeps, installDeps, scriptsD
|
|
|
633
645
|
intent = await authDeps.intent.analyze(signals);
|
|
634
646
|
intentRecord.analyzed = true;
|
|
635
647
|
intentRecord.vertical = intent.vertical;
|
|
648
|
+
if (intent.analyzerMode === 'heuristic') {
|
|
649
|
+
installDeps.log?.warn('⚠ LLM unavailable — using rule-based intent discovery. Results may be less precise.');
|
|
650
|
+
}
|
|
636
651
|
}
|
|
637
652
|
catch (err) {
|
|
638
653
|
installDeps.log?.warn(`Intent analyzer failed: ${err.message}`);
|
package/dist/index.js
CHANGED
|
@@ -208,20 +208,25 @@ const db_1 = require("./commands/db");
|
|
|
208
208
|
.option('skip-env', { type: 'boolean', describe: 'Skip .env file merge' })
|
|
209
209
|
.option('yes', { type: 'boolean', alias: 'y', describe: 'Non-interactive (assume yes)' })
|
|
210
210
|
.option('ingest-url', { type: 'string', describe: 'Override ingest base URL' })
|
|
211
|
-
.option('verify', { type: 'boolean', describe: 'Live smoke test after install' })
|
|
211
|
+
.option('verify', { type: 'boolean', default: true, describe: 'Live smoke test after install' })
|
|
212
212
|
.option('skip-intent', { type: 'boolean', describe: 'Skip install-time intent discovery' })
|
|
213
213
|
.option('intent-dry-run', { type: 'boolean', describe: 'Show intent proposal without pre-seeding' })
|
|
214
214
|
.option('vertical', { type: 'string', describe: 'Vertical hint for intent analyzer' })
|
|
215
215
|
// BEGIN: Agent B (Phase 18.7) — auto-instrument opt-in flag
|
|
216
216
|
.option('auto-instrument', {
|
|
217
217
|
type: 'boolean',
|
|
218
|
-
description: 'Also auto-instrument route handlers with gurulu.track() calls
|
|
219
|
-
default:
|
|
218
|
+
description: 'Also auto-instrument route handlers with gurulu.track() calls',
|
|
219
|
+
default: true,
|
|
220
220
|
})
|
|
221
221
|
.option('auto-properties', {
|
|
222
222
|
type: 'boolean',
|
|
223
|
+
default: true,
|
|
224
|
+
description: 'Ask Minimax to propose properties for each auto-instrumented handler (Phase 20 W1 A2)',
|
|
225
|
+
})
|
|
226
|
+
.option('skip-verify', {
|
|
227
|
+
type: 'boolean',
|
|
223
228
|
default: false,
|
|
224
|
-
description: '
|
|
229
|
+
description: 'Skip live smoke verification after install',
|
|
225
230
|
}),
|
|
226
231
|
// END: Agent B (Phase 18.7)
|
|
227
232
|
(args) => {
|
|
@@ -239,7 +244,7 @@ const db_1 = require("./commands/db");
|
|
|
239
244
|
skipEnv: args['skip-env'],
|
|
240
245
|
yes: args.yes,
|
|
241
246
|
ingestUrl: args['ingest-url'],
|
|
242
|
-
verify: args.verify,
|
|
247
|
+
verify: args['skip-verify'] ? false : args.verify,
|
|
243
248
|
profile: args.profile,
|
|
244
249
|
skipIntent: args['skip-intent'],
|
|
245
250
|
intentDryRun: args['intent-dry-run'],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gurulu/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Gurulu.io CLI — setup analytics in seconds",
|
|
5
5
|
"bin": {
|
|
6
6
|
"gurulu": "bin/gurulu.js"
|
|
@@ -16,7 +16,10 @@
|
|
|
16
16
|
"dev": "tsc --watch"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"yargs": "^17.7.2"
|
|
19
|
+
"yargs": "^17.7.2",
|
|
20
|
+
"@babel/parser": "^7.24.0",
|
|
21
|
+
"@babel/traverse": "^7.24.0",
|
|
22
|
+
"@babel/generator": "^7.24.0"
|
|
20
23
|
},
|
|
21
24
|
"devDependencies": {
|
|
22
25
|
"@types/yargs": "^17.0.32",
|