borgmcp 3.15.2 → 3.16.1

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 (40) hide show
  1. package/README.md +2 -0
  2. package/THIRD_PARTY_NOTICES.md +1 -1
  3. package/dist/docs-sections.d.ts.map +1 -1
  4. package/dist/docs-sections.js +8 -0
  5. package/dist/docs-sections.js.map +1 -1
  6. package/dist/document-render.d.ts +6 -0
  7. package/dist/document-render.d.ts.map +1 -0
  8. package/dist/document-render.js +34 -0
  9. package/dist/document-render.js.map +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +33 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/log-stream.d.ts +2 -1
  14. package/dist/log-stream.d.ts.map +1 -1
  15. package/dist/log-stream.js +16 -3
  16. package/dist/log-stream.js.map +1 -1
  17. package/dist/regen-format.d.ts.map +1 -1
  18. package/dist/regen-format.js +6 -1
  19. package/dist/regen-format.js.map +1 -1
  20. package/dist/remote-client.d.ts +6 -1
  21. package/dist/remote-client.d.ts.map +1 -1
  22. package/dist/remote-client.js +41 -7
  23. package/dist/remote-client.js.map +1 -1
  24. package/dist/server-handshake.d.ts +4 -3
  25. package/dist/server-handshake.d.ts.map +1 -1
  26. package/dist/server-handshake.js.map +1 -1
  27. package/dist/tool-manifest.d.ts.map +1 -1
  28. package/dist/tool-manifest.js +65 -2
  29. package/dist/tool-manifest.js.map +1 -1
  30. package/docs/DOCUMENTS.md +49 -0
  31. package/docs/RELEASING.md +2 -2
  32. package/package.json +2 -2
  33. package/src/docs-sections.ts +8 -0
  34. package/src/document-render.ts +41 -0
  35. package/src/index.ts +44 -1
  36. package/src/log-stream.ts +21 -3
  37. package/src/regen-format.ts +6 -1
  38. package/src/remote-client.ts +108 -15
  39. package/src/server-handshake.ts +4 -3
  40. package/src/tool-manifest.ts +69 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tool-manifest.js","sourceRoot":"","sources":["../src/tool-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-manifest.js","sourceRoot":"","sources":["../src/tool-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ # Cube Documents
2
+
3
+ A cube document is immutable Markdown or plain text stored with a cube. Use a
4
+ document for durable detail that would make an activity-log message difficult to
5
+ scan. Documents stay local to the self-hosted Borg server; they are not files in
6
+ the working repository and Borg does not publish them externally.
7
+
8
+ ## Tools
9
+
10
+ - `borg_put-document` creates a document. Supply `title`, `content_type` as
11
+ `text/markdown` or `text/plain`, and `content`. The server enforces its
12
+ configured UTF-8 byte limits.
13
+ - `borg_get-document` returns one document, including content, metadata,
14
+ revision links, and removal audit fields. Always use the full opaque document
15
+ id.
16
+ - `borg_list-documents` returns metadata for active and superseded documents.
17
+ It omits content and removed documents.
18
+ - `borg_remove-document` marks a document removed without deleting its content
19
+ or audit record. The author or a client with cube-manage access may remove it;
20
+ a workflow role name grants no permission.
21
+
22
+ All four operations use the selected local client's live cube grant. Read
23
+ access is sufficient to get or list documents. Create and supersede require
24
+ write or manage access.
25
+
26
+ ## Revisions
27
+
28
+ Document content is never edited in place. To revise a document, call
29
+ `borg_put-document` with `supersedes` set to the full id of the active prior
30
+ revision. Borg creates a new active document and marks the prior one
31
+ `superseded`, linking the two revisions. A document can have only one next
32
+ revision.
33
+
34
+ Removal is also a state transition rather than physical deletion. A removed
35
+ document disappears from `borg_list-documents`, but an exact
36
+ `borg_get-document` call retains its content and removal audit metadata.
37
+
38
+ ## Activity-Log Citations
39
+
40
+ Pass `documents: ["<full-document-id>"]` to `borg_log` to attach structured
41
+ citations to an activity-log entry. Borg validates all ids atomically: unknown,
42
+ duplicate, or cross-cube ids refuse the post rather than creating a partial
43
+ entry. Citations include the full id, title, UTF-8 size, and document state;
44
+ they do not inline document content. Readers can call `borg_get-document` when
45
+ they need the body.
46
+
47
+ When a long log message receives a `STORE_AS_DOCUMENT` advisory, move the
48
+ durable detail into `borg_put-document` and cite the returned id from a shorter
49
+ `borg_log` message. The advisory does not create or modify a document.
package/docs/RELEASING.md CHANGED
@@ -21,9 +21,9 @@ Before creating the release tag, independently verify all of these conditions:
21
21
  - the extraction review confirms no private backend secrets, deployment
