agentfootprint 9.97.0 → 9.98.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 (114) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/artifacts/datasetResult.js +119 -0
  3. package/dist/artifacts/datasetResult.js.map +1 -0
  4. package/dist/artifacts/index.js +4 -1
  5. package/dist/artifacts/index.js.map +1 -1
  6. package/dist/esm/artifacts/datasetResult.d.ts +44 -0
  7. package/dist/esm/artifacts/datasetResult.js +114 -0
  8. package/dist/esm/artifacts/datasetResult.js.map +1 -0
  9. package/dist/esm/artifacts/index.d.ts +1 -0
  10. package/dist/esm/artifacts/index.js +1 -0
  11. package/dist/esm/artifacts/index.js.map +1 -1
  12. package/dist/esm/index.d.ts +2 -2
  13. package/dist/esm/index.js +1 -1
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/integrity/assertion/conflicts.d.ts +5 -32
  16. package/dist/esm/integrity/assertion/conflicts.js +6 -69
  17. package/dist/esm/integrity/assertion/conflicts.js.map +1 -1
  18. package/dist/esm/integrity/assertion/types.d.ts +8 -69
  19. package/dist/esm/integrity/assertion/types.js +0 -0
  20. package/dist/esm/integrity/assertion/types.js.map +1 -1
  21. package/dist/esm/lib/injection-engine/factories/defineMenuHint.js +3 -5
  22. package/dist/esm/lib/injection-engine/factories/defineMenuHint.js.map +1 -1
  23. package/dist/esm/lib/injection-engine/skillToolDescriptors.d.ts +4 -2
  24. package/dist/esm/lib/injection-engine/skillToolDescriptors.js +17 -8
  25. package/dist/esm/lib/injection-engine/skillToolDescriptors.js.map +1 -1
  26. package/dist/esm/lib/mcp/mcpClient.js +5 -97
  27. package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
  28. package/dist/esm/lib/mcp/mockMcpClient.d.ts +8 -4
  29. package/dist/esm/lib/mcp/mockMcpClient.js +6 -5
  30. package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -1
  31. package/dist/esm/lib/mcp/toolResult.d.ts +8 -0
  32. package/dist/esm/lib/mcp/toolResult.js +244 -0
  33. package/dist/esm/lib/mcp/toolResult.js.map +1 -0
  34. package/dist/esm/lib/mcp/types.d.ts +15 -0
  35. package/dist/esm/lib/semantics/check.d.ts +7 -1
  36. package/dist/esm/lib/semantics/check.js +16 -0
  37. package/dist/esm/lib/semantics/check.js.map +1 -1
  38. package/dist/esm/lib/semantics/cli.js +3 -0
  39. package/dist/esm/lib/semantics/cli.js.map +1 -1
  40. package/dist/esm/lib/semantics/projection.d.ts +15 -0
  41. package/dist/esm/lib/semantics/projection.js +186 -0
  42. package/dist/esm/lib/semantics/projection.js.map +1 -0
  43. package/dist/esm/lib/time-travel/index.d.ts +1 -1
  44. package/dist/esm/lib/time-travel/index.js.map +1 -1
  45. package/dist/esm/lib/time-travel/receipt.d.ts +5 -0
  46. package/dist/esm/lib/time-travel/receipt.js +2 -0
  47. package/dist/esm/lib/time-travel/receipt.js.map +1 -1
  48. package/dist/esm/lib/time-travel/requestMeasurement.d.ts +33 -0
  49. package/dist/esm/lib/time-travel/requestMeasurement.js +120 -0
  50. package/dist/esm/lib/time-travel/requestMeasurement.js.map +1 -0
  51. package/dist/esm/lib/time-travel/servedView.js +8 -1
  52. package/dist/esm/lib/time-travel/servedView.js.map +1 -1
  53. package/dist/index.js +4 -2
  54. package/dist/index.js.map +1 -1
  55. package/dist/integrity/assertion/conflicts.js +6 -69
  56. package/dist/integrity/assertion/conflicts.js.map +1 -1
  57. package/dist/integrity/assertion/types.js +0 -0
  58. package/dist/integrity/assertion/types.js.map +1 -1
  59. package/dist/lib/injection-engine/factories/defineMenuHint.js +3 -5
  60. package/dist/lib/injection-engine/factories/defineMenuHint.js.map +1 -1
  61. package/dist/lib/injection-engine/skillToolDescriptors.js +17 -8
  62. package/dist/lib/injection-engine/skillToolDescriptors.js.map +1 -1
  63. package/dist/lib/mcp/mcpClient.js +5 -97
  64. package/dist/lib/mcp/mcpClient.js.map +1 -1
  65. package/dist/lib/mcp/mockMcpClient.js +6 -5
  66. package/dist/lib/mcp/mockMcpClient.js.map +1 -1
  67. package/dist/lib/mcp/toolResult.js +249 -0
  68. package/dist/lib/mcp/toolResult.js.map +1 -0
  69. package/dist/lib/semantics/check.js +16 -0
  70. package/dist/lib/semantics/check.js.map +1 -1
  71. package/dist/lib/semantics/cli.js +3 -0
  72. package/dist/lib/semantics/cli.js.map +1 -1
  73. package/dist/lib/semantics/projection.js +191 -0
  74. package/dist/lib/semantics/projection.js.map +1 -0
  75. package/dist/lib/time-travel/index.js.map +1 -1
  76. package/dist/lib/time-travel/receipt.js +2 -0
  77. package/dist/lib/time-travel/receipt.js.map +1 -1
  78. package/dist/lib/time-travel/requestMeasurement.js +124 -0
  79. package/dist/lib/time-travel/requestMeasurement.js.map +1 -0
  80. package/dist/lib/time-travel/servedView.js +8 -1
  81. package/dist/lib/time-travel/servedView.js.map +1 -1
  82. package/dist/types/artifacts/datasetResult.d.ts +45 -0
  83. package/dist/types/artifacts/datasetResult.d.ts.map +1 -0
  84. package/dist/types/artifacts/index.d.ts +1 -0
  85. package/dist/types/artifacts/index.d.ts.map +1 -1
  86. package/dist/types/index.d.ts +2 -2
  87. package/dist/types/index.d.ts.map +1 -1
  88. package/dist/types/integrity/assertion/conflicts.d.ts +5 -32
  89. package/dist/types/integrity/assertion/conflicts.d.ts.map +1 -1
  90. package/dist/types/integrity/assertion/types.d.ts +8 -69
  91. package/dist/types/integrity/assertion/types.d.ts.map +1 -1
  92. package/dist/types/lib/injection-engine/factories/defineMenuHint.d.ts.map +1 -1
  93. package/dist/types/lib/injection-engine/skillToolDescriptors.d.ts +4 -2
  94. package/dist/types/lib/injection-engine/skillToolDescriptors.d.ts.map +1 -1
  95. package/dist/types/lib/mcp/mcpClient.d.ts.map +1 -1
  96. package/dist/types/lib/mcp/mockMcpClient.d.ts +8 -4
  97. package/dist/types/lib/mcp/mockMcpClient.d.ts.map +1 -1
  98. package/dist/types/lib/mcp/toolResult.d.ts +9 -0
  99. package/dist/types/lib/mcp/toolResult.d.ts.map +1 -0
  100. package/dist/types/lib/mcp/types.d.ts +15 -0
  101. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  102. package/dist/types/lib/semantics/check.d.ts +7 -1
  103. package/dist/types/lib/semantics/check.d.ts.map +1 -1
  104. package/dist/types/lib/semantics/cli.d.ts.map +1 -1
  105. package/dist/types/lib/semantics/projection.d.ts +16 -0
  106. package/dist/types/lib/semantics/projection.d.ts.map +1 -0
  107. package/dist/types/lib/time-travel/index.d.ts +1 -1
  108. package/dist/types/lib/time-travel/index.d.ts.map +1 -1
  109. package/dist/types/lib/time-travel/receipt.d.ts +5 -0
  110. package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
  111. package/dist/types/lib/time-travel/requestMeasurement.d.ts +34 -0
  112. package/dist/types/lib/time-travel/requestMeasurement.d.ts.map +1 -0
  113. package/dist/types/lib/time-travel/servedView.d.ts.map +1 -1
  114. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../../src/integrity/assertion/conflicts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AAS3F,0EAA0E;AAC1E,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAU,EAAE,EAAE;QAC7C,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClD,MAAM,CAAC,GAAG,CAAC,GAAI,CAA6B,CAAC,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,UAAgC,EAChC,cAAmC,IAAI,GAAG,EAAE;IAE5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqE,CAAC;IAE3F,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU;YAAE,SAAS,CAAC,uBAAuB;QAC/D,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAAE,SAAS,CAAC,yBAAyB;QACrE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS,CAAC,yBAAyB;QAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;YACtD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;YAAE,SAAS;QACrC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../../src/integrity/assertion/conflicts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAiC,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,iFAAiF;AACjF,MAAM,UAAU,WAAW,CACzB,UAAgC,EAChC,cAAmC,IAAI,GAAG,EAAE;IAE5C,OAAO,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAClE,CAAC"}
