@corenel/harness 0.6.0 → 0.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.
Files changed (55) hide show
  1. package/dist/core/factFile.d.ts +14 -4
  2. package/dist/core/factFile.d.ts.map +1 -1
  3. package/dist/core/factFile.js +34 -13
  4. package/dist/core/factFile.js.map +1 -1
  5. package/dist/dag/executeNode.d.ts +4 -1
  6. package/dist/dag/executeNode.d.ts.map +1 -1
  7. package/dist/dag/executeNode.js +19 -5
  8. package/dist/dag/executeNode.js.map +1 -1
  9. package/dist/memory/bm25.d.ts +20 -0
  10. package/dist/memory/bm25.d.ts.map +1 -0
  11. package/dist/memory/bm25.js +73 -0
  12. package/dist/memory/bm25.js.map +1 -0
  13. package/dist/memory/manifest.d.ts +62 -0
  14. package/dist/memory/manifest.d.ts.map +1 -0
  15. package/dist/memory/manifest.js +54 -0
  16. package/dist/memory/manifest.js.map +1 -0
  17. package/dist/memory/store.d.ts +61 -0
  18. package/dist/memory/store.d.ts.map +1 -0
  19. package/dist/memory/store.js +386 -0
  20. package/dist/memory/store.js.map +1 -0
  21. package/dist/memory/tier.d.ts +38 -0
  22. package/dist/memory/tier.d.ts.map +1 -0
  23. package/dist/memory/tier.js +52 -0
  24. package/dist/memory/tier.js.map +1 -0
  25. package/dist/prompts/config.d.ts +52 -3
  26. package/dist/prompts/config.d.ts.map +1 -1
  27. package/dist/prompts/config.js +175 -16
  28. package/dist/prompts/config.js.map +1 -1
  29. package/dist/prompts/host.d.ts +19 -0
  30. package/dist/prompts/host.d.ts.map +1 -1
  31. package/dist/prompts/host.js.map +1 -1
  32. package/dist/prompts/library/defaults.generated.d.ts.map +1 -1
  33. package/dist/prompts/library/defaults.generated.js +16 -0
  34. package/dist/prompts/library/defaults.generated.js.map +1 -1
  35. package/dist/prompts/syncConfig.d.ts +52 -0
  36. package/dist/prompts/syncConfig.d.ts.map +1 -0
  37. package/dist/prompts/syncConfig.js +132 -0
  38. package/dist/prompts/syncConfig.js.map +1 -0
  39. package/dist/sidecar/host.d.ts +56 -2
  40. package/dist/sidecar/host.d.ts.map +1 -1
  41. package/dist/sidecar/host.js +152 -1
  42. package/dist/sidecar/host.js.map +1 -1
  43. package/dist/sidecar/server.d.ts +130 -1
  44. package/dist/sidecar/server.d.ts.map +1 -1
  45. package/dist/sidecar/server.js +205 -5
  46. package/dist/sidecar/server.js.map +1 -1
  47. package/dist/tools/builtins.d.ts +2 -0
  48. package/dist/tools/builtins.d.ts.map +1 -1
  49. package/dist/tools/builtins.js +63 -14
  50. package/dist/tools/builtins.js.map +1 -1
  51. package/dist/tools/namespaces.d.ts +22 -4
  52. package/dist/tools/namespaces.d.ts.map +1 -1
  53. package/dist/tools/namespaces.js +49 -8
  54. package/dist/tools/namespaces.js.map +1 -1
  55. package/package.json +2 -2
