@corenel/harness 0.5.0 → 0.5.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.
@@ -1,6 +1,6 @@
1
- import type { AgentTool, IMemoryProvider, IKeyValueStore, ISearchProvider, ISessionStore, PermissionRequest, AskQuestion, AskAnswers, AgentEvent, PermissionDecision, DaemonRunActivity, DaemonRegistration, ProcInfo, RunRecordInfo, SessionInfo, SessionRepoSpec, SessionSnapshotInfo, CrewMemoryInfo } from '@corenel/protocol';
1
+ import type { AgentTool, IMemoryProvider, IKeyValueStore, ISearchProvider, ISessionStore, PermissionRequest, AskQuestion, AskAnswers, AgentEvent, PermissionDecision, DaemonRunActivity, DaemonRegistration, AgentPause, HostSummary, ProcInfo, RunRecordInfo, SessionInfo, SessionRepoSpec, SessionSnapshotInfo, CrewMemoryInfo } from '@corenel/protocol';
2
2
  import type { FileService } from '@corenel/protocol';
3
- import { type SidecarChannel, type SidecarInfo, type AcpPromptPart, type AcpModeInfo, type AcpStartOptions, type RoomOpenRequest, type RoomSummary } from '@corenel/protocol';
3
+ import { type SidecarChannel, type SidecarInfo, type AcpPromptPart, type AcpModeInfo, type AcpStartOptions, type RoomOpenRequest, type RoomSummary, type RoomFinding, type RoomFindingEdit } from '@corenel/protocol';
4
4
  /** The host's live capabilities a connected sidecar may proxy into. Only the ones
5
5
  * provided are reachable; a proxy call to a missing one is rejected. */
