@rosh100yx/outlier 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/bin/outlier.js +2312 -0
- package/package.json +8 -4
- package/src/cli.ts +39 -13
- package/bin/outlier +0 -0
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosh100yx/outlier",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "AI Code Governance & Capability Auditing for the Terminal. Measures AI reliance, context waste, and enforces local CI/CD policies.",
|
|
5
5
|
"bin": {
|
|
6
|
-
"outlier": "bin/outlier"
|
|
6
|
+
"outlier": "bin/outlier.js"
|
|
7
7
|
},
|
|
8
8
|
"files": [
|
|
9
|
-
"bin/outlier",
|
|
9
|
+
"bin/outlier.js",
|
|
10
10
|
"src",
|
|
11
11
|
"data"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
|
-
"build": "bun build ./src/cli.ts --
|
|
14
|
+
"build": "bun build ./src/cli.ts --target=node --outfile bin/outlier.js",
|
|
15
15
|
"test": "bun test",
|
|
16
16
|
"start": "bun run src/cli.ts"
|
|
17
17
|
},
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"private": false,
|
|
20
20
|
"author": "Roshan Abraham",
|
|
21
21
|
"license": "MIT",
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "https://github.com/rosh100yx/outlier.git"
|
|
25
|
+
},
|
|
22
26
|
"keywords": [
|
|
23
27
|
"ai",
|
|
24
28
|
"governance",
|
package/src/cli.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import { intro, outro, select, spinner, isCancel, cancel, note, text } from '@clack/prompts';
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { intro, outro, select, spinner, isCancel, cancel, note, text, confirm } from '@clack/prompts';
|
|
3
3
|
import pc from 'picocolors';
|
|
4
4
|
import { getAuthorshipStats } from './git';
|
|
5
5
|
import { getCarbonStats } from './carbon';
|
|
@@ -79,7 +79,7 @@ The results will assign you a "vibe" and evaluate if you are at risk of deskilli
|
|
|
79
79
|
async function main() {
|
|
80
80
|
console.clear();
|
|
81
81
|
console.log(pc.cyan(ASCII_LOGO));
|
|
82
|
-
console.log(pc.dim(' Outlier v0.4.
|
|
82
|
+
console.log(pc.dim(' Outlier v0.4.1 · AI Code Reliance & Telemetry Engine\n'));
|
|
83
83
|
|
|
84
84
|
let action = process.argv[2] as any;
|
|
85
85
|
|
|
@@ -415,8 +415,30 @@ Artifact: ${pc.cyan(reportPath)}`,
|
|
|
415
415
|
await new Promise(resolve => setTimeout(resolve, 600));
|
|
416
416
|
s.stop('Secure connection established.');
|
|
417
417
|
|
|
418
|
+
const q1 = await select({
|
|
419
|
+
message: pc.cyan('What is your current engineering reality today?'),
|
|
420
|
+
options: [
|
|
421
|
+
{ value: 'artisan', label: 'Solo Artisan (I write 90%+ of the code myself)' },
|
|
422
|
+
{ value: 'manager', label: 'AI Manager (I prompt, the agents write)' },
|
|
423
|
+
{ value: 'reviewer', label: 'Full-time Reviewer (I spend my days reviewing agent PRs)' }
|
|
424
|
+
]
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
if (isCancel(q1)) { cancel('Confession aborted.'); process.exit(0); }
|
|
428
|
+
|
|
429
|
+
const q2 = await select({
|
|
430
|
+
message: pc.cyan('Do you feel you are losing your deep architectural mastery? (Deskilling)'),
|
|
431
|
+
options: [
|
|
432
|
+
{ value: 'yes_heavy', label: 'Yes, heavily. I forget how my own systems work.' },
|
|
433
|
+
{ value: 'yes_slight', label: 'Slightly. I rely on the AI to fix its own bugs.' },
|
|
434
|
+
{ value: 'no', label: 'No. I maintain strict oversight and mastery.' }
|
|
435
|
+
]
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
if (isCancel(q2)) { cancel('Confession aborted.'); process.exit(0); }
|
|
439
|
+
|
|
418
440
|
const feedback = await text({
|
|
419
|
-
message: pc.cyan('
|
|
441
|
+
message: pc.cyan('In your own words, what is AI actually doing to your codebase or your job?\n(Note: This will draft a public GitHub issue)'),
|
|
420
442
|
placeholder: 'Honestly, I just let the agent write the regex...',
|
|
421
443
|
validate(value) {
|
|
422
444
|
if (!value || value.length === 0) return `C'mon, confess something!`;
|
|
@@ -429,18 +451,14 @@ Artifact: ${pc.cyan(reportPath)}`,
|
|
|
429
451
|
}
|
|
430
452
|
|
|
431
453
|
note(
|
|
432
|
-
`${pc.italic(`"${feedback}"`)}\n\nYour confession is safe with us. But if you want to make it official (and help us build what you need), we've generated a secure transmission link for you.`,
|
|
454
|
+
`${pc.italic(`"${feedback}"`)}\n\nYour confession is safe with us. But if you want to make it official (and help us build what you need for the literature), we've generated a secure transmission link for you.`,
|
|
433
455
|
'The Confessional'
|
|
434
456
|
);
|
|
435
457
|
|
|
436
|
-
const
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
if (process.platform === 'darwin') {
|
|
441
|
-
execSync(`open "${url}"`);
|
|
442
|
-
}
|
|
443
|
-
} catch(e) {}
|
|
458
|
+
const surveyData = `**Engineering Reality:** ${q1}\n**Deskilling Impact:** ${q2}\n**Thoughts:**\n${feedback}`;
|
|
459
|
+
|
|
460
|
+
const url = `https://github.com/rosh100yx/outlier/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.md&title=%5BConfessional%5D+Feedback&body=${encodeURIComponent("Drop a screenshot of your Thermal Receipt here! \n\n" + surveyData)}`;
|
|
461
|
+
console.log(`\n${pc.bold('Submit here (and drop your screenshot!):')} ${pc.underline(pc.cyan(url))}\n`);
|
|
444
462
|
}
|
|
445
463
|
|
|
446
464
|
outro('Local telemetry run completed. No data left your machine.');
|
|
@@ -480,6 +498,14 @@ Artifact: ${pc.cyan(reportPath)}`,
|
|
|
480
498
|
)}`
|
|
481
499
|
)
|
|
482
500
|
);
|
|
501
|
+
|
|
502
|
+
console.log(
|
|
503
|
+
pc.dim(`└ Have thoughts on AI deskilling? Tell us: `) + pc.cyan(`npx @rosh100yx/outlier confessional`)
|
|
504
|
+
);
|
|
505
|
+
|
|
506
|
+
console.log(
|
|
507
|
+
pc.dim(`└ Keep your local policies updated: `) + pc.cyan(`npx @rosh100yx/outlier@latest`)
|
|
508
|
+
);
|
|
483
509
|
}
|
|
484
510
|
|
|
485
511
|
main().catch(console.error);
|
package/bin/outlier
DELETED
|
Binary file
|