@rosh100yx/outlier 0.4.0 → 0.4.1
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 +0 -0
- package/package.json +5 -1
- package/src/cli.ts +37 -11
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<img src="assets/cover.jpg" alt="Outlier Cover" width="100%" />
|
|
2
|
+
<img src="https://raw.githubusercontent.com/rosh100yx/outlier/main/assets/cover.jpg" alt="Outlier Cover" width="100%" />
|
|
3
3
|
<h1>outlier</h1>
|
|
4
4
|
<p><b>The Governance & Policy Engine for AI Engineering</b></p>
|
|
5
5
|
<p><i>Measure AI adoption. Enforce Zero-Trust. Protect Human Mastery.</i></p>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<br/>
|
|
24
|
-
<img src="assets/cli-demo.png" alt="Outlier CLI Demo" width="800" />
|
|
24
|
+
<img src="https://raw.githubusercontent.com/rosh100yx/outlier/main/assets/cli-demo.png" alt="Outlier CLI Demo" width="800" />
|
|
25
25
|
<br/>
|
|
26
26
|
</div>
|
|
27
27
|
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
> *"In a room full of agents" shifts the perspective. It acknowledges that the developer is no longer a solo coder; they are a manager of bots. The product exists to make sure the human doesn't get lazy while managing them. We all want our time back, but we don't want to lose control of the craft.*
|
|
37
37
|
|
|
38
38
|
<div align="center">
|
|
39
|
-
<img src="assets/codecore.gif" alt="Codecore Aesthetic" width="300" />
|
|
39
|
+
<img src="https://raw.githubusercontent.com/rosh100yx/outlier/main/assets/codecore.gif" alt="Codecore Aesthetic" width="300" />
|
|
40
40
|
</div>
|
|
41
41
|
|
|
42
42
|
## How It Works
|
package/bin/outlier
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosh100yx/outlier",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
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
6
|
"outlier": "bin/outlier"
|
|
@@ -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
|
@@ -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);
|