@okfit/mcp 0.6.1 → 0.6.3
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/index.d.ts +20 -20
- package/package.json +18 -10
- package/resources/conceptResource.js +3 -3
- package/resources/indexResource.js +2 -2
- package/server.js +1 -1
- package/toolkit.js +1 -1
- package/tools/conceptNeighbors.js +1 -1
- package/tools/describeVocabulary.js +3 -3
- package/tools/getConcept.js +1 -1
- package/tools/listConcepts.js +1 -1
- package/tools/staleReport.js +1 -1
- package/tools/validateBundle.js +1 -1
- package/version.js +1 -1
package/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { FileSystem, Layer, Path, Schema, Stdio } from "effect";
|
|
|
3
3
|
import { AppDirs, Xdg } from "@effected/xdg";
|
|
4
4
|
import { LoadedConcept } from "@okfit/core";
|
|
5
5
|
import { Distribution } from "@okfit/engine";
|
|
6
|
-
import { ChildProcessSpawner } from "effect/
|
|
7
|
-
import { Toolkit } from "effect/
|
|
6
|
+
import { ChildProcessSpawner } from "effect/process";
|
|
7
|
+
import { Toolkit } from "effect/ai";
|
|
8
8
|
//#region src/errors.d.ts
|
|
9
9
|
declare const ConfigError_base: Schema.Class<ConfigError, Schema.TaggedStruct<"ConfigError", {
|
|
10
10
|
readonly message: Schema.String;
|
|
@@ -87,7 +87,7 @@ export type McpToolError = typeof McpToolError.Type;
|
|
|
87
87
|
* Amends N-19 and contract §6.1 (Ruling, task C4): a `McpServer.resource`
|
|
88
88
|
* URI **template** routes a `McpSchema.param` through a single path
|
|
89
89
|
* segment only — `FindMyWay`'s parametric matcher stops a param at the
|
|
90
|
-
* next `/` (`.repos/effect/packages/effect/src/
|
|
90
|
+
* next `/` (`.repos/effect/packages/effect/src/http/FindMyWay/internal/router.ts:460-463`),
|
|
91
91
|
* and every non-root OKF concept id nests under a type directory (D-12),
|
|
92
92
|
* e.g. `metrics/revenue`. A templated `okf://concept/{id}` therefore never
|
|
93
93
|
* routes a real bundle id. Static per-concept resources sidestep the
|
|
@@ -107,7 +107,7 @@ export type McpToolError = typeof McpToolError.Type;
|
|
|
107
107
|
*
|
|
108
108
|
* `content` builds the full `ReadResourceResult` itself, `mimeType`
|
|
109
109
|
* included, rather than returning a bare string: verified against source
|
|
110
|
-
* (`resolveResourceContent`, `
|
|
110
|
+
* (`resolveResourceContent`, `ai/McpServer.ts:2556-2576`), a bare
|
|
111
111
|
* string is wrapped as `{ contents: [{ uri, text }] }` with no `mimeType`
|
|
112
112
|
* at all — the declared `mimeType` option only documents the resource in
|
|
113
113
|
* `resources/list`, it is never merged into a `resources/read` response.
|
|
@@ -135,7 +135,7 @@ export declare const ConceptResources: (projectRoot: string) => Layer.Layer<neve
|
|
|
135
135
|
*
|
|
136
136
|
* `content` builds the full `ReadResourceResult` itself, `mimeType`
|
|
137
137
|
* included, rather than returning a bare string: verified against source
|
|
138
|
-
* (`resolveResourceContent`, `
|
|
138
|
+
* (`resolveResourceContent`, `ai/McpServer.ts:2556-2576`), a bare
|
|
139
139
|
* string is wrapped as `{ contents: [{ uri, text }] }` with no `mimeType`
|
|
140
140
|
* at all — the declared `mimeType` option only documents the resource in
|
|
141
141
|
* `resources/list`, it is never merged into a `resources/read` response.
|
|
@@ -409,7 +409,7 @@ export declare const ServerLayer: (projectRoot: string, options?: ServerOptions)
|
|
|
409
409
|
* @public
|
|
410
410
|
*/
|
|
411
411
|
export declare const OkfitToolkit: Toolkit.Toolkit<{
|
|
412
|
-
readonly concept_neighbors: import("effect/
|
|
412
|
+
readonly concept_neighbors: import("effect/ai/Tool").Tool<"concept_neighbors", {
|
|
413
413
|
readonly parameters: import("effect/Schema").Struct<{
|
|
414
414
|
readonly id: import("effect/Schema").String;
|
|
415
415
|
}>;
|
|
@@ -444,8 +444,8 @@ export declare const OkfitToolkit: Toolkit.Toolkit<{
|
|
|
444
444
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
445
445
|
readonly failureMode: "error";
|
|
446
446
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
447
|
-
readonly describe_vocabulary: import("effect/
|
|
448
|
-
readonly parameters: import("effect/
|
|
447
|
+
readonly describe_vocabulary: import("effect/ai/Tool").Tool<"describe_vocabulary", {
|
|
448
|
+
readonly parameters: import("effect/ai/Tool").EmptyParams;
|
|
449
449
|
readonly success: import("effect/Schema").Struct<{
|
|
450
450
|
readonly project_root: import("effect/Schema").String;
|
|
451
451
|
readonly bundle_root: import("effect/Schema").String;
|
|
@@ -477,7 +477,7 @@ export declare const OkfitToolkit: Toolkit.Toolkit<{
|
|
|
477
477
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
478
478
|
readonly failureMode: "error";
|
|
479
479
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
480
|
-
readonly get_concept: import("effect/
|
|
480
|
+
readonly get_concept: import("effect/ai/Tool").Tool<"get_concept", {
|
|
481
481
|
readonly parameters: import("effect/Schema").Struct<{
|
|
482
482
|
readonly id: import("effect/Schema").String;
|
|
483
483
|
}>;
|
|
@@ -501,7 +501,7 @@ export declare const OkfitToolkit: Toolkit.Toolkit<{
|
|
|
501
501
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
502
502
|
readonly failureMode: "error";
|
|
503
503
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
504
|
-
readonly list_concepts: import("effect/
|
|
504
|
+
readonly list_concepts: import("effect/ai/Tool").Tool<"list_concepts", {
|
|
505
505
|
readonly parameters: import("effect/Schema").Struct<{
|
|
506
506
|
readonly type: import("effect/Schema").optionalKey<import("effect/Schema").String>;
|
|
507
507
|
readonly tags: import("effect/Schema").optionalKey<import("effect/Schema").$Array<import("effect/Schema").String>>;
|
|
@@ -524,7 +524,7 @@ export declare const OkfitToolkit: Toolkit.Toolkit<{
|
|
|
524
524
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
525
525
|
readonly failureMode: "error";
|
|
526
526
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
527
|
-
readonly stale_report: import("effect/
|
|
527
|
+
readonly stale_report: import("effect/ai/Tool").Tool<"stale_report", {
|
|
528
528
|
readonly parameters: import("effect/Schema").Struct<{
|
|
529
529
|
readonly now: import("effect/Schema").optionalKey<import("effect/Schema").String>;
|
|
530
530
|
}>;
|
|
@@ -547,7 +547,7 @@ export declare const OkfitToolkit: Toolkit.Toolkit<{
|
|
|
547
547
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
548
548
|
readonly failureMode: "error";
|
|
549
549
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
550
|
-
readonly validate_bundle: import("effect/
|
|
550
|
+
readonly validate_bundle: import("effect/ai/Tool").Tool<"validate_bundle", {
|
|
551
551
|
readonly parameters: import("effect/Schema").Struct<{
|
|
552
552
|
readonly now: import("effect/Schema").optionalKey<import("effect/Schema").String>;
|
|
553
553
|
readonly documents: import("effect/Schema").optionalKey<import("effect/Schema").$Array<import("effect/Schema").Struct<{
|
|
@@ -598,8 +598,8 @@ export declare const OkfitToolkit: Toolkit.Toolkit<{
|
|
|
598
598
|
*
|
|
599
599
|
* @public
|
|
600
600
|
*/
|
|
601
|
-
export declare const ToolsLayer: (projectRoot: string, distribution?: Distribution) => import("effect/Layer").Layer<import("effect/
|
|
602
|
-
readonly concept_neighbors: import("effect/
|
|
601
|
+
export declare const ToolsLayer: (projectRoot: string, distribution?: Distribution) => import("effect/Layer").Layer<import("effect/ai/Tool").HandlersFor<{
|
|
602
|
+
readonly concept_neighbors: import("effect/ai/Tool").Tool<"concept_neighbors", {
|
|
603
603
|
readonly parameters: import("effect/Schema").Struct<{
|
|
604
604
|
readonly id: import("effect/Schema").String;
|
|
605
605
|
}>;
|
|
@@ -634,8 +634,8 @@ export declare const ToolsLayer: (projectRoot: string, distribution?: Distributi
|
|
|
634
634
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
635
635
|
readonly failureMode: "error";
|
|
636
636
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
637
|
-
readonly describe_vocabulary: import("effect/
|
|
638
|
-
readonly parameters: import("effect/
|
|
637
|
+
readonly describe_vocabulary: import("effect/ai/Tool").Tool<"describe_vocabulary", {
|
|
638
|
+
readonly parameters: import("effect/ai/Tool").EmptyParams;
|
|
639
639
|
readonly success: import("effect/Schema").Struct<{
|
|
640
640
|
readonly project_root: import("effect/Schema").String;
|
|
641
641
|
readonly bundle_root: import("effect/Schema").String;
|
|
@@ -667,7 +667,7 @@ export declare const ToolsLayer: (projectRoot: string, distribution?: Distributi
|
|
|
667
667
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
668
668
|
readonly failureMode: "error";
|
|
669
669
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
670
|
-
readonly get_concept: import("effect/
|
|
670
|
+
readonly get_concept: import("effect/ai/Tool").Tool<"get_concept", {
|
|
671
671
|
readonly parameters: import("effect/Schema").Struct<{
|
|
672
672
|
readonly id: import("effect/Schema").String;
|
|
673
673
|
}>;
|
|
@@ -691,7 +691,7 @@ export declare const ToolsLayer: (projectRoot: string, distribution?: Distributi
|
|
|
691
691
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
692
692
|
readonly failureMode: "error";
|
|
693
693
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
694
|
-
readonly list_concepts: import("effect/
|
|
694
|
+
readonly list_concepts: import("effect/ai/Tool").Tool<"list_concepts", {
|
|
695
695
|
readonly parameters: import("effect/Schema").Struct<{
|
|
696
696
|
readonly type: import("effect/Schema").optionalKey<import("effect/Schema").String>;
|
|
697
697
|
readonly tags: import("effect/Schema").optionalKey<import("effect/Schema").$Array<import("effect/Schema").String>>;
|
|
@@ -714,7 +714,7 @@ export declare const ToolsLayer: (projectRoot: string, distribution?: Distributi
|
|
|
714
714
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
715
715
|
readonly failureMode: "error";
|
|
716
716
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
717
|
-
readonly stale_report: import("effect/
|
|
717
|
+
readonly stale_report: import("effect/ai/Tool").Tool<"stale_report", {
|
|
718
718
|
readonly parameters: import("effect/Schema").Struct<{
|
|
719
719
|
readonly now: import("effect/Schema").optionalKey<import("effect/Schema").String>;
|
|
720
720
|
}>;
|
|
@@ -737,7 +737,7 @@ export declare const ToolsLayer: (projectRoot: string, distribution?: Distributi
|
|
|
737
737
|
readonly failure: import("effect/Schema").Union<readonly [typeof ConfigError, typeof BundleNotFound, typeof ConceptNotFound, typeof UnknownVocabulary, typeof InvalidArgument]>;
|
|
738
738
|
readonly failureMode: "error";
|
|
739
739
|
}, import("@effected/xdg").AppDirs | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("@effected/xdg").Xdg>;
|
|
740
|
-
readonly validate_bundle: import("effect/
|
|
740
|
+
readonly validate_bundle: import("effect/ai/Tool").Tool<"validate_bundle", {
|
|
741
741
|
readonly parameters: import("effect/Schema").Struct<{
|
|
742
742
|
readonly now: import("effect/Schema").optionalKey<import("effect/Schema").String>;
|
|
743
743
|
readonly documents: import("effect/Schema").optionalKey<import("effect/Schema").$Array<import("effect/Schema").Struct<{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@okfit/mcp",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Model Context Protocol server for okfit: query and understand Open Knowledge Format (OKF) bundles from an agent.",
|
|
6
6
|
"keywords": [
|
|
@@ -44,15 +44,23 @@
|
|
|
44
44
|
"okfit-mcp": "bin/okfit-mcp.js"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@effect/platform-node": "4.0.0-rc.
|
|
48
|
-
"@effected/
|
|
49
|
-
"@effected/
|
|
50
|
-
"@effected/
|
|
51
|
-
"@effected/
|
|
52
|
-
"@
|
|
53
|
-
"@
|
|
54
|
-
"@
|
|
55
|
-
"
|
|
47
|
+
"@effect/platform-node": "4.0.0-rc.118",
|
|
48
|
+
"@effected/config-file": "^0.13.0",
|
|
49
|
+
"@effected/engine": "^0.2.0",
|
|
50
|
+
"@effected/git": "^0.18.1",
|
|
51
|
+
"@effected/glob": "^0.9.0",
|
|
52
|
+
"@effected/jsonc": "^0.14.0",
|
|
53
|
+
"@effected/markdown": "^0.14.0",
|
|
54
|
+
"@effected/mcp": "^0.3.0",
|
|
55
|
+
"@effected/schemastore": "^0.17.0",
|
|
56
|
+
"@effected/toml": "^0.10.0",
|
|
57
|
+
"@effected/walker": "^0.13.0",
|
|
58
|
+
"@effected/xdg": "^0.8.0",
|
|
59
|
+
"@effected/yaml": "^0.18.0",
|
|
60
|
+
"@okfit/core": "0.8.2",
|
|
61
|
+
"@okfit/engine": "0.9.2",
|
|
62
|
+
"@okfit/profiles": "0.8.1",
|
|
63
|
+
"effect": "4.0.0-rc.118"
|
|
56
64
|
},
|
|
57
65
|
"engines": {
|
|
58
66
|
"node": ">=24.11.0"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { loadToolContext } from "../internal/toolContext.js";
|
|
2
2
|
import { Effect, FileSystem, Layer, Path } from "effect";
|
|
3
3
|
import { Derive } from "@okfit/core";
|
|
4
|
-
import { McpSchema, McpServer } from "effect/
|
|
4
|
+
import { McpSchema, McpServer } from "effect/ai";
|
|
5
5
|
|
|
6
6
|
//#region src/resources/conceptResource.ts
|
|
7
7
|
/**
|
|
@@ -11,7 +11,7 @@ import { McpSchema, McpServer } from "effect/unstable/ai";
|
|
|
11
11
|
* Amends N-19 and contract §6.1 (Ruling, task C4): a `McpServer.resource`
|
|
12
12
|
* URI **template** routes a `McpSchema.param` through a single path
|
|
13
13
|
* segment only — `FindMyWay`'s parametric matcher stops a param at the
|
|
14
|
-
* next `/` (`.repos/effect/packages/effect/src/
|
|
14
|
+
* next `/` (`.repos/effect/packages/effect/src/http/FindMyWay/internal/router.ts:460-463`),
|
|
15
15
|
* and every non-root OKF concept id nests under a type directory (D-12),
|
|
16
16
|
* e.g. `metrics/revenue`. A templated `okf://concept/{id}` therefore never
|
|
17
17
|
* routes a real bundle id. Static per-concept resources sidestep the
|
|
@@ -31,7 +31,7 @@ import { McpSchema, McpServer } from "effect/unstable/ai";
|
|
|
31
31
|
*
|
|
32
32
|
* `content` builds the full `ReadResourceResult` itself, `mimeType`
|
|
33
33
|
* included, rather than returning a bare string: verified against source
|
|
34
|
-
* (`resolveResourceContent`, `
|
|
34
|
+
* (`resolveResourceContent`, `ai/McpServer.ts:2556-2576`), a bare
|
|
35
35
|
* string is wrapped as `{ contents: [{ uri, text }] }` with no `mimeType`
|
|
36
36
|
* at all — the declared `mimeType` option only documents the resource in
|
|
37
37
|
* `resources/list`, it is never merged into a `resources/read` response.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadToolContext } from "../internal/toolContext.js";
|
|
2
2
|
import { Effect, FileSystem, Path } from "effect";
|
|
3
|
-
import { McpSchema, McpServer } from "effect/
|
|
3
|
+
import { McpSchema, McpServer } from "effect/ai";
|
|
4
4
|
|
|
5
5
|
//#region src/resources/indexResource.ts
|
|
6
6
|
/**
|
|
@@ -21,7 +21,7 @@ import { McpSchema, McpServer } from "effect/unstable/ai";
|
|
|
21
21
|
*
|
|
22
22
|
* `content` builds the full `ReadResourceResult` itself, `mimeType`
|
|
23
23
|
* included, rather than returning a bare string: verified against source
|
|
24
|
-
* (`resolveResourceContent`, `
|
|
24
|
+
* (`resolveResourceContent`, `ai/McpServer.ts:2556-2576`), a bare
|
|
25
25
|
* string is wrapped as `{ contents: [{ uri, text }] }` with no `mimeType`
|
|
26
26
|
* at all — the declared `mimeType` option only documents the resource in
|
|
27
27
|
* `resources/list`, it is never merged into a `resources/read` response.
|
package/server.js
CHANGED
|
@@ -4,7 +4,7 @@ import { MCP_VERSION } from "./version.js";
|
|
|
4
4
|
import { OkfitToolkit, ToolsLayer } from "./toolkit.js";
|
|
5
5
|
import { McpStdio, McpToolkit } from "@effected/mcp";
|
|
6
6
|
import { Layer } from "effect";
|
|
7
|
-
import { McpProtocol } from "effect/
|
|
7
|
+
import { McpProtocol } from "effect/ai";
|
|
8
8
|
import { Git } from "@effected/git";
|
|
9
9
|
import { GitHistory } from "@okfit/profiles";
|
|
10
10
|
|
package/toolkit.js
CHANGED
|
@@ -4,7 +4,7 @@ import { getConcept, handleGetConcept } from "./tools/getConcept.js";
|
|
|
4
4
|
import { handleListConcepts, listConcepts } from "./tools/listConcepts.js";
|
|
5
5
|
import { handleStaleReport, staleReport } from "./tools/staleReport.js";
|
|
6
6
|
import { handleValidateBundle, validateBundle } from "./tools/validateBundle.js";
|
|
7
|
-
import { Toolkit } from "effect/
|
|
7
|
+
import { Toolkit } from "effect/ai";
|
|
8
8
|
|
|
9
9
|
//#region src/toolkit.ts
|
|
10
10
|
/**
|
|
@@ -5,7 +5,7 @@ import { ConceptNeighborsSuccess } from "../schema/tools.js";
|
|
|
5
5
|
import { ToolFailure } from "@effected/mcp";
|
|
6
6
|
import { Effect, FileSystem, Option, Path, Schema } from "effect";
|
|
7
7
|
import { ConceptId, Graph } from "@okfit/core";
|
|
8
|
-
import { Tool } from "effect/
|
|
8
|
+
import { Tool } from "effect/ai";
|
|
9
9
|
import { AppDirs, Xdg } from "@effected/xdg";
|
|
10
10
|
|
|
11
11
|
//#region src/tools/conceptNeighbors.ts
|
|
@@ -2,7 +2,7 @@ import { McpToolError } from "../errors.js";
|
|
|
2
2
|
import { resolveConfigOnly } from "../internal/toolContext.js";
|
|
3
3
|
import { DescribeVocabularySuccess } from "../schema/tools.js";
|
|
4
4
|
import { Effect, FileSystem, Option, Path } from "effect";
|
|
5
|
-
import { Tool } from "effect/
|
|
5
|
+
import { Tool } from "effect/ai";
|
|
6
6
|
import { contextEnvelope } from "@okfit/engine";
|
|
7
7
|
import { AppDirs, Xdg } from "@effected/xdg";
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ const DESCRIPTION = "Returns this project's resolved okfit configuration: the pr
|
|
|
13
13
|
* needs (`resolveConfigOnly` -> `resolveProjectConfig`/`provideConfig`);
|
|
14
14
|
* without it `Tool.HandlerServices` infers `never` and the handler record
|
|
15
15
|
* passed to `Toolkit.toLayer` fails to typecheck against `HandlersFrom`
|
|
16
|
-
* (verified against `.repos/effect/packages/effect/src/
|
|
16
|
+
* (verified against `.repos/effect/packages/effect/src/ai/Tool.ts`
|
|
17
17
|
* `dependencies`/`HandlerServices`; not spelled out in the brief's snippet).
|
|
18
18
|
*
|
|
19
19
|
* `parameters` is `Tool.EmptyParams`, not the brief's `Schema.Struct({})`:
|
|
@@ -22,7 +22,7 @@ const DESCRIPTION = "Returns this project's resolved okfit configuration: the pr
|
|
|
22
22
|
* its JSON Schema, reproduced in isolation against a minimal tool and
|
|
23
23
|
* confirmed fixed by switching to `Tool.EmptyParams` — the same schema
|
|
24
24
|
* Effect's own MCP conformance fixtures use for parameterless tools
|
|
25
|
-
* (`.repos/effect/packages/effect/test/
|
|
25
|
+
* (`.repos/effect/packages/effect/test/ai/McpServer/McpConformance/McpConformanceFixtures.ts:38`).
|
|
26
26
|
*
|
|
27
27
|
* @public
|
|
28
28
|
*/
|
package/tools/getConcept.js
CHANGED
|
@@ -4,7 +4,7 @@ import { GetConceptSuccess } from "../schema/tools.js";
|
|
|
4
4
|
import { ToolFailure } from "@effected/mcp";
|
|
5
5
|
import { Effect, FileSystem, Option, Path, Schema } from "effect";
|
|
6
6
|
import { ConceptId, Derive, Graph } from "@okfit/core";
|
|
7
|
-
import { Tool } from "effect/
|
|
7
|
+
import { Tool } from "effect/ai";
|
|
8
8
|
import { AppDirs, Xdg } from "@effected/xdg";
|
|
9
9
|
|
|
10
10
|
//#region src/tools/getConcept.ts
|
package/tools/listConcepts.js
CHANGED
|
@@ -5,7 +5,7 @@ import { ListConceptsParams, ListConceptsSuccess } from "../schema/tools.js";
|
|
|
5
5
|
import { ToolFailure } from "@effected/mcp";
|
|
6
6
|
import { Effect, FileSystem, Path } from "effect";
|
|
7
7
|
import { Derive } from "@okfit/core";
|
|
8
|
-
import { Tool } from "effect/
|
|
8
|
+
import { Tool } from "effect/ai";
|
|
9
9
|
import { AppDirs, Xdg } from "@effected/xdg";
|
|
10
10
|
|
|
11
11
|
//#region src/tools/listConcepts.ts
|
package/tools/staleReport.js
CHANGED
|
@@ -5,7 +5,7 @@ import { StaleReportParams, StaleReportSuccess } from "../schema/tools.js";
|
|
|
5
5
|
import { resolveNow } from "../internal/resolveNow.js";
|
|
6
6
|
import { DateTime, Effect, FileSystem, Path } from "effect";
|
|
7
7
|
import { Derive } from "@okfit/core";
|
|
8
|
-
import { Tool } from "effect/
|
|
8
|
+
import { Tool } from "effect/ai";
|
|
9
9
|
import { AppDirs, Xdg } from "@effected/xdg";
|
|
10
10
|
|
|
11
11
|
//#region src/tools/staleReport.ts
|
package/tools/validateBundle.js
CHANGED
|
@@ -6,7 +6,7 @@ import { MCP_VERSION } from "../version.js";
|
|
|
6
6
|
import { ToolFailure } from "@effected/mcp";
|
|
7
7
|
import { Crypto, Effect, FileSystem, Option, Path } from "effect";
|
|
8
8
|
import { OKF_SPEC_VERSION } from "@okfit/core";
|
|
9
|
-
import { Tool } from "effect/
|
|
9
|
+
import { Tool } from "effect/ai";
|
|
10
10
|
import { DocumentPathError, JsonEnvelope, collect, forDiagnostics, json, provideDocuments, run } from "@okfit/engine";
|
|
11
11
|
import { Git } from "@effected/git";
|
|
12
12
|
import { GitHistory } from "@okfit/profiles";
|