6
6
  export interface HostProviders {
@@ -120,15 +120,26 @@ export declare class SidecarHost {
120
120
  private roomSeq;
121
121
  private readonly roomOpenPending;
122
122
  private readonly roomListPending;
123
+ private pauseSeq;
124
+ private readonly pausePending;
125
+ private hostsSeq;
126
+ private readonly hostsPending;
123
127
  private readonly roomReadPending;
124
128
  private readonly roomAnswerPending;
125
129
  private readonly roomResumePending;
130
+ private readonly roomInterjectPending;
131
+ private readonly roomClosePending;
132
+ private readonly roomFindingsPending;
133
+ private readonly roomFindingEditPending;
126
134
  private sessionSeq;
127
135
  private readonly sessionPending;
128
136
  /** Per-session stream handlers, keyed by session because a session outlives
129
137
  * the request that started watching it. */
130
138
  private readonly sessionWatchers;
131
139
  private features;
140
+ /** The synced directory name the daemon echoed for THIS connection
141
+ * (`welcome.dirName`), or null against an older daemon that sends none. */
142
+ private dirName;
132
143
  private info;
133
144
  private readonly imported;
134
145
  private welcome;
@@ -373,6 +384,56 @@ export declare class SidecarHost {
373
384
  * and every room-* message is refused server-side; feature-detecting here means
374
385
  * the browser never sends one it already knows will be refused. */
375
386
  supportsRooms(): boolean;
387
+ /** True when the connected daemon HOLDS agent pauses. Feature-detected from
388
+ * the welcome, so a client offers "Pause" only where pausing would actually
389
+ * stop the agent rather than reporting a success the daemon ignores. */
390
+ supportsAgentPause(): boolean;
391
+ /** True when the connected daemon can report and reclaim its synced host
392
+ * directories. Feature-detected so a client offers a destructive control only
393
+ * where the daemon would actually honour it. */
394
+ supportsHostsAdmin(): boolean;
395
+ /** Every synced host directory this daemon holds. */
396
+ listHosts(): Promise<{
397
+ ok: true;
398
+ hosts: HostSummary[];
399
+ } | {
400
+ ok: false;
401
+ error: string;
402
+ }>;
403
+ /** Remove one synced tree AND its manifest entry. `ok: false` is the daemon's
404
+ * considered refusal -- a connected directory, this connection's own, or a
405
+ * removal that failed -- so it resolves rather than rejects; only a dropped
406
+ * connection rejects. Resolves with the COMPLETE set afterwards. */
407
+ forgetHost(dirName: string): Promise<{
408
+ ok: true;
409
+ hosts: HostSummary[];
410
+ } | {
411
+ ok: false;
412
+ error: string;
413
+ }>;
414
+ /** The synced directory name this daemon routes THIS connection's host sync
415
+ * into, or null against a daemon too old to say. Never a guess: a caller that
416
+ * gets null must fall back to deducing it, or offer nothing. */
417
+ syncDirName(): string | null;
418
+ /** Every pause this daemon is holding. */
419
+ listAgentPauses(): Promise<{
420
+ ok: true;
421
+ pauses: AgentPause[];
422
+ } | {
423
+ ok: false;
424
+ error: string;
425
+ }>;
426
+ /** Hold or release a pause on one owner's agent. `ok: false` is the daemon's
427
+ * considered refusal (it holds no pauses, or the ceiling is reached) -- a real
428
+ * answer, so it resolves rather than rejects; only a dropped connection
429
+ * rejects. Resolves with the COMPLETE set afterwards. */
430
+ setAgentPause(owner: string, agent: string, paused: boolean): Promise<{
431
+ ok: true;
432
+ pauses: AgentPause[];
433
+ } | {
434
+ ok: false;
435
+ error: string;
436
+ }>;
376
437
  /** Ask the daemon to open a room. `ok: false` here is the daemon's CONSIDERED
377
438
  * refusal (validation problems, or an unreachable participant) — a real answer,
378
439
  * not a transport failure, so it resolves rather than rejects. Only a dropped
@@ -417,14 +478,64 @@ export declare class SidecarHost {
417
478
  ok: false;
418
479
  error: string;
419
480
  }>;
420
- /** The human's answer for one room turn. */
421
- roomAnswer(roomId: string, participantId: string, text: string): Promise<{
481
+ /** The human's answer for one room turn.
482
+ *
483
+ * `addressed` is the participant this turn hands the floor to -- an id, already
484
+ * resolved against the room's membership by the caller. Omitted is an ordinary
485
+ * rotation turn, and is never sent as a field at all, so a daemon that predates
486
+ * the command sees exactly the message it always did. */
487
+ roomAnswer(roomId: string, participantId: string, text: string, addressed?: string): Promise<{
488
+ ok: true;
489
+ room: RoomSummary;
490
+ } | {
491
+ ok: false;
492
+ error: string;
493
+ }>;
494
+ /** Say something in a room whose floor is someone ELSE's.
495
+ *
496
+ * Not an answer: it appends to the transcript and moves nothing -- no turn is
497
+ * taken, the floor does not rotate, an outstanding hand-over is untouched.
498
+ * The next participant to speak reads it, which is the whole point. */
499
+ roomInterject(roomId: string, participantId: string, text: string): Promise<{
500
+ ok: true;
501
+ room: RoomSummary;
502
+ } | {
503
+ ok: false;
504
+ error: string;
505
+ }>;
506
+ /** End the room, on this person's word, whatever the rotation is doing.
507
+ *
508
+ * Idempotent: a room that is already closed answers with the close it already
509
+ * carries rather than recording a second one. */
510
+ roomClose(roomId: string, participantId: string, reason: string): Promise<{
422
511
  ok: true;
423
512
  room: RoomSummary;
424
513
  } | {
425
514
  ok: false;
426
515
  error: string;
427
516
  }>;
517
+ /** The room's living findings document -- what it has decided, as opposed to
518
+ * what was said (that is `roomRead`). A room that has recorded nothing answers
519
+ * with an empty document, which is a real answer, not an absence. */
520
+ roomFindings(roomId: string): Promise<{
521
+ ok: true;
522
+ findings: RoomFinding[];
523
+ } | {
524
+ ok: false;
525
+ error: string;
526
+ }>;
527
+ /** The person in the room recording, correcting or withdrawing ONE finding.
528
+ *
529
+ * Per-finding, never a whole-document write: a client that could replace the
530
+ * document would silently overwrite whatever an agent recorded between its
531
+ * read and its write. Answers with the document as it then stands. */
532
+ roomEditFinding(roomId: string, participantId: string, edit: RoomFindingEdit): Promise<{
533
+ ok: true;
534
+ findings: RoomFinding[];
535
+ } | {
536
+ ok: false;
537
+ error: string;
538
+ }>;
428
539
  /** Directory NAMES under `path`, or the declared areas themselves when `path` is
429
540
  * omitted. Names only: never files, contents or stats. Rejects with the sidecar's
430
541
  * message (e.g. outside every allowed area). */
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../sidecar/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../sidecar/host.ts"],"names":[],"mappings":"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"}
@@ -132,6 +132,30 @@ export class SidecarHost {
132
132
  writable: true,
133
133
  value: new Map()
134
134
  });
135
+ Object.defineProperty(this, "pauseSeq", {
136
+ enumerable: true,
137
+ configurable: true,
138
+ writable: true,
139
+ value: 0
140
+ });
141
+ Object.defineProperty(this, "pausePending", {
142
+ enumerable: true,
143
+ configurable: true,
144
+ writable: true,
145
+ value: new Map()
146
+ });
147
+ Object.defineProperty(this, "hostsSeq", {
148
+ enumerable: true,
149
+ configurable: true,
150
+ writable: true,
151
+ value: 0
152
+ });
153
+ Object.defineProperty(this, "hostsPending", {
154
+ enumerable: true,
155
+ configurable: true,
156
+ writable: true,
157
+ value: new Map()
158
+ });
135
159
  Object.defineProperty(this, "roomReadPending", {
136
160
  enumerable: true,
137
161
  configurable: true,
@@ -150,6 +174,30 @@ export class SidecarHost {
150
174
  writable: true,
151
175
  value: new Map()
152
176
  });
177
+ Object.defineProperty(this, "roomInterjectPending", {
178
+ enumerable: true,
179
+ configurable: true,
180
+ writable: true,
181
+ value: new Map()
182
+ });
183
+ Object.defineProperty(this, "roomClosePending", {
184
+ enumerable: true,
185
+ configurable: true,
186
+ writable: true,
187
+ value: new Map()
188
+ });
189
+ Object.defineProperty(this, "roomFindingsPending", {
190
+ enumerable: true,
191
+ configurable: true,
192
+ writable: true,
193
+ value: new Map()
194
+ });
195
+ Object.defineProperty(this, "roomFindingEditPending", {
196
+ enumerable: true,
197
+ configurable: true,
198
+ writable: true,
199
+ value: new Map()
200
+ });
153
201
  Object.defineProperty(this, "sessionSeq", {
154
202
  enumerable: true,
155
203
  configurable: true,
@@ -176,6 +224,14 @@ export class SidecarHost {
176
224
  writable: true,
177
225
  value: []
178
226
  });
227
+ /** The synced directory name the daemon echoed for THIS connection
228
+ * (`welcome.dirName`), or null against an older daemon that sends none. */
229
+ Object.defineProperty(this, "dirName", {
230
+ enumerable: true,
231
+ configurable: true,
232
+ writable: true,
233
+ value: null
234
+ });
179
235
  Object.defineProperty(this, "info", {
180
236
  enumerable: true,
181
237
  configurable: true,
@@ -274,6 +330,12 @@ export class SidecarHost {
274
330
  for (const p of this.roomListPending.values())
275
331
  p.reject(new Error(reason));
276
332
  this.roomListPending.clear();
333
+ for (const p of this.pausePending.values())
334
+ p.reject(new Error(reason));
335
+ this.pausePending.clear();
336
+ for (const p of this.hostsPending.values())
337
+ p.reject(new Error(reason));
338
+ this.hostsPending.clear();
277
339
  for (const p of this.roomReadPending.values())
278
340
  p.reject(new Error(reason));
279
341
  this.roomReadPending.clear();
@@ -283,6 +345,18 @@ export class SidecarHost {
283
345
  for (const p of this.roomResumePending.values())
284
346
  p.reject(new Error(reason));
285
347
  this.roomResumePending.clear();
348
+ for (const p of this.roomInterjectPending.values())
349
+ p.reject(new Error(reason));
350
+ this.roomInterjectPending.clear();
351
+ for (const p of this.roomClosePending.values())
352
+ p.reject(new Error(reason));
353
+ this.roomClosePending.clear();
354
+ for (const p of this.roomFindingsPending.values())
355
+ p.reject(new Error(reason));
356
+ this.roomFindingsPending.clear();
357
+ for (const p of this.roomFindingEditPending.values())
358
+ p.reject(new Error(reason));
359
+ this.roomFindingEditPending.clear();
286
360
  this.welcome?.reject(new Error(reason));
287
361
  this.welcome = null;
288
362
  this.ch.close();
@@ -291,6 +365,12 @@ export class SidecarHost {
291
365
  switch (m.t) {
292
366
  case 'welcome': {
293
367
  this.features = m.features ?? [];
368
+ // Runtime-validated like `info.id`/`info.name` next door: the welcome
369
+ // crossed the wire as `JSON.parse(...) as SidecarMsg`, so the declared
370
+ // `string` guarantees nothing, and this value decides which
371
+ // registrations a management surface treats as this browser's own.
372
+ // Anything malformed is dropped to "not told", never coerced.
373
+ this.dirName = typeof m.dirName === 'string' && m.dirName ? m.dirName : null;
294
374
  this.info = m.info ?? {};
295
375
  for (const decl of m.tools) {
296
376
  const tool = { ...decl, run: (args) => this.invoke(decl.name, args) };
@@ -606,6 +686,30 @@ export class SidecarHost {
606
686
  p.resolve(m.ok ? { ok: true, room: m.room } : { ok: false, problems: m.problems });
607
687
  return;
608
688
  }
689
+ case 'hosts-list-result':
690
+ case 'hosts-forget-result': {
691
+ // One pending map for both, for the same reason as the pause results
692
+ // below: each carries the COMPLETE set afterwards, so list and forget
693
+ // answer the same question.
694
+ const p = this.hostsPending.get(m.id);
695
+ if (!p)
696
+ return;
697
+ this.hostsPending.delete(m.id);
698
+ p.resolve(m.ok ? { ok: true, hosts: m.hosts } : { ok: false, error: m.error });
699
+ return;
700
+ }
701
+ case 'agent-pause-list-result':
702
+ case 'agent-pause-set-result': {
703
+ // One pending map for both: each result carries the COMPLETE set, so
704
+ // list and set answer the same question and a caller never has to know
705
+ // which one it asked.
706
+ const p = this.pausePending.get(m.id);
707
+ if (!p)
708
+ return;
709
+ this.pausePending.delete(m.id);
710
+ p.resolve(m.ok ? { ok: true, pauses: m.pauses } : { ok: false, error: m.error });
711
+ return;
712
+ }
609
713
  case 'room-list-result': {
610
714
  const p = this.roomListPending.get(m.id);
611
715
  if (!p)
@@ -638,6 +742,38 @@ export class SidecarHost {
638
742
  p.resolve(m.ok ? { ok: true, room: m.room } : { ok: false, error: m.error });
639
743
  return;
640
744
  }
745
+ case 'room-interject-result': {
746
+ const p = this.roomInterjectPending.get(m.id);
747
+ if (!p)
748
+ return;
749
+ this.roomInterjectPending.delete(m.id);
750
+ p.resolve(m.ok ? { ok: true, room: m.room } : { ok: false, error: m.error });
751
+ return;
752
+ }
753
+ case 'room-close-result': {
754
+ const p = this.roomClosePending.get(m.id);
755
+ if (!p)
756
+ return;
757
+ this.roomClosePending.delete(m.id);
758
+ p.resolve(m.ok ? { ok: true, room: m.room } : { ok: false, error: m.error });
759
+ return;
760
+ }
761
+ case 'room-findings-result': {
762
+ const p = this.roomFindingsPending.get(m.id);
763
+ if (!p)
764
+ return;
765
+ this.roomFindingsPending.delete(m.id);
766
+ p.resolve(m.ok ? { ok: true, findings: m.findings } : { ok: false, error: m.error });
767
+ return;
768
+ }
769
+ case 'room-finding-edit-result': {
770
+ const p = this.roomFindingEditPending.get(m.id);
771
+ if (!p)
772
+ return;
773
+ this.roomFindingEditPending.delete(m.id);
774
+ p.resolve(m.ok ? { ok: true, findings: m.findings } : { ok: false, error: m.error });
775
+ return;
776
+ }
641
777
  case 'room-progress': {
642
778
  this.opts.onRoomProgress?.(m.room);
643
779
  return;
@@ -1041,6 +1177,56 @@ export class SidecarHost {
1041
1177
  * and every room-* message is refused server-side; feature-detecting here means
1042
1178
  * the browser never sends one it already knows will be refused. */
1043
1179
  supportsRooms() { return this.features.includes('rooms'); }
1180
+ /** True when the connected daemon HOLDS agent pauses. Feature-detected from
1181
+ * the welcome, so a client offers "Pause" only where pausing would actually
1182
+ * stop the agent rather than reporting a success the daemon ignores. */
1183
+ supportsAgentPause() { return this.features.includes('agent-pause'); }
1184
+ /** True when the connected daemon can report and reclaim its synced host
1185
+ * directories. Feature-detected so a client offers a destructive control only
1186
+ * where the daemon would actually honour it. */
1187
+ supportsHostsAdmin() { return this.features.includes('hosts-admin'); }
1188
+ /** Every synced host directory this daemon holds. */
1189
+ listHosts() {
1190
+ const id = ++this.hostsSeq;
1191
+ return new Promise((resolve, reject) => {
1192
+ this.hostsPending.set(id, { resolve, reject });
1193
+ this.ch.send({ t: 'hosts-list', id });
1194
+ });
1195
+ }
1196
+ /** Remove one synced tree AND its manifest entry. `ok: false` is the daemon's
1197
+ * considered refusal -- a connected directory, this connection's own, or a
1198
+ * removal that failed -- so it resolves rather than rejects; only a dropped
1199
+ * connection rejects. Resolves with the COMPLETE set afterwards. */
1200
+ forgetHost(dirName) {
1201
+ const id = ++this.hostsSeq;
1202
+ return new Promise((resolve, reject) => {
1203
+ this.hostsPending.set(id, { resolve, reject });
1204
+ this.ch.send({ t: 'hosts-forget', id, dirName });
1205
+ });
1206
+ }
1207
+ /** The synced directory name this daemon routes THIS connection's host sync
1208
+ * into, or null against a daemon too old to say. Never a guess: a caller that
1209
+ * gets null must fall back to deducing it, or offer nothing. */
1210
+ syncDirName() { return this.dirName; }
1211
+ /** Every pause this daemon is holding. */
1212
+ listAgentPauses() {
1213
+ const id = ++this.pauseSeq;
1214
+ return new Promise((resolve, reject) => {
1215
+ this.pausePending.set(id, { resolve, reject });
1216
+ this.ch.send({ t: 'agent-pause-list', id });
1217
+ });
1218
+ }
1219
+ /** Hold or release a pause on one owner's agent. `ok: false` is the daemon's
1220
+ * considered refusal (it holds no pauses, or the ceiling is reached) -- a real
1221
+ * answer, so it resolves rather than rejects; only a dropped connection
1222
+ * rejects. Resolves with the COMPLETE set afterwards. */
1223
+ setAgentPause(owner, agent, paused) {
1224
+ const id = ++this.pauseSeq;
1225
+ return new Promise((resolve, reject) => {
1226
+ this.pausePending.set(id, { resolve, reject });
1227
+ this.ch.send({ t: 'agent-pause-set', id, owner, agent, paused });
1228
+ });
1229
+ }
1044
1230
  /** Ask the daemon to open a room. `ok: false` here is the daemon's CONSIDERED
1045
1231
  * refusal (validation problems, or an unreachable participant) — a real answer,
1046
1232
  * not a transport failure, so it resolves rather than rejects. Only a dropped
@@ -1083,12 +1269,62 @@ export class SidecarHost {
1083
1269
  this.ch.send({ t: 'room-resume', id, roomId });
1084
1270
  });
1085
1271
  }
1086
- /** The human's answer for one room turn. */
1087
- roomAnswer(roomId, participantId, text) {
1272
+ /** The human's answer for one room turn.
1273
+ *
1274
+ * `addressed` is the participant this turn hands the floor to -- an id, already
1275
+ * resolved against the room's membership by the caller. Omitted is an ordinary
1276
+ * rotation turn, and is never sent as a field at all, so a daemon that predates
1277
+ * the command sees exactly the message it always did. */
1278
+ roomAnswer(roomId, participantId, text, addressed) {
1088
1279
  const id = ++this.roomSeq;
1089
1280
  return new Promise((resolve, reject) => {
1090
1281
  this.roomAnswerPending.set(id, { resolve, reject });
1091
- this.ch.send({ t: 'room-answer', id, roomId, participantId, text });
1282
+ this.ch.send({ t: 'room-answer', id, roomId, participantId, text, ...(addressed ? { addressed } : {}) });
1283
+ });
1284
+ }
1285
+ /** Say something in a room whose floor is someone ELSE's.
1286
+ *
1287
+ * Not an answer: it appends to the transcript and moves nothing -- no turn is
1288
+ * taken, the floor does not rotate, an outstanding hand-over is untouched.
1289
+ * The next participant to speak reads it, which is the whole point. */
1290
+ roomInterject(roomId, participantId, text) {
1291
+ const id = ++this.roomSeq;
1292
+ return new Promise((resolve, reject) => {
1293
+ this.roomInterjectPending.set(id, { resolve, reject });
1294
+ this.ch.send({ t: 'room-interject', id, roomId, participantId, text });
1295
+ });
1296
+ }
1297
+ /** End the room, on this person's word, whatever the rotation is doing.
1298
+ *
1299
+ * Idempotent: a room that is already closed answers with the close it already
1300
+ * carries rather than recording a second one. */
1301
+ roomClose(roomId, participantId, reason) {
1302
+ const id = ++this.roomSeq;
1303
+ return new Promise((resolve, reject) => {
1304
+ this.roomClosePending.set(id, { resolve, reject });
1305
+ this.ch.send({ t: 'room-close', id, roomId, participantId, reason });
1306
+ });
1307
+ }
1308
+ /** The room's living findings document -- what it has decided, as opposed to
1309
+ * what was said (that is `roomRead`). A room that has recorded nothing answers
1310
+ * with an empty document, which is a real answer, not an absence. */
1311
+ roomFindings(roomId) {
1312
+ const id = ++this.roomSeq;
1313
+ return new Promise((resolve, reject) => {
1314
+ this.roomFindingsPending.set(id, { resolve, reject });
1315
+ this.ch.send({ t: 'room-findings', id, roomId });
1316
+ });
1317
+ }
1318
+ /** The person in the room recording, correcting or withdrawing ONE finding.
1319
+ *
1320
+ * Per-finding, never a whole-document write: a client that could replace the
1321
+ * document would silently overwrite whatever an agent recorded between its
1322
+ * read and its write. Answers with the document as it then stands. */
1323
+ roomEditFinding(roomId, participantId, edit) {
1324
+ const id = ++this.roomSeq;
1325
+ return new Promise((resolve, reject) => {
1326
+ this.roomFindingEditPending.set(id, { resolve, reject });
1327
+ this.ch.send({ t: 'room-finding-edit', id, roomId, participantId, edit });
1092
1328
  });
1093
1329
  }
1094
1330
  /** Directory NAMES under `path`, or the declared areas themselves when `path` is