22
22
  configuration, customer data, local state, or duplicated shared contracts
23
23
  entered the public package;
24
- - the exact audited registry dependency `borgmcp-shared@0.12.3` remains locked to
24
+ - the exact audited registry dependency `borgmcp-shared@0.13.1` remains locked to
25
25
  its canonical tarball and integrity
26
- `sha512-3GPQ1U7tBxg8Jp1Uac31CKKXQjMv4UNPhs5P6N83CyDXGJvkI88yowVJZGlLuo30eEk6jhERZ9AQWOjHst/sFA==`;
26
+ `sha512-AT5xOpd99U1Xd2waRJs01i2fz9ApMzd+NXQh0WMwTUknSsHpaQaEtGjcxtEDZG6MbB6nWfhoWG1ZZm9Fdkoytg==`;
27
27
  - the current published server and the client candidate use the same exact
28
28
  `borgmcp-shared` version; publish a compatible server before tagging the
29
29
  client when that pin changes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "borgmcp",
3
- "version": "3.15.2",
3
+ "version": "3.16.1",
4
4
  "description": "Coordinate AI coding agents in shared cubes. Works with Claude Code, Codex, and OpenCode.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -72,7 +72,7 @@
72
72
  },
73
73
  "dependencies": {
74
74
  "@modelcontextprotocol/sdk": "^1.0.4",
75
- "borgmcp-shared": "0.12.3",
75
+ "borgmcp-shared": "0.13.1",
76
76
  "chalk": "^5.3.0",
77
77
  "prompts": "^2.4.2",
78
78
  "which": "^4.0.0"
@@ -14,6 +14,7 @@ const SITE_URL = "https://borgmcp.ai";
14
14
  const REPOSITORY_URL = "https://github.com/Byte-Ventures/borg-mcp-client";
15
15
  const LOCAL_SERVER_URL = `${REPOSITORY_URL}/blob/main/docs/LOCAL_SERVER.md`;
16
16
  const SEAT_LIFECYCLE_URL = `${REPOSITORY_URL}/blob/main/docs/SEAT_LIFECYCLE.md`;
17
+ const DOCUMENTS_URL = `${REPOSITORY_URL}/blob/main/docs/DOCUMENTS.md`;
17
18
 
18
19
  export interface DocsSection {
19
20
  /** logical topic key */
@@ -83,6 +84,13 @@ export const DOCS_SECTIONS: DocsSection[] = [
83
84
  summary: "Client launch, cleanup, worktree maintenance, and launch-all reference.",
84
85
  keywords: ["cli", "command", "cleanup", "worktree", "launch", "launch-all", "terminal", "maintenance", "prune"],
85
86
  },
87
+ {
88
+ slug: "documents",
89
+ title: "Cube documents",
90
+ url: DOCUMENTS_URL,
91
+ summary: "Immutable cube-local Markdown or plain text, revisions, removal, and structured activity-log citations.",
92
+ keywords: ["document", "documents", "citation", "cite", "durable content", "supersede", "revision", "borg_put-document", "borg_get-document"],
93
+ },
86
94
  {
87
95
  slug: "tools",
88
96
  title: "Tool reference",
@@ -0,0 +1,41 @@
1
+ import type {
2
+ CubeDocument,
3
+ CubeDocumentMetadata,
4
+ DocumentCitation,
5
+ } from 'borgmcp-shared/protocol';
6
+
7
+ function actorLabel(actor: CubeDocumentMetadata['author']): string {
8
+ const identity = actor.label ?? actor.drone_id ?? 'operator';
9
+ return actor.role ? `${identity} (${actor.role})` : identity;
10
+ }
11
+
12
+ export function formatDocumentMetadata(document: CubeDocumentMetadata): string {
13
+ const lines = [
14
+ `**${document.title}**`,
15
+ `- id: ${document.id}`,
16
+ `- state: ${document.state}`,
17
+ `- content type: ${document.content_type}`,
18
+ `- size: ${document.size_bytes} UTF-8 bytes`,
19
+ `- author: ${actorLabel(document.author)}`,
20
+ `- created: ${document.created_at}`,
21
+ ];
22
+ if (document.supersedes) lines.push(`- supersedes: ${document.supersedes}`);
23
+ if (document.superseded_by) lines.push(`- superseded by: ${document.superseded_by}`);
24
+ if (document.removed_by && document.removed_at) {
25
+ lines.push(`- removed by: ${actorLabel(document.removed_by)}`);
26
+ lines.push(`- removed: ${document.removed_at}`);
27
+ }
28
+ return lines.join('\n');
29
+ }
30
+
31
+ export function formatDocument(document: CubeDocument): string {
32
+ return `${formatDocumentMetadata(document)}\n\n## Content\n\n${document.content}`;
33
+ }
34
+
35
+ export function formatDocumentCitation(citation: DocumentCitation): string {
36
+ return `${citation.id} (${citation.state}, ${citation.size_bytes} UTF-8 bytes): ${citation.title}`;
37
+ }
38
+
39
+ export function formatDocumentCitations(citations: readonly DocumentCitation[] | undefined): string[] {
40
+ return citations?.map(formatDocumentCitation) ?? [];
41
+ }
package/src/index.ts CHANGED
@@ -52,8 +52,17 @@ import {
52
52
  applyTemplate,
53
53
  whoami,
54
54
  roleRationale,
55
+ putDocument,
56
+ getDocument,
57
+ listDocuments,
58
+ removeDocument,
55
59
  type LocalManageAuthority,
56
60
  } from './remote-client.js';
61
+ import {
62
+ formatDocument,
63
+ formatDocumentCitations,
64
+ formatDocumentMetadata,
65
+ } from './document-render.js';
57
66
  import {
58
67
  getTemplate,
59
68
  listTemplateNames,
@@ -840,6 +849,33 @@ export async function main() {
840
849
  return { content: [{ type: 'text', text: lines.join('\n') }] };
841
850
  }
842
851
 
852
+ case 'borg_put-document': {
853
+ const active = await requireActiveCube();
854
+ const result = await putDocument(active.sessionToken, active.apiUrl, args ?? {}, active.serverTrustIdentity);
855
+ return { content: [{ type: 'text', text: `Created cube document.\n\n${formatDocument(result.document)}` }] };
856
+ }
857
+
858
+ case 'borg_get-document': {
859
+ const active = await requireActiveCube();
860
+ const result = await getDocument(active.sessionToken, active.apiUrl, args ?? {}, active.serverTrustIdentity);
861
+ return { content: [{ type: 'text', text: formatDocument(result.document) }] };
862
+ }
863
+
864
+ case 'borg_list-documents': {
865
+ const active = await requireActiveCube();
866
+ const result = await listDocuments(active.sessionToken, active.apiUrl, args ?? {}, active.serverTrustIdentity);
867
+ const text = result.documents.length === 0
868
+ ? `No active or superseded documents in cube "${active.name}".`
869
+ : result.documents.map(formatDocumentMetadata).join('\n\n');
870
+ return { content: [{ type: 'text', text }] };
871
+ }
872
+
873
+ case 'borg_remove-document': {
874
+ const active = await requireActiveCube();
875
+ const result = await removeDocument(active.sessionToken, active.apiUrl, args ?? {}, active.serverTrustIdentity);
876
+ return { content: [{ type: 'text', text: `Removed cube document.\n\n${formatDocumentMetadata(result.document)}` }] };
877
+ }
878
+
843
879
  case 'borg_log': {
844
880
  const message = args?.message as string;
845
881
  if (!message || typeof message !== 'string') throw new Error('message is required');
@@ -870,6 +906,7 @@ export async function main() {
870
906
  args?.visibility === 'broadcast' || args?.visibility === 'direct'
871
907
  ? args.visibility
872
908
  : undefined;
909
+ const documents = args?.documents as string[] | undefined;
873
910
  if (!active.serverTrustIdentity) {
874
911
  throw new Error('Selected Borg server authority state is missing or unreadable');
875
912
  }
@@ -877,6 +914,7 @@ export async function main() {
877
914
  ...(explicitClass ? { class: explicitClass } : {}),
878
915
  ...(hasTo ? { to: recipients ?? [] } : {}),
879
916
  ...(visibility ? { visibility } : {}),
917
+ ...(documents ? { documents } : {}),
880
918
  serverTrustIdentity: active.serverTrustIdentity,
881
919
  };
882
920
  const result = await appendLog(active.sessionToken, active.apiUrl, message, appendOpts);
@@ -891,7 +929,12 @@ export async function main() {
891
929
  .map((r) => r.label)
892
930
  .join(', ')}. Message delivered — they'll read it when they return.`
893
931
  : '';
894
- const text = `Logged to cube "${displayIdentity.cubeName}" as ${displayIdentity.droneLabel}. (entry id: ${result.entry.id})${echo}${unreachable}`;
932
+ const cited = formatDocumentCitations(result.entry.documents);
933
+ const citations = cited.length > 0 ? `\nDocuments: ${cited.join('; ')}` : '';
934
+ const advisory = result.advisory?.code === 'STORE_AS_DOCUMENT'
935
+ ? `\nAdvisory: this message exceeded ${result.advisory.threshold_bytes} UTF-8 bytes. Store durable detail with borg_put-document and cite its full id in borg_log.documents.`
936
+ : '';
937
+ const text = `Logged to cube "${displayIdentity.cubeName}" as ${displayIdentity.droneLabel}. (entry id: ${result.entry.id})${echo}${unreachable}${citations}${advisory}`;
895
938
  return { content: [{ type: 'text', text }] };
896
939
  }
897
940
 
package/src/log-stream.ts CHANGED
@@ -28,7 +28,12 @@ import { Buffer } from 'node:buffer';
28
28
  import { promises as fs } from 'node:fs';
29
29
  import path from 'node:path';
30
30
  import { compareBroadcastHwm, type BroadcastHwm } from 'borgmcp-shared/log-stream-hwm';
31
- import { decodeProtocolErrorEnvelope, ErrorCode } from 'borgmcp-shared/protocol';
31
+ import {
32
+ decodeDocumentCitations,
33
+ decodeProtocolErrorEnvelope,
34
+ ErrorCode,
35
+ type DocumentCitation,
36
+ } from 'borgmcp-shared/protocol';
32
37
  import { getActiveCube, inboxPathForDrone } from './cubes.js';
33
38
  import { assertUuidShape } from './evict-drone.js';
34
39
  import { loadBorgServerTrust } from './server-trust.js';
@@ -59,6 +64,7 @@ import { formatCubeActivityWakeMessage } from './cube-activity-wake-copy.js';
59
64
  import { readBoundedResponseBody } from './server-response.js';
60
65
  import { BorgServerError } from './server-errors.js';
61
66
  import { markSeatRejected } from './seats.js';
67
+ import { formatDocumentCitations } from './document-render.js';
62
68
  import { hasPendingWakeEntry as hasPendingDurableWakeEntry } from './remote-client.js';
63
69
  import {
64
70
  acquireStreamLease,
@@ -1426,7 +1432,14 @@ function parseEventBlock(block: string): ParsedEvent | null {
1426
1432
  const validCursor = cursor &&
1427
1433
  typeof cursor.id === 'string' &&
1428
1434
  typeof cursor.created_at === 'string';
1429
- const entry = parsed?.entry ?? parsed;
1435
+ let entry = parsed?.entry ?? parsed;
1436
+ if (entry?.documents !== undefined) {
1437
+ try {
1438
+ entry = { ...entry, documents: decodeDocumentCitations(entry.documents) };
1439
+ } catch {
1440
+ return { type: 'unknown', raw: block };
1441
+ }
1442
+ }
1430
1443
  return {
1431
1444
  type: 'log',
1432
1445
  id,
@@ -1493,6 +1506,7 @@ export interface EnrichedEntry {
1493
1506
  drone_label?: string | null;
1494
1507
  role_name?: string | null;
1495
1508
  message?: string;
1509
+ documents?: DocumentCitation[];
1496
1510
  }
1497
1511
 
1498
1512
  function parseHeartbeatHwm(value: unknown): BroadcastHwm | null {
@@ -1566,7 +1580,11 @@ export function formatInboxLine(entry: EnrichedEntry): string {
1566
1580
  const idPrefix = entryId ? `[entry_id: ${entryId}] ` : '';
1567
1581
  // Normalize \r\n, \r, and \n all to ` ⏎ ` so the entry fits on one
1568
1582
  // physical line regardless of line-ending convention in the source.
1569
- const message = rawMessage.replace(/\r\n|\r|\n/g, ' ⏎ ');
1583
+ const citations = formatDocumentCitations(entry.documents);
1584
+ const withDocuments = citations.length > 0
1585
+ ? `${rawMessage}\nDocuments: ${citations.join('; ')}`
1586
+ : rawMessage;
1587
+ const message = withDocuments.replace(/\r\n|\r|\n/g, ' ⏎ ');
1570
1588
  return `${ts} ${label} (${role}): ${idPrefix}${message}`;
1571
1589
  }
1572
1590
 
@@ -17,6 +17,7 @@ import {
17
17
  RUNTIME_METADATA_ADVISORY,
18
18
  renderRuntimeMetadataLines,
19
19
  } from './roster-render.js';
20
+ import { formatDocumentCitations } from './document-render.js';
20
21
  import { shellEscape } from './shell-escape.js';
21
22
  import { OPENCODE_WAKE_PATH_GUIDANCE } from './opencode-wake-copy.js';
22
23
  import { isBorgSession } from './launch-gate.js';
@@ -697,5 +698,9 @@ export function formatLogEntryMarkdown(
697
698
  typeof entry.drone_id === 'string' && entry.drone_id.length > 0
698
699
  ? ` ${formatDroneAddressToken(entry.drone_id)}`
699
700
  : '';
700
- return `**[${ts}]**${entryId}${addr} ${d?.label ?? '?'} (${r?.name ?? '?'}): ${entry.message}`;
701
+ const citations = formatDocumentCitations(entry.documents);
702
+ const documents = citations.length > 0
703
+ ? `\n Documents:\n${citations.map((citation) => ` - ${citation}`).join('\n')}`
704
+ : '';
705
+ return `**[${ts}]**${entryId}${addr} ${d?.label ?? '?'} (${r?.name ?? '?'}): ${entry.message}${documents}`;
701
706
  }
@@ -16,6 +16,7 @@ import {
16
16
  import { randomUUID } from 'node:crypto';
17
17
  import {
18
18
  createProtocolEnvelope,
19
+ decodeAppendLogRequest,
19
20
  decodeAppendLogResult,
20
21
  decodeDeleteCubeResponse,
21
22
  decodeDeleteRoleRequest,
@@ -25,6 +26,15 @@ import {
25
26
  decodeProtocolEnvelope,
26
27
  decodeProtocolErrorEnvelope,
27
28
  decodeReassignDroneResult,
29
+ decodeReadLogResult,
30
+ decodePutDocumentRequest,
31
+ decodePutDocumentResult,
32
+ decodeGetDocumentRequest,
33
+ decodeGetDocumentResult,
34
+ decodeListDocumentsRequest,
35
+ decodeListDocumentsResult,
36
+ decodeRemoveDocumentRequest,
37
+ decodeRemoveDocumentResult,
28
38
  decodeRoleRationaleRequest,
29
39
  decodeRoleRationaleResult,
30
40
  decodeUpdateDroneRuntimeMetadataResponse,
@@ -35,6 +45,10 @@ import {
35
45
  type EvictDroneResult,
36
46
  type ReassignDroneResult,
37
47
  type RoleRationaleResult,
48
+ type PutDocumentResult,
49
+ type GetDocumentResult,
50
+ type ListDocumentsResult,
51
+ type RemoveDocumentResult,
38
52
  } from 'borgmcp-shared/protocol';
39
53
  import { consolePrefix } from './console-prefix.js';
40
54
  import { debugLog } from './debug.js';
@@ -315,7 +329,7 @@ async function decodeLocalProtocolResponse<T>(
315
329
  async function localServerRequest<T>(
316
330
  active: ActiveCube,
317
331
  path: string,
318
- method: 'GET' | 'POST' | 'PUT' | 'PATCH',
332
+ method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE',
319
333
  payload?: Record<string, unknown>,
320
334
  options: {
321
335
  retryMode?: AuthedFetchRetryMode;
@@ -549,7 +563,7 @@ async function localReadLogPage(
549
563
  retryMode?: AuthedFetchRetryMode;
550
564
  } = {},
551
565
  ): Promise<any> {
552
- const payload = await localServerRequest<any>(
566
+ const payload = await localServerRequest(
553
567
  active,
554
568
  `/api/cubes/${active.cubeId}/logs`,
555
569
  'PUT',
@@ -557,7 +571,7 @@ async function localReadLogPage(
557
571
  cursor: opts.cursor ?? null,
558
572
  ...(opts.limit === undefined ? {} : { limit: opts.limit }),
559
573
  },
560
- { retryMode: opts.retryMode },
574
+ { retryMode: opts.retryMode, decodePayload: decodeReadLogResult },
561
575
  );
562
576
  if (!payload) throw new Error('Local Borg server returned an empty log response');
563
577
  return payload;
@@ -1321,6 +1335,82 @@ export async function roleRationale(
1321
1335
  };
1322
1336
  }
1323
1337
 
1338
+ export async function putDocument(
1339
+ sessionToken: string,
1340
+ apiUrl: string,
1341
+ input: unknown,
1342
+ serverTrustIdentity?: string,
1343
+ ): Promise<PutDocumentResult> {
1344
+ const request = decodePutDocumentRequest(input);
1345
+ const local = await localAuthorityContext(sessionToken, apiUrl, serverTrustIdentity);
1346
+ const result = await localServerRequest<PutDocumentResult>(
1347
+ local,
1348
+ `/api/cubes/${local.cubeId}/documents`,
1349
+ 'PUT',
1350
+ { ...request },
1351
+ { decodePayload: decodePutDocumentResult },
1352
+ );
1353
+ if (!result) throw new Error('Local Borg server returned an empty document response');
1354
+ return result;
1355
+ }
1356
+
1357
+ export async function getDocument(
1358
+ sessionToken: string,
1359
+ apiUrl: string,
1360
+ input: unknown,
1361
+ serverTrustIdentity?: string,
1362
+ ): Promise<GetDocumentResult> {
1363
+ const request = decodeGetDocumentRequest(input);
1364
+ const local = await localAuthorityContext(sessionToken, apiUrl, serverTrustIdentity);
1365
+ const result = await localServerRequest<GetDocumentResult>(
1366
+ local,
1367
+ `/api/cubes/${local.cubeId}/documents/${encodeURIComponent(request.id)}`,
1368
+ 'GET',
1369
+ { ...request },
1370
+ { decodePayload: decodeGetDocumentResult },
1371
+ );
1372
+ if (!result) throw new Error('Local Borg server returned an empty document response');
1373
+ return result;
1374
+ }
1375
+
1376
+ export async function listDocuments(
1377
+ sessionToken: string,
1378
+ apiUrl: string,
1379
+ input: unknown,
1380
+ serverTrustIdentity?: string,
1381
+ ): Promise<ListDocumentsResult> {
1382
+ decodeListDocumentsRequest(input);
1383
+ const local = await localAuthorityContext(sessionToken, apiUrl, serverTrustIdentity);
1384
+ const result = await localServerRequest<ListDocumentsResult>(
1385
+ local,
1386
+ `/api/cubes/${local.cubeId}/documents`,
1387
+ 'GET',
1388
+ {},
1389
+ { decodePayload: decodeListDocumentsResult },
1390
+ );
1391
+ if (!result) throw new Error('Local Borg server returned an empty document-list response');
1392
+ return result;
1393
+ }
1394
+
1395
+ export async function removeDocument(
1396
+ sessionToken: string,
1397
+ apiUrl: string,
1398
+ input: unknown,
1399
+ serverTrustIdentity?: string,
1400
+ ): Promise<RemoveDocumentResult> {
1401
+ const request = decodeRemoveDocumentRequest(input);
1402
+ const local = await localAuthorityContext(sessionToken, apiUrl, serverTrustIdentity);
1403
+ const result = await localServerRequest<RemoveDocumentResult>(
1404
+ local,
1405
+ `/api/cubes/${local.cubeId}/documents/${encodeURIComponent(request.id)}`,
1406
+ 'DELETE',
1407
+ { ...request },
1408
+ { decodePayload: decodeRemoveDocumentResult },
1409
+ );
1410
+ if (!result) throw new Error('Local Borg server returned an empty document response');
1411
+ return result;
1412
+ }
1413
+
1324
1414
  /**
1325
1415
  * Append a message to the cube's shared activity log.
1326
1416
  */
@@ -1333,6 +1423,7 @@ export async function appendLog(
1333
1423
  recipientDroneIds?: string[];
1334
1424
  class?: string;
1335
1425
  to?: string[];
1426
+ documents?: string[];
1336
1427
  serverTrustIdentity?: string;
1337
1428
  } = {}
1338
1429
  ): Promise<ReturnType<typeof decodeAppendLogResult>> {
@@ -1342,6 +1433,9 @@ export async function appendLog(
1342
1433
  'Remove visibility to direct to recipients, or remove to: to broadcast.',
1343
1434
  );
1344
1435
  }
1436
+ if (opts.to?.length === 0) {
1437
+ throw new Error('Direct log recipient list must contain at least one recipient');
1438
+ }
1345
1439
  const postId = randomUUID();
1346
1440
  const local = await localAuthorityContext(
1347
1441
  sessionToken,
@@ -1370,22 +1464,21 @@ export async function appendLog(
1370
1464
  } else if (visibility === undefined && recipientDroneIds !== undefined) {
1371
1465
  visibility = 'direct';
1372
1466
  }
1467
+ const request = decodeAppendLogRequest({
1468
+ post_id: postId,
1469
+ message,
1470
+ ...(visibility ? { visibility } : {}),
1471
+ ...(visibility === 'direct' && recipientDroneIds
1472
+ ? { recipientDroneIds }
1473
+ : {}),
1474
+ ...(opts.class ? { class: opts.class } : {}),
1475
+ ...(opts.documents ? { documents: opts.documents } : {}),
1476
+ });
1373
1477
  const payload = await localServerRequest<ReturnType<typeof decodeAppendLogResult>>(
1374
1478
  local,
1375
1479
  `/api/cubes/${local.cubeId}/logs`,
1376
1480
  'POST',
1377
- {
1378
- post_id: postId,
1379
- message,
1380
- ...(visibility ? { visibility } : {}),
1381
- ...(visibility === 'direct' && recipientDroneIds
1382
- ? { recipientDroneIds }
1383
- : {}),
1384
- // server#48 append-time taxonomy routing: forward the requested class
1385
- // so the server can classify/route. It is honored only when no explicit
1386
- // visibility/recipients override it (server resolveMessageRouting).
1387
- ...(opts.class ? { class: opts.class } : {}),
1388
- },
1481
+ { ...request },
1389
1482
  { retryMode: 'append-log', decodePayload: decodeAppendLogResult },
1390
1483
  );
1391
1484
  if (!payload) throw new Error('Local Borg server returned an empty log response');
@@ -215,10 +215,11 @@ export interface ServerAttachResult {
215
215
  }
216
216
 
217
217
  /**
218
- * Attach an enrolled client principal to one granted cube/role over protocol v9.
218
+ * Attach an enrolled client principal to one granted cube/role over protocol v10.
219
219
  * The client CSPRNG-generates the session bearer and persists it PENDING in the
220
- * OS keychain (keyed by the stable per-seat identity) BEFORE this request, so an
221
- * interrupted/lost response is recovered by re-sending the exact same bearer —
220
+ * local 0600 credential store (keyed by the stable per-seat identity) BEFORE
221
+ * this request, so an interrupted/lost response is recovered by re-sending the
222
+ * exact same bearer —
222
223
  * the server binds only its digest. A verified `created`/`reused` response
223
224
  * activates that pending record in place; the server never returns a bearer.
224
225
  */