@zackbart/connecta 0.10.5 → 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 (67) hide show
  1. package/CHANGELOG.md +110 -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 +39 -0
  7. package/dist/catalog-service.d.ts.map +1 -1
  8. package/dist/catalog-service.js +72 -11
  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 +162 -9
  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 +5 -1
  27. package/dist/meta-tools.d.ts.map +1 -1
  28. package/dist/meta-tools.js +171 -26
  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/version.d.ts +1 -1
  45. package/dist/version.js +1 -1
  46. package/documentation/code-mode.md +119 -31
  47. package/documentation/meta-tools.md +79 -3
  48. package/documentation/rich-output-design.md +212 -0
  49. package/ethos.md +17 -19
  50. package/examples/worker/README.md +11 -3
  51. package/examples/worker/src/d1-activity-row.ts +40 -0
  52. package/examples/worker/src/d1-activity.ts +3 -2
  53. package/package.json +1 -1
  54. package/src/activity.ts +64 -3
  55. package/src/catalog-service.ts +135 -22
  56. package/src/errors.ts +102 -1
  57. package/src/execute.ts +238 -9
  58. package/src/index.ts +22 -0
  59. package/src/invocation.ts +59 -17
  60. package/src/meta-tools.ts +211 -30
  61. package/src/operator-ui/browser.ts +10 -2
  62. package/src/operator-ui/generated.ts +1 -1
  63. package/src/registry.ts +5 -2
  64. package/src/routes/mcp.ts +9 -0
  65. package/src/routes/shared.ts +4 -0
  66. package/src/version.ts +1 -1
  67. package/templates/node/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,116 @@
2
2
 
3
3
  All notable changes to this package are documented here.
4
4
 
