@chanaka_nakandala/integration-agent 2.4.0 ā 3.0.1
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/init-command.d.ts +4 -3
- package/dist/init-command.d.ts.map +1 -1
- package/dist/init-command.js +39 -29
- package/dist/init-command.js.map +1 -1
- package/package.json +1 -1
package/dist/init-command.d.ts
CHANGED
@@ -2,9 +2,10 @@
|
|
2
2
|
* Initializes the Grubtech Integration Agent
|
3
3
|
*
|
4
4
|
* This command sets up everything needed to use the MCP server with Claude Code:
|
5
|
-
* 1.
|
6
|
-
* 2.
|
7
|
-
* 3.
|
5
|
+
* 1. Verifies Claude Code is installed (exits with error if not found)
|
6
|
+
* 2. Creates cache directory for storing scraped documentation
|
7
|
+
* 3. Registers MCP server using 'claude mcp add' command (falls back to manual config if CLI unavailable)
|
8
|
+
* 4. Installs agent persona YAML files to project's .claude/grubtech/agents/ directory as subagents
|
8
9
|
*
|
9
10
|
* Users only need to run this once: npx @chanaka_nakandala/integration-agent init
|
10
11
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../src/init-command.ts"],"names":[],"mappings":"AASA
|
1
|
+
{"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../src/init-command.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA6EjD"}
|
package/dist/init-command.js
CHANGED
@@ -9,20 +9,37 @@ const execAsync = promisify(exec);
|
|
9
9
|
* Initializes the Grubtech Integration Agent
|
10
10
|
*
|
11
11
|
* This command sets up everything needed to use the MCP server with Claude Code:
|
12
|
-
* 1.
|
13
|
-
* 2.
|
14
|
-
* 3.
|
12
|
+
* 1. Verifies Claude Code is installed (exits with error if not found)
|
13
|
+
* 2. Creates cache directory for storing scraped documentation
|
14
|
+
* 3. Registers MCP server using 'claude mcp add' command (falls back to manual config if CLI unavailable)
|
15
|
+
* 4. Installs agent persona YAML files to project's .claude/grubtech/agents/ directory as subagents
|
15
16
|
*
|
16
17
|
* Users only need to run this once: npx @chanaka_nakandala/integration-agent init
|
17
18
|
*/
|
18
19
|
export async function initCommand() {
|
19
20
|
console.log('š Initializing Grubtech Integration Agent...\n');
|
20
|
-
// Step 1:
|
21
|
+
// Step 1: Verify Claude Code is installed
|
22
|
+
console.log('Checking for Claude Code installation...');
|
23
|
+
const claudeConfigPath = getClaudeConfigPath();
|
24
|
+
try {
|
25
|
+
await fs.access(claudeConfigPath);
|
26
|
+
console.log('ā Claude Code found\n');
|
27
|
+
}
|
28
|
+
catch {
|
29
|
+
console.error('ā Claude Code is not installed!\n');
|
30
|
+
console.error('This tool requires Claude Code to be installed on your system.\n');
|
31
|
+
console.error('š„ Download Claude Code from:');
|
32
|
+
console.error(' https://claude.ai/download\n');
|
33
|
+
console.error('After installing Claude Code, run this command again:\n');
|
34
|
+
console.error(' npx @chanaka_nakandala/integration-agent init\n');
|
35
|
+
process.exit(1);
|
36
|
+
}
|
37
|
+
// Step 2: Create cache directory for storing scraped Grubtech documentation
|
21
38
|
// This avoids repeated downloads and speeds up documentation searches
|
22
39
|
const cacheDir = join(homedir(), '.grubtech', 'cache');
|
23
40
|
await fs.mkdir(join(cacheDir, 'docs'), { recursive: true });
|
24
41
|
console.log('ā Created cache directory at ~/.grubtech/cache/');
|
25
|
-
// Step
|
42
|
+
// Step 3: Configure MCP server in Claude Code using the claude CLI
|
26
43
|
// This registers the MCP server with identifier 'grubtech-integration-support'
|
27
44
|
// Uses: claude mcp add grubtech-integration-support npx -y @chanaka_nakandala/integration-mcp-server
|
28
45
|
console.log('\nš” Configuring MCP server...');
|
@@ -55,33 +72,35 @@ export async function initCommand() {
|
|
55
72
|
await fs.writeFile(mcpConfigFile, JSON.stringify(mcpConfig, null, 2));
|
56
73
|
console.log('ā MCP server configured manually');
|
57
74
|
}
|
58
|
-
// Step
|
59
|
-
await installAgentPersonas();
|
60
|
-
// Step
|
75
|
+
// Step 4: Install agent personas to project .claude/grubtech/agents directory
|
76
|
+
await installAgentPersonas(process.cwd());
|
77
|
+
// Step 5: Display success message
|
61
78
|
console.log('\nā
Setup complete!\n');
|
62
79
|
console.log('Installed components:');
|
63
80
|
console.log(' ā MCP Server: @chanaka_nakandala/integration-mcp-server');
|
64
|
-
console.log(' ā Agent Personas: Developer & BA
|
81
|
+
console.log(' ā Agent Personas: .claude/grubtech/agents/ (Developer & BA)\n');
|
65
82
|
console.log('Next steps:');
|
66
83
|
console.log(' 1. Restart Claude Code');
|
67
|
-
console.log(' 2.
|
84
|
+
console.log(' 2. Access the subagents from your project:');
|
68
85
|
console.log(' - Grubtech Integration Developer (technical, code-first)');
|
69
86
|
console.log(' - Grubtech Integration BA (planning, requirements, documentation)');
|
70
87
|
console.log(' 3. Try asking: "How do I authenticate with Grubtech APIs?"\n');
|
71
88
|
}
|
72
89
|
/**
|
73
|
-
* Installs agent persona YAML files to
|
90
|
+
* Installs agent persona YAML files to project's .claude/grubtech/agents directory
|
74
91
|
*
|
75
92
|
* This function locates the @chanaka_nakandala/integration-personas package
|
76
|
-
* (which is a dependency) and copies the YAML files to
|
93
|
+
* (which is a dependency) and copies the YAML files to .claude/grubtech/agents/
|
94
|
+
* in the current project directory, making them accessible as Claude subagents.
|
77
95
|
*
|
78
96
|
* Agent personas customize Claude's behavior for specific tasks:
|
79
97
|
* - Developer Agent: Technical, code-first responses with production-ready code
|
80
98
|
* - BA Agent: Planning, requirements gathering, documentation generation
|
81
99
|
*/
|
82
|
-
async function installAgentPersonas() {
|
100
|
+
async function installAgentPersonas(projectPath) {
|
83
101
|
console.log('\nš¦ Installing agent personas from @chanaka_nakandala/integration-personas...');
|
84
|
-
|
102
|
+
// Create .claude/grubtech/agents directory in the project
|
103
|
+
const agentsDir = join(projectPath, '.claude', 'grubtech', 'agents');
|
85
104
|
await fs.mkdir(agentsDir, { recursive: true });
|
86
105
|
try {
|
87
106
|
// Use Node's module resolution to find the integration-personas package
|
@@ -94,16 +113,16 @@ async function installAgentPersonas() {
|
|
94
113
|
const agents = [
|
95
114
|
{
|
96
115
|
source: join(agentPersonasSource, 'developer-agent.yaml'),
|
97
|
-
target: join(agentsDir, '
|
116
|
+
target: join(agentsDir, 'developer.yaml'),
|
98
117
|
name: 'Grubtech Integration Developer',
|
99
118
|
},
|
100
119
|
{
|
101
120
|
source: join(agentPersonasSource, 'ba-agent.yaml'),
|
102
|
-
target: join(agentsDir, '
|
121
|
+
target: join(agentsDir, 'ba.yaml'),
|
103
122
|
name: 'Grubtech Integration BA',
|
104
123
|
},
|
105
124
|
];
|
106
|
-
// Copy each agent persona file to
|
125
|
+
// Copy each agent persona file to project's .claude/grubtech/agents directory
|
107
126
|
for (const agent of agents) {
|
108
127
|
try {
|
109
128
|
// Verify source file exists in the package
|
@@ -117,7 +136,7 @@ async function installAgentPersonas() {
|
|
117
136
|
catch {
|
118
137
|
// Target doesn't exist, proceed with copy
|
119
138
|
}
|
120
|
-
// Copy the YAML file to
|
139
|
+
// Copy the YAML file to project's agents directory
|
121
140
|
await fs.copyFile(agent.source, agent.target);
|
122
141
|
console.log(` ā Installed ${agent.name}`);
|
123
142
|
}
|
@@ -125,7 +144,8 @@ async function installAgentPersonas() {
|
|
125
144
|
console.warn(` ā ļø Failed to install ${agent.name}: ${error.message}`);
|
126
145
|
}
|
127
146
|
}
|
128
|
-
console.log(
|
147
|
+
console.log(`\nā Agent personas installed to ${join('.claude', 'grubtech', 'agents')}`);
|
148
|
+
console.log(' Access them as subagents in your project');
|
129
149
|
}
|
130
150
|
catch (error) {
|
131
151
|
console.error('\nā Failed to install agent personas');
|
@@ -151,14 +171,4 @@ function getClaudeConfigPath() {
|
|
151
171
|
return join(home, '.config', 'claude');
|
152
172
|
}
|
153
173
|
}
|
154
|
-
/**
|
155
|
-
* Gets the Claude Code agents directory path
|
156
|
-
*
|
157
|
-
* Agent personas are stored in ~/.claude/agents/ on all platforms
|
158
|
-
* This is where Claude Code looks for custom agent configurations
|
159
|
-
*/
|
160
|
-
function getClaudeAgentsPath() {
|
161
|
-
const home = homedir();
|
162
|
-
return join(home, '.claude', 'agents');
|
163
|
-
}
|
164
174
|
//# sourceMappingURL=init-command.js.map
|
package/dist/init-command.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"init-command.js","sourceRoot":"","sources":["../src/init-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC
|
1
|
+
{"version":3,"file":"init-command.js","sourceRoot":"","sources":["../src/init-command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@chanaka_nakandala/integration-agent",
|
3
|
-
"version": "
|
3
|
+
"version": "3.0.1",
|
4
4
|
"description": "One-command installer that sets up the complete Grubtech Integration Agent (MCP server + AI agent personas) for Claude Code to help developers build restaurant and POS integrations.",
|
5
5
|
"type": "module",
|
6
6
|
"main": "./dist/index.js",
|