jobarbiter 0.3.4 → 0.3.6
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/index.js +1 -1
- package/dist/lib/observe.d.ts +1 -1
- package/dist/lib/observe.js +3 -3
- package/dist/lib/onboard.js +26 -13
- package/package.json +1 -1
- package/src/lib/observe.ts +3 -3
- package/src/lib/onboard.ts +26 -13
package/dist/index.js
CHANGED
|
@@ -745,7 +745,7 @@ program
|
|
|
745
745
|
// ============================================================
|
|
746
746
|
// observe (manage AI agent observers)
|
|
747
747
|
// ============================================================
|
|
748
|
-
const observe = program.command("observe").description("Manage AI
|
|
748
|
+
const observe = program.command("observe").description("Manage AI tool proficiency observers");
|
|
749
749
|
observe
|
|
750
750
|
.command("status")
|
|
751
751
|
.description("Show observer status and accumulated data")
|
package/dist/lib/observe.d.ts
CHANGED
package/dist/lib/observe.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* JobArbiter Observer — Hook installer for AI
|
|
2
|
+
* JobArbiter Observer — Hook installer for AI tools
|
|
3
3
|
*
|
|
4
4
|
* Installs observation hooks that extract proficiency signals from
|
|
5
5
|
* session transcripts. Uses detect-tools.ts for agent detection.
|
|
@@ -75,7 +75,7 @@ function getObserverScript() {
|
|
|
75
75
|
return `#!/usr/bin/env node
|
|
76
76
|
/**
|
|
77
77
|
* JobArbiter Observer Hook
|
|
78
|
-
* Extracts proficiency signals from AI
|
|
78
|
+
* Extracts proficiency signals from AI tool sessions.
|
|
79
79
|
*
|
|
80
80
|
* Reads JSON from stdin, writes observations to:
|
|
81
81
|
* ~/.config/jobarbiter/observer/observations.json
|
|
@@ -105,7 +105,7 @@ process.stdin.on("end", () => {
|
|
|
105
105
|
const observation = extractSignals(data);
|
|
106
106
|
if (observation) appendObservation(observation);
|
|
107
107
|
} catch (err) {
|
|
108
|
-
// Silent failure — never block the AI
|
|
108
|
+
// Silent failure — never block the AI tool
|
|
109
109
|
fs.appendFileSync(
|
|
110
110
|
path.join(os.homedir(), ".config", "jobarbiter", "observer", "errors.log"),
|
|
111
111
|
\`[\${new Date().toISOString()}] \${err.message}\\n\`
|
package/dist/lib/onboard.js
CHANGED
|
@@ -427,12 +427,19 @@ async function runToolDetectionStep(prompt, config) {
|
|
|
427
427
|
// Observer installation for AI agents
|
|
428
428
|
const needsObserver = codingAgents.filter((t) => t.observerAvailable && !t.observerActive);
|
|
429
429
|
if (needsObserver.length > 0) {
|
|
430
|
-
console.log(`\n ${c.bold("Observers")}`);
|
|
431
|
-
console.log(` JobArbiter
|
|
432
|
-
console.log(`
|
|
433
|
-
console.log(`
|
|
430
|
+
console.log(`\n ${c.bold("Observers — How You Use AI, Not Just How Much")}`);
|
|
431
|
+
console.log(` JobArbiter observers go beyond token counts. We analyze ${c.bold("how")}`);
|
|
432
|
+
console.log(` you work with AI to build a rich proficiency profile:\n`);
|
|
433
|
+
console.log(` ${c.bold("Quantitative")} — session frequency, token volume, tool diversity`);
|
|
434
|
+
console.log(` ${c.bold("Qualitative")} — orchestration complexity, problem-solving approach,`);
|
|
435
|
+
console.log(` communication clarity, iteration patterns, tool fluency\n`);
|
|
436
|
+
console.log(` This is what makes your profile ${c.bold("verified")} — not self-reported.`);
|
|
437
|
+
console.log(` Anyone can claim "advanced AI skills." Your observer ${c.bold("proves")} it.\n`);
|
|
438
|
+
console.log(` ${c.bold("Privacy:")} ${c.highlight("No code, prompts, or content leave your machine.")}`);
|
|
439
|
+
console.log(` Only derived proficiency signals (scores, patterns, dimensions)`);
|
|
440
|
+
console.log(` are submitted — never raw session data.\n`);
|
|
434
441
|
console.log(c.dim(` Data stored locally: ~/.config/jobarbiter/observer/observations.json`));
|
|
435
|
-
console.log(c.dim(` Review anytime: jobarbiter observe
|
|
442
|
+
console.log(c.dim(` Review anytime: jobarbiter observe review\n`));
|
|
436
443
|
const observerNames = needsObserver.map((t) => t.name).join(", ");
|
|
437
444
|
const installAll = await prompt.confirm(` Install observers for detected tools? (${observerNames})`);
|
|
438
445
|
if (installAll) {
|
|
@@ -561,17 +568,23 @@ async function connectProvider(prompt, providerId, providerName) {
|
|
|
561
568
|
function showWorkerCompletion(state) {
|
|
562
569
|
console.log(`${sym.done} ${c.bold("Step 7/7 — You're In!")}\n`);
|
|
563
570
|
console.log(`Your profile is live. Here's what happens next:\n`);
|
|
564
|
-
console.log(` 📊 Your proficiency
|
|
565
|
-
console.log(` ${
|
|
566
|
-
console.log(` ${sym.bullet}
|
|
567
|
-
console.log(` ${sym.bullet}
|
|
568
|
-
console.log(` ${sym.bullet}
|
|
569
|
-
console.log(` ${sym.bullet}
|
|
571
|
+
console.log(` 📊 Your proficiency profile builds automatically from:`);
|
|
572
|
+
console.log(` ${c.bold("How you use AI (qualitative):")}`);
|
|
573
|
+
console.log(` ${sym.bullet} Orchestration complexity ${c.dim("— single prompts vs multi-agent pipelines")}`);
|
|
574
|
+
console.log(` ${sym.bullet} Problem-solving approach ${c.dim("— how you break down and iterate")}`);
|
|
575
|
+
console.log(` ${sym.bullet} Communication clarity ${c.dim("— precision of your instructions")}`);
|
|
576
|
+
console.log(` ${sym.bullet} Tool fluency ${c.dim("— depth across different AI tools")}\n`);
|
|
577
|
+
console.log(` ${c.bold("How much you use AI (quantitative):")}`);
|
|
578
|
+
console.log(` ${sym.bullet} Session frequency & consistency over time`);
|
|
579
|
+
console.log(` ${sym.bullet} Token consumption patterns`);
|
|
580
|
+
console.log(` ${sym.bullet} GitHub AI-assisted contributions`);
|
|
581
|
+
console.log(` ${sym.bullet} Tool diversity across providers\n`);
|
|
570
582
|
console.log(` 🎯 Your proficiency ${c.bold("track")} (Orchestrator, Systems Builder, or`);
|
|
571
583
|
console.log(` Domain Translator) is determined automatically as we observe`);
|
|
572
|
-
console.log(` how you work
|
|
584
|
+
console.log(` how you work — whether that's coding, research, automation,`);
|
|
585
|
+
console.log(` content creation, or anything else. No need to self-assess.\n`);
|
|
573
586
|
console.log(` 🤖 For deeper attestation, install the ${c.highlight("jobarbiter-proficiency")}`);
|
|
574
|
-
console.log(` skill in your AI
|
|
587
|
+
console.log(` skill in your AI tools (OpenClaw, Claude Code, etc.)\n`);
|
|
575
588
|
console.log(` ${c.bold("Useful commands:")}`);
|
|
576
589
|
console.log(` ${c.highlight("jobarbiter profile score")} — Check your proficiency score`);
|
|
577
590
|
console.log(` ${c.highlight("jobarbiter observe status")} — See collected observation data`);
|
package/package.json
CHANGED
package/src/lib/observe.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* JobArbiter Observer — Hook installer for AI
|
|
2
|
+
* JobArbiter Observer — Hook installer for AI tools
|
|
3
3
|
*
|
|
4
4
|
* Installs observation hooks that extract proficiency signals from
|
|
5
5
|
* session transcripts. Uses detect-tools.ts for agent detection.
|
|
@@ -109,7 +109,7 @@ function getObserverScript(): string {
|
|
|
109
109
|
return `#!/usr/bin/env node
|
|
110
110
|
/**
|
|
111
111
|
* JobArbiter Observer Hook
|
|
112
|
-
* Extracts proficiency signals from AI
|
|
112
|
+
* Extracts proficiency signals from AI tool sessions.
|
|
113
113
|
*
|
|
114
114
|
* Reads JSON from stdin, writes observations to:
|
|
115
115
|
* ~/.config/jobarbiter/observer/observations.json
|
|
@@ -139,7 +139,7 @@ process.stdin.on("end", () => {
|
|
|
139
139
|
const observation = extractSignals(data);
|
|
140
140
|
if (observation) appendObservation(observation);
|
|
141
141
|
} catch (err) {
|
|
142
|
-
// Silent failure — never block the AI
|
|
142
|
+
// Silent failure — never block the AI tool
|
|
143
143
|
fs.appendFileSync(
|
|
144
144
|
path.join(os.homedir(), ".config", "jobarbiter", "observer", "errors.log"),
|
|
145
145
|
\`[\${new Date().toISOString()}] \${err.message}\\n\`
|
package/src/lib/onboard.ts
CHANGED
|
@@ -521,12 +521,19 @@ async function runToolDetectionStep(
|
|
|
521
521
|
const needsObserver = codingAgents.filter((t) => t.observerAvailable && !t.observerActive);
|
|
522
522
|
|
|
523
523
|
if (needsObserver.length > 0) {
|
|
524
|
-
console.log(`\n ${c.bold("Observers")}`);
|
|
525
|
-
console.log(` JobArbiter
|
|
526
|
-
console.log(`
|
|
527
|
-
console.log(`
|
|
524
|
+
console.log(`\n ${c.bold("Observers — How You Use AI, Not Just How Much")}`);
|
|
525
|
+
console.log(` JobArbiter observers go beyond token counts. We analyze ${c.bold("how")}`);
|
|
526
|
+
console.log(` you work with AI to build a rich proficiency profile:\n`);
|
|
527
|
+
console.log(` ${c.bold("Quantitative")} — session frequency, token volume, tool diversity`);
|
|
528
|
+
console.log(` ${c.bold("Qualitative")} — orchestration complexity, problem-solving approach,`);
|
|
529
|
+
console.log(` communication clarity, iteration patterns, tool fluency\n`);
|
|
530
|
+
console.log(` This is what makes your profile ${c.bold("verified")} — not self-reported.`);
|
|
531
|
+
console.log(` Anyone can claim "advanced AI skills." Your observer ${c.bold("proves")} it.\n`);
|
|
532
|
+
console.log(` ${c.bold("Privacy:")} ${c.highlight("No code, prompts, or content leave your machine.")}`);
|
|
533
|
+
console.log(` Only derived proficiency signals (scores, patterns, dimensions)`);
|
|
534
|
+
console.log(` are submitted — never raw session data.\n`);
|
|
528
535
|
console.log(c.dim(` Data stored locally: ~/.config/jobarbiter/observer/observations.json`));
|
|
529
|
-
console.log(c.dim(` Review anytime: jobarbiter observe
|
|
536
|
+
console.log(c.dim(` Review anytime: jobarbiter observe review\n`));
|
|
530
537
|
|
|
531
538
|
const observerNames = needsObserver.map((t) => t.name).join(", ");
|
|
532
539
|
const installAll = await prompt.confirm(
|
|
@@ -674,19 +681,25 @@ function showWorkerCompletion(state: OnboardState): void {
|
|
|
674
681
|
console.log(`${sym.done} ${c.bold("Step 7/7 — You're In!")}\n`);
|
|
675
682
|
console.log(`Your profile is live. Here's what happens next:\n`);
|
|
676
683
|
|
|
677
|
-
console.log(` 📊 Your proficiency
|
|
678
|
-
console.log(` ${
|
|
679
|
-
console.log(` ${sym.bullet}
|
|
680
|
-
console.log(` ${sym.bullet}
|
|
681
|
-
console.log(` ${sym.bullet}
|
|
682
|
-
console.log(` ${sym.bullet}
|
|
684
|
+
console.log(` 📊 Your proficiency profile builds automatically from:`);
|
|
685
|
+
console.log(` ${c.bold("How you use AI (qualitative):")}`);
|
|
686
|
+
console.log(` ${sym.bullet} Orchestration complexity ${c.dim("— single prompts vs multi-agent pipelines")}`);
|
|
687
|
+
console.log(` ${sym.bullet} Problem-solving approach ${c.dim("— how you break down and iterate")}`);
|
|
688
|
+
console.log(` ${sym.bullet} Communication clarity ${c.dim("— precision of your instructions")}`);
|
|
689
|
+
console.log(` ${sym.bullet} Tool fluency ${c.dim("— depth across different AI tools")}\n`);
|
|
690
|
+
console.log(` ${c.bold("How much you use AI (quantitative):")}`);
|
|
691
|
+
console.log(` ${sym.bullet} Session frequency & consistency over time`);
|
|
692
|
+
console.log(` ${sym.bullet} Token consumption patterns`);
|
|
693
|
+
console.log(` ${sym.bullet} GitHub AI-assisted contributions`);
|
|
694
|
+
console.log(` ${sym.bullet} Tool diversity across providers\n`);
|
|
683
695
|
|
|
684
696
|
console.log(` 🎯 Your proficiency ${c.bold("track")} (Orchestrator, Systems Builder, or`);
|
|
685
697
|
console.log(` Domain Translator) is determined automatically as we observe`);
|
|
686
|
-
console.log(` how you work
|
|
698
|
+
console.log(` how you work — whether that's coding, research, automation,`);
|
|
699
|
+
console.log(` content creation, or anything else. No need to self-assess.\n`);
|
|
687
700
|
|
|
688
701
|
console.log(` 🤖 For deeper attestation, install the ${c.highlight("jobarbiter-proficiency")}`);
|
|
689
|
-
console.log(` skill in your AI
|
|
702
|
+
console.log(` skill in your AI tools (OpenClaw, Claude Code, etc.)\n`);
|
|
690
703
|
|
|
691
704
|
console.log(` ${c.bold("Useful commands:")}`);
|
|
692
705
|
console.log(` ${c.highlight("jobarbiter profile score")} — Check your proficiency score`);
|