@mycelish/core 0.1.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/LICENSE +21 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/schema.d.ts +146 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +68 -0
- package/dist/schema.js.map +1 -0
- package/dist/tools/_registry.d.ts +10 -0
- package/dist/tools/_registry.d.ts.map +1 -0
- package/dist/tools/_registry.js +59 -0
- package/dist/tools/_registry.js.map +1 -0
- package/dist/tools/_registry.test.d.ts +2 -0
- package/dist/tools/_registry.test.d.ts.map +1 -0
- package/dist/tools/_registry.test.js +81 -0
- package/dist/tools/_registry.test.js.map +1 -0
- package/dist/tools/_types.d.ts +56 -0
- package/dist/tools/_types.d.ts.map +1 -0
- package/dist/tools/_types.js +5 -0
- package/dist/tools/_types.js.map +1 -0
- package/dist/tools/aider.d.ts +3 -0
- package/dist/tools/aider.d.ts.map +1 -0
- package/dist/tools/aider.js +24 -0
- package/dist/tools/aider.js.map +1 -0
- package/dist/tools/antigravity.d.ts +3 -0
- package/dist/tools/antigravity.d.ts.map +1 -0
- package/dist/tools/antigravity.js +24 -0
- package/dist/tools/antigravity.js.map +1 -0
- package/dist/tools/claude-code.d.ts +3 -0
- package/dist/tools/claude-code.d.ts.map +1 -0
- package/dist/tools/claude-code.js +24 -0
- package/dist/tools/claude-code.js.map +1 -0
- package/dist/tools/codex.d.ts +3 -0
- package/dist/tools/codex.d.ts.map +1 -0
- package/dist/tools/codex.js +24 -0
- package/dist/tools/codex.js.map +1 -0
- package/dist/tools/cursor.d.ts +3 -0
- package/dist/tools/cursor.d.ts.map +1 -0
- package/dist/tools/cursor.js +24 -0
- package/dist/tools/cursor.js.map +1 -0
- package/dist/tools/gemini-cli.d.ts +3 -0
- package/dist/tools/gemini-cli.d.ts.map +1 -0
- package/dist/tools/gemini-cli.js +24 -0
- package/dist/tools/gemini-cli.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/openclaw.d.ts +3 -0
- package/dist/tools/openclaw.d.ts.map +1 -0
- package/dist/tools/openclaw.js +24 -0
- package/dist/tools/openclaw.js.map +1 -0
- package/dist/tools/opencode.d.ts +3 -0
- package/dist/tools/opencode.d.ts.map +1 -0
- package/dist/tools/opencode.js +24 -0
- package/dist/tools/opencode.js.map +1 -0
- package/dist/tools/vscode.d.ts +3 -0
- package/dist/tools/vscode.d.ts.map +1 -0
- package/dist/tools/vscode.js +28 -0
- package/dist/tools/vscode.js.map +1 -0
- package/dist/types.d.ts +305 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +48 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +125 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.test.d.ts +5 -0
- package/dist/utils.test.d.ts.map +1 -0
- package/dist/utils.test.js +190 -0
- package/dist/utils.test.js.map +1 -0
- package/package.json +46 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Mycelium Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mycelish/core
|
|
3
|
+
* Core types, schemas, and utilities for the Mycelium orchestration system
|
|
4
|
+
*/
|
|
5
|
+
export * from "./types.js";
|
|
6
|
+
export * from "./schema.js";
|
|
7
|
+
export * from "./utils.js";
|
|
8
|
+
export * from "./tools/index.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mycelish/core
|
|
3
|
+
* Core types, schemas, and utilities for the Mycelium orchestration system
|
|
4
|
+
*/
|
|
5
|
+
// Types
|
|
6
|
+
export * from "./types.js";
|
|
7
|
+
// Schemas
|
|
8
|
+
export * from "./schema.js";
|
|
9
|
+
// Utilities
|
|
10
|
+
export * from "./utils.js";
|
|
11
|
+
// Tool Registry
|
|
12
|
+
export * from "./tools/index.js";
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,UAAU;AACV,cAAc,aAAa,CAAC;AAE5B,YAAY;AACZ,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,cAAc,kBAAkB,CAAC"}
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for Mycelium configuration validation
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
export declare const toolIdSchema: z.ZodEnum<{
|
|
6
|
+
[x: string]: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const mcpServerConfigSchema: z.ZodObject<{
|
|
9
|
+
command: z.ZodString;
|
|
10
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
11
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
12
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
13
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
14
|
+
[x: string]: string;
|
|
15
|
+
}>>>;
|
|
16
|
+
excludeTools: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
17
|
+
[x: string]: string;
|
|
18
|
+
}>>>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export declare const mcpsConfigSchema: z.ZodObject<{
|
|
21
|
+
mcps: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
22
|
+
command: z.ZodString;
|
|
23
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
24
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
25
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
26
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
27
|
+
[x: string]: string;
|
|
28
|
+
}>>>;
|
|
29
|
+
excludeTools: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
30
|
+
[x: string]: string;
|
|
31
|
+
}>>>;
|
|
32
|
+
}, z.core.$strip>>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export declare const skillManifestSchema: z.ZodObject<{
|
|
35
|
+
name: z.ZodString;
|
|
36
|
+
description: z.ZodOptional<z.ZodString>;
|
|
37
|
+
version: z.ZodOptional<z.ZodString>;
|
|
38
|
+
author: z.ZodOptional<z.ZodString>;
|
|
39
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
40
|
+
[x: string]: string;
|
|
41
|
+
}>>>;
|
|
42
|
+
excludeTools: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
43
|
+
[x: string]: string;
|
|
44
|
+
}>>>;
|
|
45
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export declare const memoryScopeSchema: z.ZodEnum<{
|
|
48
|
+
shared: "shared";
|
|
49
|
+
coding: "coding";
|
|
50
|
+
personal: "personal";
|
|
51
|
+
}>;
|
|
52
|
+
export declare const memoryScopeConfigSchema: z.ZodObject<{
|
|
53
|
+
syncTo: z.ZodArray<z.ZodEnum<{
|
|
54
|
+
[x: string]: string;
|
|
55
|
+
}>>;
|
|
56
|
+
excludeFrom: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
57
|
+
[x: string]: string;
|
|
58
|
+
}>>>;
|
|
59
|
+
path: z.ZodString;
|
|
60
|
+
files: z.ZodArray<z.ZodString>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
export declare const memoryConfigSchema: z.ZodObject<{
|
|
63
|
+
scopes: z.ZodRecord<z.ZodEnum<{
|
|
64
|
+
shared: "shared";
|
|
65
|
+
coding: "coding";
|
|
66
|
+
personal: "personal";
|
|
67
|
+
}>, z.ZodObject<{
|
|
68
|
+
syncTo: z.ZodArray<z.ZodEnum<{
|
|
69
|
+
[x: string]: string;
|
|
70
|
+
}>>;
|
|
71
|
+
excludeFrom: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
72
|
+
[x: string]: string;
|
|
73
|
+
}>>>;
|
|
74
|
+
path: z.ZodString;
|
|
75
|
+
files: z.ZodArray<z.ZodString>;
|
|
76
|
+
}, z.core.$strip>>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
export declare const manifestSchema: z.ZodObject<{
|
|
79
|
+
version: z.ZodString;
|
|
80
|
+
tools: z.ZodRecord<z.ZodEnum<{
|
|
81
|
+
[x: string]: string;
|
|
82
|
+
}>, z.ZodObject<{
|
|
83
|
+
enabled: z.ZodBoolean;
|
|
84
|
+
}, z.core.$strip>>;
|
|
85
|
+
memory: z.ZodObject<{
|
|
86
|
+
scopes: z.ZodRecord<z.ZodEnum<{
|
|
87
|
+
shared: "shared";
|
|
88
|
+
coding: "coding";
|
|
89
|
+
personal: "personal";
|
|
90
|
+
}>, z.ZodObject<{
|
|
91
|
+
syncTo: z.ZodArray<z.ZodEnum<{
|
|
92
|
+
[x: string]: string;
|
|
93
|
+
}>>;
|
|
94
|
+
excludeFrom: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
95
|
+
[x: string]: string;
|
|
96
|
+
}>>>;
|
|
97
|
+
path: z.ZodString;
|
|
98
|
+
files: z.ZodArray<z.ZodString>;
|
|
99
|
+
}, z.core.$strip>>;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
}, z.core.$strip>;
|
|
102
|
+
export declare const machineOverridesSchema: z.ZodObject<{
|
|
103
|
+
hostname: z.ZodString;
|
|
104
|
+
mcps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
105
|
+
command: z.ZodOptional<z.ZodString>;
|
|
106
|
+
args: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
107
|
+
env: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
108
|
+
enabled: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
|
|
109
|
+
tools: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
110
|
+
[x: string]: string;
|
|
111
|
+
}>>>>;
|
|
112
|
+
excludeTools: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
113
|
+
[x: string]: string;
|
|
114
|
+
}>>>>;
|
|
115
|
+
}, z.core.$strip>>>;
|
|
116
|
+
skills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
117
|
+
name: z.ZodOptional<z.ZodString>;
|
|
118
|
+
description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
119
|
+
version: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
120
|
+
author: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
121
|
+
tools: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
122
|
+
[x: string]: string;
|
|
123
|
+
}>>>>;
|
|
124
|
+
excludeTools: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
125
|
+
[x: string]: string;
|
|
126
|
+
}>>>>;
|
|
127
|
+
enabled: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
|
|
128
|
+
}, z.core.$strip>>>;
|
|
129
|
+
memory: z.ZodOptional<z.ZodObject<{
|
|
130
|
+
scopes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
131
|
+
shared: "shared";
|
|
132
|
+
coding: "coding";
|
|
133
|
+
personal: "personal";
|
|
134
|
+
}>, z.ZodObject<{
|
|
135
|
+
syncTo: z.ZodArray<z.ZodEnum<{
|
|
136
|
+
[x: string]: string;
|
|
137
|
+
}>>;
|
|
138
|
+
excludeFrom: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
139
|
+
[x: string]: string;
|
|
140
|
+
}>>>;
|
|
141
|
+
path: z.ZodString;
|
|
142
|
+
files: z.ZodArray<z.ZodString>;
|
|
143
|
+
}, z.core.$strip>>>;
|
|
144
|
+
}, z.core.$strip>>;
|
|
145
|
+
}, z.core.$strip>;
|
|
146
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,YAAY;;EAAyB,CAAC;AAMnD,eAAO,MAAM,qBAAqB;;;;;;;;;;;iBAOhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;iBAE3B,CAAC;AAMH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;iBAQ9B,CAAC;AAMH,eAAO,MAAM,iBAAiB;;;;EAA2C,CAAC;AAE1E,eAAO,MAAM,uBAAuB;;;;;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;iBAE7B,CAAC;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;iBASzB,CAAC;AAMH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKjC,CAAC"}
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for Mycelium configuration validation
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { TOOL_ID_VALUES } from "./tools/_registry.js";
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Tool Schemas
|
|
8
|
+
// ============================================================================
|
|
9
|
+
export const toolIdSchema = z.enum(TOOL_ID_VALUES);
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// MCP Schemas
|
|
12
|
+
// ============================================================================
|
|
13
|
+
export const mcpServerConfigSchema = z.object({
|
|
14
|
+
command: z.string(),
|
|
15
|
+
args: z.array(z.string()).optional(),
|
|
16
|
+
env: z.record(z.string(), z.string()).optional(),
|
|
17
|
+
enabled: z.boolean().optional().default(true),
|
|
18
|
+
tools: z.array(toolIdSchema).optional(),
|
|
19
|
+
excludeTools: z.array(toolIdSchema).optional(),
|
|
20
|
+
});
|
|
21
|
+
export const mcpsConfigSchema = z.object({
|
|
22
|
+
mcps: z.record(z.string(), mcpServerConfigSchema),
|
|
23
|
+
});
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// Skill Schemas
|
|
26
|
+
// ============================================================================
|
|
27
|
+
export const skillManifestSchema = z.object({
|
|
28
|
+
name: z.string(),
|
|
29
|
+
description: z.string().optional(),
|
|
30
|
+
version: z.string().optional(),
|
|
31
|
+
author: z.string().optional(),
|
|
32
|
+
tools: z.array(toolIdSchema).optional(),
|
|
33
|
+
excludeTools: z.array(toolIdSchema).optional(),
|
|
34
|
+
enabled: z.boolean().optional().default(true),
|
|
35
|
+
});
|
|
36
|
+
// ============================================================================
|
|
37
|
+
// Memory Schemas
|
|
38
|
+
// ============================================================================
|
|
39
|
+
export const memoryScopeSchema = z.enum(["shared", "coding", "personal"]);
|
|
40
|
+
export const memoryScopeConfigSchema = z.object({
|
|
41
|
+
syncTo: z.array(toolIdSchema),
|
|
42
|
+
excludeFrom: z.array(toolIdSchema).optional(),
|
|
43
|
+
path: z.string(),
|
|
44
|
+
files: z.array(z.string()),
|
|
45
|
+
});
|
|
46
|
+
export const memoryConfigSchema = z.object({
|
|
47
|
+
scopes: z.record(memoryScopeSchema, memoryScopeConfigSchema),
|
|
48
|
+
});
|
|
49
|
+
// ============================================================================
|
|
50
|
+
// Manifest Schemas
|
|
51
|
+
// ============================================================================
|
|
52
|
+
export const manifestSchema = z.object({
|
|
53
|
+
version: z.string(),
|
|
54
|
+
tools: z.record(toolIdSchema, z.object({
|
|
55
|
+
enabled: z.boolean(),
|
|
56
|
+
})),
|
|
57
|
+
memory: memoryConfigSchema,
|
|
58
|
+
});
|
|
59
|
+
// ============================================================================
|
|
60
|
+
// Machine Override Schemas
|
|
61
|
+
// ============================================================================
|
|
62
|
+
export const machineOverridesSchema = z.object({
|
|
63
|
+
hostname: z.string(),
|
|
64
|
+
mcps: z.record(z.string(), mcpServerConfigSchema.partial()).optional(),
|
|
65
|
+
skills: z.record(z.string(), skillManifestSchema.partial()).optional(),
|
|
66
|
+
memory: memoryConfigSchema.partial().optional(),
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ToolDescriptor, Capability, PathSpec } from "./_types.js";
|
|
2
|
+
export declare const TOOL_REGISTRY: Record<string, ToolDescriptor>;
|
|
3
|
+
export declare const ALL_TOOL_IDS: string[];
|
|
4
|
+
export declare const TOOL_ID_VALUES: [string, ...string[]];
|
|
5
|
+
export declare function resolvePath(pathSpec: PathSpec): string | null;
|
|
6
|
+
export declare function getDescriptor(id: string): ToolDescriptor;
|
|
7
|
+
export declare function toolsWithCapability(cap: Capability): ToolDescriptor[];
|
|
8
|
+
export declare function toolsForScope(scope: string): ToolDescriptor[];
|
|
9
|
+
export declare function validateRegistry(): string[];
|
|
10
|
+
//# sourceMappingURL=_registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_registry.d.ts","sourceRoot":"","sources":["../../src/tools/_registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AAYvF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAUxD,CAAC;AAEF,eAAO,MAAM,YAAY,UAA6B,CAAC;AACvD,eAAO,MAAM,cAAc,EAAmB,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAEpE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAM7D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAIxD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,CAErE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAE7D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAa3C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { expandPath } from "../utils.js";
|
|
2
|
+
import { claudeCode } from "./claude-code.js";
|
|
3
|
+
import { codex } from "./codex.js";
|
|
4
|
+
import { geminiCli } from "./gemini-cli.js";
|
|
5
|
+
import { opencode } from "./opencode.js";
|
|
6
|
+
import { openclaw } from "./openclaw.js";
|
|
7
|
+
import { aider } from "./aider.js";
|
|
8
|
+
import { cursor } from "./cursor.js";
|
|
9
|
+
import { vscode } from "./vscode.js";
|
|
10
|
+
import { antigravity } from "./antigravity.js";
|
|
11
|
+
export const TOOL_REGISTRY = {
|
|
12
|
+
[claudeCode.id]: claudeCode,
|
|
13
|
+
[codex.id]: codex,
|
|
14
|
+
[geminiCli.id]: geminiCli,
|
|
15
|
+
[opencode.id]: opencode,
|
|
16
|
+
[openclaw.id]: openclaw,
|
|
17
|
+
[aider.id]: aider,
|
|
18
|
+
[cursor.id]: cursor,
|
|
19
|
+
[vscode.id]: vscode,
|
|
20
|
+
[antigravity.id]: antigravity,
|
|
21
|
+
};
|
|
22
|
+
export const ALL_TOOL_IDS = Object.keys(TOOL_REGISTRY);
|
|
23
|
+
export const TOOL_ID_VALUES = ALL_TOOL_IDS;
|
|
24
|
+
export function resolvePath(pathSpec) {
|
|
25
|
+
if (pathSpec === null)
|
|
26
|
+
return null;
|
|
27
|
+
if (typeof pathSpec === "string")
|
|
28
|
+
return expandPath(pathSpec);
|
|
29
|
+
const platform = process.platform;
|
|
30
|
+
const p = pathSpec[platform] ?? pathSpec.linux;
|
|
31
|
+
return expandPath(p);
|
|
32
|
+
}
|
|
33
|
+
export function getDescriptor(id) {
|
|
34
|
+
const desc = TOOL_REGISTRY[id];
|
|
35
|
+
if (!desc)
|
|
36
|
+
throw new Error(`Unknown tool: ${id}`);
|
|
37
|
+
return desc;
|
|
38
|
+
}
|
|
39
|
+
export function toolsWithCapability(cap) {
|
|
40
|
+
return Object.values(TOOL_REGISTRY).filter(t => t.capabilities.includes(cap));
|
|
41
|
+
}
|
|
42
|
+
export function toolsForScope(scope) {
|
|
43
|
+
return Object.values(TOOL_REGISTRY).filter(t => t.scopes.includes(scope));
|
|
44
|
+
}
|
|
45
|
+
export function validateRegistry() {
|
|
46
|
+
const errors = [];
|
|
47
|
+
const memPaths = new Map();
|
|
48
|
+
for (const tool of Object.values(TOOL_REGISTRY)) {
|
|
49
|
+
const mem = resolvePath(tool.paths.globalMemory);
|
|
50
|
+
if (mem) {
|
|
51
|
+
if (memPaths.has(mem)) {
|
|
52
|
+
errors.push(`${tool.id} and ${memPaths.get(mem)} share globalMemory path: ${mem}`);
|
|
53
|
+
}
|
|
54
|
+
memPaths.set(mem, tool.id);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return errors;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=_registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_registry.js","sourceRoot":"","sources":["../../src/tools/_registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_registry.test.d.ts","sourceRoot":"","sources":["../../src/tools/_registry.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { TOOL_REGISTRY, ALL_TOOL_IDS, TOOL_ID_VALUES, resolvePath, getDescriptor, toolsWithCapability, toolsForScope, validateRegistry, } from "./_registry.js";
|
|
3
|
+
describe("Tool Registry", () => {
|
|
4
|
+
it("has 9 tools registered", () => {
|
|
5
|
+
expect(ALL_TOOL_IDS).toHaveLength(9);
|
|
6
|
+
});
|
|
7
|
+
it("contains all expected tool ids", () => {
|
|
8
|
+
const expected = [
|
|
9
|
+
"claude-code", "codex", "gemini-cli", "opencode",
|
|
10
|
+
"openclaw", "aider", "cursor", "vscode", "antigravity",
|
|
11
|
+
];
|
|
12
|
+
for (const id of expected) {
|
|
13
|
+
expect(TOOL_REGISTRY[id]).toBeDefined();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
it("TOOL_ID_VALUES is a non-empty tuple", () => {
|
|
17
|
+
expect(TOOL_ID_VALUES.length).toBeGreaterThan(0);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
describe("resolvePath", () => {
|
|
21
|
+
it("returns null for null", () => {
|
|
22
|
+
expect(resolvePath(null)).toBeNull();
|
|
23
|
+
});
|
|
24
|
+
it("expands ~ in string paths", () => {
|
|
25
|
+
const result = resolvePath("~/.claude.json");
|
|
26
|
+
expect(result).not.toContain("~");
|
|
27
|
+
expect(result).toContain(".claude.json");
|
|
28
|
+
});
|
|
29
|
+
it("resolves PlatformPaths for current platform", () => {
|
|
30
|
+
const spec = {
|
|
31
|
+
darwin: "~/Library/Application Support/Code/User/mcp.json",
|
|
32
|
+
linux: "~/.config/Code/User/mcp.json",
|
|
33
|
+
win32: "%APPDATA%/Code/User/mcp.json",
|
|
34
|
+
};
|
|
35
|
+
const result = resolvePath(spec);
|
|
36
|
+
expect(result).not.toBeNull();
|
|
37
|
+
expect(result).not.toContain("~");
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe("getDescriptor", () => {
|
|
41
|
+
it("returns correct descriptor for claude-code", () => {
|
|
42
|
+
const desc = getDescriptor("claude-code");
|
|
43
|
+
expect(desc.id).toBe("claude-code");
|
|
44
|
+
expect(desc.display.name).toBe("Claude Code");
|
|
45
|
+
});
|
|
46
|
+
it("throws for nonexistent tool", () => {
|
|
47
|
+
expect(() => getDescriptor("nonexistent")).toThrow("Unknown tool: nonexistent");
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe("toolsWithCapability", () => {
|
|
51
|
+
it("returns all 9 for mcp", () => {
|
|
52
|
+
expect(toolsWithCapability("mcp")).toHaveLength(9);
|
|
53
|
+
});
|
|
54
|
+
it("returns only claude-code for hooks", () => {
|
|
55
|
+
const hooks = toolsWithCapability("hooks");
|
|
56
|
+
expect(hooks).toHaveLength(1);
|
|
57
|
+
expect(hooks[0].id).toBe("claude-code");
|
|
58
|
+
});
|
|
59
|
+
it("returns cursor and vscode for rules", () => {
|
|
60
|
+
const rules = toolsWithCapability("rules");
|
|
61
|
+
expect(rules).toHaveLength(2);
|
|
62
|
+
const ids = rules.map(t => t.id).sort();
|
|
63
|
+
expect(ids).toEqual(["cursor", "vscode"]);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe("toolsForScope", () => {
|
|
67
|
+
it("returns all 9 for shared", () => {
|
|
68
|
+
expect(toolsForScope("shared")).toHaveLength(9);
|
|
69
|
+
});
|
|
70
|
+
it("returns only openclaw for personal", () => {
|
|
71
|
+
const personal = toolsForScope("personal");
|
|
72
|
+
expect(personal).toHaveLength(1);
|
|
73
|
+
expect(personal[0].id).toBe("openclaw");
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe("validateRegistry", () => {
|
|
77
|
+
it("returns no errors for the default registry", () => {
|
|
78
|
+
expect(validateRegistry()).toEqual([]);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=_registry.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_registry.test.js","sourceRoot":"","sources":["../../src/tools/_registry.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Registry Types — defines the ToolDescriptor interface and related types.
|
|
3
|
+
*/
|
|
4
|
+
export type Capability = "mcp" | "skills" | "memory" | "agents" | "hooks" | "rules";
|
|
5
|
+
export type McpFormat = "json" | "jsonc" | "toml" | "yaml";
|
|
6
|
+
export type McpEntryShape = "standard" | "openclaw" | "opencode" | "vscode";
|
|
7
|
+
export interface PlatformPaths {
|
|
8
|
+
darwin: string;
|
|
9
|
+
linux: string;
|
|
10
|
+
win32: string;
|
|
11
|
+
}
|
|
12
|
+
export type PathSpec = string | PlatformPaths | null;
|
|
13
|
+
export interface ToolPaths {
|
|
14
|
+
mcp: PathSpec;
|
|
15
|
+
projectMcp: PathSpec;
|
|
16
|
+
skills: PathSpec;
|
|
17
|
+
projectSkills: PathSpec;
|
|
18
|
+
globalMemory: PathSpec;
|
|
19
|
+
projectMemory: PathSpec;
|
|
20
|
+
agents: PathSpec;
|
|
21
|
+
projectAgents: PathSpec;
|
|
22
|
+
rules: PathSpec;
|
|
23
|
+
hooks: PathSpec;
|
|
24
|
+
backupDirs: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface McpConfig {
|
|
27
|
+
format: McpFormat;
|
|
28
|
+
key: string;
|
|
29
|
+
entryShape: McpEntryShape;
|
|
30
|
+
}
|
|
31
|
+
export interface ToolCli {
|
|
32
|
+
command: string;
|
|
33
|
+
mcp?: {
|
|
34
|
+
add: string[];
|
|
35
|
+
remove: string[];
|
|
36
|
+
enable?: string[];
|
|
37
|
+
disable?: string[];
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface ToolDisplay {
|
|
41
|
+
name: string;
|
|
42
|
+
icon: string;
|
|
43
|
+
color: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ToolDescriptor {
|
|
46
|
+
id: string;
|
|
47
|
+
display: ToolDisplay;
|
|
48
|
+
cli: ToolCli | null;
|
|
49
|
+
paths: ToolPaths;
|
|
50
|
+
mcp: McpConfig;
|
|
51
|
+
scopes: string[];
|
|
52
|
+
capabilities: Capability[];
|
|
53
|
+
enabled: boolean;
|
|
54
|
+
memoryMaxLines: number | null;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=_types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../src/tools/_types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE5E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,QAAQ,CAAC;IACd,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,aAAa,EAAE,QAAQ,CAAC;IACxB,YAAY,EAAE,QAAQ,CAAC;IACvB,aAAa,EAAE,QAAQ,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,aAAa,EAAE,QAAQ,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE;QACJ,GAAG,EAAE,MAAM,EAAE,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_types.js","sourceRoot":"","sources":["../../src/tools/_types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aider.d.ts","sourceRoot":"","sources":["../../src/tools/aider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,KAAK,EAAE,cAsBnB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const aider = {
|
|
2
|
+
id: "aider",
|
|
3
|
+
display: { name: "Aider", icon: "aider", color: "#22C55E" },
|
|
4
|
+
cli: null,
|
|
5
|
+
paths: {
|
|
6
|
+
mcp: "~/.aider/mcp-servers.json",
|
|
7
|
+
projectMcp: null,
|
|
8
|
+
skills: "~/.aider/plugins",
|
|
9
|
+
projectSkills: null,
|
|
10
|
+
globalMemory: "~/.aider/MEMORY.md",
|
|
11
|
+
projectMemory: null,
|
|
12
|
+
agents: null,
|
|
13
|
+
projectAgents: null,
|
|
14
|
+
rules: null,
|
|
15
|
+
hooks: null,
|
|
16
|
+
backupDirs: ["~/.aider"],
|
|
17
|
+
},
|
|
18
|
+
mcp: { format: "json", key: "mcpServers", entryShape: "standard" },
|
|
19
|
+
scopes: ["shared", "coding"],
|
|
20
|
+
capabilities: ["mcp", "skills", "memory"],
|
|
21
|
+
enabled: true,
|
|
22
|
+
memoryMaxLines: null,
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=aider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aider.js","sourceRoot":"","sources":["../../src/tools/aider.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAmB;IACnC,EAAE,EAAE,OAAO;IACX,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3D,GAAG,EAAE,IAAI;IACT,KAAK,EAAE;QACL,GAAG,EAAE,2BAA2B;QAChC,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,oBAAoB;QAClC,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,UAAU,CAAC;KACzB;IACD,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE;IAClE,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACzC,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,IAAI;CACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/tools/antigravity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,WAAW,EAAE,cAsBzB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const antigravity = {
|
|
2
|
+
id: "antigravity",
|
|
3
|
+
display: { name: "Antigravity", icon: "antigravity", color: "#FF6B35" },
|
|
4
|
+
cli: { command: "agy" },
|
|
5
|
+
paths: {
|
|
6
|
+
mcp: "~/.gemini/antigravity/mcp_config.json",
|
|
7
|
+
projectMcp: null,
|
|
8
|
+
skills: "~/.gemini/antigravity/skills/",
|
|
9
|
+
projectSkills: ".agent/skills/",
|
|
10
|
+
globalMemory: "~/.gemini/antigravity/rules.md",
|
|
11
|
+
projectMemory: ".antigravity/rules.md",
|
|
12
|
+
agents: null,
|
|
13
|
+
projectAgents: ".agent/",
|
|
14
|
+
rules: null,
|
|
15
|
+
hooks: null,
|
|
16
|
+
backupDirs: ["~/.gemini/antigravity"],
|
|
17
|
+
},
|
|
18
|
+
mcp: { format: "json", key: "mcpServers", entryShape: "standard" },
|
|
19
|
+
scopes: ["shared", "coding"],
|
|
20
|
+
capabilities: ["mcp", "skills", "memory", "agents"],
|
|
21
|
+
enabled: true,
|
|
22
|
+
memoryMaxLines: null,
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=antigravity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/tools/antigravity.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAmB;IACzC,EAAE,EAAE,aAAa;IACjB,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE;IACvE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;IACvB,KAAK,EAAE;QACL,GAAG,EAAE,uCAAuC;QAC5C,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,+BAA+B;QACvC,aAAa,EAAE,gBAAgB;QAC/B,YAAY,EAAE,gCAAgC;QAC9C,aAAa,EAAE,uBAAuB;QACtC,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,SAAS;QACxB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,uBAAuB,CAAC;KACtC;IACD,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE;IAClE,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnD,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,IAAI;CACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/tools/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,UAAU,EAAE,cAsBxB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const claudeCode = {
|
|
2
|
+
id: "claude-code",
|
|
3
|
+
display: { name: "Claude Code", icon: "claude", color: "#D97706" },
|
|
4
|
+
cli: { command: "claude", mcp: { add: ["mcp", "add-json"], remove: ["mcp", "remove"] } },
|
|
5
|
+
paths: {
|
|
6
|
+
mcp: "~/.claude.json",
|
|
7
|
+
projectMcp: ".claude/mcp.json",
|
|
8
|
+
skills: "~/.claude/skills",
|
|
9
|
+
projectSkills: ".claude/skills/",
|
|
10
|
+
globalMemory: "~/.claude/CLAUDE.md",
|
|
11
|
+
projectMemory: "CLAUDE.md",
|
|
12
|
+
agents: "~/.claude/agents/",
|
|
13
|
+
projectAgents: ".claude/agents/",
|
|
14
|
+
rules: null,
|
|
15
|
+
hooks: "~/.claude/settings.json",
|
|
16
|
+
backupDirs: ["~/.claude", "~/"],
|
|
17
|
+
},
|
|
18
|
+
mcp: { format: "json", key: "mcpServers", entryShape: "standard" },
|
|
19
|
+
scopes: ["shared", "coding"],
|
|
20
|
+
capabilities: ["mcp", "skills", "memory", "agents", "hooks"],
|
|
21
|
+
enabled: true,
|
|
22
|
+
memoryMaxLines: 200,
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=claude-code.js.map
|