@sentry/dotagents 0.3.0 → 0.4.0
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/README.md +73 -15
- package/dist/agents/definitions/claude.d.ts +4 -0
- package/dist/agents/definitions/claude.d.ts.map +1 -0
- package/dist/agents/definitions/claude.js +28 -0
- package/dist/agents/definitions/claude.js.map +1 -0
- package/dist/agents/definitions/codex.d.ts +4 -0
- package/dist/agents/definitions/codex.d.ts.map +1 -0
- package/dist/agents/definitions/codex.js +21 -0
- package/dist/agents/definitions/codex.js.map +1 -0
- package/dist/agents/definitions/cursor.d.ts +4 -0
- package/dist/agents/definitions/cursor.d.ts.map +1 -0
- package/dist/agents/definitions/cursor.js +45 -0
- package/dist/agents/definitions/cursor.js.map +1 -0
- package/dist/agents/definitions/helpers.d.ts +14 -0
- package/dist/agents/definitions/helpers.d.ts.map +1 -0
- package/dist/agents/definitions/helpers.js +39 -0
- package/dist/agents/definitions/helpers.js.map +1 -0
- package/dist/agents/definitions/opencode.d.ts +4 -0
- package/dist/agents/definitions/opencode.d.ts.map +1 -0
- package/dist/agents/definitions/opencode.js +33 -0
- package/dist/agents/definitions/opencode.js.map +1 -0
- package/dist/agents/definitions/vscode.d.ts +4 -0
- package/dist/agents/definitions/vscode.d.ts.map +1 -0
- package/dist/agents/definitions/vscode.js +31 -0
- package/dist/agents/definitions/vscode.js.map +1 -0
- package/dist/agents/errors.d.ts +9 -0
- package/dist/agents/errors.d.ts.map +1 -0
- package/dist/agents/errors.js +14 -0
- package/dist/agents/errors.js.map +1 -0
- package/dist/agents/hook-writer.d.ts +26 -0
- package/dist/agents/hook-writer.d.ts.map +1 -0
- package/dist/agents/hook-writer.js +105 -0
- package/dist/agents/hook-writer.js.map +1 -0
- package/dist/agents/hook-writer.test.d.ts +2 -0
- package/dist/agents/hook-writer.test.d.ts.map +1 -0
- package/dist/agents/hook-writer.test.js +155 -0
- package/dist/agents/hook-writer.test.js.map +1 -0
- package/dist/agents/index.d.ts +6 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +5 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/mcp-writer.d.ts +21 -0
- package/dist/agents/mcp-writer.d.ts.map +1 -0
- package/dist/agents/mcp-writer.js +115 -0
- package/dist/agents/mcp-writer.js.map +1 -0
- package/dist/agents/mcp-writer.test.d.ts +2 -0
- package/dist/agents/mcp-writer.test.d.ts.map +1 -0
- package/dist/agents/mcp-writer.test.js +146 -0
- package/dist/agents/mcp-writer.test.js.map +1 -0
- package/dist/agents/registry.d.ts +4 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +14 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/registry.test.d.ts +2 -0
- package/dist/agents/registry.test.d.ts.map +1 -0
- package/dist/agents/registry.test.js +144 -0
- package/dist/agents/registry.test.js.map +1 -0
- package/dist/agents/types.d.ts +88 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +6 -2
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +29 -9
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/init.test.js +16 -0
- package/dist/cli/commands/init.test.js.map +1 -1
- package/dist/cli/commands/install.d.ts +4 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +83 -69
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/install.test.js +44 -0
- package/dist/cli/commands/install.test.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +3 -1
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +61 -3
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/sync.test.js +35 -0
- package/dist/cli/commands/sync.test.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +4 -1
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +7 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/loader.test.js +21 -0
- package/dist/config/loader.test.js.map +1 -1
- package/dist/config/schema.d.ts +63 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +39 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/schema.test.js +156 -0
- package/dist/config/schema.test.js.map +1 -1
- package/dist/config/writer.d.ts +1 -1
- package/dist/config/writer.d.ts.map +1 -1
- package/dist/config/writer.js +7 -2
- package/dist/config/writer.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/trust/index.d.ts +2 -0
- package/dist/trust/index.d.ts.map +1 -0
- package/dist/trust/index.js +2 -0
- package/dist/trust/index.js.map +1 -0
- package/dist/trust/validator.d.ts +25 -0
- package/dist/trust/validator.d.ts.map +1 -0
- package/dist/trust/validator.js +86 -0
- package/dist/trust/validator.js.map +1 -0
- package/dist/trust/validator.test.d.ts +2 -0
- package/dist/trust/validator.test.d.ts.map +1 -0
- package/dist/trust/validator.test.js +145 -0
- package/dist/trust/validator.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { getAgent, allAgentIds } from "./registry.js";
|
|
3
|
+
const STDIO_SERVER = {
|
|
4
|
+
name: "github",
|
|
5
|
+
command: "npx",
|
|
6
|
+
args: ["-y", "@modelcontextprotocol/server-github"],
|
|
7
|
+
env: ["GITHUB_TOKEN"],
|
|
8
|
+
};
|
|
9
|
+
const HTTP_SERVER = {
|
|
10
|
+
name: "remote-api",
|
|
11
|
+
url: "https://mcp.example.com/sse",
|
|
12
|
+
headers: { Authorization: "Bearer tok" },
|
|
13
|
+
};
|
|
14
|
+
const STDIO_NO_ENV = {
|
|
15
|
+
name: "simple",
|
|
16
|
+
command: "mcp-server",
|
|
17
|
+
args: [],
|
|
18
|
+
};
|
|
19
|
+
describe("allAgentIds", () => {
|
|
20
|
+
it("returns all 5 agents", () => {
|
|
21
|
+
const ids = allAgentIds();
|
|
22
|
+
expect(ids).toContain("claude");
|
|
23
|
+
expect(ids).toContain("cursor");
|
|
24
|
+
expect(ids).toContain("codex");
|
|
25
|
+
expect(ids).toContain("vscode");
|
|
26
|
+
expect(ids).toContain("opencode");
|
|
27
|
+
expect(ids).toHaveLength(5);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe("getAgent", () => {
|
|
31
|
+
it("returns undefined for unknown agent", () => {
|
|
32
|
+
expect(getAgent("unknown")).toBeUndefined();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe("claude serializer", () => {
|
|
36
|
+
const agent = getAgent("claude");
|
|
37
|
+
it("serializes stdio server", () => {
|
|
38
|
+
const [name, config] = agent.serializeServer(STDIO_SERVER);
|
|
39
|
+
expect(name).toBe("github");
|
|
40
|
+
expect(config).toEqual({
|
|
41
|
+
command: "npx",
|
|
42
|
+
args: ["-y", "@modelcontextprotocol/server-github"],
|
|
43
|
+
env: { GITHUB_TOKEN: "${GITHUB_TOKEN}" },
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
it("serializes http server", () => {
|
|
47
|
+
const [name, config] = agent.serializeServer(HTTP_SERVER);
|
|
48
|
+
expect(name).toBe("remote-api");
|
|
49
|
+
expect(config).toEqual({
|
|
50
|
+
url: "https://mcp.example.com/sse",
|
|
51
|
+
headers: { Authorization: "Bearer tok" },
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
it("omits env when empty", () => {
|
|
55
|
+
const [, config] = agent.serializeServer(STDIO_NO_ENV);
|
|
56
|
+
expect(config).toEqual({ command: "mcp-server", args: [] });
|
|
57
|
+
expect(config).not.toHaveProperty("env");
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe("cursor serializer", () => {
|
|
61
|
+
it("produces same shape as claude", () => {
|
|
62
|
+
const claude = getAgent("claude");
|
|
63
|
+
const cursor = getAgent("cursor");
|
|
64
|
+
expect(cursor.serializeServer(STDIO_SERVER)).toEqual(claude.serializeServer(STDIO_SERVER));
|
|
65
|
+
expect(cursor.serializeServer(HTTP_SERVER)).toEqual(claude.serializeServer(HTTP_SERVER));
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
describe("codex serializer", () => {
|
|
69
|
+
const agent = getAgent("codex");
|
|
70
|
+
it("serializes stdio server", () => {
|
|
71
|
+
const [name, config] = agent.serializeServer(STDIO_SERVER);
|
|
72
|
+
expect(name).toBe("github");
|
|
73
|
+
expect(config).toEqual({
|
|
74
|
+
command: "npx",
|
|
75
|
+
args: ["-y", "@modelcontextprotocol/server-github"],
|
|
76
|
+
env: { GITHUB_TOKEN: "${GITHUB_TOKEN}" },
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
it("has toml format and shared flag", () => {
|
|
80
|
+
expect(agent.mcp.format).toBe("toml");
|
|
81
|
+
expect(agent.mcp.shared).toBe(true);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
describe("vscode serializer", () => {
|
|
85
|
+
const agent = getAgent("vscode");
|
|
86
|
+
it("serializes stdio server with type and input refs", () => {
|
|
87
|
+
const [name, config] = agent.serializeServer(STDIO_SERVER);
|
|
88
|
+
expect(name).toBe("github");
|
|
89
|
+
expect(config).toEqual({
|
|
90
|
+
type: "stdio",
|
|
91
|
+
command: "npx",
|
|
92
|
+
args: ["-y", "@modelcontextprotocol/server-github"],
|
|
93
|
+
env: { GITHUB_TOKEN: "${input:GITHUB_TOKEN}" },
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
it("serializes http server with sse type", () => {
|
|
97
|
+
const [name, config] = agent.serializeServer(HTTP_SERVER);
|
|
98
|
+
expect(name).toBe("remote-api");
|
|
99
|
+
expect(config).toEqual({
|
|
100
|
+
type: "sse",
|
|
101
|
+
url: "https://mcp.example.com/sse",
|
|
102
|
+
headers: { Authorization: "Bearer tok" },
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
it("omits env when empty", () => {
|
|
106
|
+
const [, config] = agent.serializeServer(STDIO_NO_ENV);
|
|
107
|
+
expect(config).toEqual({ type: "stdio", command: "mcp-server", args: [] });
|
|
108
|
+
expect(config).not.toHaveProperty("env");
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
describe("opencode serializer", () => {
|
|
112
|
+
const agent = getAgent("opencode");
|
|
113
|
+
it("serializes stdio server as local type with merged command", () => {
|
|
114
|
+
const [name, config] = agent.serializeServer(STDIO_SERVER);
|
|
115
|
+
expect(name).toBe("github");
|
|
116
|
+
expect(config).toEqual({
|
|
117
|
+
type: "local",
|
|
118
|
+
command: ["npx", "-y", "@modelcontextprotocol/server-github"],
|
|
119
|
+
environment: { GITHUB_TOKEN: "${GITHUB_TOKEN}" },
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
it("serializes http server as remote type", () => {
|
|
123
|
+
const [name, config] = agent.serializeServer(HTTP_SERVER);
|
|
124
|
+
expect(name).toBe("remote-api");
|
|
125
|
+
expect(config).toEqual({
|
|
126
|
+
type: "remote",
|
|
127
|
+
url: "https://mcp.example.com/sse",
|
|
128
|
+
headers: { Authorization: "Bearer tok" },
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
it("omits environment when no env vars", () => {
|
|
132
|
+
const [, config] = agent.serializeServer(STDIO_NO_ENV);
|
|
133
|
+
expect(config).toEqual({
|
|
134
|
+
type: "local",
|
|
135
|
+
command: ["mcp-server"],
|
|
136
|
+
});
|
|
137
|
+
expect(config).not.toHaveProperty("environment");
|
|
138
|
+
});
|
|
139
|
+
it("shares config and uses claude skillsParentDir", () => {
|
|
140
|
+
expect(agent.mcp.shared).toBe(true);
|
|
141
|
+
expect(agent.skillsParentDir).toBe(".claude");
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
//# sourceMappingURL=registry.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../src/agents/registry.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { HookEvent } from "../config/schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* Universal MCP server declaration from agents.toml [[mcp]] sections.
|
|
4
|
+
* Represents either a stdio or HTTP server.
|
|
5
|
+
*/
|
|
6
|
+
export interface McpDeclaration {
|
|
7
|
+
name: string;
|
|
8
|
+
/** For stdio servers */
|
|
9
|
+
command?: string;
|
|
10
|
+
args?: string[];
|
|
11
|
+
/** For HTTP servers */
|
|
12
|
+
url?: string;
|
|
13
|
+
headers?: Record<string, string>;
|
|
14
|
+
/** Environment variable names (values come from the user's env) */
|
|
15
|
+
env?: string[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Describes how an agent tool writes its MCP config file.
|
|
19
|
+
*/
|
|
20
|
+
export interface McpConfigSpec {
|
|
21
|
+
/** Path to the config file, relative to project root */
|
|
22
|
+
filePath: string;
|
|
23
|
+
/** Top-level key in the config file under which servers live */
|
|
24
|
+
rootKey: string;
|
|
25
|
+
/** File format */
|
|
26
|
+
format: "json" | "toml";
|
|
27
|
+
/**
|
|
28
|
+
* If true, the config file is shared with other content and must be
|
|
29
|
+
* read-merge-written. If false, dotagents owns the entire file.
|
|
30
|
+
*/
|
|
31
|
+
shared: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Transforms a universal McpDeclaration into the agent-specific shape
|
|
35
|
+
* for its config file. Returns [serverName, serverConfig] tuple.
|
|
36
|
+
*/
|
|
37
|
+
export type McpSerializer = (server: McpDeclaration) => [string, unknown];
|
|
38
|
+
/**
|
|
39
|
+
* Universal hook declaration from agents.toml [[hooks]] sections.
|
|
40
|
+
*/
|
|
41
|
+
export interface HookDeclaration {
|
|
42
|
+
event: HookEvent;
|
|
43
|
+
matcher?: string;
|
|
44
|
+
command: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Describes how an agent writes its hook config file.
|
|
48
|
+
*/
|
|
49
|
+
export interface HookConfigSpec {
|
|
50
|
+
/** Path to the config file, relative to project root */
|
|
51
|
+
filePath: string;
|
|
52
|
+
/** Top-level key under which hooks live */
|
|
53
|
+
rootKey: string;
|
|
54
|
+
/** File format */
|
|
55
|
+
format: "json";
|
|
56
|
+
/**
|
|
57
|
+
* If true, the config file is shared with other content and must be
|
|
58
|
+
* read-merge-written. If false, dotagents owns the entire file.
|
|
59
|
+
*/
|
|
60
|
+
shared: boolean;
|
|
61
|
+
/** Extra top-level fields to include (e.g. Cursor's {version: 1}) */
|
|
62
|
+
extraFields?: Record<string, unknown>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Transforms universal HookDeclarations into the agent-specific shape.
|
|
66
|
+
* Returns the full value for the rootKey.
|
|
67
|
+
*/
|
|
68
|
+
export type HookSerializer = (hooks: HookDeclaration[]) => unknown;
|
|
69
|
+
/**
|
|
70
|
+
* Definition of an agent tool that dotagents manages.
|
|
71
|
+
*/
|
|
72
|
+
export interface AgentDefinition {
|
|
73
|
+
id: string;
|
|
74
|
+
displayName: string;
|
|
75
|
+
/** Directory that holds agent-specific config (e.g. ".claude") */
|
|
76
|
+
configDir: string;
|
|
77
|
+
/** Parent directory for the skills/ symlink */
|
|
78
|
+
skillsParentDir: string;
|
|
79
|
+
/** MCP config file specification */
|
|
80
|
+
mcp: McpConfigSpec;
|
|
81
|
+
/** Transforms universal MCP declaration to agent-specific format */
|
|
82
|
+
serializeServer: McpSerializer;
|
|
83
|
+
/** Hook config file specification (undefined if agent doesn't support hooks) */
|
|
84
|
+
hooks?: HookConfigSpec;
|
|
85
|
+
/** Transforms universal hook declarations to agent-specific format */
|
|
86
|
+
serializeHooks: HookSerializer;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,GAAG,EAAE,aAAa,CAAC;IACnB,oEAAoE;IACpE,eAAe,EAAE,aAAa,CAAC;IAC/B,gFAAgF;IAChF,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,sEAAsE;IACtE,cAAc,EAAE,cAAc,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAWA,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAkG9D;AAED,wBAA8B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC/D"}
|
package/dist/cli/commands/add.js
CHANGED
|
@@ -6,6 +6,7 @@ import { addSkillToConfig } from "../../config/writer.js";
|
|
|
6
6
|
import { parseSource, resolveSkill } from "../../skills/resolver.js";
|
|
7
7
|
import { discoverAllSkills } from "../../skills/discovery.js";
|
|
8
8
|
import { ensureCached } from "../../sources/cache.js";
|
|
9
|
+
import { validateTrustedSource, TrustError } from "../../trust/index.js";
|
|
9
10
|
import { runInstall } from "./install.js";
|
|
10
11
|
export class AddError extends Error {
|
|
11
12
|
constructor(message) {
|
|
@@ -16,6 +17,10 @@ export class AddError extends Error {
|
|
|
16
17
|
export async function runAdd(opts) {
|
|
17
18
|
const { projectRoot, specifier, ref, name: nameOverride } = opts;
|
|
18
19
|
const configPath = join(projectRoot, "agents.toml");
|
|
20
|
+
// Load config early so we can check trust before any network work
|
|
21
|
+
const config = await loadConfig(configPath);
|
|
22
|
+
// Validate trust before resolution
|
|
23
|
+
validateTrustedSource(specifier, config.trust);
|
|
19
24
|
// Parse the specifier
|
|
20
25
|
const parsed = parseSource(specifier);
|
|
21
26
|
// Determine ref (flag overrides inline @ref)
|
|
@@ -67,7 +72,6 @@ export async function runAdd(opts) {
|
|
|
67
72
|
}
|
|
68
73
|
}
|
|
69
74
|
// Check if skill already exists in config
|
|
70
|
-
const config = await loadConfig(configPath);
|
|
71
75
|
if (config.skills.some((s) => s.name === skillName)) {
|
|
72
76
|
throw new AddError(`Skill "${skillName}" already exists in agents.toml. Remove it first or use 'dotagents update'.`);
|
|
73
77
|
}
|
|
@@ -116,7 +120,7 @@ export default async function add(args) {
|
|
|
116
120
|
console.log(chalk.green(`Added skill: ${name}`));
|
|
117
121
|
}
|
|
118
122
|
catch (err) {
|
|
119
|
-
if (err instanceof AddError) {
|
|
123
|
+
if (err instanceof AddError || err instanceof TrustError) {
|
|
120
124
|
console.error(chalk.red(err.message));
|
|
121
125
|
process.exitCode = 1;
|
|
122
126
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD9D;AA8BD,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAA8B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhE"}
|
|
@@ -6,16 +6,25 @@ import { generateDefaultConfig } from "../../config/writer.js";
|
|
|
6
6
|
import { updateAgentsGitignore } from "../../gitignore/writer.js";
|
|
7
7
|
import { ensureSkillsSymlink } from "../../symlinks/manager.js";
|
|
8
8
|
import { loadConfig } from "../../config/loader.js";
|
|
9
|
+
import { getAgent, allAgentIds } from "../../agents/registry.js";
|
|
9
10
|
import { parseArgs } from "node:util";
|
|
10
11
|
export async function runInit(opts) {
|
|
11
|
-
const { projectRoot, force } = opts;
|
|
12
|
+
const { projectRoot, force, agents } = opts;
|
|
12
13
|
const configPath = join(projectRoot, "agents.toml");
|
|
13
14
|
const agentsDir = join(projectRoot, ".agents");
|
|
14
15
|
const skillsDir = join(agentsDir, "skills");
|
|
15
16
|
if (existsSync(configPath) && !force) {
|
|
16
17
|
throw new InitError("agents.toml already exists. Use --force to overwrite.");
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
// Validate agent IDs before writing config
|
|
20
|
+
const validIds = allAgentIds();
|
|
21
|
+
if (agents) {
|
|
22
|
+
const unknown = agents.filter((id) => !validIds.includes(id));
|
|
23
|
+
if (unknown.length > 0) {
|
|
24
|
+
throw new InitError(`Unknown agent(s): ${unknown.join(", ")}. Valid agents: ${validIds.join(", ")}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
await writeFile(configPath, generateDefaultConfig(agents), "utf-8");
|
|
19
28
|
await mkdir(skillsDir, { recursive: true });
|
|
20
29
|
// Set up gitignore and symlinks based on config
|
|
21
30
|
const config = await loadConfig(configPath);
|
|
@@ -27,28 +36,35 @@ export async function runInit(opts) {
|
|
|
27
36
|
const result = await ensureSkillsSymlink(agentsDir, targetDir);
|
|
28
37
|
symlinkResults.push({ target, ...result });
|
|
29
38
|
}
|
|
39
|
+
// Create agent-specific symlinks (dedup with legacy targets and across agents)
|
|
40
|
+
const seenParentDirs = new Set(targets);
|
|
41
|
+
for (const agentId of config.agents) {
|
|
42
|
+
const agent = getAgent(agentId);
|
|
43
|
+
if (!agent)
|
|
44
|
+
continue;
|
|
45
|
+
if (seenParentDirs.has(agent.skillsParentDir))
|
|
46
|
+
continue;
|
|
47
|
+
seenParentDirs.add(agent.skillsParentDir);
|
|
48
|
+
const targetDir = join(projectRoot, agent.skillsParentDir);
|
|
49
|
+
const result = await ensureSkillsSymlink(agentsDir, targetDir);
|
|
50
|
+
symlinkResults.push({ target: agent.skillsParentDir, ...result });
|
|
51
|
+
}
|
|
30
52
|
return printSummary(config.gitignore, symlinkResults);
|
|
31
53
|
}
|
|
32
54
|
function printSummary(gitignore, symlinks) {
|
|
33
|
-
// eslint-disable-next-line no-console
|
|
34
55
|
console.log(chalk.green("Created agents.toml"));
|
|
35
|
-
// eslint-disable-next-line no-console
|
|
36
56
|
console.log(chalk.green("Created .agents/skills/"));
|
|
37
57
|
if (gitignore) {
|
|
38
|
-
// eslint-disable-next-line no-console
|
|
39
58
|
console.log(chalk.green("Created .agents/.gitignore"));
|
|
40
59
|
}
|
|
41
60
|
for (const s of symlinks) {
|
|
42
61
|
if (s.created) {
|
|
43
|
-
// eslint-disable-next-line no-console
|
|
44
62
|
console.log(chalk.green(`Created symlink: ${s.target}/skills/ → .agents/skills/`));
|
|
45
63
|
}
|
|
46
64
|
if (s.migrated.length > 0) {
|
|
47
|
-
// eslint-disable-next-line no-console
|
|
48
65
|
console.log(chalk.yellow(`Migrated ${s.migrated.length} skill(s) from ${s.target}/skills/ to .agents/skills/`));
|
|
49
66
|
}
|
|
50
67
|
}
|
|
51
|
-
// eslint-disable-next-line no-console
|
|
52
68
|
console.log(`\n${chalk.bold("Next steps:")}\n 1. Add skills: dotagents add @anthropics/pdf-processing\n 2. Install: dotagents install`);
|
|
53
69
|
}
|
|
54
70
|
export class InitError extends Error {
|
|
@@ -62,12 +78,16 @@ export default async function init(args) {
|
|
|
62
78
|
args,
|
|
63
79
|
options: {
|
|
64
80
|
force: { type: "boolean" },
|
|
81
|
+
agents: { type: "string" },
|
|
65
82
|
},
|
|
66
83
|
strict: true,
|
|
67
84
|
});
|
|
68
85
|
const { resolve } = await import("node:path");
|
|
86
|
+
const agents = values["agents"]
|
|
87
|
+
? values["agents"].split(",").map((s) => s.trim()).filter(Boolean)
|
|
88
|
+
: undefined;
|
|
69
89
|
try {
|
|
70
|
-
await runInit({ projectRoot: resolve("."), force: values["force"] });
|
|
90
|
+
await runInit({ projectRoot: resolve("."), force: values["force"], agents });
|
|
71
91
|
}
|
|
72
92
|
catch (err) {
|
|
73
93
|
if (err instanceof InitError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,5 +67,21 @@ describe("runInit", () => {
|
|
|
67
67
|
const entries = await readdir(join(dir, ".agents", "skills"));
|
|
68
68
|
expect(entries).toContain("my-skill");
|
|
69
69
|
});
|
|
70
|
+
it("writes agents field when --agents is provided", async () => {
|
|
71
|
+
await runInit({ projectRoot: dir, agents: ["claude", "cursor"] });
|
|
72
|
+
const config = await loadConfig(join(dir, "agents.toml"));
|
|
73
|
+
expect(config.agents).toEqual(["claude", "cursor"]);
|
|
74
|
+
});
|
|
75
|
+
it("creates agent-specific symlinks when --agents is provided", async () => {
|
|
76
|
+
await runInit({ projectRoot: dir, agents: ["claude", "cursor"] });
|
|
77
|
+
const claudeStat = await lstat(join(dir, ".claude", "skills"));
|
|
78
|
+
expect(claudeStat.isSymbolicLink()).toBe(true);
|
|
79
|
+
const cursorStat = await lstat(join(dir, ".cursor", "skills"));
|
|
80
|
+
expect(cursorStat.isSymbolicLink()).toBe(true);
|
|
81
|
+
});
|
|
82
|
+
it("rejects unknown agent IDs", async () => {
|
|
83
|
+
await expect(runInit({ projectRoot: dir, agents: ["claude", "emacs"] })).rejects.toThrow(InitError);
|
|
84
|
+
await expect(runInit({ projectRoot: dir, agents: ["emacs"] })).rejects.toThrow(/Unknown agent/);
|
|
85
|
+
});
|
|
70
86
|
});
|
|
71
87
|
//# sourceMappingURL=init.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../../src/cli/commands/init.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../../src/cli/commands/init.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@ export interface InstallOptions {
|
|
|
9
9
|
export interface InstallResult {
|
|
10
10
|
installed: string[];
|
|
11
11
|
skipped: string[];
|
|
12
|
+
hookWarnings: {
|
|
13
|
+
agent: string;
|
|
14
|
+
message: string;
|
|
15
|
+
}[];
|
|
12
16
|
}
|
|
13
17
|
export declare function runInstall(opts: InstallOptions): Promise<InstallResult>;
|
|
14
18
|
export default function install(args: string[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAoBA,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA8H7E;AAED,wBAA8B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCnE"}
|