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 +1 -1
- package/dist/test/TraitsInitialization.test.js +13 -16
- package/dist/test/TraitsInitialization.test.js.map +1 -1
- package/dist/toolkit/ConfigurationError.d.ts.map +1 -1
- package/dist/toolkit/ConfigurationError.js +13 -4
- package/dist/toolkit/ConfigurationError.js.map +1 -1
- package/package.json +1 -1
- package/skills/traits/SKILL.md +3 -8
- package/toolkit/ConfigurationError.ts +19 -6
package/dist/package.json
CHANGED
|
@@ -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:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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 =
|
|
102
|
-
?
|
|
103
|
-
|
|
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":"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
|
|
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;
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
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,
|
|
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
package/skills/traits/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
338
|
-
|
|
339
|
-
|
|
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("
|
|
6
|
-
description:
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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\
|
|
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
|
)
|