shakers-cli 0.15.0 → 0.16.0
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 +51 -1203
- package/bin/ai-usage.js +11 -56
- package/bin/login.js +10 -10
- package/bin/mcp.js +13 -9
- package/bin/mcpb.js +1 -1
- package/bin/onboarding.js +3 -2
- package/bin/register.js +17 -4
- package/bin/report-html.js +2 -2
- package/bin/shakers-cli.js +352 -0
- package/bin/shakers.js +20 -344
- package/bin/share.js +1 -1
- package/bin/superadmin.js +5 -5
- package/bin/version.js +3 -0
- package/package.json +12 -3
- package/src/agent-category.js +1 -1
- package/src/agent-evaluation.js +3 -3
- package/src/agent-org-chart.js +5 -5
- package/src/agent-synthesis.js +3 -3
- package/src/agent-usage.js +1 -1
- package/src/agents-client.js +4 -4
- package/src/ai.js +1 -1
- package/src/ansi.js +1 -1
- package/src/auth-client.js +18 -4
- package/src/auth-method-picker.js +1 -1
- package/src/auth-methods.js +1 -1
- package/src/auth-session-store.js +11 -8
- package/src/authorship-mismatch.js +1 -1
- package/src/authorship.js +2 -2
- package/src/automations-detector.js +1 -1
- package/src/backend-request.js +3 -3
- package/src/brand-ansi.js +1 -1
- package/src/browser-tools-detector.js +1 -1
- package/src/certify-disclaimer.js +1 -1
- package/src/certify-remediation-prompt.js +1 -1
- package/src/cli-args.js +2 -2
- package/src/command-audit.js +8 -5
- package/src/config-dir.js +1 -1
- package/src/config.js +112 -48
- package/src/consent-flow.js +4 -4
- package/src/consent-skip.js +1 -1
- package/src/detection-evidence.js +2 -2
- package/src/detection-noise.js +1 -1
- package/src/detectors.js +1 -1
- package/src/device-login.js +12 -1
- package/src/email-verification.js +3 -3
- package/src/env-paths.js +1 -1
- package/src/find-projects-client.js +12 -0
- package/src/find-projects-flow.js +1 -13
- package/src/git-activity.js +1 -1
- package/src/graph-certs.js +3 -3
- package/src/graph-scan.js +9 -9
- package/src/i18n.js +124 -124
- package/src/interactive-select.js +1 -1
- package/src/interview-client.js +6 -1
- package/src/interview-transcript.js +1 -1
- package/src/legal-notice.js +1 -1
- package/src/maturity.js +6 -6
- package/src/mcp-ai-usage-tool.js +1 -1
- package/src/mcp-auth-form.js +1 -1
- package/src/mcp-detector.js +3 -3
- package/src/mcp-device-login-tools.js +2 -1
- package/src/mcp-find-projects-tools.js +1 -2
- package/src/mcp-onboarding-tools.js +4 -4
- package/src/mcp-prompts.js +2 -2
- package/src/mcp-register-tools.js +1 -0
- package/src/mcp-server.js +5 -1
- package/src/mcp-signup-client.js +2 -2
- package/src/mcp-signup-tools.js +26 -2
- package/src/memory-structure-detector.js +1 -1
- package/src/model-call-record.js +2 -2
- package/src/onboarding-flow.js +16 -16
- package/src/onboarding-funnel.js +110 -17
- package/src/open-file.js +1 -1
- package/src/osc-link.js +1 -1
- package/src/portfolio-client.js +11 -1
- package/src/portfolio-git-info.js +1 -1
- package/src/profile-flow.js +1 -1
- package/src/profile-switch.js +5 -12
- package/src/render-certification.js +10 -10
- package/src/render-html.js +6 -6
- package/src/render-sheet.js +10 -10
- package/src/render-terminal.js +6 -6
- package/src/repo-scope.js +132 -0
- package/src/report-gating.js +1 -1
- package/src/report-store.js +6 -6
- package/src/roadmap-content.js +5 -5
- package/src/roadmap-personalization.js +3 -3
- package/src/roadmap-prompt.js +2 -2
- package/src/scan-exclusions.js +1 -1
- package/src/scanner.js +14 -14
- package/src/secret-prompt.js +1 -1
- package/src/session-gate.js +1 -1
- package/src/session-refresh.js +33 -3
- package/src/session-scan.js +1 -1
- package/src/shakers-wordmark.js +1 -1
- package/src/share-card.js +2 -2
- package/src/share-certification.js +4 -4
- package/src/share-consent-state.js +7 -7
- package/src/share-payload.js +7 -7
- package/src/share.js +7 -7
- package/src/signup-client.js +1 -1
- package/src/signup-copy.js +1 -1
- package/src/skills-client.js +1 -1
- package/src/start-add-agents.js +2 -2
- package/src/start-add-portfolio.js +3 -13
- package/src/start-add-skills.js +2 -2
- package/src/stdin-ask.js +3 -3
- package/src/strip-internal-comments.js +1 -1
- package/src/tech-detector.js +2 -2
- package/src/templates/report-sheet.html +11 -13
- package/src/terminal-agents.js +8 -8
- package/src/terminal-format.js +3 -3
- package/src/terminal-sections.js +11 -11
- package/src/tier-engine.js +3 -3
- package/src/tier-projection.js +2 -2
- package/src/transcript-turns.js +1 -1
- package/src/typewriter.js +1 -1
- package/src/usage-model-calls.js +6 -6
- package/src/usage-oneshot-commands.js +5 -5
- package/src/usage-repo-scope.js +11 -129
- package/src/usage-run-steps.js +32 -184
- package/src/usage-scan.js +235 -0
- package/src/work-streams.js +1 -1
package/src/graph-scan.js
CHANGED
|
@@ -7,7 +7,7 @@ const { scan } = require('./scanner');
|
|
|
7
7
|
const { classify } = require('./maturity');
|
|
8
8
|
const { setupLevelForTier } = require('./tier-engine');
|
|
9
9
|
const { sanitizeRenderText } = require('./sanitize-network-text');
|
|
10
|
-
// The ONE agent-shaping layer, shared with the terminal report
|
|
10
|
+
// The ONE agent-shaping layer, shared with the terminal report.
|
|
11
11
|
const { buildAgentCardTree } = require('./render-html');
|
|
12
12
|
|
|
13
13
|
function slug(s) {
|
|
@@ -115,7 +115,7 @@ function buildGraphScan(root, { scanFn = scan, classifyFn = classify } = {}) {
|
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
// Setup-level ladder for the drawer
|
|
118
|
+
// Setup-level ladder for the drawer: the 3 Setup Levels + "Not certified", replacing the retired 0-4 maturity ladder.
|
|
119
119
|
const SETUP_LADDER = [
|
|
120
120
|
{ rank: 0, key: 'none', label: 'Sin certificar' },
|
|
121
121
|
{ rank: 1, key: 'S1', label: 'S1 · Asistido' },
|
|
@@ -124,7 +124,7 @@ const SETUP_LADDER = [
|
|
|
124
124
|
];
|
|
125
125
|
|
|
126
126
|
// #3 footprint drawer payload from the live scan (defensive). Detected agents =
|
|
127
|
-
// a FLAT list with a depth number, not a tree object
|
|
127
|
+
// a FLAT list with a depth number, not a tree object.
|
|
128
128
|
function drawerAgents(report, t) {
|
|
129
129
|
let tree;
|
|
130
130
|
try {
|
|
@@ -155,7 +155,7 @@ function drawerAgents(report, t) {
|
|
|
155
155
|
whatItDoes: card.whatItDoes || null,
|
|
156
156
|
// The category is a REQUIREMENT of the design, and it is the agent → catalog-seed association, not the Talent's tier.
|
|
157
157
|
category: cls ? cls.category : null,
|
|
158
|
-
// THREE STATES, NOT TWO
|
|
158
|
+
// THREE STATES, NOT TWO.
|
|
159
159
|
evaluated: evaluatedNames.has(card.name),
|
|
160
160
|
// COPIED from the card, never recomputed (2026-08-03).
|
|
161
161
|
evaluationState: card.evaluationState || (evaluatedNames.has(card.name) ? (cls ? 'classified' : 'unclassified') : 'not-evaluated'),
|
|
@@ -176,11 +176,11 @@ function buildFootprintDrawer(report, maturity, t) {
|
|
|
176
176
|
? maturity.tier
|
|
177
177
|
: (/^T([0-7])$/.test(tierKey) ? Number(tierKey.slice(1)) : null);
|
|
178
178
|
const tierName = (maturity && maturity.tierName) || '—';
|
|
179
|
-
// Setup Level
|
|
179
|
+
// Setup Level replaces the 0-4 band as the drawer's headline rollup.
|
|
180
180
|
const setup = (maturity && maturity.setupLevel)
|
|
181
181
|
|| (tierNum != null ? setupLevelForTier(tierNum) : { key: 'none', code: null, rank: 0, emoji: '○' });
|
|
182
182
|
const setupLabel = (SETUP_LADDER.find((s) => s.key === setup.key) || SETUP_LADDER[0]).label;
|
|
183
|
-
//
|
|
183
|
+
// This drawer payload feeds the shareable sheet AND the graph report, and both only `esc()`.
|
|
184
184
|
const technologies = (Array.isArray(report.technologies) ? report.technologies : [])
|
|
185
185
|
.map((x) => (typeof x === 'string' ? sanitizeRenderText(x) : x));
|
|
186
186
|
// Installed AI dev tools (assistants).
|
|
@@ -198,7 +198,7 @@ function buildFootprintDrawer(report, maturity, t) {
|
|
|
198
198
|
|
|
199
199
|
return {
|
|
200
200
|
score,
|
|
201
|
-
// `setup` is the
|
|
201
|
+
// `setup` is the Setup Level rollup shown in the drawer hero; `tier` keeps the tierKey · tierName chip.
|
|
202
202
|
setup: { key: setup.key, code: setup.code, rank: setup.rank, emoji: setup.emoji, label: setupLabel },
|
|
203
203
|
tier: { key: tierKey || 'none', name: tierName, label: tierKey ? `${tierKey} · ${tierName}` : tierName },
|
|
204
204
|
ladder: SETUP_LADDER,
|
|
@@ -207,9 +207,9 @@ function buildFootprintDrawer(report, maturity, t) {
|
|
|
207
207
|
summary: buildReading({ setupLabel, tierKey, tierName, score, nTools: tools.length, nTech: technologies.length }),
|
|
208
208
|
tools,
|
|
209
209
|
technologies,
|
|
210
|
-
//
|
|
210
|
+
// ALL detected agents, always.
|
|
211
211
|
agents: drawerAgents(report, t),
|
|
212
|
-
//
|
|
212
|
+
// The SERVICES behind the MCP servers, shaped ONCE here for both consumers of this drawer (the shareable sheet and the graph report), the same way `agents` is.
|
|
213
213
|
mcp: {
|
|
214
214
|
services: (report.mcp && Array.isArray(report.mcp.services) ? report.mcp.services : [])
|
|
215
215
|
.map((x) => ({ label: sanitizeRenderText(x.label), count: x.count })),
|