@mcoda/mswarm 0.1.112 → 0.1.114
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/vendor/codali/api/ChatCompletionsAdapter.d.ts +2 -0
- package/dist/vendor/codali/api/ChatCompletionsAdapter.d.ts.map +1 -1
- package/dist/vendor/codali/api/ChatCompletionsAdapter.js +1 -0
- package/dist/vendor/codali/api/CodaliApi.d.ts +14 -0
- package/dist/vendor/codali/api/CodaliApi.d.ts.map +1 -1
- package/dist/vendor/codali/api/CodaliApi.js +37 -7
- package/dist/vendor/codali/cli/AskCommand.d.ts.map +1 -1
- package/dist/vendor/codali/cli/AskCommand.js +6 -3
- package/dist/vendor/codali/cli/ToolsCommand.d.ts +1 -0
- package/dist/vendor/codali/cli/ToolsCommand.d.ts.map +1 -1
- package/dist/vendor/codali/cli/ToolsCommand.js +30 -7
- package/dist/vendor/codali/docdex/DocdexClient.d.ts +12 -0
- package/dist/vendor/codali/docdex/DocdexClient.d.ts.map +1 -1
- package/dist/vendor/codali/docdex/DocdexClient.js +12 -0
- package/dist/vendor/codali/gateway/LocalGatewayProvider.d.ts +11 -0
- package/dist/vendor/codali/gateway/LocalGatewayProvider.d.ts.map +1 -1
- package/dist/vendor/codali/gateway/LocalGatewayProvider.js +17 -2
- package/dist/vendor/codali/gateway/ToolSurface.d.ts +40 -0
- package/dist/vendor/codali/gateway/ToolSurface.d.ts.map +1 -0
- package/dist/vendor/codali/gateway/ToolSurface.js +52 -0
- package/package.json +3 -3
|
@@ -29,6 +29,8 @@ export interface ChatCompletionRequest {
|
|
|
29
29
|
/** Codali-specific extras, ignored by a plain OpenAI client. */
|
|
30
30
|
codali?: {
|
|
31
31
|
runContext?: RunContext;
|
|
32
|
+
/** See CodaliRequest. Operator-only; never set this for a tenant request. */
|
|
33
|
+
allowOperatorConfigFallback?: boolean;
|
|
32
34
|
workspaceRoot?: string;
|
|
33
35
|
mode?: CodaliRequest["mode"];
|
|
34
36
|
media?: CodaliRequest["media"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatCompletionsAdapter.d.ts","sourceRoot":"","sources":["../../src/api/ChatCompletionsAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEtE;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC;IACxF,gEAAgE;IAChE,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;KACpC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE;YAAE,IAAI,EAAE,WAAW,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,gBAAgB,CAAC;KACrD,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF;;;;;OAKG;IACH,MAAM,EAAE;QACN,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACjC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAID,eAAO,MAAM,gBAAgB,GAC3B,UAAU,SAAS,qBAAqB,EAAE,KACzC,aAAa,EAMT,CAAC;AAWR,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,OAAO,SAAS,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,qBAAqB,EAC9B,OAAM,uBAA4B,KACjC,OAAO,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ChatCompletionsAdapter.d.ts","sourceRoot":"","sources":["../../src/api/ChatCompletionsAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEtE;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC;IACxF,gEAAgE;IAChE,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,6EAA6E;QAC7E,2BAA2B,CAAC,EAAE,OAAO,CAAC;QACtC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;KACpC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE;YAAE,IAAI,EAAE,WAAW,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,gBAAgB,CAAC;KACrD,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF;;;;;OAKG;IACH,MAAM,EAAE;QACN,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACjC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAID,eAAO,MAAM,gBAAgB,GAC3B,UAAU,SAAS,qBAAqB,EAAE,KACzC,aAAa,EAMT,CAAC;AAWR,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,OAAO,SAAS,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,qBAAqB,EAC9B,OAAM,uBAA4B,KACjC,OAAO,CAAC,sBAAsB,CAuChC,CAAC"}
|
|
@@ -19,6 +19,7 @@ export const handleChatCompletion = async (request, deps = {}) => {
|
|
|
19
19
|
const result = await run({
|
|
20
20
|
messages: toCodaliMessages(request.messages),
|
|
21
21
|
runContext: request.codali?.runContext,
|
|
22
|
+
allowOperatorConfigFallback: request.codali?.allowOperatorConfigFallback,
|
|
22
23
|
workspaceRoot: request.codali?.workspaceRoot,
|
|
23
24
|
mode: request.codali?.mode,
|
|
24
25
|
media: request.codali?.media,
|
|
@@ -26,6 +26,20 @@ export interface CodaliRequest {
|
|
|
26
26
|
messages: CodaliMessage[];
|
|
27
27
|
/** Tenant scope, tools, credentials, agent bindings, limits. */
|
|
28
28
|
runContext?: RunContext;
|
|
29
|
+
/**
|
|
30
|
+
* Permits falling back to the operator's own configuration when no context
|
|
31
|
+
* is supplied — `~/.codali/config.json` and `~/.codali/.creds`.
|
|
32
|
+
*
|
|
33
|
+
* Off by default, and it must stay that way. Those files hold the operator's
|
|
34
|
+
* GitHub, Jira and Microsoft tokens, so a tenant request that forgot its
|
|
35
|
+
* context would be answered from the wrong account. It would not error: it
|
|
36
|
+
* would return a plausible answer against someone else's data, and in
|
|
37
|
+
* development, where the operator is the tenant, it would look correct.
|
|
38
|
+
*
|
|
39
|
+
* Set it only where the caller genuinely is the operator: the CLI, and a
|
|
40
|
+
* server the operator runs for themselves.
|
|
41
|
+
*/
|
|
42
|
+
allowOperatorConfigFallback?: boolean;
|
|
29
43
|
/** JSON Schema the answer must satisfy. Enforced, with one repair attempt. */
|
|
30
44
|
responseSchema?: Record<string, unknown>;
|
|
31
45
|
responseMode?: "text" | "json" | "artifact";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodaliApi.d.ts","sourceRoot":"","sources":["../../src/api/CodaliApi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,4CAA4C,CAAC;AAIpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAyB,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAEjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAE1C;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5C,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,2EAA2E;IAC3E,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG;AAE/D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAsBD,+EAA+E;AAC/E,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,MAWpE,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,YAAY,CAAC;IAC7E,cAAc,CAAC,EAAE,OAAO,2BAA2B,CAAC;IACpD,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;CACnC;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,aAAa,EACtB,OAAM,qBAA0B,KAC/B,OAAO,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"CodaliApi.d.ts","sourceRoot":"","sources":["../../src/api/CodaliApi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,4CAA4C,CAAC;AAIpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAyB,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAEjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAE1C;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;;;;;;;OAYG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5C,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,2EAA2E;IAC3E,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG;AAE/D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAsBD,+EAA+E;AAC/E,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,MAWpE,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,YAAY,CAAC;IAC7E,cAAc,CAAC,EAAE,OAAO,2BAA2B,CAAC;IACpD,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;CACnC;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,aAAa,EACtB,OAAM,qBAA0B,KAC/B,OAAO,CAAC,YAAY,CA8PtB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { attachHttpTools } from "../connectors/http/HttpToolSource.js";
|
|
3
3
|
import { attachMcpTools } from "../connectors/mcp/McpToolSource.js";
|
|
4
4
|
import { createImageGenerationTool, } from "../connectors/media/ImageGenerationTool.js";
|
|
5
|
-
import { DocdexClient } from "../docdex/DocdexClient.js";
|
|
5
|
+
import { DocdexClient, docdexRepoRootFor } from "../docdex/DocdexClient.js";
|
|
6
6
|
import { createCodaliGateway } from "../gateway/CodaliGateway.js";
|
|
7
7
|
import { createLocalGatewayTaskRunner } from "../gateway/LocalGatewayTaskRunner.js";
|
|
8
8
|
import { createProviderForAssignment } from "../gateway/LocalGatewayProvider.js";
|
|
@@ -66,11 +66,32 @@ export const runCodali = async (request, deps = {}) => {
|
|
|
66
66
|
traceId: request.requestId ?? randomUUID(),
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
|
-
// Host-supplied context wins
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
// Host-supplied context wins. A host that supplies neither a context nor a
|
|
70
|
+
// resolver is not configured for tenants, and answering anyway would use the
|
|
71
|
+
// operator's credentials — so refuse instead of guessing whose data to read.
|
|
72
|
+
const resolvedContext = request.runContext
|
|
73
|
+
? request.runContext
|
|
74
|
+
: deps.resolveRunContext
|
|
72
75
|
? await deps.resolveRunContext(workspaceRoot)
|
|
73
|
-
:
|
|
76
|
+
: request.allowOperatorConfigFallback
|
|
77
|
+
? await new LocalConfigRunContextResolver().resolve({ workspaceRoot })
|
|
78
|
+
: undefined;
|
|
79
|
+
if (!resolvedContext) {
|
|
80
|
+
return {
|
|
81
|
+
status: "failed",
|
|
82
|
+
answer: "No run context was supplied. Codali does not call back into the host, " +
|
|
83
|
+
"so a run must arrive with the tenant's tools, credentials and scope on " +
|
|
84
|
+
"`request.runContext` (or a `resolveRunContext` dependency). Set " +
|
|
85
|
+
"`allowOperatorConfigFallback: true` only when the caller is the machine " +
|
|
86
|
+
"operator — it reads ~/.codali/config.json and ~/.codali/.creds.",
|
|
87
|
+
output: undefined,
|
|
88
|
+
sources: [],
|
|
89
|
+
artifacts: [],
|
|
90
|
+
warnings: ["run_context_required"],
|
|
91
|
+
traceId: request.requestId ?? randomUUID(),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const context = resolvedContext;
|
|
74
95
|
for (const warning of context.warnings ?? [])
|
|
75
96
|
tracer.addWarning(warning);
|
|
76
97
|
const inventory = await (deps.loadInventory ?? getAgentInventory)();
|
|
@@ -95,7 +116,13 @@ export const runCodali = async (request, deps = {}) => {
|
|
|
95
116
|
traceId: request.requestId ?? randomUUID(),
|
|
96
117
|
};
|
|
97
118
|
}
|
|
98
|
-
|
|
119
|
+
// mswarm reaches a node the caller does not own by matching this against the
|
|
120
|
+
// node's client allowlist, so every model call has to carry it. The slug is
|
|
121
|
+
// what the self-hosted setup console registers ("wodo", "heka"); the id is a
|
|
122
|
+
// usable fallback when a host only tracks ids.
|
|
123
|
+
const clientIdentity = context.tenant?.slug ?? context.tenant?.id;
|
|
124
|
+
const baseProvider = deps.createProvider ?? createProviderForAssignment;
|
|
125
|
+
const makeProvider = (assignment, options) => baseProvider(assignment, { clientIdentity, ...options });
|
|
99
126
|
const primary = makeProvider((synthesizer ?? orchestrator));
|
|
100
127
|
const orchestratorProvider = orchestrator ? makeProvider(orchestrator) : undefined;
|
|
101
128
|
const workerCandidates = [roles.toolCapable, orchestrator, synthesizer].filter(Boolean);
|
|
@@ -262,10 +289,13 @@ const buildDefaultRegistry = (workspaceRoot, context) => {
|
|
|
262
289
|
const registry = new ToolRegistry();
|
|
263
290
|
const client = new DocdexClient({
|
|
264
291
|
baseUrl: context.docdex?.baseUrl ?? "http://127.0.0.1:28491",
|
|
265
|
-
repoRoot: context.repo?.root
|
|
292
|
+
repoRoot: docdexRepoRootFor(context.repo?.root, context.docdex?.repoId, workspaceRoot),
|
|
266
293
|
repoId: context.docdex?.repoId,
|
|
267
294
|
apiKey: context.docdex?.apiKey,
|
|
268
295
|
allowedOperations: context.docdex?.allowedOperations,
|
|
296
|
+
// Same allowlist story as the model calls: a tenant reaching a repository
|
|
297
|
+
// it does not own is authorised by identity, not by key alone.
|
|
298
|
+
clientIdentity: context.tenant?.slug ?? context.tenant?.id,
|
|
269
299
|
});
|
|
270
300
|
for (const tool of createDocdexTools(client))
|
|
271
301
|
registry.register(tool);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskCommand.d.ts","sourceRoot":"","sources":["../../src/cli/AskCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE,OAAO,EACL,2BAA2B,EAE5B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EAEjB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAe9C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AA+BD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,KAAG,UAuE7C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,KAAK,YAAY,CAAC;IAC3E,cAAc,CAAC,EAAE,CACf,UAAU,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC1D,QAAQ,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"AskCommand.d.ts","sourceRoot":"","sources":["../../src/cli/AskCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE,OAAO,EACL,2BAA2B,EAE5B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EAEjB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAe9C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AA+BD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,KAAG,UAuE7C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,KAAK,YAAY,CAAC;IAC3E,cAAc,CAAC,EAAE,CACf,UAAU,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC1D,QAAQ,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AA8BD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,MAAM,GACjB,MAAM,MAAM,EAAE,EACd,OAAM,eAAoB,KACzB,OAAO,CAAC,UAAU,CAmZpB,CAAC;AAEF,eAAO,MAAM,UAAU;cACL,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { filterLocallyDrivable, getAgentInventory } from "../agents/AgentInvento
|
|
|
3
3
|
import { resolveConfigurableRoles } from "../agents/RoleResolution.js";
|
|
4
4
|
import { attachHttpTools } from "../connectors/http/HttpToolSource.js";
|
|
5
5
|
import { attachMcpTools } from "../connectors/mcp/McpToolSource.js";
|
|
6
|
-
import { DocdexClient } from "../docdex/DocdexClient.js";
|
|
6
|
+
import { DocdexClient, docdexRepoRootFor } from "../docdex/DocdexClient.js";
|
|
7
7
|
import { createCodaliGateway } from "../gateway/CodaliGateway.js";
|
|
8
8
|
import { createLocalGatewayTaskRunner } from "../gateway/LocalGatewayTaskRunner.js";
|
|
9
9
|
import { createProviderForAssignment, } from "../gateway/LocalGatewayProvider.js";
|
|
@@ -165,10 +165,11 @@ const buildDefaultRegistry = (options, context, judgeProvider) => {
|
|
|
165
165
|
return registry;
|
|
166
166
|
const client = new DocdexClient({
|
|
167
167
|
baseUrl: options.docdexBaseUrl ?? context.docdex?.baseUrl ?? "http://127.0.0.1:28491",
|
|
168
|
-
repoRoot: context.repo?.root
|
|
168
|
+
repoRoot: docdexRepoRootFor(context.repo?.root, context.docdex?.repoId, options.workspaceRoot),
|
|
169
169
|
repoId: context.docdex?.repoId,
|
|
170
170
|
apiKey: context.docdex?.apiKey,
|
|
171
171
|
allowedOperations: context.docdex?.allowedOperations,
|
|
172
|
+
clientIdentity: context.tenant?.slug ?? context.tenant?.id,
|
|
172
173
|
});
|
|
173
174
|
for (const tool of createDocdexTools(client, {
|
|
174
175
|
// Judged by the orchestrator model: small, fast, and already loaded.
|
|
@@ -223,7 +224,9 @@ export const runAsk = async (argv, deps = {}) => {
|
|
|
223
224
|
write(tracer.render());
|
|
224
225
|
return { tracer, exitCode: 1 };
|
|
225
226
|
}
|
|
226
|
-
const
|
|
227
|
+
const clientIdentity = context.tenant?.slug ?? context.tenant?.id;
|
|
228
|
+
const baseProvider = deps.createProvider ?? createProviderForAssignment;
|
|
229
|
+
const makeProvider = (assignment, options) => baseProvider(assignment, { clientIdentity, ...options });
|
|
227
230
|
const orchestratorProvider = orchestrator ? makeProvider(orchestrator) : undefined;
|
|
228
231
|
const synthesizerProvider = synthesizer ? makeProvider(synthesizer) : undefined;
|
|
229
232
|
// Either role can stand in for the other if only one resolved; the trace
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolsCommand.d.ts","sourceRoot":"","sources":["../../src/cli/ToolsCommand.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToolsCommand.d.ts","sourceRoot":"","sources":["../../src/cli/ToolsCommand.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA8BxD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,KAAG,YAqC/C,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,YAAY,CAAC;IACjF,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAkBD,eAAO,MAAM,QAAQ,GACnB,MAAM,MAAM,EAAE,EACd,OAAM,iBAAsB,KAC3B,OAAO,CAAC,MAAM,CA2JhB,CAAC;AAEF,eAAO,MAAM,YAAY;cACP,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAIzC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { attachHttpTools } from "../connectors/http/HttpToolSource.js";
|
|
3
4
|
import { attachMcpTools } from "../connectors/mcp/McpToolSource.js";
|
|
@@ -6,6 +7,7 @@ import { LocalConfigRunContextResolver } from "../runcontext/RunContextResolver.
|
|
|
6
7
|
import { ToolRegistry } from "../tools/ToolRegistry.js";
|
|
7
8
|
import { createDocdexTools } from "../tools/docdex/DocdexTools.js";
|
|
8
9
|
import { sanitizeArgs } from "../gateway/GatewayTracer.js";
|
|
10
|
+
import { inspectToolSurface } from "../gateway/ToolSurface.js";
|
|
9
11
|
/**
|
|
10
12
|
* `codali tools` — inspect what an orchestration run can actually reach.
|
|
11
13
|
*
|
|
@@ -24,6 +26,8 @@ Commands:
|
|
|
24
26
|
Options:
|
|
25
27
|
--workspace-root <path> Repository to resolve config against (default: cwd)
|
|
26
28
|
--args-json <json> Arguments for "call"
|
|
29
|
+
--context-json <path> Run against a host-supplied RunContext instead of
|
|
30
|
+
local config, to see what one tenant's run gets
|
|
27
31
|
--json Machine-readable output
|
|
28
32
|
--help, -h Show this help
|
|
29
33
|
`;
|
|
@@ -36,6 +40,7 @@ export const parseToolsArgs = (argv) => {
|
|
|
36
40
|
let workspaceRoot = process.cwd();
|
|
37
41
|
let argsJson;
|
|
38
42
|
let json = false;
|
|
43
|
+
let contextJson;
|
|
39
44
|
let target;
|
|
40
45
|
for (let index = 0; index < rest.length; index += 1) {
|
|
41
46
|
const arg = rest[index];
|
|
@@ -44,6 +49,10 @@ export const parseToolsArgs = (argv) => {
|
|
|
44
49
|
workspaceRoot = path.resolve(next);
|
|
45
50
|
index += 1;
|
|
46
51
|
}
|
|
52
|
+
else if (arg === "--context-json" && next) {
|
|
53
|
+
contextJson = next;
|
|
54
|
+
index += 1;
|
|
55
|
+
}
|
|
47
56
|
else if (arg === "--args-json" && next) {
|
|
48
57
|
argsJson = next;
|
|
49
58
|
index += 1;
|
|
@@ -58,7 +67,7 @@ export const parseToolsArgs = (argv) => {
|
|
|
58
67
|
if ((command === "describe" || command === "call") && !target) {
|
|
59
68
|
throw new Error(`codali tools ${command} requires a tool name.\n\n${HELP}`);
|
|
60
69
|
}
|
|
61
|
-
return { command, target, workspaceRoot, argsJson, json };
|
|
70
|
+
return { command, target, workspaceRoot, argsJson, contextJson, json };
|
|
62
71
|
};
|
|
63
72
|
const buildBaseRegistryDefault = (context, workspaceRoot) => {
|
|
64
73
|
const registry = new ToolRegistry();
|
|
@@ -80,11 +89,15 @@ export const runTools = async (argv, deps = {}) => {
|
|
|
80
89
|
return 0;
|
|
81
90
|
}
|
|
82
91
|
const options = parseToolsArgs(argv);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
92
|
+
// A host-supplied context answers the question a product actually has: not
|
|
93
|
+
// "what can this machine do" but "what would this tenant's run get".
|
|
94
|
+
const context = options.contextJson
|
|
95
|
+
? JSON.parse(await readFile(options.contextJson, "utf8"))
|
|
96
|
+
: deps.resolveRunContext
|
|
97
|
+
? await deps.resolveRunContext(options.workspaceRoot)
|
|
98
|
+
: await new LocalConfigRunContextResolver().resolve({
|
|
99
|
+
workspaceRoot: options.workspaceRoot,
|
|
100
|
+
});
|
|
88
101
|
const registry = (deps.buildBaseRegistry ?? buildBaseRegistryDefault)(context, options.workspaceRoot);
|
|
89
102
|
const mcp = await (deps.attachMcp ?? attachMcpTools)({
|
|
90
103
|
context,
|
|
@@ -116,9 +129,19 @@ export const runTools = async (argv, deps = {}) => {
|
|
|
116
129
|
if (options.command === "list") {
|
|
117
130
|
const capabilities = registry.capabilities();
|
|
118
131
|
if (options.json) {
|
|
119
|
-
write(JSON.stringify(registry
|
|
132
|
+
write(JSON.stringify(inspectToolSurface(context, registry), null, 2));
|
|
120
133
|
return 0;
|
|
121
134
|
}
|
|
135
|
+
const surface = inspectToolSurface(context, registry);
|
|
136
|
+
if (surface.dropped.length > 0) {
|
|
137
|
+
// Silent loss is the failure this exists to catch: a tool the host
|
|
138
|
+
// supplied, present in the registry, that the compiler will not let
|
|
139
|
+
// the planner see. The run does not fail — it answers without it.
|
|
140
|
+
write(`${surface.dropped.length} tool(s) will NOT reach the planner:`);
|
|
141
|
+
for (const entry of surface.dropped)
|
|
142
|
+
write(` ${entry.tool} (${entry.reason})`);
|
|
143
|
+
write("");
|
|
144
|
+
}
|
|
122
145
|
if (capabilities.size === 0) {
|
|
123
146
|
write("No tools available.");
|
|
124
147
|
return 0;
|
|
@@ -94,6 +94,18 @@ export interface DocdexWriteMetadata {
|
|
|
94
94
|
}
|
|
95
95
|
export declare const isDocdexRuntimeErrorCode: (value: unknown) => value is DocdexRuntimeErrorCode;
|
|
96
96
|
export declare const normalizeDocdexRuntimeOperation: (value: string) => DocdexRuntimeOperation | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* The repository root to disclose to docdex, if any.
|
|
99
|
+
*
|
|
100
|
+
* A remote, tenant-scoped repository is addressed by `repoId`; there is no
|
|
101
|
+
* local checkout behind it. Defaulting the root to the process working
|
|
102
|
+
* directory sent the *server's* filesystem path to docdex as
|
|
103
|
+
* `x-docdex-repo-root` on every tenant request — a path that belongs to the
|
|
104
|
+
* host, describes no repository the tenant owns, and has no business leaving
|
|
105
|
+
* the machine. A host that does mean a local checkout says so with
|
|
106
|
+
* `repo.root`.
|
|
107
|
+
*/
|
|
108
|
+
export declare const docdexRepoRootFor: (contextRepoRoot: string | undefined, repoId: string | undefined, workspaceRoot: string) => string | undefined;
|
|
97
109
|
export declare class DocdexClient {
|
|
98
110
|
private options;
|
|
99
111
|
private repoId?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocdexClient.d.ts","sourceRoot":"","sources":["../../src/docdex/DocdexClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocdexClient.d.ts","sourceRoot":"","sources":["../../src/docdex/DocdexClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,6 +126,18 @@ const sanitizeSearchRetryQuery = (query) => {
|
|
|
126
126
|
.trim();
|
|
127
127
|
return sanitized && sanitized !== original ? sanitized : undefined;
|
|
128
128
|
};
|
|
129
|
+
/**
|
|
130
|
+
* The repository root to disclose to docdex, if any.
|
|
131
|
+
*
|
|
132
|
+
* A remote, tenant-scoped repository is addressed by `repoId`; there is no
|
|
133
|
+
* local checkout behind it. Defaulting the root to the process working
|
|
134
|
+
* directory sent the *server's* filesystem path to docdex as
|
|
135
|
+
* `x-docdex-repo-root` on every tenant request — a path that belongs to the
|
|
136
|
+
* host, describes no repository the tenant owns, and has no business leaving
|
|
137
|
+
* the machine. A host that does mean a local checkout says so with
|
|
138
|
+
* `repo.root`.
|
|
139
|
+
*/
|
|
140
|
+
export const docdexRepoRootFor = (contextRepoRoot, repoId, workspaceRoot) => contextRepoRoot ?? (repoId ? undefined : workspaceRoot);
|
|
129
141
|
export class DocdexClient {
|
|
130
142
|
constructor(options) {
|
|
131
143
|
this.options = options;
|
|
@@ -12,6 +12,17 @@ export interface LocalProviderOptions {
|
|
|
12
12
|
apiKey?: string;
|
|
13
13
|
/** Scheduling priority; lower runs sooner. Defaults to CODALI_MSWARM_PRIORITY. */
|
|
14
14
|
priority?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Who this run is for, as mswarm knows them — a tenant slug such as `wodo`.
|
|
17
|
+
*
|
|
18
|
+
* mswarm lets a node be reached two ways: the caller owns it, or the caller's
|
|
19
|
+
* identity appears in the node's `client_allowlist`. The second route is how
|
|
20
|
+
* a tenant reaches a node someone else operates, and it is what the
|
|
21
|
+
* self-hosted setup console configures. It requires the caller to say who it
|
|
22
|
+
* is. `DocdexClient` already did; model calls did not, so a tenant could
|
|
23
|
+
* reach an allowlisted repository and never an allowlisted model.
|
|
24
|
+
*/
|
|
25
|
+
clientIdentity?: string;
|
|
15
26
|
}
|
|
16
27
|
/**
|
|
17
28
|
* Scheduling priority Codali asks mswarm for.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalGatewayProvider.d.ts","sourceRoot":"","sources":["../../src/gateway/LocalGatewayProvider.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAE3E;;;;;;GAMG;AAEH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalGatewayProvider.d.ts","sourceRoot":"","sources":["../../src/gateway/LocalGatewayProvider.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAE3E;;;;;;GAMG;AAEH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA+DD;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAwB1C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,GAAG,SAAS,KAAG,MAapE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,QAAQ,cAAc,KACrB,QAWF,CAAC;AAYF,eAAO,MAAM,mBAAmB,QAAO,MAAM,GAAG,SA4B/C,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,MAAM,KAAG,MACoB,CAAC;AAU3E;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GACtC,YAAY,4BAA4B,EACxC,UAAS,oBAAyB,KACjC,QAqCF,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,YAAW,QAAQ;IAIhD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAL9B,QAAQ,CAAC,IAAI,wBAAwB;gBAGlB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,MAAM,MAAM,GAAG,SAA2B;IAG1E,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ;IAK7C,QAAQ,CACZ,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3C,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;CAGpC"}
|
|
@@ -5,21 +5,36 @@ import { ClaudeCliProvider } from "../providers/ClaudeCliProvider.js";
|
|
|
5
5
|
import { CodexCliProvider } from "../providers/CodexCliProvider.js";
|
|
6
6
|
import { OllamaRemoteProvider } from "../providers/OllamaRemoteProvider.js";
|
|
7
7
|
import { OpenAiCompatibleProvider } from "../providers/OpenAiCompatibleProvider.js";
|
|
8
|
+
/** mswarm accepts several spellings; send the canonical pair. */
|
|
9
|
+
const CLIENT_IDENTITY_PATTERN = /^[A-Za-z0-9._:-]{1,128}$/;
|
|
10
|
+
const clientIdentityHeaders = (clientIdentity, baseUrl) => {
|
|
11
|
+
const value = clientIdentity?.trim();
|
|
12
|
+
// Only for mswarm, and only when it is a plausible identity: a stray header
|
|
13
|
+
// on someone's private endpoint is not ours to add.
|
|
14
|
+
if (!value || !isMswarmEndpoint(baseUrl) || !CLIENT_IDENTITY_PATTERN.test(value)) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return { "x-mswarm-client-identity": value, "x-mswarm-client": value };
|
|
18
|
+
};
|
|
8
19
|
/**
|
|
9
20
|
* Attaches the scheduling priority mswarm reads from `scheduling.priority`,
|
|
10
21
|
* without disturbing any runner settings the agent already carries.
|
|
11
22
|
*/
|
|
12
|
-
const buildLocalRunner = (nested, baseUrl, priority) => {
|
|
23
|
+
const buildLocalRunner = (nested, baseUrl, priority, clientIdentity) => {
|
|
13
24
|
const existing = isRecord(nested.localRunner)
|
|
14
25
|
? nested.localRunner
|
|
15
26
|
: undefined;
|
|
16
27
|
if (!isMswarmEndpoint(baseUrl)) {
|
|
17
28
|
return existing;
|
|
18
29
|
}
|
|
30
|
+
const identityHeaders = clientIdentityHeaders(clientIdentity, baseUrl);
|
|
31
|
+
const existingHeaders = isRecord(existing?.headers) ? existing.headers : {};
|
|
19
32
|
const existingExtra = isRecord(existing?.extraBody) ? existing.extraBody : {};
|
|
20
33
|
const existingScheduling = isRecord(existingExtra.scheduling) ? existingExtra.scheduling : {};
|
|
21
34
|
return {
|
|
22
35
|
...(existing ?? {}),
|
|
36
|
+
// An identity the agent already declares wins; this only fills the gap.
|
|
37
|
+
headers: { ...(identityHeaders ?? {}), ...existingHeaders },
|
|
23
38
|
extraBody: {
|
|
24
39
|
...existingExtra,
|
|
25
40
|
scheduling: {
|
|
@@ -184,7 +199,7 @@ export const createProviderForAssignment = (assignment, options = {}) => {
|
|
|
184
199
|
timeoutMs: options.timeoutMs ?? LOCAL_MODEL_TIMEOUT_MS,
|
|
185
200
|
runnerKind: readString(nested, ["runnerKind", "runner_kind"]),
|
|
186
201
|
authMode: readString(nested, ["authMode", "auth_mode"]),
|
|
187
|
-
localRunner: buildLocalRunner(nested, baseUrl, options.priority),
|
|
202
|
+
localRunner: buildLocalRunner(nested, baseUrl, options.priority, options.clientIdentity),
|
|
188
203
|
supportsTools: assignment.candidate.supportsTools ?? readBoolean(raw, ["supportsTools"]),
|
|
189
204
|
supportsJsonSchema: assignment.candidate.supportsJsonSchema ?? readBoolean(raw, ["supportsJsonSchema"]),
|
|
190
205
|
supportsStreaming: assignment.candidate.supportsStreaming ?? readBoolean(raw, ["supportsStreaming"]),
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { RunContext } from "../runcontext/RunContextResolver.js";
|
|
2
|
+
import type { ToolRegistry } from "../tools/ToolRegistry.js";
|
|
3
|
+
/**
|
|
4
|
+
* What a host's declared tools actually become inside a run.
|
|
5
|
+
*
|
|
6
|
+
* A tool can be present in the registry and still never reach the planner. The
|
|
7
|
+
* capability compiler drops anything the request did not declare as an actual
|
|
8
|
+
* tool, and it does so quietly: the run succeeds, the model is simply never
|
|
9
|
+
* offered the tool, and the answer comes back thinner with no error to explain
|
|
10
|
+
* why. That has now cost this project twice — first the MCP connector tools,
|
|
11
|
+
* then `docdex_web_research`, which meant the web capability was never offered
|
|
12
|
+
* to the classifier at all.
|
|
13
|
+
*
|
|
14
|
+
* A host embedding Codali configures tools per tenant and cannot see any of
|
|
15
|
+
* this. This reports it: what was supplied, what survived, and the compiler's
|
|
16
|
+
* own reason for every tool that did not.
|
|
17
|
+
*/
|
|
18
|
+
export interface ToolSurfaceEntry {
|
|
19
|
+
tool: string;
|
|
20
|
+
reason: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ToolSurfaceReport {
|
|
23
|
+
/** Tools registered from the context — MCP servers, HTTP connectors, docdex. */
|
|
24
|
+
registered: string[];
|
|
25
|
+
/** Tools the planner will actually be offered. */
|
|
26
|
+
visible: string[];
|
|
27
|
+
/** Registered but unreachable, with the compiler's reason. */
|
|
28
|
+
dropped: ToolSurfaceEntry[];
|
|
29
|
+
/** Warnings raised while compiling the tool surface. */
|
|
30
|
+
warnings: string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Compiles the tool surface exactly as a run would, and reports the difference.
|
|
34
|
+
*
|
|
35
|
+
* Deliberately uses the real compiler rather than reimplementing its rules: a
|
|
36
|
+
* conformance check that can disagree with the thing it checks is worse than
|
|
37
|
+
* none, because it grants confidence it has not earned.
|
|
38
|
+
*/
|
|
39
|
+
export declare const inspectToolSurface: (context: RunContext, registry: ToolRegistry) => ToolSurfaceReport;
|
|
40
|
+
//# sourceMappingURL=ToolSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolSurface.d.ts","sourceRoot":"","sources":["../../src/gateway/ToolSurface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kDAAkD;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8DAA8D;IAC9D,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,UAAU,EACnB,UAAU,YAAY,KACrB,iBAgDF,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { compileCodaliGatewayPolicy } from "./GatewayPolicyCompiler.js";
|
|
2
|
+
/**
|
|
3
|
+
* Compiles the tool surface exactly as a run would, and reports the difference.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately uses the real compiler rather than reimplementing its rules: a
|
|
6
|
+
* conformance check that can disagree with the thing it checks is worse than
|
|
7
|
+
* none, because it grants confidence it has not earned.
|
|
8
|
+
*/
|
|
9
|
+
export const inspectToolSurface = (context, registry) => {
|
|
10
|
+
const registered = registry.catalog().map((tool) => tool.name).sort();
|
|
11
|
+
const compilation = compileCodaliGatewayPolicy({
|
|
12
|
+
request: {
|
|
13
|
+
query: "",
|
|
14
|
+
policy: { allowedTools: registered },
|
|
15
|
+
// `actualTools` belongs on the tool manifest, not the policy. Declaring
|
|
16
|
+
// it in the wrong place is silent — the compiler simply reports every
|
|
17
|
+
// connector tool as `not_declared` — and it is the mistake this project
|
|
18
|
+
// has now made three times, twice in production code and once while
|
|
19
|
+
// writing this very check.
|
|
20
|
+
tools: { actualTools: registered },
|
|
21
|
+
tenant: context.tenant,
|
|
22
|
+
docdex: context.docdex
|
|
23
|
+
? {
|
|
24
|
+
baseUrl: context.docdex.baseUrl,
|
|
25
|
+
repoId: context.docdex.repoId,
|
|
26
|
+
allowedOperations: context.docdex.allowedOperations,
|
|
27
|
+
}
|
|
28
|
+
: undefined,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
const visible = [...compilation.effectiveAllowedTools].sort();
|
|
32
|
+
const visibleSet = new Set(visible);
|
|
33
|
+
const reasons = new Map();
|
|
34
|
+
for (const skipped of compilation.skippedTools ?? []) {
|
|
35
|
+
if (typeof skipped === "string") {
|
|
36
|
+
reasons.set(skipped, "skipped");
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const entry = skipped;
|
|
40
|
+
if (entry.tool)
|
|
41
|
+
reasons.set(entry.tool, entry.reason ?? "skipped");
|
|
42
|
+
}
|
|
43
|
+
const dropped = registered
|
|
44
|
+
.filter((tool) => !visibleSet.has(tool))
|
|
45
|
+
.map((tool) => ({ tool, reason: reasons.get(tool) ?? "not_visible_to_planner" }));
|
|
46
|
+
return {
|
|
47
|
+
registered,
|
|
48
|
+
visible,
|
|
49
|
+
dropped,
|
|
50
|
+
warnings: (compilation.warnings ?? []).map((warning) => typeof warning === "string" ? warning : JSON.stringify(warning)),
|
|
51
|
+
};
|
|
52
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcoda/mswarm",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.114",
|
|
4
4
|
"description": "Owner-run mswarm node for exposing local mcoda agents through the mswarm self-hosted gateway.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"fastify": "^5.7.4",
|
|
50
50
|
"undici": "^6.28.0",
|
|
51
|
-
"@mcoda/
|
|
52
|
-
"@mcoda/
|
|
51
|
+
"@mcoda/db": "0.1.114",
|
|
52
|
+
"@mcoda/shared": "0.1.114"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "pnpm --filter @mcoda/shared run build && pnpm --filter @mcoda/codali run build && tsc -p tsconfig.json && node ../../scripts/copy-mswarm-codali-vendor.js",
|