@rosh100yx/outlier 0.4.1 → 0.4.4
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 +16 -15
- package/bin/outlier.js +2344 -0
- package/bin/postinstall.js +17 -0
- package/package.json +7 -5
- package/src/cli.ts +43 -21
- package/bin/outlier +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const cyan = (text) => `\x1b[36m${text}\x1b[0m`;
|
|
4
|
+
const dim = (text) => `\x1b[2m${text}\x1b[0m`;
|
|
5
|
+
const bold = (text) => `\x1b[1m${text}\x1b[0m`;
|
|
6
|
+
|
|
7
|
+
console.log('\n' + bold('Welcome to Outlier') + ' - AI Code Governance for the Terminal');
|
|
8
|
+
console.log(dim('────────────────────────────────────────────────────────────'));
|
|
9
|
+
console.log('To start the interactive wizard and audit your codebase, type:\n');
|
|
10
|
+
console.log(` ${cyan('outlier')}\n`);
|
|
11
|
+
console.log('Available Commands:');
|
|
12
|
+
console.log(` ${cyan('outlier status')} Print your Thermal Audit Receipt`);
|
|
13
|
+
console.log(` ${cyan('outlier impact')} See the compounding horizon of AI Deskilling (What you lose/gain)`);
|
|
14
|
+
console.log(` ${cyan('outlier knowledge')} Explore core literature and METR references`);
|
|
15
|
+
console.log(` ${cyan('outlier participate')} Help build the literature on AI deskilling`);
|
|
16
|
+
console.log(` ${cyan('outlier help')} See all available commands`);
|
|
17
|
+
console.log(dim('────────────────────────────────────────────────────────────\n'));
|
package/package.json
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosh100yx/outlier",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
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
|
+
"bin/postinstall.js",
|
|
10
11
|
"src",
|
|
11
12
|
"data"
|
|
12
13
|
],
|
|
13
14
|
"scripts": {
|
|
14
|
-
"build": "bun build ./src/cli.ts --
|
|
15
|
+
"build": "bun build ./src/cli.ts --target=node --outfile bin/outlier.js",
|
|
15
16
|
"test": "bun test",
|
|
16
|
-
"start": "bun run src/cli.ts"
|
|
17
|
+
"start": "bun run src/cli.ts",
|
|
18
|
+
"postinstall": "node bin/postinstall.js"
|
|
17
19
|
},
|
|
18
20
|
"type": "module",
|
|
19
21
|
"private": false,
|
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';
|
|
@@ -90,7 +90,9 @@ async function main() {
|
|
|
90
90
|
console.log(` ${pc.cyan('outlier authorship')} Scan git history for AI co-authorship ratio`);
|
|
91
91
|
console.log(` ${pc.cyan('outlier carbon')} Scan local logs for token waste & carbon cost`);
|
|
92
92
|
console.log(` ${pc.cyan('outlier policy')} Configure CI/CD guardrails and thresholds`);
|
|
93
|
-
console.log(` ${pc.cyan('outlier
|
|
93
|
+
console.log(` ${pc.cyan('outlier impact')} See the compounding horizon of AI Deskilling`);
|
|
94
|
+
console.log(` ${pc.cyan('outlier knowledge')} Explore references, graphs, and the core literature`);
|
|
95
|
+
console.log(` ${pc.cyan('outlier participate')} Help build the academic literature on AI deskilling`);
|
|
94
96
|
console.log('\n' + pc.dim('Run without arguments to start the interactive wizard.'));
|
|
95
97
|
process.exit(0);
|
|
96
98
|
}
|
|
@@ -113,7 +115,9 @@ async function main() {
|
|
|
113
115
|
{ value: 'authorship', label: 'Code Durability', hint: 'Scan git history for AI Code Reliance & Hallucination Risk' },
|
|
114
116
|
{ value: 'carbon', label: 'Cache Bloat', hint: 'Scan local logs for context waste & token costs' },
|
|
115
117
|
{ value: 'policy', label: 'Policy Profiles', hint: 'Set Personal, Team, or Enterprise guardrails in CI' },
|
|
116
|
-
{ value: '
|
|
118
|
+
{ value: 'impact', label: 'Impact Horizon', hint: 'What do you lose and gain in the next 5-10 years?' },
|
|
119
|
+
{ value: 'knowledge', label: 'Literature Base', hint: 'Explore references and the core academic foundation' },
|
|
120
|
+
{ value: 'participate', label: 'Participate', hint: 'Contribute to the literature on AI deskilling' }
|
|
117
121
|
],
|
|
118
122
|
});
|
|
119
123
|
|
|
@@ -410,8 +414,8 @@ Artifact: ${pc.cyan(reportPath)}`,
|
|
|
410
414
|
'Regulatory Compliance'
|
|
411
415
|
);
|
|
412
416
|
}
|
|
413
|
-
} else if (action === '
|
|
414
|
-
s.start('Connecting to the
|
|
417
|
+
} else if (action === 'participate') {
|
|
418
|
+
s.start('Connecting to the Outlier research project...');
|
|
415
419
|
await new Promise(resolve => setTimeout(resolve, 600));
|
|
416
420
|
s.stop('Secure connection established.');
|
|
417
421
|
|
|
@@ -424,7 +428,7 @@ Artifact: ${pc.cyan(reportPath)}`,
|
|
|
424
428
|
]
|
|
425
429
|
});
|
|
426
430
|
|
|
427
|
-
if (isCancel(q1)) { cancel('
|
|
431
|
+
if (isCancel(q1)) { cancel('Survey aborted.'); process.exit(0); }
|
|
428
432
|
|
|
429
433
|
const q2 = await select({
|
|
430
434
|
message: pc.cyan('Do you feel you are losing your deep architectural mastery? (Deskilling)'),
|
|
@@ -435,30 +439,47 @@ Artifact: ${pc.cyan(reportPath)}`,
|
|
|
435
439
|
]
|
|
436
440
|
});
|
|
437
441
|
|
|
438
|
-
if (isCancel(q2)) { cancel('
|
|
442
|
+
if (isCancel(q2)) { cancel('Survey aborted.'); process.exit(0); }
|
|
439
443
|
|
|
440
444
|
const feedback = await text({
|
|
441
445
|
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)'),
|
|
442
446
|
placeholder: 'Honestly, I just let the agent write the regex...',
|
|
443
447
|
validate(value) {
|
|
444
|
-
if (!value || value.length === 0) return `C'mon,
|
|
448
|
+
if (!value || value.length === 0) return `C'mon, say something!`;
|
|
445
449
|
},
|
|
446
450
|
});
|
|
447
451
|
|
|
448
452
|
if (isCancel(feedback)) {
|
|
449
|
-
cancel('
|
|
453
|
+
cancel('Survey aborted.');
|
|
450
454
|
process.exit(0);
|
|
451
455
|
}
|
|
452
456
|
|
|
453
457
|
note(
|
|
454
|
-
`${pc.italic(`"${feedback}"`)}\n\nYour
|
|
455
|
-
'
|
|
458
|
+
`${pc.italic(`"${feedback}"`)}\n\nYour input is invaluable. To make it official and contribute to the literature, we've generated a secure transmission link for you.`,
|
|
459
|
+
'Outlier Research'
|
|
456
460
|
);
|
|
457
461
|
|
|
458
462
|
const surveyData = `**Engineering Reality:** ${q1}\n**Deskilling Impact:** ${q2}\n**Thoughts:**\n${feedback}`;
|
|
459
463
|
|
|
460
|
-
const url = `https://github.com/rosh100yx/outlier/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.md&title=%
|
|
464
|
+
const url = `https://github.com/rosh100yx/outlier/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.md&title=%5BOutlier+Research%5D+Feedback&body=${encodeURIComponent("Drop a screenshot of your Thermal Receipt here! \n\n" + surveyData)}`;
|
|
461
465
|
console.log(`\n${pc.bold('Submit here (and drop your screenshot!):')} ${pc.underline(pc.cyan(url))}\n`);
|
|
466
|
+
} else if (action === 'impact') {
|
|
467
|
+
console.log('\n' + pc.bold(pc.bgMagenta(' THE COMPOUNDING HORIZON OF DESKILLING ')) + '\n');
|
|
468
|
+
console.log(pc.bold('What Do We Lose and Gain?'));
|
|
469
|
+
console.log(pc.cyan('■ Today (The 5-minute task)'));
|
|
470
|
+
console.log(` ${pc.green('Gain:')} Velocity. AI scaffolds your components.`);
|
|
471
|
+
console.log(` ${pc.red('Lose:')} Syntax recall. Memory of the low-level pipes.`);
|
|
472
|
+
console.log(pc.cyan('\n■ Tomorrow (The 5-hour task - e.g. Claude Opus 4.5)'));
|
|
473
|
+
console.log(` ${pc.green('Gain:')} Massive scale. You are a systems orchestrator.`);
|
|
474
|
+
console.log(` ${pc.red('Lose:')} Architectural intimacy. You become a reviewer.`);
|
|
475
|
+
console.log(pc.cyan('\n■ Next 5-10 Years (The 1M+ LOC Crisis)'));
|
|
476
|
+
console.log(` When an agent introduces a fatal state bug in a monolithic architecture, human reviewers will lack the muscle memory to debug it. Outlier measures this exact sovereignty erosion.\n`);
|
|
477
|
+
} else if (action === 'knowledge') {
|
|
478
|
+
console.log('\n' + pc.bold(pc.bgBlue(' CORE LITERATURE & REFERENCES ')) + '\n');
|
|
479
|
+
console.log(`1. ${pc.cyan('METR (Measuring AI Ability)')} - Evaluating AI on long-horizon software tasks.`);
|
|
480
|
+
console.log(`2. ${pc.cyan('The "NPC" vs "High-Agency" Paradigm')} - Remaining sovereign in a room full of agents.`);
|
|
481
|
+
console.log(`3. ${pc.cyan('Proof of Human Mastery')} - The cryptoeconomic necessity of proving human architectural understanding.`);
|
|
482
|
+
console.log(`\nRead the full academic foundation at: ${pc.underline('https://github.com/rosh100yx/outlier')}\n`);
|
|
462
483
|
}
|
|
463
484
|
|
|
464
485
|
outro('Local telemetry run completed. No data left your machine.');
|
|
@@ -494,18 +515,19 @@ Artifact: ${pc.cyan(reportPath)}`,
|
|
|
494
515
|
console.log(
|
|
495
516
|
pc.dim(
|
|
496
517
|
`└ Share your audit: https://x.com/intent/tweet?text=${encodeURIComponent(
|
|
497
|
-
'I just audited my codebase for AI reliance and deskilling risk. What does your repo score?\n\n📏
|
|
518
|
+
'I just audited my codebase for AI reliance and deskilling risk. What does your repo score?\n\n📏 #Outlier'
|
|
498
519
|
)}`
|
|
499
520
|
)
|
|
500
521
|
);
|
|
501
|
-
|
|
502
|
-
console.log(
|
|
503
|
-
pc.dim(`└ Have thoughts on AI deskilling? Tell us: `) + pc.cyan(`npx @rosh100yx/outlier confessional`)
|
|
504
|
-
);
|
|
505
522
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
523
|
+
if (action === 'status') {
|
|
524
|
+
console.log(
|
|
525
|
+
pc.dim(`└ Have thoughts on AI deskilling? Tell us: `) + pc.cyan(`outlier participate`)
|
|
526
|
+
);
|
|
527
|
+
console.log(
|
|
528
|
+
pc.dim(`└ Keep your local policies updated: `) + pc.cyan(`outlier update`)
|
|
529
|
+
);
|
|
530
|
+
}
|
|
509
531
|
}
|
|
510
532
|
|
|
511
533
|
main().catch(console.error);
|
package/bin/outlier
DELETED
|
Binary file
|