@cat-factory/orchestration 0.251.0 → 0.251.1
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/modules/execution/toolServers.logic.d.ts +6 -3
- package/dist/modules/execution/toolServers.logic.d.ts.map +1 -1
- package/dist/modules/execution/toolServers.logic.js +6 -3
- package/dist/modules/execution/toolServers.logic.js.map +1 -1
- package/dist/validation/validateRegistrations.d.ts.map +1 -1
- package/dist/validation/validateRegistrations.js +3 -280
- package/dist/validation/validateRegistrations.js.map +1 -1
- package/dist/validation/validateToolServers.d.ts +24 -0
- package/dist/validation/validateToolServers.d.ts.map +1 -0
- package/dist/validation/validateToolServers.js +337 -0
- package/dist/validation/validateToolServers.js.map +1 -0
- package/package.json +11 -11
|
@@ -3,9 +3,12 @@ import type { PipelineStep } from '@cat-factory/kernel';
|
|
|
3
3
|
/**
|
|
4
4
|
* Fold the CLI's tool-server startup report onto a step, returning whether anything changed.
|
|
5
5
|
*
|
|
6
|
-
* Applied
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Applied at two sites that between them cover every poll disposition: the live poll, and once in
|
|
7
|
+
* the dispatcher AHEAD of the settled branch tree, so all five persisting arms inherit it (where
|
|
8
|
+
* `applyValidationReport` instead has a call per path). The coverage matters for the same reason
|
|
9
|
+
* as there, plus one of its own: the CLI announces its servers ONCE, near the start of the run, so
|
|
10
|
+
* a job that settles between two polls is never seen `running` and only its terminal poll can
|
|
11
|
+
* deliver the report.
|
|
9
12
|
*
|
|
10
13
|
* Two guards that are load-bearing rather than defensive:
|
|
11
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolServers.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/toolServers.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAA4B,MAAM,wBAAwB,CAAA;AAE1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAYvD
|
|
1
|
+
{"version":3,"file":"toolServers.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/toolServers.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAA4B,MAAM,wBAAwB,CAAA;AAE1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAYvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAQlF;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAuBnF"}
|
|
@@ -11,9 +11,12 @@ import { isToolServerObservedStatus } from '@cat-factory/contracts';
|
|
|
11
11
|
/**
|
|
12
12
|
* Fold the CLI's tool-server startup report onto a step, returning whether anything changed.
|
|
13
13
|
*
|
|
14
|
-
* Applied
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Applied at two sites that between them cover every poll disposition: the live poll, and once in
|
|
15
|
+
* the dispatcher AHEAD of the settled branch tree, so all five persisting arms inherit it (where
|
|
16
|
+
* `applyValidationReport` instead has a call per path). The coverage matters for the same reason
|
|
17
|
+
* as there, plus one of its own: the CLI announces its servers ONCE, near the start of the run, so
|
|
18
|
+
* a job that settles between two polls is never seen `running` and only its terminal poll can
|
|
19
|
+
* deliver the report.
|
|
17
20
|
*
|
|
18
21
|
* Two guards that are load-bearing rather than defensive:
|
|
19
22
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolServers.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/toolServers.logic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAGnE,0FAA0F;AAC1F,2FAA2F;AAC3F,EAAE;AACF,kGAAkG;AAClG,gGAAgG;AAChG,gGAAgG;AAChG,gGAAgG;AAChG,+FAA+F;AAC/F,wCAAwC;AAExC
|
|
1
|
+
{"version":3,"file":"toolServers.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/toolServers.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateRegistrations.d.ts","sourceRoot":"","sources":["../../src/validation/validateRegistrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAEV,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,wBAAwB,
|
|
1
|
+
{"version":3,"file":"validateRegistrations.d.ts","sourceRoot":"","sources":["../../src/validation/validateRegistrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAEV,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,qBAAqB,CAAA;AAqD5B,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,iBAAiB,EAAE,iBAAiB,CAAA;IACpC;;;;OAIG;IACH,YAAY,EAAE,YAAY,CAAA;IAC1B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,2BAA2B,CAAA;IACzD;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAE,0BAA0B,CAAA;CACxD;AAED,uFAAuF;AACvF,MAAM,WAAW,4BAA4B;IAC3C,+EAA+E;IAC/E,UAAU,EAAE,mBAAmB,CAAA;IAC/B,qGAAqG;IACrG,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,qGAAqG;IACrG,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACrC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC/C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAA;CAC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,4BAA4B,GACjC,mBAAmB,EAAE,CA4FvB;AAkyBD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CAuB9E;AAOD,yGAAyG;AACzG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CASlF;AAED,uFAAuF;AACvF,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { INLINE_ENGINE_SYSTEM_PROMPTS, runsInContainer } from '@cat-factory/agents';
|
|
2
|
-
import { CI_FIXER_AGENT_KIND, CONFLICT_RESOLVER_AGENT_KIND, FIXER_AGENT_KIND, ON_CALL_AGENT_KIND,
|
|
3
|
-
import { binaryGeneratorDefinitionIssues, descriptorConditionHasPredicate, duplicatedDescriptorSectionCaptions, isDeploymentScopedSource, foundationalServiceDefinitionIssues,
|
|
2
|
+
import { CI_FIXER_AGENT_KIND, CONFLICT_RESOLVER_AGENT_KIND, FIXER_AGENT_KIND, ON_CALL_AGENT_KIND, describeFoundationalProblem, isAllowedMcpHttpUrl, seedPipelines, stubGateContext, validateFoundationalDefinition, } from '@cat-factory/kernel';
|
|
3
|
+
import { binaryGeneratorDefinitionIssues, descriptorConditionHasPredicate, duplicatedDescriptorSectionCaptions, isDeploymentScopedSource, foundationalServiceDefinitionIssues, isNamespacedId, modalitiesOfMediaType, isValidResultViewId, RESULT_VIEW_ID_SET, } from '@cat-factory/contracts';
|
|
4
|
+
import { checkKindToolServers } from './validateToolServers.js';
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
5
6
|
// Boot-time validation of the deployment's registered extensions (agent kinds, gates,
|
|
6
7
|
// pipelines). A typo'd gate `helperKind`, an unknown `resultView`, or a pipeline naming a
|
|
@@ -435,284 +436,6 @@ function checkKindSkills(kind, registry) {
|
|
|
435
436
|
}
|
|
436
437
|
return problems;
|
|
437
438
|
}
|
|
438
|
-
/**
|
|
439
|
-
* A kind's declared TOOL SERVERS: the whole-list checks (unregistered ids, the per-dispatch budget,
|
|
440
|
-
* the container surface), with each definition's own checks in
|
|
441
|
-
* {@link checkToolServerDefinition}. "Declared for" includes assigned servers, see
|
|
442
|
-
* {@link checkAgentCapabilities}.
|
|
443
|
-
*
|
|
444
|
-
* - an unregistered id is an ERROR, like an unregistered skill;
|
|
445
|
-
* - past EITHER dimension of the per-dispatch budget is a WARNING, because the dispatch drops the
|
|
446
|
-
* excess under `over_budget` rather than failing: the run still works, with fewer tools than the
|
|
447
|
-
* deployment believes it wired, and boot is the only place the DECLARATIONS past the line can be
|
|
448
|
-
* named. A warning also keeps the accretion case honest, a kind going over budget through
|
|
449
|
-
* `assignToolServers` calls in several packages none of which is individually wrong. Both
|
|
450
|
-
* dimensions are checked because the dispatch enforces both, and a byte-driven drop is the one
|
|
451
|
-
* that surprises: a handful of servers with fat `env`/`args`/`headers` blocks is under the count
|
|
452
|
-
* and over the payload;
|
|
453
|
-
* - tool servers on a NON-container kind is a WARNING: an inline LLM call has no CLI to wire them
|
|
454
|
-
* into, so they can never take effect. A warning rather than an error because a deployment may
|
|
455
|
-
* deliberately declare them ahead of moving the kind onto a container surface.
|
|
456
|
-
*/
|
|
457
|
-
function checkKindToolServers(kind, registry) {
|
|
458
|
-
const problems = [];
|
|
459
|
-
const tools = registry.toolServersFor(kind);
|
|
460
|
-
for (const id of tools.unknown) {
|
|
461
|
-
problems.push({
|
|
462
|
-
severity: 'error',
|
|
463
|
-
code: 'unknown_tool_server',
|
|
464
|
-
message: `Agent kind "${kind}" declares tool server "${id}", which is not registered. Call ` +
|
|
465
|
-
`registry.registerToolServer({ id: '${id}', … }) before registering the kind, or ` +
|
|
466
|
-
`declare the server inline.`,
|
|
467
|
-
});
|
|
468
|
-
}
|
|
469
|
-
for (const server of tools.servers)
|
|
470
|
-
problems.push(...checkToolServerDefinition(kind, server));
|
|
471
|
-
problems.push(...checkToolServerBudget(kind, tools.servers));
|
|
472
|
-
if (tools.servers.length && !runsInContainer(kind, registry)) {
|
|
473
|
-
problems.push({
|
|
474
|
-
severity: 'warn',
|
|
475
|
-
code: 'tool_servers_without_container',
|
|
476
|
-
message: `Agent kind "${kind}" declares tool servers but does not run in a container — an ` +
|
|
477
|
-
`inline LLM step has no agent CLI to wire them into, so they will never be available. ` +
|
|
478
|
-
`Give the kind a container surface (agent.surface: 'container-explore' / ` +
|
|
479
|
-
`'container-coding') or drop the tool servers.`,
|
|
480
|
-
});
|
|
481
|
-
}
|
|
482
|
-
return problems;
|
|
483
|
-
}
|
|
484
|
-
/**
|
|
485
|
-
* The per-dispatch budget, BOTH dimensions, as warnings: the dispatch drops the excess under
|
|
486
|
-
* `over_budget` and the run works with fewer tools, so a registration fault belongs at boot rather
|
|
487
|
-
* than in a refusal that takes the deployment down.
|
|
488
|
-
*
|
|
489
|
-
* The byte check measures {@link toolServerDeclaredBytes}, which is a FLOOR (a resolved credential
|
|
490
|
-
* only adds to it), so a declaration already past the budget here is certainly past it at dispatch.
|
|
491
|
-
* What boot deliberately does NOT claim is WHICH servers a run will lose: the dispatch keeps every
|
|
492
|
-
* server that still fits, so once bytes are what bind the survivors are not a prefix of the
|
|
493
|
-
* declaration. The count and the budget are what the author acts on, and the run itself names each
|
|
494
|
-
* server it dropped.
|
|
495
|
-
*/
|
|
496
|
-
function checkToolServerBudget(kind, servers) {
|
|
497
|
-
const problems = [];
|
|
498
|
-
if (servers.length > TOOL_SERVER_BUDGET.maxServers) {
|
|
499
|
-
problems.push({
|
|
500
|
-
severity: 'warn',
|
|
501
|
-
code: 'too_many_tool_servers',
|
|
502
|
-
message: `Agent kind "${kind}" has ${servers.length} tool servers declared for it, past the ` +
|
|
503
|
-
`per-dispatch budget of ${TOOL_SERVER_BUDGET.maxServers}. A dispatch wires the first ` +
|
|
504
|
-
`${TOOL_SERVER_BUDGET.maxServers} in declaration order and states the rest to the agent as ` +
|
|
505
|
-
`unavailable (over_budget). Drop some, or split the work across kinds.`,
|
|
506
|
-
});
|
|
507
|
-
}
|
|
508
|
-
const bytes = servers.reduce((total, server) => total + toolServerDeclaredBytes(server), 0);
|
|
509
|
-
if (bytes > TOOL_SERVER_BUDGET.maxTotalBytes) {
|
|
510
|
-
problems.push({
|
|
511
|
-
severity: 'warn',
|
|
512
|
-
code: 'tool_servers_over_byte_budget',
|
|
513
|
-
message: `Agent kind "${kind}" declares tool servers whose transport config alone measures ${bytes} ` +
|
|
514
|
-
`bytes, past the per-dispatch budget of ${TOOL_SERVER_BUDGET.maxTotalBytes}. A dispatch ` +
|
|
515
|
-
`wires servers until that budget is spent and states the rest to the agent as unavailable ` +
|
|
516
|
-
`(over_budget); resolved credentials only add to this figure, and which servers lose out ` +
|
|
517
|
-
`depends on their sizes. Trim the env/args/headers blocks, or split the work across kinds.`,
|
|
518
|
-
});
|
|
519
|
-
}
|
|
520
|
-
return problems;
|
|
521
|
-
}
|
|
522
|
-
/**
|
|
523
|
-
* ONE tool server definition:
|
|
524
|
-
*
|
|
525
|
-
* - a malformed MCP server id is an ERROR, because it becomes both a tool-name fragment and a
|
|
526
|
-
* Codex TOML table key, so the CLI fails on it far from the registration that caused it;
|
|
527
|
-
* - an `allowedTools` entry that is not a valid tool NAME is an ERROR, the comma case above all:
|
|
528
|
-
* the harness joins the whole list into one `--allowedTools` argument with commas, so an entry
|
|
529
|
-
* carrying one splits into two patterns and the second matches nothing, while the prompt goes on
|
|
530
|
-
* advertising the name verbatim. That is the "told about a tool it cannot call" failure the
|
|
531
|
-
* unavailability vocabulary exists to prevent;
|
|
532
|
-
* - a definition NO harness could ever serve is a WARNING, and it is the only check here a run
|
|
533
|
-
* structurally cannot report: an `http` server narrowed to `harnesses: ['codex']` (whose client
|
|
534
|
-
* is stdio-only), or anything narrowed to `['pi']` (which has no MCP client), is never dropped
|
|
535
|
-
* FOR A REASON on any run. It simply never applies, so no prompt and no log line ever mentions
|
|
536
|
-
* it. A warning rather than an error because the declaration is inert rather than dangerous;
|
|
537
|
-
* - a cleartext `http://` endpoint off loopback is an ERROR: a resolved credential rides that
|
|
538
|
-
* request as a header, and the harness refuses the same URL at the job boundary — so allowing
|
|
539
|
-
* it here only moves the failure to a place with no registration to point at.
|
|
540
|
-
*/
|
|
541
|
-
function checkToolServerDefinition(kind, server) {
|
|
542
|
-
const problems = [];
|
|
543
|
-
const on = `(on agent kind "${kind}")`;
|
|
544
|
-
if (!isValidMcpServerId(server.id)) {
|
|
545
|
-
problems.push({
|
|
546
|
-
severity: 'error',
|
|
547
|
-
code: 'invalid_tool_server_id',
|
|
548
|
-
message: `Tool server "${server.id}" ${on} has an invalid id. It becomes part of the tool names ` +
|
|
549
|
-
`the CLI exposes (mcp__<id>__<tool>) and a Codex config key, so it must match ` +
|
|
550
|
-
`[a-z0-9][a-z0-9_-]*.`,
|
|
551
|
-
});
|
|
552
|
-
}
|
|
553
|
-
for (const tool of server.allowedTools ?? []) {
|
|
554
|
-
if (isValidMcpToolName(tool))
|
|
555
|
-
continue;
|
|
556
|
-
problems.push({
|
|
557
|
-
severity: 'error',
|
|
558
|
-
code: 'invalid_tool_server_tool_name',
|
|
559
|
-
message: `Tool server "${server.id}" ${on} restricts allowedTools to "${tool}", which is not a ` +
|
|
560
|
-
`single tool name (letters, digits, "_", "." and "-"). The harness joins the list into ` +
|
|
561
|
-
`one --allowedTools argument with commas, so an entry with a comma or whitespace becomes ` +
|
|
562
|
-
`patterns that match nothing while the prompt still advertises the name. List each tool ` +
|
|
563
|
-
`as its own entry.`,
|
|
564
|
-
});
|
|
565
|
-
}
|
|
566
|
-
const servable = mcpServableHarnesses(server);
|
|
567
|
-
if (servable.length === 0) {
|
|
568
|
-
problems.push({
|
|
569
|
-
severity: 'warn',
|
|
570
|
-
code: 'tool_server_unservable',
|
|
571
|
-
message: `Tool server "${server.id}" ${on} declares transport "${server.transport.kind}" for ` +
|
|
572
|
-
`harnesses [${(server.harnesses ?? MCP_SUPPORTED_HARNESSES).join(', ')}], and no harness ` +
|
|
573
|
-
`can serve that combination, so the server never applies to any run and no prompt or log ` +
|
|
574
|
-
`line will say why. Codex's MCP client is stdio-only and Pi has none at all. Widen the ` +
|
|
575
|
-
`harnesses, change the transport, or drop the declaration.`,
|
|
576
|
-
});
|
|
577
|
-
}
|
|
578
|
-
if (server.transport.kind === 'http' && !isAllowedMcpHttpUrl(server.transport.url)) {
|
|
579
|
-
problems.push({
|
|
580
|
-
severity: 'error',
|
|
581
|
-
code: 'insecure_tool_server_url',
|
|
582
|
-
message: `Tool server "${server.id}" ${on} has url "${server.transport.url}". An HTTP tool server ` +
|
|
583
|
-
`carries its resolved credential in a request header, so the url must be https (plain ` +
|
|
584
|
-
`http is accepted only on loopback).`,
|
|
585
|
-
});
|
|
586
|
-
}
|
|
587
|
-
for (const secret of server.secretKeys ?? []) {
|
|
588
|
-
problems.push(...checkToolServerSecret(kind, server, secret));
|
|
589
|
-
}
|
|
590
|
-
problems.push(...checkToolServerOAuth(kind, server));
|
|
591
|
-
return problems;
|
|
592
|
-
}
|
|
593
|
-
/**
|
|
594
|
-
* A tool server's OAUTH declaration, when it has one. Four rules, and each of them names a failure
|
|
595
|
-
* that is otherwise invisible until a run or a button press:
|
|
596
|
-
*
|
|
597
|
-
* - `oauth` on a `stdio` server is an ERROR. A stdio server is a child process the CLI spawns;
|
|
598
|
-
* there is no request to authorise, so the declaration is inert and reads as configured. The
|
|
599
|
-
* dispatch drops the OAuth half silently for the mothership case, which is exactly why boot is
|
|
600
|
-
* where the fault has to be named.
|
|
601
|
-
* - a declared endpoint that fails the URL floor is an ERROR, and this is the sharpest one here:
|
|
602
|
-
* an OAuth exchange carries the client secret and the tokens, so a cleartext endpoint puts both
|
|
603
|
-
* on the wire. A DISCOVERED endpoint is held to the same rule at the moment it is read.
|
|
604
|
-
* - a reserved `clientSecretKey` is an ERROR for the reason every capability credential is: the
|
|
605
|
-
* declaration names both the key it wants and the token endpoint that key is posted to.
|
|
606
|
-
* - a `secretKeys` entry naming the same header the access token rides is a WARNING. Both would
|
|
607
|
-
* land in one header map and the granted token wins, so the static credential silently does
|
|
608
|
-
* nothing — which reads, to whoever declared it, as the platform ignoring their credential.
|
|
609
|
-
*/
|
|
610
|
-
function checkToolServerOAuth(kind, server) {
|
|
611
|
-
const oauth = server.oauth;
|
|
612
|
-
if (!oauth)
|
|
613
|
-
return [];
|
|
614
|
-
const problems = [];
|
|
615
|
-
const on = `(on agent kind "${kind}")`;
|
|
616
|
-
if (server.transport.kind !== 'http') {
|
|
617
|
-
problems.push({
|
|
618
|
-
severity: 'error',
|
|
619
|
-
code: 'oauth_requires_http_transport',
|
|
620
|
-
message: `Tool server "${server.id}" ${on} declares OAuth on a "${server.transport.kind}" ` +
|
|
621
|
-
`transport. OAuth authenticates a REQUEST, and a stdio server is a child process the ` +
|
|
622
|
-
`agent CLI spawns with no request to authorise — pass its credential through secretKeys ` +
|
|
623
|
-
`instead.`,
|
|
624
|
-
});
|
|
625
|
-
}
|
|
626
|
-
for (const [field, url] of [
|
|
627
|
-
['authorizationUrl', oauth.authorizationUrl],
|
|
628
|
-
['tokenUrl', oauth.tokenUrl],
|
|
629
|
-
]) {
|
|
630
|
-
if (url === undefined || isAllowedMcpHttpUrl(url))
|
|
631
|
-
continue;
|
|
632
|
-
problems.push({
|
|
633
|
-
severity: 'error',
|
|
634
|
-
code: 'insecure_oauth_endpoint',
|
|
635
|
-
message: `Tool server "${server.id}" ${on} declares OAuth ${field} "${url}". The exchange carries ` +
|
|
636
|
-
`the client secret and the access token, so the endpoint must be https (plain http is ` +
|
|
637
|
-
`accepted only on loopback).`,
|
|
638
|
-
});
|
|
639
|
-
}
|
|
640
|
-
if (oauth.clientSecretKey !== undefined && isReservedPlatformEnvKey(oauth.clientSecretKey)) {
|
|
641
|
-
problems.push({
|
|
642
|
-
severity: 'error',
|
|
643
|
-
code: 'reserved_credential_key',
|
|
644
|
-
message: `Tool server "${server.id}" ${on} declares OAuth client secret ` +
|
|
645
|
-
reservedEnvKeyMessage(oauth.clientSecretKey),
|
|
646
|
-
});
|
|
647
|
-
}
|
|
648
|
-
const tokenHeader = (oauth.header ?? MCP_OAUTH_DEFAULT_HEADER).toLowerCase();
|
|
649
|
-
for (const secret of server.secretKeys ?? []) {
|
|
650
|
-
if (secret.header?.toLowerCase() !== tokenHeader)
|
|
651
|
-
continue;
|
|
652
|
-
problems.push({
|
|
653
|
-
severity: 'warn',
|
|
654
|
-
code: 'oauth_header_collision',
|
|
655
|
-
message: `Tool server "${server.id}" ${on} declares credential "${secret.key}" on header ` +
|
|
656
|
-
`"${secret.header}", which is also where its OAuth access token is sent. The granted ` +
|
|
657
|
-
`token wins, so that credential reaches the server as nothing at all — send it under a ` +
|
|
658
|
-
`different header, or drop it.`,
|
|
659
|
-
});
|
|
660
|
-
}
|
|
661
|
-
return problems;
|
|
662
|
-
}
|
|
663
|
-
/**
|
|
664
|
-
* ONE credential a tool server declares. The reserved-key check is the sharpest rule in this file:
|
|
665
|
-
* a definition names both the key it wants and the endpoint that key is sent to, so
|
|
666
|
-
* `{ key: 'ENCRYPTION_KEY', header: 'Authorization' }` is a registration that boots clean and ships
|
|
667
|
-
* the deployment's master sealing key to a third party. The generative-integration half of the same
|
|
668
|
-
* rule is enforced by its credential SCHEMA (there is no schema here — a tool server is a TypeScript
|
|
669
|
-
* registration), and dispatch refuses both again for the mothership case.
|
|
670
|
-
*/
|
|
671
|
-
function checkToolServerSecret(kind, server, secret) {
|
|
672
|
-
const problems = [];
|
|
673
|
-
const on = `(on agent kind "${kind}")`;
|
|
674
|
-
if (isReservedPlatformEnvKey(secret.key)) {
|
|
675
|
-
problems.push({
|
|
676
|
-
severity: 'error',
|
|
677
|
-
code: 'reserved_credential_key',
|
|
678
|
-
message: `Tool server "${server.id}" ${on} declares credential ${reservedEnvKeyMessage(secret.key)}`,
|
|
679
|
-
});
|
|
680
|
-
}
|
|
681
|
-
if (secret.envName === undefined)
|
|
682
|
-
return problems;
|
|
683
|
-
// The injection name is NOT held to the reserved floor (it reads nothing), so it carries its own
|
|
684
|
-
// rule: a value set as `PATH` or `npm_config_registry` reconfigures the server's process instead
|
|
685
|
-
// of authenticating a call. Dispatch drops one too, for the mothership case.
|
|
686
|
-
if (!isEnvVariableName(secret.envName)) {
|
|
687
|
-
problems.push({
|
|
688
|
-
severity: 'error',
|
|
689
|
-
code: 'invalid_credential_env_name',
|
|
690
|
-
message: `Tool server "${server.id}" ${on} declares credential envName "${secret.envName}", which ` +
|
|
691
|
-
`is not a valid environment variable name. It becomes a variable of the server's process, ` +
|
|
692
|
-
`and the harness drops anything else.`,
|
|
693
|
-
});
|
|
694
|
-
}
|
|
695
|
-
if (isToolchainEnvName(secret.envName)) {
|
|
696
|
-
problems.push({
|
|
697
|
-
severity: 'error',
|
|
698
|
-
code: 'toolchain_credential_env_name',
|
|
699
|
-
message: `Tool server "${server.id}" ${on} declares credential ${toolchainEnvNameMessage(secret.envName)}`,
|
|
700
|
-
});
|
|
701
|
-
}
|
|
702
|
-
// An `http` server sends its value as a HEADER, so an injection name would be read by nothing.
|
|
703
|
-
// A warning rather than an error: the declaration still works, it just says something that cannot
|
|
704
|
-
// take effect, and failing boot over it would be out of proportion.
|
|
705
|
-
if (server.transport.kind === 'http' && secret.header) {
|
|
706
|
-
problems.push({
|
|
707
|
-
severity: 'warn',
|
|
708
|
-
code: 'unused_credential_env_name',
|
|
709
|
-
message: `Tool server "${server.id}" ${on} declares credential envName "${secret.envName}" on a ` +
|
|
710
|
-
`key that names a header. An http server's value is sent as that header, so the injection ` +
|
|
711
|
-
`name is never used.`,
|
|
712
|
-
});
|
|
713
|
-
}
|
|
714
|
-
return problems;
|
|
715
|
-
}
|
|
716
439
|
/**
|
|
717
440
|
* Section 3 of {@link collectRegistrationProblems}: a coherence WARNING for a kind that declares
|
|
718
441
|
* postOps but whose agent step is not structured output — those post-ops read `result.custom` and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateRegistrations.js","sourceRoot":"","sources":["../../src/validation/validateRegistrations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validateRegistrations.js","sourceRoot":"","sources":["../../src/validation/validateRegistrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AgentKindRegistry } from '@cat-factory/agents';
|
|
2
|
+
import type { AgentKind } from '@cat-factory/kernel';
|
|
3
|
+
import type { RegistrationProblem } from './validateRegistrations.js';
|
|
4
|
+
/**
|
|
5
|
+
* A kind's declared TOOL SERVERS: the whole-list checks (unregistered ids, the per-dispatch budget,
|
|
6
|
+
* the container surface), with each definition's own checks in
|
|
7
|
+
* {@link checkToolServerDefinition}. "Declared for" includes assigned servers, which is why the
|
|
8
|
+
* capability walk in `validateRegistrations.ts` calls this per KIND rather than per registration.
|
|
9
|
+
*
|
|
10
|
+
* - an unregistered id is an ERROR, like an unregistered skill;
|
|
11
|
+
* - past EITHER dimension of the per-dispatch budget is a WARNING, because the dispatch drops the
|
|
12
|
+
* excess under `over_budget` rather than failing: the run still works, with fewer tools than the
|
|
13
|
+
* deployment believes it wired, and boot is the only place the DECLARATIONS past the line can be
|
|
14
|
+
* named. A warning also keeps the accretion case honest, a kind going over budget through
|
|
15
|
+
* `assignToolServers` calls in several packages none of which is individually wrong. Both
|
|
16
|
+
* dimensions are checked because the dispatch enforces both, and a byte-driven drop is the one
|
|
17
|
+
* that surprises: a handful of servers with fat `env`/`args`/`headers` blocks is under the count
|
|
18
|
+
* and over the payload;
|
|
19
|
+
* - tool servers on a NON-container kind is a WARNING: an inline LLM call has no CLI to wire them
|
|
20
|
+
* into, so they can never take effect. A warning rather than an error because a deployment may
|
|
21
|
+
* deliberately declare them ahead of moving the kind onto a container surface.
|
|
22
|
+
*/
|
|
23
|
+
export declare function checkKindToolServers(kind: AgentKind, registry: AgentKindRegistry): RegistrationProblem[];
|
|
24
|
+
//# sourceMappingURL=validateToolServers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateToolServers.d.ts","sourceRoot":"","sources":["../../src/validation/validateToolServers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAqC,MAAM,qBAAqB,CAAA;AAmBvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAerE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,iBAAiB,GAC1B,mBAAmB,EAAE,CA2BvB"}
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
import { runsInContainer } from '@cat-factory/agents';
|
|
2
|
+
import { MCP_OAUTH_DEFAULT_HEADER, MCP_SUPPORTED_HARNESSES, TOOL_SERVER_BUDGET, isAllowedMcpHttpUrl, isValidMcpServerId, isValidMcpToolName, mcpServableHarnesses, mcpTransportCarriesCredential, toolServerDeclaredBytes, } from '@cat-factory/kernel';
|
|
3
|
+
import { isEnvVariableName, isReservedPlatformEnvKey, isToolchainEnvName, reservedEnvKeyMessage, toolchainEnvNameMessage, } from '@cat-factory/contracts';
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Boot-time validation of one agent kind's declared TOOL SERVERS (MCP), the section of
|
|
6
|
+
// `collectRegistrationProblems` that grew its own gravity: the whole-list checks (unregistered
|
|
7
|
+
// ids, the per-dispatch budget, the container surface), each definition's own checks (id, url,
|
|
8
|
+
// transport, harness reachability, `allowedTools`), and the credential rules, which are the
|
|
9
|
+
// sharpest in the validator because a tool-server declaration names BOTH the key it wants and the
|
|
10
|
+
// endpoint that key is sent to.
|
|
11
|
+
//
|
|
12
|
+
// Split out of `validateRegistrations.ts` when it crossed the file-size budget, along the seam the
|
|
13
|
+
// checks already had: nothing here is called from anywhere but `checkKindToolServers`, which the
|
|
14
|
+
// capability walk calls once per kind.
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
/**
|
|
17
|
+
* A kind's declared TOOL SERVERS: the whole-list checks (unregistered ids, the per-dispatch budget,
|
|
18
|
+
* the container surface), with each definition's own checks in
|
|
19
|
+
* {@link checkToolServerDefinition}. "Declared for" includes assigned servers, which is why the
|
|
20
|
+
* capability walk in `validateRegistrations.ts` calls this per KIND rather than per registration.
|
|
21
|
+
*
|
|
22
|
+
* - an unregistered id is an ERROR, like an unregistered skill;
|
|
23
|
+
* - past EITHER dimension of the per-dispatch budget is a WARNING, because the dispatch drops the
|
|
24
|
+
* excess under `over_budget` rather than failing: the run still works, with fewer tools than the
|
|
25
|
+
* deployment believes it wired, and boot is the only place the DECLARATIONS past the line can be
|
|
26
|
+
* named. A warning also keeps the accretion case honest, a kind going over budget through
|
|
27
|
+
* `assignToolServers` calls in several packages none of which is individually wrong. Both
|
|
28
|
+
* dimensions are checked because the dispatch enforces both, and a byte-driven drop is the one
|
|
29
|
+
* that surprises: a handful of servers with fat `env`/`args`/`headers` blocks is under the count
|
|
30
|
+
* and over the payload;
|
|
31
|
+
* - tool servers on a NON-container kind is a WARNING: an inline LLM call has no CLI to wire them
|
|
32
|
+
* into, so they can never take effect. A warning rather than an error because a deployment may
|
|
33
|
+
* deliberately declare them ahead of moving the kind onto a container surface.
|
|
34
|
+
*/
|
|
35
|
+
export function checkKindToolServers(kind, registry) {
|
|
36
|
+
const problems = [];
|
|
37
|
+
const tools = registry.toolServersFor(kind);
|
|
38
|
+
for (const id of tools.unknown) {
|
|
39
|
+
problems.push({
|
|
40
|
+
severity: 'error',
|
|
41
|
+
code: 'unknown_tool_server',
|
|
42
|
+
message: `Agent kind "${kind}" declares tool server "${id}", which is not registered. Call ` +
|
|
43
|
+
`registry.registerToolServer({ id: '${id}', … }) before registering the kind, or ` +
|
|
44
|
+
`declare the server inline.`,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
for (const server of tools.servers)
|
|
48
|
+
problems.push(...checkToolServerDefinition(kind, server));
|
|
49
|
+
problems.push(...checkToolServerBudget(kind, tools.servers));
|
|
50
|
+
if (tools.servers.length && !runsInContainer(kind, registry)) {
|
|
51
|
+
problems.push({
|
|
52
|
+
severity: 'warn',
|
|
53
|
+
code: 'tool_servers_without_container',
|
|
54
|
+
message: `Agent kind "${kind}" declares tool servers but does not run in a container — an ` +
|
|
55
|
+
`inline LLM step has no agent CLI to wire them into, so they will never be available. ` +
|
|
56
|
+
`Give the kind a container surface (agent.surface: 'container-explore' / ` +
|
|
57
|
+
`'container-coding') or drop the tool servers.`,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return problems;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The per-dispatch budget, BOTH dimensions, as warnings: the dispatch drops the excess under
|
|
64
|
+
* `over_budget` and the run works with fewer tools, so a registration fault belongs at boot rather
|
|
65
|
+
* than in a refusal that takes the deployment down.
|
|
66
|
+
*
|
|
67
|
+
* The byte check measures {@link toolServerDeclaredBytes}, which is a FLOOR (a resolved credential
|
|
68
|
+
* only adds to it), so a declaration already past the budget here is certainly past it at dispatch.
|
|
69
|
+
* What boot deliberately does NOT claim is WHICH servers a run will lose: the dispatch keeps every
|
|
70
|
+
* server that still fits, so once bytes are what bind the survivors are not a prefix of the
|
|
71
|
+
* declaration. The count and the budget are what the author acts on, and the run itself names each
|
|
72
|
+
* server it dropped.
|
|
73
|
+
*/
|
|
74
|
+
function checkToolServerBudget(kind, servers) {
|
|
75
|
+
const problems = [];
|
|
76
|
+
if (servers.length > TOOL_SERVER_BUDGET.maxServers) {
|
|
77
|
+
problems.push({
|
|
78
|
+
severity: 'warn',
|
|
79
|
+
code: 'too_many_tool_servers',
|
|
80
|
+
message: `Agent kind "${kind}" has ${servers.length} tool servers declared for it, past the ` +
|
|
81
|
+
`per-dispatch budget of ${TOOL_SERVER_BUDGET.maxServers}. A dispatch wires the first ` +
|
|
82
|
+
`${TOOL_SERVER_BUDGET.maxServers} in declaration order and states the rest to the agent as ` +
|
|
83
|
+
`unavailable (over_budget). Drop some, or split the work across kinds.`,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
const bytes = servers.reduce((total, server) => total + toolServerDeclaredBytes(server), 0);
|
|
87
|
+
if (bytes > TOOL_SERVER_BUDGET.maxTotalBytes) {
|
|
88
|
+
problems.push({
|
|
89
|
+
severity: 'warn',
|
|
90
|
+
code: 'tool_servers_over_byte_budget',
|
|
91
|
+
message: `Agent kind "${kind}" declares tool servers whose transport config alone measures ${bytes} ` +
|
|
92
|
+
`bytes, past the per-dispatch budget of ${TOOL_SERVER_BUDGET.maxTotalBytes}. A dispatch ` +
|
|
93
|
+
`wires servers until that budget is spent and states the rest to the agent as unavailable ` +
|
|
94
|
+
`(over_budget); resolved credentials only add to this figure, and which servers lose out ` +
|
|
95
|
+
`depends on their sizes. Trim the env/args/headers blocks, or split the work across kinds.`,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return problems;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* ONE tool server definition:
|
|
102
|
+
*
|
|
103
|
+
* - a malformed MCP server id is an ERROR, because it becomes both a tool-name fragment and a
|
|
104
|
+
* Codex TOML table key, so the CLI fails on it far from the registration that caused it;
|
|
105
|
+
* - an `allowedTools` entry that is not a valid tool NAME is an ERROR, the comma case above all:
|
|
106
|
+
* the harness joins the whole list into one `--allowedTools` argument with commas, so an entry
|
|
107
|
+
* carrying one splits into two patterns and the second matches nothing, while the prompt goes on
|
|
108
|
+
* advertising the name verbatim. That is the "told about a tool it cannot call" failure the
|
|
109
|
+
* unavailability vocabulary exists to prevent;
|
|
110
|
+
* - a definition NO harness could ever serve is a WARNING, and it is the only check here a run
|
|
111
|
+
* structurally cannot report: an `http` server narrowed to `harnesses: ['codex']` (whose client
|
|
112
|
+
* is stdio-only), or anything narrowed to `['pi']` (which has no MCP client), is never dropped
|
|
113
|
+
* FOR A REASON on any run. It simply never applies, so no prompt and no log line ever mentions
|
|
114
|
+
* it. A warning rather than an error because the declaration is inert rather than dangerous;
|
|
115
|
+
* - a cleartext `http://` endpoint off loopback is an ERROR: a resolved credential rides that
|
|
116
|
+
* request as a header, and the harness refuses the same URL at the job boundary — so allowing
|
|
117
|
+
* it here only moves the failure to a place with no registration to point at.
|
|
118
|
+
*/
|
|
119
|
+
function checkToolServerDefinition(kind, server) {
|
|
120
|
+
const problems = [];
|
|
121
|
+
const on = `(on agent kind "${kind}")`;
|
|
122
|
+
if (!isValidMcpServerId(server.id)) {
|
|
123
|
+
problems.push({
|
|
124
|
+
severity: 'error',
|
|
125
|
+
code: 'invalid_tool_server_id',
|
|
126
|
+
message: `Tool server "${server.id}" ${on} has an invalid id. It becomes part of the tool names ` +
|
|
127
|
+
`the CLI exposes (mcp__<id>__<tool>) and a Codex config key, so it must match ` +
|
|
128
|
+
`[a-z0-9][a-z0-9_-]*.`,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
for (const tool of server.allowedTools ?? []) {
|
|
132
|
+
if (isValidMcpToolName(tool))
|
|
133
|
+
continue;
|
|
134
|
+
problems.push({
|
|
135
|
+
severity: 'error',
|
|
136
|
+
code: 'invalid_tool_server_tool_name',
|
|
137
|
+
message: `Tool server "${server.id}" ${on} restricts allowedTools to "${tool}", which is not a ` +
|
|
138
|
+
`single tool name (letters, digits, "_", "." and "-"). The harness joins the list into ` +
|
|
139
|
+
`one --allowedTools argument with commas, so an entry with a comma or whitespace becomes ` +
|
|
140
|
+
`patterns that match nothing while the prompt still advertises the name. List each tool ` +
|
|
141
|
+
`as its own entry.`,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
const servable = mcpServableHarnesses(server);
|
|
145
|
+
if (servable.length === 0) {
|
|
146
|
+
problems.push({
|
|
147
|
+
severity: 'warn',
|
|
148
|
+
code: 'tool_server_unservable',
|
|
149
|
+
message: `Tool server "${server.id}" ${on} declares transport "${server.transport.kind}" for ` +
|
|
150
|
+
`harnesses [${(server.harnesses ?? MCP_SUPPORTED_HARNESSES).join(', ')}], and no harness ` +
|
|
151
|
+
`can serve that combination, so the server never applies to any run and no prompt or log ` +
|
|
152
|
+
`line will say why. Codex's MCP client is stdio-only and Pi has none at all. Widen the ` +
|
|
153
|
+
`harnesses, change the transport, or drop the declaration.`,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
if (server.transport.kind === 'http' && !isAllowedMcpHttpUrl(server.transport.url)) {
|
|
157
|
+
problems.push({
|
|
158
|
+
severity: 'error',
|
|
159
|
+
code: 'insecure_tool_server_url',
|
|
160
|
+
message: `Tool server "${server.id}" ${on} has url "${server.transport.url}". An HTTP tool server ` +
|
|
161
|
+
`carries its resolved credential in a request header, so the url must be https (plain ` +
|
|
162
|
+
`http is accepted only on loopback).`,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
for (const secret of server.secretKeys ?? []) {
|
|
166
|
+
problems.push(...checkToolServerSecret(kind, server, secret));
|
|
167
|
+
}
|
|
168
|
+
problems.push(...checkToolServerOAuth(kind, server));
|
|
169
|
+
return problems;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* A tool server's OAUTH declaration, when it has one. Four rules, and each of them names a failure
|
|
173
|
+
* that is otherwise invisible until a run or a button press:
|
|
174
|
+
*
|
|
175
|
+
* - `oauth` on a `stdio` server is an ERROR. A stdio server is a child process the CLI spawns;
|
|
176
|
+
* there is no request to authorise, so the declaration is inert and reads as configured. The
|
|
177
|
+
* dispatch drops the OAuth half silently for the mothership case, which is exactly why boot is
|
|
178
|
+
* where the fault has to be named.
|
|
179
|
+
* - a declared endpoint that fails the URL floor is an ERROR, and this is the sharpest one here:
|
|
180
|
+
* an OAuth exchange carries the client secret and the tokens, so a cleartext endpoint puts both
|
|
181
|
+
* on the wire. A DISCOVERED endpoint is held to the same rule at the moment it is read.
|
|
182
|
+
* - a reserved `clientSecretKey` is an ERROR for the reason every capability credential is: the
|
|
183
|
+
* declaration names both the key it wants and the token endpoint that key is posted to.
|
|
184
|
+
* - a `secretKeys` entry naming the same header the access token rides is a WARNING. Both would
|
|
185
|
+
* land in one header map and the granted token wins, so the static credential silently does
|
|
186
|
+
* nothing — which reads, to whoever declared it, as the platform ignoring their credential.
|
|
187
|
+
*/
|
|
188
|
+
function checkToolServerOAuth(kind, server) {
|
|
189
|
+
const oauth = server.oauth;
|
|
190
|
+
if (!oauth)
|
|
191
|
+
return [];
|
|
192
|
+
const problems = [];
|
|
193
|
+
const on = `(on agent kind "${kind}")`;
|
|
194
|
+
if (server.transport.kind !== 'http') {
|
|
195
|
+
problems.push({
|
|
196
|
+
severity: 'error',
|
|
197
|
+
code: 'oauth_requires_http_transport',
|
|
198
|
+
message: `Tool server "${server.id}" ${on} declares OAuth on a "${server.transport.kind}" ` +
|
|
199
|
+
`transport. OAuth authenticates a REQUEST, and a stdio server is a child process the ` +
|
|
200
|
+
`agent CLI spawns with no request to authorise — pass its credential through secretKeys ` +
|
|
201
|
+
`instead.`,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
for (const [field, url] of [
|
|
205
|
+
['authorizationUrl', oauth.authorizationUrl],
|
|
206
|
+
['tokenUrl', oauth.tokenUrl],
|
|
207
|
+
]) {
|
|
208
|
+
if (url === undefined || isAllowedMcpHttpUrl(url))
|
|
209
|
+
continue;
|
|
210
|
+
problems.push({
|
|
211
|
+
severity: 'error',
|
|
212
|
+
code: 'insecure_oauth_endpoint',
|
|
213
|
+
message: `Tool server "${server.id}" ${on} declares OAuth ${field} "${url}". The exchange carries ` +
|
|
214
|
+
`the client secret and the access token, so the endpoint must be https (plain http is ` +
|
|
215
|
+
`accepted only on loopback).`,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
if (oauth.clientSecretKey !== undefined && isReservedPlatformEnvKey(oauth.clientSecretKey)) {
|
|
219
|
+
problems.push({
|
|
220
|
+
severity: 'error',
|
|
221
|
+
code: 'reserved_credential_key',
|
|
222
|
+
message: `Tool server "${server.id}" ${on} declares OAuth client secret ` +
|
|
223
|
+
reservedEnvKeyMessage(oauth.clientSecretKey),
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
const tokenHeader = (oauth.header ?? MCP_OAUTH_DEFAULT_HEADER).toLowerCase();
|
|
227
|
+
for (const secret of server.secretKeys ?? []) {
|
|
228
|
+
if (secret.header?.toLowerCase() !== tokenHeader)
|
|
229
|
+
continue;
|
|
230
|
+
problems.push({
|
|
231
|
+
severity: 'warn',
|
|
232
|
+
code: 'oauth_header_collision',
|
|
233
|
+
message: `Tool server "${server.id}" ${on} declares credential "${secret.key}" on header ` +
|
|
234
|
+
`"${secret.header}", which is also where its OAuth access token is sent. The granted ` +
|
|
235
|
+
`token wins, so that credential reaches the server as nothing at all — send it under a ` +
|
|
236
|
+
`different header, or drop it.`,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
return problems;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* ONE credential a tool server declares. The reserved-key check is the sharpest rule in this file:
|
|
243
|
+
* a definition names both the key it wants and the endpoint that key is sent to, so
|
|
244
|
+
* `{ key: 'ENCRYPTION_KEY', header: 'Authorization' }` is a registration that boots clean and ships
|
|
245
|
+
* the deployment's master sealing key to a third party. The generative-integration half of the same
|
|
246
|
+
* rule is enforced by its credential SCHEMA (there is no schema here — a tool server is a TypeScript
|
|
247
|
+
* registration), and dispatch refuses both again for the mothership case.
|
|
248
|
+
*/
|
|
249
|
+
/**
|
|
250
|
+
* The credential's CHANNEL against the one its transport actually has
|
|
251
|
+
* (`mcpTransportCarriesCredential`). Both mismatches are ERRORS, and they are the only rules here
|
|
252
|
+
* that describe a declaration which does not work AT ALL: the value resolves, the projection that
|
|
253
|
+
* builds the job body selects by channel and finds nothing to fold in, and the server is wired,
|
|
254
|
+
* advertised in the prompt, and started unauthenticated. The `unused_credential_env_name` warning
|
|
255
|
+
* below is deliberately not in this class, because there the value still arrives as the header and
|
|
256
|
+
* only the redundant injection name is inert.
|
|
257
|
+
*
|
|
258
|
+
* Two codes rather than one, because the remedies are opposites and an operator reads the code:
|
|
259
|
+
* a stdio declaration has a header to REMOVE, an http one has a header to ADD. Neither message
|
|
260
|
+
* offers `envName` as the fix for a header on stdio, which was the first spelling of this rule and
|
|
261
|
+
* was wrong twice over: the check keys on the header alone, so adding an `envName` beside it
|
|
262
|
+
* re-fires the same error, and the env projection would go on skipping the key.
|
|
263
|
+
*/
|
|
264
|
+
function checkCredentialChannel(on, server, secret) {
|
|
265
|
+
if (mcpTransportCarriesCredential(server.transport.kind, secret))
|
|
266
|
+
return undefined;
|
|
267
|
+
const head = `Tool server "${server.id}" ${on} declares credential "${secret.key}"`;
|
|
268
|
+
switch (server.transport.kind) {
|
|
269
|
+
case 'stdio':
|
|
270
|
+
return {
|
|
271
|
+
severity: 'error',
|
|
272
|
+
code: 'unusable_credential_header',
|
|
273
|
+
message: `${head} on header "${secret.header}", but a stdio server is a child process with no ` +
|
|
274
|
+
`request to carry a header, so the value would reach nothing and the server would start ` +
|
|
275
|
+
`without it. Remove the header: a stdio credential is injected into the server's own ` +
|
|
276
|
+
`process, under envName when that process reads a different variable name.`,
|
|
277
|
+
};
|
|
278
|
+
case 'http':
|
|
279
|
+
return {
|
|
280
|
+
severity: 'error',
|
|
281
|
+
code: 'missing_credential_header',
|
|
282
|
+
message: `${head} with no header, but an http server is a remote URL with no process to inject a ` +
|
|
283
|
+
`variable into, so the value would reach nothing and the server would be called ` +
|
|
284
|
+
`unauthenticated. Declare the header it authenticates with, plus a headerTemplate when ` +
|
|
285
|
+
`that header wants a scheme (e.g. "Bearer {value}").`,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
function checkToolServerSecret(kind, server, secret) {
|
|
290
|
+
const problems = [];
|
|
291
|
+
const on = `(on agent kind "${kind}")`;
|
|
292
|
+
if (isReservedPlatformEnvKey(secret.key)) {
|
|
293
|
+
problems.push({
|
|
294
|
+
severity: 'error',
|
|
295
|
+
code: 'reserved_credential_key',
|
|
296
|
+
message: `Tool server "${server.id}" ${on} declares credential ${reservedEnvKeyMessage(secret.key)}`,
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
const channel = checkCredentialChannel(on, server, secret);
|
|
300
|
+
if (channel)
|
|
301
|
+
problems.push(channel);
|
|
302
|
+
if (secret.envName === undefined)
|
|
303
|
+
return problems;
|
|
304
|
+
// The injection name is NOT held to the reserved floor (it reads nothing), so it carries its own
|
|
305
|
+
// rule: a value set as `PATH` or `npm_config_registry` reconfigures the server's process instead
|
|
306
|
+
// of authenticating a call. Dispatch drops one too, for the mothership case.
|
|
307
|
+
if (!isEnvVariableName(secret.envName)) {
|
|
308
|
+
problems.push({
|
|
309
|
+
severity: 'error',
|
|
310
|
+
code: 'invalid_credential_env_name',
|
|
311
|
+
message: `Tool server "${server.id}" ${on} declares credential envName "${secret.envName}", which ` +
|
|
312
|
+
`is not a valid environment variable name. It becomes a variable of the server's process, ` +
|
|
313
|
+
`and the harness drops anything else.`,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
if (isToolchainEnvName(secret.envName)) {
|
|
317
|
+
problems.push({
|
|
318
|
+
severity: 'error',
|
|
319
|
+
code: 'toolchain_credential_env_name',
|
|
320
|
+
message: `Tool server "${server.id}" ${on} declares credential ${toolchainEnvNameMessage(secret.envName)}`,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
// An `http` server sends its value as a HEADER, so an injection name would be read by nothing.
|
|
324
|
+
// A warning rather than an error: the declaration still works, it just says something that cannot
|
|
325
|
+
// take effect, and failing boot over it would be out of proportion.
|
|
326
|
+
if (server.transport.kind === 'http' && secret.header) {
|
|
327
|
+
problems.push({
|
|
328
|
+
severity: 'warn',
|
|
329
|
+
code: 'unused_credential_env_name',
|
|
330
|
+
message: `Tool server "${server.id}" ${on} declares credential envName "${secret.envName}" on a ` +
|
|
331
|
+
`key that names a header. An http server's value is sent as that header, so the injection ` +
|
|
332
|
+
`name is never used.`,
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
return problems;
|
|
336
|
+
}
|
|
337
|
+
//# sourceMappingURL=validateToolServers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateToolServers.js","sourceRoot":"","sources":["../../src/validation/validateToolServers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/orchestration",
|
|
3
|
-
"version": "0.251.
|
|
3
|
+
"version": "0.251.1",
|
|
4
4
|
"description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,20 +25,20 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^7.0.58",
|
|
28
|
-
"@cat-factory/agents": "0.123.
|
|
29
|
-
"@cat-factory/caching": "0.18.
|
|
30
|
-
"@cat-factory/contracts": "0.287.
|
|
31
|
-
"@cat-factory/integrations": "0.153.
|
|
32
|
-
"@cat-factory/kernel": "0.281.
|
|
33
|
-
"@cat-factory/prompt-fragments": "1.0.
|
|
34
|
-
"@cat-factory/sandbox": "0.11.
|
|
35
|
-
"@cat-factory/spend": "0.15.
|
|
36
|
-
"@cat-factory/workspaces": "0.27.
|
|
28
|
+
"@cat-factory/agents": "0.123.2",
|
|
29
|
+
"@cat-factory/caching": "0.18.31",
|
|
30
|
+
"@cat-factory/contracts": "0.287.1",
|
|
31
|
+
"@cat-factory/integrations": "0.153.7",
|
|
32
|
+
"@cat-factory/kernel": "0.281.2",
|
|
33
|
+
"@cat-factory/prompt-fragments": "1.0.40",
|
|
34
|
+
"@cat-factory/sandbox": "0.11.117",
|
|
35
|
+
"@cat-factory/spend": "0.15.58",
|
|
36
|
+
"@cat-factory/workspaces": "0.27.2"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"typescript": "7.0.2",
|
|
40
40
|
"vitest": "^4.1.10",
|
|
41
|
-
"@cat-factory/sandbox-fixtures": "0.7.
|
|
41
|
+
"@cat-factory/sandbox-fixtures": "0.7.324"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsc -b tsconfig.build.json",
|