5
+ ## 0.10.6 — 2026-07-31
6
+
7
+ Programs gained a rich-output channel. `execute_code` code can now call
8
+ `connecta.emit(block)` to deliver text, image, and audio MCP content blocks
9
+ alongside its JSON return value — the piece code mode was missing for output
10
+ that cannot be projected, like a screenshot a downstream tool returned. The
11
+ channel is additive: a program that never emits produces the byte-for-byte
12
+ prior response, no executor changed to carry it, and deployments that do
13
+ nothing get sensible budgets. The design record is
14
+ `documentation/rich-output-design.md` (#267); the contract is `code-mode.md`'s
15
+ "Emitted output" clauses (#270).
16
+
17
+ Agent recovery is now executable data instead of prose at the remaining local
18
+ failure points. Address mistakes, approval reroutes, shortcut collisions, and
19
+ paged results identify their next call directly; activity classifies those
20
+ moments without retaining payloads. Connector behavior and approval authority
21
+ are unchanged.
22
+
23
+ Alongside both, three pieces of runtime text stop naming tools the receiving
24
+ surface does not serve — a routing failure connecta authored itself, and one the
25
+ always-loaded-text sweep missed because it only reads descriptions, not error
26
+ strings and tool results. All three fixes are agent-visible wording; no wire
27
+ shape, tool surface, or policy changes. Operators who tightened
28
+ `discovery.probeTimeoutMs` also get that deadline honored inside `execute_code`,
29
+ which had been probing at the 30-second default no matter what was configured.
30
+
31
+ ### Added
32
+
33
+ - **`connecta.emit(block)` inside `execute_code`.** Strictly validated
34
+ `text` / `image` / `audio` blocks, collected host-side and appended to the
35
+ result after the JSON envelope on success only; a failed program discards
36
+ them visibly (`emittedDiscarded`). Budgets fail loudly at the emit call and
37
+ spend no host-call budget.
38
+ - **`ConnectaConfig.execute.maxEmittedBytes` / `.maxEmittedBlocks`.** The
39
+ emission budgets, defaulting to 4,000,000 serialized bytes and 32 blocks per
40
+ run.
41
+ - **`diagnostics.emitted`.** With `diagnostics: true`, one payload-free
42
+ aggregate (block count and serialized bytes) when a program emitted.
43
+ - **Local routing failures carry structured recovery.** Unknown addresses and
44
+ tools suggest scoped discovery, read-path policy refusals preserve the
45
+ canonical address for `call_destructive_tool` — with the original arguments
46
+ when they fit a 512-byte echo budget, and an instruction to re-send them when
47
+ they do not — and ambiguous code-mode aliases list every canonical
48
+ `connecta.call` candidate. The suggested discovery route follows the caller's
49
+ own surface: `search_tools` for a top-level call, `connecta.search` with the
50
+ same arguments for a miss inside `execute_code`, which cannot call a tool.
51
+ The address gets the same 512-byte budget as the argument echo but the
52
+ opposite rule — clamped with a `…` marker rather than dropped, since the
53
+ address is the thing being corrected. Short addresses, which is all real
54
+ ones, come back exact.
55
+ - **Destructive calls accept explanatory context.** An optional `reason` of at
56
+ most 500 characters gives the MCP host human-readable intent without entering
57
+ downstream arguments or granting authority. An empty or whitespace-only one
58
+ is treated as absent rather than failing the call.
59
+ - **Activity exposes coarse agent friction.** Typed codes derive
60
+ `tool_not_found`, `schema_retry`, `destructive_reroute`, `auth_required`, or
61
+ `result_too_large`; no payload or raw error text is added.
62
+
63
+ ### Changed
64
+
65
+ - **Paged results name the exact next call.** `call_tool` and `batch_call`
66
+ truncation notices include `get_result` arguments with the generated id and
67
+ byte offset zero. Program results and oversized discovery responses still
68
+ carry no `get_result` route: paging a program's return value is refused by
69
+ design, and a program can shrink anything.
70
+ - **`nextAction` is a wider union than it was.** `search_tools` routes may now
71
+ omit `arguments.connector` (an unknown *connector* cannot scope discovery to
72
+ itself), the ambiguous-alias route is keyed `function: "connecta.call"` with
73
+ no `tool` at all, and in-program discovery recovery is keyed
74
+ `function: "connecta.search"` carrying the same `{ query, connector?,
75
+ includeSchemas }` arguments the tool route does. A consumer that narrowed on
76
+ `nextAction.tool` must handle the function-keyed shapes too.
77
+ - **An address that resolves to nothing is now recorded.** A call to a
78
+ connector id that does not exist emits one activity event at the address as
79
+ written, with `unknown_address` and `tool_not_found` friction — provided the
80
+ address splits into the `<connectorId>.<toolName>` shape activity keeps; one
81
+ with no interior dot still records nothing. Previously the single most common
82
+ address mistake left no trace at all. Addresses were already a first-class
83
+ activity field; nothing new is retained. Because those fields now hold
84
+ caller-authored text, the recording seam clamps `connectorId` and `toolName`
85
+ at 128 UTF-8 bytes each and `address` at 257, marked with `…` — far past any
86
+ real id, far short of an invented 40 KB one.
87
+ - **A truncated result is friction, not an error.** An oversized result reports
88
+ `friction: "result_too_large"` on an `outcome: "success"` event and writes no
89
+ `errorCode`, so consumers counting error codes stop counting truncated
90
+ successes as failures. The Worker D1 example gains a `friction` column;
91
+ existing tables need `ALTER TABLE tool_call_activity ADD COLUMN friction
92
+ TEXT` before deploying it.
93
+
94
+ ### Fixed
95
+
96
+ - **Discovery errors stay on their advertised surface.** The over-100-address
97
+ rejection and the catalog-probe timeout label now name `describe_tools` or
98
+ `connecta.describe` according to the route the caller actually took, so a
99
+ program is never told to split its list across a tool it cannot call. The
100
+ route is passed in explicitly rather than inferred from the deployment's
101
+ surface: a classic deployment with an executor serves `describe_tools` at top
102
+ level while every in-program describe still arrives through
103
+ `connecta.describe`.
104
+ - **The OAuth handoff points at a check the caller can run.** `authorize_connector`
105
+ is registered on both surfaces, but its success instructions told every agent
106
+ to "re-run `list_connectors`" — a tool the code-first surface folded away. A
107
+ code-first deployment is now told to retry the original call and confirm the
108
+ catalog loads with `connecta.search` inside `execute_code`; the classic
109
+ wording is unchanged.
110
+ - **`discovery.probeTimeoutMs` reaches code mode.** The sandbox's catalog
111
+ service received the deployment's discovery concurrency but not its probe
112
+ deadline, so an in-program `connecta.describe` against a hung connector waited
113
+ the 30-second default regardless of operator configuration.
114
+
5
115
  ## 0.10.5 — 2026-07-30
6
116
 
7
117
  A consumer-audit recovery release. Schema discovery now provides the bounded
@@ -1,6 +1,9 @@
1
1
  import type { Logger } from "./types.js";
2
2
  export type ActivityCallSource = "call_tool" | "call_destructive_tool" | "batch_call" | "execute_code";
3
3
  export type ActivityOutcome = "success" | "error" | "timeout" | "cancelled";
4
+ export type AgentFriction = "tool_not_found" | "schema_retry" | "destructive_reroute" | "auth_required" | "result_too_large";
5
+ /** Coarse recovery class derived without inspecting payloads or error prose. */
6
+ export declare function agentFrictionForCode(code: string | undefined): AgentFriction | undefined;
4
7
  /**
5
8
  * Authenticated identity attached to an activity event. `id` is intentionally
6
9
  * optional: open deployments and shared bearer tokens cannot honestly identify
@@ -36,7 +39,14 @@ export interface ToolCallActivityEvent {
36
39
  outcome: ActivityOutcome;
37
40
  durationMs: number;
38
41
  attempts: number;
42
+ /** Set only when the call actually failed; a truncated success has none. */
39
43
  errorCode?: string;
44
+ /**
45
+ * Payload-free recovery class. Usually derived from `errorCode`, but it can
46
+ * also stand alone: a result too large to return inline is friction for the
47
+ * agent while remaining an `outcome: "success"` call with no error code.
48
+ */
49
+ friction?: AgentFriction;
40
50
  serverName: string;
41
51
  serverVersion: string;
42
52
  deploymentId?: string;
@@ -89,7 +99,7 @@ export interface ActivityRequestContext {
89
99
  defer?: (promise: Promise<unknown>) => void;
90
100
  logger: Logger;
91
101
  }
92
- export type ActivityEventInput = Pick<ToolCallActivityEvent, "connectorId" | "toolName" | "address" | "source" | "outcome" | "durationMs" | "attempts" | "errorCode">;
102
+ export type ActivityEventInput = Pick<ToolCallActivityEvent, "connectorId" | "toolName" | "address" | "source" | "outcome" | "durationMs" | "attempts" | "errorCode" | "friction">;
93
103
  /**
94
104
  * Best-effort by design: activity storage can never change a tool result.
95
105
  * Workers attach async sinks to waitUntil; synchronous sinks such as Analytics
@@ -1 +1 @@
1
- {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"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"}
package/dist/activity.js CHANGED
@@ -1,3 +1,40 @@
1
+ import { boundedEchoText } from "./errors.js";
2
+ /**
3
+ * How long an identity field may be before the store stops believing it.
4
+ *
5
+ * `connectorId` and `toolName` are ordinarily operator- and connector-authored,
6
+ * and 128 bytes is far past any real one. But an address that resolved to
7
+ * nothing is recorded *as written*, which puts a caller-authored string in both
8
+ * fields — and "payload-free by construction" has to mean the event type has
9
+ * nowhere to put a payload, not merely that connecta declines to. A 40 KB
10
+ * invented connector id is a payload wearing an id's clothing.
11
+ *
12
+ * Clamped rather than dropped: the invented id is precisely what an operator
13
+ * needs to see, and its first 128 bytes identify the mistake as well as all
14
+ * 40,000 would. The `…` marker keeps a clamped value from reading as a real one.
15
+ */
16
+ const MAX_ACTIVITY_NAME_BYTES = 128;
17
+ /** Two names and the dot between them. */
18
+ const MAX_ACTIVITY_ADDRESS_BYTES = MAX_ACTIVITY_NAME_BYTES * 2 + 1;
19
+ /** Coarse recovery class derived without inspecting payloads or error prose. */
20
+ export function agentFrictionForCode(code) {
21
+ switch (code) {
22
+ case "unknown_address":
23
+ case "unknown_tool":
24
+ case "ambiguous_tool_alias":
25
+ return "tool_not_found";
26
+ case "invalid_args":
27
+ return "schema_retry";
28
+ case "destructive_tool_requires_approval":
29
+ return "destructive_reroute";
30
+ case "auth_required":
31
+ return "auth_required";
32
+ case "result_too_large":
33
+ return "result_too_large";
34
+ default:
35
+ return undefined;
36
+ }
37
+ }
1
38
  /** Reader implementations throw this for an opaque cursor they cannot decode. */
2
39
  export class InvalidActivityCursorError extends Error {
3
40
  name = "InvalidActivityCursorError";
@@ -13,20 +50,24 @@ export class InvalidActivityCursorError extends Error {
13
50
  export function recordToolActivity(context, input) {
14
51
  if (!context)
15
52
  return;
53
+ // A caller-supplied class wins because it knows something the code table
54
+ // cannot: friction that belongs to a call which did not fail.
55
+ const friction = input.friction ?? agentFrictionForCode(input.errorCode);
16
56
  const event = {
17
57
  schemaVersion: 1,
18
58
  id: crypto.randomUUID(),
19
59
  occurredAt: new Date().toISOString(),
20
60
  requestId: context.requestId,
21
61
  actor: context.actor,
22
- connectorId: input.connectorId,
23
- toolName: input.toolName,
24
- address: input.address,
62
+ connectorId: boundedEchoText(input.connectorId, MAX_ACTIVITY_NAME_BYTES),
63
+ toolName: boundedEchoText(input.toolName, MAX_ACTIVITY_NAME_BYTES),
64
+ address: boundedEchoText(input.address, MAX_ACTIVITY_ADDRESS_BYTES),
25
65
  source: input.source,
26
66
  outcome: input.outcome,
27
67
  durationMs: Math.max(0, Math.trunc(input.durationMs)),
28
68
  attempts: Math.max(1, Math.trunc(input.attempts)),
29
69
  ...(input.errorCode ? { errorCode: input.errorCode } : {}),
70
+ ...(friction ? { friction } : {}),
30
71
  serverName: context.serverInfo.name,
31
72
  serverVersion: context.serverInfo.version,
32
73
  ...(context.deploymentId
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"AAyFA,iFAAiF;AACjF,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,GAAG,4BAA4B,CAAC;IAE7C;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnC,CAAC;CACF;AA6BD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA2C,EAC3C,KAAyB;IAEzB,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,KAAK,GAA0B;QACnC,aAAa,EAAE,CAAC;QAChB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;QACnC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;QACzC,GAAG,CAAC,OAAO,CAAC,YAAY;YACtB,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,OAAQ,MAA2B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACvE,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACtD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,24 @@ export declare const DEFAULT_SEARCH_LIMIT = 8;
5
5
  export declare const MAX_SEARCH_LIMIT = 100;
6
6
  export declare const MAX_DESCRIBE_ADDRESSES = 100;
7
7
  export declare const MAX_DISCOVERY_RESULT_BYTES = 256000;
8
+ /**
9
+ * The tool a describe-path error should name when it tells a caller to retry.
10
+ * This is the route the *caller* took, not the deployment's advertised surface:
11
+ * a classic deployment with an executor serves `describe_tools` at top level
12
+ * while every in-program describe still arrives through `connecta.describe`, so
13
+ * one CatalogService cannot infer the answer from `surface` alone. Callers pass
14
+ * the route they own.
15
+ */
16
+ export type DescribeRoute = "describe_tools" | "connecta.describe";
17
+ /**
18
+ * The discovery route a routing failure should send a caller back through. Same
19
+ * rule as {@link DescribeRoute} — the route the *caller* took, not the
20
+ * deployment's advertised surface — with one difference worth keeping the two
21
+ * options separate for: `search_tools` exists on both advertised surfaces, so a
22
+ * top-level handler never has to derive this one, while an in-program caller
23
+ * still has to be told about `connecta.search` because it cannot call a tool.
24
+ */
25
+ export type SearchRoute = "search_tools" | "connecta.search";
8
26
  export declare class DiscoveryPolicyError extends Error {
9
27
  readonly code: "invalid_args" | "result_too_large";
10
28
  constructor(code: "invalid_args" | "result_too_large", message: string);
@@ -106,13 +124,34 @@ export declare class CatalogService {
106
124
  readonly requestScope: object;
107
125
  private readonly probeTimeoutMs;
108
126
  private readonly concurrency;
127
+ private readonly describeRoute;
128
+ private readonly searchRoute;
109
129
  private readonly loaded;
110
130
  private readonly loading;
111
131
  constructor(registry: RegistryView, baseUrl: string, options?: {
112
132
  requestScope?: object;
113
133
  probeTimeoutMs?: number;
114
134
  concurrency?: number;
135
+ /** The tool describe-path errors name. Default `describe_tools`. */
136
+ describeRoute?: DescribeRoute;
137
+ /** The discovery route recovery records name. Default `search_tools`. */
138
+ searchRoute?: SearchRoute;
115
139
  });
140
+ /**
141
+ * Send a caller back to discovery through the surface it can actually reach.
142
+ * Both variants carry the same scoping arguments because `connecta.search`
143
+ * takes the same ones `search_tools` does; only the key naming the callable
144
+ * differs, the way the ambiguous-alias record already names a function.
145
+ *
146
+ * Not private: `InvocationService` builds the same class of record when a
147
+ * call fails schema validation, and it is this catalog's route that decides
148
+ * which key that record carries. Duplicating the branch there would let the
149
+ * two drift.
150
+ */
151
+ searchRecovery(args: {
152
+ query: string;
153
+ connector?: string;
154
+ }, purpose: string): NonNullable<CallErrorDetails["nextAction"]>;
116
155
  loadConnector(id: string, callOptions?: ConnectorOperationOptions): Promise<ToolDef[]>;
117
156
  private loadForDiscovery;
118
157
  resolveTool(address: string, callOptions?: ConnectorOperationOptions): Promise<CatalogResolution>;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-service.d.ts","sourceRoot":"","sources":["../src/catalog-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-service.d.ts","sourceRoot":"","sources":["../src/catalog-service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { compactDiscoverySchema, compactSchema, lexicalCorpusStatistics, lexicalQueryTerms, lexicalSearchQuery, rankTools, schemaObjectKeys, summarizeDiscoveryDescription, summarizeDescription, } from "./catalog.js";
2
2
  import { mapSettledWithConcurrency, resolveDiscoveryConcurrency, } from "./concurrency.js";
3
- import { classifyCallError, framingError } from "./errors.js";
3
+ import { boundedEchoText, classifyCallError, framingError, } from "./errors.js";
4
4
  import { connectorGuide, connectorSkillName, } from "./skills.js";
5
5
  import { DEFAULT_PROBE_TIMEOUT_MS, normalizeTimeoutMs, withAbortableTimeout, } from "./timeout.js";
6
6
  import { isExplicitlyReadOnly } from "./tool-safety.js";
@@ -32,7 +32,7 @@ function discoverySearchLimit(value) {
32
32
  return value;
33
33
  }
34
34
  /** Normalize the single-address convenience form, then validate the bounded list. */
35
- function discoveryAddresses(args) {
35
+ function discoveryAddresses(args, describeRoute) {
36
36
  if (args.address !== undefined && args.addresses !== undefined) {
37
37
  throw new DiscoveryPolicyError("invalid_args", "describe takes either address or addresses, not both.");
38
38
  }
@@ -45,10 +45,21 @@ function discoveryAddresses(args) {
45
45
  throw new DiscoveryPolicyError("invalid_args", 'describe takes { address: "<connectorId>.<toolName>" } or { addresses: ["<connectorId>.<toolName>", ...] }.');
46
46
  }
47
47
  if (value.length > MAX_DESCRIBE_ADDRESSES) {
48
- throw new DiscoveryPolicyError("invalid_args", `addresses must contain at most ${MAX_DESCRIBE_ADDRESSES} entries. Split a larger list across describe_tools calls.`);
48
+ throw new DiscoveryPolicyError("invalid_args", `addresses must contain at most ${MAX_DESCRIBE_ADDRESSES} entries. Split a larger list across ${describeRoute} calls.`);
49
49
  }
50
50
  return value;
51
51
  }
52
+ /**
53
+ * Search terms derived from an address the catalog could not resolve. Bounded
54
+ * because the address is entirely caller-authored: an invented one can be any
55
+ * length, and this string is copied into a recovery record that is itself
56
+ * copied into both halves of the result envelope.
57
+ */
58
+ function recoveryQuery(address) {
59
+ const separator = address.indexOf(".");
60
+ const candidate = separator >= 0 ? address.slice(separator + 1) : address;
61
+ return boundedEchoText(candidate.replaceAll(/[._-]+/g, " ").trim() || address);
62
+ }
52
63
  /** Serialize once and count the exact bytes the MCP adapter would emit. */
53
64
  export function boundedDiscoveryText(value, hint) {
54
65
  const text = JSON.stringify(value);
@@ -116,6 +127,8 @@ export class CatalogService {
116
127
  requestScope;
117
128
  probeTimeoutMs;
118
129
  concurrency;
130
+ describeRoute;
131
+ searchRoute;
119
132
  loaded = new Map();
120
133
  loading = new Map();
121
134
  constructor(registry, baseUrl, options = {}) {
@@ -125,6 +138,29 @@ export class CatalogService {
125
138
  this.probeTimeoutMs =
126
139
  normalizeTimeoutMs(options.probeTimeoutMs) ?? DEFAULT_PROBE_TIMEOUT_MS;
127
140
  this.concurrency = resolveDiscoveryConcurrency(options.concurrency);
141
+ this.describeRoute = options.describeRoute ?? "describe_tools";
142
+ this.searchRoute = options.searchRoute ?? "search_tools";
143
+ }
144
+ /**
145
+ * Send a caller back to discovery through the surface it can actually reach.
146
+ * Both variants carry the same scoping arguments because `connecta.search`
147
+ * takes the same ones `search_tools` does; only the key naming the callable
148
+ * differs, the way the ambiguous-alias record already names a function.
149
+ *
150
+ * Not private: `InvocationService` builds the same class of record when a
151
+ * call fails schema validation, and it is this catalog's route that decides
152
+ * which key that record carries. Duplicating the branch there would let the
153
+ * two drift.
154
+ */
155
+ searchRecovery(args, purpose) {
156
+ const searchArgs = {
157
+ query: args.query,
158
+ ...(args.connector !== undefined ? { connector: args.connector } : {}),
159
+ includeSchemas: "compact",
160
+ };
161
+ return this.searchRoute === "connecta.search"
162
+ ? { function: "connecta.search", arguments: searchArgs, purpose }
163
+ : { tool: "search_tools", arguments: searchArgs, purpose };
128
164
  }
129
165
  async loadConnector(id, callOptions = {}) {
130
166
  const cached = this.loaded.get(id);
@@ -157,7 +193,10 @@ export class CatalogService {
157
193
  if (!resolved) {
158
194
  return {
159
195
  ok: false,
160
- error: framingError("unknown_address", `Unknown address "${address}"`),
196
+ error: {
197
+ ...framingError("unknown_address", `Unknown address "${boundedEchoText(address)}"`),
198
+ nextAction: this.searchRecovery({ query: recoveryQuery(address) }, "Find the configured canonical address before retrying."),
199
+ },
161
200
  catalogMs: 0,
162
201
  };
163
202
  }
@@ -180,7 +219,13 @@ export class CatalogService {
180
219
  if (!definition) {
181
220
  return {
182
221
  ok: false,
183
- error: framingError("unknown_tool", `Unknown tool "${resolved.toolName}" on connector "${resolved.connector.id}"`),
222
+ error: {
223
+ ...framingError("unknown_tool", `Unknown tool "${boundedEchoText(resolved.toolName)}" on connector "${resolved.connector.id}"`),
224
+ nextAction: this.searchRecovery({
225
+ query: recoveryQuery(resolved.toolName),
226
+ connector: resolved.connector.id,
227
+ }, "Find the connector's current canonical tool address."),
228
+ },
184
229
  catalogMs: Date.now() - started,
185
230
  connector: resolved.connector,
186
231
  toolName: resolved.toolName,
@@ -206,7 +251,10 @@ export class CatalogService {
206
251
  if (!connector) {
207
252
  return {
208
253
  ok: false,
209
- error: framingError("unknown_address", `Unknown address "${connectorId}.${alias}"`),
254
+ error: {
255
+ ...framingError("unknown_address", `Unknown address "${boundedEchoText(`${connectorId}.${alias}`)}"`),
256
+ nextAction: this.searchRecovery({ query: recoveryQuery(alias) }, "Find the configured canonical address before retrying."),
257
+ },
210
258
  catalogMs: 0,
211
259
  };
212
260
  }
@@ -229,7 +277,10 @@ export class CatalogService {
229
277
  if (!definition) {
230
278
  return {
231
279
  ok: false,
232
- error: framingError("unknown_tool", `Unknown tool "${alias}" on connector "${connector.id}"`),
280
+ error: {
281
+ ...framingError("unknown_tool", `Unknown tool "${boundedEchoText(alias)}" on connector "${connector.id}"`),
282
+ nextAction: this.searchRecovery({ query: recoveryQuery(alias), connector: connector.id }, "Find the connector's current canonical tool address."),
283
+ },
233
284
  catalogMs: Date.now() - started,
234
285
  connector,
235
286
  toolName: alias,
@@ -243,8 +294,13 @@ export class CatalogService {
243
294
  ok: false,
244
295
  error: {
245
296
  code: "ambiguous_tool_alias",
246
- message: `Tool alias "${alias}" is ambiguous on connector "${connector.id}" because ${names} sanitize to the same name. Use connecta.call with an exact address.`,
297
+ message: `Tool alias "${boundedEchoText(alias)}" is ambiguous on connector "${connector.id}" because ${names} sanitize to the same name. Use connecta.call with an exact address.`,
247
298
  retryable: false,
299
+ nextAction: {
300
+ function: "connecta.call",
301
+ addresses: [definition, ...collisions].map((tool) => `${connector.id}.${tool.name}`),
302
+ purpose: "Choose the intended canonical address and call it with the original arguments.",
303
+ },
248
304
  },
249
305
  catalogMs: Date.now() - started,
250
306
  connector,
@@ -275,7 +331,12 @@ export class CatalogService {
275
331
  ? [scopedConnector]
276
332
  : []
277
333
  : this.registry.listConnectors();
278
- const catalogs = await mapSettledWithConcurrency(connectors, this.concurrency, (connector) => this.loadForDiscovery(connector.id, `search_tools probe of "${connector.id}"`));
334
+ const catalogs = await mapSettledWithConcurrency(connectors, this.concurrency, (connector) =>
335
+ // Unlike the describe path, this label never reaches a caller: search
336
+ // only counts rejected catalogs (`unavailableCatalogs` below) and
337
+ // renders its own guidance, so the folded name here stays internal and
338
+ // needs no surface awareness.
339
+ this.loadForDiscovery(connector.id, `search_tools probe of "${connector.id}"`));
279
340
  const searchableCatalogs = catalogs.map((catalog) => catalog.status === "fulfilled"
280
341
  ? {
281
342
  status: "fulfilled",
@@ -458,7 +519,7 @@ export class CatalogService {
458
519
  };
459
520
  }
460
521
  async describe(args) {
461
- const addresses = discoveryAddresses(args);
522
+ const addresses = discoveryAddresses(args, this.describeRoute);
462
523
  const format = args.format ?? "compact";
463
524
  const resolved = addresses.map((rawAddress) => {
464
525
  const address = String(rawAddress);
@@ -469,7 +530,7 @@ export class CatalogService {
469
530
  .map((entry) => entry.resolved?.connector.id)
470
531
  .filter((id) => Boolean(id))),
471
532
  ];
472
- const loaded = await mapSettledWithConcurrency(connectorIds, this.concurrency, (id) => this.loadForDiscovery(id, `describe_tools probe of "${id}"`));
533
+ const loaded = await mapSettledWithConcurrency(connectorIds, this.concurrency, (id) => this.loadForDiscovery(id, `${this.describeRoute} probe of "${id}"`));
473
534
  const catalogs = new Map();
474
535
  loaded.forEach((result, index) => {
475
536
  const connectorId = connectorIds[index];
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-service.js","sourceRoot":"","sources":["../src/catalog-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-service.js","sourceRoot":"","sources":["../src/catalog-service.ts"],"names":[],"mappings":"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"}