@bragi-gmbh/codebus 1.2.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.
Files changed (133) hide show
  1. package/bin/codebus.js +2 -0
  2. package/dist/binding-guard.js +97 -0
  3. package/dist/binding-guard.js.map +1 -0
  4. package/dist/client.js +94 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/commands/ack.js +47 -0
  7. package/dist/commands/ack.js.map +1 -0
  8. package/dist/commands/archive.js +21 -0
  9. package/dist/commands/archive.js.map +1 -0
  10. package/dist/commands/as.js +299 -0
  11. package/dist/commands/as.js.map +1 -0
  12. package/dist/commands/ask.js +189 -0
  13. package/dist/commands/ask.js.map +1 -0
  14. package/dist/commands/auth.js +33 -0
  15. package/dist/commands/auth.js.map +1 -0
  16. package/dist/commands/checkin.js +235 -0
  17. package/dist/commands/checkin.js.map +1 -0
  18. package/dist/commands/decision.js +52 -0
  19. package/dist/commands/decision.js.map +1 -0
  20. package/dist/commands/digest.js +117 -0
  21. package/dist/commands/digest.js.map +1 -0
  22. package/dist/commands/doctor.js +106 -0
  23. package/dist/commands/doctor.js.map +1 -0
  24. package/dist/commands/factory.js +191 -0
  25. package/dist/commands/factory.js.map +1 -0
  26. package/dist/commands/github-login.js +205 -0
  27. package/dist/commands/github-login.js.map +1 -0
  28. package/dist/commands/graph.js +88 -0
  29. package/dist/commands/graph.js.map +1 -0
  30. package/dist/commands/health.js +34 -0
  31. package/dist/commands/health.js.map +1 -0
  32. package/dist/commands/inbox.js +83 -0
  33. package/dist/commands/inbox.js.map +1 -0
  34. package/dist/commands/ingest.js +553 -0
  35. package/dist/commands/ingest.js.map +1 -0
  36. package/dist/commands/init.js +97 -0
  37. package/dist/commands/init.js.map +1 -0
  38. package/dist/commands/install.js +520 -0
  39. package/dist/commands/install.js.map +1 -0
  40. package/dist/commands/invite.js +152 -0
  41. package/dist/commands/invite.js.map +1 -0
  42. package/dist/commands/jira.js +237 -0
  43. package/dist/commands/jira.js.map +1 -0
  44. package/dist/commands/join.js +96 -0
  45. package/dist/commands/join.js.map +1 -0
  46. package/dist/commands/links.js +66 -0
  47. package/dist/commands/links.js.map +1 -0
  48. package/dist/commands/login.js +84 -0
  49. package/dist/commands/login.js.map +1 -0
  50. package/dist/commands/morning.js +121 -0
  51. package/dist/commands/morning.js.map +1 -0
  52. package/dist/commands/next.js +66 -0
  53. package/dist/commands/next.js.map +1 -0
  54. package/dist/commands/onboarding.js +109 -0
  55. package/dist/commands/onboarding.js.map +1 -0
  56. package/dist/commands/pack.js +276 -0
  57. package/dist/commands/pack.js.map +1 -0
  58. package/dist/commands/plan-gh.js +425 -0
  59. package/dist/commands/plan-gh.js.map +1 -0
  60. package/dist/commands/plan.js +465 -0
  61. package/dist/commands/plan.js.map +1 -0
  62. package/dist/commands/pr.js +88 -0
  63. package/dist/commands/pr.js.map +1 -0
  64. package/dist/commands/question.js +142 -0
  65. package/dist/commands/question.js.map +1 -0
  66. package/dist/commands/read.js +84 -0
  67. package/dist/commands/read.js.map +1 -0
  68. package/dist/commands/refs.js +357 -0
  69. package/dist/commands/refs.js.map +1 -0
  70. package/dist/commands/reply.js +38 -0
  71. package/dist/commands/reply.js.map +1 -0
  72. package/dist/commands/repo.js +1198 -0
  73. package/dist/commands/repo.js.map +1 -0
  74. package/dist/commands/report.js +41 -0
  75. package/dist/commands/report.js.map +1 -0
  76. package/dist/commands/resolve-refs.js +21 -0
  77. package/dist/commands/resolve-refs.js.map +1 -0
  78. package/dist/commands/resolve.js +93 -0
  79. package/dist/commands/resolve.js.map +1 -0
  80. package/dist/commands/send.js +168 -0
  81. package/dist/commands/send.js.map +1 -0
  82. package/dist/commands/sent.js +22 -0
  83. package/dist/commands/sent.js.map +1 -0
  84. package/dist/commands/session.js +426 -0
  85. package/dist/commands/session.js.map +1 -0
  86. package/dist/commands/statusline.js +43 -0
  87. package/dist/commands/statusline.js.map +1 -0
  88. package/dist/commands/task.js +140 -0
  89. package/dist/commands/task.js.map +1 -0
  90. package/dist/commands/tick.js +233 -0
  91. package/dist/commands/tick.js.map +1 -0
  92. package/dist/commands/upgrade.js +76 -0
  93. package/dist/commands/upgrade.js.map +1 -0
  94. package/dist/commands/watch.js +169 -0
  95. package/dist/commands/watch.js.map +1 -0
  96. package/dist/commands/whoami.js +27 -0
  97. package/dist/commands/whoami.js.map +1 -0
  98. package/dist/config.js +103 -0
  99. package/dist/config.js.map +1 -0
  100. package/dist/directives.js +102 -0
  101. package/dist/directives.js.map +1 -0
  102. package/dist/errors.js +110 -0
  103. package/dist/errors.js.map +1 -0
  104. package/dist/git-hooks.js +116 -0
  105. package/dist/git-hooks.js.map +1 -0
  106. package/dist/graph-bootstrap.js +95 -0
  107. package/dist/graph-bootstrap.js.map +1 -0
  108. package/dist/graph-remote.js +889 -0
  109. package/dist/graph-remote.js.map +1 -0
  110. package/dist/graph.js +335 -0
  111. package/dist/graph.js.map +1 -0
  112. package/dist/index.js +154 -0
  113. package/dist/index.js.map +1 -0
  114. package/dist/kit/graph-publish.mjs +400 -0
  115. package/dist/mail-latency.js +120 -0
  116. package/dist/mail-latency.js.map +1 -0
  117. package/dist/mcp-registry.js +859 -0
  118. package/dist/mcp-registry.js.map +1 -0
  119. package/dist/mcp.js +193 -0
  120. package/dist/mcp.js.map +1 -0
  121. package/dist/output.js +12 -0
  122. package/dist/output.js.map +1 -0
  123. package/dist/positioning.js +21 -0
  124. package/dist/positioning.js.map +1 -0
  125. package/dist/rolestore.js +89 -0
  126. package/dist/rolestore.js.map +1 -0
  127. package/dist/session.js +49 -0
  128. package/dist/session.js.map +1 -0
  129. package/dist/sessionstore.js +736 -0
  130. package/dist/sessionstore.js.map +1 -0
  131. package/dist/version-check.js +97 -0
  132. package/dist/version-check.js.map +1 -0
  133. package/package.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { createHash, randomBytes } from "node:crypto";
