@haikit/server 0.20.2 → 0.20.4

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/dist/runtime.d.ts CHANGED
@@ -97,6 +97,13 @@ export declare class Hai {
97
97
  private readonly queryUi;
98
98
  /** Handles each conversation has a revision of in flight, so two calls can't revise one at once. */
99
99
  private readonly revising;
100
+ /**
101
+ * Conversations a tool's `run` has been called in, during the turn now
102
+ * running: what a failed wake turn checks before undoing itself. A call that
103
+ * never ran, such as one in a reply cut off by max_tokens, did nothing a
104
+ * retry could repeat.
105
+ */
106
+ private readonly toolsRan;
100
107
  private readonly signals;
101
108
  /** Signals sent, streams open, and presence, here and on the other servers. */
102
109
  private readonly broadcast;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAGlB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,MAAM,EAEX,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,IAAI,EAGT,KAAK,MAAM,EAGZ,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAS1E;;;;GAIG;AACH,eAAO,MAAM,aAAa,ufAQ+B,CAAC;AAyD1D,qBAAa,GAAG;IACd,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAO;IAC/B,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IACrE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,qGAAqG;IACrG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;IACvE,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsD;IAC/E,OAAO,CAAC,GAAG,CAAK;gBAEJ,MAAM,EAAE,SAAS;IAyD7B;;;;OAIG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAgCrB;IAEF;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAMzB;IAEF;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAIzD;;;;;;;OAOG;IACH,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,IAAI;IAI3E;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAyDrB;IAEF,iGAAiG;IACjG,OAAO,CAAC,IAAI;IAWZ;;;;OAIG;YACW,QAAQ;IAStB,+EAA+E;YACjE,MAAM;YAkDN,UAAU;IAwExB;;;;;;;;;;OAUG;IACG,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;YA0CtD,QAAQ;IAmFtB;;;;;OAKG;YACW,aAAa;IAkB3B,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,gBAAgB;IAmFlB,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C/E;;;;;OAKG;IACG,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE;;;;;;;;;OASG;YACW,OAAO;IA0Ef,QAAQ,CACZ,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EACzD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,IAAI,CAAC;IA0HhB;;;;;;;;;;;;;;;;OAgBG;YACW,eAAe;YAmDf,OAAO;YA2GP,UAAU;YA0TV,WAAW;CAa1B"}
package/dist/runtime.js CHANGED
@@ -44,6 +44,13 @@ export class Hai {
44
44
  queryUi;
45
45
  /** Handles each conversation has a revision of in flight, so two calls can't revise one at once. */
46
46
  revising = new WeakMap();
47
+ /**
48
+ * Conversations a tool's `run` has been called in, during the turn now
49
+ * running: what a failed wake turn checks before undoing itself. A call that
50
+ * never ran, such as one in a reply cut off by max_tokens, did nothing a
51
+ * retry could repeat.
52
+ */
53
+ toolsRan = new WeakSet();
47
54
  signals = new Map();
48
55
  /** Signals sent, streams open, and presence, here and on the other servers. */
49
56
  broadcast;
@@ -72,6 +79,7 @@ export class Hai {
72
79
  this.system = scope === false || scope === "" ? config.system : `${config.system}\n\n${scope}`;
73
80
  for (const s of config.surfaces) {
74
81
  checkWindow(s);
82
+ checkActions(s);
75
83
  this.surfaces.set(s.surface.name, s);
76
84
  }
77
85
  for (const t of config.tools)
@@ -419,7 +427,7 @@ export class Hai {
419
427
  mode: record.mode,
420
428
  staleAfterMs: windowOf(impl),
421
429
  }, conversation.leaseToken);
422
- const digest = impl.impl.digest(job.props, { handle: next });
430
+ const digest = digestOf(impl, job.props, next);
423
431
  // …and once more as it takes effect: the write and the digest take a while too
424
432
  const window = strictest(record.staleAfterMs, windowOf(impl));
425
433
  if (window !== "never" && !(Number.isFinite(record.createdAt) && window !== undefined && record.createdAt + window > Date.now())) {
@@ -454,7 +462,7 @@ export class Hai {
454
462
  catch (err) {
455
463
  // Still owed, and appended by whoever holds the conversation next, before
456
464
  // anything else: the model hears of the revision before it runs again.
457
- throw new Error(`${next} is saved, but its update notice could not be stored yet: it goes out with the conversation's next request (${err.message})`);
465
+ throw new Error(`${next} is saved, but its update notice could not be stored yet: it goes out with the conversation's next request (${errorText(err)})`);
458
466
  }
459
467
  conversation.announcing = null;
460
468
  return { handle: next, replaced: current };
@@ -493,7 +501,7 @@ export class Hai {
493
501
  catch (err) {
494
502
  if (isStaleLease(err))
495
503
  superseded = true;
496
- emit({ type: "error", message: err.message });
504
+ emit({ type: "error", message: errorText(err) });
497
505
  outcome = "failed";
498
506
  }
499
507
  finally {
@@ -508,7 +516,7 @@ export class Hai {
508
516
  // A lost lease is told here, since it isn't thrown. Any other failure
509
517
  // is thrown, after `released`, and told by whoever called.
510
518
  if (isStaleLease(err))
511
- emit({ type: "error", message: err.message });
519
+ emit({ type: "error", message: errorText(err) });
512
520
  else
513
521
  saveFailed = err;
514
522
  }
@@ -589,10 +597,7 @@ export class Hai {
589
597
  // and result where the model can see them, and close the turn, as a
590
598
  // failed chat turn is kept; the notice never wakes again. Before any
591
599
  // tool has run, nothing has happened that a retry could repeat.
592
- const toolRan = conversation.messages
593
- .slice(before.messages + 1)
594
- .some((m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((b) => b?.type === "tool_use"));
595
- if (toolRan) {
600
+ if (this.toolsRan.has(conversation)) {
596
601
  conversation.status = "idle";
597
602
  }
598
603
  else {
@@ -682,18 +687,19 @@ export class Hai {
682
687
  if (!record)
683
688
  return ctx.text(`No such handle: ${input.handle}`);
684
689
  const impl = self.surfaces.get(record.component);
685
- const handler = impl?.impl.queries?.[input.query];
686
- if (!impl || !handler) {
690
+ // declared on both halves, by their own names
691
+ const handler = own(impl?.impl.queries, input.query);
692
+ const spec = own(impl?.surface.queries, input.query);
693
+ if (!impl || !handler || !spec) {
687
694
  const available = impl ? Object.keys(impl.surface.queries).join(", ") : "none";
688
695
  return ctx.text(`Unsupported query "${input.query}". Available: ${available || "none"}.`);
689
696
  }
690
- const spec = impl.surface.queries[input.query];
691
697
  let args;
692
698
  try {
693
699
  args = spec.input.parse(input.args ?? {});
694
700
  }
695
701
  catch (err) {
696
- return ctx.text(`Invalid args for "${input.query}": ${err.message}`);
702
+ return ctx.text(`Invalid args for "${input.query}": ${errorText(err)}`);
697
703
  }
698
704
  const rows = record.props?.[primaryCollection(record.props)] ?? [];
699
705
  const capped = handler(args, { props: record.props, cap: makeCap(rows.length) });
@@ -800,7 +806,7 @@ export class Hai {
800
806
  conversation.status = before.status;
801
807
  if (isStaleLease(err))
802
808
  throw err;
803
- const message = `initialisation failed: ${err.message}`;
809
+ const message = `initialisation failed: ${errorText(err)}`;
804
810
  emit({ type: "block_update", id: toolBlockId, status: "error", ms: Date.now() - started, result: message });
805
811
  throw new Error(message);
806
812
  }
@@ -862,8 +868,9 @@ export class Hai {
862
868
  throw new Error(`unknown component: ${record.component}`);
863
869
  // GUARANTEE 4 in force at runtime: the client sent {handle, action, value}.
864
870
  // What that action MEANS is decided here, from the declared contract.
865
- const spec = impl.surface.actions[input.action];
866
- const handler = impl.impl.actions?.[input.action];
871
+ // Own names only: the browser sends any string, and `toString` is on every object.
872
+ const spec = own(impl.surface.actions, input.action);
873
+ const handler = own(impl.impl.actions, input.action);
867
874
  if (!spec || !handler)
868
875
  throw new Error("unbound action");
869
876
  let value;
@@ -871,7 +878,7 @@ export class Hai {
871
878
  value = spec.input.parse(input.value);
872
879
  }
873
880
  catch (err) {
874
- throw new Error(`invalid action payload: ${err.message}`);
881
+ throw new Error(`invalid action payload: ${errorText(err)}`);
875
882
  }
876
883
  // Gated before the handler runs, because a handler may write: only a click
877
884
  // this request is going to record can reach it. A resolve answers the
@@ -891,7 +898,7 @@ export class Hai {
891
898
  label = await handler(value, { props: record.props, handle: record.handle, conversationId: conversation.id });
892
899
  }
893
900
  catch (err) {
894
- throw new Error(`action failed: ${err.message}`);
901
+ throw new Error(`action failed: ${errorText(err)}`);
895
902
  }
896
903
  // Read after the handler, so a notice its own work sent rides with the click.
897
904
  const unread = await this.unreadNotices(conversation);
@@ -1048,14 +1055,35 @@ export class Hai {
1048
1055
  },
1049
1056
  });
1050
1057
  conversation.messages.push({ role: "assistant", content: final.content });
1051
- if (final.stop_reason !== "tool_use")
1058
+ const calls = Array.isArray(final.content) ? final.content.filter((b) => b?.type === "tool_use") : [];
1059
+ // "tool_use" with no call to make: the reply is complete, and an empty
1060
+ // message of results would be one the API refuses.
1061
+ if (!calls.length)
1052
1062
  break;
1063
+ if (final.stop_reason !== "tool_use") {
1064
+ // A reply that stopped for another reason, such as max_tokens part
1065
+ // way through a call, can still hold calls. None runs: its input may
1066
+ // be cut short. But each needs a result, or the API refuses this
1067
+ // history from the next call on, so each is told why, and the turn
1068
+ // goes on, so the model can answer or try again, within maxHops.
1069
+ const note = `Not run: your reply ended with stop_reason "${final.stop_reason}" before this call was complete. Make it again if it's still needed.`;
1070
+ conversation.messages.push({
1071
+ role: "user",
1072
+ content: calls.map((call) => {
1073
+ const toolBlockId = this.nid("b");
1074
+ emit({ type: "block_start", block: { kind: "tool", id: toolBlockId, name: call.name, input: call.input, status: "running" } });
1075
+ emit({ type: "block_update", id: toolBlockId, status: "error", ms: 0, result: note });
1076
+ return { type: "tool_result", tool_use_id: call.id, content: note };
1077
+ }),
1078
+ });
1079
+ continue;
1080
+ }
1053
1081
  const results = [];
1054
1082
  let parked = null;
1055
1083
  // One question per reply: the turn parks on one surface, so the first
1056
1084
  // elicit render is the one it waits on, and any later one is refused.
1057
1085
  const hop = { asking: null };
1058
- for (const call of final.content.filter((b) => b?.type === "tool_use")) {
1086
+ for (const call of calls) {
1059
1087
  const toolBlockId = this.nid("b");
1060
1088
  emit({
1061
1089
  type: "block_start",
@@ -1145,7 +1173,7 @@ export class Hai {
1145
1173
  staleAfterMs: window,
1146
1174
  }, conversation.leaseToken);
1147
1175
  // The split, in two lines. Digest -> model. Payload -> browser.
1148
- const digest = impl.impl.digest(parsed, { handle });
1176
+ const digest = digestOf(impl, parsed, handle);
1149
1177
  beforeAttach?.();
1150
1178
  // Recorded only once the digest is in hand. A surface that fails here is
1151
1179
  // never shown, and a handle in the history counts toward its freshness,
@@ -1343,10 +1371,11 @@ export class Hai {
1343
1371
  catch (err) {
1344
1372
  if (options.init)
1345
1373
  throw err;
1346
- return { ret: { model: `Invalid input for ${call.name}: ${err.message}` }, asked: null };
1374
+ return { ret: { model: `Invalid input for ${call.name}: ${errorText(err)}` }, asked: null };
1347
1375
  }
1348
1376
  let outcome;
1349
1377
  try {
1378
+ this.toolsRan.add(conversation);
1350
1379
  outcome = { ok: true, ret: await tool.run(input, ctx) };
1351
1380
  }
1352
1381
  catch (err) {
@@ -1367,6 +1396,11 @@ export class Hai {
1367
1396
  throw lost;
1368
1397
  if (outcome.ok) {
1369
1398
  let { ret } = outcome;
1399
+ // JavaScript can return anything: a call with no text for the model would
1400
+ // leave its tool_use with no usable result. A question it showed is the
1401
+ // answer then, as a render's result is; otherwise it's said plainly.
1402
+ if (typeof ret?.model !== "string")
1403
+ ret = { model: asked ? asked.digest : `${call.name} returned no result.` };
1370
1404
  // A query on a surface since revised answers from what it was, which is
1371
1405
  // what the model asked about; it is told the surface has moved on.
1372
1406
  const queried = input?.handle;
@@ -1393,7 +1427,7 @@ export class Hai {
1393
1427
  emit({ type: "ui_state", handle: asked.handle, state: "frozen" });
1394
1428
  hop.asking = null;
1395
1429
  }
1396
- return { ret: { model: `${call.name} failed: ${err.message}` }, asked: null };
1430
+ return { ret: { model: `${call.name} failed: ${errorText(err)}` }, asked: null };
1397
1431
  }
1398
1432
  async emitContext(conversation, emit) {
1399
1433
  // One batched read, not one per handle: this runs on every turn, and a
@@ -1422,6 +1456,28 @@ const windowOf = (s) => s.impl.staleAfterMs === undefined ? "never" : s.impl.sta
1422
1456
  * compares as expired, and Infinity means "never" without saying so. Leaving
1423
1457
  * the window out is fine: that is "never".
1424
1458
  */
1459
+ /**
1460
+ * Each declared action checked at runtime, because JavaScript callers never
1461
+ * see the type: a kind that is neither would pass both of a click's gates,
1462
+ * and answer a question it isn't for, and one with no schema can't validate
1463
+ * a click.
1464
+ */
1465
+ function checkActions(s) {
1466
+ for (const [name, spec] of Object.entries(s.surface.actions ?? {})) {
1467
+ const kind = spec?.kind;
1468
+ if (kind !== "resolve" && kind !== "inform") {
1469
+ throw new TypeError(
1470
+ // a string quoted, anything else as text: neither can throw, a BigInt or a cycle included
1471
+ `surface ${s.surface.name}: action "${name}" has kind ${typeof kind === "string" ? JSON.stringify(kind) : errorText(kind)}; ` +
1472
+ `declare it with resolve() or inform()`);
1473
+ }
1474
+ if (typeof spec.input?.parse !== "function") {
1475
+ throw new TypeError(`surface ${s.surface.name}: action "${name}" has no input schema with a parse method`);
1476
+ }
1477
+ }
1478
+ }
1479
+ /** A name declared on `map` itself, not one every object inherits, such as `toString`. */
1480
+ const own = (map, name) => map && typeof name === "string" && Object.hasOwn(map, name) ? map[name] : undefined;
1425
1481
  function checkWindow(s) {
1426
1482
  const window = windowOf(s);
1427
1483
  if (window === "never" || (typeof window === "number" && Number.isFinite(window) && window > 0))
@@ -1447,6 +1503,34 @@ function strictest(recorded, current) {
1447
1503
  return finite.length ? Math.min(...finite) : "never";
1448
1504
  }
1449
1505
  const newId = () => globalThis.crypto.randomUUID().replaceAll("-", "").slice(0, 16);
1506
+ /**
1507
+ * What a thrown value says: its message, or, for one that isn't an Error, such
1508
+ * as a string or undefined, itself as text. Never throws itself: some values,
1509
+ * such as an object with no prototype, can't be made into text.
1510
+ */
1511
+ function errorText(err) {
1512
+ try {
1513
+ return err instanceof Error ? String(err.message) : String(err);
1514
+ }
1515
+ catch {
1516
+ return "an error that can't be shown as text";
1517
+ }
1518
+ }
1519
+ /**
1520
+ * A surface's digest, checked: JavaScript can return anything, and the model
1521
+ * must get text. One that isn't a string fails the render, as one that throws
1522
+ * does; an async one is never awaited, so its rejection is caught here rather
1523
+ * than left unhandled.
1524
+ */
1525
+ function digestOf(impl, props, handle) {
1526
+ const digest = impl.impl.digest(props, { handle });
1527
+ if (typeof digest === "string")
1528
+ return digest;
1529
+ if (digest && typeof digest.then === "function") {
1530
+ Promise.resolve(digest).catch(() => { });
1531
+ }
1532
+ throw new TypeError(`surface ${impl.surface.name}: digest must return a string (got ${digest === null ? "null" : typeof digest})`);
1533
+ }
1450
1534
  /** The latest revision of a surface: `handle` itself, or what it was superseded by, all the way along. */
1451
1535
  function currentHandle(conversation, handle) {
1452
1536
  const seen = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haikit/server",
3
- "version": "0.20.2",
3
+ "version": "0.20.4",
4
4
  "description": "The haikit server runtime: agent loop, elicit state machine, derived query_ui, and the interaction security boundary.",
5
5
  "keywords": [
6
6
  "haikit",
@@ -36,7 +36,7 @@
36
36
  "prepack": "npm --prefix ../.. run build"
37
37
  },
38
38
  "dependencies": {
39
- "@haikit/core": "0.20.2",
39
+ "@haikit/core": "0.20.4",
40
40
  "@types/node": ">=22"
41
41
  },
42
42
  "publishConfig": {
package/src/runtime.ts CHANGED
@@ -187,6 +187,13 @@ export class Hai {
187
187
  private readonly queryUi: Tool;
188
188
  /** Handles each conversation has a revision of in flight, so two calls can't revise one at once. */
189
189
  private readonly revising = new WeakMap<Conversation, Set<string>>();
190
+ /**
191
+ * Conversations a tool's `run` has been called in, during the turn now
192
+ * running: what a failed wake turn checks before undoing itself. A call that
193
+ * never ran, such as one in a reply cut off by max_tokens, did nothing a
194
+ * retry could repeat.
195
+ */
196
+ private readonly toolsRan = new WeakSet<Conversation>();
190
197
  private readonly signals = new Map<string, Signal<any>>();
191
198
  /** Signals sent, streams open, and presence, here and on the other servers. */
192
199
  private readonly broadcast: Broadcast;
@@ -216,6 +223,7 @@ export class Hai {
216
223
  this.system = scope === false || scope === "" ? config.system : `${config.system}\n\n${scope}`;
217
224
  for (const s of config.surfaces) {
218
225
  checkWindow(s);
226
+ checkActions(s);
219
227
  this.surfaces.set(s.surface.name, s);
220
228
  }
221
229
  for (const t of config.tools) this.tools.set(t.name, t);
@@ -573,7 +581,7 @@ export class Hai {
573
581
  },
574
582
  conversation.leaseToken,
575
583
  );
576
- const digest = impl.impl.digest(job.props, { handle: next });
584
+ const digest = digestOf(impl, job.props, next);
577
585
  // …and once more as it takes effect: the write and the digest take a while too
578
586
  const window = strictest(record.staleAfterMs, windowOf(impl));
579
587
  if (window !== "never" && !(Number.isFinite(record.createdAt) && window !== undefined && record.createdAt + window > Date.now())) {
@@ -607,7 +615,7 @@ export class Hai {
607
615
  } catch (err) {
608
616
  // Still owed, and appended by whoever holds the conversation next, before
609
617
  // anything else: the model hears of the revision before it runs again.
610
- throw new Error(`${next} is saved, but its update notice could not be stored yet: it goes out with the conversation's next request (${(err as Error).message})`);
618
+ throw new Error(`${next} is saved, but its update notice could not be stored yet: it goes out with the conversation's next request (${errorText(err)})`);
611
619
  }
612
620
  conversation.announcing = null;
613
621
  return { handle: next, replaced: current };
@@ -642,7 +650,7 @@ export class Hai {
642
650
  outcome = await this.wakeTurn(conversation, emit);
643
651
  } catch (err) {
644
652
  if (isStaleLease(err)) superseded = true;
645
- emit({ type: "error", message: (err as Error).message });
653
+ emit({ type: "error", message: errorText(err) });
646
654
  outcome = "failed";
647
655
  } finally {
648
656
  // As the route does at the end of a request: release the lease, keeping
@@ -653,7 +661,7 @@ export class Hai {
653
661
  } catch (err) {
654
662
  // A lost lease is told here, since it isn't thrown. Any other failure
655
663
  // is thrown, after `released`, and told by whoever called.
656
- if (isStaleLease(err)) emit({ type: "error", message: (err as Error).message });
664
+ if (isStaleLease(err)) emit({ type: "error", message: errorText(err) });
657
665
  else saveFailed = err;
658
666
  }
659
667
  // Only now may the browser send again: until the save above, the lease
@@ -732,10 +740,7 @@ export class Hai {
732
740
  // and result where the model can see them, and close the turn, as a
733
741
  // failed chat turn is kept; the notice never wakes again. Before any
734
742
  // tool has run, nothing has happened that a retry could repeat.
735
- const toolRan = conversation.messages
736
- .slice(before.messages + 1)
737
- .some((m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((b: any) => b?.type === "tool_use"));
738
- if (toolRan) {
743
+ if (this.toolsRan.has(conversation)) {
739
744
  conversation.status = "idle";
740
745
  } else {
741
746
  conversation.messages.length = before.messages;
@@ -841,18 +846,19 @@ export class Hai {
841
846
  if (!record) return ctx.text(`No such handle: ${input.handle}`);
842
847
 
843
848
  const impl = self.surfaces.get(record.component);
844
- const handler = impl?.impl.queries?.[input.query];
845
- if (!impl || !handler) {
849
+ // declared on both halves, by their own names
850
+ const handler = own(impl?.impl.queries, input.query);
851
+ const spec = own(impl?.surface.queries, input.query);
852
+ if (!impl || !handler || !spec) {
846
853
  const available = impl ? Object.keys(impl.surface.queries).join(", ") : "none";
847
854
  return ctx.text(`Unsupported query "${input.query}". Available: ${available || "none"}.`);
848
855
  }
849
856
 
850
- const spec = impl.surface.queries[input.query];
851
857
  let args: unknown;
852
858
  try {
853
859
  args = spec.input.parse(input.args ?? {});
854
860
  } catch (err) {
855
- return ctx.text(`Invalid args for "${input.query}": ${(err as Error).message}`);
861
+ return ctx.text(`Invalid args for "${input.query}": ${errorText(err)}`);
856
862
  }
857
863
 
858
864
  const rows = (record.props as any)?.[primaryCollection(record.props)] ?? [];
@@ -966,7 +972,7 @@ export class Hai {
966
972
  conversation.handles.length = before.handles;
967
973
  conversation.status = before.status;
968
974
  if (isStaleLease(err)) throw err;
969
- const message = `initialisation failed: ${(err as Error).message}`;
975
+ const message = `initialisation failed: ${errorText(err)}`;
970
976
  emit({ type: "block_update", id: toolBlockId, status: "error", ms: Date.now() - started, result: message });
971
977
  throw new Error(message);
972
978
  }
@@ -1037,15 +1043,16 @@ export class Hai {
1037
1043
 
1038
1044
  // GUARANTEE 4 in force at runtime: the client sent {handle, action, value}.
1039
1045
  // What that action MEANS is decided here, from the declared contract.
1040
- const spec = impl.surface.actions[input.action];
1041
- const handler = impl.impl.actions?.[input.action];
1046
+ // Own names only: the browser sends any string, and `toString` is on every object.
1047
+ const spec = own(impl.surface.actions, input.action);
1048
+ const handler = own(impl.impl.actions, input.action);
1042
1049
  if (!spec || !handler) throw new Error("unbound action");
1043
1050
 
1044
1051
  let value: unknown;
1045
1052
  try {
1046
1053
  value = spec.input.parse(input.value);
1047
1054
  } catch (err) {
1048
- throw new Error(`invalid action payload: ${(err as Error).message}`);
1055
+ throw new Error(`invalid action payload: ${errorText(err)}`);
1049
1056
  }
1050
1057
 
1051
1058
  // Gated before the handler runs, because a handler may write: only a click
@@ -1065,7 +1072,7 @@ export class Hai {
1065
1072
  try {
1066
1073
  label = await handler(value, { props: record.props, handle: record.handle, conversationId: conversation.id });
1067
1074
  } catch (err) {
1068
- throw new Error(`action failed: ${(err as Error).message}`);
1075
+ throw new Error(`action failed: ${errorText(err)}`);
1069
1076
  }
1070
1077
 
1071
1078
  // Read after the handler, so a notice its own work sent rides with the click.
@@ -1229,7 +1236,28 @@ export class Hai {
1229
1236
  });
1230
1237
 
1231
1238
  conversation.messages.push({ role: "assistant", content: final.content });
1232
- if (final.stop_reason !== "tool_use") break;
1239
+ const calls: any[] = Array.isArray(final.content) ? final.content.filter((b: any) => b?.type === "tool_use") : [];
1240
+ // "tool_use" with no call to make: the reply is complete, and an empty
1241
+ // message of results would be one the API refuses.
1242
+ if (!calls.length) break;
1243
+ if (final.stop_reason !== "tool_use") {
1244
+ // A reply that stopped for another reason, such as max_tokens part
1245
+ // way through a call, can still hold calls. None runs: its input may
1246
+ // be cut short. But each needs a result, or the API refuses this
1247
+ // history from the next call on, so each is told why, and the turn
1248
+ // goes on, so the model can answer or try again, within maxHops.
1249
+ const note = `Not run: your reply ended with stop_reason "${final.stop_reason}" before this call was complete. Make it again if it's still needed.`;
1250
+ conversation.messages.push({
1251
+ role: "user",
1252
+ content: calls.map((call) => {
1253
+ const toolBlockId = this.nid("b");
1254
+ emit({ type: "block_start", block: { kind: "tool", id: toolBlockId, name: call.name, input: call.input, status: "running" } });
1255
+ emit({ type: "block_update", id: toolBlockId, status: "error", ms: 0, result: note });
1256
+ return { type: "tool_result", tool_use_id: call.id, content: note };
1257
+ }),
1258
+ });
1259
+ continue;
1260
+ }
1233
1261
 
1234
1262
  const results: unknown[] = [];
1235
1263
  let parked: { toolUseId: string; handle: string; digest: string } | null = null;
@@ -1237,7 +1265,7 @@ export class Hai {
1237
1265
  // elicit render is the one it waits on, and any later one is refused.
1238
1266
  const hop: Hop = { asking: null };
1239
1267
 
1240
- for (const call of final.content.filter((b: any) => b?.type === "tool_use")) {
1268
+ for (const call of calls) {
1241
1269
  const toolBlockId = this.nid("b");
1242
1270
  emit({
1243
1271
  type: "block_start",
@@ -1348,7 +1376,7 @@ export class Hai {
1348
1376
  );
1349
1377
 
1350
1378
  // The split, in two lines. Digest -> model. Payload -> browser.
1351
- const digest = impl.impl.digest(parsed, { handle });
1379
+ const digest = digestOf(impl, parsed, handle);
1352
1380
  beforeAttach?.();
1353
1381
  // Recorded only once the digest is in hand. A surface that fails here is
1354
1382
  // never shown, and a handle in the history counts toward its freshness,
@@ -1544,11 +1572,12 @@ export class Hai {
1544
1572
  input = tool.input.parse(call.input);
1545
1573
  } catch (err) {
1546
1574
  if (options.init) throw err;
1547
- return { ret: { model: `Invalid input for ${call.name}: ${(err as Error).message}` }, asked: null };
1575
+ return { ret: { model: `Invalid input for ${call.name}: ${errorText(err)}` }, asked: null };
1548
1576
  }
1549
1577
 
1550
1578
  let outcome: { ok: true; ret: ToolReturn } | { ok: false; err: unknown };
1551
1579
  try {
1580
+ this.toolsRan.add(conversation);
1552
1581
  outcome = { ok: true, ret: await tool.run(input, ctx) };
1553
1582
  } catch (err) {
1554
1583
  outcome = { ok: false, err };
@@ -1568,6 +1597,10 @@ export class Hai {
1568
1597
 
1569
1598
  if (outcome.ok) {
1570
1599
  let { ret } = outcome;
1600
+ // JavaScript can return anything: a call with no text for the model would
1601
+ // leave its tool_use with no usable result. A question it showed is the
1602
+ // answer then, as a render's result is; otherwise it's said plainly.
1603
+ if (typeof ret?.model !== "string") ret = { model: asked ? asked.digest : `${call.name} returned no result.` };
1571
1604
  // A query on a surface since revised answers from what it was, which is
1572
1605
  // what the model asked about; it is told the surface has moved on.
1573
1606
  const queried = (input as { handle?: unknown } | null)?.handle;
@@ -1592,7 +1625,7 @@ export class Hai {
1592
1625
  emit({ type: "ui_state", handle: asked.handle, state: "frozen" });
1593
1626
  hop.asking = null;
1594
1627
  }
1595
- return { ret: { model: `${call.name} failed: ${(err as Error).message}` }, asked: null };
1628
+ return { ret: { model: `${call.name} failed: ${errorText(err)}` }, asked: null };
1596
1629
  }
1597
1630
 
1598
1631
  private async emitContext(conversation: Conversation, emit: Emit) {
@@ -1624,6 +1657,32 @@ const windowOf = (s: AnySurfaceImpl): number | "never" =>
1624
1657
  * compares as expired, and Infinity means "never" without saying so. Leaving
1625
1658
  * the window out is fine: that is "never".
1626
1659
  */
1660
+ /**
1661
+ * Each declared action checked at runtime, because JavaScript callers never
1662
+ * see the type: a kind that is neither would pass both of a click's gates,
1663
+ * and answer a question it isn't for, and one with no schema can't validate
1664
+ * a click.
1665
+ */
1666
+ function checkActions(s: AnySurfaceImpl) {
1667
+ for (const [name, spec] of Object.entries(s.surface.actions ?? {})) {
1668
+ const kind: unknown = (spec as { kind?: unknown } | undefined)?.kind;
1669
+ if (kind !== "resolve" && kind !== "inform") {
1670
+ throw new TypeError(
1671
+ // a string quoted, anything else as text: neither can throw, a BigInt or a cycle included
1672
+ `surface ${s.surface.name}: action "${name}" has kind ${typeof kind === "string" ? JSON.stringify(kind) : errorText(kind)}; ` +
1673
+ `declare it with resolve() or inform()`,
1674
+ );
1675
+ }
1676
+ if (typeof (spec as { input?: { parse?: unknown } }).input?.parse !== "function") {
1677
+ throw new TypeError(`surface ${s.surface.name}: action "${name}" has no input schema with a parse method`);
1678
+ }
1679
+ }
1680
+ }
1681
+
1682
+ /** A name declared on `map` itself, not one every object inherits, such as `toString`. */
1683
+ const own = <T>(map: Record<string, T> | undefined, name: unknown): T | undefined =>
1684
+ map && typeof name === "string" && Object.hasOwn(map, name) ? map[name] : undefined;
1685
+
1627
1686
  function checkWindow(s: AnySurfaceImpl) {
1628
1687
  const window: unknown = windowOf(s);
1629
1688
  if (window === "never" || (typeof window === "number" && Number.isFinite(window) && window > 0)) return;
@@ -1653,6 +1712,34 @@ function strictest(recorded: unknown, current: unknown): number | "never" | unde
1653
1712
 
1654
1713
  const newId = () => globalThis.crypto.randomUUID().replaceAll("-", "").slice(0, 16);
1655
1714
 
1715
+ /**
1716
+ * What a thrown value says: its message, or, for one that isn't an Error, such
1717
+ * as a string or undefined, itself as text. Never throws itself: some values,
1718
+ * such as an object with no prototype, can't be made into text.
1719
+ */
1720
+ function errorText(err: unknown): string {
1721
+ try {
1722
+ return err instanceof Error ? String(err.message) : String(err);
1723
+ } catch {
1724
+ return "an error that can't be shown as text";
1725
+ }
1726
+ }
1727
+
1728
+ /**
1729
+ * A surface's digest, checked: JavaScript can return anything, and the model
1730
+ * must get text. One that isn't a string fails the render, as one that throws
1731
+ * does; an async one is never awaited, so its rejection is caught here rather
1732
+ * than left unhandled.
1733
+ */
1734
+ function digestOf(impl: AnySurfaceImpl, props: unknown, handle: string): string {
1735
+ const digest: unknown = impl.impl.digest(props, { handle });
1736
+ if (typeof digest === "string") return digest;
1737
+ if (digest && typeof (digest as PromiseLike<unknown>).then === "function") {
1738
+ Promise.resolve(digest).catch(() => {});
1739
+ }
1740
+ throw new TypeError(`surface ${impl.surface.name}: digest must return a string (got ${digest === null ? "null" : typeof digest})`);
1741
+ }
1742
+
1656
1743
  /** The latest revision of a surface: `handle` itself, or what it was superseded by, all the way along. */
1657
1744
  function currentHandle(conversation: Conversation, handle: string): string {
1658
1745
  const seen = new Set<string>();