@zackbart/connecta 0.10.4 → 0.10.6

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 (71) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/dist/activity.d.ts +11 -1
  3. package/dist/activity.d.ts.map +1 -1
  4. package/dist/activity.js +44 -3
  5. package/dist/activity.js.map +1 -1
  6. package/dist/catalog-service.d.ts +40 -0
  7. package/dist/catalog-service.d.ts.map +1 -1
  8. package/dist/catalog-service.js +97 -15
  9. package/dist/catalog-service.js.map +1 -1
  10. package/dist/errors.d.ts +48 -1
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/errors.js +67 -0
  13. package/dist/errors.js.map +1 -1
  14. package/dist/execute.d.ts +72 -0
  15. package/dist/execute.d.ts.map +1 -1
  16. package/dist/execute.js +163 -10
  17. package/dist/execute.js.map +1 -1
  18. package/dist/index.d.ts +15 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +6 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/invocation.d.ts +9 -2
  23. package/dist/invocation.d.ts.map +1 -1
  24. package/dist/invocation.js +59 -29
  25. package/dist/invocation.js.map +1 -1
  26. package/dist/meta-tools.d.ts +12 -3
  27. package/dist/meta-tools.d.ts.map +1 -1
  28. package/dist/meta-tools.js +185 -30
  29. package/dist/meta-tools.js.map +1 -1
  30. package/dist/operator-ui/generated.d.ts +1 -1
  31. package/dist/operator-ui/generated.d.ts.map +1 -1
  32. package/dist/operator-ui/generated.js +1 -1
  33. package/dist/operator-ui/generated.js.map +1 -1
  34. package/dist/registry.d.ts +11 -0
  35. package/dist/registry.d.ts.map +1 -1
  36. package/dist/registry.js +5 -2
  37. package/dist/registry.js.map +1 -1
  38. package/dist/routes/mcp.d.ts.map +1 -1
  39. package/dist/routes/mcp.js +9 -0
  40. package/dist/routes/mcp.js.map +1 -1
  41. package/dist/routes/shared.d.ts +4 -0
  42. package/dist/routes/shared.d.ts.map +1 -1
  43. package/dist/routes/shared.js.map +1 -1
  44. package/dist/skills.d.ts +1 -1
  45. package/dist/skills.d.ts.map +1 -1
  46. package/dist/skills.js +1 -1
  47. package/dist/version.d.ts +1 -1
  48. package/dist/version.js +1 -1
  49. package/documentation/code-mode.md +125 -34
  50. package/documentation/meta-tools.md +91 -9
  51. package/documentation/rich-output-design.md +212 -0
  52. package/ethos.md +17 -19
  53. package/examples/worker/README.md +11 -3
  54. package/examples/worker/src/d1-activity-row.ts +40 -0
  55. package/examples/worker/src/d1-activity.ts +3 -2
  56. package/package.json +1 -1
  57. package/src/activity.ts +64 -3
  58. package/src/catalog-service.ts +166 -26
  59. package/src/errors.ts +102 -1
  60. package/src/execute.ts +240 -10
  61. package/src/index.ts +22 -0
  62. package/src/invocation.ts +59 -17
  63. package/src/meta-tools.ts +239 -37
  64. package/src/operator-ui/browser.ts +10 -2
  65. package/src/operator-ui/generated.ts +1 -1
  66. package/src/registry.ts +5 -2
  67. package/src/routes/mcp.ts +9 -0
  68. package/src/routes/shared.ts +4 -0
  69. package/src/skills.ts +1 -1
  70. package/src/version.ts +1 -1
  71. package/templates/node/package.json +1 -1
@@ -1,7 +1,8 @@
1
1
  import { recordToolActivity, } from "./activity.js";
2
2
  import { isCallAdmissionError } from "./call-admission.js";
3
- import { classifyCallError, ConnectorCallError, framingError, } from "./errors.js";
3
+ import { classifyCallError, ConnectorCallError, echoedCallArgs, framingError, } from "./errors.js";
4
4
  import { unwrapMcpResult } from "./mcp-result.js";
5
+ import { splitAddress } from "./registry.js";
5
6
  import { isExplicitlyReadOnly } from "./tool-safety.js";
6
7
  import { validateToolInput } from "./validate.js";
