@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.
- package/CHANGELOG.md +135 -0
- package/dist/activity.d.ts +11 -1
- package/dist/activity.d.ts.map +1 -1
- package/dist/activity.js +44 -3
- package/dist/activity.js.map +1 -1
- package/dist/catalog-service.d.ts +40 -0
- package/dist/catalog-service.d.ts.map +1 -1
- package/dist/catalog-service.js +97 -15
- package/dist/catalog-service.js.map +1 -1
- package/dist/errors.d.ts +48 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +67 -0
- package/dist/errors.js.map +1 -1
- package/dist/execute.d.ts +72 -0
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +163 -10
- package/dist/execute.js.map +1 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/invocation.d.ts +9 -2
- package/dist/invocation.d.ts.map +1 -1
- package/dist/invocation.js +59 -29
- package/dist/invocation.js.map +1 -1
- package/dist/meta-tools.d.ts +12 -3
- package/dist/meta-tools.d.ts.map +1 -1
- package/dist/meta-tools.js +185 -30
- package/dist/meta-tools.js.map +1 -1
- package/dist/operator-ui/generated.d.ts +1 -1
- package/dist/operator-ui/generated.d.ts.map +1 -1
- package/dist/operator-ui/generated.js +1 -1
- package/dist/operator-ui/generated.js.map +1 -1
- package/dist/registry.d.ts +11 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +5 -2
- package/dist/registry.js.map +1 -1
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +9 -0
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/shared.d.ts +4 -0
- package/dist/routes/shared.d.ts.map +1 -1
- package/dist/routes/shared.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/documentation/code-mode.md +125 -34
- package/documentation/meta-tools.md +91 -9
- package/documentation/rich-output-design.md +212 -0
- package/ethos.md +17 -19
- package/examples/worker/README.md +11 -3
- package/examples/worker/src/d1-activity-row.ts +40 -0
- package/examples/worker/src/d1-activity.ts +3 -2
- package/package.json +1 -1
- package/src/activity.ts +64 -3
- package/src/catalog-service.ts +166 -26
- package/src/errors.ts +102 -1
- package/src/execute.ts +240 -10
- package/src/index.ts +22 -0
- package/src/invocation.ts +59 -17
- package/src/meta-tools.ts +239 -37
- package/src/operator-ui/browser.ts +10 -2
- package/src/operator-ui/generated.ts +1 -1
- package/src/registry.ts +5 -2
- package/src/routes/mcp.ts +9 -0
- package/src/routes/shared.ts +4 -0
- package/src/skills.ts +1 -1
- package/src/version.ts +1 -1
- package/templates/node/package.json +1 -1
package/dist/invocation.js
CHANGED
|
@@ -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,
|
|
143
|
-
|
|
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:
|
|
147
|
-
toolName:
|
|
148
|
-
address: `${
|
|
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
|
|
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
|
|
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: "
|
|
167
|
-
arguments: {
|
|
168
|
-
|
|
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 === "
|
|
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: "
|
|
180
|
-
arguments: {
|
|
181
|
-
|
|
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: `
|
|
188
|
-
|
|
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
|
-
|
|
443
|
+
const friction = context.activityFriction?.(value);
|
|
444
|
+
record("success", friction ? { friction } : {});
|
|
415
445
|
return {
|
|
416
446
|
ok: true,
|
|
417
447
|
value,
|
package/dist/invocation.js.map
CHANGED
|
@@ -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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"}
|
package/dist/meta-tools.d.ts
CHANGED
|
@@ -56,11 +56,16 @@ export interface SearchArgs {
|
|
|
56
56
|
fullDescriptions?: boolean;
|
|
57
57
|
includeSchemas?: "compact" | "json";
|
|
58
58
|
}
|
|
59
|
-
export
|
|
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:
|
|
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>;
|
package/dist/meta-tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-tools.d.ts","sourceRoot":"","sources":["../src/meta-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAML,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"meta-tools.d.ts","sourceRoot":"","sources":["../src/meta-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/meta-tools.js
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
|
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 (
|
|
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(
|
|
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.
|
|
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;
|
|
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;
|
|
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(
|
|
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) =>
|
|
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({
|