@@ -1,74 +1,13 @@
1
1
  /**
2
- * Assertion — one typed claim about one subject, with the two rules that
3
- * give the algebra its teeth.
4
- *
5
- * Pattern: plain data + a keyed identity. Pure, structuredClone-safe.
6
- * Role: the Context Integrity substrate. Everything a seam adapter
7
- * hands a check is first normalised into assertions keyed by
8
- * `(subject, predicate, epoch)`, so every check compares one
9
- * shape and subject identity is READ off stamps, never inferred.
10
- *
11
- * THE TWO RULES:
12
- *
13
- * **Serving is asserting; history is quotation.** A tool schema on the
14
- * wire asserts "available now"; a block labelled current-state asserts its
15
- * contents as current. Transcript history is `quoted` — it legitimately
16
- * holds superseded values, and checks never fire across the quoted
17
- * stratum. This one distinction eliminates the false-positive class of
18
- * stale-but-honest history with no judgment call.
19
- *
20
- * **Single-valued by default.** Two `asserted` assertions on one key with
21
- * different values contradict; multi-valued predicates are the declared
22
- * exception. Exemptions are declared, rules are never authored.
23
- *
24
- * Honest absence: a value that IS an unknown (a `Claim` whose kind is not
25
- * `'known'`) never participates in a comparison — an unknown can neither
26
- * corroborate nor contradict, and anything derived from it is unknown.
2
+ * Agent's assertion types and value conventions are shared with ContextFootprint.
3
+ * Collection, current/quoted stamping and diagnostic disposition remain here.
27
4
  */