7
8
  /**
@@ -131,6 +132,10 @@ export class InvocationService {
131
132
  let attempts = 0;
132
133
  let resolved;
133
134
  let activityTarget;
135
+ // The address as written, used for activity when resolution never reached
136
+ // a connector. Only its two halves are recorded — the same fields activity
137
+ // has always carried — so no new class of payload enters the log.
138
+ const attempted = splitAddress(address);
134
139
  const timing = () => ({
135
140
  catalogMs,
136
141
  admissionMs,
@@ -139,60 +144,84 @@ export class InvocationService {
139
144
  resultProcessingMs,
140
145
  totalMs: Date.now() - started,
141
146
  });
142
- const record = (outcome, errorCode) => {
143
- if (!activityTarget)
147
+ const record = (outcome, classification = {}) => {
148
+ const identity = activityTarget
149
+ ? {
150
+ connectorId: activityTarget.connector.id,
151
+ toolName: activityTarget.toolName,
152
+ }
153
+ : attempted;
154
+ if (!identity)
144
155
  return;
145
156
  recordToolActivity(this.activity, {
146
- connectorId: activityTarget.connector.id,
147
- toolName: activityTarget.toolName,
148
- address: `${activityTarget.connector.id}.${activityTarget.toolName}`,
157
+ connectorId: identity.connectorId,
158
+ toolName: identity.toolName,
159
+ address: `${identity.connectorId}.${identity.toolName}`,
149
160
  source: context.source,
150
161
  outcome,
151
162
  durationMs: Date.now() - started,
152
163
  attempts,
153
- ...(errorCode ? { errorCode } : {}),
164
+ ...(classification.errorCode
165
+ ? { errorCode: classification.errorCode }
166
+ : {}),
167
+ ...(classification.friction
168
+ ? { friction: classification.friction }
169
+ : {}),
154
170
  });
155
171
  };
156
172
  const failed = (error) => {
157
173
  const diagnostics = timing();
158
174
  const target = resolved ?? activityTarget;
159
- const details = error.code === "auth_required" && target
175
+ const echoed = error.code === "destructive_tool_requires_approval"
176
+ ? echoedCallArgs(args)
177
+ : {};
178
+ const details = error.code === "destructive_tool_requires_approval" && target
160
179
  ? {
161
180
  ...error,
162
- connector: target.connector.id,
163
- operation: `${target.connector.id}.${target.toolName}`,
164
- recovery: recoveryMode(this.registry, target.connector, this.catalog.baseUrl),
165
181
  nextAction: {
166
- tool: "authorize_connector",
167
- arguments: { connector: target.connector.id },
168
- operatorHandoff: "Give the URL and instructions it returns to the operator.",
182
+ tool: "call_destructive_tool",
183
+ arguments: {
184
+ address: `${target.connector.id}.${target.toolName}`,
185
+ ...echoed,
186
+ },
187
+ purpose: "Ask the MCP host to approve this consequential call. " +
188
+ ("args" in echoed
189
+ ? "Re-send these arguments and add a short reason for the human reviewer."
190
+ : "Re-send the arguments you just sent — they are too large to echo back — and add a short reason for the human reviewer."),
169
191
  },
170
- retry: `Retry ${target.connector.id}.${target.toolName} after ` +
171
- "the operator completes recovery.",
172
192
  }
173
- : error.code === "invalid_args" && error.validation && target
193
+ : error.code === "auth_required" && target
174
194
  ? {
175
195
  ...error,
176
196
  connector: target.connector.id,
177
197
  operation: `${target.connector.id}.${target.toolName}`,
198
+ recovery: recoveryMode(this.registry, target.connector, this.catalog.baseUrl),
178
199
  nextAction: {
179
- tool: "search_tools",
180
- arguments: {
181
- query: target.toolName,
182
- connector: target.connector.id,
183
- includeSchemas: "compact",
184
- },
185
- purpose: "Inspect the current input shape if the validation findings are not sufficient.",
200
+ tool: "authorize_connector",
201
+ arguments: { connector: target.connector.id },
202
+ operatorHandoff: "Give the URL and instructions it returns to the operator.",
186
203
  },
187
- retry: `Correct the listed arguments and retry ` +
188
- `${target.connector.id}.${target.toolName}.`,
204
+ retry: `Retry ${target.connector.id}.${target.toolName} after ` +
205
+ "the operator completes recovery.",
189
206
  }
190
- : error;
207
+ : error.code === "invalid_args" && error.validation && target
208
+ ? {
209
+ ...error,
210
+ connector: target.connector.id,
211
+ operation: `${target.connector.id}.${target.toolName}`,
212
+ nextAction: this.catalog.searchRecovery({
213
+ query: target.toolName,
214
+ connector: target.connector.id,
215
+ }, "Inspect the current input shape if the validation findings are not sufficient."),
216
+ retry: `Correct the listed arguments and retry ` +
217
+ `${target.connector.id}.${target.toolName}.`,
218
+ }
219
+ : error;
191
220
  record(details.code === "timeout"
192
221
  ? "timeout"
193
222
  : details.code === "cancelled"
194
223
  ? "cancelled"
195
- : "error", details.code);
224
+ : "error", { errorCode: details.code });
196
225
  return {
197
226
  ok: false,
198
227
  durationMs: Date.now() - started,
@@ -411,7 +440,8 @@ export class InvocationService {
411
440
  : result;
412
441
  resultProcessingMs += Date.now() - processingStarted;
413
442
  const diagnostics = timing();
414
- record("success");
443
+ const friction = context.activityFriction?.(value);
444
+ record("success", friction ? { friction } : {});
415
445
  return {
416
446
  ok: true,
417
447
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../src/invocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../src/invocation.ts"],"names":[],"mappings":"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"}
@@ -56,11 +56,16 @@ export interface SearchArgs {
56
56
  fullDescriptions?: boolean;
57
57
  includeSchemas?: "compact" | "json";
58
58
  }
59
- export interface DescribeArgs {
59
+ export type DescribeArgs = ({
60
+ address: string;
61
+ addresses?: never;
62
+ } | {
63
+ address?: never;
60
64
  addresses: string[];
65
+ }) & {
61
66
  format?: "compact" | "json";
62
67
  fullDescriptions?: boolean;
63
- }
68
+ };
64
69
  export interface ListArgs {
65
70
  /** When false, return cached/observed health without downstream I/O. */
