borgmcp 5.5.0 → 5.7.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 +12 -0
- package/dist/claude.js.map +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +16 -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/hermes-plugin-install.d.ts +19 -0
- package/dist/hermes-plugin-install.d.ts.map +1 -0
- package/dist/hermes-plugin-install.js +131 -0
- package/dist/hermes-plugin-install.js.map +1 -0
- 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 +11 -0
- package/dist/representative-cmd.d.ts.map +1 -1
- package/dist/representative-cmd.js +48 -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 +310 -36
- package/hermes-plugin/borg-representative-push/__init__.py +743 -0
- package/hermes-plugin/borg-representative-push/plugin.yaml +39 -0
- package/package.json +3 -1
- package/src/claude.ts +12 -0
- package/src/cli-help.ts +16 -6
- package/src/docs-sections.ts +1 -1
- package/src/hermes-plugin-install.ts +147 -0
- 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 +52 -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
|
@@ -15,15 +15,19 @@
|
|
|
15
15
|
import { ErrorCode, type Role, type RosterDrone as ProtocolDrone, type EnrichedStreamEntry, type DocumentCitation } from 'borgmcp-shared/protocol';
|
|
16
16
|
import type { ActiveCube } from './cubes.js';
|
|
17
17
|
import { type RepresentativeBinding, type RepresentativeStore } from './representative-store.js';
|
|
18
|
+
import { type LocalServerCursor } from './local-server-cursor.js';
|
|
18
19
|
export declare const REPRESENTATIVE_MESSAGE_LIMIT_BYTES = 3000;
|
|
19
20
|
export declare const REPRESENTATIVE_DELIVERY_NOTE: string;
|
|
20
|
-
export type RepresentativeErrorCode = typeof ErrorCode.INVALID_INPUT | 'DECISION_REQUIRES_USER_AUTHORIZATION' | 'REQUEST_ID_CONFLICT' | 'AMBIGUOUS_SEND_UNRESOLVED' | 'SEND_REJECTED' | 'REPRESENTATIVE_OWNERSHIP_REQUIRED' | 'NOT_PREPARED' | 'SEAT_UNAVAILABLE' | 'BINDING_MISMATCH' | 'BINDING_CONFLICT' | 'COORDINATOR_NOT_FOUND' | 'COORDINATOR_AMBIGUOUS' | 'COORDINATOR_NOT_HUMAN_SEAT' | 'COORDINATOR_IS_SELF' | 'COORDINATOR_UNAVAILABLE' | 'REPRESENTATIVE_ROLE_NOT_PERMITTED' | 'REPRESENTATIVE_ROLE_MISMATCH' | 'NOT_A_COORDINATOR_REPLY';
|
|
21
|
+
export type RepresentativeErrorCode = typeof ErrorCode.INVALID_INPUT | 'DECISION_REQUIRES_USER_AUTHORIZATION' | 'REQUEST_ID_CONFLICT' | 'AMBIGUOUS_SEND_UNRESOLVED' | 'SEND_REJECTED' | 'REPRESENTATIVE_OWNERSHIP_REQUIRED' | 'NOT_PREPARED' | 'SEAT_UNAVAILABLE' | 'BINDING_MISMATCH' | 'BINDING_CONFLICT' | 'COORDINATOR_NOT_FOUND' | 'COORDINATOR_AMBIGUOUS' | 'COORDINATOR_NOT_HUMAN_SEAT' | 'COORDINATOR_IS_SELF' | 'COORDINATOR_UNAVAILABLE' | 'REPRESENTATIVE_ROLE_NOT_PERMITTED' | 'REPRESENTATIVE_ROLE_MISMATCH' | 'NOT_A_COORDINATOR_REPLY' | 'REPRESENTATIVE_DELIVER_UNKNOWN_ENTRY' | 'REPRESENTATIVE_READ_OVERSIZE';
|
|
21
22
|
export interface RepresentativeErrorDetails {
|
|
22
23
|
owner?: import('./stream-owner.js').StreamOwnershipSnapshot;
|
|
23
24
|
request_id?: string;
|
|
24
25
|
cause_code?: string;
|
|
25
26
|
cause_message?: string;
|
|
26
27
|
recovery?: string;
|
|
28
|
+
entry_id?: string;
|
|
29
|
+
measured_bytes?: number;
|
|
30
|
+
bound?: number;
|
|
27
31
|
}
|
|
28
32
|
export declare class RepresentativeError extends Error {
|
|
29
33
|
readonly code: RepresentativeErrorCode;
|
|
@@ -65,14 +69,15 @@ export interface RepresentativeBackend {
|
|
|
65
69
|
}>;
|
|
66
70
|
}>;
|
|
67
71
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* out. `limit` is a page-size hint: the client's digest mode may return more.
|
|
72
|
+
* One stateless page of the cube log strictly after an exact (created_at, id)
|
|
73
|
+
* cursor, ascending. Reads and advances no unread cursor; never digest mode.
|
|
71
74
|
*/
|
|
72
|
-
|
|
75
|
+
readAfter(cursor: LocalServerCursor | null, limit: number, continuationGuard?: () => Promise<void>): Promise<{
|
|
73
76
|
entries: LogEntry[];
|
|
74
77
|
has_more?: boolean;
|
|
75
78
|
}>;
|
|
79
|
+
/** This seat's client-owned unread cursor, read only; the slice 2 migration input. */
|
|
80
|
+
unreadCursor(): Promise<LocalServerCursor | null>;
|
|
76
81
|
readEntry(entryId: string): Promise<{
|
|
77
82
|
entry: LogEntry;
|
|
78
83
|
}>;
|
|
@@ -83,6 +88,8 @@ export interface RepresentativeContext {
|
|
|
83
88
|
backend: RepresentativeBackend;
|
|
84
89
|
store: RepresentativeStore;
|
|
85
90
|
now?: () => Date;
|
|
91
|
+
/** Checked immediately before each private delivery-state write (the tools lease in MCP). */
|
|
92
|
+
guard?: () => Promise<void>;
|
|
86
93
|
}
|
|
87
94
|
/** Real backend: the existing seat-scoped client calls for one hydrated seat. */
|
|
88
95
|
export declare function createSeatBackend(active: ActiveCube): Promise<RepresentativeBackend>;
|
|
@@ -107,6 +114,11 @@ export declare function resolveCoordinator(roster: {
|
|
|
107
114
|
drone: RosterDrone;
|
|
108
115
|
role: RosterRole;
|
|
109
116
|
};
|
|
117
|
+
/** Re-prove, against the live cube, that this seat and the bound Coordinator are still the bound ones. */
|
|
118
|
+
export declare function verifyLiveBinding(ctx: RepresentativeContext): Promise<{
|
|
119
|
+
coordinator: RosterDrone;
|
|
120
|
+
self: RosterDrone;
|
|
121
|
+
}>;
|
|
110
122
|
export type RepresentativeKind = 'request' | 'question' | 'decision';
|
|
111
123
|
export type RepresentativeAuthorization = 'user_authorized' | 'model_advice';
|
|
112
124
|
export interface RepresentativeSendInput {
|
|
@@ -139,7 +151,9 @@ export interface SendFailureCause {
|
|
|
139
151
|
/** Sanitized, bounded underlying message. Never a credential: client errors carry none. */
|
|
140
152
|
message: string;
|
|
141
153
|
}
|
|
142
|
-
export declare function sendRepresentativeMessage(ctx: RepresentativeContext, raw: unknown): Promise<RepresentativeSendResult
|
|
154
|
+
export declare function sendRepresentativeMessage(ctx: RepresentativeContext, raw: unknown): Promise<RepresentativeSendResult & {
|
|
155
|
+
binding_fingerprint: string;
|
|
156
|
+
}>;
|
|
143
157
|
export interface RepresentativeReply {
|
|
144
158
|
documents?: DocumentCitation[];
|
|
145
159
|
document_delivery?: string;
|
|
@@ -151,13 +165,39 @@ export interface RepresentativeReply {
|
|
|
151
165
|
/** A ledger request id quoted in the reply text. Textual correlation only. */
|
|
152
166
|
in_reply_to: string | null;
|
|
153
167
|
message: string;
|
|
168
|
+
/** This entry alone exceeds max_bytes; it is returned whole and alone. */
|
|
169
|
+
oversize?: true;
|
|
170
|
+
/** Oversize and still above the envelope bound: citations were reduced to ids. */
|
|
171
|
+
documents_reduced?: true;
|
|
154
172
|
}
|
|
173
|
+
/** The exact text an MCP tool result carries; `max_bytes` measures this. */
|
|
174
|
+
export declare function serializeRepresentativeResult(body: unknown): string;
|
|
175
|
+
/**
|
|
176
|
+
* A serialized read result never exceeds max(max_bytes, this). An oversize
|
|
177
|
+
* entry is returned alone; if it still exceeds the bound, its citations are
|
|
178
|
+
* reduced to ids. Message text is never cut: the server caps a post (4096
|
|
179
|
+
* bytes by default), so the reduced entry fits.
|
|
180
|
+
*/
|
|
181
|
+
export declare const REPRESENTATIVE_ENVELOPE_FLOOR = 16384;
|
|
155
182
|
export declare function readRepresentativeReplies(ctx: RepresentativeContext, raw: unknown): Promise<{
|
|
156
183
|
replies: RepresentativeReply[];
|
|
157
|
-
|
|
184
|
+
checkpoint: {
|
|
185
|
+
entry_id: string | null;
|
|
186
|
+
created_at: string | null;
|
|
187
|
+
};
|
|
158
188
|
has_more: boolean;
|
|
189
|
+
ignored_entries: number;
|
|
190
|
+
binding_fingerprint: string;
|
|
159
191
|
delivery: string;
|
|
160
192
|
}>;
|
|
193
|
+
export declare function deliverRepresentativeReplies(ctx: RepresentativeContext, raw: unknown): Promise<{
|
|
194
|
+
checkpoint: {
|
|
195
|
+
entry_id: string | null;
|
|
196
|
+
created_at: string | null;
|
|
197
|
+
};
|
|
198
|
+
advanced: boolean;
|
|
199
|
+
binding_fingerprint: string;
|
|
200
|
+
}>;
|
|
161
201
|
export declare function ackRepresentativeReply(ctx: RepresentativeContext, raw: unknown): Promise<{
|
|
162
202
|
acknowledged: string;
|
|
163
203
|
}>;
|
|
@@ -192,6 +232,12 @@ export declare function representativeStatus(ctx: RepresentativeContext): Promis
|
|
|
192
232
|
}>;
|
|
193
233
|
delivery: string;
|
|
194
234
|
authority: string;
|
|
235
|
+
binding_fingerprint: string;
|
|
236
|
+
checkpoint_problem?: {
|
|
237
|
+
code: string;
|
|
238
|
+
message: string;
|
|
239
|
+
};
|
|
240
|
+
envelope_floor: number;
|
|
195
241
|
}>;
|
|
196
242
|
export {};
|
|
197
243
|
//# sourceMappingURL=representative-core.d.ts.map
|
|
@@ -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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"}
|