@@ -0,0 +1,132 @@
1
+ /* CONFIG A SYNCHRONOUS CALLER CAN READ.
2
+ *
3
+ * Prompts live in the config workspace so a user can override them, and
4
+ * `readConfig` is async because a workspace read is. But a great deal of this
5
+ * codebase builds prompt text synchronously — `buildSystemExtra` has a dozen
6
+ * call sites including a React `useMemo` and the node CLI, `GUARDRAIL_PRESETS`
7
+ * is an exported const, `roomSystemBlock` is joined inline. Every attempt to
8
+ * move one of those prompts into config hits the same wall.
9
+ *
10
+ * The alternatives were worse. Making the builders async means a refactor
11
+ * across six modules plus a loading state in a preview component; passing
12
+ * resolved text in from whichever caller can await means the sync callers keep
13
+ * rendering the SHIPPED default while the real run uses the user's override —
14
+ * a preview that lies about what will run.
15
+ *
16
+ * So: a small cache of the overrides that sync callers need, primed once and
17
+ * refreshed when the config changes.
18
+ *
19
+ * WHAT IT IS NOT. It does not cache all 44 shipped defaults. On a sidecar host
20
+ * the config workspace is another machine, and priming everything would be 44
21
+ * round trips at boot to answer questions nobody asked. Callers REGISTER the
22
+ * paths they need synchronously — a bounded set, read in one pass.
23
+ *
24
+ * THE ANSWER BEFORE PRIMING IS THE SHIPPED DEFAULT, never empty. A prompt that
25
+ * silently loses its instructions is far worse than one that is briefly not
26
+ * yet overridden, and "briefly" is bounded by priming happening at boot.
27
+ */
28
+ import { CONFIG_DEFAULTS } from './library/index.js';
29
+ /** Paths whose overrides must be readable synchronously. */
30
+ const registered = new Set();
31
+ /** path -> the user's override. Absent means "use the shipped default", which
32
+ * is also what an unprimed cache and a failed read both mean. */
33
+ let overrides = new Map();
34
+ /** Which config workspace `overrides` describes, so a host switch cannot serve
35
+ * one machine's overrides while the app is operating as another. */
36
+ let primedFor = null;
37
+ const norm = (p) => p.replace(/^\/+/, '');
38
+ /**
39
+ * Declare that `path` will be read synchronously. Idempotent; safe at module
40
+ * scope. Registering does not read anything — `primeSyncConfig` does.
41
+ */
42
+ export function registerSyncConfig(path) {
43
+ const p = norm(path);
44
+ registered.add(p);
45
+ return p;
46
+ }
47
+ /** Every path registered so far — the set `primeSyncConfig` will read. */
48
+ export function syncConfigPaths() {
49
+ return [...registered];
50
+ }
51
+ /**
52
+ * The user's override for `path`, or the shipped default.
53
+ *
54
+ * Never throws and never returns undefined for a path that ships a default:
55
+ * the callers are prompt builders, and the failure mode this exists to prevent
56
+ * is an agent running with part of its instructions missing.
57
+ */
58
+ export function readConfigSync(path) {
59
+ const p = norm(path);
60
+ const hit = overrides.get(p);
61
+ return hit ?? CONFIG_DEFAULTS[p] ?? '';
62
+ }
63
+ /** Whether the cache currently describes `cacheId`'s overrides. */
64
+ export function syncConfigPrimed(cacheId) {
65
+ return primedFor !== null && primedFor === cacheId;
66
+ }
67
+ /**
68
+ * Read every registered path from `read`, and serve those as overrides from now
69
+ * on. `cacheId` identifies the workspace they came from.
70
+ *
71
+ * A read that fails or comes back empty leaves the path on its shipped default:
72
+ * a config workspace that has never been seeded is the ordinary case on a fresh
73
+ * profile, not an error. Priming is therefore safe to call before seeding, and
74
+ * again after.
75
+ */
76
+ export async function primeSyncConfig(cacheId, read) {
77
+ const next = new Map();
78
+ await Promise.all([...registered].map(async (p) => {
79
+ try {
80
+ const text = await read(p);
81
+ // An empty file is not an override. Writing one would blank a prompt,
82
+ // and a user who wants no prompt has `resetConfig`/deletion for that.
83
+ if (text && text.trim())
84
+ next.set(p, text);
85
+ }
86
+ catch { /* unreadable: the shipped default stands */ }
87
+ }));
88
+ overrides = next;
89
+ primedFor = cacheId;
90
+ }
91
+ /** Drop every override — the shipped defaults answer until the next prime.
92
+ *
93
+ * Called when the config workspace changes identity (a host switch). Serving
94
+ * the previous machine's overrides afterwards would put one daemon's prompts
95
+ * into another's runs. */
96
+ export function clearSyncConfig() {
97
+ overrides = new Map();
98
+ primedFor = null;
99
+ }
100
+ /** Strip a leading `---` frontmatter block. The fragments this serves declare
101
+ * their parameters the same way every other config prompt does; only the body
102
+ * is prompt text. */
103
+ function body(src) {
104
+ if (!src.startsWith('---'))
105
+ return src;
106
+ const end = src.indexOf('\n---', 3);
107
+ if (end === -1)
108
+ return src;
109
+ const after = src.indexOf('\n', end + 1);
110
+ return after === -1 ? '' : src.slice(after + 1);
111
+ }
112
+ /**
113
+ * A registered config fragment, rendered with `params`.
114
+ *
115
+ * SUBSTITUTION ONLY — `{{ name }}` and nothing else. The async path compiles
116
+ * config prompts with @prompd/core's full Nunjucks engine; that engine is
117
+ * async, which is the entire reason this module exists, so it cannot be used
118
+ * here. A user who writes `{% if %}` into one of these fragments will see it
119
+ * rendered literally.
120
+ *
121
+ * That is a real limitation and it is why these fragments are kept small and
122
+ * their conditional text is computed by the caller and passed IN as a
123
+ * parameter (see the self-direction block's `consequence`). Anything that
124
+ * genuinely needs logic belongs in an async-composed prompt, not here.
125
+ *
126
+ * An unknown placeholder is left ALONE rather than blanked: a typo in an
127
+ * override should be visible in the prompt, not silently delete a sentence.
128
+ */
129
+ export function readConfigSyncRendered(path, params = {}) {
130
+ return body(readConfigSync(path)).replace(/\{\{\s*([A-Za-z_][A-Za-z0-9_]*)\s*\}\}/g, (whole, key) => (key in params ? params[key] : whole)).trim();
131
+ }
132
+ //# sourceMappingURL=syncConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncConfig.js","sourceRoot":"","sources":["../../prompts/syncConfig.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
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';
1
+ import type { AgentTool, IMemoryProvider, IKeyValueStore, ISearchProvider, ISessionStore, PermissionRequest, AskQuestion, AskAnswers, AgentEvent, PermissionDecision, DaemonRunActivity, DaemonRegistration, AgentPause, HostSummary, ProcInfo, RunRecordInfo, SessionInfo, SessionRepoSpec, SessionSnapshotInfo, CrewMemoryInfo, SidecarConfigEntry } 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, type RoomFinding, type RoomFindingEdit } from '@corenel/protocol';
3
+ import { type SidecarChannel, type SidecarMsg, 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 {
@@ -35,6 +35,13 @@ export interface SidecarHostOptions {
35
35
  * sidecar records no host entry for this connection. */
36
36
  clientId?: string;
37
37
  clientName?: string;
38
+ /** Identifiers this client is SIGNED IN AS -- its account id and email, say.
39
+ * Sent in `hello` so a daemon can file every origin the same person pairs
40
+ * from under ONE synced directory instead of one per origin. They are an
41
+ * unverified claim and a daemon must treat them as one (see `hello` in
42
+ * sidecar.ts); this end only carries them. Additive: omitting them keeps the
43
+ * per-clientId behaviour every daemon had before. */
44
+ accounts?: string[];
38
45
  /** The host's live stores. Only the ones provided are reachable; a proxy call
39
46
  * to a missing provider is rejected. */
40
47
  providers: HostProviders;
@@ -109,6 +116,8 @@ export declare class SidecarHost {
109
116
  private readonly acpPending;
110
117
  private syncSeq;
111
118
  private readonly syncPending;
119
+ private configSeq;
120
+ private readonly configPending;
112
121
  private rootsSeq;
113
122
  private readonly rootsPending;
114
123
  private procSeq;
@@ -136,6 +145,13 @@ export declare class SidecarHost {
136
145
  /** Per-session stream handlers, keyed by session because a session outlives
137
146
  * the request that started watching it. */
138
147
  private readonly sessionWatchers;
148
+ private mcpSeq;
149
+ private readonly mcpListPending;
150
+ /** `mcp-result`/`mcp-error` share this map: BOTH are answers to an `mcp-call`,
151
+ * never a transport failure -- a policy refusal is `ok: false` here, resolved
152
+ * (not rejected), so the caller (mcpTools.ts) can surface it as the tool's own
153
+ * result rather than throw and kill the model's turn. */
154
+ private readonly mcpCallPending;
139
155
  private features;
140
156
  /** The synced directory name the daemon echoed for THIS connection
141
157
  * (`welcome.dirName`), or null against an older daemon that sends none. */
@@ -375,6 +391,21 @@ export declare class SidecarHost {
375
391
  * confining `path` to definition, non-state paths BEFORE calling this --
376
392
  * this method has no opinion on what `path` is. */
377
393
  hostSyncDelete(path: string): Promise<void>;
394
+ /** True when this daemon serves its OWN Harness Config (`config-*`). Feature-
395
+ * detected from the welcome, so a client standing on a daemon too old to serve
396
+ * one says the config is unreachable instead of sending a message that will be
397
+ * refused, or worse, showing its own copy as though it were the daemon's. */
398
+ supportsConfig(): boolean;
399
+ /** Entries of the daemon's Harness Config under `path` ('' = its root). */
400
+ configList(path: string, depth?: number): Promise<SidecarConfigEntry[]>;
401
+ /** One config file's text. */
402
+ configRead(path: string): Promise<string>;
403
+ /** Write one config file whole. The daemon re-checks `path` against its own
404
+ * allowlist; a refusal arrives as a rejection carrying the daemon's reason. */
405
+ configWrite(path: string, content: string): Promise<void>;
406
+ /** Delete one config file or subtree (recursive, idempotent). */
407
+ configDelete(path: string): Promise<void>;
408
+ private configCall;
378
409
  /** True when the operator started the sidecar with --allow-add-under, so a client
379
410
  * may add a working directory this session. Feature-detected from the welcome --
380
411
  * an older sidecar simply never advertises it. */
@@ -392,6 +423,29 @@ export declare class SidecarHost {
392
423
  * directories. Feature-detected so a client offers a destructive control only
393
424
  * where the daemon would actually honour it. */
394
425
  supportsHostsAdmin(): boolean;
426
+ /** Whether the connected daemon serves an MCP surface at all. `mcp-list`
427
+ * answers an empty list either way (see sidecar.ts), so this is advisory --
428
+ * a caller uses it to decide whether to bother asking, not as a gate. */
429
+ supportsMcp(): boolean;
430
+ /** List the MCP tools this daemon currently exposes, as `mcp:<server>/<tool>`
431
+ * addresses -- never a bespoke wire id (see mcpToolNames.ts). An empty list is
432
+ * itself the honest answer for "no MCP servers configured" as much as for "not
433
+ * authenticated yet"; there is no separate error arm to distinguish them. */
434
+ mcpList(): Promise<Extract<SidecarMsg, {
435
+ t: 'mcp-tools';
436
+ }>['tools']>;
437
+ /** Call one MCP tool by address. THE GATE IS SERVER-SIDE (see sidecar.ts): a
438
+ * refusal comes back as `mcp-error` and resolves here as `{ ok: false }`,
439
+ * never a throw -- only a transport failure (the connection dropping
440
+ * mid-call) rejects the returned promise. */
441
+ mcpCall(address: string, args: unknown): Promise<{
442
+ ok: true;
443
+ content: unknown;
444
+ isError: boolean;
445
+ } | {
446
+ ok: false;
447
+ error: string;
448
+ }>;
395
449
  /** Every synced host directory this daemon holds. */
396
450
  listHosts(): Promise<{
397
451
  ok: true;
@@ -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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"}
@@ -81,6 +81,18 @@ export class SidecarHost {
81
81
  writable: true,
82
82
  value: new Map()
83
83
  });
84
+ Object.defineProperty(this, "configSeq", {
85
+ enumerable: true,
86
+ configurable: true,
87
+ writable: true,
88
+ value: 0
89
+ });
90
+ Object.defineProperty(this, "configPending", {
91
+ enumerable: true,
92
+ configurable: true,
93
+ writable: true,
94
+ value: new Map()
95
+ });
84
96
  Object.defineProperty(this, "rootsSeq", {
85
97
  enumerable: true,
86
98
  configurable: true,
@@ -218,6 +230,28 @@ export class SidecarHost {
218
230
  writable: true,
219
231
  value: new Map()
220
232
  });
233
+ Object.defineProperty(this, "mcpSeq", {
234
+ enumerable: true,
235
+ configurable: true,
236
+ writable: true,
237
+ value: 0
238
+ });
239
+ Object.defineProperty(this, "mcpListPending", {
240
+ enumerable: true,
241
+ configurable: true,
242
+ writable: true,
243
+ value: new Map()
244
+ });
245
+ /** `mcp-result`/`mcp-error` share this map: BOTH are answers to an `mcp-call`,
246
+ * never a transport failure -- a policy refusal is `ok: false` here, resolved
247
+ * (not rejected), so the caller (mcpTools.ts) can surface it as the tool's own
248
+ * result rather than throw and kill the model's turn. */
249
+ Object.defineProperty(this, "mcpCallPending", {
250
+ enumerable: true,
251
+ configurable: true,
252
+ writable: true,
253
+ value: new Map()
254
+ });
221
255
  Object.defineProperty(this, "features", {
222
256
  enumerable: true,
223
257
  configurable: true,
@@ -284,6 +318,7 @@ export class SidecarHost {
284
318
  ...(this.opts.stateDir ? { stateDir: this.opts.stateDir } : {}),
285
319
  ...(this.opts.clientId ? { clientId: this.opts.clientId } : {}),
286
320
  ...(this.opts.clientName ? { clientName: this.opts.clientName } : {}),
321
+ ...(this.opts.accounts?.length ? { accounts: this.opts.accounts } : {}),
287
322
  });
288
323
  });
289
324
  }
@@ -307,6 +342,9 @@ export class SidecarHost {
307
342
  for (const p of this.syncPending.values())
308
343
  p.reject(new Error(reason));
309
344
  this.syncPending.clear();
345
+ for (const p of this.configPending.values())
346
+ p.reject(new Error(reason));
347
+ this.configPending.clear();
310
348
  for (const p of this.rootsPending.values())
311
349
  p.reject(new Error(reason));
312
350
  this.rootsPending.clear();
@@ -357,6 +395,16 @@ export class SidecarHost {
357
395
  for (const p of this.roomFindingEditPending.values())
358
396
  p.reject(new Error(reason));
359
397
  this.roomFindingEditPending.clear();
398
+ // A drop mid-list or mid-call IS a transport failure (unlike a `mcp-error`
399
+ // answer, which resolves `ok: false` above) -- mcpTools.ts's sync already
400
+ // reacts to the disconnect itself, so this only needs to settle whatever
401
+ // was left hanging rather than leave a caller awaiting forever.
402
+ for (const p of this.mcpListPending.values())
403
+ p.reject(new Error(reason));
404
+ this.mcpListPending.clear();
405
+ for (const p of this.mcpCallPending.values())
406
+ p.reject(new Error(reason));
407
+ this.mcpCallPending.clear();
360
408
  this.welcome?.reject(new Error(reason));
361
409
  this.welcome = null;
362
410
  this.ch.close();
@@ -501,6 +549,17 @@ export class SidecarHost {
501
549
  p.reject(new Error(m.error || 'run failed'));
502
550
  return;
503
551
  }
552
+ case 'config-result': {
553
+ const p = this.configPending.get(m.id);
554
+ if (!p)
555
+ return;
556
+ this.configPending.delete(m.id);
557
+ if (m.ok)
558
+ p.resolve({ entries: m.entries, content: m.content });
559
+ else
560
+ p.reject(new Error(m.error || 'harness config call failed'));
561
+ return;
562
+ }
504
563
  case 'host-sync-result': {
505
564
  const p = this.syncPending.get(m.id);
506
565
  if (!p)
@@ -650,6 +709,33 @@ export class SidecarHost {
650
709
  p.resolve(m.usage);
651
710
  return;
652
711
  }
712
+ case 'mcp-tools': {
713
+ const p = this.mcpListPending.get(m.id);
714
+ if (!p)
715
+ return;
716
+ this.mcpListPending.delete(m.id);
717
+ p.resolve(m.tools);
718
+ return;
719
+ }
720
+ case 'mcp-result': {
721
+ const p = this.mcpCallPending.get(m.id);
722
+ if (!p)
723
+ return;
724
+ this.mcpCallPending.delete(m.id);
725
+ p.resolve({ ok: true, content: m.content, isError: m.isError });
726
+ return;
727
+ }
728
+ case 'mcp-error': {
729
+ // Only ever an answer to `mcp-call` (see sidecar.ts's module comment:
730
+ // `mcp-list` has one response shape, never an error arm), so this map
731
+ // is the only one that could be waiting on this id.
732
+ const p = this.mcpCallPending.get(m.id);
733
+ if (!p)
734
+ return;
735
+ this.mcpCallPending.delete(m.id);
736
+ p.resolve({ ok: false, error: m.error });
737
+ return;
738
+ }
653
739
  case 'session-ok': {
654
740
  const p = this.sessionPending.get(m.id);
655
741
  if (!p)
@@ -1168,6 +1254,35 @@ export class SidecarHost {
1168
1254
  this.ch.send({ t: 'host-sync-delete', id, path });
1169
1255
  });
1170
1256
  }
1257
+ /** True when this daemon serves its OWN Harness Config (`config-*`). Feature-
1258
+ * detected from the welcome, so a client standing on a daemon too old to serve
1259
+ * one says the config is unreachable instead of sending a message that will be
1260
+ * refused, or worse, showing its own copy as though it were the daemon's. */
1261
+ supportsConfig() { return this.features.includes('config'); }
1262
+ /** Entries of the daemon's Harness Config under `path` ('' = its root). */
1263
+ configList(path, depth) {
1264
+ return this.configCall({ t: 'config-list', id: ++this.configSeq, path, ...(depth === undefined ? {} : { depth }) })
1265
+ .then((r) => r.entries ?? []);
1266
+ }
1267
+ /** One config file's text. */
1268
+ configRead(path) {
1269
+ return this.configCall({ t: 'config-read', id: ++this.configSeq, path }).then((r) => r.content ?? '');
1270
+ }
1271
+ /** Write one config file whole. The daemon re-checks `path` against its own
1272
+ * allowlist; a refusal arrives as a rejection carrying the daemon's reason. */
1273
+ configWrite(path, content) {
1274
+ return this.configCall({ t: 'config-write', id: ++this.configSeq, path, content }).then(() => { });
1275
+ }
1276
+ /** Delete one config file or subtree (recursive, idempotent). */
1277
+ configDelete(path) {
1278
+ return this.configCall({ t: 'config-delete', id: ++this.configSeq, path }).then(() => { });
1279
+ }
1280
+ configCall(msg) {
1281
+ return new Promise((resolve, reject) => {
1282
+ this.configPending.set(msg.id, { resolve, reject });
1283
+ this.ch.send(msg);
1284
+ });
1285
+ }
1171
1286
  /** True when the operator started the sidecar with --allow-add-under, so a client
1172
1287
  * may add a working directory this session. Feature-detected from the welcome --
1173
1288
  * an older sidecar simply never advertises it. */
@@ -1185,6 +1300,32 @@ export class SidecarHost {
1185
1300
  * directories. Feature-detected so a client offers a destructive control only
1186
1301
  * where the daemon would actually honour it. */
1187
1302
  supportsHostsAdmin() { return this.features.includes('hosts-admin'); }
1303
+ /** Whether the connected daemon serves an MCP surface at all. `mcp-list`
1304
+ * answers an empty list either way (see sidecar.ts), so this is advisory --
1305
+ * a caller uses it to decide whether to bother asking, not as a gate. */
1306
+ supportsMcp() { return this.features.includes('mcp'); }
1307
+ /** List the MCP tools this daemon currently exposes, as `mcp:<server>/<tool>`
1308
+ * addresses -- never a bespoke wire id (see mcpToolNames.ts). An empty list is
1309
+ * itself the honest answer for "no MCP servers configured" as much as for "not
1310
+ * authenticated yet"; there is no separate error arm to distinguish them. */
1311
+ mcpList() {
1312
+ const id = ++this.mcpSeq;
1313
+ return new Promise((resolve, reject) => {
1314
+ this.mcpListPending.set(id, { resolve, reject });
1315
+ this.ch.send({ t: 'mcp-list', id });
1316
+ });
1317
+ }
1318
+ /** Call one MCP tool by address. THE GATE IS SERVER-SIDE (see sidecar.ts): a
1319
+ * refusal comes back as `mcp-error` and resolves here as `{ ok: false }`,
1320
+ * never a throw -- only a transport failure (the connection dropping
1321
+ * mid-call) rejects the returned promise. */
1322
+ mcpCall(address, args) {
1323
+ const id = ++this.mcpSeq;
1324
+ return new Promise((resolve, reject) => {
1325
+ this.mcpCallPending.set(id, { resolve, reject });
1326
+ this.ch.send({ t: 'mcp-call', id, address, args });
1327
+ });
1328
+ }
1188
1329
  /** Every synced host directory this daemon holds. */
1189
1330
  listHosts() {
1190
1331
  const id = ++this.hostsSeq;
@@ -1364,8 +1505,18 @@ export class SidecarHost {
1364
1505
  throw new Error(`method ${m.provider}.${m.method} is not permitted`);
1365
1506
  }
1366
1507
  const fn = provider[m.method];
1367
- if (typeof fn !== 'function')
1508
+ if (typeof fn !== 'function') {
1509
+ // The port contract says an absent `core()` means "inject no memory
1510
+ // block" (see appMemory.ts's facade), which a rejected host-call would
1511
+ // invert into an error across the wire. Absence is the ONLY case
1512
+ // resolved rather than rejected — every other missing method is a real
1513
+ // capability gap and must still fail loudly.
1514
+ if (m.provider === 'memory' && m.method === 'core') {
1515
+ this.ch.send({ t: 'host-call-result', id: m.id, ok: true, result: { items: [], archivedCount: 0 } });
1516
+ return;
1517
+ }
1368
1518
  throw new Error(`method ${m.provider}.${m.method} is unavailable`);
1519
+ }
1369
1520
  const result = await fn.apply(provider, m.args);
1370
1521
  this.ch.send({ t: 'host-call-result', id: m.id, ok: true, result });
1371
1522
  }