5
+ import type { Assertion } from 'contextfootprint';
6
+ export type { Assertion, AssertionStratum, SubjectRef } from 'contextfootprint';
7
+ export { sameSubject, participates, comparableValueOf } from 'contextfootprint';
28
8
  /**
29
- * A stamped identity edge — WHO a fact is about, written at the one moment
30
- * the code demonstrably knows both ends (registration, mount, mint). The
31
- * checker only ever reads these; it never infers identity. Facts without a
32
- * shared stamped subject are incomparable, and incomparable means silent —
33
- * which is why the disposition ledger counts `unreachable`.
9
+ * Preserve Agent's recorded identity encoding across the extraction.
10
+ * This legacy delimiter format retains its existing collision behavior; new
11
+ * consumers use ContextFootprint's tuple key. Recording migration is separate.
34
12
  */
35
- export interface SubjectRef {
36
- /** What kind of thing — 'map' | 'skill' | 'tool' | 'action' | app kinds. Open by design. */
37
- readonly kind: string;
38
- readonly id: string;
39
- }
40
- /** The strata rule, as a type: only `asserted` facts can contradict. */
41
- export type AssertionStratum = 'asserted' | 'quoted';
42
- /** One typed claim about one subject. */
43
- export interface Assertion {
44
- readonly subject: SubjectRef;
45
- /** The relation this asserts — 'status', 'offered', 'position', … */
46
- readonly predicate: string;
47
- /**
48
- * The claimed value. May be a plain value or a `Claim<T>`; a non-`known`
49
- * Claim never participates in any comparison (honest absence).
50
- */
51
- readonly value: unknown;
52
- /**
53
- * The epoch this was asserted UNDER — a monotonic version from the
54
- * subject's own counter (a session version, a cursor version). Two
55
- * assertions at DIFFERENT epochs are history, not contradiction; absent
56
- * means "the current, unversioned world", and only matches absent.
57
- */
58
- readonly epoch?: number;
59
- readonly stratum: AssertionStratum;
60
- /** Where this came from — one plain sentence or a source ref. */
61
- readonly provenance: string;
62
- /** The universal join key into commit logs and recordings, when known. */
63
- readonly runtimeStageId?: string;
64
- /** Dev-posture canary material — quarantined from every real count. */
65
- readonly synthetic?: true;
66
- }
67
- /** The identity a single-valued comparison runs over. */
68
13
  export declare function assertionKey(a: Assertion): string;
69
- /** Same stamped subject — the only identity the algebra ever claims. */
70
- export declare function sameSubject(a: SubjectRef, b: SubjectRef): boolean;
71
- /** Does this value participate in comparisons? Unknowns never do. */
72
- export declare function participates(value: unknown): boolean;
73
- /** The comparable face of a value: a known Claim compares by its value. */
74
- export declare function comparableValueOf(value: unknown): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/integrity/assertion/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA8CH,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,CAAY;IACvC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC;AACrE,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,CAAa,EAAE,CAAa;IACtD,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,MAAM,KAAK,GAAG,KAAuC,CAAC;IACtD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,KAAK,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,KAAK,GAAG,KAAuC,CAAC;IACtD,IACE,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,OAAO,IAAK,KAAgB,EAC5B,CAAC;QACD,OAAQ,KAA4B,CAAC,KAAK,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/integrity/assertion/types.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEhF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,CAAY;IACvC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,SAAS,SAAS,KAAK,EAAE,CAAC;AACpF,CAAC"}
@@ -28,12 +28,10 @@
28
28
  * false-positive on somebody else's injection of that name.
29
29
  */
30
30
  export const MENU_HINT_METADATA_KEY = 'skillMenuHint';
31
- const DEFAULT_BODY = 'Note: no declared start rule or intent decisively matched this message — the routing ' +
32
- "scorer left a menu open. The `read_skill` tool's description begins with the closest " +
33
- 'candidate skills (with advisory relevance where a scorer ran). Read it and activate the ' +
31
+ const DEFAULT_BODY = "Note: a routing menu is open for this turn. The `read_skill` tool's description begins " +
32
+ 'with candidate skills (with advisory relevance when supplied). Read it and activate the ' +
34
33
  'one that actually fits, or answer directly WITHOUT calling read_skill to stay where you ' +
