agent-config-sync 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/README.md +174 -0
- package/dist/catalog.d.ts +65 -0
- package/dist/catalog.js +328 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cli-catalog.d.ts +70 -0
- package/dist/cli-catalog.js +433 -0
- package/dist/cli-catalog.js.map +1 -0
- package/dist/cli-diagnostics.d.ts +14 -0
- package/dist/cli-diagnostics.js +177 -0
- package/dist/cli-diagnostics.js.map +1 -0
- package/dist/cli-mcp.d.ts +38 -0
- package/dist/cli-mcp.js +179 -0
- package/dist/cli-mcp.js.map +1 -0
- package/dist/cli-skill.d.ts +51 -0
- package/dist/cli-skill.js +239 -0
- package/dist/cli-skill.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +733 -0
- package/dist/cli.js.map +1 -0
- package/dist/config-adapters.d.ts +32 -0
- package/dist/config-adapters.js +409 -0
- package/dist/config-adapters.js.map +1 -0
- package/dist/fs.d.ts +2 -0
- package/dist/fs.js +20 -0
- package/dist/fs.js.map +1 -0
- package/dist/project-discovery.d.ts +24 -0
- package/dist/project-discovery.js +129 -0
- package/dist/project-discovery.js.map +1 -0
- package/dist/registry.d.ts +49 -0
- package/dist/registry.js +121 -0
- package/dist/registry.js.map +1 -0
- package/dist/skill-adapters.d.ts +53 -0
- package/dist/skill-adapters.js +183 -0
- package/dist/skill-adapters.js.map +1 -0
- package/dist/types.d.ts +151 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +64 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/** Supported agent targets */
|
|
2
|
+
export type TargetName = 'claude' | 'codex' | 'gemini';
|
|
3
|
+
/** Transport types for MCP servers */
|
|
4
|
+
export type TransportType = 'stdio' | 'http' | 'sse';
|
|
5
|
+
/** Result of project discovery */
|
|
6
|
+
export interface ProjectDiscovery {
|
|
7
|
+
/** Absolute path to the project root */
|
|
8
|
+
root: string;
|
|
9
|
+
/** Discovered native config paths for each target */
|
|
10
|
+
targets: Map<TargetName, NativeConfigPath>;
|
|
11
|
+
}
|
|
12
|
+
/** Native config file path for a target */
|
|
13
|
+
export interface NativeConfigPath {
|
|
14
|
+
target: TargetName;
|
|
15
|
+
/** Absolute path to the config file */
|
|
16
|
+
path: string;
|
|
17
|
+
/** Whether the config file exists */
|
|
18
|
+
exists: boolean;
|
|
19
|
+
}
|
|
20
|
+
/** Catalog schema version */
|
|
21
|
+
export declare const CATALOG_VERSION: string;
|
|
22
|
+
/** MCP server recipe */
|
|
23
|
+
export interface McpRecipe {
|
|
24
|
+
/** Transport type: stdio (command) or http (url) */
|
|
25
|
+
transport?: TransportType;
|
|
26
|
+
/** Command to execute (stdio transport) */
|
|
27
|
+
command?: string;
|
|
28
|
+
/** Arguments for command (stdio transport) */
|
|
29
|
+
args?: string[];
|
|
30
|
+
/** HTTP/SSE URL (http/sse transport) */
|
|
31
|
+
url?: string;
|
|
32
|
+
/** Working directory for command execution */
|
|
33
|
+
cwd?: string;
|
|
34
|
+
/** Environment variables for command */
|
|
35
|
+
env?: Record<string, string>;
|
|
36
|
+
}
|
|
37
|
+
/** MCP entry in the catalog */
|
|
38
|
+
export interface McpCatalogEntry {
|
|
39
|
+
id: string;
|
|
40
|
+
displayName: string;
|
|
41
|
+
description: string;
|
|
42
|
+
recipe: McpRecipe;
|
|
43
|
+
addedAt: string;
|
|
44
|
+
tags?: string[];
|
|
45
|
+
}
|
|
46
|
+
/** Catalog file structure */
|
|
47
|
+
export interface CatalogFile {
|
|
48
|
+
$schema?: string;
|
|
49
|
+
version: string;
|
|
50
|
+
mcps: Record<string, McpCatalogEntry>;
|
|
51
|
+
skills: Record<string, SkillCatalogEntry>;
|
|
52
|
+
}
|
|
53
|
+
/** Skill file content (SKILL.md) */
|
|
54
|
+
export interface SkillRecipe {
|
|
55
|
+
/** Skill name (from YAML frontmatter) */
|
|
56
|
+
name: string;
|
|
57
|
+
/** Skill description (from YAML frontmatter) */
|
|
58
|
+
description: string;
|
|
59
|
+
/** Full skill content including YAML frontmatter and Markdown body */
|
|
60
|
+
content: string;
|
|
61
|
+
/** Optional license information */
|
|
62
|
+
license?: string;
|
|
63
|
+
/** Optional metadata */
|
|
64
|
+
metadata?: Record<string, unknown>;
|
|
65
|
+
}
|
|
66
|
+
/** Skill entry in the catalog */
|
|
67
|
+
export interface SkillCatalogEntry {
|
|
68
|
+
id: string;
|
|
69
|
+
displayName: string;
|
|
70
|
+
description: string;
|
|
71
|
+
recipe: SkillRecipe;
|
|
72
|
+
addedAt: string;
|
|
73
|
+
tags?: string[];
|
|
74
|
+
}
|
|
75
|
+
/** Claude Code .mcp.json structure */
|
|
76
|
+
export interface ClaudeMcpConfig {
|
|
77
|
+
mcpServers: Record<string, ClaudeMcpServer>;
|
|
78
|
+
}
|
|
79
|
+
export interface ClaudeMcpServer {
|
|
80
|
+
command?: string;
|
|
81
|
+
args?: string[];
|
|
82
|
+
httpUrl?: string;
|
|
83
|
+
env?: Record<string, string>;
|
|
84
|
+
}
|
|
85
|
+
/** Codex .codex/config.toml structure (partial) */
|
|
86
|
+
export interface CodexConfig {
|
|
87
|
+
mcp_servers?: Record<string, CodexMcpServer>;
|
|
88
|
+
}
|
|
89
|
+
export interface CodexMcpServer {
|
|
90
|
+
command?: string;
|
|
91
|
+
args?: string[];
|
|
92
|
+
httpUrl?: string;
|
|
93
|
+
cwd?: string;
|
|
94
|
+
env?: Record<string, string>;
|
|
95
|
+
enabled?: boolean;
|
|
96
|
+
}
|
|
97
|
+
/** Gemini CLI .gemini/settings.json structure (partial) */
|
|
98
|
+
export interface GeminiSettings {
|
|
99
|
+
mcpServers?: Record<string, GeminiMcpServer>;
|
|
100
|
+
}
|
|
101
|
+
export interface GeminiMcpServer {
|
|
102
|
+
command?: string;
|
|
103
|
+
args?: string[];
|
|
104
|
+
url?: string;
|
|
105
|
+
cwd?: string;
|
|
106
|
+
enabled?: boolean;
|
|
107
|
+
}
|
|
108
|
+
/** Status of a single MCP server in the project */
|
|
109
|
+
export interface McpServerStatus {
|
|
110
|
+
name: string;
|
|
111
|
+
enabled: boolean;
|
|
112
|
+
targets: TargetName[];
|
|
113
|
+
source: 'catalog' | 'inline';
|
|
114
|
+
}
|
|
115
|
+
/** Overall MCP status for the project */
|
|
116
|
+
export interface McpWorkspaceStatus {
|
|
117
|
+
projectRoot: string;
|
|
118
|
+
servers: McpServerStatus[];
|
|
119
|
+
totalCount: number;
|
|
120
|
+
enabledCount: number;
|
|
121
|
+
}
|
|
122
|
+
/** Status of a single skill in the project */
|
|
123
|
+
export interface SkillStatus {
|
|
124
|
+
name: string;
|
|
125
|
+
enabled: boolean;
|
|
126
|
+
targets: TargetName[];
|
|
127
|
+
source: 'catalog' | 'inline';
|
|
128
|
+
}
|
|
129
|
+
/** Overall skill status for the project */
|
|
130
|
+
export interface SkillWorkspaceStatus {
|
|
131
|
+
projectRoot: string;
|
|
132
|
+
skills: SkillStatus[];
|
|
133
|
+
totalCount: number;
|
|
134
|
+
enabledCount: number;
|
|
135
|
+
}
|
|
136
|
+
/** Result of reading a native config */
|
|
137
|
+
export interface ConfigReadResult<T> {
|
|
138
|
+
/** Parsed config object */
|
|
139
|
+
config: T | null;
|
|
140
|
+
/** Whether the file exists */
|
|
141
|
+
exists: boolean;
|
|
142
|
+
/** Raw content if parsing failed */
|
|
143
|
+
raw?: string;
|
|
144
|
+
}
|
|
145
|
+
/** Mutation operation on a native config */
|
|
146
|
+
export interface ConfigMutation {
|
|
147
|
+
target: TargetName;
|
|
148
|
+
operation: 'add' | 'remove' | 'enable' | 'disable';
|
|
149
|
+
serverName: string;
|
|
150
|
+
config?: McpRecipe;
|
|
151
|
+
}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Core Types
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Catalog Types
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/** Catalog schema version */
|
|
8
|
+
export const CATALOG_VERSION = '1.0';
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AA6B/E,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,6BAA6B;AAC7B,MAAM,CAAC,MAAM,eAAe,GAAW,KAAK,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-config-sync",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Cross-agent configuration manager for MCP servers and skills. Directly edits native config files—no manifest, no sync step.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"agent-config-sync": "dist/cli.js",
|
|
8
|
+
"acsync": "dist/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=20.0.0"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc -p tsconfig.json",
|
|
20
|
+
"clean": "rm -rf dist",
|
|
21
|
+
"dev": "tsx src/cli.ts",
|
|
22
|
+
"prepack": "npm run clean && npm run build",
|
|
23
|
+
"check": "npm run clean && npm run build",
|
|
24
|
+
"test": "tsx --test test/**/*.test.ts",
|
|
25
|
+
"test:unit": "tsx --test test/unit/*.test.ts",
|
|
26
|
+
"test:integration": "tsx --test test/integration/*.test.ts",
|
|
27
|
+
"test:smoke": "node dist/cli.js --version && node dist/cli.js catalog mcp list"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"mcp",
|
|
31
|
+
"model-context-protocol",
|
|
32
|
+
"skills",
|
|
33
|
+
"codex",
|
|
34
|
+
"claude-code",
|
|
35
|
+
"claude",
|
|
36
|
+
"gemini-cli",
|
|
37
|
+
"gemini",
|
|
38
|
+
"cli",
|
|
39
|
+
"config-sync",
|
|
40
|
+
"agents",
|
|
41
|
+
"agent-tools",
|
|
42
|
+
"skill-management",
|
|
43
|
+
"developer-tools"
|
|
44
|
+
],
|
|
45
|
+
"author": "Daisuke Yamashiki",
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"repository": {
|
|
48
|
+
"type": "git",
|
|
49
|
+
"url": "git+https://github.com/yama662607/agent-config-sync.git"
|
|
50
|
+
},
|
|
51
|
+
"bugs": {
|
|
52
|
+
"url": "https://github.com/yama662607/agent-config-sync/issues"
|
|
53
|
+
},
|
|
54
|
+
"homepage": "https://github.com/yama662607/agent-config-sync#readme",
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"@iarna/toml": "^2.2.5",
|
|
57
|
+
"yaml": "^2.8.1"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@types/node": "^24.5.2",
|
|
61
|
+
"tsx": "^4.21.0",
|
|
62
|
+
"typescript": "^5.9.2"
|
|
63
|
+
}
|
|
64
|
+
}
|