@chanaka_nakandala/integration-agent 1.0.2 → 1.1.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/README.md CHANGED
@@ -1,87 +1,396 @@
1
- # @grubtech/integration-agent
1
+ # Grubtech Integration Assistant
2
2
 
3
- > AI-powered MCP server for Grubtech API integration support
3
+ > **AI-powered integration helper for Claude Code**
4
+ > Get instant answers, generate code, and build Grubtech integrations faster
4
5
 
5
- [![npm version](https://img.shields.io/npm/v/@grubtech/integration-agent.svg)](https://www.npmjs.com/package/@grubtech/integration-agent)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ ---
7
7
 
8
- An MCP (Model Context Protocol) server that provides instant, AI-powered assistance for integrating with Grubtech APIs through Claude Code. Get code generation, documentation search, and integration guidance directly in your development environment.
8
+ ## šŸ“– What is This?
9
9
 
10
- ## Features
10
+ If you're a **restaurant, POS system, delivery platform, or cloud kitchen** building an integration with Grubtech APIs, this tool helps you work faster by providing:
11
11
 
12
- - šŸš€ **Code Generation** - Generate integration code in TypeScript, Python, Java, or cURL
13
- - šŸ” **Documentation Search** - Search Grubtech API docs using natural language
14
- - šŸ“ **20 Ready-to-Use Templates** - 5 operations Ɨ 4 languages
15
- - šŸ¤– **Claude Code Integration** - Works seamlessly with Claude Code
16
- - šŸ”’ **100% Local** - Runs entirely on your machine
17
- - šŸ“¦ **Zero Configuration** - Works with \`npx\` out of the box
12
+ - āœ… **Instant answers** to API questions (no more searching docs)
13
+ - āœ… **Production-ready code** in TypeScript, Python, Java, or cURL
14
+ - āœ… **AI guidance** from specialized Developer and Business Analyst agents
15
+ - āœ… **Smart documentation search** using natural language
18
16
 
19
- ## Quick Start
17
+ **Example:** Instead of searching docs for 30 minutes, just ask:
18
+ *"How do I authenticate with Grubtech?"* → Get working code instantly.
20
19
 
21
- ### Using with Claude Code (Recommended)
20
+ ---
22
21
 
23
- 1. **Configure MCP Server**
22
+ ## šŸ” What is Grubtech?
24
23
 
25
- Create or edit: \`~/.config/claude/code_mcp_settings.json\`
24
+ [**Grubtech**](https://www.grubtech.com) is a leading cloud-based restaurant technology platform that powers:
25
+ - Cloud kitchens and virtual restaurants
26
+ - Multi-channel online ordering (delivery apps, web, mobile)
27
+ - Menu management across platforms
28
+ - Order aggregation and kitchen operations
26
29
 
27
- \`\`\`json
28
- {
29
- "mcpServers": {
30
- "grubtech-integration-support": {
31
- "command": "npx",
32
- "args": ["-y", "@grubtech/integration-agent", "mcp-server"]
33
- }
34
- }
35
- }
36
- \`\`\`
30
+ **For Developers:** If you're integrating your restaurant POS, delivery platform, or ordering system with Grubtech, you'll need to work with their REST APIs.
37
31
 
38
- 2. **Restart Claude Code**
32
+ **Official Resources:**
33
+ - 🌐 Website: https://www.grubtech.com
34
+ - šŸ“š API Documentation: https://docs.grubtech.io
35
+ - šŸ“§ Support: support@grubtech.io
39
36
 
40
- 3. **Start Using!**
41
- \`\`\`
42
- Generate authentication code for Grubtech in TypeScript
43
- \`\`\`
37
+ ---
44
38
 
45
- ## Available Tools
39
+ ## šŸ‘„ Who Should Use This?
46
40
 
47
- ### generate_integration_code
41
+ This tool is perfect for **external developers** who are:
48
42
 
49
- Generate code snippets for Grubtech integration tasks (20 templates available).
43
+ āœ… **Restaurant/POS Developers** - Integrating your point-of-sale system with Grubtech
44
+ āœ… **Delivery Platform Engineers** - Building order sync between your platform and Grubtech
45
+ āœ… **Cloud Kitchen Tech Teams** - Connecting kitchen management systems
46
+ āœ… **Integration Consultants** - Building custom integrations for clients
47
+ āœ… **Technical Partners** - Developing apps in the Grubtech ecosystem
50
48
 
51
- **Example Prompts:**
52
- \`\`\`
53
- Generate authentication code in TypeScript
54
- Show me how to sync menus using Python
55
- Create a Java webhook for receiving orders
56
- \`\`\`
49
+ **No prior Grubtech experience needed!** This AI assistant guides you through the entire process.
57
50
 
58
- ### search_grubtech_docs
51
+ ---
59
52
 
60
- Search Grubtech API documentation.
53
+ ## ⚔ Quick Start - ONE Command!
61
54
 
62
- **Example Prompts:**
63
- \`\`\`
64
- Search for authentication methods
65
- How do I update item availability?
66
- \`\`\`
55
+ ### Prerequisites
67
56
 
68
- ## Installation
57
+ - **Node.js 18+** - [Download](https://nodejs.org/)
58
+ - **Claude Desktop or Claude Code** - [Download](https://claude.ai/)
69
59
 
70
- ### NPX (Recommended)
71
- \`\`\`bash
72
- npx @grubtech/integration-agent mcp-server
73
- \`\`\`
60
+ ### Installation
74
61
 
75
- ### Global
76
- \`\`\`bash
77
- npm install -g @grubtech/integration-agent
78
- \`\`\`
62
+ Run this **ONE command** in your terminal:
79
63
 
80
- ## Requirements
64
+ ```bash
65
+ npx @chanaka_nakandala/integration-agent init
66
+ ```
81
67
 
82
- - Node.js 18+
83
- - Claude Code
68
+ That's it! This installs:
69
+ - āœ… AI-powered MCP server for Claude Code
70
+ - āœ… 2 specialized AI agent personas (Developer & Business Analyst)
71
+ - āœ… 20 production-ready code templates
72
+ - āœ… Intelligent documentation search
84
73
 
85
- ## License
74
+ **Then:**
75
+ 1. Restart Claude Code
76
+ 2. Select an agent persona from the menu
77
+ 3. Start asking questions!
78
+
79
+ ---
80
+
81
+ ## šŸ’¬ How to Use
82
+
83
+ ### Example 1: Get Authentication Code
84
+
85
+ **You ask Claude:**
86
+ ```
87
+ How do I authenticate with Grubtech API in TypeScript?
88
+ ```
89
+
90
+ **Claude responds with:**
91
+ ```typescript
92
+ // Complete working code with error handling
93
+ const API_KEY = 'your-api-key-here';
94
+ const PARTNER_ID = 'your-partner-id';
95
+
96
+ async function authenticate() {
97
+ const response = await fetch('https://api.grubtech.io/auth/token', {
98
+ method: 'POST',
99
+ headers: { 'Content-Type': 'application/json' },
100
+ body: JSON.stringify({ apiKey: API_KEY, partnerId: PARTNER_ID })
101
+ });
102
+
103
+ if (!response.ok) {
104
+ throw new Error(`Authentication failed: ${response.statusText}`);
105
+ }
106
+
107
+ const { accessToken } = await response.json();
108
+ return accessToken;
109
+ }
110
+ ```
111
+
112
+ ### Example 2: Search Documentation
113
+
114
+ **You ask:**
115
+ ```
116
+ How do incoming orders work?
117
+ ```
118
+
119
+ **Claude responds with:**
120
+ Relevant documentation about order webhooks, payload structure, authentication requirements, and best practices - all extracted from official Grubtech docs.
121
+
122
+ ### Example 3: Planning Your Integration
123
+
124
+ **You ask:**
125
+ ```
126
+ Help me plan my restaurant POS integration with Grubtech
127
+ ```
128
+
129
+ **BA Agent responds:**
130
+ - Asks discovery questions about your system
131
+ - Identifies integration requirements
132
+ - Creates a comprehensive project plan with architecture diagrams
133
+ - Provides a handoff document for implementation
134
+
135
+ ---
136
+
137
+ ## šŸ¤– Two AI Agent Personas
138
+
139
+ ### šŸ”§ Developer Agent (Technical Implementation)
140
+
141
+ **When to use:** You're ready to write code
142
+
143
+ **What it does:**
144
+ - Generates production-ready code in TypeScript, Python, Java, or cURL
145
+ - Provides API specifications and technical details
146
+ - Helps debug API errors with specific solutions
147
+ - Technical, concise, code-first responses
148
+
149
+ **Example questions:**
150
+ - "Generate Python code for menu synchronization"
151
+ - "How do I handle order status updates in Java?"
152
+ - "Show me cURL examples for item availability"
153
+
154
+ ### šŸ“Š Business Analyst Agent (Planning & Requirements)
155
+
156
+ **When to use:** You're starting a new integration project
157
+
158
+ **What it does:**
159
+ - Asks discovery questions about your integration needs
160
+ - Gathers comprehensive requirements
161
+ - Creates project documentation with architecture diagrams
162
+ - Provides process guidance and go-live checklists
163
+ - Explanatory, question-driven, process-oriented responses
164
+
165
+ **Example questions:**
166
+ - "Help me plan my integration with Grubtech"
167
+ - "What do I need to know before starting?"
168
+ - "Create a requirements document for my POS integration"
169
+
170
+ **šŸ’” Best Practice:** Start with BA Agent for planning → Switch to Developer Agent for coding
171
+
172
+ ---
173
+
174
+ ## šŸ› ļø Common Integration Scenarios
175
+
176
+ This tool helps with all major Grubtech integration scenarios:
177
+
178
+ ### 1. **Authentication**
179
+ Get access tokens to call Grubtech APIs securely.
180
+
181
+ **Ask Claude:** *"How do I authenticate?"*
182
+
183
+ ### 2. **Menu Synchronization**
184
+ Push your menu items, modifiers, and pricing to Grubtech.
185
+
186
+ **Ask Claude:** *"Generate code to sync my menu"*
187
+
188
+ ### 3. **Receiving Orders**
189
+ Handle incoming order webhooks from Grubtech when customers place orders.
190
+
191
+ **Ask Claude:** *"How do I receive orders from Grubtech?"*
192
+
193
+ ### 4. **Order Status Updates**
194
+ Update Grubtech when orders are accepted, prepared, or delivered.
195
+
196
+ **Ask Claude:** *"Show me how to update order status"*
197
+
198
+ ### 5. **Item Availability**
199
+ Toggle menu items on/off when they're out of stock.
200
+
201
+ **Ask Claude:** *"How do I mark items as unavailable?"*
202
+
203
+ ---
204
+
205
+ ## šŸ“š Available Code Templates
206
+
207
+ 20 production-ready templates for common operations:
208
+
209
+ | Operation | TypeScript | Python | Java | cURL |
210
+ |-----------|:----------:|:------:|:----:|:----:|
211
+ | **Authentication** | āœ… | āœ… | āœ… | āœ… |
212
+ | **Menu Sync** | āœ… | āœ… | āœ… | āœ… |
213
+ | **Order Receive** | āœ… | āœ… | āœ… | āœ… |
214
+ | **Order Status** | āœ… | āœ… | āœ… | āœ… |
215
+ | **Item Availability** | āœ… | āœ… | āœ… | āœ… |
216
+
217
+ Each template includes:
218
+ - āœ… Complete working code
219
+ - āœ… Error handling and logging
220
+ - āœ… Type definitions (TypeScript/Python/Java)
221
+ - āœ… Inline documentation
222
+ - āœ… Placeholder markers for your credentials
223
+ - āœ… Example usage
224
+
225
+ ---
226
+
227
+ ## šŸ” Privacy & Security
228
+
229
+ - **100% Local** - All processing happens on your machine
230
+ - **No Data Collection** - Zero telemetry or analytics
231
+ - **No External API Calls** - Works offline (after initial doc scraping)
232
+ - **Open Source** - Audit the code yourself
233
+ - **No API Keys Required** - Templates use placeholders for your keys
234
+
235
+ Your code and credentials **never leave your machine**.
236
+
237
+ ---
238
+
239
+ ## šŸ†˜ Getting Help
240
+
241
+ ### Within Claude Code
242
+ Just ask! The AI agents can help with:
243
+ - API questions
244
+ - Code errors
245
+ - Integration planning
246
+ - Best practices
247
+
248
+ ### External Resources
249
+ - šŸ“š Grubtech API Docs: https://docs.grubtech.io
250
+ - 🌐 Grubtech Website: https://www.grubtech.com
251
+ - šŸ“§ Email Support: support@grubtech.io
252
+
253
+ ### Common Questions
254
+
255
+ **Q: Do I need a Grubtech account?**
256
+ A: Yes, you'll need API credentials from Grubtech. Contact support@grubtech.io to get started.
257
+
258
+ **Q: Which programming language should I use?**
259
+ A: Use whatever your existing system is built with. This tool supports TypeScript, Python, Java, and cURL.
260
+
261
+ **Q: Is this tool official from Grubtech?**
262
+ A: This is a developer tool built to help with Grubtech integrations. For official support, contact Grubtech directly.
263
+
264
+ **Q: Do I need to know Grubtech APIs beforehand?**
265
+ A: No! The AI agents guide you through everything. Start with the BA Agent to learn the basics.
266
+
267
+ ---
268
+
269
+ ## šŸš€ What You Can Build
270
+
271
+ Examples of integrations developers have built:
272
+
273
+ - **Restaurant POS Systems** - Sync menus, receive orders, update status
274
+ - **Delivery Management Platforms** - Route orders, track deliveries, update statuses
275
+ - **Kitchen Display Systems** - Receive orders, mark as prepared
276
+ - **Inventory Management** - Update item availability based on stock
277
+ - **Custom Ordering Websites** - Pull menus, create orders, track status
278
+ - **Multi-Brand Aggregators** - Manage menus across multiple virtual brands
279
+
280
+ ---
281
+
282
+ ## šŸ“ Typical Integration Workflow
283
+
284
+ ### Phase 1: Planning (Use BA Agent)
285
+ 1. Ask: *"Help me plan my integration"*
286
+ 2. Answer discovery questions about your system
287
+ 3. Review generated requirements document
288
+
289
+ ### Phase 2: Setup
290
+ 1. Get API credentials from Grubtech
291
+ 2. Set up authentication
292
+ 3. Test connectivity
293
+
294
+ ### Phase 3: Implementation (Use Developer Agent)
295
+ 1. Implement menu synchronization
296
+ 2. Set up order webhook receiver
297
+ 3. Implement order status updates
298
+ 4. Add item availability management
299
+
300
+ ### Phase 4: Testing
301
+ 1. Test in Grubtech sandbox environment
302
+ 2. Validate data flows
303
+ 3. Handle edge cases
304
+
305
+ ### Phase 5: Go-Live
306
+ 1. Complete Grubtech certification
307
+ 2. Deploy to production
308
+ 3. Monitor integration health
309
+
310
+ **šŸ’” The AI agents guide you through each phase!**
311
+
312
+ ---
313
+
314
+ ## šŸ’» Example Session
315
+
316
+ ```
317
+ You: Help me start a POS integration with Grubtech
318
+
319
+ BA Agent: I'll help you plan this integration. Let me ask a few questions:
320
+
321
+ 1. What type of system are you integrating?
322
+ - POS System, Delivery Platform, Kitchen Display, or Other?
323
+
324
+ 2. What's your tech stack?
325
+ - Language/framework you're using?
326
+
327
+ 3. What capabilities do you need?
328
+ - Menu sync, order receiving, status updates?
329
+
330
+ [You answer the questions...]
331
+
332
+ BA Agent: Based on your requirements, I've created a comprehensive
333
+ integration plan. See docs/integration-requirements.md
334
+
335
+ Next step: Switch to "Developer Agent" to start implementation.
336
+
337
+ ---
338
+
339
+ You: [Switch to Developer Agent]
340
+ I have the requirements document. Let's start with authentication.
341
+
342
+ Developer Agent: I'll generate TypeScript authentication code for you.
343
+ [Provides complete working code with error handling...]
344
+ ```
345
+
346
+ ---
347
+
348
+ ## 🌟 Why Use This Tool?
349
+
350
+ ### Without This Tool:
351
+ - ā° Spend hours searching documentation
352
+ - šŸ“„ Copy/paste code examples that don't quite fit
353
+ - ā“ Get stuck on API errors with unclear messages
354
+ - šŸ”„ Repeatedly ask the same questions
355
+
356
+ ### With This Tool:
357
+ - ⚔ Get instant answers in Claude Code
358
+ - šŸ’» Generate code tailored to your language
359
+ - šŸ¤– AI agents guide you step-by-step
360
+ - šŸ“š Smart search finds exactly what you need
361
+
362
+ **Result:** Build integrations **5-10x faster** with fewer errors.
363
+
364
+ ---
365
+
366
+ ## šŸ“„ License
86
367
 
87
368
  MIT Ā© Grubtech
369
+
370
+ Free to use for commercial and personal projects.
371
+
372
+ ---
373
+
374
+ ## šŸ”— Links
375
+
376
+ - **Grubtech Website:** https://www.grubtech.com
377
+ - **API Documentation:** https://docs.grubtech.io
378
+ - **Email Support:** support@grubtech.io
379
+ - **NPM Package:** https://www.npmjs.com/package/@chanaka_nakandala/integration-agent
380
+
381
+ ---
382
+
383
+ ## šŸŽ‰ Ready to Start?
384
+
385
+ Install with ONE command:
386
+
387
+ ```bash
388
+ npx @chanaka_nakandala/integration-agent init
389
+ ```
390
+
391
+ Then restart Claude Code and start building! šŸš€
392
+
393
+ ---
394
+
395
+ **Built for external developers integrating with Grubtech APIs**
396
+ *Questions? Ask the AI agents in Claude Code or contact support@grubtech.io*
@@ -1,2 +1,13 @@
1
+ /**
2
+ * Initializes the Grubtech Integration Agent
3
+ *
4
+ * This command sets up everything needed to use the MCP server with Claude Code:
5
+ * 1. Verifies Claude Code installation
6
+ * 2. Creates cache directory for storing scraped documentation
7
+ * 3. Configures MCP server in Claude Code's config
8
+ * 4. Installs agent persona YAML files to ~/.claude/agents/
9
+ *
10
+ * Users only need to run this once: npx @chanaka_nakandala/integration-agent init
11
+ */
1
12
  export declare function initCommand(): Promise<void>;
2
13
  //# sourceMappingURL=init-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAwDjD"}
1
+ {"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA4DjD"}
@@ -2,9 +2,21 @@ import { promises as fs } from 'fs';
2
2
  import { join, dirname } from 'path';
3
3
  import { homedir } from 'os';
4
4
  import { fileURLToPath } from 'url';
5
+ /**
6
+ * Initializes the Grubtech Integration Agent
7
+ *
8
+ * This command sets up everything needed to use the MCP server with Claude Code:
9
+ * 1. Verifies Claude Code installation
10
+ * 2. Creates cache directory for storing scraped documentation
11
+ * 3. Configures MCP server in Claude Code's config
12
+ * 4. Installs agent persona YAML files to ~/.claude/agents/
13
+ *
14
+ * Users only need to run this once: npx @chanaka_nakandala/integration-agent init
15
+ */
5
16
  export async function initCommand() {
6
17
  console.log('šŸš€ Initializing Grubtech Integration Agent...\n');
7
- // 1. Check Claude Code installation
18
+ // Step 1: Verify Claude Code is installed
19
+ // We check if the Claude config directory exists to ensure compatibility
8
20
  const claudeConfigPath = getClaudeConfigPath();
9
21
  const mcpConfigFile = join(claudeConfigPath, 'mcp.json');
10
22
  try {
@@ -15,11 +27,13 @@ export async function initCommand() {
15
27
  console.warn('āš ļø Claude Code config directory not found. Is Claude Code installed?');
16
28
  console.warn(` Expected at: ${claudeConfigPath}\n`);
17
29
  }
18
- // 2. Create cache directory
30
+ // Step 2: Create cache directory for storing scraped Grubtech documentation
31
+ // This avoids repeated downloads and speeds up documentation searches
19
32
  const cacheDir = join(homedir(), '.grubtech', 'cache');
20
33
  await fs.mkdir(join(cacheDir, 'docs'), { recursive: true });
21
34
  console.log('āœ“ Created cache directory at ~/.grubtech/cache/');
22
- // 3. Configure MCP
35
+ // Step 3: Configure MCP server in Claude Code
36
+ // This tells Claude Code how to start our MCP server when needed
23
37
  let mcpConfig = {};
24
38
  try {
25
39
  const existing = await fs.readFile(mcpConfigFile, 'utf-8');
@@ -29,15 +43,16 @@ export async function initCommand() {
29
43
  catch {
30
44
  console.log('āœ“ Creating new MCP configuration');
31
45
  }
32
- // Add/update Grubtech MCP server config
46
+ // Add or update our MCP server configuration
47
+ // This registers the server with identifier 'grubtech-integration-support'
33
48
  if (!mcpConfig.mcpServers) {
34
49
  mcpConfig.mcpServers = {};
35
50
  }
36
51
  mcpConfig.mcpServers['grubtech-integration-support'] = {
37
- command: 'npx',
38
- args: ['@chanaka_nakandala/integration-agent', 'mcp-server'],
52
+ command: 'npx', // Use npx to run the package directly
53
+ args: ['@chanaka_nakandala/integration-agent', 'mcp-server'], // Start MCP server mode
39
54
  };
40
- // Write config
55
+ // Write the updated configuration back to disk
41
56
  await fs.mkdir(claudeConfigPath, { recursive: true });
42
57
  await fs.writeFile(mcpConfigFile, JSON.stringify(mcpConfig, null, 2));
43
58
  console.log('āœ“ Updated MCP configuration');
@@ -52,13 +67,24 @@ export async function initCommand() {
52
67
  console.log(' - Grubtech Integration BA (planning, requirements, documentation)');
53
68
  console.log(' 3. Try asking: "How do I authenticate with Grubtech APIs?"\n');
54
69
  }
70
+ /**
71
+ * Installs agent persona YAML files to Claude's agents directory
72
+ *
73
+ * Agent personas customize Claude's behavior for specific tasks:
74
+ * - Developer Agent: Technical, code-first responses with production-ready code
75
+ * - BA Agent: Planning, requirements gathering, documentation generation
76
+ *
77
+ * These files are copied to ~/.claude/agents/ where Claude Code can load them
78
+ */
55
79
  async function installAgentPersonas() {
56
80
  console.log('\nšŸ“¦ Installing agent personas...');
57
81
  const agentsDir = getClaudeAgentsPath();
58
82
  await fs.mkdir(agentsDir, { recursive: true });
59
- // Get source directory (within mcp-server package)
83
+ // Find the agent-personas directory within this package
84
+ // When run via npx, __dirname points to the installed package in npm cache
60
85
  const packageRoot = join(dirname(fileURLToPath(import.meta.url)), '..', '..');
61
86
  const agentPersonasSource = join(packageRoot, 'agent-personas');
87
+ // Define both agent personas to install
62
88
  const agents = [
63
89
  {
64
90
  source: join(agentPersonasSource, 'developer-agent.yaml'),
@@ -71,11 +97,12 @@ async function installAgentPersonas() {
71
97
  name: 'Grubtech Integration BA',
72
98
  },
73
99
  ];
100
+ // Copy each agent persona file to Claude's agents directory
74
101
  for (const agent of agents) {
75
102
  try {
76
- // Check if source exists
103
+ // Verify source file exists in the package
77
104
  await fs.access(agent.source);
78
- // Check if target already exists
105
+ // Check if agent is already installed (from previous init)
79
106
  let shouldCopy = true;
80
107
  try {
81
108
  await fs.access(agent.target);
@@ -85,6 +112,7 @@ async function installAgentPersonas() {
85
112
  catch {
86
113
  // Target doesn't exist, proceed with copy
87
114
  }
115
+ // Copy the YAML file to Claude's agents directory
88
116
  if (shouldCopy) {
89
117
  await fs.copyFile(agent.source, agent.target);
90
118
  console.log(` āœ“ Installed ${agent.name}`);
@@ -96,6 +124,14 @@ async function installAgentPersonas() {
96
124
  }
97
125
  console.log('\nāœ“ Agent personas installed to ~/.claude/agents/');
98
126
  }
127
+ /**
128
+ * Gets the Claude Code configuration directory path
129
+ *
130
+ * Different operating systems store Claude config in different locations:
131
+ * - Windows: %APPDATA%\Claude\config
132
+ * - macOS: ~/Library/Application Support/Claude/config
133
+ * - Linux: ~/.config/claude
134
+ */
99
135
  function getClaudeConfigPath() {
100
136
  const home = homedir();
101
137
  switch (process.platform) {
@@ -107,9 +143,14 @@ function getClaudeConfigPath() {
107
143
  return join(home, '.config', 'claude');
108
144
  }
109
145
  }
146
+ /**
147
+ * Gets the Claude Code agents directory path
148
+ *
149
+ * Agent personas are stored in ~/.claude/agents/ on all platforms
150
+ * This is where Claude Code looks for custom agent configurations
151
+ */
110
152
  function getClaudeAgentsPath() {
111
153
  const home = homedir();
112
- // Claude Code agents directory is always at ~/.claude/agents/ on all platforms
113
154
  return join(home, '.claude', 'agents');
114
155
  }
115
156
  //# sourceMappingURL=init-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-command.js","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-command.js","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@chanaka_nakandala/integration-agent",
3
- "version": "1.0.2",
4
- "description": "AI-powered MCP server for Grubtech API integration support - provides code generation and documentation search via Claude Code",
3
+ "version": "1.1.1",
4
+ "description": "AI-powered assistant for restaurants, POS systems, and delivery platforms integrating with Grubtech (leading cloud kitchen & restaurant technology platform). Get instant help via Claude Code: search API documentation, generate production-ready code in TypeScript/Python/Java/cURL, and build integrations faster with 2 specialized AI agents. Perfect for developers building menu sync, online ordering, and delivery integrations. One command setup: npx @chanaka_nakandala/integration-agent init",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
+ "homepage": "https://www.grubtech.com",
8
9
  "bin": {
9
10
  "grubtech-integration-agent": "./dist/index.js",
10
11
  "grubtech-mcp": "./dist/index.js"
@@ -26,15 +27,6 @@
26
27
  "access": "public",
27
28
  "registry": "https://registry.npmjs.org/"
28
29
  },
29
- "repository": {
30
- "type": "git",
31
- "url": "https://github.com/chanaka-nakandala/grubtech-integration-agent.git",
32
- "directory": "packages/mcp-server"
33
- },
34
- "homepage": "https://github.com/chanaka-nakandala/grubtech-integration-agent#readme",
35
- "bugs": {
36
- "url": "https://github.com/chanaka-nakandala/grubtech-integration-agent/issues"
37
- },
38
30
  "scripts": {
39
31
  "build": "node ../../node_modules/typescript/lib/tsc.js",
40
32
  "dev": "node ../../node_modules/typescript/lib/tsc.js --watch",
@@ -43,12 +35,32 @@
43
35
  },
44
36
  "keywords": [
45
37
  "grubtech",
38
+ "grubtech-api",
39
+ "grubtech-integration",
46
40
  "mcp",
47
- "integration",
48
- "support-agent"
41
+ "mcp-server",
42
+ "model-context-protocol",
43
+ "claude",
44
+ "claude-code",
45
+ "claude-desktop",
46
+ "api-integration",
47
+ "code-generation",
48
+ "documentation-search",
49
+ "agent-personas",
50
+ "typescript",
51
+ "python",
52
+ "java",
53
+ "curl",
54
+ "webhook",
55
+ "restaurant-tech",
56
+ "pos-integration",
57
+ "food-delivery",
58
+ "menu-sync",
59
+ "order-management"
49
60
  ],
50
- "author": "Grubtech",
61
+ "author": "Grubtech <support@grubtech.io> (https://www.grubtech.com)",
51
62
  "license": "MIT",
63
+ "docs": "https://docs.grubtech.io",
52
64
  "dependencies": {
53
65
  "@modelcontextprotocol/sdk": "^0.5.0",
54
66
  "axios": "^1.12.2",
@@ -59,6 +71,7 @@
59
71
  "typescript": "^5.9.3"
60
72
  },
61
73
  "engines": {
62
- "node": ">=18.0.0"
74
+ "node": ">=18.0.0",
75
+ "npm": ">=10.0.0"
63
76
  }
64
77
  }