borgmcp 5.5.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/dist/claude.d.ts.map +1 -1
- package/dist/claude.js +8 -0
- package/dist/claude.js.map +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +9 -6
- package/dist/cli-help.js.map +1 -1
- package/dist/docs-sections.js +1 -1
- package/dist/docs-sections.js.map +1 -1
- package/dist/local-server-cursor.d.ts +9 -0
- package/dist/local-server-cursor.d.ts.map +1 -1
- package/dist/local-server-cursor.js +50 -1
- package/dist/local-server-cursor.js.map +1 -1
- package/dist/log-stream.d.ts +13 -0
- package/dist/log-stream.d.ts.map +1 -1
- package/dist/log-stream.js +45 -13
- package/dist/log-stream.js.map +1 -1
- package/dist/remote-client.d.ts +3 -0
- package/dist/remote-client.d.ts.map +1 -1
- package/dist/remote-client.js +7 -1
- package/dist/remote-client.js.map +1 -1
- package/dist/representative-cmd.d.ts +7 -0
- package/dist/representative-cmd.d.ts.map +1 -1
- package/dist/representative-cmd.js +19 -15
- package/dist/representative-cmd.js.map +1 -1
- package/dist/representative-core.d.ts +53 -7
- package/dist/representative-core.d.ts.map +1 -1
- package/dist/representative-core.js +229 -43
- package/dist/representative-core.js.map +1 -1
- package/dist/representative-delivery-store.d.ts +79 -0
- package/dist/representative-delivery-store.d.ts.map +1 -0
- package/dist/representative-delivery-store.js +233 -0
- package/dist/representative-delivery-store.js.map +1 -0
- package/dist/representative-listener-store.d.ts +46 -0
- package/dist/representative-listener-store.d.ts.map +1 -0
- package/dist/representative-listener-store.js +119 -0
- package/dist/representative-listener-store.js.map +1 -0
- package/dist/representative-listener.d.ts +32 -0
- package/dist/representative-listener.d.ts.map +1 -0
- package/dist/representative-listener.js +293 -0
- package/dist/representative-listener.js.map +1 -0
- package/dist/representative-mcp.d.ts +10 -3
- package/dist/representative-mcp.d.ts.map +1 -1
- package/dist/representative-mcp.js +48 -19
- package/dist/representative-mcp.js.map +1 -1
- package/dist/representative-store.d.ts +7 -0
- package/dist/representative-store.d.ts.map +1 -1
- package/dist/representative-store.js +17 -2
- package/dist/representative-store.js.map +1 -1
- package/dist/seat-probe.d.ts +1 -0
- package/dist/seat-probe.d.ts.map +1 -1
- package/dist/seat-probe.js +1 -1
- package/dist/seat-probe.js.map +1 -1
- package/dist/server-trust.d.ts +10 -0
- package/dist/server-trust.d.ts.map +1 -1
- package/dist/server-trust.js +23 -6
- package/dist/server-trust.js.map +1 -1
- package/dist/stream-owner.d.ts.map +1 -1
- package/dist/stream-owner.js +32 -3
- package/dist/stream-owner.js.map +1 -1
- package/docs/HUMAN_REPRESENTATIVE.md +201 -36
- package/package.json +1 -1
- package/src/claude.ts +8 -0
- package/src/cli-help.ts +9 -6
- package/src/docs-sections.ts +1 -1
- package/src/local-server-cursor.ts +45 -1
- package/src/log-stream.ts +47 -14
- package/src/remote-client.ts +9 -1
- package/src/representative-cmd.ts +26 -20
- package/src/representative-core.ts +255 -46
- package/src/representative-delivery-store.ts +235 -0
- package/src/representative-listener-store.ts +115 -0
- package/src/representative-listener.ts +215 -0
- package/src/representative-mcp.ts +58 -17
- package/src/representative-store.ts +18 -2
- package/src/seat-probe.ts +1 -1
- package/src/server-trust.ts +25 -6
- package/src/stream-owner.ts +34 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"representative-core.d.ts","sourceRoot":"","sources":["../src/representative-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,SAAS,EAAiD,KAAK,IAAI,EAAE,KAAK,WAAW,IAAI,aAAa,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAClM,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS7C,OAAO,
|
|
1
|
+
{"version":3,"file":"representative-core.d.ts","sourceRoot":"","sources":["../src/representative-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,18 +17,17 @@ import { Buffer } from 'node:buffer';
|
|
|
17
17
|
import { ErrorCode, ProtocolContractError, decodeAppendLogRequest } from 'borgmcp-shared/protocol';
|
|
18
18
|
import { CUBE_DELETED_CODE, CubeDeletedError, DRONE_EVICTED_CODE, DroneEvictedError } from './drone-lifecycle.js';
|
|
19
19
|
import { BorgProtocolMismatchError, BorgServerError, BorgServerHttpError, BorgServerTrustError, BorgServerUnreachableError, } from './server-errors.js';
|
|
20
|
-
import { representativeRecoveryCommand, isRepresentativeUuid } from './representative-store.js';
|
|
20
|
+
import { bindingFingerprint, representativeRecoveryCommand, isRepresentativeUuid } from './representative-store.js';
|
|
21
|
+
import { comparePoints, createDeliveryStore } from './representative-delivery-store.js';
|
|
22
|
+
import { readPrivateLocalServerCursor } from './local-server-cursor.js';
|
|
23
|
+
import { validatePrivateDirectory } from './representative-listener-store.js';
|
|
24
|
+
import { borgConfigRoot } from './private-root.js';
|
|
21
25
|
const UUID_SCAN_RE = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi;
|
|
22
26
|
export const REPRESENTATIVE_MESSAGE_LIMIT_BYTES = 3000;
|
|
23
|
-
export const REPRESENTATIVE_DELIVERY_NOTE = '
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'reply cannot be retrieved through this connection. The first send/read/ack takes an exclusive process lease for this ' +
|
|
28
|
-
'representative drone; other processes refuse those calls without ledger, cursor or network activity. Status stays ' +
|
|
29
|
-
'read-only and reports ownership. After owner exit, death or lease expiry another process can take over. ' +
|
|
30
|
-
'A process that loses its lease refuses further calls until restarted. Ownership does not route conversations inside the host. ' +
|
|
31
|
-
'A local lease cannot cancel an in-flight request; retry an ambiguous send with its original request_id.';
|
|
27
|
+
export const REPRESENTATIVE_DELIVERY_NOTE = 'read returns undelivered replies without consuming them; persist, route by in_reply_to (unknown: hold for the ' +
|
|
28
|
+
'human), then deliver through the last persisted entry_id. ack only notifies the Coordinator. A separate ' +
|
|
29
|
+
'borg representative listen process emits body-free wake hints. One process at a time owns send/read/deliver/ack; ' +
|
|
30
|
+
'status is read-only. Stop routing if binding_fingerprint changes.';
|
|
32
31
|
export class RepresentativeError extends Error {
|
|
33
32
|
code;
|
|
34
33
|
details;
|
|
@@ -49,7 +48,21 @@ export async function createSeatBackend(active) {
|
|
|
49
48
|
append: ({ postId, message, to }) => client.appendLog(active.sessionToken, active.apiUrl, message, {
|
|
50
49
|
to, postId, transportRetry: false, serverTrustIdentity: trust,
|
|
51
50
|
}),
|
|
52
|
-
|
|
51
|
+
readAfter: (cursor, limit, continuationGuard) => client.readLog(active.sessionToken, active.apiUrl, { cursor, limit, serverTrustIdentity: trust, continuationGuard }),
|
|
52
|
+
// Migration input only: an unsafe private root or cursor file is no cursor,
|
|
53
|
+
// so the checkpoint starts empty and replays instead of trusting it.
|
|
54
|
+
unreadCursor: async () => {
|
|
55
|
+
try {
|
|
56
|
+
if (!await validatePrivateDirectory(borgConfigRoot(), false))
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
return readPrivateLocalServerCursor({
|
|
63
|
+
origin: active.apiUrl, trustIdentity: trust, cubeId: active.cubeId, droneId: active.droneId,
|
|
64
|
+
});
|
|
65
|
+
},
|
|
53
66
|
readEntry: (entryId) => client.readLogEntry(active.sessionToken, active.apiUrl, { entry_id: entryId }, trust),
|
|
54
67
|
ack: (entryId) => client.ackLogEntry(active.sessionToken, active.apiUrl, entryId, 'ack', trust),
|
|
55
68
|
};
|
|
@@ -84,7 +97,7 @@ export function resolveCoordinator(roster, selector) {
|
|
|
84
97
|
return { drone, role };
|
|
85
98
|
}
|
|
86
99
|
/** Re-prove, against the live cube, that this seat and the bound Coordinator are still the bound ones. */
|
|
87
|
-
async function verifyLiveBinding(ctx) {
|
|
100
|
+
export async function verifyLiveBinding(ctx) {
|
|
88
101
|
const { binding, backend } = ctx;
|
|
89
102
|
const me = await backend.whoami();
|
|
90
103
|
if (me.cube_id !== binding.cubeId || me.drone_id !== binding.representativeDroneId) {
|
|
@@ -239,6 +252,9 @@ function classifyAppendFailure(error, binding) {
|
|
|
239
252
|
};
|
|
240
253
|
}
|
|
241
254
|
export async function sendRepresentativeMessage(ctx, raw) {
|
|
255
|
+
return { ...await sendOnce(ctx, raw), binding_fingerprint: bindingFingerprint(ctx.binding) };
|
|
256
|
+
}
|
|
257
|
+
async function sendOnce(ctx, raw) {
|
|
242
258
|
const input = validateSendInput(raw);
|
|
243
259
|
const { binding, store } = ctx;
|
|
244
260
|
const now = () => (ctx.now?.() ?? new Date()).toISOString();
|
|
@@ -399,46 +415,206 @@ function isAddressedCoordinatorEntry(binding, entry) {
|
|
|
399
415
|
}
|
|
400
416
|
return 'broadcast';
|
|
401
417
|
}
|
|
418
|
+
/** The exact text an MCP tool result carries; `max_bytes` measures this. */
|
|
419
|
+
export function serializeRepresentativeResult(body) {
|
|
420
|
+
return JSON.stringify(body, null, 2);
|
|
421
|
+
}
|
|
422
|
+
const READ_SCAN_PAGE = 500;
|
|
423
|
+
/**
|
|
424
|
+
* A serialized read result never exceeds max(max_bytes, this). An oversize
|
|
425
|
+
* entry is returned alone; if it still exceeds the bound, its citations are
|
|
426
|
+
* reduced to ids. Message text is never cut: the server caps a post (4096
|
|
427
|
+
* bytes by default), so the reduced entry fits.
|
|
428
|
+
*/
|
|
429
|
+
export const REPRESENTATIVE_ENVELOPE_FLOOR = 16384;
|
|
430
|
+
/**
|
|
431
|
+
* Run `use` with this generation's delivery state. On the first call for a
|
|
432
|
+
* generation, `use` runs alone in the per-seat queue with the proposed start,
|
|
433
|
+
* and nothing is written until it calls `commit`: a read refused as oversize
|
|
434
|
+
* leaves no tombstone and no checkpoint behind.
|
|
435
|
+
*/
|
|
436
|
+
async function withDeliveryState(ctx, use) {
|
|
437
|
+
const store = createDeliveryStore(ctx.binding);
|
|
438
|
+
const saved = await store.load();
|
|
439
|
+
if (saved) {
|
|
440
|
+
// A checkpoint always implies an upgraded seat; restore a lost tombstone.
|
|
441
|
+
if (!await store.migrated())
|
|
442
|
+
await store.markMigrated(ctx.guard);
|
|
443
|
+
return use(saved, async () => { });
|
|
444
|
+
}
|
|
445
|
+
return store.initialize(async () => {
|
|
446
|
+
const again = await store.load();
|
|
447
|
+
if (again)
|
|
448
|
+
return use(again, async () => { });
|
|
449
|
+
// The seat already upgraded (a tombstone or a sibling generation exists):
|
|
450
|
+
// this generation (rebind, new Coordinator, or a removed invalid checkpoint)
|
|
451
|
+
// starts empty and replays its addressed history. Nothing on disk is ever
|
|
452
|
+
// read back as a position, and the legacy cursor is never imported again.
|
|
453
|
+
const upgraded = await store.migrated() || await store.otherGenerationExists();
|
|
454
|
+
// One-time upgrade: start where the pre-checkpoint destructive read left
|
|
455
|
+
// the unread view. The cursor is used only in memory.
|
|
456
|
+
const cursor = upgraded ? null : await ctx.backend.unreadCursor();
|
|
457
|
+
return use({ checkpoint: cursor, readThrough: cursor, returned: [] }, async () => {
|
|
458
|
+
// The tombstone is created exclusively first, so an interruption before
|
|
459
|
+
// the checkpoint replays (duplicates the host dedupes). An initializer in
|
|
460
|
+
// another process that won the create (excluded by the tools lease in
|
|
461
|
+
// practice) makes this one start empty.
|
|
462
|
+
const start = !upgraded && await store.markMigrated(ctx.guard) ? cursor : null;
|
|
463
|
+
if (upgraded)
|
|
464
|
+
await store.markMigrated(ctx.guard);
|
|
465
|
+
await store.advance({ checkpoint: start, readThrough: start }, ctx.guard);
|
|
466
|
+
});
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
const checkpointView = (point) => ({ entry_id: point?.id ?? null, created_at: point?.created_at ?? null });
|
|
402
470
|
export async function readRepresentativeReplies(ctx, raw) {
|
|
403
471
|
const input = (raw ?? {});
|
|
404
|
-
const
|
|
472
|
+
const allowed = ['include_broadcast', 'limit', 'max_bytes'];
|
|
473
|
+
const unknown = Object.keys(input).filter((key) => !allowed.includes(key) && input[key] !== undefined);
|
|
405
474
|
if (unknown.length > 0)
|
|
406
475
|
throw new RepresentativeError(ErrorCode.INVALID_INPUT, `Unsupported field(s): ${unknown.join(', ')}.`);
|
|
407
476
|
if (input.include_broadcast !== undefined && typeof input.include_broadcast !== 'boolean') {
|
|
408
477
|
throw new RepresentativeError(ErrorCode.INVALID_INPUT, 'include_broadcast must be a boolean.');
|
|
409
478
|
}
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
479
|
+
const bounded = (name, min, max, fallback) => {
|
|
480
|
+
const value = input[name];
|
|
481
|
+
if (value === undefined)
|
|
482
|
+
return fallback;
|
|
483
|
+
if (!Number.isInteger(value) || value < min || value > max) {
|
|
484
|
+
throw new RepresentativeError(ErrorCode.INVALID_INPUT, `${name} must be an integer from ${min} to ${max}.`);
|
|
485
|
+
}
|
|
486
|
+
return value;
|
|
487
|
+
};
|
|
488
|
+
const limit = bounded('limit', 1, 50, 10);
|
|
489
|
+
const maxBytes = bounded('max_bytes', 4096, 60000, 32768);
|
|
413
490
|
await verifyLiveBinding(ctx);
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
491
|
+
return withDeliveryState(ctx, async (state, commit) => {
|
|
492
|
+
const requestIds = await ctx.store.transactRequests(ctx.binding.worktree, (records) => new Set(records.map((record) => record.requestId)));
|
|
493
|
+
// Deliberate ceiling: every read scans the cube log from the checkpoint,
|
|
494
|
+
// including entries not addressed here, so an undelivered backlog costs a
|
|
495
|
+
// growing scan. Upgrade path: a separate scan hint that deliver advances.
|
|
496
|
+
// One addressed entry beyond `limit` is collected only to answer has_more.
|
|
497
|
+
const candidates = [];
|
|
498
|
+
let ignored = 0;
|
|
499
|
+
let cursor = state.checkpoint;
|
|
500
|
+
let last = state.checkpoint;
|
|
501
|
+
scan: for (;;) {
|
|
502
|
+
const page = await ctx.backend.readAfter(cursor, READ_SCAN_PAGE);
|
|
503
|
+
for (const entry of page.entries) {
|
|
504
|
+
const point = { id: entry.id, created_at: entry.created_at };
|
|
505
|
+
// Client-side (created_at, id) filter: never repeat or regress.
|
|
506
|
+
if (comparePoints(point, last) <= 0)
|
|
507
|
+
continue;
|
|
508
|
+
last = point;
|
|
509
|
+
const addressed = isAddressedCoordinatorEntry(ctx.binding, entry);
|
|
510
|
+
if (addressed === null || (addressed === 'broadcast' && input.include_broadcast !== true)) {
|
|
511
|
+
ignored += 1;
|
|
512
|
+
continue;
|
|
513
|
+
}
|
|
514
|
+
const quoted = (entry.message.match(UUID_SCAN_RE) ?? []).map((id) => id.toLowerCase());
|
|
515
|
+
candidates.push({ point, ignoredBefore: ignored, reply: {
|
|
516
|
+
entry_id: entry.id,
|
|
517
|
+
created_at: entry.created_at,
|
|
518
|
+
from_drone_id: ctx.binding.coordinatorDroneId,
|
|
519
|
+
from_label: ctx.binding.coordinatorLabel,
|
|
520
|
+
addressed,
|
|
521
|
+
in_reply_to: quoted.find((id) => requestIds.has(id)) ?? null,
|
|
522
|
+
message: entry.message,
|
|
523
|
+
...(entry.documents?.length ? {
|
|
524
|
+
documents: entry.documents,
|
|
525
|
+
document_delivery: 'Document bodies are not included and cannot be fetched through this connection. Ask the Coordinator to provide the content through a supported channel.',
|
|
526
|
+
} : {}),
|
|
527
|
+
} });
|
|
528
|
+
if (candidates.length > limit)
|
|
529
|
+
break scan;
|
|
530
|
+
}
|
|
531
|
+
const tail = page.entries.at(-1);
|
|
532
|
+
if (!page.has_more || !tail)
|
|
533
|
+
break;
|
|
534
|
+
cursor = { id: tail.id, created_at: tail.created_at };
|
|
535
|
+
}
|
|
536
|
+
const result = (count, oversize = false) => {
|
|
537
|
+
const taken = candidates.slice(0, count);
|
|
538
|
+
const replies = taken.map(({ reply }, index) => (oversize && index === 0 ? { ...reply, oversize: true } : reply));
|
|
539
|
+
return {
|
|
540
|
+
replies,
|
|
541
|
+
checkpoint: checkpointView(state.checkpoint),
|
|
542
|
+
has_more: candidates.length > count,
|
|
543
|
+
ignored_entries: count < candidates.length ? candidates[count].ignoredBefore : ignored,
|
|
544
|
+
binding_fingerprint: bindingFingerprint(ctx.binding),
|
|
545
|
+
delivery: REPRESENTATIVE_DELIVERY_NOTE,
|
|
546
|
+
};
|
|
547
|
+
};
|
|
548
|
+
// Measure the real serialized result; entries are whole or omitted.
|
|
549
|
+
let count = 0;
|
|
550
|
+
while (count < Math.min(limit, candidates.length) &&
|
|
551
|
+
Buffer.byteLength(serializeRepresentativeResult(result(count + 1))) <= maxBytes)
|
|
552
|
+
count += 1;
|
|
553
|
+
const oversize = count === 0 && candidates.length > 0;
|
|
554
|
+
let final = result(oversize ? 1 : count, oversize);
|
|
555
|
+
const bound = Math.max(maxBytes, REPRESENTATIVE_ENVELOPE_FLOOR);
|
|
556
|
+
if (oversize && final.replies[0].documents?.length &&
|
|
557
|
+
Buffer.byteLength(serializeRepresentativeResult(final)) > bound) {
|
|
558
|
+
const reply = final.replies[0];
|
|
559
|
+
final = { ...final, replies: [{
|
|
560
|
+
...reply, documents: reply.documents.map(({ id }) => ({ id })), documents_reduced: true,
|
|
561
|
+
}] };
|
|
562
|
+
}
|
|
563
|
+
const measured = Buffer.byteLength(serializeRepresentativeResult(final));
|
|
564
|
+
if (oversize && measured > bound) {
|
|
565
|
+
// Nothing is cut or overrun, and nothing moves: no content, no deliver.
|
|
566
|
+
throw new RepresentativeError('REPRESENTATIVE_READ_OVERSIZE', `The next reply does not fit ${bound} bytes even alone with its citations reduced to ids. Nothing was read or ` +
|
|
567
|
+
'advanced. Raise max_bytes (up to 60000); beyond that the operator must reduce the server post limit.', { entry_id: final.replies[0].entry_id, measured_bytes: measured, bound });
|
|
568
|
+
}
|
|
569
|
+
await commit();
|
|
570
|
+
const window = candidates.slice(0, final.replies.length).map(({ point }) => point);
|
|
571
|
+
if (window.length > 0) {
|
|
572
|
+
// The deliver fence and membership widen before the caller sees the entries.
|
|
573
|
+
await createDeliveryStore(ctx.binding).advance({ readThrough: window.at(-1), returned: window }, ctx.guard);
|
|
574
|
+
}
|
|
575
|
+
return final;
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
export async function deliverRepresentativeReplies(ctx, raw) {
|
|
579
|
+
const input = (raw ?? {});
|
|
580
|
+
const unknown = Object.keys(input).filter((key) => key !== 'through');
|
|
581
|
+
if (unknown.length > 0 || !isRepresentativeUuid(input.through)) {
|
|
582
|
+
throw new RepresentativeError(ErrorCode.INVALID_INPUT, 'through must be the full UUID of a reply returned by borg_representative-read.');
|
|
435
583
|
}
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
584
|
+
const through = input.through;
|
|
585
|
+
await verifyLiveBinding(ctx);
|
|
586
|
+
return withDeliveryState(ctx, async (state, commit) => {
|
|
587
|
+
await commit();
|
|
588
|
+
const outside = () => new RepresentativeError('REPRESENTATIVE_DELIVER_UNKNOWN_ENTRY', 'That entry is not in the current read window: deliver only a reply that borg_representative-read returned. Nothing changed.');
|
|
589
|
+
let entry;
|
|
590
|
+
try {
|
|
591
|
+
({ entry } = await ctx.backend.readEntry(through));
|
|
592
|
+
}
|
|
593
|
+
catch (error) {
|
|
594
|
+
if (error?.status === 404)
|
|
595
|
+
throw outside();
|
|
596
|
+
throw error;
|
|
597
|
+
}
|
|
598
|
+
if (entry.id !== through || isAddressedCoordinatorEntry(ctx.binding, entry) === null)
|
|
599
|
+
throw outside();
|
|
600
|
+
const point = { id: entry.id, created_at: entry.created_at };
|
|
601
|
+
const fingerprint = bindingFingerprint(ctx.binding);
|
|
602
|
+
if (state.checkpoint && comparePoints(point, state.checkpoint) <= 0) {
|
|
603
|
+
return { checkpoint: checkpointView(state.checkpoint), advanced: false, binding_fingerprint: fingerprint };
|
|
604
|
+
}
|
|
605
|
+
// Membership of the full tuple, not the range or the id alone: only an entry
|
|
606
|
+
// a read actually returned, as the server reports it now, inside the window.
|
|
607
|
+
if (!state.returned.some((returned) => returned.id === point.id && returned.created_at === point.created_at) ||
|
|
608
|
+
state.readThrough === null || comparePoints(point, state.readThrough) > 0)
|
|
609
|
+
throw outside();
|
|
610
|
+
const { before, after } = await createDeliveryStore(ctx.binding).advance({ checkpoint: point }, ctx.guard);
|
|
611
|
+
return {
|
|
612
|
+
checkpoint: checkpointView(after.checkpoint),
|
|
613
|
+
// The serialized transition, not this call's earlier snapshot.
|
|
614
|
+
advanced: comparePoints(after.checkpoint, before?.checkpoint ?? null) > 0,
|
|
615
|
+
binding_fingerprint: fingerprint,
|
|
616
|
+
};
|
|
617
|
+
});
|
|
442
618
|
}
|
|
443
619
|
export async function ackRepresentativeReply(ctx, raw) {
|
|
444
620
|
const input = (raw ?? {});
|
|
@@ -466,6 +642,13 @@ export async function representativeStatus(ctx) {
|
|
|
466
642
|
message: error instanceof Error ? error.message : 'Unknown error',
|
|
467
643
|
};
|
|
468
644
|
}
|
|
645
|
+
let checkpointProblem;
|
|
646
|
+
try {
|
|
647
|
+
await createDeliveryStore(binding).load();
|
|
648
|
+
}
|
|
649
|
+
catch (error) {
|
|
650
|
+
checkpointProblem = { code: error.code ?? 'BACKEND_ERROR', message: error instanceof Error ? error.message : 'Unknown error' };
|
|
651
|
+
}
|
|
469
652
|
const unresolved = (await ctx.store.readRequests(binding.worktree))
|
|
470
653
|
.filter((record) => record.state === 'pending' || record.state === 'ambiguous')
|
|
471
654
|
.map((record) => ({
|
|
@@ -488,6 +671,9 @@ export async function representativeStatus(ctx) {
|
|
|
488
671
|
delivery: REPRESENTATIVE_DELIVERY_NOTE,
|
|
489
672
|
authority: 'Borg records these messages as posts from the representative drone. The user-authorized / model-advice label is this ' +
|
|
490
673
|
'connection\'s own attribution and is not verified or enforced by the Borg server.',
|
|
674
|
+
binding_fingerprint: bindingFingerprint(binding),
|
|
675
|
+
...(checkpointProblem ? { checkpoint_problem: checkpointProblem } : {}),
|
|
676
|
+
envelope_floor: REPRESENTATIVE_ENVELOPE_FLOOR,
|
|
491
677
|
};
|
|
492
678
|
}
|
|
493
679
|
//# sourceMappingURL=representative-core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"representative-core.js","sourceRoot":"","sources":["../src/representative-core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"representative-core.js","sourceRoot":"","sources":["../src/representative-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { LocalServerCursor } from './local-server-cursor.js';
|
|
2
|
+
import { type RepresentativeBinding } from './representative-store.js';
|
|
3
|
+
/**
|
|
4
|
+
* `checkpoint`: the host's durable delivery point; only `deliver` moves it.
|
|
5
|
+
* `readThrough`: the highest entry any `read` returned; `deliver` may not pass it.
|
|
6
|
+
*/
|
|
7
|
+
export interface DeliveryState {
|
|
8
|
+
checkpoint: LocalServerCursor | null;
|
|
9
|
+
readThrough: LocalServerCursor | null;
|
|
10
|
+
/**
|
|
11
|
+
* Entries a read returned since the checkpoint last moved: `deliver` checks
|
|
12
|
+
* membership here, not just the range. Every window starts at the
|
|
13
|
+
* checkpoint, so this stays within the largest window (two, with and without
|
|
14
|
+
* broadcasts), and deliver prunes it.
|
|
15
|
+
*/
|
|
16
|
+
returned: LocalServerCursor[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* This binding's own checkpoint file exists but cannot be trusted. It is never
|
|
20
|
+
* used and never silently reset: every tool except status refuses until the
|
|
21
|
+
* operator inspects and removes it.
|
|
22
|
+
*/
|
|
23
|
+
export declare class DeliveryCheckpointError extends Error {
|
|
24
|
+
readonly code = "REPRESENTATIVE_CHECKPOINT_INVALID";
|
|
25
|
+
constructor(file: string, reason: string);
|
|
26
|
+
}
|
|
27
|
+
export declare function deliveryPaths(binding: RepresentativeBinding): {
|
|
28
|
+
directory: string;
|
|
29
|
+
file: string;
|
|
30
|
+
};
|
|
31
|
+
/** (created_at, id) order, the server log order. */
|
|
32
|
+
export declare function comparePoints(a: LocalServerCursor, b: LocalServerCursor | null): number;
|
|
33
|
+
/**
|
|
34
|
+
* The one-time upgrade tombstone for a seat. Its existence alone means the
|
|
35
|
+
* legacy import was attempted; nothing in it is ever read back as a position.
|
|
36
|
+
* Its directory name is not 64 hex characters, so the generation scan never
|
|
37
|
+
* mistakes it for a checkpoint.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createDeliveryStore(binding: RepresentativeBinding): {
|
|
40
|
+
/** Null when this binding generation has no checkpoint yet. A corrupt file fails closed. */
|
|
41
|
+
load: () => Promise<DeliveryState | null>;
|
|
42
|
+
/**
|
|
43
|
+
* Whether the seat's upgrade tombstone exists. Any object at that path,
|
|
44
|
+
* readable or not, counts, so a planted or damaged marker can only cause a
|
|
45
|
+
* replay (duplicates), never an import or a skip.
|
|
46
|
+
*/
|
|
47
|
+
migrated(): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Create the tombstone exclusively (O_EXCL, no-follow, 0600, fsynced).
|
|
50
|
+
* False when it already exists: another initializer got there first.
|
|
51
|
+
* `guard` runs just before the create.
|
|
52
|
+
*/
|
|
53
|
+
markMigrated(guard?: () => Promise<void>): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Run a first-call initialization alone for this seat within the process:
|
|
56
|
+
* overlapping first reads see each other's result instead of both
|
|
57
|
+
* importing. Other processes are excluded by the tools lease, and the
|
|
58
|
+
* exclusive tombstone create backs that up.
|
|
59
|
+
*/
|
|
60
|
+
initialize<T>(operation: () => Promise<T>): Promise<T>;
|
|
61
|
+
/**
|
|
62
|
+
* Whether any other generation of this seat already has a checkpoint, which
|
|
63
|
+
* means the one-time upgrade from the unread cursor already happened. An
|
|
64
|
+
* unreadable or unsafe sibling counts as one: the new generation then
|
|
65
|
+
* replays its history (duplicates, never loss) instead of trusting it.
|
|
66
|
+
*/
|
|
67
|
+
otherGenerationExists(): Promise<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Move either field forward only, from the state on disk at write time, in
|
|
70
|
+
* one atomic durable 0600 write. Always writes when no file exists yet, so a
|
|
71
|
+
* completed migration is never repeated. `guard` runs just before the write.
|
|
72
|
+
* Returns the states before and after, so callers report the real transition.
|
|
73
|
+
*/
|
|
74
|
+
advance(update: Partial<DeliveryState>, guard?: () => Promise<void>): Promise<{
|
|
75
|
+
before: DeliveryState | null;
|
|
76
|
+
after: DeliveryState;
|
|
77
|
+
}>;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=representative-delivery-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"representative-delivery-store.d.ts","sourceRoot":"","sources":["../src/representative-delivery-store.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAA4C,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGjH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAOD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,uCAAuC;gBACxC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAKzC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,qBAAqB;;;EAG3D;AAsBD,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAIvF;AAwBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;IAwB9D,4FAA4F;gBAnBvE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAqBlD;;;;OAIG;gBACe,OAAO,CAAC,OAAO,CAAC;IASlC;;;;OAIG;yBACwB,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBjE;;;;;OAKG;eACQ,CAAC,aAAa,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAMtD;;;;;OAKG;6BAC4B,OAAO,CAAC,OAAO,CAAC;IAc/C;;;;;OAKG;oBACa,OAAO,CAAC,aAAa,CAAC,UAAU,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;EA2BxI"}
|