@calibrate-ds/cli 0.1.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/dist/__tests__/component-slug.test.d.ts +2 -0
- package/dist/__tests__/component-slug.test.d.ts.map +1 -0
- package/dist/__tests__/component-slug.test.js +54 -0
- package/dist/__tests__/component-slug.test.js.map +1 -0
- package/dist/__tests__/lock-changes.test.d.ts +2 -0
- package/dist/__tests__/lock-changes.test.d.ts.map +1 -0
- package/dist/__tests__/lock-changes.test.js +81 -0
- package/dist/__tests__/lock-changes.test.js.map +1 -0
- package/dist/__tests__/permissions.test.d.ts +2 -0
- package/dist/__tests__/permissions.test.d.ts.map +1 -0
- package/dist/__tests__/permissions.test.js +67 -0
- package/dist/__tests__/permissions.test.js.map +1 -0
- package/dist/__tests__/stamp-in-lock.test.d.ts +2 -0
- package/dist/__tests__/stamp-in-lock.test.d.ts.map +1 -0
- package/dist/__tests__/stamp-in-lock.test.js +102 -0
- package/dist/__tests__/stamp-in-lock.test.js.map +1 -0
- package/dist/__tests__/status-logic.test.d.ts +2 -0
- package/dist/__tests__/status-logic.test.d.ts.map +1 -0
- package/dist/__tests__/status-logic.test.js +74 -0
- package/dist/__tests__/status-logic.test.js.map +1 -0
- package/dist/__tests__/team-roster.test.d.ts +2 -0
- package/dist/__tests__/team-roster.test.d.ts.map +1 -0
- package/dist/__tests__/team-roster.test.js +97 -0
- package/dist/__tests__/team-roster.test.js.map +1 -0
- package/dist/ai/claude-provider.d.ts +13 -0
- package/dist/ai/claude-provider.d.ts.map +1 -0
- package/dist/ai/claude-provider.js +335 -0
- package/dist/ai/claude-provider.js.map +1 -0
- package/dist/ai/enhance-doc.d.ts +24 -0
- package/dist/ai/enhance-doc.d.ts.map +1 -0
- package/dist/ai/enhance-doc.js +272 -0
- package/dist/ai/enhance-doc.js.map +1 -0
- package/dist/ai/openai-provider.d.ts +13 -0
- package/dist/ai/openai-provider.d.ts.map +1 -0
- package/dist/ai/openai-provider.js +345 -0
- package/dist/ai/openai-provider.js.map +1 -0
- package/dist/ai/prompt-utils.d.ts +23 -0
- package/dist/ai/prompt-utils.d.ts.map +1 -0
- package/dist/ai/prompt-utils.js +67 -0
- package/dist/ai/prompt-utils.js.map +1 -0
- package/dist/commands/ai.d.ts +8 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +576 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/apply.d.ts +4 -0
- package/dist/commands/apply.d.ts.map +1 -0
- package/dist/commands/apply.js +98 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/assign.d.ts +5 -0
- package/dist/commands/assign.d.ts.map +1 -0
- package/dist/commands/assign.js +180 -0
- package/dist/commands/assign.js.map +1 -0
- package/dist/commands/ci.d.ts +4 -0
- package/dist/commands/ci.d.ts.map +1 -0
- package/dist/commands/ci.js +84 -0
- package/dist/commands/ci.js.map +1 -0
- package/dist/commands/context.d.ts +19 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +297 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/diff.d.ts +2 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +119 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/doctor.d.ts +5 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +348 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/document-system.d.ts +5 -0
- package/dist/commands/document-system.d.ts.map +1 -0
- package/dist/commands/document-system.js +84 -0
- package/dist/commands/document-system.js.map +1 -0
- package/dist/commands/document.d.ts +6 -0
- package/dist/commands/document.d.ts.map +1 -0
- package/dist/commands/document.js +276 -0
- package/dist/commands/document.js.map +1 -0
- package/dist/commands/export.d.ts +11 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +74 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/generate-components.d.ts +4 -0
- package/dist/commands/generate-components.d.ts.map +1 -0
- package/dist/commands/generate-components.js +62 -0
- package/dist/commands/generate-components.js.map +1 -0
- package/dist/commands/generate-composites.d.ts +2 -0
- package/dist/commands/generate-composites.d.ts.map +1 -0
- package/dist/commands/generate-composites.js +31 -0
- package/dist/commands/generate-composites.js.map +1 -0
- package/dist/commands/generate-tokens.d.ts +2 -0
- package/dist/commands/generate-tokens.d.ts.map +1 -0
- package/dist/commands/generate-tokens.js +48 -0
- package/dist/commands/generate-tokens.js.map +1 -0
- package/dist/commands/help-topics.d.ts +2 -0
- package/dist/commands/help-topics.d.ts.map +1 -0
- package/dist/commands/help-topics.js +324 -0
- package/dist/commands/help-topics.js.map +1 -0
- package/dist/commands/implement.d.ts +5 -0
- package/dist/commands/implement.d.ts.map +1 -0
- package/dist/commands/implement.js +595 -0
- package/dist/commands/implement.js.map +1 -0
- package/dist/commands/import-tokens.d.ts +2 -0
- package/dist/commands/import-tokens.d.ts.map +1 -0
- package/dist/commands/import-tokens.js +42 -0
- package/dist/commands/import-tokens.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +410 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/inspect-component.d.ts +2 -0
- package/dist/commands/inspect-component.d.ts.map +1 -0
- package/dist/commands/inspect-component.js +146 -0
- package/dist/commands/inspect-component.js.map +1 -0
- package/dist/commands/log.d.ts +4 -0
- package/dist/commands/log.d.ts.map +1 -0
- package/dist/commands/log.js +109 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/onboarding.d.ts +9 -0
- package/dist/commands/onboarding.d.ts.map +1 -0
- package/dist/commands/onboarding.js +63 -0
- package/dist/commands/onboarding.js.map +1 -0
- package/dist/commands/plan.d.ts +3 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +108 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/prompt.d.ts +5 -0
- package/dist/commands/prompt.d.ts.map +1 -0
- package/dist/commands/prompt.js +77 -0
- package/dist/commands/prompt.js.map +1 -0
- package/dist/commands/prune.d.ts +2 -0
- package/dist/commands/prune.d.ts.map +1 -0
- package/dist/commands/prune.js +95 -0
- package/dist/commands/prune.js.map +1 -0
- package/dist/commands/remove.d.ts +2 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +76 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/scaffold.d.ts +2 -0
- package/dist/commands/scaffold.d.ts.map +1 -0
- package/dist/commands/scaffold.js +47 -0
- package/dist/commands/scaffold.js.map +1 -0
- package/dist/commands/scan.d.ts +2 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +91 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/stamp.d.ts +11 -0
- package/dist/commands/stamp.d.ts.map +1 -0
- package/dist/commands/stamp.js +147 -0
- package/dist/commands/stamp.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +219 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/team.d.ts +7 -0
- package/dist/commands/team.d.ts.map +1 -0
- package/dist/commands/team.js +173 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +303 -0
- package/dist/index.js.map +1 -0
- package/dist/onboarding/content.d.ts +39 -0
- package/dist/onboarding/content.d.ts.map +1 -0
- package/dist/onboarding/content.js +82 -0
- package/dist/onboarding/content.js.map +1 -0
- package/dist/utils/component-slug.d.ts +10 -0
- package/dist/utils/component-slug.d.ts.map +1 -0
- package/dist/utils/component-slug.js +13 -0
- package/dist/utils/component-slug.js.map +1 -0
- package/dist/utils/framework-registry.d.ts +41 -0
- package/dist/utils/framework-registry.d.ts.map +1 -0
- package/dist/utils/framework-registry.js +82 -0
- package/dist/utils/framework-registry.js.map +1 -0
- package/dist/utils/gitignore.d.ts +4 -0
- package/dist/utils/gitignore.d.ts.map +1 -0
- package/dist/utils/gitignore.js +67 -0
- package/dist/utils/gitignore.js.map +1 -0
- package/dist/utils/lock-changes.d.ts +14 -0
- package/dist/utils/lock-changes.d.ts.map +1 -0
- package/dist/utils/lock-changes.js +26 -0
- package/dist/utils/lock-changes.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +32 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/permissions.d.ts +17 -0
- package/dist/utils/permissions.d.ts.map +1 -0
- package/dist/utils/permissions.js +37 -0
- package/dist/utils/permissions.js.map +1 -0
- package/dist/utils/status-logic.d.ts +16 -0
- package/dist/utils/status-logic.d.ts.map +1 -0
- package/dist/utils/status-logic.js +32 -0
- package/dist/utils/status-logic.js.map +1 -0
- package/dist/utils/storybook-setup.d.ts +5 -0
- package/dist/utils/storybook-setup.d.ts.map +1 -0
- package/dist/utils/storybook-setup.js +104 -0
- package/dist/utils/storybook-setup.js.map +1 -0
- package/dist/utils/team-roster.d.ts +35 -0
- package/dist/utils/team-roster.d.ts.map +1 -0
- package/dist/utils/team-roster.js +99 -0
- package/dist/utils/team-roster.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { loadConfig, resolveDSPaths } from "@calibrate-ds/core";
|
|
2
|
+
import { logger } from "../utils/logger.js";
|
|
3
|
+
import { readRoster, getGitUser, toHandle, memberMatchesAssignee } from "../utils/team-roster.js";
|
|
4
|
+
import { computeComponentStatus, isAssignedToHandle } from "../utils/status-logic.js";
|
|
5
|
+
import * as fs from "node:fs/promises";
|
|
6
|
+
import * as path from "node:path";
|
|
7
|
+
import * as readline from "node:readline";
|
|
8
|
+
import { stampComponentCommand } from "./stamp.js";
|
|
9
|
+
async function readLock(lockPath) {
|
|
10
|
+
try {
|
|
11
|
+
return JSON.parse(await fs.readFile(lockPath, "utf-8"));
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function ask(question) {
|
|
18
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
19
|
+
return new Promise(resolve => rl.question(question, ans => { rl.close(); resolve(ans.trim()); }));
|
|
20
|
+
}
|
|
21
|
+
export async function statusCommand(options = {}) {
|
|
22
|
+
try {
|
|
23
|
+
const config = await loadConfig();
|
|
24
|
+
const { workspaceRoot } = resolveDSPaths(config);
|
|
25
|
+
const lockPath = path.join(workspaceRoot, "ptb.lock");
|
|
26
|
+
const lock = await readLock(lockPath);
|
|
27
|
+
if (!lock) {
|
|
28
|
+
if (options.json) {
|
|
29
|
+
process.stdout.write(JSON.stringify({
|
|
30
|
+
error: "ptb.lock not found. Run 'ptb scan' or 'ptb export context' first.",
|
|
31
|
+
components: [],
|
|
32
|
+
summary: { ready: 0, stale: 0, notImplemented: 0 },
|
|
33
|
+
}, null, 2) + "\n");
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
logger.warn("ptb.lock not found.");
|
|
37
|
+
logger.info("Run 'ptb scan' or 'ptb export context' to generate it.");
|
|
38
|
+
}
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
const lockEntries = Object.entries(lock.components);
|
|
42
|
+
if (lockEntries.length === 0) {
|
|
43
|
+
if (options.json) {
|
|
44
|
+
process.stdout.write(JSON.stringify({ components: [], summary: { ready: 0, stale: 0, notImplemented: 0 } }, null, 2) + "\n");
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
logger.warn("ptb.lock has no components. Run 'ptb scan' first.");
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// ── Resolve current user for --mine ───────────────────────────────────
|
|
52
|
+
const roster = await readRoster(workspaceRoot);
|
|
53
|
+
let myHandle;
|
|
54
|
+
if (options.mine) {
|
|
55
|
+
const user = getGitUser();
|
|
56
|
+
if (user) {
|
|
57
|
+
const me = roster.members[user.email];
|
|
58
|
+
myHandle = me ? me.handle : toHandle(user.name);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// ── Build status for each component ───────────────────────────────────
|
|
62
|
+
const results = [];
|
|
63
|
+
for (const [slug, entry] of lockEntries) {
|
|
64
|
+
if (options.mine) {
|
|
65
|
+
if (!myHandle || !isAssignedToHandle(entry.assignedTo, myHandle))
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const status = computeComponentStatus(entry);
|
|
69
|
+
results.push({
|
|
70
|
+
name: slug,
|
|
71
|
+
displayName: entry.displayName,
|
|
72
|
+
status,
|
|
73
|
+
designHash: entry.designHash,
|
|
74
|
+
stampedHash: entry.stampedHash,
|
|
75
|
+
stampedBy: entry.stampedBy,
|
|
76
|
+
stampedMessage: entry.stampedMessage,
|
|
77
|
+
assignedTo: entry.assignedTo,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const summary = {
|
|
81
|
+
ready: results.filter(r => r.status === "ready").length,
|
|
82
|
+
stale: results.filter(r => r.status === "stale").length,
|
|
83
|
+
notImplemented: results.filter(r => r.status === "not-implemented").length,
|
|
84
|
+
};
|
|
85
|
+
// ── JSON output ───────────────────────────────────────────────────────
|
|
86
|
+
if (options.json) {
|
|
87
|
+
process.stdout.write(JSON.stringify({ summary, components: results }, null, 2) + "\n");
|
|
88
|
+
if (options.failOnStale && summary.stale > 0)
|
|
89
|
+
process.exit(1);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// ── Team distribution view ────────────────────────────────────────────
|
|
93
|
+
if (options.team) {
|
|
94
|
+
logger.info("PTB Component Status — Team View\n");
|
|
95
|
+
// Group by assignee
|
|
96
|
+
const byAssignee = new Map();
|
|
97
|
+
const unassigned = [];
|
|
98
|
+
for (const r of results) {
|
|
99
|
+
if (r.assignedTo) {
|
|
100
|
+
const key = r.assignedTo;
|
|
101
|
+
if (!byAssignee.has(key))
|
|
102
|
+
byAssignee.set(key, []);
|
|
103
|
+
byAssignee.get(key).push(r);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
unassigned.push(r);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Show each assignee's workload
|
|
110
|
+
for (const [assignee, items] of byAssignee) {
|
|
111
|
+
const stale = items.filter(r => r.status === "stale").length;
|
|
112
|
+
const pending = items.filter(r => r.status === "not-implemented").length;
|
|
113
|
+
const ready = items.filter(r => r.status === "ready").length;
|
|
114
|
+
// Resolve display name from roster
|
|
115
|
+
const member = Object.values(roster.members).find(m => memberMatchesAssignee(m, assignee));
|
|
116
|
+
const label = member ? `${assignee} (${member.name})` : assignee;
|
|
117
|
+
const statusSummary = [
|
|
118
|
+
stale > 0 ? `\x1b[33m${stale} stale\x1b[0m` : "",
|
|
119
|
+
pending > 0 ? `\x1b[35m${pending} pending\x1b[0m` : "",
|
|
120
|
+
ready > 0 ? `\x1b[32m${ready} ready\x1b[0m` : "",
|
|
121
|
+
].filter(Boolean).join(" ");
|
|
122
|
+
logger.info(` ${label}`);
|
|
123
|
+
logger.dim(` ${"─".repeat(40)}`);
|
|
124
|
+
for (const r of items) {
|
|
125
|
+
const icon = r.status === "ready" ? "✓" : r.status === "stale" ? "~" : "○";
|
|
126
|
+
logger.info(` ${icon} ${r.displayName}`);
|
|
127
|
+
}
|
|
128
|
+
logger.info(` ${statusSummary}\n`);
|
|
129
|
+
}
|
|
130
|
+
if (unassigned.length > 0) {
|
|
131
|
+
logger.warn(` unassigned (${unassigned.length} component${unassigned.length !== 1 ? "s" : ""})`);
|
|
132
|
+
logger.dim(` ${"─".repeat(40)}`);
|
|
133
|
+
for (const r of unassigned) {
|
|
134
|
+
const icon = r.status === "ready" ? "✓" : r.status === "stale" ? "~" : "○";
|
|
135
|
+
logger.dim(` ${icon} ${r.displayName}`);
|
|
136
|
+
}
|
|
137
|
+
logger.info(`\n Run 'ptb assign . @<handle>' to distribute unassigned work.`);
|
|
138
|
+
}
|
|
139
|
+
// Warn about unregistered contributors
|
|
140
|
+
const unregistered = new Set();
|
|
141
|
+
for (const [, entry] of lockEntries) {
|
|
142
|
+
if (entry.stampedBy) {
|
|
143
|
+
const found = Object.values(roster.members).some(m => entry.stampedBy.includes(m.email) || entry.stampedBy.includes(m.name));
|
|
144
|
+
if (!found)
|
|
145
|
+
unregistered.add(entry.stampedBy);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (unregistered.size > 0) {
|
|
149
|
+
logger.info("");
|
|
150
|
+
logger.dim(` ${unregistered.size} contributor(s) not in ptb-team.json — ask them to run 'ptb join'.`);
|
|
151
|
+
}
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
// ── Standard human output ─────────────────────────────────────────────
|
|
155
|
+
const heading = options.mine ? `PTB Status — My Queue (@${myHandle ?? "unknown"})\n` : "PTB Component Implementation Status\n";
|
|
156
|
+
logger.info(heading);
|
|
157
|
+
for (const r of results) {
|
|
158
|
+
const label = r.displayName.padEnd(24);
|
|
159
|
+
const assigned = r.assignedTo ? ` \x1b[90m[${r.assignedTo}]\x1b[0m` : "";
|
|
160
|
+
if (r.status === "ready") {
|
|
161
|
+
const by = r.stampedBy ? ` by ${r.stampedBy}` : "";
|
|
162
|
+
const msg = r.stampedMessage ? ` — "${r.stampedMessage}"` : "";
|
|
163
|
+
logger.success(` [READY] ${label}${assigned}${by}${msg}`);
|
|
164
|
+
}
|
|
165
|
+
else if (r.status === "stale") {
|
|
166
|
+
logger.warn(` [STALE] ${label}${assigned} Design changed — update code then stamp.`);
|
|
167
|
+
logger.dim(` stamped: ${r.stampedHash?.slice(0, 12)} latest: ${r.designHash?.slice(0, 12)}`);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
logger.warn(` [NOT STAMPED] ${label}${assigned} Never stamped — implement then run 'ptb stamp component ${r.name}'.`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (options.mine && results.length === 0) {
|
|
174
|
+
logger.info(` Nothing assigned to you yet.`);
|
|
175
|
+
logger.dim(` Ask your lead to run 'ptb assign . @${myHandle ?? "you"}' or assign yourself.`);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
logger.info(`\n ${summary.ready} ready ${summary.stale} stale ${summary.notImplemented} not stamped`);
|
|
179
|
+
// ── Interactive prompt (skip in CI / --mine / --team) ─────────────────
|
|
180
|
+
const needsAction = results.filter(r => r.status !== "ready");
|
|
181
|
+
const isCI = !process.stdout.isTTY || options.failOnStale || options.mine;
|
|
182
|
+
if (needsAction.length > 0 && !isCI) {
|
|
183
|
+
const notStamped = results.filter(r => r.status === "not-implemented");
|
|
184
|
+
const stale = results.filter(r => r.status === "stale");
|
|
185
|
+
logger.info("");
|
|
186
|
+
if (notStamped.length > 0)
|
|
187
|
+
logger.dim(` ${notStamped.length} not-stamped — safe to stamp`);
|
|
188
|
+
if (stale.length > 0)
|
|
189
|
+
logger.dim(` ${stale.length} stale — only stamp if you have already updated the code`);
|
|
190
|
+
const answer = await ask(`\n Stamp all ${needsAction.length} component(s) now? (Y/n) `);
|
|
191
|
+
const confirmed = answer === "" || answer.toLowerCase() === "y";
|
|
192
|
+
if (confirmed) {
|
|
193
|
+
logger.info("");
|
|
194
|
+
for (const r of needsAction) {
|
|
195
|
+
await stampComponentCommand(r.name, {});
|
|
196
|
+
}
|
|
197
|
+
const updated = await readLock(lockPath);
|
|
198
|
+
if (updated) {
|
|
199
|
+
logger.info("\nUpdated status:\n");
|
|
200
|
+
for (const [, entry] of Object.entries(updated.components)) {
|
|
201
|
+
if (entry.stampedHash === entry.designHash) {
|
|
202
|
+
logger.success(` [READY] ${entry.displayName.padEnd(24)}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
logger.info("\n No changes made. Run 'ptb stamp component .' when ready.");
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (options.failOnStale && summary.stale > 0)
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
logger.error(error.message || String(error));
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** ptb join — register current git user in ptb-team.json */
|
|
2
|
+
export declare function joinCommand(): Promise<void>;
|
|
3
|
+
/** ptb team — show the team roster and contribution counts */
|
|
4
|
+
export declare function teamCommand(): Promise<void>;
|
|
5
|
+
/** ptb team role <handle> <role> — promote or demote a team member */
|
|
6
|
+
export declare function teamRoleCommand(handle: string, role: string): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=team.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"AAcA,4DAA4D;AAC5D,wBAAsB,WAAW,kBAyEhC;AAED,8DAA8D;AAC9D,wBAAsB,WAAW,kBAgEhC;AAED,sEAAsE;AACtE,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBA4CjE"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { loadConfig, resolveDSPaths } from "@calibrate-ds/core";
|
|
2
|
+
import { logger } from "../utils/logger.js";
|
|
3
|
+
import { readRoster, writeRoster, getGitUser, toHandle, memberMatchesAssignee, getCurrentUserRole, findMember } from "../utils/team-roster.js";
|
|
4
|
+
import * as fs from "node:fs/promises";
|
|
5
|
+
import * as path from "node:path";
|
|
6
|
+
import * as readline from "node:readline";
|
|
7
|
+
function ask(question) {
|
|
8
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
9
|
+
return new Promise(resolve => rl.question(question, ans => { rl.close(); resolve(ans.trim()); }));
|
|
10
|
+
}
|
|
11
|
+
/** ptb join — register current git user in ptb-team.json */
|
|
12
|
+
export async function joinCommand() {
|
|
13
|
+
try {
|
|
14
|
+
const config = await loadConfig();
|
|
15
|
+
const { workspaceRoot } = resolveDSPaths(config);
|
|
16
|
+
const user = getGitUser();
|
|
17
|
+
if (!user) {
|
|
18
|
+
logger.error("Could not read git user. Set it with:");
|
|
19
|
+
logger.dim(" git config user.name \"Your Name\"");
|
|
20
|
+
logger.dim(" git config user.email \"you@company.com\"");
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const roster = await readRoster(workspaceRoot);
|
|
24
|
+
// Already in roster by email — nothing to do
|
|
25
|
+
const existing = roster.members[user.email];
|
|
26
|
+
if (existing) {
|
|
27
|
+
logger.info(`You're already in the team roster as @${existing.handle}.`);
|
|
28
|
+
logger.dim(` Name: ${existing.name} Email: ${existing.email}`);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Generate a unique handle — append -2, -3 etc. if collision with different user
|
|
32
|
+
let handle = toHandle(user.name);
|
|
33
|
+
const members = Object.values(roster.members);
|
|
34
|
+
const handleTaken = (h) => members.some(m => m.handle === h && m.email !== user.email);
|
|
35
|
+
if (handleTaken(handle)) {
|
|
36
|
+
// Check if this is the same person with a changed email — offer to update
|
|
37
|
+
const sameHandle = members.find(m => m.handle === handle);
|
|
38
|
+
if (sameHandle && process.stdout.isTTY) {
|
|
39
|
+
const ans = await ask(`\x1b[33m @${handle} already exists (${sameHandle.email}). Is that you with a new email? Update it? (Y/n) \x1b[0m`);
|
|
40
|
+
if (ans === "" || ans.toLowerCase() === "y") {
|
|
41
|
+
// Update in-place: remove old email key, add new one
|
|
42
|
+
delete roster.members[sameHandle.email];
|
|
43
|
+
roster.members[user.email] = { ...sameHandle, email: user.email };
|
|
44
|
+
await writeRoster(workspaceRoot, roster);
|
|
45
|
+
logger.success(`Updated @${handle} email to ${user.email}.`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Different person — find a free handle
|
|
50
|
+
let suffix = 2;
|
|
51
|
+
while (handleTaken(`${handle}-${suffix}`))
|
|
52
|
+
suffix++;
|
|
53
|
+
handle = `${handle}-${suffix}`;
|
|
54
|
+
logger.dim(` Handle @${toHandle(user.name)} was taken — assigned @${handle} instead.`);
|
|
55
|
+
}
|
|
56
|
+
// First person to join becomes lead — prevents the deadlock where the only
|
|
57
|
+
// member can't promote themselves (only leads can change roles).
|
|
58
|
+
const hasAnyLead = members.some(m => m.role === "lead");
|
|
59
|
+
const role = hasAnyLead ? "member" : "lead";
|
|
60
|
+
roster.members[user.email] = {
|
|
61
|
+
name: user.name,
|
|
62
|
+
email: user.email,
|
|
63
|
+
handle,
|
|
64
|
+
joinedAt: new Date().toISOString(),
|
|
65
|
+
role,
|
|
66
|
+
};
|
|
67
|
+
await writeRoster(workspaceRoot, roster);
|
|
68
|
+
logger.success(` Joined as @${handle} (${user.name} <${user.email}>)${role === "lead" ? " \x1b[33m— first member, assigned lead\x1b[0m" : ""}`);
|
|
69
|
+
logger.info(`\nCommit ptb-team.json so your team can assign work to you:`);
|
|
70
|
+
logger.dim(` git add ptb-team.json && git commit -m "chore: add ${user.name} to PTB team"`);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
logger.error(error.message || String(error));
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** ptb team — show the team roster and contribution counts */
|
|
78
|
+
export async function teamCommand() {
|
|
79
|
+
try {
|
|
80
|
+
const config = await loadConfig();
|
|
81
|
+
const { workspaceRoot } = resolveDSPaths(config);
|
|
82
|
+
const roster = await readRoster(workspaceRoot);
|
|
83
|
+
// Count stamps per member from ptb.lock
|
|
84
|
+
const stampCounts = {};
|
|
85
|
+
const assignCounts = {};
|
|
86
|
+
const rosterValues = Object.values(roster.members);
|
|
87
|
+
try {
|
|
88
|
+
const lock = JSON.parse(await fs.readFile(path.join(workspaceRoot, "ptb.lock"), "utf-8"));
|
|
89
|
+
for (const entry of Object.values(lock.components)) {
|
|
90
|
+
if (entry.stampedBy) {
|
|
91
|
+
const member = rosterValues.find(m => entry.stampedBy.includes(m.email) ||
|
|
92
|
+
entry.stampedBy.toLowerCase().includes(m.name.toLowerCase()));
|
|
93
|
+
if (member)
|
|
94
|
+
stampCounts[member.handle] = (stampCounts[member.handle] ?? 0) + 1;
|
|
95
|
+
}
|
|
96
|
+
if (entry.assignedTo) {
|
|
97
|
+
const member = rosterValues.find(m => memberMatchesAssignee(m, entry.assignedTo));
|
|
98
|
+
if (member)
|
|
99
|
+
assignCounts[member.handle] = (assignCounts[member.handle] ?? 0) + 1;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch { /* no ptb.lock */ }
|
|
104
|
+
if (rosterValues.length === 0) {
|
|
105
|
+
logger.warn("No team members registered yet.");
|
|
106
|
+
logger.info("Each developer should run 'ptb join' to register themselves.");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
logger.info("PTB Team Roster\n");
|
|
110
|
+
const handleW = Math.max(...rosterValues.map(m => m.handle.length + 1), 10);
|
|
111
|
+
const nameW = Math.max(...rosterValues.map(m => m.name.length), 10);
|
|
112
|
+
for (const m of rosterValues) {
|
|
113
|
+
const handle = `@${m.handle}`.padEnd(handleW + 1);
|
|
114
|
+
const name = m.name.padEnd(nameW);
|
|
115
|
+
const stamped = stampCounts[m.handle] ?? 0;
|
|
116
|
+
const assigned = assignCounts[m.handle] ?? 0;
|
|
117
|
+
const joined = m.joinedAt.slice(0, 10);
|
|
118
|
+
const role = (m.role ?? "member") === "lead" ? "\x1b[33mlead\x1b[0m " : "\x1b[2mmember\x1b[0m";
|
|
119
|
+
logger.info(` ${handle} ${name} ${m.email.padEnd(28)} ` +
|
|
120
|
+
`${role} ` +
|
|
121
|
+
`${String(stamped).padStart(2)} stamped ` +
|
|
122
|
+
`${String(assigned).padStart(2)} assigned ` +
|
|
123
|
+
`joined ${joined}`);
|
|
124
|
+
}
|
|
125
|
+
logger.info(`\n${roster.members.length} member(s). New to the team? Run 'ptb join'.`);
|
|
126
|
+
logger.dim(` Leads can assign work to others. Promote with: ptb team role <handle> lead`);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
logger.error(error.message || String(error));
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** ptb team role <handle> <role> — promote or demote a team member */
|
|
134
|
+
export async function teamRoleCommand(handle, role) {
|
|
135
|
+
try {
|
|
136
|
+
if (role !== "lead" && role !== "member") {
|
|
137
|
+
logger.error(`Invalid role '${role}'. Use: lead or member`);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
const config = await loadConfig();
|
|
141
|
+
const { workspaceRoot } = resolveDSPaths(config);
|
|
142
|
+
const roster = await readRoster(workspaceRoot);
|
|
143
|
+
// Only leads can change roles
|
|
144
|
+
const myRole = getCurrentUserRole(roster);
|
|
145
|
+
if (myRole !== "lead") {
|
|
146
|
+
logger.error("Only leads can change team roles.");
|
|
147
|
+
logger.dim(" Ask a lead to run: ptb team role <handle> <role>");
|
|
148
|
+
process.exit(1);
|
|
149
|
+
}
|
|
150
|
+
const member = findMember(handle, roster);
|
|
151
|
+
if (!member) {
|
|
152
|
+
logger.error(`'${handle}' not found in ptb-team.json.`);
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
// Prevent removing the last lead
|
|
156
|
+
if (member.role === "lead" && role === "member") {
|
|
157
|
+
const leadCount = Object.values(roster.members).filter(m => m.role === "lead").length;
|
|
158
|
+
if (leadCount <= 1) {
|
|
159
|
+
logger.error("Cannot demote the last lead. Promote someone else first.");
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
member.role = role;
|
|
164
|
+
await writeRoster(workspaceRoot, roster);
|
|
165
|
+
logger.success(`@${member.handle} is now a ${role}.`);
|
|
166
|
+
logger.dim(` Commit ptb-team.json: git add ptb-team.json && git commit -m "chore: update team roles"`);
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
logger.error(error.message || String(error));
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=team.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|