luna-agents 2.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/.claude-plugin/LICENSE +21 -0
- package/.claude-plugin/README.md +285 -0
- package/.claude-plugin/claude-plugin.json +106 -0
- package/.claude-plugin/index.js +318 -0
- package/.claude-plugin/lib/api-client.js +504 -0
- package/.claude-plugin/lib/rag-utils.js +442 -0
- package/.claude-plugin/package.json +418 -0
- package/LICENSE +21 -0
- package/README.md +350 -0
- package/agents/json/design-architect.json +57 -0
- package/agents/json/luna-auth.json +71 -0
- package/agents/json/luna-brand.json +66 -0
- package/agents/json/luna-cloudflare.json +261 -0
- package/agents/json/luna-code-review.json +63 -0
- package/agents/json/luna-deployment.json +68 -0
- package/agents/json/luna-documentation.json +85 -0
- package/agents/json/luna-hig.json +128 -0
- package/agents/json/luna-layout-designer.json +178 -0
- package/agents/json/luna-monitoring-observability.json +64 -0
- package/agents/json/luna-post-launch-review.json +68 -0
- package/agents/json/luna-requirements-analyzer.json +53 -0
- package/agents/json/luna-task-executor.json +63 -0
- package/agents/json/luna-task-planner.json +62 -0
- package/agents/json/luna-testing-validation.json +66 -0
- package/agents/luna-365-security.md +96 -0
- package/agents/luna-analytics.md +318 -0
- package/agents/luna-api-generator.md +654 -0
- package/agents/luna-auth.md +396 -0
- package/agents/luna-brand.md +248 -0
- package/agents/luna-cloudflare.md +728 -0
- package/agents/luna-code-review.md +487 -0
- package/agents/luna-database.md +453 -0
- package/agents/luna-deployment.md +202 -0
- package/agents/luna-design-architect.md +353 -0
- package/agents/luna-docker.md +615 -0
- package/agents/luna-documentation.md +177 -0
- package/agents/luna-full-test.md +910 -0
- package/agents/luna-glm-vision.md +211 -0
- package/agents/luna-hig.md +430 -0
- package/agents/luna-lemonsqueezy.md +441 -0
- package/agents/luna-monitoring-observability.md +199 -0
- package/agents/luna-openai-app.md +499 -0
- package/agents/luna-post-launch-review.md +191 -0
- package/agents/luna-rag-enhanced.md +1619 -0
- package/agents/luna-rag.md +1733 -0
- package/agents/luna-requirements-analyzer.md +189 -0
- package/agents/luna-run.md +620 -0
- package/agents/luna-seo.md +338 -0
- package/agents/luna-task-executor.md +371 -0
- package/agents/luna-task-planner.md +275 -0
- package/agents/luna-testing-validation.md +681 -0
- package/agents/luna-ui-fix.md +591 -0
- package/agents/luna-ui-test.md +600 -0
- package/agents/luna-user-guide.md +409 -0
- package/agents/site-auditor.md +83 -0
- package/commands/3d-mesh.md +12 -0
- package/commands/3d.md +12 -0
- package/commands/agent-boost.md +13 -0
- package/commands/ai-index.md +16 -0
- package/commands/api.md +12 -0
- package/commands/assert.md +17 -0
- package/commands/audience.md +12 -0
- package/commands/auth.md +17 -0
- package/commands/autopilot.md +12 -0
- package/commands/boost-finsavvy.md +10 -0
- package/commands/boost-org.md +10 -0
- package/commands/boost-project.md +12 -0
- package/commands/brand.md +17 -0
- package/commands/browser-test.md +18 -0
- package/commands/cf.md +26 -0
- package/commands/cfg.md +33 -0
- package/commands/chain.md +12 -0
- package/commands/challenge.md +13 -0
- package/commands/clone.md +12 -0
- package/commands/cmds.md +243 -0
- package/commands/collab.md +12 -0
- package/commands/compete.md +12 -0
- package/commands/config-rules.md +21 -0
- package/commands/connect-infra.md +10 -0
- package/commands/context-pack.md +13 -0
- package/commands/curb.md +12 -0
- package/commands/des.md +38 -0
- package/commands/devto.md +20 -0
- package/commands/dock.md +26 -0
- package/commands/docs.md +33 -0
- package/commands/e2e-flow.md +18 -0
- package/commands/email-routing.md +10 -0
- package/commands/feature.md +12 -0
- package/commands/figma.md +12 -0
- package/commands/fix.md +12 -0
- package/commands/flaky.md +12 -0
- package/commands/flow-record.md +12 -0
- package/commands/gamify.md +12 -0
- package/commands/ghost.md +12 -0
- package/commands/git-insights.md +12 -0
- package/commands/go-viral.md +16 -0
- package/commands/go.md +42 -0
- package/commands/graph-rag.md +13 -0
- package/commands/guard.md +12 -0
- package/commands/heal.md +17 -0
- package/commands/heygen.md +12 -0
- package/commands/hig.md +33 -0
- package/commands/idea.md +12 -0
- package/commands/imagine.md +12 -0
- package/commands/inbox.md +12 -0
- package/commands/lam.md +12 -0
- package/commands/landing.md +12 -0
- package/commands/launch.md +12 -0
- package/commands/learn.md +12 -0
- package/commands/leverage.md +12 -0
- package/commands/ll-365-secure.md +179 -0
- package/commands/ll-3d-mesh.md +94 -0
- package/commands/ll-3d.md +123 -0
- package/commands/ll-a11y-scan.md +143 -0
- package/commands/ll-a11y.md +71 -0
- package/commands/ll-agent-boost.md +92 -0
- package/commands/ll-agent-chain.md +104 -0
- package/commands/ll-ai-index.md +120 -0
- package/commands/ll-api-client.md +77 -0
- package/commands/ll-api.md +99 -0
- package/commands/ll-assert.md +73 -0
- package/commands/ll-audience.md +308 -0
- package/commands/ll-auth.md +145 -0
- package/commands/ll-autopilot.md +113 -0
- package/commands/ll-boost-finsavvy.md +106 -0
- package/commands/ll-boost-org.md +161 -0
- package/commands/ll-boost-project.md +118 -0
- package/commands/ll-brand.md +150 -0
- package/commands/ll-browser-test.md +203 -0
- package/commands/ll-challenge.md +124 -0
- package/commands/ll-changelog.md +80 -0
- package/commands/ll-ci.md +78 -0
- package/commands/ll-claude-instructions.md +80 -0
- package/commands/ll-clone.md +82 -0
- package/commands/ll-cloudflare.md +580 -0
- package/commands/ll-codemap.md +78 -0
- package/commands/ll-collab.md +87 -0
- package/commands/ll-compete.md +67 -0
- package/commands/ll-config-rules.md +255 -0
- package/commands/ll-config.md +434 -0
- package/commands/ll-connect-infra.md +123 -0
- package/commands/ll-context-pack.md +100 -0
- package/commands/ll-curb.md +164 -0
- package/commands/ll-debug.md +76 -0
- package/commands/ll-deploy.md +101 -0
- package/commands/ll-deps.md +70 -0
- package/commands/ll-design.md +86 -0
- package/commands/ll-devto-publish.md +172 -0
- package/commands/ll-dockerize.md +273 -0
- package/commands/ll-docs.md +123 -0
- package/commands/ll-e2e-flow.md +132 -0
- package/commands/ll-e2e-test.md +231 -0
- package/commands/ll-email-routing.md +130 -0
- package/commands/ll-env.md +70 -0
- package/commands/ll-execute.md +98 -0
- package/commands/ll-feature.md +80 -0
- package/commands/ll-figma.md +82 -0
- package/commands/ll-fix.md +76 -0
- package/commands/ll-flaky.md +151 -0
- package/commands/ll-flow-record.md +180 -0
- package/commands/ll-flowdocs.md +83 -0
- package/commands/ll-gamify.md +131 -0
- package/commands/ll-gemma4.md +84 -0
- package/commands/ll-ghost.md +79 -0
- package/commands/ll-git-insights.md +152 -0
- package/commands/ll-go-viral.md +171 -0
- package/commands/ll-graph-rag.md +113 -0
- package/commands/ll-guard.md +92 -0
- package/commands/ll-heal.md +135 -0
- package/commands/ll-heygen.md +203 -0
- package/commands/ll-hig.md +578 -0
- package/commands/ll-hld.md +84 -0
- package/commands/ll-i18n.md +74 -0
- package/commands/ll-idea.md +101 -0
- package/commands/ll-imagine.md +72 -0
- package/commands/ll-inbox.md +116 -0
- package/commands/ll-lam.md +93 -0
- package/commands/ll-landing.md +171 -0
- package/commands/ll-launch.md +100 -0
- package/commands/ll-learn.md +87 -0
- package/commands/ll-leverage.md +137 -0
- package/commands/ll-local-llm.md +131 -0
- package/commands/ll-ls-products.md +160 -0
- package/commands/ll-marketplace.md +130 -0
- package/commands/ll-mcp-publish.md +104 -0
- package/commands/ll-migrate.md +68 -0
- package/commands/ll-mock.md +79 -0
- package/commands/ll-money.md +87 -0
- package/commands/ll-monitor.md +120 -0
- package/commands/ll-morph.md +117 -0
- package/commands/ll-multi-agent.md +170 -0
- package/commands/ll-native.md +93 -0
- package/commands/ll-nexa.md +79 -0
- package/commands/ll-onboarding.md +84 -0
- package/commands/ll-openhands.md +78 -0
- package/commands/ll-organic-promote.md +260 -0
- package/commands/ll-parallel.md +74 -0
- package/commands/ll-payments.md +83 -0
- package/commands/ll-perf-trace.md +147 -0
- package/commands/ll-perf.md +65 -0
- package/commands/ll-persona.md +280 -0
- package/commands/ll-pipe.md +296 -0
- package/commands/ll-plan-impl.js +570 -0
- package/commands/ll-plan-v2.md +297 -0
- package/commands/ll-plan.md +87 -0
- package/commands/ll-postlaunch.md +109 -0
- package/commands/ll-pr.md +84 -0
- package/commands/ll-present.md +110 -0
- package/commands/ll-product-map.md +152 -0
- package/commands/ll-promote.md +352 -0
- package/commands/ll-publish.md +124 -0
- package/commands/ll-pulse.md +96 -0
- package/commands/ll-rag-guided.md +345 -0
- package/commands/ll-rag-upgrade.md +504 -0
- package/commands/ll-rag.md +343 -0
- package/commands/ll-record.md +114 -0
- package/commands/ll-refactor.md +71 -0
- package/commands/ll-requirements.md +71 -0
- package/commands/ll-review.md +92 -0
- package/commands/ll-rollback.md +66 -0
- package/commands/ll-routemap.md +79 -0
- package/commands/ll-rules.md +90 -0
- package/commands/ll-shortcuts.md +229 -0
- package/commands/ll-sing.md +99 -0
- package/commands/ll-site-audit.md +228 -0
- package/commands/ll-smart-route.md +92 -0
- package/commands/ll-smart-search.md +58 -0
- package/commands/ll-storybook.md +86 -0
- package/commands/ll-swarm.md +101 -0
- package/commands/ll-test.md +97 -0
- package/commands/ll-time-machine.md +72 -0
- package/commands/ll-ui-convert.md +433 -0
- package/commands/ll-video.md +108 -0
- package/commands/ll-vision-pipeline.md +247 -0
- package/commands/ll-vision.md +74 -0
- package/commands/ll-visual-diff.md +118 -0
- package/commands/ll-visual-qa.md +204 -0
- package/commands/ll-visual-regression.md +96 -0
- package/commands/ll-voice.md +138 -0
- package/commands/ll-watch.md +65 -0
- package/commands/ll-workflow.md +108 -0
- package/commands/ll-zen.md +98 -0
- package/commands/local-llm.md +12 -0
- package/commands/marketplace.md +13 -0
- package/commands/mcp-publish.md +16 -0
- package/commands/migrate.md +12 -0
- package/commands/money.md +12 -0
- package/commands/morph.md +12 -0
- package/commands/multi-agent.md +12 -0
- package/commands/native.md +12 -0
- package/commands/nexa.md +12 -0
- package/commands/oh.md +12 -0
- package/commands/organic-promote.md +16 -0
- package/commands/perf-trace.md +12 -0
- package/commands/perf.md +12 -0
- package/commands/persona.md +12 -0
- package/commands/pipe.md +21 -0
- package/commands/plan.md +38 -0
- package/commands/pr.md +12 -0
- package/commands/present.md +12 -0
- package/commands/product-map.md +13 -0
- package/commands/promote.md +16 -0
- package/commands/publish.md +12 -0
- package/commands/pulse.md +12 -0
- package/commands/q.md +35 -0
- package/commands/record.md +12 -0
- package/commands/refactor.md +12 -0
- package/commands/req.md +40 -0
- package/commands/retro.md +33 -0
- package/commands/rev.md +39 -0
- package/commands/rules.md +19 -0
- package/commands/search.md +12 -0
- package/commands/sec.md +34 -0
- package/commands/ship.md +39 -0
- package/commands/sing.md +12 -0
- package/commands/site-audit.md +12 -0
- package/commands/smart-route.md +13 -0
- package/commands/swarm.md +12 -0
- package/commands/test.md +39 -0
- package/commands/time-machine.md +12 -0
- package/commands/ui.md +33 -0
- package/commands/video.md +12 -0
- package/commands/vision.md +12 -0
- package/commands/voice.md +12 -0
- package/commands/vr.md +18 -0
- package/commands/watch.md +39 -0
- package/commands/workflow.md +19 -0
- package/commands/zen.md +12 -0
- package/package.json +76 -0
- package/setup.sh +382 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Luna Agents Plugin Entry Point
|
|
3
|
+
*
|
|
4
|
+
* This plugin provides comprehensive AI-powered development lifecycle management
|
|
5
|
+
* with backend API integration for enhanced capabilities.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const LunaAPIClient = require('./lib/api-client');
|
|
9
|
+
const RAGUtils = require('./lib/rag-utils');
|
|
10
|
+
const path = require('path');
|
|
11
|
+
const fs = require('fs');
|
|
12
|
+
|
|
13
|
+
class LunaAgentsPlugin {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.apiClient = new LunaAPIClient();
|
|
16
|
+
this.ragUtils = null; // Will be initialized after API client
|
|
17
|
+
this.config = {};
|
|
18
|
+
this.initialized = false;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the plugin
|
|
23
|
+
*/
|
|
24
|
+
async initialize(config = {}) {
|
|
25
|
+
try {
|
|
26
|
+
console.log('š Luna Agents v2.1.0 plugin initializing...');
|
|
27
|
+
console.log('š Connecting to Claude Agent Platform API...');
|
|
28
|
+
|
|
29
|
+
// Load configuration
|
|
30
|
+
this.config = this.loadConfiguration(config);
|
|
31
|
+
|
|
32
|
+
// Initialize API client
|
|
33
|
+
await this.apiClient.initialize(this.config.api);
|
|
34
|
+
|
|
35
|
+
// Initialize RAG utilities
|
|
36
|
+
this.ragUtils = new RAGUtils(this.apiClient);
|
|
37
|
+
|
|
38
|
+
// Setup plugin capabilities
|
|
39
|
+
this.setupCapabilities();
|
|
40
|
+
|
|
41
|
+
this.initialized = true;
|
|
42
|
+
|
|
43
|
+
console.log('ā
Luna Agents plugin initialized successfully');
|
|
44
|
+
console.log(`š Active project: ${this.apiClient.projectId}`);
|
|
45
|
+
console.log('š Ready for AI-powered development lifecycle management');
|
|
46
|
+
|
|
47
|
+
// Show status
|
|
48
|
+
await this.showStatus();
|
|
49
|
+
|
|
50
|
+
return true;
|
|
51
|
+
} catch (error) {
|
|
52
|
+
console.error('ā Failed to initialize Luna Agents plugin:', error.message);
|
|
53
|
+
|
|
54
|
+
// Fallback to offline mode
|
|
55
|
+
console.log('š Falling back to offline mode...');
|
|
56
|
+
return this.initializeOfflineMode();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Load plugin configuration
|
|
62
|
+
*/
|
|
63
|
+
loadConfiguration(userConfig = {}) {
|
|
64
|
+
const defaultConfig = {
|
|
65
|
+
api: {
|
|
66
|
+
baseURL: process.env.LUNA_API_URL || 'http://localhost:3000/api/v1',
|
|
67
|
+
timeout: 30000,
|
|
68
|
+
retries: 3
|
|
69
|
+
},
|
|
70
|
+
features: {
|
|
71
|
+
enableAPI: true,
|
|
72
|
+
enableOfflineMode: true,
|
|
73
|
+
enableCaching: true,
|
|
74
|
+
autoDetectProject: true
|
|
75
|
+
},
|
|
76
|
+
auth: {
|
|
77
|
+
autoLogin: true,
|
|
78
|
+
storeCredentials: true
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// Load from config file if exists
|
|
83
|
+
const configPath = path.join(process.cwd(), '.luna-config.json');
|
|
84
|
+
let fileConfig = {};
|
|
85
|
+
|
|
86
|
+
if (fs.existsSync(configPath)) {
|
|
87
|
+
try {
|
|
88
|
+
fileConfig = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
89
|
+
} catch (error) {
|
|
90
|
+
console.warn('ā ļø Could not load .luna-config.json:', error.message);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return this.mergeConfigs(defaultConfig, fileConfig, userConfig);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Merge configuration objects
|
|
99
|
+
*/
|
|
100
|
+
mergeConfigs(...configs) {
|
|
101
|
+
return configs.reduce((merged, config) => {
|
|
102
|
+
return this.deepMerge(merged, config);
|
|
103
|
+
}, {});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
deepMerge(target, source) {
|
|
107
|
+
const result = { ...target };
|
|
108
|
+
|
|
109
|
+
for (const key in source) {
|
|
110
|
+
if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {
|
|
111
|
+
result[key] = this.deepMerge(result[key] || {}, source[key]);
|
|
112
|
+
} else {
|
|
113
|
+
result[key] = source[key];
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Setup plugin capabilities
|
|
122
|
+
*/
|
|
123
|
+
setupCapabilities() {
|
|
124
|
+
// API-based capabilities
|
|
125
|
+
this.capabilities = {
|
|
126
|
+
// Authentication
|
|
127
|
+
login: this.apiClient.login.bind(this.apiClient),
|
|
128
|
+
register: this.apiClient.register.bind(this.apiClient),
|
|
129
|
+
|
|
130
|
+
// Project management
|
|
131
|
+
createProject: this.apiClient.createProject.bind(this.apiClient),
|
|
132
|
+
getProjects: this.apiClient.getProjects.bind(this.apiClient),
|
|
133
|
+
|
|
134
|
+
// Agent management
|
|
135
|
+
getAgents: this.apiClient.getAgents.bind(this.apiClient),
|
|
136
|
+
startAgent: this.apiClient.startAgent.bind(this.apiClient),
|
|
137
|
+
stopAgent: this.apiClient.stopAgent.bind(this.apiClient),
|
|
138
|
+
|
|
139
|
+
// Task management
|
|
140
|
+
createTask: this.apiClient.createTask.bind(this.apiClient),
|
|
141
|
+
getTasks: this.apiClient.getTasks.bind(this.apiClient),
|
|
142
|
+
|
|
143
|
+
// Enhanced RAG and context management
|
|
144
|
+
indexProject: this.apiClient.indexProject.bind(this.apiClient),
|
|
145
|
+
indexRepository: this.apiClient.indexRepository.bind(this.apiClient),
|
|
146
|
+
indexFile: this.apiClient.indexFile.bind(this.apiClient),
|
|
147
|
+
queryRAG: this.apiClient.queryRAG.bind(this.apiClient),
|
|
148
|
+
searchDocuments: this.apiClient.searchDocuments.bind(this.apiClient),
|
|
149
|
+
getRAGStatus: this.apiClient.getRAGStatus.bind(this.apiClient),
|
|
150
|
+
getRAGStatistics: this.apiClient.getRAGStatistics.bind(this.apiClient),
|
|
151
|
+
deleteDocuments: this.apiClient.deleteDocuments.bind(this.apiClient),
|
|
152
|
+
getConversationHistory: this.apiClient.getConversationHistory.bind(this.apiClient),
|
|
153
|
+
clearConversationHistory: this.apiClient.clearConversationHistory.bind(this.apiClient),
|
|
154
|
+
getTokenUsage: this.apiClient.getTokenUsage.bind(this.apiClient),
|
|
155
|
+
|
|
156
|
+
// Enhanced RAG utilities
|
|
157
|
+
indexCurrentProject: this.ragUtils ? this.ragUtils.indexCurrentProject.bind(this.ragUtils) : null,
|
|
158
|
+
interactiveIndexing: this.ragUtils ? this.ragUtils.interactiveIndexing.bind(this.ragUtils) : null,
|
|
159
|
+
searchWithEnhancement: this.ragUtils ? this.ragUtils.searchWithEnhancement.bind(this.ragUtils) : null,
|
|
160
|
+
getSystemStatus: this.ragUtils ? this.ragUtils.getSystemStatus.bind(this.ragUtils) : null,
|
|
161
|
+
contextualQuery: this.ragUtils ? this.ragUtils.contextualQuery.bind(this.ragUtils) : null,
|
|
162
|
+
|
|
163
|
+
// AI generation
|
|
164
|
+
generateText: this.apiClient.generateText.bind(this.apiClient),
|
|
165
|
+
analyzeCode: this.apiClient.analyzeCode.bind(this.apiClient),
|
|
166
|
+
|
|
167
|
+
// Status and health
|
|
168
|
+
getStatus: this.apiClient.getStatus.bind(this.apiClient)
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Initialize offline mode
|
|
174
|
+
*/
|
|
175
|
+
initializeOfflineMode() {
|
|
176
|
+
console.log('š± Luna Agents running in offline mode');
|
|
177
|
+
console.log('š Local skills reference available');
|
|
178
|
+
|
|
179
|
+
this.capabilities = {
|
|
180
|
+
// Limited offline capabilities
|
|
181
|
+
getLocalInfo: () => ({ mode: 'offline', skills: 'available' }),
|
|
182
|
+
checkLocalEnvironment: this.checkLocalEnvironment.bind(this)
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
this.initialized = true;
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Show current status
|
|
191
|
+
*/
|
|
192
|
+
async showStatus() {
|
|
193
|
+
try {
|
|
194
|
+
const status = await this.capabilities.getStatus();
|
|
195
|
+
|
|
196
|
+
console.log('\nš Luna Platform Status:');
|
|
197
|
+
console.log('==================');
|
|
198
|
+
console.log(`š API Status: ${status.connected ? 'ā
Connected' : 'ā Disconnected'}`);
|
|
199
|
+
console.log(`š¤ Agents Available: ${status.agentsAvailable ? 'ā
Yes' : 'ā No'}`);
|
|
200
|
+
console.log(`ā” Tasks Active: ${status.tasksActive ? 'ā
Yes' : 'ā No'}`);
|
|
201
|
+
console.log(`š Project: ${status.project || 'Not detected'}`);
|
|
202
|
+
|
|
203
|
+
if (status.error) {
|
|
204
|
+
console.log(`ā ļø Warning: ${status.error}`);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
console.log('==================\n');
|
|
208
|
+
} catch (error) {
|
|
209
|
+
console.log('ā¹ļø Status check failed, continuing...');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Check local environment
|
|
215
|
+
*/
|
|
216
|
+
checkLocalEnvironment() {
|
|
217
|
+
const packagePath = path.join(process.cwd(), 'package.json');
|
|
218
|
+
const hasPackageJson = fs.existsSync(packagePath);
|
|
219
|
+
|
|
220
|
+
return {
|
|
221
|
+
hasProject: hasPackageJson,
|
|
222
|
+
projectType: hasPackageJson ? this.detectProjectType(packagePath) : 'unknown',
|
|
223
|
+
nodeVersion: process.version,
|
|
224
|
+
platform: process.platform,
|
|
225
|
+
workingDirectory: process.cwd()
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Detect project type from package.json
|
|
231
|
+
*/
|
|
232
|
+
detectProjectType(packagePath) {
|
|
233
|
+
try {
|
|
234
|
+
const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
235
|
+
const dependencies = { ...packageJson.dependencies, ...packageJson.devDependencies };
|
|
236
|
+
|
|
237
|
+
if (dependencies.react || dependencies['react-dom']) return 'react';
|
|
238
|
+
if (dependencies.vue) return 'vue';
|
|
239
|
+
if (dependencies.angular) return 'angular';
|
|
240
|
+
if (dependencies.express) return 'express';
|
|
241
|
+
if (dependencies.next) return 'next';
|
|
242
|
+
if (dependencies.gatsby) return 'gatsby';
|
|
243
|
+
if (dependencies.electron) return 'electron';
|
|
244
|
+
|
|
245
|
+
return 'unknown';
|
|
246
|
+
} catch (error) {
|
|
247
|
+
return 'unknown';
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Plugin cleanup
|
|
253
|
+
*/
|
|
254
|
+
async cleanup() {
|
|
255
|
+
try {
|
|
256
|
+
if (this.initialized && this.capabilities) {
|
|
257
|
+
// Clear API client cache if available
|
|
258
|
+
if (this.apiClient.clearCache) {
|
|
259
|
+
this.apiClient.clearCache();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
console.log('š Luna Agents plugin cleaned up');
|
|
264
|
+
} catch (error) {
|
|
265
|
+
console.error('ā ļø Error during cleanup:', error.message);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Get plugin capabilities
|
|
271
|
+
*/
|
|
272
|
+
getCapabilities() {
|
|
273
|
+
return this.capabilities || {};
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Check if plugin is initialized
|
|
278
|
+
*/
|
|
279
|
+
isInitialized() {
|
|
280
|
+
return this.initialized;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// Create and export plugin instance
|
|
285
|
+
const plugin = new LunaAgentsPlugin();
|
|
286
|
+
|
|
287
|
+
// Export the plugin interface for Claude
|
|
288
|
+
module.exports = {
|
|
289
|
+
name: 'luna-agents',
|
|
290
|
+
version: '2.1.0',
|
|
291
|
+
description: 'š Complete AI-powered development lifecycle management with API integration - From requirements to post-launch monitoring',
|
|
292
|
+
|
|
293
|
+
// Initialize plugin
|
|
294
|
+
initialize: async function(config) {
|
|
295
|
+
return await plugin.initialize(config);
|
|
296
|
+
},
|
|
297
|
+
|
|
298
|
+
// Cleanup plugin
|
|
299
|
+
cleanup: async function() {
|
|
300
|
+
return await plugin.cleanup();
|
|
301
|
+
},
|
|
302
|
+
|
|
303
|
+
// Get capabilities
|
|
304
|
+
getCapabilities: function() {
|
|
305
|
+
return plugin.getCapabilities();
|
|
306
|
+
},
|
|
307
|
+
|
|
308
|
+
// Check initialization status
|
|
309
|
+
isInitialized: function() {
|
|
310
|
+
return plugin.isInitialized();
|
|
311
|
+
},
|
|
312
|
+
|
|
313
|
+
// Direct access to API client for advanced usage
|
|
314
|
+
api: plugin.apiClient,
|
|
315
|
+
|
|
316
|
+
// Plugin configuration
|
|
317
|
+
config: plugin.config
|
|
318
|
+
};
|