66
71
  probe?: boolean;
@@ -77,6 +82,10 @@ export interface CallArgs {
77
82
  /** Include connector/catalog/result-processing timing segments. */
78
83
  diagnostics?: boolean;
79
84
  }
85
+ export interface DestructiveCallArgs extends CallArgs {
86
+ /** Short model-authored context for the host's approval UI; never downstream input. */
87
+ reason?: string;
88
+ }
80
89
  export interface GetResultArgs {
81
90
  id: string;
82
91
  /**
@@ -139,7 +148,7 @@ export declare function createMetaTools(registry: RegistryView, baseUrl: string,
139
148
  searchTools(args: SearchArgs): Promise<ToolResult>;
140
149
  describeTools(args: DescribeArgs): Promise<ToolResult>;
141
150
  callTool(args: CallArgs): Promise<ToolResult>;
142
- callDestructiveTool(args: CallArgs): Promise<ToolResult>;
151
+ callDestructiveTool(args: DestructiveCallArgs): Promise<ToolResult>;
143
152
  getResult(args: GetResultArgs): Promise<ToolResult>;
144
153
  batchCall(args: BatchArgs): Promise<ToolResult>;
145
154
  authorizeConnector(args: AuthorizeArgs): Promise<ToolResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"meta-tools.d.ts","sourceRoot":"","sources":["../src/meta-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-tools.d.ts","sourceRoot":"","sources":["../src/meta-tools.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  import { boundedDiscoveryText, CatalogService, DEFAULT_SEARCH_LIMIT, DiscoveryPolicyError, groupedSearchResult, MAX_DESCRIBE_ADDRESSES, MAX_DISCOVERY_RESULT_BYTES, MAX_SEARCH_LIMIT, } from "./catalog-service.js";
3
3
  import { mapSettledWithConcurrency, resolveDiscoveryConcurrency, } from "./concurrency.js";
4
4
  import { closeConnectorScope, } from "./connector-scope.js";
5
- import { classifyCallError, messageLooksRetryable, } from "./errors.js";
5
+ import { boundedEchoText, classifyCallError, echoedCallArgs, messageLooksRetryable, } from "./errors.js";
6
6
  import { InvocationService, MAX_RETRY_BACKOFF_MS, retryBackoffMs, } from "./invocation.js";
7
7
  import { isValidMaxResultBytes, MIN_MAX_RESULT_BYTES, resolveMaxResultBytes, } from "./registry.js";
8
8
  import { hasConnectorGuides, listSkills, resolveSkill, } from "./skills.js";
@@ -496,7 +496,14 @@ function schemaProjectionFeedback(outputSchema, unmatchedFields) {
496
496
  const invalidFields = analysis.complete
497
497
  ? unmatchedFields.filter((field) => !available.has(field))
498
498
  : [];
499
+ const missingArrayMarker = unmatchedFields.some((field) => analysis.paths.some((availableField) => availableField.includes("[]") &&
500
+ availableField.replaceAll("[]", "") === field));
499
501
  return {
502
+ ...(missingArrayMarker
503
+ ? {
504
+ hint: 'Traverse arrays with [] after the array field name, for example "results[].id".',
505
+ }
506
+ : {}),
500
507
  schemaDeclared: true,
501
508
  schemaCoverage: analysis.complete ? "complete" : "partial",
502
509
  ...(invalidFields.length > 0 ? { invalidFields } : {}),
@@ -599,16 +606,91 @@ async function stashResult(text, results, totalBytes) {
599
606
  resultId: id,
600
607
  totalBytes,
601
608
  hint: "use get_result {id, offset} to page, or re-call with fields to select less",
609
+ nextAction: {
610
+ tool: "get_result",
611
+ arguments: { id, offset: 0 },
612
+ },
602
613
  };
603
614
  }
604
- /** Keep an oversized batch's inline outcome summary at fixed string overhead. */
615
+ /**
616
+ * Keep an oversized batch's inline outcome summary at fixed string overhead.
617
+ * The same clamp the error envelopes use — one budget, one marker, defined
618
+ * once in `errors.ts` so the two cannot drift apart.
619
+ */
605
620
  function batchSummaryString(value) {
606
- const bytes = enc.encode(value);
607
- const maxBytes = 512;
608
- if (bytes.length <= maxBytes)
609
- return value;
610
- const end = alignEndToCharBoundary(bytes, 0, maxBytes, bytes.length);
611
- return `${dec.decode(bytes.slice(0, end))}…`;
621
+ return boundedEchoText(value);
622
+ }
623
+ /** Candidate addresses kept in an oversized batch's summary of one ambiguity. */
624
+ const MAX_SUMMARY_ADDRESSES = 10;
625
+ /**
626
+ * A recovery route rebuilt field by field so the summary above keeps its
627
+ * promise. Spreading `nextAction` through raw would reopen the hole this
628
+ * function closes: every variant carries free-form strings, and one of them
629
+ * carries the caller's arguments, which is exactly the payload an oversized
630
+ * batch was already too large to hold.
631
+ */
632
+ function batchSummaryNextAction(nextAction) {
633
+ if ("function" in nextAction) {
634
+ // A batch runs on the top-level catalog, whose search route is the tool, so
635
+ // the function-keyed discovery variant does not arrive here today. Rebuild
636
+ // it anyway: a guard that silently dropped an unrecognized route would turn
637
+ // a recovery record into nothing at exactly the moment one is needed.
638
+ if (nextAction.function === "connecta.search") {
639
+ return {
640
+ function: "connecta.search",
641
+ arguments: batchSummarySearchArgs(nextAction.arguments),
642
+ purpose: batchSummaryString(nextAction.purpose),
643
+ };
644
+ }
645
+ // Say so when the candidate list is clipped. The unclipped purpose reads
646
+ // "choose the intended canonical address", which is a lie about a list
647
+ // that no longer contains every candidate — and the caller has no other
648
+ // way to learn that the address it wants was the eleventh.
649
+ const candidates = nextAction.addresses.slice(0, MAX_SUMMARY_ADDRESSES);
650
+ return {
651
+ function: nextAction.function,
652
+ addresses: candidates.map(batchSummaryString),
653
+ purpose: batchSummaryString(candidates.length < nextAction.addresses.length
654
+ ? `${nextAction.purpose} Showing the first ${candidates.length} of ` +
655
+ `${nextAction.addresses.length} candidates; re-run the call on its ` +
656
+ "own to see them all."
657
+ : nextAction.purpose),
658
+ };
659
+ }
660
+ if (nextAction.tool === "authorize_connector") {
661
+ return {
662
+ tool: "authorize_connector",
663
+ arguments: {
664
+ connector: batchSummaryString(nextAction.arguments.connector),
665
+ },
666
+ operatorHandoff: batchSummaryString(nextAction.operatorHandoff),
667
+ };
668
+ }
669
+ if (nextAction.tool === "call_destructive_tool") {
670
+ return {
671
+ tool: "call_destructive_tool",
672
+ arguments: {
673
+ address: batchSummaryString(nextAction.arguments.address),
674
+ ...echoedCallArgs(nextAction.arguments.args),
675
+ },
676
+ purpose: batchSummaryString(nextAction.purpose),
677
+ };
678
+ }
679
+ return {
680
+ tool: "search_tools",
681
+ arguments: batchSummarySearchArgs(nextAction.arguments),
682
+ purpose: batchSummaryString(nextAction.purpose),
683
+ };
684
+ }
685
+ /** The scoping arguments both discovery routes carry, bounded the same way. */
686
+ function batchSummarySearchArgs(args) {
687
+ return {
688
+ query: batchSummaryString(args.query),
689
+ ...(args.connector !== undefined
690
+ ? { connector: batchSummaryString(args.connector) }
691
+ : {}),
692
+ includeSchemas: "compact",
693
+ };
612
694
  }
613
695
  /**
614
696
  * Return `text` as a single content block; if it exceeds `cap` bytes, stash the
@@ -618,12 +700,18 @@ function batchSummaryString(value) {
618
700
  */
619
701
  async function guardEncoded(text, bytes, results, cap) {
620
702
  if (bytes.length <= cap) {
621
- return { content: [{ type: "text", text }] };
703
+ return {
704
+ result: { content: [{ type: "text", text }] },
705
+ truncated: false,
706
+ };
622
707
  }
623
708
  const notice = await stashResult(text, results, bytes.length);
624
709
  const head = dec.decode(bytes.slice(0, alignEndToCharBoundary(bytes, 0, cap, bytes.length)));
625
710
  return {
626
- content: [{ type: "text", text: `${head}\n${JSON.stringify(notice)}` }],
711
+ result: {
712
+ content: [{ type: "text", text: `${head}\n${JSON.stringify(notice)}` }],
713
+ },
714
+ truncated: true,
627
715
  };
628
716
  }
629
717
  /** {@link guardEncoded} over a string that has not been measured yet. */
@@ -641,8 +729,11 @@ async function guardValue(value, results, cap) {
641
729
  const text = serializeResultText(value);
642
730
  const bytes = enc.encode(text);
643
731
  if (bytes.length <= cap)
644
- return value;
645
- return stashResult(text, results, bytes.length);
732
+ return { result: value, truncated: false };
733
+ return {
734
+ result: await stashResult(text, results, bytes.length),
735
+ truncated: true,
736
+ };
646
737
  }
647
738
  /**
648
739
  * Bound a downstream MCP `content` array by `cap`, measuring the serialized
@@ -672,18 +763,36 @@ async function guardContent(content, results, cap) {
672
763
  // be measured, stashed, or paged either — there is nothing this guard could
673
764
  // do with it. Pass it through as the old text-only measure did, rather than
674
765
  // turning a call that used to succeed into result_processing_failed.
675
- return { content };
766
+ return { result: { content }, truncated: false };
676
767
  }
677
768
  const bytes = enc.encode(text);
678
769
  // Under the cap the downstream blocks pass through untouched, non-text ones
679
770
  // included, in their original order.
680
- if (bytes.length <= cap)
681
- return { content };
771
+ if (bytes.length <= cap) {
772
+ return { result: { content }, truncated: false };
773
+ }
682
774
  if (content.every((b) => b.type === "text")) {
683
775
  return guardEncoded(text, bytes, results, cap);
684
776
  }
685
777
  const notice = await stashResult(text, results, bytes.length);
686
- return { content: [{ type: "text", text: JSON.stringify(notice) }] };
778
+ return {
779
+ result: { content: [{ type: "text", text: JSON.stringify(notice) }] },
780
+ truncated: true,
781
+ };
782
+ }
783
+ /**
784
+ * The sentence that closes the OAuth handoff, telling the operator's agent how
785
+ * to confirm the flow landed. `authorize_connector` is registered on both
786
+ * surfaces but `list_connectors` is not, so the classic status check cannot be
787
+ * the only one offered: a code-first agent handed that advice gets an
788
+ * unknown-tool error at exactly the moment it is trying to recover. It gets the
789
+ * check its own surface serves instead — the same folded-name defect as the
790
+ * describe path (#261), one tool result further along.
791
+ */
792
+ function oauthFollowUp(surface, connectorId) {
793
+ return surface === "code-first"
794
+ ? `Then retry the original call; connecta.search({ connector: ${JSON.stringify(connectorId)} }) inside execute_code confirms the catalog now loads.`
795
+ : "Re-run list_connectors afterwards to confirm status is ok.";
687
796
  }
688
797
  /**
689
798
  * Every base meta-tool handler over a registry — all nine, whichever surface is
@@ -714,6 +823,13 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
714
823
  requestScope,
715
824
  probeTimeoutMs,
716
825
  concurrency: discoveryConcurrency,
826
+ // These handlers are the top-level tools, so the route is the advertised
827
+ // one; in-program describes route through connecta.describe instead and
828
+ // are built with their own CatalogService in execute.ts.
829
+ describeRoute: surface === "code-first" ? "connecta.describe" : "describe_tools",
830
+ // searchRoute keeps its default: unlike describe_tools, search_tools is
831
+ // served by both advertised surfaces, so a top-level handler has nothing to
832
+ // derive. Only an in-program caller needs to be sent to connecta.search.
717
833
  });
718
834
  const invocation = new InvocationService(registry, catalog, opts.activity);
719
835
  const withProbeDeadline = (label, operation) => withAbortableTimeout((signal) => operation({ signal, timeoutMs: probeTimeoutMs }), probeTimeoutMs, label);
@@ -747,10 +863,14 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
747
863
  let value = fields
748
864
  ? projectionValue(result, fields, resolved.definition.outputSchema)
749
865
  : result;
750
- value = await guardValue(value, results, cap);
866
+ const guarded = await guardValue(value, results, cap);
867
+ value = guarded.result;
751
868
  return {
752
869
  toolResult: jsonResult({ ok: true, data: value }),
753
870
  value,
871
+ ...(guarded.truncated
872
+ ? { friction: "result_too_large" }
873
+ : {}),
754
874
  };
755
875
  }
756
876
  if (resolved.connector.kind === "mcp") {
@@ -759,19 +879,32 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
759
879
  if (fields) {
760
880
  content = applyFieldsToContent(content, fields, resolved.definition.outputSchema);
761
881
  }
762
- return { toolResult: await guardContent(content, results, cap) };
882
+ const guarded = await guardContent(content, results, cap);
883
+ return {
884
+ toolResult: guarded.result,
885
+ ...(guarded.truncated
886
+ ? { friction: "result_too_large" }
887
+ : {}),
888
+ };
763
889
  }
764
890
  const value = fields
765
891
  ? projectionValue(result, fields, resolved.definition.outputSchema)
766
892
  : result;
893
+ const guarded = await guardText(serializeResultText(value), results, cap);
767
894
  return {
768
- toolResult: await guardText(serializeResultText(value), results, cap),
895
+ toolResult: guarded.result,
769
896
  value,
897
+ ...(guarded.truncated
898
+ ? { friction: "result_too_large" }
899
+ : {}),
770
900
  };
771
901
  },
902
+ activityFriction: (processed) => processed.friction,
772
903
  });
773
904
  if (!outcome.ok) {
774
- const failedResult = outcome.error.code === "auth_required" ||
905
+ const structuredRecovery = outcome.error.nextAction !== undefined;
906
+ const failedResult = structuredRecovery ||
907
+ outcome.error.code === "auth_required" ||
775
908
  outcome.error.code === "invalid_args" ||
776
909
  outcome.error.code === "input_required_unsupported" ||
777
910
  call.resultMode === "value"
@@ -783,7 +916,8 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
783
916
  ...(call.diagnostics ? { timing: outcome.timing } : {}),
784
917
  })
785
918
  : errorResult(outcome.error.message);
786
- if (outcome.error.code === "auth_required" ||
919
+ if (structuredRecovery ||
920
+ outcome.error.code === "auth_required" ||
787
921
  outcome.error.code === "invalid_args" ||
788
922
  outcome.error.code === "input_required_unsupported") {
789
923
  failedResult.isError = true;
@@ -940,7 +1074,10 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
940
1074
  return jsonResult({ connectors: out });
941
1075
  },
942
1076
  async searchTools(args) {
943
- return discoveryResult(async () => groupedSearchResult(await catalog.search(args)), "Request a smaller limit, omit fullDescriptions, or use compact schemas.");
1077
+ return discoveryResult(async () => groupedSearchResult(await catalog.search({
1078
+ ...args,
1079
+ includeSchemaKeys: args.includeSchemas !== undefined,
1080
+ })), "Request a smaller limit, omit fullDescriptions, or use compact schemas.");
944
1081
  },
945
1082
  async describeTools(args) {
946
1083
  return discoveryResult(async () => ({ tools: await catalog.describe(args) }), 'Split the address list or use format: "compact".');
@@ -949,6 +1086,8 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
949
1086
  return (await runCall(args, "call_tool")).toolResult;
950
1087
  },
951
1088
  async callDestructiveTool(args) {
1089
+ // `reason` is read by the host's approval view and stops there — runCall
1090
+ // forwards only the call fields, so it never reaches the connector.
952
1091
  return (await runCall(args, "call_destructive_tool", { allowDestructive: true })).toolResult;
953
1092
  },
954
1093
  async getResult(args) {
@@ -1111,7 +1250,7 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
1111
1250
  ? { recovery: details.recovery }
1112
1251
  : {}),
1113
1252
  ...(details.nextAction !== undefined
1114
- ? { nextAction: details.nextAction }
1253
+ ? { nextAction: batchSummaryNextAction(details.nextAction) }
1115
1254
  : {}),
1116
1255
  ...(details.retry !== undefined
1117
1256
  ? { retry: batchSummaryString(details.retry) }
@@ -1185,7 +1324,8 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
1185
1324
  ...(status.authorizationUrl
1186
1325
  ? {
1187
1326
  authorizationUrl: status.authorizationUrl,
1188
- instructions: "Have the operator open authorizationUrl in a browser and complete the consent flow. The provider then redirects back to this server's /oauth/callback/<connector> route, which finishes the flow automatically. Re-run list_connectors afterwards to confirm status is ok.",
1327
+ instructions: "Have the operator open authorizationUrl in a browser and complete the consent flow. The provider then redirects back to this server's /oauth/callback/<connector> route, which finishes the flow automatically. " +
1328
+ oauthFollowUp(surface, connector.id),
1189
1329
  }
1190
1330
  : {}),
1191
1331
  ...(status.message ? { message: status.message } : {}),
@@ -1203,10 +1343,10 @@ export function createMetaTools(registry, baseUrl, opts = {}) {
1203
1343
  };
1204
1344
  }
1205
1345
  const LIST_DESC = "List connectors with status, cached tool count, and recent real-call health. Use probe=false for a fast inventory; use probe=true (default) only to diagnose live health or authorization.";
1206
- const SEARCH_DESC = `Unknown address: use 2–4 distinctive action/object terms, not the full request; omit limit initially (default ${DEFAULT_SEARCH_LIMIT}) and page only if needed, up to ${MAX_SEARCH_LIMIT}. Partial and no-match searches report term coverage and next-step guidance. safety="readOnly" returns only calls available to call_tool and generated code; "approvalRequired" returns everything else; omitted or "all" preserves the complete catalog. This filters results, not authority. includeSchemas="compact" adds the input and any declared output shape, each bounded; inputSchemaTruncated/outputSchemaTruncated mark shapes that need exact retrieval; matches also carry declared annotations. Call directly when sufficient. Empty query browses all.`;
1346
+ const SEARCH_DESC = `Unknown address: use 2–4 distinctive action/object terms, not the full request; omit limit initially (default ${DEFAULT_SEARCH_LIMIT}) and page only if needed, up to ${MAX_SEARCH_LIMIT}. Partial and no-match searches report term coverage and next-step guidance. safety="readOnly" returns only calls available to call_tool and generated code; "approvalRequired" returns everything else; omitted or "all" preserves the complete catalog. This filters results, not authority. includeSchemas="compact" adds the input and any declared output shape, each bounded; plain-object schemas also expose inputKeys, requiredInputKeys, and outputKeys, while inputSchemaTruncated/outputSchemaTruncated mark shapes that need exact retrieval; matches also carry declared annotations. Call directly when sufficient. Empty query browses all.`;
1207
1347
  const DESCRIBE_DESC = `Only when search_tools omitted schemas, a compact shape is ambiguous, or exact JSON constraints are needed. Inspects up to ${MAX_DESCRIBE_ADDRESSES} addresses with schemas and annotations; "compact" is default, while "json" preserves exact constraints.`;
1208
- const CALL_DESC = 'Use for one tool explicitly annotated readOnlyHint: true. For 2–10 independent read-only calls use batch_call; for dependent steps or data reduction use execute_code when available. Unannotated, write-capable, and destructive tools are refused and require call_destructive_tool. fields selects JSON dot-paths; any misses return data plus `$connecta` field-projection feedback. resultMode "value" unwraps results, timeoutMs sets a deadline, safe maxRetries are annotation-gated, diagnostics adds timing, and large results page through get_result.';
1209
- const CALL_DESTRUCTIVE_DESC = "Invoke any tool that is not explicitly annotated readOnlyHint: true, including unannotated, write-capable, or destructive tools. The MCP destructiveHint on this meta-tool lets the host request human approval before execution. Use only after reviewing the downstream tool schema and consequences.";
1348
+ const CALL_DESC = 'Use for one tool explicitly annotated readOnlyHint: true. For 2–10 independent read-only calls use batch_call; for dependent steps or data reduction use execute_code when available. Unannotated, write-capable, and destructive tools are refused and require call_destructive_tool. fields selects JSON dot-paths; traverse arrays with [] (for example results[].id). Misses return data plus `$connecta` feedback. resultMode "value" unwraps results, timeoutMs sets a deadline, safe maxRetries are annotation-gated, diagnostics adds timing, and large results page through get_result.';
1349
+ const CALL_DESTRUCTIVE_DESC = "Invoke any tool that is not explicitly annotated readOnlyHint: true, including unannotated, write-capable, or destructive tools. Include a short reason explaining the intended consequence for the human reviewer; it grants no authority and is never passed downstream. The MCP destructiveHint on this meta-tool lets the host request human approval before execution. Use only after reviewing the downstream tool schema and consequences.";
1210
1350
  const GET_RESULT_DESC = "Page a truncated result stashed by call_tool/batch_call. Input { id, offset?, maxBytes? } → { text, offset, nextOffset?, totalBytes } sliced by byte offset. maxBytes is a whole number of bytes >= 1 (omit for the deployment default) and offset a whole number of bytes >= 0; an offset inside a multi-byte character is moved back to that character's first byte and the offset served is returned. Unknown/expired id is an error.";
1211
1351
  const BATCH_DESC = "Use for 2–10 independent tools explicitly annotated readOnlyHint: true. Calls run in parallel with shared request-scoped clients; use execute_code when available instead for dependencies or in-sandbox reduction. Unannotated, write-capable, and destructive tools are refused. Batch timeout, safe retry, result mode, and diagnostics defaults may be overridden per call. An oversized final envelope returns ordered outcome summaries plus a get_result page handle.";
1212
1352
  const AUTHORIZE_DESC = "Use after auth_required. Returns an OAuth or operator-credential handoff, or reports required deployment configuration. force=true restarts OAuth only; this tool never accepts credentials.";
@@ -1223,7 +1363,7 @@ const SKILLS_DESC = 'List or fetch concise guidance for choosing among Connecta
1223
1363
  * change what that control measures.
1224
1364
  */
1225
1365
  const CODE_FIRST_SEARCH_DESC = `${SEARCH_DESC} Expand an ambiguous compact shape, or read exact JSON constraints, with connecta.describe inside execute_code.`;
1226
- const CODE_FIRST_CALL_DESC = 'Use for ONE tool explicitly annotated readOnlyHint: true — the cheapest path for a single cold call. For two or more calls, dependent steps, loops, joins, or data reduction use execute_code, whose connecta.call and connecta.batch reach the same tools. Unannotated, write-capable, and destructive tools are refused and require call_destructive_tool. fields selects JSON dot-paths; any misses return data plus `$connecta` field-projection feedback. resultMode "value" unwraps results, timeoutMs sets a deadline, safe maxRetries are annotation-gated, diagnostics adds timing, and large results page through get_result.';
1366
+ const CODE_FIRST_CALL_DESC = 'Use for ONE tool explicitly annotated readOnlyHint: true — the cheapest path for a single cold call. For two or more calls, dependent steps, loops, joins, or data reduction use execute_code, whose connecta.call and connecta.batch reach the same tools. Unannotated, write-capable, and destructive tools are refused and require call_destructive_tool. fields selects JSON dot-paths; traverse arrays with [] (for example results[].id). Misses return data plus `$connecta` feedback. resultMode "value" unwraps results, timeoutMs sets a deadline, safe maxRetries are annotation-gated, diagnostics adds timing, and large results page through get_result.';
1227
1367
  const CODE_FIRST_GET_RESULT_DESC = "Page a truncated result stashed by call_tool or call_destructive_tool; a program's oversized return is not paged, so reduce it in code instead. Input { id, offset?, maxBytes? } → { text, offset, nextOffset?, totalBytes } sliced by byte offset. maxBytes is a whole number of bytes >= 1 (omit for the deployment default) and offset a whole number of bytes >= 0; an offset inside a multi-byte character is moved back to that character's first byte and the offset served is returned. Unknown/expired id is an error.";
1228
1368
  /**
1229
1369
  * Sentences appended to a meta-tool description only when this connection
@@ -1355,13 +1495,28 @@ export function registerMetaTools(server, registry, ctx) {
1355
1495
  }, async (args) => mt.callTool(args));
1356
1496
  server.registerTool("call_destructive_tool", {
1357
1497
  description: CALL_DESTRUCTIVE_DESC,
1358
- inputSchema: z.object(CALL_INPUT_SCHEMA),
1498
+ inputSchema: z.object({
1499
+ ...CALL_INPUT_SCHEMA,
1500
+ // Bounded above, but with no lower bound: a model that sends `""` or
1501
+ // whitespace has written no reason, and failing an entire consequential
1502
+ // call over a cosmetic field the host merely displays is the wrong
1503
+ // trade. It is normalized to absent below instead.
1504
+ reason: z.string().max(500).optional(),
1505
+ }),
1359
1506
  annotations: {
1360
1507
  destructiveHint: true,
1361
1508
  readOnlyHint: false,
1362
1509
  openWorldHint: true,
1363
1510
  },
1364
- }, async (args) => mt.callDestructiveTool(args));
1511
+ }, async (args) => {
1512
+ // `reason` is the host's to display and connecta's to keep out of the
1513
+ // downstream call, so this destructuring is the whole of its handling:
1514
+ // nothing below reads it. Dropping it is also what makes an empty or
1515
+ // whitespace-only one "absent" rather than a validation failure — there
1516
+ // is no field left for it to be absent from.
1517
+ const { reason: _hostContext, ...call } = args;
1518
+ return mt.callDestructiveTool(call);
1519
+ });
1365
1520
  server.registerTool("authorize_connector", {
1366
1521
  description: AUTHORIZE_DESC,
1367
1522
  inputSchema: z.object({