borgmcp 0.2.0-beta.9 → 0.4.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 (52) hide show
  1. package/README.md +2 -2
  2. package/dist/auth.js +5 -5
  3. package/dist/auth.js.map +1 -1
  4. package/dist/claude.d.ts +9 -4
  5. package/dist/claude.d.ts.map +1 -1
  6. package/dist/claude.js +62 -26
  7. package/dist/claude.js.map +1 -1
  8. package/dist/config-utils.d.ts +32 -0
  9. package/dist/config-utils.d.ts.map +1 -1
  10. package/dist/config-utils.js +159 -0
  11. package/dist/config-utils.js.map +1 -1
  12. package/dist/cubes.d.ts +51 -0
  13. package/dist/cubes.d.ts.map +1 -0
  14. package/dist/cubes.js +161 -0
  15. package/dist/cubes.js.map +1 -0
  16. package/dist/inbox.d.ts +33 -0
  17. package/dist/inbox.d.ts.map +1 -0
  18. package/dist/inbox.js +125 -0
  19. package/dist/inbox.js.map +1 -0
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +701 -25
  23. package/dist/index.js.map +1 -1
  24. package/dist/log-audit.d.ts +27 -0
  25. package/dist/log-audit.d.ts.map +1 -0
  26. package/dist/log-audit.js +161 -0
  27. package/dist/log-audit.js.map +1 -0
  28. package/dist/postinstall.d.ts +1 -1
  29. package/dist/postinstall.d.ts.map +1 -1
  30. package/dist/postinstall.js +4 -4
  31. package/dist/postinstall.js.map +1 -1
  32. package/dist/regen-format.d.ts +59 -0
  33. package/dist/regen-format.d.ts.map +1 -0
  34. package/dist/regen-format.js +172 -0
  35. package/dist/regen-format.js.map +1 -0
  36. package/dist/regen.d.ts +19 -0
  37. package/dist/regen.d.ts.map +1 -0
  38. package/dist/regen.js +36 -0
  39. package/dist/regen.js.map +1 -0
  40. package/dist/remote-client.d.ts +186 -2
  41. package/dist/remote-client.d.ts.map +1 -1
  42. package/dist/remote-client.js +232 -11
  43. package/dist/remote-client.js.map +1 -1
  44. package/dist/setup.js +40 -33
  45. package/dist/setup.js.map +1 -1
  46. package/dist/sync.js +1 -1
  47. package/dist/sync.js.map +1 -1
  48. package/dist/templates.d.ts +33 -0
  49. package/dist/templates.d.ts.map +1 -0
  50. package/dist/templates.js +96 -0
  51. package/dist/templates.js.map +1 -0
  52. package/package.json +11 -10
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * borg-log-audit
4
+ *
5
+ * Domain-agnostic nudge: scans the Claude Code transcript and emits a
6
+ * one-line warning to stdout if the drone has accumulated MATERIAL_THRESHOLD
7
+ * or more state-changing tool calls (Edit / Write / Bash / etc.) since the
8
+ * last borg:log post. Wired in as a UserPromptSubmit hook so the warning
9
+ * becomes additional context for the next turn.
10
+ *
11
+ * Two refinements vs the v1 1-tool threshold (per drone-6's review):
12
+ * 1. Counts material tools across all assistant turns until either the
13
+ * threshold is hit OR a borg:log call is found (cooldown). One
14
+ * diagnostic Bash no longer triggers; substantive work always does.
15
+ * 2. Any borg:log in the scanback suppresses the nudge — so the drone
16
+ * gets a turn of breathing room after each post.
17
+ *
18
+ * Stays generic — knows nothing about git, branches, or any project's
19
+ * conventions. Only the Anthropic tool name `mcp__borg__borg_log` and a
20
+ * small set of canonical mutating tool names. If no cube is active in
21
+ * this project, silently exits.
22
+ *
23
+ * Hook input arrives as JSON on stdin (Claude Code's standard hook
24
+ * contract). The relevant field is `transcript_path`.
25
+ */
26
+ export {};
27
+ //# sourceMappingURL=log-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-audit.d.ts","sourceRoot":"","sources":["../src/log-audit.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
@@ -0,0 +1,161 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * borg-log-audit
4
+ *
5
+ * Domain-agnostic nudge: scans the Claude Code transcript and emits a
6
+ * one-line warning to stdout if the drone has accumulated MATERIAL_THRESHOLD
7
+ * or more state-changing tool calls (Edit / Write / Bash / etc.) since the
8
+ * last borg:log post. Wired in as a UserPromptSubmit hook so the warning
9
+ * becomes additional context for the next turn.
10
+ *
11
+ * Two refinements vs the v1 1-tool threshold (per drone-6's review):
12
+ * 1. Counts material tools across all assistant turns until either the
13
+ * threshold is hit OR a borg:log call is found (cooldown). One
14
+ * diagnostic Bash no longer triggers; substantive work always does.
15
+ * 2. Any borg:log in the scanback suppresses the nudge — so the drone
16
+ * gets a turn of breathing room after each post.
17
+ *
18
+ * Stays generic — knows nothing about git, branches, or any project's
19
+ * conventions. Only the Anthropic tool name `mcp__borg__borg_log` and a
20
+ * small set of canonical mutating tool names. If no cube is active in
21
+ * this project, silently exits.
22
+ *
23
+ * Hook input arrives as JSON on stdin (Claude Code's standard hook
24
+ * contract). The relevant field is `transcript_path`.
25
+ */
26
+ import { existsSync, readFileSync } from 'node:fs';
27
+ import { getActiveCube } from './cubes.js';
28
+ const MATERIAL_TOOLS = new Set([
29
+ 'Edit',
30
+ 'Write',
31
+ 'MultiEdit',
32
+ 'NotebookEdit',
33
+ 'Bash',
34
+ ]);
35
+ const LOG_TOOL = 'mcp__borg__borg_log';
36
+ // Number of state-changing tool calls since the last borg:log that the
37
+ // drone is allowed before the audit nudges. 1 false-positives on
38
+ // diagnostic Bash (git status, ls, etc.); 3 has been comfortable in
39
+ // dogfooding — any substantive work crosses it within a turn or two.
40
+ const MATERIAL_THRESHOLD = 3;
41
+ // Cap on how many transcript entries we scan backwards before giving up.
42
+ // Sessions with thousands of turns still resolve in milliseconds at this
43
+ // bound, and anything truly old is no longer "the last span the drone
44
+ // failed to log."
45
+ const MAX_SCAN = 400;
46
+ function isUserPrompt(entry) {
47
+ const type = entry?.type ?? entry?.role;
48
+ if (type !== 'user')
49
+ return false;
50
+ const content = entry?.message?.content ?? entry?.content;
51
+ if (typeof content === 'string')
52
+ return content.trim().length > 0;
53
+ if (!Array.isArray(content))
54
+ return false;
55
+ // A "real" user prompt has at least one text block. A tool_result-only
56
+ // user message is a continuation of an assistant span, not a prompt.
57
+ return content.some((b) => b?.type === 'text');
58
+ }
59
+ function isAssistant(entry) {
60
+ const type = entry?.type ?? entry?.role;
61
+ return type === 'assistant';
62
+ }
63
+ function scanAssistant(entry, state) {
64
+ const content = entry?.message?.content ?? entry?.content ?? [];
65
+ if (!Array.isArray(content))
66
+ return;
67
+ // Walk the blocks newest-first WITHIN the entry. The caller already
68
+ // visits entries newest-first. Counting forward within an entry would
69
+ // either miss post-log material work (if log is in the same entry as
70
+ // later material blocks) or inflate the count with pre-log work that
71
+ // the log already covered. Reversing here keeps "material since the
72
+ // last log" honest at block granularity.
73
+ for (let i = content.length - 1; i >= 0; i--) {
74
+ const block = content[i];
75
+ if (block?.type !== 'tool_use')
76
+ continue;
77
+ if (block.name === LOG_TOOL) {
78
+ state.loggedRecently = true;
79
+ return;
80
+ }
81
+ if (MATERIAL_TOOLS.has(block.name))
82
+ state.material += 1;
83
+ }
84
+ }
85
+ async function readStdin() {
86
+ if (process.stdin.isTTY)
87
+ return '';
88
+ const chunks = [];
89
+ for await (const chunk of process.stdin)
90
+ chunks.push(chunk);
91
+ return Buffer.concat(chunks).toString('utf-8');
92
+ }
93
+ async function main() {
94
+ const raw = await readStdin();
95
+ let input = {};
96
+ if (raw.trim()) {
97
+ try {
98
+ input = JSON.parse(raw);
99
+ }
100
+ catch {
101
+ // No usable input — silent exit.
102
+ return;
103
+ }
104
+ }
105
+ if (!input.transcript_path || !existsSync(input.transcript_path))
106
+ return;
107
+ // Only nudge if there's an active cube in this project. Otherwise the
108
+ // hook is fully inert.
109
+ const active = await getActiveCube();
110
+ if (!active)
111
+ return;
112
+ const lines = readFileSync(input.transcript_path, 'utf-8').split('\n').filter(Boolean);
113
+ if (lines.length === 0)
114
+ return;
115
+ // Walk the transcript backwards from the end. The trailing entry MAY
116
+ // be the user prompt that triggered this hook; skip it if so. From
117
+ // there, accumulate material tool calls until either we hit a borg:log
118
+ // (cooldown — suppress) or we cross MATERIAL_THRESHOLD (nudge). The
119
+ // scan stops after MAX_SCAN entries to bound work on huge sessions.
120
+ let i = lines.length - 1;
121
+ const tail = safeParse(lines[i]);
122
+ if (tail && isUserPrompt(tail))
123
+ i--;
124
+ const state = { material: 0, loggedRecently: false };
125
+ let scanned = 0;
126
+ for (; i >= 0 && scanned < MAX_SCAN; i--, scanned++) {
127
+ const entry = safeParse(lines[i]);
128
+ if (!entry)
129
+ continue;
130
+ if (isAssistant(entry)) {
131
+ scanAssistant(entry, state);
132
+ // Threshold has primacy over cooldown: when both could fire on the
133
+ // same entry (e.g. an entry containing [log, Bash, Bash, Bash]
134
+ // where the reversed scan first counts 3 material blocks before
135
+ // hitting the log), we want the nudge — the post-log material
136
+ // work hasn't been logged yet.
137
+ if (state.material >= MATERIAL_THRESHOLD) {
138
+ process.stdout.write(`Heads up: ${state.material}+ state-changing tool calls since the last \`borg:log\` post. ` +
139
+ 'If that work was a substantive unit (a change that ships, a blocker hit, a finding ' +
140
+ "worth sharing), post to the cube log per your role's conventions before continuing.\n");
141
+ return;
142
+ }
143
+ if (state.loggedRecently)
144
+ return; // cooldown
145
+ }
146
+ }
147
+ // Reached MAX_SCAN or start of transcript without finding either a
148
+ // log call or enough material work. Silent.
149
+ }
150
+ function safeParse(line) {
151
+ try {
152
+ return JSON.parse(line);
153
+ }
154
+ catch {
155
+ return null;
156
+ }
157
+ }
158
+ main().catch(() => {
159
+ // Never fail a hook — silent on error.
160
+ });
161
+ //# sourceMappingURL=log-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-audit.js","sourceRoot":"","sources":["../src/log-audit.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@
4
4
  *
5
5
  * Detects local vs global installation and rejects local installs
6
6
  */
7
- declare const isGlobal: boolean;
7
+ export {};
8
8
  //# sourceMappingURL=postinstall.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAGH,QAAA,MAAM,QAAQ,SAA2C,CAAC"}
1
+ {"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
2
  /**
4
3
  * Post-install script
5
4
  *
@@ -8,7 +7,7 @@
8
7
  // Check if this is a local install (npm_config_global is not set)
9
8
  const isGlobal = process.env.npm_config_global === 'true';
10
9
  if (!isGlobal) {
11
- console.error('\n Error: borg must be installed globally\n');
10
+ console.error('\n Error: borg must be installed globally\n');
12
11
  console.error('Please install with:');
13
12
  console.error(' npm install -g borg@beta\n');
14
13
  console.error('Local installation is not supported.\n');
@@ -16,8 +15,9 @@ if (!isGlobal) {
16
15
  }
17
16
  // Global install - show instructions
18
17
  console.log('\n╔════════════════════════════════════╗');
19
- console.log('║ 🧠 Borg MCP Installed! 🎉 ║');
18
+ console.log('║ Borg MCP Installed ║');
20
19
  console.log('╚════════════════════════════════════╝\n');
21
20
  console.log('Next step:');
22
- console.log(' borg setup\n');
21
+ console.log(' borg-setup\n');
22
+ export {};
23
23
  //# sourceMappingURL=postinstall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";;AACA;;;;GAIG;AAEH,kEAAkE;AAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AAE1D,IAAI,CAAC,QAAQ,EAAE,CAAC;IACd,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,qCAAqC;AACrC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AACxD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AACrD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AACxD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,kEAAkE;AAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AAE1D,IAAI,CAAC,QAAQ,EAAE,CAAC;IACd,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,qCAAqC;AACrC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AACxD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AACtD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AACxD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Shared formatting helpers used by both the MCP `borg:regen` handler in
3
+ * index.ts and the standalone `borg-regen` CLI in regen.ts.
4
+ *
5
+ * Lives in its own module so regen.ts can import these without pulling in
6
+ * index.ts's stdio MCP server bootstrap.
7
+ */
8
+ export type DroneMode = 'autonomous' | 'supervised';
9
+ /**
10
+ * Resolve the drone mode for this session.
11
+ *
12
+ * Default: derive from the drone's role — Coordinator drones run in
13
+ * supervised mode (the Queen seat, where a human is reachable);
14
+ * everyone else runs autonomously and coordinates through the log.
15
+ *
16
+ * Override: `BORG_MODE=autonomous` (set by the launcher's --autonomous
17
+ * flag) always wins, so a Coordinator drone can be flipped to
18
+ * autonomous for unattended runs without changing the role.
19
+ */
20
+ export declare function getDroneMode(isCoordinator: boolean): DroneMode;
21
+ /**
22
+ * Build the drone playbook for the given mode.
23
+ *
24
+ * The playbook is appended to every regen / cube / assimilate response.
25
+ * Including it on every refresh is intentional: it protects against
26
+ * /compact and /clear losing the procedural knowledge while state still
27
+ * flows through.
28
+ */
29
+ export declare function getDronePlaybook(mode?: DroneMode): string;
30
+ /**
31
+ * Backward-compatible export. Kept as the supervised-mode playbook for
32
+ * any caller that hasn't been updated to pass mode explicitly.
33
+ */
34
+ export declare const DRONE_PLAYBOOK: string;
35
+ /**
36
+ * Format an absolute timestamp as a coarse "Xs/Xm/Xh ago" string.
37
+ */
38
+ export declare function humanAgo(date: Date | string): string;
39
+ /**
40
+ * Format a regen() composite into the markdown text shown to drones.
41
+ *
42
+ * The playbook is always appended. The token cost is bounded (~500 tokens),
43
+ * but the risk of a drone losing the playbook to /compact or /clear and
44
+ * being left with state but no procedural knowledge is unbounded. Always
45
+ * include — robustness wins.
46
+ *
47
+ * Mode controls which playbook variant is rendered (supervised vs
48
+ * autonomous). Mode is also surfaced in the header so the drone can
49
+ * see at a glance whether it should escalate to the user or not.
50
+ */
51
+ export declare function formatRegenMarkdown(result: {
52
+ cube: any;
53
+ role: any;
54
+ drone: any;
55
+ roles: any[];
56
+ drones: any[];
57
+ recentLog: any[];
58
+ }, mode?: DroneMode): string;
59
+ //# sourceMappingURL=regen-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regen-format.d.ts","sourceRoot":"","sources":["../src/regen-format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,OAAO,GAAG,SAAS,CAG9D;AAwBD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,SAAwB,GAAG,MAAM,CAqCvE;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAiC,CAAC;AAE7D;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAYpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE;IACN,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,SAAS,EAAE,GAAG,EAAE,CAAC;CAClB,EACD,IAAI,GAAE,SAAwB,GAC7B,MAAM,CAoDR"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Shared formatting helpers used by both the MCP `borg:regen` handler in
3
+ * index.ts and the standalone `borg-regen` CLI in regen.ts.
4
+ *
5
+ * Lives in its own module so regen.ts can import these without pulling in
6
+ * index.ts's stdio MCP server bootstrap.
7
+ */
8
+ /**
9
+ * Resolve the drone mode for this session.
10
+ *
11
+ * Default: derive from the drone's role — Coordinator drones run in
12
+ * supervised mode (the Queen seat, where a human is reachable);
13
+ * everyone else runs autonomously and coordinates through the log.
14
+ *
15
+ * Override: `BORG_MODE=autonomous` (set by the launcher's --autonomous
16
+ * flag) always wins, so a Coordinator drone can be flipped to
17
+ * autonomous for unattended runs without changing the role.
18
+ */
19
+ export function getDroneMode(isCoordinator) {
20
+ if (process.env.BORG_MODE === 'autonomous')
21
+ return 'autonomous';
22
+ return isCoordinator ? 'supervised' : 'autonomous';
23
+ }
24
+ function operatingPrinciple(mode) {
25
+ if (mode === 'autonomous') {
26
+ return `**Default operating principle: act autonomously, never wait for the user.**
27
+
28
+ You are part of a coordinating hive, running unattended in a background shell. There is no human watching this session. When you need input, post your question to the log and continue with other actionable work — other drones will respond. Never wait for user input. If your role's playbook says to ask the user, post the question to the log instead and let a supervised drone relay it.`;
29
+ }
30
+ return `**Default operating principle: consult drones first, escalate to user if the swarm can't resolve.**
31
+
32
+ You are part of a coordinating hive with a human supervisor available. Don't burden the user with questions other drones can answer. When you need input, post your question to the log and continue with whatever else is actionable — other drones will respond. Only escalate to the user if the swarm can't agree, or if no drone has the needed knowledge, or if your role's playbook explicitly directs you to.`;
33
+ }
34
+ function stuckGuidance(mode) {
35
+ if (mode === 'autonomous') {
36
+ return `**When stuck:**
37
+
38
+ Post your question or blocker to the log per your role's conventions. Continue with other actionable work in the meantime. Never wait for user input — there is no user watching this session.`;
39
+ }
40
+ return `**When stuck:**
41
+
42
+ Post your question or blocker to the log per your role's conventions. Continue with other actionable work in the meantime. If the swarm can't resolve the issue after a reasonable wait, escalate to the user.`;
43
+ }
44
+ /**
45
+ * Build the drone playbook for the given mode.
46
+ *
47
+ * The playbook is appended to every regen / cube / assimilate response.
48
+ * Including it on every refresh is intentional: it protects against
49
+ * /compact and /clear losing the procedural knowledge while state still
50
+ * flows through.
51
+ */
52
+ export function getDronePlaybook(mode = 'supervised') {
53
+ return `## How to operate as a Drone
54
+
55
+ You're a Drone connected to a Cube. Other drones may be working in the same cube — coordinate through the shared activity log.
56
+
57
+ **Tools available to you:**
58
+ - \`borg:regen\` — refresh full state (cube rules, role, roster, recent log) in one call
59
+ - \`borg:cube\` — re-read cube ground rules and the role overview
60
+ - \`borg:role\` — re-read your role's detailed playbook
61
+ - \`borg:roster\` — see who else is connected
62
+ - \`borg:read-log [since] [limit]\` — read recent log entries from all drones
63
+ - \`borg:log <message>\` — append to the shared log
64
+ - \`borg:assimilate <cube>\` — switch to a different cube
65
+
66
+ **How coordination works:**
67
+
68
+ The Cube provides primitives, not workflows. Your role's detailed description (above) is your specific playbook — the conventions and signals it references come from there, not from the system. Different cubes use different conventions. The activity log is the shared coordination channel.
69
+
70
+ ${operatingPrinciple(mode)}
71
+
72
+ **Your operating loop:**
73
+
74
+ Each time you receive fresh state (this regen, a tool result, or a user prompt), interpret the recent log (already included in the regen output above) through your role's conventions. Look for:
75
+ - Other drones' questions — answer them if you can
76
+ - Other drones stuck or blocked — help unblock them
77
+ - Pending work you can pick up — claim it per your role's conventions
78
+ - Recent decisions or context affecting how you'd respond
79
+
80
+ If you find an actionable signal, act on it — post the appropriate convention to the log and proceed. Don't wait to be asked.
81
+
82
+ If there's a user prompt waiting, respond to it informed by the cube context. Apply your role's log conventions to the work the same way you would for a task picked up from the log: substantive units (changes that ship, blockers you hit, findings worth sharing) get logged regardless of who initiated them. If nothing's actionable and no prompt is waiting, this iteration is done — wait for the next.
83
+
84
+ ${stuckGuidance(mode)}
85
+
86
+ **Posting to the log:**
87
+
88
+ Every time you start a task, finish a task, get stuck, answer another drone, or learn something other drones should know — post to the log per your role's conventions. This applies regardless of who initiated the work: a log signal, your own scan of the cube, or a direct user prompt all produce the same logging duty. The conventions live in your role detail; the system stays vocabulary-agnostic.`;
89
+ }
90
+ /**
91
+ * Backward-compatible export. Kept as the supervised-mode playbook for
92
+ * any caller that hasn't been updated to pass mode explicitly.
93
+ */
94
+ export const DRONE_PLAYBOOK = getDronePlaybook('supervised');
95
+ /**
96
+ * Format an absolute timestamp as a coarse "Xs/Xm/Xh ago" string.
97
+ */
98
+ export function humanAgo(date) {
99
+ const then = typeof date === 'string' ? new Date(date) : date;
100
+ const ms = Date.now() - then.getTime();
101
+ if (!Number.isFinite(ms) || ms < 0)
102
+ return 'just now';
103
+ const sec = Math.floor(ms / 1000);
104
+ if (sec < 60)
105
+ return `${sec}s ago`;
106
+ const min = Math.floor(sec / 60);
107
+ if (min < 60)
108
+ return `${min}m ago`;
109
+ const hr = Math.floor(min / 60);
110
+ if (hr < 24)
111
+ return `${hr}h ago`;
112
+ const days = Math.floor(hr / 24);
113
+ return `${days}d ago`;
114
+ }
115
+ /**
116
+ * Format a regen() composite into the markdown text shown to drones.
117
+ *
118
+ * The playbook is always appended. The token cost is bounded (~500 tokens),
119
+ * but the risk of a drone losing the playbook to /compact or /clear and
120
+ * being left with state but no procedural knowledge is unbounded. Always
121
+ * include — robustness wins.
122
+ *
123
+ * Mode controls which playbook variant is rendered (supervised vs
124
+ * autonomous). Mode is also surfaced in the header so the drone can
125
+ * see at a glance whether it should escalate to the user or not.
126
+ */
127
+ export function formatRegenMarkdown(result, mode = 'supervised') {
128
+ const roleOverview = result.roles
129
+ .map((r) => `- **${r.name}**${r.is_default ? ' _(default)_' : ''} — ${r.short_description || '_(no short description)_'}`)
130
+ .join('\n');
131
+ const droneOverview = result.drones
132
+ .map((d) => {
133
+ const role = result.roles.find((r) => r.id === d.role_id);
134
+ return `- **${d.label}** (${role?.name ?? '?'}) — last seen ${humanAgo(new Date(d.last_seen))}`;
135
+ })
136
+ .join('\n') || '_(no drones connected)_';
137
+ const droneById = new Map(result.drones.map((d) => [d.id, d]));
138
+ const roleById = new Map(result.roles.map((r) => [r.id, r]));
139
+ const logEntries = result.recentLog
140
+ .map((e) => {
141
+ const d = droneById.get(e.drone_id);
142
+ const r = d ? roleById.get(d.role_id) : null;
143
+ const ts = new Date(e.created_at).toISOString();
144
+ return `**[${ts}]** ${d?.label ?? '?'} (${r?.name ?? '?'}): ${e.message}`;
145
+ })
146
+ .reverse()
147
+ .join('\n\n') || '_(no activity yet)_';
148
+ return [
149
+ `# Cube: ${result.cube.name} — ${result.drone.label}`,
150
+ '',
151
+ `**Your role:** ${result.role.name}`,
152
+ `**Mode:** ${mode}`,
153
+ '',
154
+ `## Ground rules`,
155
+ result.cube.ground_rules || '_(none)_',
156
+ '',
157
+ `## Your role: ${result.role.name}`,
158
+ result.role.detailed_description || '_(no detailed description set)_',
159
+ '',
160
+ `## Roles in this cube`,
161
+ roleOverview,
162
+ '',
163
+ `## Connected drones`,
164
+ droneOverview,
165
+ '',
166
+ `## Recent activity`,
167
+ logEntries,
168
+ '',
169
+ getDronePlaybook(mode),
170
+ ].join('\n');
171
+ }
172
+ //# sourceMappingURL=regen-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regen-format.js","sourceRoot":"","sources":["../src/regen-format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * borg-regen CLI
4
+ *
5
+ * Prints a markdown-formatted regen of the active cube to stdout.
6
+ * Designed to be wired into a Claude Code SessionStart hook so that
7
+ * each new session begins fully oriented to the cube.
8
+ *
9
+ * Behavior:
10
+ * - No active cube: print a friendly notice to stdout, exit 0.
11
+ * (A SessionStart hook should not block session start over a missing
12
+ * cube — the user may not be using Borg in this directory.)
13
+ * - Active cube + success: print regen markdown to stdout, exit 0.
14
+ * - Active cube + HTTP/auth error: print one-line message to stderr,
15
+ * exit non-zero so the hook surfaces the failure but doesn't drown
16
+ * the session in a stack trace.
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=regen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regen.d.ts","sourceRoot":"","sources":["../src/regen.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG"}
package/dist/regen.js ADDED
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * borg-regen CLI
4
+ *
5
+ * Prints a markdown-formatted regen of the active cube to stdout.
6
+ * Designed to be wired into a Claude Code SessionStart hook so that
7
+ * each new session begins fully oriented to the cube.
8
+ *
9
+ * Behavior:
10
+ * - No active cube: print a friendly notice to stdout, exit 0.
11
+ * (A SessionStart hook should not block session start over a missing
12
+ * cube — the user may not be using Borg in this directory.)
13
+ * - Active cube + success: print regen markdown to stdout, exit 0.
14
+ * - Active cube + HTTP/auth error: print one-line message to stderr,
15
+ * exit non-zero so the hook surfaces the failure but doesn't drown
16
+ * the session in a stack trace.
17
+ */
18
+ import { regen } from './remote-client.js';
19
+ import { getActiveCube } from './cubes.js';
20
+ import { formatRegenMarkdown, getDroneMode } from './regen-format.js';
21
+ async function main() {
22
+ const active = await getActiveCube();
23
+ if (!active) {
24
+ process.stdout.write('Not connected to a cube.\n');
25
+ return;
26
+ }
27
+ const result = await regen(active.sessionToken, active.apiUrl);
28
+ const mode = getDroneMode(result.role?.is_coordinator === true);
29
+ process.stdout.write(formatRegenMarkdown(result, mode) + '\n');
30
+ }
31
+ main().catch((error) => {
32
+ const msg = error?.message ?? String(error);
33
+ process.stderr.write(`borg-regen: ${msg}\n`);
34
+ process.exit(1);
35
+ });
36
+ //# sourceMappingURL=regen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regen.js","sourceRoot":"","sources":["../src/regen.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtE,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IAC1B,MAAM,GAAG,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}