traits 0.5.3 → 0.5.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "traits",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -2,6 +2,8 @@ import { NodeServices } from "@effect/platform-node";
2
2
  import { expect, it } from "@effect/vitest";
3
3
  import { Effect, FileSystem, Path, pipe, Queue, Schema as S, Stream } from "effect";
4
4
  import { ChildProcess, ChildProcessSpawner } from "effect/process";
5
+ import { CheckTraits } from "../toolkit/CheckTraits.js";
6
+ import { DeriveTrait } from "../toolkit/DeriveTrait.js";
5
7
  const effectUrl = new URL("../../node_modules/effect/dist/index.js", import.meta.url).href;
6
8
  const server = new URL("../main.ts", import.meta.url).pathname;
7
9
  for (const fixture of [
@@ -85,24 +87,15 @@ for (const fixture of [
85
87
  yield* Queue.offer(requests, `${JSON.stringify({ jsonrpc: "2.0", method: "notifications/initialized" })}\n`);
86
88
  const listed = yield* request(2, "tools/list");
87
89
  expect(listed).toMatchObject({
88
- tools: "trait" in fixture
89
- ? expect.arrayContaining([
90
- expect.objectContaining({ name: "check_traits" }),
91
- expect.objectContaining({ name: "derive_trait" })
92
- ])
93
- : [
94
- expect.objectContaining({
95
- name: "traits_configuration_error",
96
- description: expect.stringContaining("restart")
97
- })
98
- ]
90
+ tools: expect.arrayContaining([
91
+ expect.objectContaining({ name: "check_traits", description: CheckTraits.description }),
92
+ expect.objectContaining({ name: "derive_trait", description: DeriveTrait.description })
93
+ ])
99
94
  });
100
95
  for (const index of [3, 4]) {
101
- const tool = "trait" in fixture
102
- ? index === 3
103
- ? { name: "check_traits", arguments: { include: [] } }
104
- : { name: "derive_trait", arguments: { name: "example", proposedTrait: "Example rule" } }
105
- : { name: "traits_configuration_error", arguments: {} };
96
+ const tool = index === 3
97
+ ? { name: "check_traits", arguments: { include: [] } }
98
+ : { name: "derive_trait", arguments: { name: "example", proposedTrait: "Example rule" } };
106
99
  const result = yield* request(index, "tools/call", tool);
107
100
  expect(result).toMatchObject({
108
101
  isError: true,
@@ -114,6 +107,10 @@ for (const fixture of [
114
107
  }
115
108
  else {
116
109
  expect(JSON.stringify(result)).toContain("restart the Traits MCP server");
110
+ if (tool.name === "derive_trait") {
111
+ expect(JSON.stringify(result)).toContain("retry the same trait derivation with the identical arguments");
112
+ expect(JSON.stringify(result)).toContain("No trait was saved");
113
+ }
117
114
  }
118
115
  }
119
116
  if ("trait" in fixture) {
@@ -1 +1 @@
1
- {"version":3,"file":"TraitsInitialization.test.js","sourceRoot":"","sources":["../../test/TraitsInitialization.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAElE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,yCAAyC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAC1F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;AAE9D,KAAK,MAAM,OAAO,IAAI;IACpB,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE;IACnF;QACE,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,2CAA2C;QACnD,UAAU,EAAE,wBAAwB;KACrC;IACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,oBAAoB,EAAE;IACzF;QACE,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,iCAAiC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;8IACwE;QAC1I,UAAU,EAAE,yBAAyB;KACtC;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,iCAAiC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;yIACmE;QACrI,UAAU,EAAE,yBAAyB;KACtC;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,MAAM,EAAE,iCAAiC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;6KACuG;QACzK,UAAU,EAAE,wBAAwB;KACrC;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,yBAAyB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;0FAC4B;QACtF,KAAK,EAAE,gDAAgD;QACvD,UAAU,EAAE,yFAAyF;KACtG;CACF,EAAE,CAAC;IACF,EAAE,CAAC,MAAM,CACP,4BAA4B,OAAO,CAAC,IAAI,EAAE,EAC1C,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC;QAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAA;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QACnD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC;YAC5C,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YAClD,MAAM,EAAE,aAAa;SACtB,CAAC,CAAA;QACF,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAC/E,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAA;QACpE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACrE,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,wBAAwB;YAAE,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QAC9F,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAU,CAAA;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAU,CAAA;QAClD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAChC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;YAC5C,GAAG;YACH,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACzD,MAAM,EAAE,SAAS;SAClB,CAAC,CACH,CAAA;QACD,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACtB,MAAM,CAAC,UAAU,EAAE,EACnB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EACzD,MAAM,CAAC,UAAU,CAClB,CAAA;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAU,EAAE,MAAc,EAAE,MAAM,GAAY,EAAE;YACtG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;YAC3F,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAC1B,IAAI,EACJ,CAAC,CAAC,YAAY,CACZ,CAAC,CAAC,cAAc,CACd,CAAC,CAAC,MAAM,CAAC;oBACP,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC1B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACnC,CAAC,CACH,CACF,CACF,CAAA;gBACD,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE;oBAAE,OAAO,QAAQ,CAAC,MAAM,CAAA;YAChD,CAAC;QACH,CAAC,CAAC,CAAA;QACF,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE;YAClD,eAAe,EAAE,YAAY;YAC7B,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;SAC3C,CAAC,CAAA;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QACrE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,IAAI,CAAC,CAAA;QAC5G,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,KAAK,EACH,OAAO,IAAI,OAAO;gBAChB,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;oBACrB,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;oBACjD,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;iBAClD,CAAC;gBACJ,CAAC,CAAC;oBACE,MAAM,CAAC,gBAAgB,CAAC;wBACtB,IAAI,EAAE,4BAA4B;wBAClC,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;qBAChD,CAAC;iBACH;SACR,CAAC,CAAA;QACF,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GACR,OAAO,IAAI,OAAO;gBAChB,CAAC,CAAC,KAAK,KAAK,CAAC;oBACX,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;oBACtD,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE;gBAC3F,CAAC,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;YAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;gBAC3B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;aAC/E,CAAC,CAAA;YACF,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBACnD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC;QACD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;YACrD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACrC,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,mDAAmD,CAAC,CAAA;YACzF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YACvG,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACtC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EACtC,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"TraitsInitialization.test.js","sourceRoot":"","sources":["../../test/TraitsInitialization.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurationError.d.ts","sourceRoot":"","sources":["../../toolkit/ConfigurationError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAU,KAAK,EAAe,MAAM,QAAQ,CAAA;AAc1D,eAAO,MAAM,KAAK,UAAW,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,qCAY1C,CAAA"}
1
+ {"version":3,"file":"ConfigurationError.d.ts","sourceRoot":"","sources":["../../toolkit/ConfigurationError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAU,KAAK,EAAe,MAAM,QAAQ,CAAA;AAuB1D,eAAO,MAAM,KAAK,UAAW,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,qCAgB1C,CAAA"}
@@ -1,8 +1,16 @@
1
1
  import { Cause, Effect, Layer, Schema as S } from "effect";
2
2
  import { McpServer, Tool, Toolkit } from "effect/ai";
3
- const toolkit = Toolkit.make(Tool.make("traits_configuration_error", {
4
- description: "Traits failed to initialize. Call this tool to learn where configuration failed. Help the user fix setup, then restart the Traits MCP server before using Traits. Never ask the user to paste credentials into chat.",
5
- parameters: Tool.EmptyParams,
3
+ import { CheckTraits } from "./CheckTraits.js";
4
+ import { DeriveTrait } from "./DeriveTrait.js";
5
+ const toolkit = Toolkit.make(Tool.make("derive_trait", {
6
+ description: DeriveTrait.description,
7
+ parameters: DeriveTrait.parametersSchema,
8
+ success: S.Never,
9
+ failure: S.String,
10
+ failureMode: "return"
11
+ }).annotate(Tool.Readonly, true), Tool.make("check_traits", {
12
+ description: CheckTraits.description,
13
+ parameters: CheckTraits.parametersSchema,
6
14
  success: S.Never,
7
15
  failure: S.String,
8
16
  failureMode: "return"
@@ -10,6 +18,7 @@ const toolkit = Toolkit.make(Tool.make("traits_configuration_error", {
10
18
  export const layer = (cause) => Cause.hasInterruptsOnly(cause)
11
19
  ? Layer.effectDiscard(Effect.interrupt)
12
20
  : McpServer.toolkit(toolkit).pipe(Layer.provide(toolkit.toLayer({
13
- traits_configuration_error: () => Effect.fail(`${Cause.pretty(cause)}\n\nFix the reported error, then restart the Traits MCP server and retry. Do not paste credentials into chat.`)
21
+ derive_trait: () => Effect.fail(`${Cause.pretty(cause)}\n\nSurface this configuration failure to the user. Fix the reported error, then restart the Traits MCP server and retry the same trait derivation with the identical arguments. No trait was saved; keep the proposal pending until the error is resolved. Do not paste credentials into chat.`),
22
+ check_traits: () => Effect.fail(`${Cause.pretty(cause)}\n\nSurface this configuration failure to the user. Fix the reported error, then restart the Traits MCP server and retry the same check. No trait review was performed. Do not paste credentials into chat.`)
14
23
  })));
15
24
  //# sourceMappingURL=ConfigurationError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurationError.js","sourceRoot":"","sources":["../../toolkit/ConfigurationError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEpD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAC1B,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE;IACtC,WAAW,EACT,sNAAsN;IACxN,UAAU,EAAE,IAAI,CAAC,WAAW;IAC5B,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM;IACjB,WAAW,EAAE,QAAQ;CACtB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CACjC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAA2B,EAAE,EAAE,CACnD,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC;IAC5B,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC;IACvC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7B,KAAK,CAAC,OAAO,CACX,OAAO,CAAC,OAAO,CAAC;QACd,0BAA0B,EAAE,GAAG,EAAE,CAC/B,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,+GAA+G,CACtI;KACJ,CAAC,CACH,CACF,CAAA"}
1
+ {"version":3,"file":"ConfigurationError.js","sourceRoot":"","sources":["../../toolkit/ConfigurationError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IACxB,WAAW,EAAE,WAAW,CAAC,WAAW;IACpC,UAAU,EAAE,WAAW,CAAC,gBAAgB;IACxC,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM;IACjB,WAAW,EAAE,QAAQ;CACtB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IACxB,WAAW,EAAE,WAAW,CAAC,WAAW;IACpC,UAAU,EAAE,WAAW,CAAC,gBAAgB;IACxC,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM;IACjB,WAAW,EAAE,QAAQ;CACtB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CACjC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAA2B,EAAE,EAAE,CACnD,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC;IAC5B,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC;IACvC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7B,KAAK,CAAC,OAAO,CACX,OAAO,CAAC,OAAO,CAAC;QACd,YAAY,EAAE,GAAG,EAAE,CACjB,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,iSAAiS,CACxT;QACH,YAAY,EAAE,GAAG,EAAE,CACjB,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,6MAA6M,CACpO;KACJ,CAAC,CACH,CACF,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "traits",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -334,14 +334,9 @@ simultaneous installations in the same worktree. During development, use
334
334
  `node traits/bin.ts` with a Node version supporting native TypeScript execution;
335
335
  pass server flags after the filename.
336
336
 
337
- Configuration and providers initialize at server startup. If setup fails, the
338
- connection stays alive with `traits_configuration_error` instead of the normal
339
- tools. Call it for the original error diagnostics, help the user fix the
340
- reported error, then restart the Traits MCP server. Diagnostics include the full
341
- Effect cause and may contain sensitive values embedded in errors. Never ask for
342
- credentials in chat. Expected tool failures use MCP error results; unexpected
343
- runtime defects receive a generic internal error rather than implementation
344
- details.
337
+ Surface tool failures; never treat a failed operation as a successful save or
338
+ review. Error diagnostics may contain sensitive information. Never ask for
339
+ credentials in chat.
345
340
 
346
341
  Stored trait parsing failures return `TraitParseError` with the file path,
347
342
  original diagnostic, and migration guidance. Update all stored traits to the
@@ -1,11 +1,20 @@
1
1
  import { Cause, Effect, Layer, Schema as S } from "effect"
2
2
  import { McpServer, Tool, Toolkit } from "effect/ai"
3
3
 
4
+ import { CheckTraits } from "./CheckTraits.ts"
5
+ import { DeriveTrait } from "./DeriveTrait.ts"
6
+
4
7
  const toolkit = Toolkit.make(
5
- Tool.make("traits_configuration_error", {
6
- description:
7
- "Traits failed to initialize. Call this tool to learn where configuration failed. Help the user fix setup, then restart the Traits MCP server before using Traits. Never ask the user to paste credentials into chat.",
8
- parameters: Tool.EmptyParams,
8
+ Tool.make("derive_trait", {
9
+ description: DeriveTrait.description,
10
+ parameters: DeriveTrait.parametersSchema,
11
+ success: S.Never,
12
+ failure: S.String,
13
+ failureMode: "return"
14
+ }).annotate(Tool.Readonly, true),
15
+ Tool.make("check_traits", {
16
+ description: CheckTraits.description,
17
+ parameters: CheckTraits.parametersSchema,
9
18
  success: S.Never,
10
19
  failure: S.String,
11
20
  failureMode: "return"
@@ -18,9 +27,13 @@ export const layer = (cause: Cause.Cause<unknown>) =>
18
27
  : McpServer.toolkit(toolkit).pipe(
19
28
  Layer.provide(
20
29
  toolkit.toLayer({
21
- traits_configuration_error: () =>
30
+ derive_trait: () =>
31
+ Effect.fail(
32
+ `${Cause.pretty(cause)}\n\nSurface this configuration failure to the user. Fix the reported error, then restart the Traits MCP server and retry the same trait derivation with the identical arguments. No trait was saved; keep the proposal pending until the error is resolved. Do not paste credentials into chat.`
33
+ ),
34
+ check_traits: () =>
22
35
  Effect.fail(
23
- `${Cause.pretty(cause)}\n\nFix the reported error, then restart the Traits MCP server and retry. Do not paste credentials into chat.`
36
+ `${Cause.pretty(cause)}\n\nSurface this configuration failure to the user. Fix the reported error, then restart the Traits MCP server and retry the same check. No trait review was performed. Do not paste credentials into chat.`
24
37
  )
25
38
  })
26
39
  )