35
- 'are. The scorer only matches declared intents offline and cannot see the conversation — ' +
36
- 'your judgment wins.';
34
+ 'are. Use the conversation to decide; the menu is guidance, not an instruction to pick.';
37
35
  export function defineMenuHint(options = {}) {
38
36
  return {
39
37
  id: options.id ?? 'skill-menu-hint',
@@ -1 +1 @@
1
- {"version":3,"file":"defineMenuHint.js","sourceRoot":"","sources":["../../../../../src/lib/injection-engine/factories/defineMenuHint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAwB,CAAC;AAE/D,MAAM,YAAY,GAChB,uFAAuF;IACvF,uFAAuF;IACvF,0FAA0F;IAC1F,0FAA0F;IAC1F,0FAA0F;IAC1F,qBAAqB,CAAC;AAExB,MAAM,UAAU,cAAc,CAAC,UAA2B,EAAE;IAC1D,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,iBAAiB;QACnC,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,gEAAgE;QAC7E,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,yEAAyE;YACzE,wEAAwE;YACxE,kEAAkE;YAClE,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,KAAK,SAAS;SACjF;QACD,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE;QAC5C,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,IAAI,YAAY,EAAE;KACvD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"defineMenuHint.js","sourceRoot":"","sources":["../../../../../src/lib/injection-engine/factories/defineMenuHint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAwB,CAAC;AAE/D,MAAM,YAAY,GAChB,yFAAyF;IACzF,0FAA0F;IAC1F,0FAA0F;IAC1F,wFAAwF,CAAC;AAE3F,MAAM,UAAU,cAAc,CAAC,UAA2B,EAAE;IAC1D,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,iBAAiB;QACnC,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,gEAAgE;QAC7E,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,yEAAyE;YACzE,wEAAwE;YACxE,kEAAkE;YAClE,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,KAAK,SAAS;SACjF;QACD,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE;QAC5C,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,IAAI,YAAY,EAAE;KACvD,CAAC;AACJ,CAAC"}
@@ -79,8 +79,8 @@ export interface ReadSkillOffer {
79
79
  readonly cursorId?: string;
80
80
  /**
81
81
  * Turn-start MENU (SG-C): when set, the description LEADS with these
82
- * candidates (id + one-line description; advisory relevance %s beside
83
- * near-tie candidates), names the cursor, and states STAY as a first-class
82
+ * candidates (id + one-line description; supplied advisory relevance %s),
83
+ * names the cursor, and states STAY as a first-class
84
84
  * option ("answer without calling read_skill to stay in '<cursor>'").
85
85
  *
86
86
  * Set only while the turn's menu verdict is outstanding (turn start, before
@@ -90,6 +90,8 @@ export interface ReadSkillOffer {
90
90
  * retire four honesty mechanisms), and {@link ReadSkillOffer.hiddenIds}
91
91
  * filters menu rows exactly as it filters every other list: a role-hidden
92
92
  * skill is never NAMED, menu or no menu.
93
+ * Descriptions appear once per skill id in this offer. Later catalog or
94
+ * reachability rows retain the id and refer to its description above.
93
95
  */
94
96
  readonly menu?: {
95
97
  readonly candidates: ReadonlyArray<{
@@ -133,6 +133,16 @@ function describeOffer(allSkills, line, fullCatalog, offer) {
133
133
  // the "not reachable" list and the plain catalog all read from this.
134
134
  const hidden = new Set(offer.hiddenIds ?? []);
135
135
  const skills = visibleSkills(allSkills, offer);
136
+ // One description per id, local to THIS offer. Membership still appears in
137
+ // every applicable section: relevance is not reachability. Never deduplicate
138
+ // by description text — distinct skills can legitimately share that text.
139
+ const described = new Set();
140
+ const describeOnce = (s) => {
141
+ if (described.has(s.id))
142
+ return ` - ${s.id}`;
143
+ described.add(s.id);
144
+ return line(s);
145
+ };
136
146
  // The turn-start MENU leads (SG-C) — rendered from the turn verdict, ids
137
147
  // resolved against the (hidden-filtered) catalog so an id this description
138
148
  // may not name, or one that is not a skill here, is silently skipped rather
@@ -142,7 +152,7 @@ function describeOffer(allSkills, line, fullCatalog, offer) {
142
152
  .filter((c) => byId.has(c.id))
143
153
  .map((c) => {
144
154
  const pct = c.relevance !== undefined ? ` (relevance ~${Math.round(c.relevance * 100)}%)` : '';
145
- return `${line(byId.get(c.id))}${pct}`;
155
+ return `${describeOnce(byId.get(c.id))}${pct}`;
146
156
  });
147
157
  // ── THE CURSOR IS NAMED ON EVERY CALL THAT HAS ONE (9.84.0) ─────────
148
158
  // This used to be the STAY clause and nothing else, so it appeared only while
@@ -206,9 +216,8 @@ function describeOffer(allSkills, line, fullCatalog, offer) {
206
216
  // rides; the gate's self-call notice names tools because it reads the merged
207
217
  // list after the fact.
208
218
  const menuLead = offer.menu !== undefined && menuRows.length > 0
209
- ? `This turn needs a routing choice — no declared rule or intent decisively matched. ` +
210
- `Closest candidates (advisory; an offline scorer ranked them and cannot see the ` +
211
- `conversation):\n${menuRows.join('\n')}\n` +
219
+ ? `This turn needs a routing choice. Candidates for this turn ` +
220
+ `(advisory; use the conversation to choose):\n${menuRows.join('\n')}\n` +
212
221
  (staying
213
222
  ? cursorLead
214
223
  : `Answering WITHOUT calling read_skill is also allowed.\n\n${cursorLead}`)
@@ -220,7 +229,7 @@ function describeOffer(allSkills, line, fullCatalog, offer) {
220
229
  ? `Activate a skill for the next iteration. No skills are available to you — ` +
221
230
  `answer without one, or say what you are unable to do.\n\n${tail}`
222
231
  : `${menuLead}Activate a skill for the next iteration. Available skills:\n${skills
223
- .map(line)
232
+ .map(describeOnce)
224
233
  .join('\n')}\n\n${tail}`;
225
234
  }
226
235
  // The four target classes, from their ONE owner (9.86.0). `grantable` is the
@@ -256,7 +265,7 @@ function describeOffer(allSkills, line, fullCatalog, offer) {
256
265
  return (`${menuLead}Activate a skill for the next iteration. This map is a decision TREE: ` +
257
266
  `it routes by predicate on every iteration and keeps no cursor, so read_skill ` +
258
267
  `cannot move it — a pick of a routed skill is refused. What a pick CAN open are ` +
259
- `the skills the tree does not route:\n${open.map(line).join('\n')}\n\n${tail}`);
268
+ `the skills the tree does not route:\n${open.map(describeOnce).join('\n')}\n\n${tail}`);
260
269
  }
261
270
  // The cursor is never in `grantable` — `makeReachableSkills` filters it out of
262
271
  // its own successor set, because a MOVE to where you already are is not a move.
@@ -270,7 +279,7 @@ function describeOffer(allSkills, line, fullCatalog, offer) {
270
279
  const shut = skills.filter((s) => classOf(s.id) === 'unreachable');
271
280
  const parts = [];
272
281
  if (open.length > 0) {
273
- parts.push(`Reachable from here:\n${open.map(line).join('\n')}`);
282
+ parts.push(`Reachable from here:\n${open.map(describeOnce).join('\n')}`);
274
283
  }
275
284
  else if (!hopsSpoken.held) {
276
285
  // Nothing was wired out of here at all — an absence this description holds
@@ -279,7 +288,7 @@ function describeOffer(allSkills, line, fullCatalog, offer) {
279
288
  }
280
289
  if (offer.showRefusable !== false && shut.length > 0) {
281
290
  parts.push(`Not reachable from here (read_skill for these will be refused):\n${shut
282
- .map(line)
291
+ .map(describeOnce)
283
292
  .join('\n')}`);
284
293
  }
285
294
  // With every clause omitted the description names the cursor and stops, which
@@ -1 +1 @@
1
- {"version":3,"file":"skillToolDescriptors.js","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillToolDescriptors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skillToolDescriptors.js","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillToolDescriptors.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@
40
40
  * inject `_client` and skip the import path entirely.
41
41
  */
42
42
  import { readToolExtras } from './toolExtras.js';
43
+ import { readToolResult, resultModeOf } from './toolResult.js';
43
44
  import { createVendingFetch } from './gatewayTransport.js';
44
45
  import { retryingFetch } from './throttleRetry.js';
45
46
  import { refuseConflictingOptions } from './connectionRefusals.js';
@@ -77,6 +78,7 @@ const DEFAULT_CLIENT_INFO = {
77
78
  */
78
79
  export async function mcpClient(opts) {
79
80
  const name = opts.name ?? 'mcp';
81
+ const resultMode = resultModeOf(opts.resultMode, name);
80
82
  // Before anything connects: an option that names a behaviour which cannot
81
83
  // happen on the chosen arm is a defect, not a preference.
82
84
  refuseConflictingOptions(opts, name);
@@ -96,7 +98,7 @@ export async function mcpClient(opts) {
96
98
  const listed = opts.signal
97
99
  ? await connection.listTools(undefined, { signal: opts.signal })
98
100
  : await connection.listTools();
99
- return listed.tools.map((t) => wrapMcpTool(name, connection, t, opts.signal));
101
+ return listed.tools.map((t) => wrapMcpTool(name, connection, t, opts.signal, resultMode));
100
102
  };
101
103
  return {
102
104
  name,
@@ -245,7 +247,7 @@ function loadHttpModule(transport) {
245
247
  }
246
248
  }
247
249
  // ─── Tool wrapping ─────────────────────────────────────────────────
248
- function wrapMcpTool(serverName, connection, mcp, signal) {
250
+ function wrapMcpTool(serverName, connection, mcp, signal, resultMode) {
249
251
  const tool = {
250
252
  schema: {
251
253
  name: mcp.name,
@@ -279,103 +281,9 @@ function wrapMcpTool(serverName, connection, mcp, signal) {
279
281
  const result = signal
280
282
  ? await connection.callTool(params, undefined, { signal })
281
283
  : await connection.callTool(params);
282
- return readToolResult(result, mcp.name, serverName);
284
+ return readToolResult(result, mcp.name, serverName, resultMode);
283
285
  },
284
286
  };
285
287
  return tool;
286
288
  }
287
- // ─── Reading a tools/call answer (both arms of the protocol) ───────
288
- /**
289
- * Turn a `tools/call` answer into the text the agent hands the model.
290
- *
291
- * Three cases, because the protocol has three and pretending otherwise is what
292
- * broke on a server that answered the old way:
293
- *
294
- * 1. **content blocks** — today's shape. Text blocks are concatenated;
295
- * non-text blocks (images, resources) are summarized with their type.
296
- * `isError: true` becomes a thrown tool error, exactly as before.
297
- * 2. **`toolResult`** — the 2024-10-07 shape, which carries no `content` and
298
- * no `isError`. The value BECOMES the tool text: a string verbatim,
299
- * anything else JSON-stringified. That conversion is stated here and in
300
- * the docs rather than left to be inferred from a mangled answer.
301
- * 3. **neither** — a corrective error naming the SHAPE that arrived (its
302
- * type, or its keys) and never the payload: an unrecognised answer is
303
- * still somebody's data, and a tool error is read by the model.
304
- *
305
- * **Order matters, and here is why the legacy check runs first.** The SDK's
306
- * default result schema declares `content` with a default of `[]`, so a legacy
307
- * `{ toolResult }` payload arrives here wearing an empty `content` it never
308
- * sent. Reading that array first would answer a real result with an empty
309
- * string — the same silence in a friendlier coat. So a `toolResult` beside an
310
- * EMPTY `content` is read as the legacy answer it is. A NON-empty `content`
311
- * always wins: a server that sent blocks meant the blocks.
312
- */
313
- function readToolResult(result, toolName, serverName) {
314
- if (isLegacyResult(result) && !hasNonEmptyContent(result)) {
315
- return stringifyLegacyResult(result.toolResult);
316
- }
317
- if (hasContentBlocks(result)) {
318
- const text = result.content
319
- .map((c) => (c.type === 'text' && c.text ? c.text : `[${c.type}]`))
320
- .join('\n');
321
- if (result.isError) {
322
- throw new Error(`MCP tool '${toolName}' (server '${serverName}') returned an error: ${text}`);
323
- }
324
- return text;
325
- }
326
- throw new Error(`MCP tool '${toolName}' (server '${serverName}') answered with a shape this client does ` +
327
- `not understand: ${describeShape(result)}. A tools/call result carries either 'content' ` +
328
- `blocks or a legacy 'toolResult'; this had neither.`);
329
- }
330
- /**
331
- * The current arm. Checked on the wire value, not on the declared type — and
332
- * defensively, because a `null` or a scalar is exactly the kind of answer that
333
- * has to reach the corrective error rather than crash on the way to it.
334
- */
335
- function hasContentBlocks(result) {
336
- return Array.isArray(contentOf(result));
337
- }
338
- /** Blocks the server actually sent, as opposed to the schema's default `[]`. */
339
- function hasNonEmptyContent(result) {
340
- const content = contentOf(result);
341
- return Array.isArray(content) && content.length > 0;
342
- }
343
- function contentOf(result) {
344
- if (typeof result !== 'object' || result === null)
345
- return undefined;
346
- return result.content;
347
- }
348
- /** The 2024-10-07 arm — the key's PRESENCE is the signal; its value may be anything. */
349
- function isLegacyResult(result) {
350
- return typeof result === 'object' && result !== null && 'toolResult' in result;
351
- }
352
- /** A legacy `toolResult` as tool text: a string verbatim, anything else as JSON. */
353
- function stringifyLegacyResult(value) {
354
- if (typeof value === 'string')
355
- return value;
356
- if (value === undefined)
357
- return '';
358
- try {
359
- return JSON.stringify(value) ?? String(value);
360
- }
361
- catch {
362
- // Circular or otherwise unserializable — say what we can rather than
363
- // throwing from a path whose whole job is to report an answer.
364
- return String(value);
365
- }
366
- }
367
- /** Name a value's SHAPE for an error message. Never its contents. */
368
- function describeShape(value) {
369
- if (value === null)
370
- return 'null';
371
- if (Array.isArray(value))
372
- return `an array of ${value.length} item(s)`;
373
- if (typeof value !== 'object')
374
- return `a ${typeof value}`;
375
- const keys = Object.keys(value);
376
- if (keys.length === 0)
377
- return 'an object with no keys';
378
- const shown = keys.slice(0, 8);
379
- return `an object with keys [${shown.join(', ')}${keys.length > shown.length ? ', …' : ''}]`;
380
- }
381
289
  //# sourceMappingURL=mcpClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../../../src/lib/mcp/mcpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../../../src/lib/mcp/mcpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAaH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qEAAqE;AACrE,uEAAuE;AACvE,mEAAmE;AACnE,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAA6C;IAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;IAChC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvD,0EAA0E;IAC1E,0DAA0D;IAC1D,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IAE9C,kEAAkE;IAClE,kDAAkD;IAClD,IAAI,KAAK,GAA2B,IAAI,CAAC;IACzC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,UAAU,GAAG,CAAC,EAAU,EAAQ,EAAE;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,KAAK,EAAE,+DAA+D,CACxF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,IAA8B,EAAE;QACtD,sEAAsE;QACtE,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YACxB,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAChE,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,KAAK;YACT,UAAU,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK;gBAAE,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,OAAO;YACX,UAAU,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,GAAG,IAAI,CAAC;YACb,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,sEAAsE;AAEtE;;;;;;GAMG;AACH,KAAK,UAAU,cAAc,CAC3B,IAA6C;IAE7C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IAC1D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IACpD,wEAAwE;IACxE,6EAA6E;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAyB,CAAC;IACjD,OAAO,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChG,CAAC;AAED,uEAAuE;AAEvE,KAAK,UAAU,aAAa,CAC1B,SAAuB,EACvB,UAA8C,EAC9C,MAAoB,EACpB,eAAiC,EACjC,GAAY;IAEZ,MAAM,GAAG,GAAkB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAErD,MAAM,MAAM,GAAiB,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,mBAAmB,EAAE;QAC7E,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;IAC5E,6EAA6E;IAC7E,IAAI,MAAM;QAAE,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;;QACvD,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iFAAiF;AACjF,SAAS,gBAAgB;IACvB,IAAI,CAAC;QACH,OAAO,WAAW,CAAgB,2CAA2C,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,cAAc,CAAC,GAAG,EAAE;YAClB,YAAY,EACV,iDAAiD;gBACjD,qDAAqD;gBACrD,yCAAyC;YAC3C,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,2CAA2C;YACtD,OAAO,EACL,wEAAwE;gBACxE,oCAAoC;SACvC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,CAAe,EACf,eAAiC,EACjC,GAAY;IAEZ,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QAC5B,yEAAyE;QACzE,wEAAwE;QACxE,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,QAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,GAAG,WAAW,CAAkB,2CAA2C,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,cAAc,CAAC,GAAG,EAAE;gBAClB,YAAY,EACV,wEAAwE;oBACxE,0EAA0E;gBAC5E,MAAM,EAAE,kBAAkB;gBAC1B,SAAS,EAAE,2CAA2C;gBACtD,OAAO,EACL,oEAAoE;oBACpE,wEAAwE;aAC3E,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,oBAAoB,CAAC;YACvC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YACnC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,OAAO,GAAmB,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnE,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,6EAA6E;IAC7E,qBAAqB;IACrB,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9B,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,sEAAsE;QACtE,qEAAqE;QACrE,0EAA0E;QAC1E,oBAAoB;QACpB,OAAO,IAAI,OAAO,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE;YACjF,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IACD,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,4DAA4D;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC1D,OAAO,IAAI,OAAO,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE;QACjF,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;QAChE,GAAG,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CAAC,SAA6B;IACnD,IAAI,CAAC;QACH,OAAO,WAAW,CAAiB,oDAAoD,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,cAAc,CAAC,GAAG,EAAE;YAClB,YAAY,EACV,aAAa,SAAS,kEAAkE;gBACxF,0EAA0E;YAC5E,MAAM,EAAE,aAAa,SAAS,GAAG;YACjC,SAAS,EAAE,oDAAoD;YAC/D,OAAO,EACL,wEAAwE;gBACxE,oCAAoC;SACvC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,sEAAsE;AAEtE,SAAS,WAAW,CAClB,UAAkB,EAClB,UAAyB,EACzB,GAAkB,EAClB,MAAoB,EACpB,UAA2C;IAE3C,MAAM,IAAI,GAAS;QACjB,MAAM,EAAE;YACN,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,aAAa,GAAG,CAAC,IAAI,EAAE;YACvD,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B;QACD,0EAA0E;QAC1E,yEAAyE;QACzE,oDAAoD;QACpD,MAAM,EAAE,UAAU;QAClB,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,kEAAkE;QAClE,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACpE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,4DAA4D;YAC5D,+DAA+D;YAC/D,6BAA6B;YAC7B,MAAM,OAAO,GACX,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC/D,CAAC,CAAE,IAAgC;gBACnC,CAAC,CAAC,EAAE,CAAC;YACT,oEAAoE;YACpE,qEAAqE;YACrE,oEAAoE;YACpE,oEAAoE;YACpE,6DAA6D;YAC7D,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM;gBACnB,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC;gBAC1D,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;KACF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -28,7 +28,7 @@
28
28
  * — stable, documented, and the right level of abstraction for
29
29
  * mock-first development.
30
30
  */
31
- import type { McpClient } from './types.js';
31
+ import type { McpClient, McpClientOptions, McpCallToolResult } from './types.js';
32
32
  /** A scripted tool exposed by the mock MCP server. */
33
33
  export interface MockMcpTool {
34
34
  /** Tool name as the LLM sees it. */
@@ -68,19 +68,23 @@ export interface MockMcpTool {
68
68
  readonly _meta?: Readonly<Record<string, unknown>>;
69
69
  /**
70
70
  * Async handler that runs when the agent calls this tool. Receives
71
- * the args the LLM produced; returns the string result the agent
72
- * sees as the tool-result message.
71
+ * the args the LLM produced; returns a string or an MCP result envelope.
72
+ * Strings retain the existing behavior in text mode; envelopes use the
73
+ * same result decoder as the real client.
73
74
  *
74
75
  * Defaults to `async () => '[mock result]'` when omitted — useful
75
76
  * when the consumer cares about wiring not behavior.
76
77
  */
77
- readonly handler?: (args: Record<string, unknown>) => Promise<string>;
78
+ readonly handler?: (args: Record<string, unknown>) => Promise<string | McpCallToolResult>;
78
79
  }
79
80
  export interface MockMcpClientOptions {
80
81
  /** Logical server name. Surfaces in observability + error messages. */
81
82
  readonly name?: string;
82
83
  /** Tools exposed by the mock server. */
83
84
  readonly tools: readonly MockMcpTool[];
85
+ /** Same result decoding as mcpClient. A string handler becomes one text
86
+ * block; return McpCallToolResult to exercise structuredContent or isError. */
87
+ readonly resultMode?: McpClientOptions['resultMode'];
84
88
  }
85
89
  /**
86
90
  * Build an in-memory `McpClient`. Useful when you want to develop
@@ -29,6 +29,7 @@
29
29
  * mock-first development.
30
30
  */
31
31
  import { readToolExtras } from './toolExtras.js';
32
+ import { readToolResult, resultModeOf } from './toolResult.js';
32
33
  /**
33
34
  * Build an in-memory `McpClient`. Useful when you want to develop
34
35
  * against MCP semantics without spawning subprocesses, hitting the
@@ -37,6 +38,7 @@ import { readToolExtras } from './toolExtras.js';
37
38
  */
38
39
  export function mockMcpClient(options) {
39
40
  const name = options.name ?? 'mock-mcp';
41
+ const resultMode = resultModeOf(options.resultMode, name);
40
42
  const toolMap = new Map(options.tools.map((t) => [t.name, t]));
41
43
  let cache = null;
42
44
  let closed = false;
@@ -45,7 +47,7 @@ export function mockMcpClient(options) {
45
47
  throw new Error(`mockMcpClient[${name}].${op}() called after close(). Construct a new client to reuse.`);
46
48
  }
47
49
  };
48
- const buildTools = () => options.tools.map((mcp) => wrapMockTool(name, toolMap, mcp));
50
+ const buildTools = () => options.tools.map((mcp) => wrapMockTool(name, toolMap, mcp, resultMode));
49
51
  return {
50
52
  name,
51
53
  async tools() {
@@ -67,7 +69,7 @@ export function mockMcpClient(options) {
67
69
  },
68
70
  };
69
71
  }
70
- function wrapMockTool(serverName, toolMap, mcp) {
72
+ function wrapMockTool(serverName, toolMap, mcp, resultMode) {
71
73
  const tool = {
72
74
  schema: {
73
75
  name: mcp.name,
@@ -90,10 +92,9 @@ function wrapMockTool(serverName, toolMap, mcp) {
90
92
  // mutable Map could be supported later. For now `toolMap` is
91
93
  // built once at factory time.
92
94
  const handler = toolMap.get(mcp.name)?.handler;
93
- if (!handler)
94
- return '[mock result]';
95
95
  try {
96
- return await handler(argsObj);
96
+ const result = handler ? await handler(argsObj) : '[mock result]';
97
+ return readToolResult(typeof result === 'string' ? { content: [{ type: 'text', text: result }] } : result, mcp.name, serverName, resultMode);
97
98
  }
98
99
  catch (err) {
99
100
  const msg = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"mockMcpClient.js","sourceRoot":"","sources":["../../../../src/lib/mcp/mockMcpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockMcpClient.js","sourceRoot":"","sources":["../../../../src/lib/mcp/mockMcpClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** MCP result decoding; default text is unchanged, structured data is opt-in. */
2
+ import type { McpCallToolResult, McpClientOptions } from './types.js';
3
+ type ResultMode = NonNullable<McpClientOptions['resultMode']>;
4
+ /** Validate before opening a transport; a misspelled opt-in must not disappear. */
5
+ export declare function resultModeOf(value: unknown, name: string): ResultMode;
6
+ /** Internal shared decoder for the real connection and curated mock. */
7
+ export declare function readToolResult(result: McpCallToolResult, toolName: string, serverName: string, mode?: ResultMode): unknown;
8
+ export {};