2
+ import { spawnSync } from "node:child_process";
3
+ import { resolveConfig } from "../config.js";
4
+ import { makeCtx, workspaceId } from "../client.js";
5
+ import { render } from "../output.js";
6
+ import { CodebusError } from "../errors.js";
7
+ /* c8 ignore start -- DEC-CB-009 EX-002: true TTY-interactive (system clipboard depends on platform/environment) */
8
+ function copyToClipboard(text) {
9
+ const candidates = process.platform === "darwin" ? [["pbcopy"]]
10
+ : process.platform === "win32" ? [["clip"]]
11
+ : [["xclip", "-selection", "clipboard"], ["xsel", "--clipboard", "--input"], ["wl-copy"]];
12
+ for (const [cmd, ...args] of candidates) {
13
+ try {
14
+ if (spawnSync(cmd, args, { input: text }).status === 0)
15
+ return true;
16
+ }
17
+ catch { /* try next */ }
18
+ }
19
+ return false;
20
+ }
21
+ /* c8 ignore stop */
22
+ // the friendliest artifact: tap the link on a phone, land on the join page
23
+ const WEB_URL = process.env.CODEBUS_WEB_URL ?? "https://codebus-web-production.up.railway.app";
24
+ function shareableMessage(code, url, expires, uses, inviter, workspace, open) {
25
+ const base = `${url}/functions/v1/www`;
26
+ const installLine = open
27
+ ? ` curl -fsSL ${base}/install | bash -s ${code} your-github-username`
28
+ : ` curl -fsSL ${base}/install | bash -s ${code}`;
29
+ return [
30
+ `You've been invited to ${workspace ?? "our"} CodeBus workspace${inviter ? ` by ${inviter}` : ""}.`,
31
+ `CodeBus is where we coordinate engineering work between humans and AI agents across repos —`,
32
+ `after joining you'll immediately see open questions, blockers, reviews, and decisions relevant to you.`,
33
+ ``,
34
+ `Easiest — open this on any device:`,
35
+ ` ${WEB_URL}/join?code=${code}`,
36
+ ``,
37
+ `Or one terminal command (installs the CLI and starts your first session):`,
38
+ installLine,
39
+ ...(open ? [` (replace your-github-username with your actual GitHub login)`] : []),
40
+ ``,
41
+ `After joining, please run \`codebus session start\` and send me the output —`,
42
+ `that's the only thing I need from you today.`,
43
+ `Expires ${expires.toISOString().slice(0, 10)} · ${uses === 1 ? "single-use" : `up to ${uses} people`} · CLI needs Node.js 20+`,
44
+ ].join("\n");
45
+ }
46
+ async function createInvite(login, o) {
47
+ const cfg = resolveConfig(o);
48
+ const ctx = await makeCtx(cfg);
49
+ const ws = await workspaceId(ctx);
50
+ if (o.revoke) {
51
+ if (!login)
52
+ throw new CodebusError("revoke needs the github-login of the invite to revoke");
53
+ const { data, error } = await ctx.supabase.from("invites")
54
+ .update({ status: "revoked" })
55
+ .eq("workspace_id", ws).eq("github_login", login).eq("status", "pending")
56
+ .select();
57
+ if (error)
58
+ throw new CodebusError(error.message);
59
+ if (!data?.length)
60
+ throw new CodebusError(`no pending invite for: ${login}`);
61
+ console.log(render([{ github_login: login, status: "revoked" }], { json: !!o.json }));
62
+ return;
63
+ }
64
+ if (!cfg.anonKey)
65
+ throw new CodebusError("no anon key in config — run `codebus init` first");
66
+ // claim code is the default: only the sha256 hash is stored, code shown once
67
+ const rawCode = "CBJ-" + randomBytes(16).toString("hex");
68
+ const days = parseInt(o.expires ?? "7", 10);
69
+ const uses = Math.max(1, parseInt(o.uses ?? "1", 10));
70
+ const expiresAt = new Date(Date.now() + days * 86400e3);
71
+ const claimFields = {
72
+ claim_code_hash: createHash("sha256").update(rawCode).digest("hex"),
73
+ claim_expires_at: expiresAt.toISOString(),
74
+ max_uses: uses,
75
+ ...(o.team ? { label: `team:${o.team}` } : {}),
76
+ };
77
+ let { data, error } = await ctx.supabase.from("invites")
78
+ .insert({ workspace_id: ws, github_login: login ?? null, role: o.role ?? "member", ...claimFields })
79
+ .select().single();
80
+ if (error && error.message.includes("invites_pending_unique")) {
81
+ // pending invite exists — refresh its code (this is also what --resend does)
82
+ ({ data, error } = await ctx.supabase.from("invites")
83
+ .update(claimFields)
84
+ .eq("workspace_id", ws).eq("github_login", login).eq("status", "pending")
85
+ .select().single());
86
+ }
87
+ if (error) {
88
+ if (error.message.includes("row-level security"))
89
+ throw new CodebusError("only workspace admins can invite (your agent's workspace role must be 'admin')");
90
+ throw new CodebusError(error.message);
91
+ }
92
+ const { data: me } = await ctx.supabase
93
+ .from("agents").select("people!person_id(slug)").eq("slug", ctx.agentSlug).single();
94
+ const inviterSlug = me?.people?.slug ?? undefined;
95
+ const message = shareableMessage(rawCode, cfg.url, expiresAt, uses, inviterSlug, ctx.workspaceSlug, !login);
96
+ if (o.json) {
97
+ console.log(JSON.stringify({
98
+ github_login: login ?? null, role: data.role, workspace: ctx.workspaceSlug,
99
+ expires: expiresAt.toISOString(), max_uses: uses,
100
+ link: `${cfg.url}/functions/v1/www/join/${rawCode}`, message,
101
+ }, null, 2));
102
+ return;
103
+ }
104
+ const line = "─".repeat(45);
105
+ console.log(line);
106
+ console.log(`Invite ${o.resend ? "re-issued" : "created"}${login ? ` for: ${login}` : o.team ? ` (team: ${o.team})` : " (open)"}`);
107
+ console.log(`Workspace: ${ctx.workspaceSlug} · role: ${data.role} · expires: ${expiresAt.toISOString().slice(0, 10)} · ${uses === 1 ? "single-use" : `${uses} uses`}`);
108
+ console.log(``);
109
+ console.log(`Send this message (Teams, Slack, WhatsApp — anything):`);
110
+ console.log(`---`);
111
+ console.log(message);
112
+ console.log(`---`);
113
+ console.log(line);
114
+ /* c8 ignore start -- DEC-CB-009 EX-002: true TTY-interactive (system clipboard) */
115
+ if (o.copy) {
116
+ console.log(copyToClipboard(message)
117
+ ? `Invite copied to clipboard. Paste it into Teams, Slack, WhatsApp, or email.`
118
+ : `(could not access the clipboard on this system — copy the block above manually)`);
119
+ }
120
+ /* c8 ignore stop */
121
+ }
122
+ async function listInvites(o) {
123
+ const ctx = await makeCtx(resolveConfig(o));
124
+ const ws = await workspaceId(ctx);
125
+ const { data, error } = await ctx.supabase.from("invites")
126
+ .select("github_login, role, status, claim_expires_at, created_at, accepted_at")
127
+ .eq("workspace_id", ws).order("created_at", { ascending: false });
128
+ if (error)
129
+ throw new CodebusError(error.message);
130
+ console.log(render((data ?? []).map((i) => ({
131
+ github_login: i.github_login, role: i.role, status: i.status,
132
+ expires: i.claim_expires_at?.slice(0, 10) ?? null,
133
+ })), { json: !!o.json }));
134
+ }
135
+ export function registerInvite(program, g) {
136
+ g(program.command("invite")
137
+ .argument("[github-login]", "GitHub username (omit for an open invite)")
138
+ .option("--role <r>", "workspace role", "member")
139
+ .option("--expires <days>", "invite validity in days", "7")
140
+ .option("--uses <n>", "how many people may join via this link", "1")
141
+ .option("--team <name>", "label a multi-use team link")
142
+ .option("--copy", "copy the shareable message to the clipboard")
143
+ .option("--resend", "regenerate the code and print a fresh shareable message")
144
+ .option("--revoke", "revoke a pending invite (kills its claim code)")
145
+ .option("--list", "list invites in the workspace"))
146
+ .action((login, o) => {
147
+ if (o.list)
148
+ return listInvites(o);
149
+ return createInvite(login, o);
150
+ });
151
+ }
152
+ //# sourceMappingURL=invite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.js","sourceRoot":"","sources":["../../src/commands/invite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,237 @@
1
+ import { resolveConfig } from "../config.js";
2
+ import { makeCtx, workspaceId, repoId } from "../client.js";
3
+ import { render } from "../output.js";
4
+ import { CodebusError } from "../errors.js";
5
+ // Repo Intelligence Track B4 — Jira read-only sync + coverage linker
6
+ // (0066_external_tickets.sql, supabase/functions/jira-sync). Full CLI
7
+ // surface per the plan doc's own sketch: connect/list/show/link/coverage/
8
+ // relink (external review round-1 finding 7: an earlier draft of this file
9
+ // shipped only coverage/relink, leaving external_tracker_config_set and
10
+ // jira_manual_link — the tracker-connect and manual-override RPCs — with no
11
+ // product entry point at all).
12
+ // Client-side mirror of 0066's base_url CHECK constraint (and
13
+ // external_tracker_config_set's own re-validation) — B4 targets Jira CLOUD
14
+ // only (jira-sync's search endpoint is a Cloud-only API). This is UX ONLY:
15
+ // failing fast here just avoids a round-trip for the common typo (a path,
16
+ // a Server/DC URL, http instead of https); the DB is the real, only
17
+ // authoritative gate — a client bypass of this file would still be
18
+ // rejected server-side.
19
+ export const ATLASSIAN_CLOUD_BASE_URL = /^https:\/\/[a-z0-9-]+\.atlassian\.net$/i;
20
+ // Exported for direct unit-test coverage (no live db needed for URL shape
21
+ // validation) — mirrors task.ts/decision.ts's own "export the pure core"
22
+ // convention for the piece of a command worth testing without a subprocess.
23
+ export function normalizeBaseUrl(raw) {
24
+ return raw.trim().replace(/\/+$/, "").toLowerCase();
25
+ }
26
+ async function suspect(key, o) {
27
+ const ctx = await makeCtx(resolveConfig(o));
28
+ const { data, error } = await ctx.supabase.rpc("ticket_suspect_code", {
29
+ p_ticket_key: key,
30
+ p_repo_slug: o.repo ?? null,
31
+ p_workspace_slug: ctx.workspaceSlug,
32
+ p_limit: o.limit ? parseInt(o.limit, 10) : undefined,
33
+ p_recent_days: o.recentDays ? parseInt(o.recentDays, 10) : undefined,
34
+ });
35
+ if (error)
36
+ throw new CodebusError(error.message);
37
+ if (o.json) {
38
+ console.log(render([data], { json: true }));
39
+ return;
40
+ }
41
+ const textMatchRepos = (data.text_match_repos ?? []);
42
+ console.log(`${data.disclaimer} — mode=${data.mode}${textMatchRepos.length ? ` (text-match repos: ${textMatchRepos.join(",")})` : ""}`);
43
+ const rows = (data.evidence ?? []);
44
+ console.log(render(rows.map((r) => ({
45
+ rank: r.rank, path: r.path ?? "", node_id: r.node_id ?? "",
46
+ score: r.score, legs: Object.keys(r.evidence).join(","),
47
+ })), { json: false }));
48
+ }
49
+ /**
50
+ * Resolve a PR display ID (CB-PR-…) or UUID to UUID, scoped to the calling
51
+ * workspace (display ids are only unique per workspace — pr.ts's own
52
+ * resolvePrId, duplicated here rather than exported/shared, matching this
53
+ * codebase's existing per-command-file resolver convention).
54
+ */
55
+ async function resolvePrRef(ctx, ws, idOrDisplay) {
56
+ if (/^CB-PR-/i.test(idOrDisplay)) {
57
+ const { data, error } = await ctx.supabase.from("pull_requests").select("id")
58
+ .eq("workspace_id", ws).eq("display_id", idOrDisplay.toUpperCase()).single();
59
+ if (error || !data)
60
+ throw new CodebusError(`PR not found: ${idOrDisplay}`);
61
+ return data.id;
62
+ }
63
+ return idOrDisplay;
64
+ }
65
+ /** Resolve a task display ID (CB-TASK-…) or UUID to UUID, scoped to the workspace. */
66
+ async function resolveTaskRef(ctx, ws, idOrDisplay) {
67
+ if (/^CB-TASK-/i.test(idOrDisplay)) {
68
+ const { data, error } = await ctx.supabase.from("tasks").select("id")
69
+ .eq("workspace_id", ws).eq("display_id", idOrDisplay.toUpperCase()).single();
70
+ if (error || !data)
71
+ throw new CodebusError(`task not found: ${idOrDisplay}`);
72
+ return data.id;
73
+ }
74
+ return idOrDisplay;
75
+ }
76
+ async function connect(o) {
77
+ const ctx = await makeCtx(resolveConfig(o));
78
+ const ws = await workspaceId(ctx);
79
+ const baseUrl = normalizeBaseUrl(o.baseUrl);
80
+ if (!ATLASSIAN_CLOUD_BASE_URL.test(baseUrl)) {
81
+ throw new CodebusError(`--base-url must be a bare Jira Cloud URL like https://yourteam.atlassian.net ` +
82
+ `(https only, *.atlassian.net host, no path/port/query), got: ${o.baseUrl}`);
83
+ }
84
+ const keys = o.projectKeys ? o.projectKeys.split(",").map((s) => s.trim()).filter(Boolean) : [];
85
+ // NOT `o.noSync`: commander's `--no-sync` negates a same-named positive
86
+ // `sync` option (defaulting true) and stores the result under the
87
+ // prefix-stripped property — the exact footgun task.ts's own `done`
88
+ // command comment already documents for `--escape-reason`.
89
+ const { data, error } = await ctx.supabase.rpc("external_tracker_config_set", {
90
+ p_workspace_id: ws, p_base_url: baseUrl, p_project_keys: keys, p_sync_enabled: o.sync !== false,
91
+ });
92
+ if (error)
93
+ throw new CodebusError(error.message);
94
+ console.log(render([{
95
+ base_url: data.base_url,
96
+ project_keys: (data.project_keys ?? []).join(",") || "(none)",
97
+ sync_enabled: data.sync_enabled,
98
+ }], { json: !!o.json }));
99
+ }
100
+ async function list(o) {
101
+ const ctx = await makeCtx(resolveConfig(o));
102
+ const ws = await workspaceId(ctx);
103
+ let q = ctx.supabase.from("external_tickets")
104
+ .select("key, summary, status, status_category, synced_at")
105
+ .eq("workspace_id", ws);
106
+ if (o.status)
107
+ q = q.eq("status_category", o.status);
108
+ const { data, error } = await q.order("key");
109
+ if (error)
110
+ throw new CodebusError(error.message);
111
+ console.log(render((data ?? []).map((r) => ({
112
+ key: r.key, summary: r.summary ?? "", status: r.status ?? "",
113
+ category: r.status_category ?? "", synced: r.synced_at ? "yes" : "no",
114
+ })), { json: !!o.json }));
115
+ }
116
+ async function show(key, o) {
117
+ const ctx = await makeCtx(resolveConfig(o));
118
+ const ws = await workspaceId(ctx);
119
+ const k = key.trim().toUpperCase();
120
+ const { data: ticket, error } = await ctx.supabase.from("external_tickets")
121
+ .select("id, key, summary, status, status_category, url, synced_at")
122
+ .eq("workspace_id", ws).eq("key", k).single();
123
+ if (error || !ticket)
124
+ throw new CodebusError(`ticket not found: ${key}`);
125
+ const { data: refs, error: refErr } = await ctx.supabase.from("external_ticket_refs")
126
+ .select("entity_kind, entity_id, source, created_at")
127
+ .eq("ticket_id", ticket.id).order("created_at");
128
+ if (refErr)
129
+ throw new CodebusError(refErr.message);
130
+ if (o.json) {
131
+ console.log(render([{ ...ticket, refs: (refs ?? []) }], { json: true }));
132
+ return;
133
+ }
134
+ console.log(render([{
135
+ key: ticket.key, summary: ticket.summary ?? "", status: ticket.status ?? "",
136
+ category: ticket.status_category ?? "", url: ticket.url ?? "",
137
+ synced: ticket.synced_at ? "yes" : "no",
138
+ }], { json: false }));
139
+ console.log(render((refs ?? []).map((r) => ({ entity_kind: r.entity_kind, entity_id: r.entity_id, source: r.source })), { json: false }));
140
+ }
141
+ async function link(key, o) {
142
+ const picked = [o.pr, o.task, o.planTicket].filter((v) => v !== undefined);
143
+ if (picked.length !== 1) {
144
+ throw new CodebusError("exactly one of --pr, --task, --plan-ticket is required");
145
+ }
146
+ const ctx = await makeCtx(resolveConfig(o));
147
+ const ws = await workspaceId(ctx);
148
+ let entityKind;
149
+ let entityId;
150
+ if (o.pr) {
151
+ entityKind = "pr";
152
+ entityId = await resolvePrRef(ctx, ws, o.pr);
153
+ }
154
+ else if (o.task) {
155
+ entityKind = "task";
156
+ entityId = await resolveTaskRef(ctx, ws, o.task);
157
+ }
158
+ else {
159
+ // plan_tickets carry no display id (0049) — only the raw uuid is addressable.
160
+ entityKind = "plan_ticket";
161
+ entityId = o.planTicket;
162
+ }
163
+ const { data, error } = await ctx.supabase.rpc("jira_manual_link", {
164
+ p_workspace_id: ws, p_ticket_key: key, p_entity_kind: entityKind, p_entity_id: entityId,
165
+ });
166
+ if (error)
167
+ throw new CodebusError(error.message);
168
+ console.log(render([{
169
+ ticket_id: data, key: key.trim().toUpperCase(), entity_kind: entityKind, entity_id: entityId,
170
+ }], { json: !!o.json }));
171
+ }
172
+ async function coverage(o) {
173
+ if (o.uncovered && o.executed) {
174
+ throw new CodebusError("--uncovered and --executed are mutually exclusive");
175
+ }
176
+ const ctx = await makeCtx(resolveConfig(o));
177
+ const ws = await workspaceId(ctx);
178
+ const { data, error } = await ctx.supabase.rpc("external_ticket_coverage", { p_workspace_id: ws });
179
+ if (error)
180
+ throw new CodebusError(error.message);
181
+ let rows = (data ?? []);
182
+ if (o.uncovered)
183
+ rows = rows.filter((r) => !r.covered);
184
+ if (o.executed)
185
+ rows = rows.filter((r) => r.executed);
186
+ console.log(render(rows.map((r) => ({
187
+ key: r.key,
188
+ status: r.status ?? "",
189
+ category: r.status_category ?? "",
190
+ covered: r.covered,
191
+ executed: r.executed,
192
+ refs: r.ref_count,
193
+ })), { json: !!o.json }));
194
+ }
195
+ async function relink(o) {
196
+ const ctx = await makeCtx(resolveConfig(o));
197
+ const ws = await workspaceId(ctx);
198
+ const rid = o.repo ? await repoId(ctx, ws, o.repo) : null;
199
+ const { data, error } = await ctx.supabase.rpc("external_tickets_relink", {
200
+ p_workspace_id: ws, p_repo_id: rid,
201
+ });
202
+ if (error)
203
+ throw new CodebusError(error.message);
204
+ console.log(render([{ prs_rescanned: data, repo: o.repo ?? "(all)" }], { json: !!o.json }));
205
+ }
206
+ export function registerJira(program, g) {
207
+ const jira = program.command("jira").description("Jira ticket coverage over synced PRs (repo-intelligence B4)");
208
+ g(jira.command("connect"))
209
+ .requiredOption("--base-url <url>", "bare Jira Cloud URL, e.g. https://yourteam.atlassian.net")
210
+ .option("--project-keys <keys>", "comma-separated project prefixes to auto-link (e.g. PROJ,OTHER)")
211
+ .option("--no-sync", "configure the tracker without enabling automatic sync/linking")
212
+ .action(connect);
213
+ g(jira.command("list"))
214
+ .option("--status <category>", "todo|in_progress|done")
215
+ .action(list);
216
+ g(jira.command("show").argument("<key>", "ticket key, e.g. PROJ-123"))
217
+ .action((key, o) => show(key, o));
218
+ g(jira.command("link").argument("<key>", "ticket key, e.g. PROJ-123"))
219
+ .option("--pr <id>", "CB-PR-… or uuid")
220
+ .option("--task <id>", "CB-TASK-… or uuid")
221
+ .option("--plan-ticket <uuid>", "plan_ticket uuid (no display id exists for these)")
222
+ .action((key, o) => link(key, o));
223
+ g(jira.command("coverage"))
224
+ .option("--uncovered", "only tickets with zero linked PR/task/plan_ticket refs")
225
+ .option("--executed", "only tickets with at least one ref to a merged PR")
226
+ .action(coverage);
227
+ g(jira.command("relink"))
228
+ .option("--repo <slug>", "limit the rescan to one repo (default: every repo in the workspace)")
229
+ .action(relink);
230
+ g(jira.command("suspect").argument("<key>", "ticket key, e.g. PROJ-123"))
231
+ .description("ranked, labeled fault-localization evidence for a ticket (repo-intelligence D3) — never a claim of causation")
232
+ .option("--repo <slug>", "scope every evidence leg to one repo (required if the ticket has no linked PRs and the workspace graphs more than one repo)")
233
+ .option("--limit <n>", "max ranked rows, default 30, clamped to [1,50]")
234
+ .option("--recent-days <n>", "recency-leg lookback window in days, default 14, clamped to [1,90]")
235
+ .action((key, o) => suspect(key, o));
236
+ }
237
+ //# sourceMappingURL=jira.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.js","sourceRoot":"","sources":["../../src/commands/jira.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { createInterface } from "node:readline/promises";
2
+ import { createReadStream, createWriteStream } from "node:fs";
3
+ import { createClient } from "@supabase/supabase-js";
4
+ import { loadFileConfig, saveFileConfig } from "../config.js";
5
+ import { validateConnection } from "./login.js";
6
+ import { CodebusError } from "../errors.js";
7
+ // Bragi's hosted instance — the zero-config default so `codebus join CBJ-…`
8
+ // works with nothing else on the machine. Overridable via --url / CODEBUS_URL /
9
+ // config file (and join links carry their own host).
10
+ const DEFAULT_REMOTE = "https://tcapyyzkzecgfeivbymf.supabase.co";
11
+ // Accepts a bare code or a full join link (https://…/join/CBJ-…). A link also
12
+ // pins the server, so pasted links work against any CodeBus instance.
13
+ export function parseCodeArg(arg) {
14
+ const link = arg.match(/^(https?:\/\/[^/]+)(?:\/functions\/v1\/www)?\/join\/(CBJ-[0-9a-f]+)$/i);
15
+ if (link)
16
+ return { code: link[2], urlFromLink: link[1] };
17
+ if (/^CBJ-[0-9a-f]+$/i.test(arg))
18
+ return { code: arg };
19
+ throw new CodebusError(`expected a CBJ-… code or a …/join/CBJ-… link, got: ${arg}`);
20
+ }
21
+ // `codebus join <code-or-link>` — the whole onboarding: anon claim → fresh
22
+ // token → config written → validated. The anon key comes from (flags/env/file)
23
+ // or the server's public well-known endpoint, so the CODE IS ENOUGH.
24
+ export async function joinCmd(codeArg, o) {
25
+ const { code, urlFromLink } = parseCodeArg(codeArg.trim());
26
+ const file = loadFileConfig();
27
+ const url = o.url ?? process.env.CODEBUS_URL ?? urlFromLink ?? file.url ?? DEFAULT_REMOTE;
28
+ let anonKey = o.anonKey ?? process.env.SUPABASE_ANON_KEY ?? file.anonKey;
29
+ if (!anonKey) {
30
+ try {
31
+ const res = await fetch(`${url}/functions/v1/www/config`);
32
+ if (res.ok)
33
+ anonKey = (await res.json()).anonKey;
34
+ }
35
+ catch { /* fall through to the error below */ }
36
+ }
37
+ if (!anonKey)
38
+ throw new CodebusError(`could not fetch server config from ${url} — check your network/VPN, or pass --anon-key`);
39
+ const anon = createClient(url, anonKey, { auth: { persistSession: false, autoRefreshToken: false } });
40
+ const claim = (login) => anon.rpc("claim_invite", { p_code: code, ...(login ? { p_github_login: login } : {}) });
41
+ let { data, error } = await claim(o.githubLogin);
42
+ /* c8 ignore start -- DEC-CB-009 EX-001: external OAuth */
43
+ if (error && error.message.includes("GITHUB_LOGIN_REQUIRED")) {
44
+ // open invite: identity is asserted at join (OAuth will prove it in Phase 2).
45
+ // CRITICAL: under `curl … | bash` stdin is the SCRIPT pipe, not the keyboard —
46
+ // prompting on stdin would eat the rest of the script (real-world failure).
47
+ // Prompt on the controlling terminal, or fail with the exact fix.
48
+ let login = "";
49
+ /* c8 ignore start -- DEC-CB-009 EX-002: true TTY-interactive prompt body */
50
+ if (process.stdin.isTTY) {
51
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
52
+ login = (await rl.question("GitHub username: ")).trim();
53
+ rl.close();
54
+ }
55
+ else {
56
+ try {
57
+ const input = createReadStream("/dev/tty");
58
+ const output = createWriteStream("/dev/tty");
59
+ const rl = createInterface({ input, output });
60
+ login = (await rl.question("GitHub username: ")).trim();
61
+ rl.close();
62
+ input.destroy();
63
+ output.destroy();
64
+ }
65
+ catch {
66
+ throw new CodebusError(`this is an open invite and no terminal is available to ask your GitHub username.\n` +
67
+ `Rerun with it included: codebus join ${code} --github-login <your-github-username>`);
68
+ }
69
+ }
70
+ /* c8 ignore stop */
71
+ if (!login)
72
+ throw new CodebusError(`a GitHub username is required to join — rerun with: codebus join ${code} --github-login <your-github-username>`);
73
+ ({ data, error } = await claim(login));
74
+ }
75
+ /* c8 ignore stop */
76
+ if (error) {
77
+ if (/fetch failed|ENOTFOUND|ECONNREFUSED|network/i.test(error.message))
78
+ throw new CodebusError(`cannot reach ${url} — check your network/VPN and that your invite link is intact`);
79
+ throw new CodebusError(error.message);
80
+ }
81
+ const res = data;
82
+ saveFileConfig({
83
+ url, anonKey, workspace: res.workspace,
84
+ token: res.token, agent: res.agent_slug, person: res.person_slug,
85
+ });
86
+ const facts = await validateConnection({ url, anonKey, workspace: res.workspace, token: res.token });
87
+ if (o.json) {
88
+ console.log(JSON.stringify({ ...facts, rotated: res.rotated }, null, 2));
89
+ return;
90
+ }
91
+ console.log(`Joined '${res.workspace}' as ${facts.agent} (person: ${facts.person ?? res.person_slug}).`);
92
+ if (res.rotated)
93
+ console.log("note: this agent existed before — its previous token is now invalid.");
94
+ console.log("Next: codebus install claude && codebus session start");
95
+ }
96
+ //# sourceMappingURL=join.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/commands/join.ts"],"names":[],"mappings":"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"}