@savvy-web/mcp 3.4.0 → 3.4.2

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/errors.js CHANGED
@@ -67,14 +67,17 @@ const workspaceNotFound = (cwd) => new WorkspaceNotFound({
67
67
  * rendering is the raw message — passed through `ToolFailure.truncate` at
68
68
  * `ToolFailure.ENGINE_ECHO_LIMIT`, since the kit embeds caller values in it;
69
69
  * `source` keeps the tag for anything that inspects the typed error directly.
70
- * An `Error` in the engine error's own `cause` is appended to that rendering:
71
- * some kit errors (`CatalogAssemblyError`) render only a one-line summary and
72
- * keep the actionable detail in `cause`.
70
+ * An `Error` in the engine error's own `cause` is appended to that rendering
71
+ * unless the rendering already contains it: a kit error that renders only a
72
+ * one-line summary keeps the actionable detail in `cause`, while one that
73
+ * already folds its cause in (`CatalogAssemblyError` since `@effected/npm`
74
+ * 0.17.0) would otherwise print the detail twice.
73
75
  *
74
76
  * @public
75
77
  */
76
78
  const engineError = (cause, remediation) => {
77
- const rendered = cause.cause instanceof Error ? `${cause.message}: ${cause.cause.message}` : cause.message;
79
+ const detail = cause.cause instanceof Error ? cause.cause.message : "";
80
+ const rendered = detail && !cause.message.includes(detail) ? `${cause.message}: ${detail}` : cause.message;
78
81
  return new EngineError({
79
82
  source: cause._tag,
80
83
  message: ToolFailure.message(ToolFailure.truncate(rendered, ToolFailure.ENGINE_ECHO_LIMIT), remediation),
package/index.d.ts CHANGED
@@ -3,8 +3,8 @@ import { ToolRefusal } from "@effected/mcp";
3
3
  import { FileSystem, Layer, Path, Schema, Stdio } from "effect";
4
4
  import { WorkspaceRoot } from "@effected/workspaces";
5
5
  import { Changesets, Repos, SilkWorkspaceAnalyzer, Turbo } from "@savvy-web/silk-effects";
6
- import { ChildProcessSpawner } from "effect/unstable/process";
7
- import { Tool, Toolkit } from "effect/unstable/ai";
6
+ import { ChildProcessSpawner } from "effect/process";
7
+ import { Tool, Toolkit } from "effect/ai";
8
8
  //#region src/errors.d.ts
9
9
  declare const WorkspaceNotFound_base: Schema.Class<WorkspaceNotFound, Schema.TaggedStruct<"WorkspaceNotFound", {
10
10
  readonly message: Schema.String;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@savvy-web/mcp",
3
- "version": "3.4.0",
3
+ "version": "3.4.2",
4
4
  "private": false,
5
5
  "description": "The savvy MCP server — Silk Suite tooling and library knowledge for coding agents",
6
6
  "homepage": "https://github.com/savvy-web/systems/tree/main/packages/mcp",
@@ -36,14 +36,14 @@
36
36
  "savvy-mcp": "bin/savvy-mcp.js"
37
37
  },
38
38
  "dependencies": {
39
- "@effect/platform-node": "4.0.0-rc.117",
40
- "@effected/commands": "^0.9.0",
41
- "@effected/engine": "^0.1.0",
42
- "@effected/git": "^0.17.0",
43
- "@effected/mcp": "^0.2.0",
44
- "@effected/templates": "^0.8.0",
45
- "@effected/workspaces": "^0.27.0",
46
- "@savvy-web/silk-effects": "9.1.4",
47
- "effect": "4.0.0-rc.117"
39
+ "@effect/platform-node": "4.0.0-rc.118",
40
+ "@effected/commands": "^0.10.0",
41
+ "@effected/engine": "^0.2.0",
42
+ "@effected/git": "^0.18.0",
43
+ "@effected/mcp": "^0.3.0",
44
+ "@effected/templates": "^0.9.0",
45
+ "@effected/workspaces": "^0.30.0",
46
+ "@savvy-web/silk-effects": "9.2.1",
47
+ "effect": "4.0.0-rc.118"
48
48
  }
49
49
  }
package/toolkit.js CHANGED
@@ -8,7 +8,7 @@ import { handleReposInspect, reposInspectTool } from "./tools/repos-inspect.js";
8
8
  import { handleReposManage, reposManageTool } from "./tools/repos-manage.js";
9
9
  import { handleTurboInspect, turboInspectTool } from "./tools/turbo-inspect.js";
10
10
  import { handleWorkspaceInfo, workspaceInfoTool } from "./tools/workspace-info.js";
11
- import { Toolkit } from "effect/unstable/ai";
11
+ import { Toolkit } from "effect/ai";
12
12
 
13
13
  //#region src/toolkit.ts
14
14
  /**
@@ -2,7 +2,7 @@ import { BiomeFailed, McpToolError } from "../errors.js";
2
2
  import { ToolFailure, ToolRefusal } from "@effected/mcp";
3
3
  import { Effect, Schema } from "effect";
4
4
  import { Lint } from "@savvy-web/silk-effects";
5
- import { Tool } from "effect/unstable/ai";
5
+ import { Tool } from "effect/ai";
6
6
  import { spawnSync } from "node:child_process";
7
7
  import { realpathSync } from "node:fs";
8
8
  import { relative, resolve, sep } from "node:path";
@@ -2,7 +2,7 @@ import { McpToolError, mapEngineError } from "../errors.js";
2
2
  import { Effect, Schema } from "effect";
3
3
  import { WorkspaceRoot } from "@effected/workspaces";
4
4
  import { Changesets } from "@savvy-web/silk-effects";
5
- import { Tool } from "effect/unstable/ai";
5
+ import { Tool } from "effect/ai";
6
6
 
7
7
  //#region src/tools/changeset-deps-detect.ts
8
8
  /** One affected workspace package's resolved dependency diff. */
@@ -2,7 +2,7 @@ import { McpToolError, mapEngineError } from "../errors.js";
2
2
  import { Effect, Schema } from "effect";
3
3
  import { WorkspaceRoot } from "@effected/workspaces";
4
4
  import { Changesets } from "@savvy-web/silk-effects";
5
- import { Tool } from "effect/unstable/ai";
5
+ import { Tool } from "effect/ai";
6
6
 
7
7
  //#region src/tools/changeset-deps-regen.ts
8
8
  /**
@@ -3,7 +3,7 @@ import { ToolOutputSchema } from "@effected/mcp";
3
3
  import { Effect, Schema } from "effect";
4
4
  import { WorkspaceRoot } from "@effected/workspaces";
5
5
  import { Changesets } from "@savvy-web/silk-effects";
6
- import { Tool } from "effect/unstable/ai";
6
+ import { Tool } from "effect/ai";
7
7
 
8
8
  //#region src/tools/changeset-inspect.ts
9
9
  /**
@@ -2,7 +2,7 @@ import { McpToolError, mapEngineError } from "../errors.js";
2
2
  import { Effect, Schema } from "effect";
3
3
  import { WorkspaceRoot } from "@effected/workspaces";
4
4
  import { Changesets } from "@savvy-web/silk-effects";
5
- import { Tool } from "effect/unstable/ai";
5
+ import { Tool } from "effect/ai";
6
6
 
7
7
  //#region src/tools/changeset-preview.ts
8
8
  /** The `changeset_preview` result — the silk-effects preview shape. */
@@ -3,7 +3,7 @@ import { ToolFailure, ToolRefusal } from "@effected/mcp";
3
3
  import { Data, Effect, Schema } from "effect";
4
4
  import { WorkspaceRoot } from "@effected/workspaces";
5
5
  import { Changesets } from "@savvy-web/silk-effects";
6
- import { Tool } from "effect/unstable/ai";
6
+ import { Tool } from "effect/ai";
7
7
  import { resolve } from "node:path";
8
8
 
9
9
  //#region src/tools/changeset-validate.ts
@@ -3,7 +3,7 @@ import { ToolOutputSchema } from "@effected/mcp";
3
3
  import { Effect, FileSystem, Option, Path, Result, Schema } from "effect";
4
4
  import { WorkspaceRoot } from "@effected/workspaces";
5
5
  import { Repos } from "@savvy-web/silk-effects";
6
- import { Tool } from "effect/unstable/ai";
6
+ import { Tool } from "effect/ai";
7
7
  import { Gitmodules } from "@effected/git";
8
8
 
9
9
  //#region src/tools/repos-inspect.ts
@@ -3,7 +3,7 @@ import { McpToolkit, ToolOutputSchema, ToolRefusal } from "@effected/mcp";
3
3
  import { Effect, Result, Schema } from "effect";
4
4
  import { WorkspaceRoot } from "@effected/workspaces";
5
5
  import { Repos } from "@savvy-web/silk-effects";
6
- import { Tool } from "effect/unstable/ai";
6
+ import { Tool } from "effect/ai";
7
7
 
8
8
  //#region src/tools/repos-manage.ts
9
9
  /**
@@ -3,7 +3,7 @@ import { ToolOutputSchema } from "@effected/mcp";
3
3
  import { Effect, Schema } from "effect";
4
4
  import { WorkspaceRoot } from "@effected/workspaces";
5
5
  import { Turbo } from "@savvy-web/silk-effects";
6
- import { Tool } from "effect/unstable/ai";
6
+ import { Tool } from "effect/ai";
7
7
 
8
8
  //#region src/tools/turbo-inspect.ts
9
9
  /**
@@ -2,7 +2,7 @@ import { McpToolError, mapEngineError } from "../errors.js";
2
2
  import { Effect, Schema } from "effect";
3
3
  import { WorkspaceRoot } from "@effected/workspaces";
4
4
  import { SilkWorkspaceAnalyzer } from "@savvy-web/silk-effects";
5
- import { Tool } from "effect/unstable/ai";
5
+ import { Tool } from "effect/ai";
6
6
 
7
7
  //#region src/tools/workspace-info.ts
8
8
  /** A flattened, non-recursive summary of one analyzed workspace. */
package/version.js CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
- const CURRENT_MCP_VERSION = "3.4.0";
9
+ const CURRENT_MCP_VERSION = "3.4.2";
10
10
 
11
11
  //#endregion
12
12
  export { CURRENT_MCP_VERSION };