@cat-factory/contracts 0.238.0 → 0.239.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/tool-servers.d.ts +103 -0
- package/dist/routes/tool-servers.d.ts.map +1 -0
- package/dist/routes/tool-servers.js +37 -0
- package/dist/routes/tool-servers.js.map +1 -0
- package/dist/tool-servers.d.ts +257 -0
- package/dist/tool-servers.d.ts.map +1 -0
- package/dist/tool-servers.js +234 -0
- package/dist/tool-servers.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -118,5 +118,6 @@ export * from './kaizen.js';
|
|
|
118
118
|
export * from './initiative.js';
|
|
119
119
|
export * from './initiative-preset.js';
|
|
120
120
|
export * from './test-secrets.js';
|
|
121
|
+
export * from './tool-servers.js';
|
|
121
122
|
export * from './routes/index.js';
|
|
122
123
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -118,5 +118,6 @@ export * from './kaizen.js';
|
|
|
118
118
|
export * from './initiative.js';
|
|
119
119
|
export * from './initiative-preset.js';
|
|
120
120
|
export * from './test-secrets.js';
|
|
121
|
+
export * from './tool-servers.js';
|
|
121
122
|
export * from './routes/index.js';
|
|
122
123
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/index.d.ts
CHANGED
|
@@ -61,6 +61,7 @@ export * from './service-fragment-defaults.js';
|
|
|
61
61
|
export * from './services.js';
|
|
62
62
|
export * from './test-secrets.js';
|
|
63
63
|
export * from './capability-credentials.js';
|
|
64
|
+
export * from './tool-servers.js';
|
|
64
65
|
export * from './validation-checks.js';
|
|
65
66
|
export * from './slack.js';
|
|
66
67
|
export * from './spec.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
package/dist/routes/index.js
CHANGED
|
@@ -64,6 +64,7 @@ export * from './service-fragment-defaults.js';
|
|
|
64
64
|
export * from './services.js';
|
|
65
65
|
export * from './test-secrets.js';
|
|
66
66
|
export * from './capability-credentials.js';
|
|
67
|
+
export * from './tool-servers.js';
|
|
67
68
|
export * from './validation-checks.js';
|
|
68
69
|
export * from './slack.js';
|
|
69
70
|
export * from './spec.js';
|
package/dist/routes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,oDAAoD;AACpD,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,oDAAoD;AACpD,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { ContractNoBody } from '@toad-contracts/valibot';
|
|
2
|
+
export declare const listToolServersContract: {
|
|
3
|
+
readonly method: "get";
|
|
4
|
+
readonly pathResolver: () => string;
|
|
5
|
+
readonly responsesByStatusCode: {
|
|
6
|
+
readonly '4xx': import("valibot").ObjectSchema<{
|
|
7
|
+
readonly error: import("valibot").ObjectSchema<{
|
|
8
|
+
readonly code: import("valibot").StringSchema<undefined>;
|
|
9
|
+
readonly message: import("valibot").StringSchema<undefined>;
|
|
10
|
+
readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
|
|
11
|
+
readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
12
|
+
readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
13
|
+
readonly message: import("valibot").StringSchema<undefined>;
|
|
14
|
+
}, undefined>, undefined>, undefined>;
|
|
15
|
+
}, undefined>;
|
|
16
|
+
}, undefined>;
|
|
17
|
+
readonly '5xx': import("valibot").ObjectSchema<{
|
|
18
|
+
readonly error: import("valibot").ObjectSchema<{
|
|
19
|
+
readonly code: import("valibot").StringSchema<undefined>;
|
|
20
|
+
readonly message: import("valibot").StringSchema<undefined>;
|
|
21
|
+
readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
|
|
22
|
+
readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
23
|
+
readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
24
|
+
readonly message: import("valibot").StringSchema<undefined>;
|
|
25
|
+
}, undefined>, undefined>, undefined>;
|
|
26
|
+
}, undefined>;
|
|
27
|
+
}, undefined>;
|
|
28
|
+
readonly 200: import("valibot").ObjectSchema<{
|
|
29
|
+
readonly servers: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
30
|
+
readonly id: import("valibot").StringSchema<undefined>;
|
|
31
|
+
readonly label: import("valibot").StringSchema<undefined>;
|
|
32
|
+
readonly transport: import("valibot").PicklistSchema<["stdio", "http"], undefined>;
|
|
33
|
+
readonly target: import("valibot").StringSchema<undefined>;
|
|
34
|
+
readonly guidance: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
35
|
+
readonly declaredBy: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
36
|
+
readonly servableHarnesses: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
37
|
+
readonly allowedTools: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
38
|
+
readonly credentials: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
39
|
+
readonly key: import("valibot").StringSchema<undefined>;
|
|
40
|
+
readonly required: import("valibot").BooleanSchema<undefined>;
|
|
41
|
+
readonly usage: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
42
|
+
}, undefined>, undefined>;
|
|
43
|
+
readonly probeable: import("valibot").BooleanSchema<undefined>;
|
|
44
|
+
readonly notProbeableReason: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["stdio_transport", "container_local_url", "url_not_allowed"], undefined>, undefined>;
|
|
45
|
+
}, undefined>, undefined>;
|
|
46
|
+
}, undefined>;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export declare const probeToolServerContract: {
|
|
50
|
+
readonly method: "post";
|
|
51
|
+
readonly requestPathParamsSchema: import("valibot").ObjectSchema<{
|
|
52
|
+
id: import("valibot").StringSchema<undefined>;
|
|
53
|
+
}, undefined> & import("@toad-contracts/core").StandardObjectKeysV1<unknown, unknown>;
|
|
54
|
+
readonly pathResolver: ({ id }: {
|
|
55
|
+
id: string;
|
|
56
|
+
}) => string;
|
|
57
|
+
readonly requestBodySchema: typeof ContractNoBody;
|
|
58
|
+
readonly responsesByStatusCode: {
|
|
59
|
+
readonly '4xx': import("valibot").ObjectSchema<{
|
|
60
|
+
readonly error: import("valibot").ObjectSchema<{
|
|
61
|
+
readonly code: import("valibot").StringSchema<undefined>;
|
|
62
|
+
readonly message: import("valibot").StringSchema<undefined>;
|
|
63
|
+
readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
|
|
64
|
+
readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
65
|
+
readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
66
|
+
readonly message: import("valibot").StringSchema<undefined>;
|
|
67
|
+
}, undefined>, undefined>, undefined>;
|
|
68
|
+
}, undefined>;
|
|
69
|
+
}, undefined>;
|
|
70
|
+
readonly '5xx': import("valibot").ObjectSchema<{
|
|
71
|
+
readonly error: import("valibot").ObjectSchema<{
|
|
72
|
+
readonly code: import("valibot").StringSchema<undefined>;
|
|
73
|
+
readonly message: import("valibot").StringSchema<undefined>;
|
|
74
|
+
readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
|
|
75
|
+
readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
76
|
+
readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
77
|
+
readonly message: import("valibot").StringSchema<undefined>;
|
|
78
|
+
}, undefined>, undefined>, undefined>;
|
|
79
|
+
}, undefined>;
|
|
80
|
+
}, undefined>;
|
|
81
|
+
readonly 200: import("valibot").ObjectSchema<{
|
|
82
|
+
readonly serverId: import("valibot").StringSchema<undefined>;
|
|
83
|
+
readonly status: import("valibot").PicklistSchema<["ok", "credentials_missing", "credential_refused", "unreachable", "http_error", "protocol_error", "not_probeable"], undefined>;
|
|
84
|
+
readonly notProbeableReason: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["stdio_transport", "container_local_url", "url_not_allowed"], undefined>, undefined>;
|
|
85
|
+
readonly serverName: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
86
|
+
readonly serverVersion: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
87
|
+
readonly protocolVersion: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
88
|
+
readonly toolCount: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
89
|
+
readonly tools: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
90
|
+
readonly toolsComplete: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
91
|
+
readonly allowedTools: import("valibot").OptionalSchema<import("valibot").ObjectSchema<{
|
|
92
|
+
readonly declared: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
93
|
+
readonly unmatched: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
94
|
+
readonly checked: import("valibot").BooleanSchema<undefined>;
|
|
95
|
+
}, undefined>, undefined>;
|
|
96
|
+
readonly unresolvedCredentials: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
97
|
+
readonly refusedCredentials: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
98
|
+
readonly httpStatus: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
99
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
100
|
+
}, undefined>;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=tool-servers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-servers.d.ts","sourceRoot":"","sources":["../../src/routes/tool-servers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAmB3E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlC,CAAA;AAKF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUlC,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ContractNoBody, defineApiContract } from '@toad-contracts/valibot';
|
|
2
|
+
import { toolServerProbeResultSchema, toolServersViewSchema } from '../tool-servers.js';
|
|
3
|
+
import { errorResponses, singleStringParam } from './_shared.js';
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Per-workspace TOOL SERVER (MCP) operability route contracts. Mounted under
|
|
6
|
+
// `/workspaces/:workspaceId`, so the paths here are relative to that prefix.
|
|
7
|
+
//
|
|
8
|
+
// Both routes are `secrets.manage`-gated INCLUDING the read, like the credential checklist beside
|
|
9
|
+
// them and for the same reason: the projection names the credential keys the deployment's
|
|
10
|
+
// capabilities want. See ToolServerController.
|
|
11
|
+
//
|
|
12
|
+
// Workspace-scoped even though the DECLARATIONS are deployment-wide, because the credentials are
|
|
13
|
+
// not: the per-workspace capability-credential store sits in front of the environment resolver per
|
|
14
|
+
// key, so "does this server work" has a different answer per board, and a probe that resolved
|
|
15
|
+
// against nothing in particular would report the deployment's own environment as every tenant's
|
|
16
|
+
// answer.
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
export const listToolServersContract = defineApiContract({
|
|
19
|
+
method: 'get',
|
|
20
|
+
pathResolver: () => '/tool-servers',
|
|
21
|
+
responsesByStatusCode: { 200: toolServersViewSchema, ...errorResponses },
|
|
22
|
+
});
|
|
23
|
+
// A POST rather than a GET: the probe SPENDS something (an outbound request carrying a resolved
|
|
24
|
+
// credential, and a vendor's rate limit), so it must not be safe to retry from a browser's cache or
|
|
25
|
+
// a link prefetch. The same shape every neighbouring connection type's `/test` endpoint has.
|
|
26
|
+
export const probeToolServerContract = defineApiContract({
|
|
27
|
+
method: 'post',
|
|
28
|
+
requestPathParamsSchema: singleStringParam('id'),
|
|
29
|
+
pathResolver: ({ id }) => `/tool-servers/${id}/test`,
|
|
30
|
+
// Nothing to send: WHAT is probed is the path, and everything else the probe needs (the
|
|
31
|
+
// declaration, the workspace's credentials) is resolved server-side from state a caller could not
|
|
32
|
+
// usefully override. A body would be a way to ask the deployment to send a credential of the
|
|
33
|
+
// caller's choosing to an endpoint of the deployment's.
|
|
34
|
+
requestBodySchema: ContractNoBody,
|
|
35
|
+
responsesByStatusCode: { 200: toolServerProbeResultSchema, ...errorResponses },
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=tool-servers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-servers.js","sourceRoot":"","sources":["../../src/routes/tool-servers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhE,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,EAAE;AACF,kGAAkG;AAClG,0FAA0F;AAC1F,+CAA+C;AAC/C,EAAE;AACF,iGAAiG;AACjG,mGAAmG;AACnG,8FAA8F;AAC9F,gGAAgG;AAChG,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;IACvD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;IACnC,qBAAqB,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,cAAc,EAAE;CACzE,CAAC,CAAA;AAEF,gGAAgG;AAChG,oGAAoG;AACpG,6FAA6F;AAC7F,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;IACvD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,iBAAiB,CAAC,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,iBAAiB,EAAE,OAAO;IACpD,wFAAwF;IACxF,kGAAkG;IAClG,6FAA6F;IAC7F,wDAAwD;IACxD,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,cAAc,EAAE;CAC/E,CAAC,CAAA"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
/** Which transport a declaration uses, mirroring kernel's `McpTransport['kind']`. */
|
|
3
|
+
export declare const toolServerTransportSchema: v.PicklistSchema<["stdio", "http"], undefined>;
|
|
4
|
+
export type ToolServerTransport = v.InferOutput<typeof toolServerTransportSchema>;
|
|
5
|
+
/**
|
|
6
|
+
* Why a declared server cannot be probed from the deployment, when it cannot.
|
|
7
|
+
*
|
|
8
|
+
* This is NOT a fault vocabulary: every member describes a server that may be working perfectly on
|
|
9
|
+
* a run. What is missing is a vantage point — the backend is not the run container, and the probe
|
|
10
|
+
* refuses rather than reaching for the nearest thing it CAN talk to. Each member needs a different
|
|
11
|
+
* response from the operator, which is why they are separate:
|
|
12
|
+
*
|
|
13
|
+
* - `stdio_transport` — the server is a child process the harness spawns inside the run container.
|
|
14
|
+
* The backend has no container to spawn it in, and on the Worker no process model at all. There
|
|
15
|
+
* is nothing to fix: verify it from a run.
|
|
16
|
+
* - `container_local_url` — an `http` server on loopback means "beside the agent, in its own
|
|
17
|
+
* container". Probing that address from the backend would reach the BACKEND's own loopback, which
|
|
18
|
+
* is a different machine and quite possibly a real service, so the answer would be about the
|
|
19
|
+
* wrong process whether it succeeded or failed. Refused rather than attempted.
|
|
20
|
+
* - `url_not_allowed` — the url fails the transport rule (`isAllowedMcpHttpUrl`: https, or plain
|
|
21
|
+
* http on loopback). Boot validation already refuses such a declaration, so reaching this means
|
|
22
|
+
* the definition arrived from somewhere this process never boot-validated (a mothership-mode
|
|
23
|
+
* node), and the probe holds the same floor the dispatch does.
|
|
24
|
+
*/
|
|
25
|
+
export declare const toolServerNotProbeableReasonSchema: v.PicklistSchema<["stdio_transport", "container_local_url", "url_not_allowed"], undefined>;
|
|
26
|
+
export type ToolServerNotProbeableReason = v.InferOutput<typeof toolServerNotProbeableReasonSchema>;
|
|
27
|
+
/**
|
|
28
|
+
* One credential a declaration asks for, by NAME.
|
|
29
|
+
*
|
|
30
|
+
* `usage` is the declaration's own note on what value belongs here. It is the same field the
|
|
31
|
+
* credential checklist renders, and a tool server's half of it exists because the checklist can only
|
|
32
|
+
* say what the declaration says: a bare `SLACK_MCP_TOKEN` names neither the token TYPE nor its
|
|
33
|
+
* scopes, so without it the operator goes back to the deployment's source.
|
|
34
|
+
*/
|
|
35
|
+
export declare const toolServerCredentialSchema: v.ObjectSchema<{
|
|
36
|
+
readonly key: v.StringSchema<undefined>;
|
|
37
|
+
readonly required: v.BooleanSchema<undefined>;
|
|
38
|
+
readonly usage: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
39
|
+
}, undefined>;
|
|
40
|
+
export type ToolServerCredential = v.InferOutput<typeof toolServerCredentialSchema>;
|
|
41
|
+
/**
|
|
42
|
+
* One declared tool server, as an operator sees it.
|
|
43
|
+
*
|
|
44
|
+
* The point of the whole record is that a declaration has FOUR independent ways of not reaching a
|
|
45
|
+
* run, and until this surface existed they were visible in four different places (the deployment's
|
|
46
|
+
* source, a boot log, a run's prompt, and nowhere): which kinds declare it, which harnesses can
|
|
47
|
+
* serve it, whether its credentials resolve, and whether the endpoint answers. The first two are
|
|
48
|
+
* static facts stated here; the last two are what {@link toolServerProbeResultSchema} settles.
|
|
49
|
+
*/
|
|
50
|
+
export declare const toolServerViewSchema: v.ObjectSchema<{
|
|
51
|
+
readonly id: v.StringSchema<undefined>;
|
|
52
|
+
readonly label: v.StringSchema<undefined>;
|
|
53
|
+
readonly transport: v.PicklistSchema<["stdio", "http"], undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* What the declaration points at: the url for an `http` server, the command for a `stdio` one.
|
|
56
|
+
* Rendered so the operator can recognise WHICH server a row is, and stripped of any userinfo
|
|
57
|
+
* credential a url carried, because this reaches a browser.
|
|
58
|
+
*/
|
|
59
|
+
readonly target: v.StringSchema<undefined>;
|
|
60
|
+
/** The definition's `guidance` — what the AGENT is told the server is for. */
|
|
61
|
+
readonly guidance: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
62
|
+
/**
|
|
63
|
+
* The agent kinds this server is declared for, own declarations and `assignToolServers` alike.
|
|
64
|
+
*
|
|
65
|
+
* EMPTY is a real and reportable state: a server registered by id and attached to no kind never
|
|
66
|
+
* reaches a dispatch, so its credentials are keys an operator would fill in for no run. Nothing
|
|
67
|
+
* else says so — boot validation checks declarations reachable FROM a kind, so an orphan registry
|
|
68
|
+
* entry passes every check silently.
|
|
69
|
+
*/
|
|
70
|
+
readonly declaredBy: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
71
|
+
/**
|
|
72
|
+
* Which harnesses could serve it: the definition's own `harnesses` narrowed to the CLIs whose MCP
|
|
73
|
+
* client reaches its transport. Free-form strings on purpose — these are CLI names
|
|
74
|
+
* (`claude-code`, `codex`, `pi`), not translated copy, and duplicating kernel's closed
|
|
75
|
+
* `HarnessKind` union here would be a second list to keep in step for no reader's benefit.
|
|
76
|
+
*
|
|
77
|
+
* EMPTY means the declaration can never run anywhere (an `http` server narrowed to `codex`, whose
|
|
78
|
+
* client is stdio-only). Boot warns about that; it is repeated here because a boot warning is not
|
|
79
|
+
* where anyone looks.
|
|
80
|
+
*/
|
|
81
|
+
readonly servableHarnesses: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
82
|
+
/** The tools the agent may call, when the definition narrowed them. Absent ⇒ all of them. */
|
|
83
|
+
readonly allowedTools: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
84
|
+
/** The credentials it asks for, by name. */
|
|
85
|
+
readonly credentials: v.ArraySchema<v.ObjectSchema<{
|
|
86
|
+
readonly key: v.StringSchema<undefined>;
|
|
87
|
+
readonly required: v.BooleanSchema<undefined>;
|
|
88
|
+
readonly usage: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
89
|
+
}, undefined>, undefined>;
|
|
90
|
+
/** Whether this deployment can reach the server to probe it. */
|
|
91
|
+
readonly probeable: v.BooleanSchema<undefined>;
|
|
92
|
+
/** Why not, when `probeable` is false. Always present in that case, absent otherwise. */
|
|
93
|
+
readonly notProbeableReason: v.OptionalSchema<v.PicklistSchema<["stdio_transport", "container_local_url", "url_not_allowed"], undefined>, undefined>;
|
|
94
|
+
}, undefined>;
|
|
95
|
+
export type ToolServerView = v.InferOutput<typeof toolServerViewSchema>;
|
|
96
|
+
/** What the tool-server surface returns: every declaration this deployment registered. */
|
|
97
|
+
export declare const toolServersViewSchema: v.ObjectSchema<{
|
|
98
|
+
readonly servers: v.ArraySchema<v.ObjectSchema<{
|
|
99
|
+
readonly id: v.StringSchema<undefined>;
|
|
100
|
+
readonly label: v.StringSchema<undefined>;
|
|
101
|
+
readonly transport: v.PicklistSchema<["stdio", "http"], undefined>;
|
|
102
|
+
/**
|
|
103
|
+
* What the declaration points at: the url for an `http` server, the command for a `stdio` one.
|
|
104
|
+
* Rendered so the operator can recognise WHICH server a row is, and stripped of any userinfo
|
|
105
|
+
* credential a url carried, because this reaches a browser.
|
|
106
|
+
*/
|
|
107
|
+
readonly target: v.StringSchema<undefined>;
|
|
108
|
+
/** The definition's `guidance` — what the AGENT is told the server is for. */
|
|
109
|
+
readonly guidance: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
110
|
+
/**
|
|
111
|
+
* The agent kinds this server is declared for, own declarations and `assignToolServers` alike.
|
|
112
|
+
*
|
|
113
|
+
* EMPTY is a real and reportable state: a server registered by id and attached to no kind never
|
|
114
|
+
* reaches a dispatch, so its credentials are keys an operator would fill in for no run. Nothing
|
|
115
|
+
* else says so — boot validation checks declarations reachable FROM a kind, so an orphan registry
|
|
116
|
+
* entry passes every check silently.
|
|
117
|
+
*/
|
|
118
|
+
readonly declaredBy: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
119
|
+
/**
|
|
120
|
+
* Which harnesses could serve it: the definition's own `harnesses` narrowed to the CLIs whose MCP
|
|
121
|
+
* client reaches its transport. Free-form strings on purpose — these are CLI names
|
|
122
|
+
* (`claude-code`, `codex`, `pi`), not translated copy, and duplicating kernel's closed
|
|
123
|
+
* `HarnessKind` union here would be a second list to keep in step for no reader's benefit.
|
|
124
|
+
*
|
|
125
|
+
* EMPTY means the declaration can never run anywhere (an `http` server narrowed to `codex`, whose
|
|
126
|
+
* client is stdio-only). Boot warns about that; it is repeated here because a boot warning is not
|
|
127
|
+
* where anyone looks.
|
|
128
|
+
*/
|
|
129
|
+
readonly servableHarnesses: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
130
|
+
/** The tools the agent may call, when the definition narrowed them. Absent ⇒ all of them. */
|
|
131
|
+
readonly allowedTools: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
132
|
+
/** The credentials it asks for, by name. */
|
|
133
|
+
readonly credentials: v.ArraySchema<v.ObjectSchema<{
|
|
134
|
+
readonly key: v.StringSchema<undefined>;
|
|
135
|
+
readonly required: v.BooleanSchema<undefined>;
|
|
136
|
+
readonly usage: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
137
|
+
}, undefined>, undefined>;
|
|
138
|
+
/** Whether this deployment can reach the server to probe it. */
|
|
139
|
+
readonly probeable: v.BooleanSchema<undefined>;
|
|
140
|
+
/** Why not, when `probeable` is false. Always present in that case, absent otherwise. */
|
|
141
|
+
readonly notProbeableReason: v.OptionalSchema<v.PicklistSchema<["stdio_transport", "container_local_url", "url_not_allowed"], undefined>, undefined>;
|
|
142
|
+
}, undefined>, undefined>;
|
|
143
|
+
}, undefined>;
|
|
144
|
+
export type ToolServersView = v.InferOutput<typeof toolServersViewSchema>;
|
|
145
|
+
/**
|
|
146
|
+
* The verdict of one probe. A CLOSED vocabulary, and the members are split by the fix they call for
|
|
147
|
+
* rather than by where in the code the failure happened:
|
|
148
|
+
*
|
|
149
|
+
* - `ok` — the server completed the MCP handshake and answered `tools/list`.
|
|
150
|
+
* - `credentials_missing` — a `required` credential did not resolve, so nothing was sent. This is
|
|
151
|
+
* the same condition that makes a dispatch drop the server under `missing_secret`, reached
|
|
152
|
+
* without spending a run to find out.
|
|
153
|
+
* - `credential_refused` — a credential's LOOKUP key names a platform configuration variable, so
|
|
154
|
+
* the probe refused to resolve it (the dispatch's `reserved_secret`). Kept apart from the above
|
|
155
|
+
* because setting the variable is precisely what must not help: the DECLARATION is what changes.
|
|
156
|
+
* - `unreachable` — the request never got an answer (DNS, TLS, connection refused, timeout). The
|
|
157
|
+
* endpoint or the network is the fix.
|
|
158
|
+
* - `http_error` — something answered with a status that is not an MCP response. `401`/`403` is the
|
|
159
|
+
* credential being wrong (as opposed to absent, which is `credentials_missing`); `404` is usually
|
|
160
|
+
* a url pointing at the wrong path. `httpStatus` carries which.
|
|
161
|
+
* - `protocol_error` — it answered, but not as an MCP server: a non-JSON body, a JSON-RPC error, a
|
|
162
|
+
* protocol version it would not negotiate. The url probably names something that is not this
|
|
163
|
+
* server.
|
|
164
|
+
* - `not_probeable` — the probe was refused before it began; see
|
|
165
|
+
* {@link toolServerNotProbeableReasonSchema}.
|
|
166
|
+
*/
|
|
167
|
+
export declare const toolServerProbeStatusSchema: v.PicklistSchema<["ok", "credentials_missing", "credential_refused", "unreachable", "http_error", "protocol_error", "not_probeable"], undefined>;
|
|
168
|
+
export type ToolServerProbeStatus = v.InferOutput<typeof toolServerProbeStatusSchema>;
|
|
169
|
+
/**
|
|
170
|
+
* Whether the tools the definition NARROWED to actually exist on the server.
|
|
171
|
+
*
|
|
172
|
+
* The first thing in the platform that can answer it. `allowedTools` is held to a NAME pattern at
|
|
173
|
+
* registration, at dispatch and at the job boundary, but no layer can check a well-formed name
|
|
174
|
+
* against reality: a typo'd `search_issue` narrows claude-code's allow-list to a pattern matching
|
|
175
|
+
* nothing while the prompt goes on advertising the name, which is the "told about a tool it cannot
|
|
176
|
+
* call" failure the whole unavailability vocabulary exists to prevent.
|
|
177
|
+
*
|
|
178
|
+
* `checked` is why this is an object rather than a bare list. `tools/list` is PAGINATED, and the
|
|
179
|
+
* probe reads a bounded number of pages; if a cursor was still outstanding, a name's absence from
|
|
180
|
+
* what came back is not evidence it is absent from the server. So an unread tail makes the verdict
|
|
181
|
+
* `checked: false` and `unmatched` empty, rather than reporting names as missing on the strength of
|
|
182
|
+
* a partial read.
|
|
183
|
+
*/
|
|
184
|
+
export declare const toolServerAllowedToolsCheckSchema: v.ObjectSchema<{
|
|
185
|
+
readonly declared: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
186
|
+
/** Declared names the server does not expose. Empty when `checked` is false. */
|
|
187
|
+
readonly unmatched: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
188
|
+
/** Whether the full tool list was read, and therefore whether `unmatched` means anything. */
|
|
189
|
+
readonly checked: v.BooleanSchema<undefined>;
|
|
190
|
+
}, undefined>;
|
|
191
|
+
export type ToolServerAllowedToolsCheck = v.InferOutput<typeof toolServerAllowedToolsCheckSchema>;
|
|
192
|
+
/** What one probe answered. */
|
|
193
|
+
export declare const toolServerProbeResultSchema: v.ObjectSchema<{
|
|
194
|
+
readonly serverId: v.StringSchema<undefined>;
|
|
195
|
+
readonly status: v.PicklistSchema<["ok", "credentials_missing", "credential_refused", "unreachable", "http_error", "protocol_error", "not_probeable"], undefined>;
|
|
196
|
+
/** Present when `status` is `not_probeable`, absent otherwise. */
|
|
197
|
+
readonly notProbeableReason: v.OptionalSchema<v.PicklistSchema<["stdio_transport", "container_local_url", "url_not_allowed"], undefined>, undefined>;
|
|
198
|
+
/** The `serverInfo` the handshake returned. Present on `ok`. */
|
|
199
|
+
readonly serverName: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
200
|
+
readonly serverVersion: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
201
|
+
/** The protocol version the server negotiated. Present on `ok`. */
|
|
202
|
+
readonly protocolVersion: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
203
|
+
/**
|
|
204
|
+
* How many tools the server exposed across the pages that were read. Present on `ok`.
|
|
205
|
+
*
|
|
206
|
+
* Read WITH `toolsComplete`: a count off a truncated read is a floor, not a total, and the two
|
|
207
|
+
* fields exist separately so the surface can say which it is holding.
|
|
208
|
+
*/
|
|
209
|
+
readonly toolCount: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
210
|
+
/** The tool names read, capped — see {@link MCP_PROBE_TOOL_NAME_CAP}. Present on `ok`. */
|
|
211
|
+
readonly tools: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
212
|
+
/** Whether every page of `tools/list` was read. Present on `ok`. */
|
|
213
|
+
readonly toolsComplete: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
214
|
+
/** The `allowedTools` reconciliation, when the definition narrowed them and the probe answered. */
|
|
215
|
+
readonly allowedTools: v.OptionalSchema<v.ObjectSchema<{
|
|
216
|
+
readonly declared: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
217
|
+
/** Declared names the server does not expose. Empty when `checked` is false. */
|
|
218
|
+
readonly unmatched: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
219
|
+
/** Whether the full tool list was read, and therefore whether `unmatched` means anything. */
|
|
220
|
+
readonly checked: v.BooleanSchema<undefined>;
|
|
221
|
+
}, undefined>, undefined>;
|
|
222
|
+
/** Which declared credentials did not resolve. Present on `credentials_missing`. */
|
|
223
|
+
readonly unresolvedCredentials: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
224
|
+
/** Which declared credential named a platform variable. Present on `credential_refused`. */
|
|
225
|
+
readonly refusedCredentials: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
226
|
+
/** The status something answered with. Present on `http_error`. */
|
|
227
|
+
readonly httpStatus: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
228
|
+
/**
|
|
229
|
+
* The failure in prose, for the disclosure behind the translated description. Scrubbed through
|
|
230
|
+
* `redactSecrets` at the emit site: a fetch error routinely echoes the request url, and this one
|
|
231
|
+
* carries a credential header.
|
|
232
|
+
*/
|
|
233
|
+
readonly error: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
234
|
+
}, undefined>;
|
|
235
|
+
export type ToolServerProbeResult = v.InferOutput<typeof toolServerProbeResultSchema>;
|
|
236
|
+
/**
|
|
237
|
+
* How many tool NAMES a probe result carries back.
|
|
238
|
+
*
|
|
239
|
+
* The list is for recognition ("yes, that is the Slack server") and for the `allowedTools`
|
|
240
|
+
* reconciliation, which is computed on the backend against everything read rather than against this
|
|
241
|
+
* prefix — so capping the wire list narrows what a human scrolls and never what was checked.
|
|
242
|
+
* `toolCount` states the real figure, so a truncated list is visible rather than implied.
|
|
243
|
+
*/
|
|
244
|
+
export declare const MCP_PROBE_TOOL_NAME_CAP = 100;
|
|
245
|
+
/**
|
|
246
|
+
* Pages of `tools/list` one probe reads before it stops and reports the read as incomplete.
|
|
247
|
+
*
|
|
248
|
+
* A bound rather than a full drain, because a probe is an interactive request an operator waits on
|
|
249
|
+
* and the page size is the SERVER's choice: an unbounded loop hands a remote server control of how
|
|
250
|
+
* long this endpoint runs. Three pages covers every real server's tool table; a cursor still
|
|
251
|
+
* outstanding after the third means the answer is "it works, and it has more tools than this can
|
|
252
|
+
* enumerate", which is a true and useful answer.
|
|
253
|
+
*/
|
|
254
|
+
export declare const MCP_PROBE_MAX_PAGES = 3;
|
|
255
|
+
/** How long a probe waits for the whole handshake-plus-list exchange. */
|
|
256
|
+
export declare const MCP_PROBE_TIMEOUT_MS = 10000;
|
|
257
|
+
//# sourceMappingURL=tool-servers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-servers.d.ts","sourceRoot":"","sources":["../src/tool-servers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA8B5B,qFAAqF;AACrF,eAAO,MAAM,yBAAyB,gDAAgC,CAAA;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kCAAkC,4FAI7C,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEnG;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;aAIrC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;IAI/B;;;;OAIG;;IAEH,8EAA8E;;IAE9E;;;;;;;OAOG;;IAEH;;;;;;;;;OASG;;IAEH,6FAA6F;;IAE7F,4CAA4C;;;;;;IAE5C,gEAAgE;;IAEhE,yFAAyF;;aAEzF,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB;;;;;QAxChC;;;;WAIG;;QAEH,8EAA8E;;QAE9E;;;;;;;WAOG;;QAEH;;;;;;;;;WASG;;QAEH,6FAA6F;;QAE7F,4CAA4C;;;;;;QAE5C,gEAAgE;;QAEhE,yFAAyF;;;aAQzF,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,2BAA2B,kJAQtC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iCAAiC;;IAE5C,gFAAgF;;IAEhF,6FAA6F;;aAE7F,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAEjG,+BAA+B;AAC/B,eAAO,MAAM,2BAA2B;;;IAGtC,kEAAkE;;IAElE,gEAAgE;;;IAGhE,mEAAmE;;IAEnE;;;;;OAKG;;IAEH,0FAA0F;;IAE1F,oEAAoE;;IAEpE,mGAAmG;;;QA7BnG,gFAAgF;;QAEhF,6FAA6F;;;IA6B7F,oFAAoF;;IAEpF,4FAA4F;;IAE5F,mEAAmE;;IAEnE;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,QAAS,CAAA"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// The OPERATOR-facing projection of the tool servers (MCP) a deployment registered, plus the
|
|
4
|
+
// result of PROBING one.
|
|
5
|
+
//
|
|
6
|
+
// The registry itself is deployment CODE — a `McpServerDefinition` on the `AgentKindRegistry`, with
|
|
7
|
+
// its credentials resolved per dispatch through the kernel `ToolSecretResolver`. Everything an
|
|
8
|
+
// operator could previously learn about it, they learned by reading that code or by starting a run
|
|
9
|
+
// and reading the agent's own prompt: boot validation names a broken DECLARATION, and a dispatch
|
|
10
|
+
// names a server it DROPPED, but nothing said whether a server that survives both actually answers.
|
|
11
|
+
//
|
|
12
|
+
// So this module is two vocabularies:
|
|
13
|
+
//
|
|
14
|
+
// - {@link toolServerViewSchema}, the non-secret projection of one declaration (what it is, which
|
|
15
|
+
// kinds get it, which harnesses can serve it, which credentials it asks for BY NAME, and
|
|
16
|
+
// whether the deployment can probe it at all);
|
|
17
|
+
// - {@link toolServerProbeResultSchema}, the verdict of speaking `initialize` + `tools/list` to it
|
|
18
|
+
// for real.
|
|
19
|
+
//
|
|
20
|
+
// Both live here rather than in kernel because the SPA has to state the same judgements to a human,
|
|
21
|
+
// and the SPA cannot see kernel. The probe STATUS in particular is a rule both sides agree about:
|
|
22
|
+
// the backend decides it, the SPA maps each member to translated copy and a remedy, and a member
|
|
23
|
+
// added on one side only would render as a blank chip.
|
|
24
|
+
//
|
|
25
|
+
// Nothing here carries a credential VALUE. A key NAME is as far as it goes, which is why the whole
|
|
26
|
+
// surface is `secrets.manage`-gated (the same judgement the credential checklist makes: what
|
|
27
|
+
// variables a deployment's capabilities want is not viewer-tier information).
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/** Which transport a declaration uses, mirroring kernel's `McpTransport['kind']`. */
|
|
30
|
+
export const toolServerTransportSchema = v.picklist(['stdio', 'http']);
|
|
31
|
+
/**
|
|
32
|
+
* Why a declared server cannot be probed from the deployment, when it cannot.
|
|
33
|
+
*
|
|
34
|
+
* This is NOT a fault vocabulary: every member describes a server that may be working perfectly on
|
|
35
|
+
* a run. What is missing is a vantage point — the backend is not the run container, and the probe
|
|
36
|
+
* refuses rather than reaching for the nearest thing it CAN talk to. Each member needs a different
|
|
37
|
+
* response from the operator, which is why they are separate:
|
|
38
|
+
*
|
|
39
|
+
* - `stdio_transport` — the server is a child process the harness spawns inside the run container.
|
|
40
|
+
* The backend has no container to spawn it in, and on the Worker no process model at all. There
|
|
41
|
+
* is nothing to fix: verify it from a run.
|
|
42
|
+
* - `container_local_url` — an `http` server on loopback means "beside the agent, in its own
|
|
43
|
+
* container". Probing that address from the backend would reach the BACKEND's own loopback, which
|
|
44
|
+
* is a different machine and quite possibly a real service, so the answer would be about the
|
|
45
|
+
* wrong process whether it succeeded or failed. Refused rather than attempted.
|
|
46
|
+
* - `url_not_allowed` — the url fails the transport rule (`isAllowedMcpHttpUrl`: https, or plain
|
|
47
|
+
* http on loopback). Boot validation already refuses such a declaration, so reaching this means
|
|
48
|
+
* the definition arrived from somewhere this process never boot-validated (a mothership-mode
|
|
49
|
+
* node), and the probe holds the same floor the dispatch does.
|
|
50
|
+
*/
|
|
51
|
+
export const toolServerNotProbeableReasonSchema = v.picklist([
|
|
52
|
+
'stdio_transport',
|
|
53
|
+
'container_local_url',
|
|
54
|
+
'url_not_allowed',
|
|
55
|
+
]);
|
|
56
|
+
/**
|
|
57
|
+
* One credential a declaration asks for, by NAME.
|
|
58
|
+
*
|
|
59
|
+
* `usage` is the declaration's own note on what value belongs here. It is the same field the
|
|
60
|
+
* credential checklist renders, and a tool server's half of it exists because the checklist can only
|
|
61
|
+
* say what the declaration says: a bare `SLACK_MCP_TOKEN` names neither the token TYPE nor its
|
|
62
|
+
* scopes, so without it the operator goes back to the deployment's source.
|
|
63
|
+
*/
|
|
64
|
+
export const toolServerCredentialSchema = v.object({
|
|
65
|
+
key: v.string(),
|
|
66
|
+
required: v.boolean(),
|
|
67
|
+
usage: v.optional(v.string()),
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* One declared tool server, as an operator sees it.
|
|
71
|
+
*
|
|
72
|
+
* The point of the whole record is that a declaration has FOUR independent ways of not reaching a
|
|
73
|
+
* run, and until this surface existed they were visible in four different places (the deployment's
|
|
74
|
+
* source, a boot log, a run's prompt, and nowhere): which kinds declare it, which harnesses can
|
|
75
|
+
* serve it, whether its credentials resolve, and whether the endpoint answers. The first two are
|
|
76
|
+
* static facts stated here; the last two are what {@link toolServerProbeResultSchema} settles.
|
|
77
|
+
*/
|
|
78
|
+
export const toolServerViewSchema = v.object({
|
|
79
|
+
id: v.string(),
|
|
80
|
+
label: v.string(),
|
|
81
|
+
transport: toolServerTransportSchema,
|
|
82
|
+
/**
|
|
83
|
+
* What the declaration points at: the url for an `http` server, the command for a `stdio` one.
|
|
84
|
+
* Rendered so the operator can recognise WHICH server a row is, and stripped of any userinfo
|
|
85
|
+
* credential a url carried, because this reaches a browser.
|
|
86
|
+
*/
|
|
87
|
+
target: v.string(),
|
|
88
|
+
/** The definition's `guidance` — what the AGENT is told the server is for. */
|
|
89
|
+
guidance: v.optional(v.string()),
|
|
90
|
+
/**
|
|
91
|
+
* The agent kinds this server is declared for, own declarations and `assignToolServers` alike.
|
|
92
|
+
*
|
|
93
|
+
* EMPTY is a real and reportable state: a server registered by id and attached to no kind never
|
|
94
|
+
* reaches a dispatch, so its credentials are keys an operator would fill in for no run. Nothing
|
|
95
|
+
* else says so — boot validation checks declarations reachable FROM a kind, so an orphan registry
|
|
96
|
+
* entry passes every check silently.
|
|
97
|
+
*/
|
|
98
|
+
declaredBy: v.array(v.string()),
|
|
99
|
+
/**
|
|
100
|
+
* Which harnesses could serve it: the definition's own `harnesses` narrowed to the CLIs whose MCP
|
|
101
|
+
* client reaches its transport. Free-form strings on purpose — these are CLI names
|
|
102
|
+
* (`claude-code`, `codex`, `pi`), not translated copy, and duplicating kernel's closed
|
|
103
|
+
* `HarnessKind` union here would be a second list to keep in step for no reader's benefit.
|
|
104
|
+
*
|
|
105
|
+
* EMPTY means the declaration can never run anywhere (an `http` server narrowed to `codex`, whose
|
|
106
|
+
* client is stdio-only). Boot warns about that; it is repeated here because a boot warning is not
|
|
107
|
+
* where anyone looks.
|
|
108
|
+
*/
|
|
109
|
+
servableHarnesses: v.array(v.string()),
|
|
110
|
+
/** The tools the agent may call, when the definition narrowed them. Absent ⇒ all of them. */
|
|
111
|
+
allowedTools: v.optional(v.array(v.string())),
|
|
112
|
+
/** The credentials it asks for, by name. */
|
|
113
|
+
credentials: v.array(toolServerCredentialSchema),
|
|
114
|
+
/** Whether this deployment can reach the server to probe it. */
|
|
115
|
+
probeable: v.boolean(),
|
|
116
|
+
/** Why not, when `probeable` is false. Always present in that case, absent otherwise. */
|
|
117
|
+
notProbeableReason: v.optional(toolServerNotProbeableReasonSchema),
|
|
118
|
+
});
|
|
119
|
+
/** What the tool-server surface returns: every declaration this deployment registered. */
|
|
120
|
+
export const toolServersViewSchema = v.object({
|
|
121
|
+
servers: v.array(toolServerViewSchema),
|
|
122
|
+
});
|
|
123
|
+
/**
|
|
124
|
+
* The verdict of one probe. A CLOSED vocabulary, and the members are split by the fix they call for
|
|
125
|
+
* rather than by where in the code the failure happened:
|
|
126
|
+
*
|
|
127
|
+
* - `ok` — the server completed the MCP handshake and answered `tools/list`.
|
|
128
|
+
* - `credentials_missing` — a `required` credential did not resolve, so nothing was sent. This is
|
|
129
|
+
* the same condition that makes a dispatch drop the server under `missing_secret`, reached
|
|
130
|
+
* without spending a run to find out.
|
|
131
|
+
* - `credential_refused` — a credential's LOOKUP key names a platform configuration variable, so
|
|
132
|
+
* the probe refused to resolve it (the dispatch's `reserved_secret`). Kept apart from the above
|
|
133
|
+
* because setting the variable is precisely what must not help: the DECLARATION is what changes.
|
|
134
|
+
* - `unreachable` — the request never got an answer (DNS, TLS, connection refused, timeout). The
|
|
135
|
+
* endpoint or the network is the fix.
|
|
136
|
+
* - `http_error` — something answered with a status that is not an MCP response. `401`/`403` is the
|
|
137
|
+
* credential being wrong (as opposed to absent, which is `credentials_missing`); `404` is usually
|
|
138
|
+
* a url pointing at the wrong path. `httpStatus` carries which.
|
|
139
|
+
* - `protocol_error` — it answered, but not as an MCP server: a non-JSON body, a JSON-RPC error, a
|
|
140
|
+
* protocol version it would not negotiate. The url probably names something that is not this
|
|
141
|
+
* server.
|
|
142
|
+
* - `not_probeable` — the probe was refused before it began; see
|
|
143
|
+
* {@link toolServerNotProbeableReasonSchema}.
|
|
144
|
+
*/
|
|
145
|
+
export const toolServerProbeStatusSchema = v.picklist([
|
|
146
|
+
'ok',
|
|
147
|
+
'credentials_missing',
|
|
148
|
+
'credential_refused',
|
|
149
|
+
'unreachable',
|
|
150
|
+
'http_error',
|
|
151
|
+
'protocol_error',
|
|
152
|
+
'not_probeable',
|
|
153
|
+
]);
|
|
154
|
+
/**
|
|
155
|
+
* Whether the tools the definition NARROWED to actually exist on the server.
|
|
156
|
+
*
|
|
157
|
+
* The first thing in the platform that can answer it. `allowedTools` is held to a NAME pattern at
|
|
158
|
+
* registration, at dispatch and at the job boundary, but no layer can check a well-formed name
|
|
159
|
+
* against reality: a typo'd `search_issue` narrows claude-code's allow-list to a pattern matching
|
|
160
|
+
* nothing while the prompt goes on advertising the name, which is the "told about a tool it cannot
|
|
161
|
+
* call" failure the whole unavailability vocabulary exists to prevent.
|
|
162
|
+
*
|
|
163
|
+
* `checked` is why this is an object rather than a bare list. `tools/list` is PAGINATED, and the
|
|
164
|
+
* probe reads a bounded number of pages; if a cursor was still outstanding, a name's absence from
|
|
165
|
+
* what came back is not evidence it is absent from the server. So an unread tail makes the verdict
|
|
166
|
+
* `checked: false` and `unmatched` empty, rather than reporting names as missing on the strength of
|
|
167
|
+
* a partial read.
|
|
168
|
+
*/
|
|
169
|
+
export const toolServerAllowedToolsCheckSchema = v.object({
|
|
170
|
+
declared: v.array(v.string()),
|
|
171
|
+
/** Declared names the server does not expose. Empty when `checked` is false. */
|
|
172
|
+
unmatched: v.array(v.string()),
|
|
173
|
+
/** Whether the full tool list was read, and therefore whether `unmatched` means anything. */
|
|
174
|
+
checked: v.boolean(),
|
|
175
|
+
});
|
|
176
|
+
/** What one probe answered. */
|
|
177
|
+
export const toolServerProbeResultSchema = v.object({
|
|
178
|
+
serverId: v.string(),
|
|
179
|
+
status: toolServerProbeStatusSchema,
|
|
180
|
+
/** Present when `status` is `not_probeable`, absent otherwise. */
|
|
181
|
+
notProbeableReason: v.optional(toolServerNotProbeableReasonSchema),
|
|
182
|
+
/** The `serverInfo` the handshake returned. Present on `ok`. */
|
|
183
|
+
serverName: v.optional(v.string()),
|
|
184
|
+
serverVersion: v.optional(v.string()),
|
|
185
|
+
/** The protocol version the server negotiated. Present on `ok`. */
|
|
186
|
+
protocolVersion: v.optional(v.string()),
|
|
187
|
+
/**
|
|
188
|
+
* How many tools the server exposed across the pages that were read. Present on `ok`.
|
|
189
|
+
*
|
|
190
|
+
* Read WITH `toolsComplete`: a count off a truncated read is a floor, not a total, and the two
|
|
191
|
+
* fields exist separately so the surface can say which it is holding.
|
|
192
|
+
*/
|
|
193
|
+
toolCount: v.optional(v.number()),
|
|
194
|
+
/** The tool names read, capped — see {@link MCP_PROBE_TOOL_NAME_CAP}. Present on `ok`. */
|
|
195
|
+
tools: v.optional(v.array(v.string())),
|
|
196
|
+
/** Whether every page of `tools/list` was read. Present on `ok`. */
|
|
197
|
+
toolsComplete: v.optional(v.boolean()),
|
|
198
|
+
/** The `allowedTools` reconciliation, when the definition narrowed them and the probe answered. */
|
|
199
|
+
allowedTools: v.optional(toolServerAllowedToolsCheckSchema),
|
|
200
|
+
/** Which declared credentials did not resolve. Present on `credentials_missing`. */
|
|
201
|
+
unresolvedCredentials: v.optional(v.array(v.string())),
|
|
202
|
+
/** Which declared credential named a platform variable. Present on `credential_refused`. */
|
|
203
|
+
refusedCredentials: v.optional(v.array(v.string())),
|
|
204
|
+
/** The status something answered with. Present on `http_error`. */
|
|
205
|
+
httpStatus: v.optional(v.number()),
|
|
206
|
+
/**
|
|
207
|
+
* The failure in prose, for the disclosure behind the translated description. Scrubbed through
|
|
208
|
+
* `redactSecrets` at the emit site: a fetch error routinely echoes the request url, and this one
|
|
209
|
+
* carries a credential header.
|
|
210
|
+
*/
|
|
211
|
+
error: v.optional(v.string()),
|
|
212
|
+
});
|
|
213
|
+
/**
|
|
214
|
+
* How many tool NAMES a probe result carries back.
|
|
215
|
+
*
|
|
216
|
+
* The list is for recognition ("yes, that is the Slack server") and for the `allowedTools`
|
|
217
|
+
* reconciliation, which is computed on the backend against everything read rather than against this
|
|
218
|
+
* prefix — so capping the wire list narrows what a human scrolls and never what was checked.
|
|
219
|
+
* `toolCount` states the real figure, so a truncated list is visible rather than implied.
|
|
220
|
+
*/
|
|
221
|
+
export const MCP_PROBE_TOOL_NAME_CAP = 100;
|
|
222
|
+
/**
|
|
223
|
+
* Pages of `tools/list` one probe reads before it stops and reports the read as incomplete.
|
|
224
|
+
*
|
|
225
|
+
* A bound rather than a full drain, because a probe is an interactive request an operator waits on
|
|
226
|
+
* and the page size is the SERVER's choice: an unbounded loop hands a remote server control of how
|
|
227
|
+
* long this endpoint runs. Three pages covers every real server's tool table; a cursor still
|
|
228
|
+
* outstanding after the third means the answer is "it works, and it has more tools than this can
|
|
229
|
+
* enumerate", which is a true and useful answer.
|
|
230
|
+
*/
|
|
231
|
+
export const MCP_PROBE_MAX_PAGES = 3;
|
|
232
|
+
/** How long a probe waits for the whole handshake-plus-list exchange. */
|
|
233
|
+
export const MCP_PROBE_TIMEOUT_MS = 10_000;
|
|
234
|
+
//# sourceMappingURL=tool-servers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-servers.js","sourceRoot":"","sources":["../src/tool-servers.ts"],"names":[],"mappings":"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"}
|