@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/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@rosh100yx/outlier",
3
- "version": "0.4.0",
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 --compile --outfile bin/outlier",
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 bun
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.0 · AI Code Reliance & Telemetry Engine\n'));
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('What is AI actually doing to your codebase? Are you a 10x dev or a 10x reviewer now?\n(Note: This will draft a public GitHub issue)'),
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 url = `https://github.com/rosh100yx/outlier/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.md&title=%5BConfessional%5D+Feedback&body=${encodeURIComponent(feedback.toString())}`;
437
- console.log(`\n${pc.bold('Submit here:')} ${pc.underline(pc.cyan(url))}\n`);
438
-
439
- try {
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