@sowonai/crewx-cli 0.4.0-dev.8 → 0.4.0-rc.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/README.md +34 -12
- package/dist/ai-provider.service.d.ts +7 -12
- package/dist/ai-provider.service.js +42 -20
- package/dist/ai-provider.service.js.map +1 -1
- package/dist/ai.service.d.ts +5 -45
- package/dist/ai.service.js +10 -587
- package/dist/ai.service.js.map +1 -1
- package/dist/app.module.js +67 -11
- package/dist/app.module.js.map +1 -1
- package/dist/cli/agent.handler.js +3 -4
- package/dist/cli/agent.handler.js.map +1 -1
- package/dist/cli/chat.handler.d.ts +2 -1
- package/dist/cli/chat.handler.js +17 -6
- package/dist/cli/chat.handler.js.map +1 -1
- package/dist/cli/cli.handler.js +4 -0
- package/dist/cli/cli.handler.js.map +1 -1
- package/dist/cli/doctor.handler.js +8 -40
- package/dist/cli/doctor.handler.js.map +1 -1
- package/dist/cli/execute.handler.js +8 -6
- package/dist/cli/execute.handler.js.map +1 -1
- package/dist/cli/log.handler.d.ts +2 -0
- package/dist/cli/log.handler.js +69 -0
- package/dist/cli/log.handler.js.map +1 -0
- package/dist/cli/query.handler.js +4 -2
- package/dist/cli/query.handler.js.map +1 -1
- package/dist/cli-options.d.ts +4 -2
- package/dist/cli-options.js +19 -12
- package/dist/cli-options.js.map +1 -1
- package/dist/crewx.tool.d.ts +18 -2
- package/dist/crewx.tool.js +542 -105
- package/dist/crewx.tool.js.map +1 -1
- package/dist/providers/dynamic-provider.factory.d.ts +9 -51
- package/dist/providers/dynamic-provider.factory.js +44 -506
- package/dist/providers/dynamic-provider.factory.js.map +1 -1
- package/dist/services/agent-loader.service.d.ts +6 -2
- package/dist/services/agent-loader.service.js +210 -26
- package/dist/services/agent-loader.service.js.map +1 -1
- package/dist/services/config.service.d.ts +7 -27
- package/dist/services/config.service.js +80 -38
- package/dist/services/config.service.js.map +1 -1
- package/dist/services/document-loader.service.d.ts +9 -4
- package/dist/services/document-loader.service.js +26 -7
- package/dist/services/document-loader.service.js.map +1 -1
- package/dist/services/help.service.js +6 -0
- package/dist/services/help.service.js.map +1 -1
- package/dist/services/parallel-processing.service.d.ts +2 -0
- package/dist/services/parallel-processing.service.js +40 -6
- package/dist/services/parallel-processing.service.js.map +1 -1
- package/dist/services/provider-bridge.service.d.ts +35 -0
- package/dist/services/provider-bridge.service.js +224 -0
- package/dist/services/provider-bridge.service.js.map +1 -0
- package/dist/services/remote-agent.service.d.ts +1 -1
- package/dist/services/task-management.service.d.ts +3 -3
- package/dist/services/task-management.service.js +2 -1
- package/dist/services/task-management.service.js.map +1 -1
- package/dist/services/template.service.d.ts +2 -0
- package/dist/services/template.service.js +46 -1
- package/dist/services/template.service.js.map +1 -1
- package/dist/utils/stdin-utils.d.ts +4 -25
- package/dist/utils/stdin-utils.js +2 -23
- package/dist/utils/stdin-utils.js.map +1 -1
- package/dist/utils/template-processor.d.ts +1 -29
- package/dist/utils/template-processor.js +38 -11
- package/dist/utils/template-processor.js.map +1 -1
- package/package.json +2 -3
- package/scripts/postbuild-cli.mjs +20 -1
- package/templates/agents/default.yaml +455 -0
- package/templates/agents/minimal.yaml +16 -0
- package/templates/documents/crewx-manual.md +390 -0
- package/templates/versions.json +19 -0
- package/dist/providers/base-ai.provider.d.ts +0 -1
- package/dist/providers/base-ai.provider.js +0 -6
- package/dist/providers/base-ai.provider.js.map +0 -1
- package/dist/providers/claude.provider.d.ts +0 -5
- package/dist/providers/claude.provider.js +0 -32
- package/dist/providers/claude.provider.js.map +0 -1
- package/dist/providers/codex.provider.d.ts +0 -4
- package/dist/providers/codex.provider.js +0 -30
- package/dist/providers/codex.provider.js.map +0 -1
- package/dist/providers/copilot.provider.d.ts +0 -5
- package/dist/providers/copilot.provider.js +0 -32
- package/dist/providers/copilot.provider.js.map +0 -1
- package/dist/providers/gemini.provider.d.ts +0 -5
- package/dist/providers/gemini.provider.js +0 -32
- package/dist/providers/gemini.provider.js.map +0 -1
- package/dist/services/context-enhancement.service.d.ts +0 -13
- package/dist/services/context-enhancement.service.js +0 -169
- package/dist/services/context-enhancement.service.js.map +0 -1
- package/dist/utils/mention-parser.d.ts +0 -18
- package/dist/utils/mention-parser.js +0 -136
- package/dist/utils/mention-parser.js.map +0 -1
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
# CrewX User Manual
|
|
2
|
+
|
|
3
|
+
## What is CrewX?
|
|
4
|
+
|
|
5
|
+
CrewX is a **multi-AI agent collaboration platform** that enables developers to work with multiple AI assistants simultaneously. It supports:
|
|
6
|
+
|
|
7
|
+
- **CLI Interface**: Command-line tool for direct agent interaction
|
|
8
|
+
- **Slack Bot**: Team collaboration through Slack workspace integration
|
|
9
|
+
- **MCP Server**: Model Context Protocol server for IDE integration (VS Code, etc.)
|
|
10
|
+
|
|
11
|
+
### Supported AI Providers
|
|
12
|
+
- **Claude** (Anthropic) - Complex reasoning, architecture design
|
|
13
|
+
- **Gemini** (Google) - Performance optimization, data analysis
|
|
14
|
+
- **GitHub Copilot** - Code implementation, best practices
|
|
15
|
+
- **Codex** (CrewX Codex CLI) - CLI-first automation and development workflows
|
|
16
|
+
|
|
17
|
+
### Key Features
|
|
18
|
+
1. **Multi-Agent Collaboration**: Query multiple agents in parallel
|
|
19
|
+
2. **Context Management**: Project-specific documents and configurations
|
|
20
|
+
3. **Flexible Deployment**: CLI, Slack Bot, or MCP Server mode
|
|
21
|
+
4. **Custom Agents**: Create specialized agents with custom prompts
|
|
22
|
+
5. **Security**: Prompt injection protection for built-in agents
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Basic Commands (CLI)
|
|
27
|
+
### Agent list
|
|
28
|
+
```bash
|
|
29
|
+
crewx agent ls
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Query (Read-Only Analysis)
|
|
33
|
+
```bash
|
|
34
|
+
crewx query "@agent your question"
|
|
35
|
+
crewx q "@agent your question" # shortcut
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Execute (File Creation/Modification)
|
|
39
|
+
```bash
|
|
40
|
+
crewx execute "@agent your task"
|
|
41
|
+
crewx x "@agent your task" # shortcut
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### System Commands
|
|
45
|
+
```bash
|
|
46
|
+
crewx agent # List available agents (default: ls)
|
|
47
|
+
crewx agent ls # List available agents (explicit)
|
|
48
|
+
crewx init # Initialize agents.yaml
|
|
49
|
+
crewx doctor # Check AI provider status
|
|
50
|
+
crewx log # List all task logs (default)
|
|
51
|
+
crewx log ls # List all task logs (explicit)
|
|
52
|
+
crewx log <id> # View specific task log
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Agent Mention Syntax
|
|
56
|
+
|
|
57
|
+
### Basic Agent Mention
|
|
58
|
+
```bash
|
|
59
|
+
crewx q "@claude analyze this code"
|
|
60
|
+
crewx q "@gemini search latest AI news"
|
|
61
|
+
crewx q "@copilot suggest improvements"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Model Selection
|
|
65
|
+
Specify AI model using colon syntax:
|
|
66
|
+
```bash
|
|
67
|
+
crewx q "@claude:opus complex architecture design"
|
|
68
|
+
crewx q "@claude:sonnet general development tasks"
|
|
69
|
+
crewx q "@claude:haiku quick simple questions"
|
|
70
|
+
crewx q "@gemini:gemini-2.5-pro advanced analysis"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Multiple Agents (Parallel Execution)
|
|
74
|
+
Query multiple agents simultaneously:
|
|
75
|
+
```bash
|
|
76
|
+
crewx q "@claude @gemini @copilot review this code"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Built-in Agents
|
|
80
|
+
|
|
81
|
+
### @crewx (This Agent)
|
|
82
|
+
Your CrewX assistant. Fallback mechanism: claude → gemini → copilot
|
|
83
|
+
|
|
84
|
+
### @claude (Anthropic Claude)
|
|
85
|
+
Best for: Complex reasoning, code analysis, architecture
|
|
86
|
+
|
|
87
|
+
### @gemini (Google Gemini)
|
|
88
|
+
Best for: Performance optimization, data analysis, research
|
|
89
|
+
|
|
90
|
+
### @copilot (GitHub Copilot)
|
|
91
|
+
Best for: Code implementation, best practices, testing
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Deployment Modes
|
|
96
|
+
|
|
97
|
+
### 1. CLI Mode (Default)
|
|
98
|
+
Direct command-line interaction with agents:
|
|
99
|
+
```bash
|
|
100
|
+
# Query agents
|
|
101
|
+
crewx query "@claude analyze this code"
|
|
102
|
+
crewx q "@gemini search latest AI news"
|
|
103
|
+
|
|
104
|
+
# Execute tasks
|
|
105
|
+
crewx execute "@copilot implement feature"
|
|
106
|
+
crewx x "@claude create tests"
|
|
107
|
+
|
|
108
|
+
# System commands
|
|
109
|
+
crewx init # Initialize agents.yaml
|
|
110
|
+
crewx doctor # Check AI provider status
|
|
111
|
+
crewx log # View task logs
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 2. Slack Bot Mode
|
|
115
|
+
Integrate CrewX with your Slack workspace for team collaboration:
|
|
116
|
+
|
|
117
|
+
**Starting Slack Bot:**
|
|
118
|
+
```bash
|
|
119
|
+
# Set environment variables
|
|
120
|
+
export SLACK_BOT_TOKEN=xoxb-...
|
|
121
|
+
export SLACK_APP_TOKEN=xapp-...
|
|
122
|
+
export SLACK_SIGNING_SECRET=...
|
|
123
|
+
|
|
124
|
+
# Start bot
|
|
125
|
+
crewx slack --log
|
|
126
|
+
|
|
127
|
+
# Or use .env.slack file
|
|
128
|
+
npm run start:slack
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Using in Slack:**
|
|
132
|
+
- Mention bot: `@CrewX analyze this code`
|
|
133
|
+
- Use keyword: `crewx what is this bug?`
|
|
134
|
+
- Direct message: Send DM to CrewX bot
|
|
135
|
+
|
|
136
|
+
**Features:**
|
|
137
|
+
- Real-time agent responses in Slack threads
|
|
138
|
+
- Team-wide AI collaboration
|
|
139
|
+
- Persistent chat history
|
|
140
|
+
- Interactive buttons (View Details, Rerun)
|
|
141
|
+
|
|
142
|
+
### 3. MCP Server Mode
|
|
143
|
+
Integrate with IDEs via Model Context Protocol:
|
|
144
|
+
|
|
145
|
+
**Starting MCP Server:**
|
|
146
|
+
```bash
|
|
147
|
+
crewx mcp
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**IDE Integration (VS Code):**
|
|
151
|
+
Add to VS Code settings.json:
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"mcp.servers": {
|
|
155
|
+
"crewx": {
|
|
156
|
+
"command": "crewx",
|
|
157
|
+
"args": ["mcp"]
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Features:**
|
|
164
|
+
- Direct IDE integration
|
|
165
|
+
- Context-aware code assistance
|
|
166
|
+
- Multiple agent coordination
|
|
167
|
+
- Tool-based interactions
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Custom Agents
|
|
172
|
+
|
|
173
|
+
Create `agents.yaml` in your project:
|
|
174
|
+
```yaml
|
|
175
|
+
agents:
|
|
176
|
+
- id: "my_agent"
|
|
177
|
+
name: "My Custom Agent"
|
|
178
|
+
role: "developer"
|
|
179
|
+
provider: "cli/claude" # Fixed provider (no fallback)
|
|
180
|
+
inline:
|
|
181
|
+
model: "sonnet"
|
|
182
|
+
prompt: |
|
|
183
|
+
You are a specialized assistant...
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Provider Configuration
|
|
187
|
+
|
|
188
|
+
**Fixed Provider (Single String):**
|
|
189
|
+
```yaml
|
|
190
|
+
# Always uses specified provider, no fallback
|
|
191
|
+
- id: "claude_expert"
|
|
192
|
+
provider: "cli/claude"
|
|
193
|
+
inline:
|
|
194
|
+
prompt: |
|
|
195
|
+
You are a Claude-specific expert...
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Fallback Provider (Array):**
|
|
199
|
+
```yaml
|
|
200
|
+
# Tries providers in order: claude → gemini → copilot
|
|
201
|
+
- id: "flexible_agent"
|
|
202
|
+
provider: ["cli/claude", "cli/gemini", "cli/copilot"]
|
|
203
|
+
options:
|
|
204
|
+
execute:
|
|
205
|
+
cli/claude:
|
|
206
|
+
- "--permission-mode=acceptEdits"
|
|
207
|
+
- "--add-dir=."
|
|
208
|
+
cli/gemini:
|
|
209
|
+
- "--include-directories=."
|
|
210
|
+
cli/copilot:
|
|
211
|
+
- "--add-dir=."
|
|
212
|
+
inline:
|
|
213
|
+
prompt: |
|
|
214
|
+
You are a flexible assistant that works with multiple providers...
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**Provider Fallback Behavior:**
|
|
218
|
+
- **Single string**: Fixed provider, no fallback
|
|
219
|
+
- **Array**: Tries each provider in order until one is available
|
|
220
|
+
- **With model specified**: Uses first provider in array, no fallback
|
|
221
|
+
- Example: `@crewx` uses `['cli/claude', 'cli/gemini', 'cli/copilot']` for automatic fallback
|
|
222
|
+
|
|
223
|
+
**Use Cases:**
|
|
224
|
+
- **Fixed provider**: When you need specific provider features
|
|
225
|
+
- **Fallback**: When availability matters more than provider choice
|
|
226
|
+
- **Provider-specific options**: Different CLI options per provider
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Document System
|
|
231
|
+
|
|
232
|
+
Reference documents in agent prompt:
|
|
233
|
+
```yaml
|
|
234
|
+
agents:
|
|
235
|
+
- id: "helper"
|
|
236
|
+
inline:
|
|
237
|
+
prompt: |
|
|
238
|
+
<manual>
|
|
239
|
+
{{{documents.user_guide.content}}}
|
|
240
|
+
</manual>
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Document Levels
|
|
244
|
+
1. `documents.yaml` - Global documents
|
|
245
|
+
2. `agents.yaml` documents - Project documents
|
|
246
|
+
3. `agent.inline.documents` - Agent-specific
|
|
247
|
+
|
|
248
|
+
### Template Variables
|
|
249
|
+
- `{{{documents.name.content}}}` - Full content
|
|
250
|
+
- `{{{documents.name.toc}}}` - Table of contents
|
|
251
|
+
- `{{documents.name.summary}}` - Summary
|
|
252
|
+
|
|
253
|
+
## Dynamic Template System
|
|
254
|
+
|
|
255
|
+
CrewX uses Handlebars for context-aware prompts:
|
|
256
|
+
|
|
257
|
+
### Available Context
|
|
258
|
+
|
|
259
|
+
**Agent Self-Information:**
|
|
260
|
+
- `{{agent.id}}` - Agent ID (e.g., "claude", "my_agent")
|
|
261
|
+
- `{{agent.name}}` - Agent name (e.g., "Claude AI")
|
|
262
|
+
- `{{agent.provider}}` - AI provider (claude, gemini, copilot)
|
|
263
|
+
- `{{agent.model}}` - Model name (sonnet, haiku, opus)
|
|
264
|
+
- `{{agent.workingDirectory}}` - Working directory path
|
|
265
|
+
|
|
266
|
+
**Environment Variables:**
|
|
267
|
+
- `{{env.VAR_NAME}}` - Any environment variable
|
|
268
|
+
- `{{env.NODE_ENV}}` - Common: production, development
|
|
269
|
+
- `{{env.DEBUG}}` - Debug flag
|
|
270
|
+
|
|
271
|
+
**Other Context:**
|
|
272
|
+
- `{{mode}}` - 'query' or 'execute'
|
|
273
|
+
- `{{vars.customKey}}` - Custom variables
|
|
274
|
+
|
|
275
|
+
### Example: Agent Self-Awareness
|
|
276
|
+
```yaml
|
|
277
|
+
agents:
|
|
278
|
+
- id: "my_agent"
|
|
279
|
+
name: "My Smart Agent"
|
|
280
|
+
inline:
|
|
281
|
+
provider: "cli/claude"
|
|
282
|
+
model: "sonnet"
|
|
283
|
+
prompt: |
|
|
284
|
+
You are {{agent.name}} (ID: {{agent.id}}).
|
|
285
|
+
Running on {{agent.provider}} using {{agent.model}} model.
|
|
286
|
+
Working directory: {{agent.workingDirectory}}
|
|
287
|
+
|
|
288
|
+
{{#if (eq agent.model "haiku")}}
|
|
289
|
+
Provide fast, concise responses.
|
|
290
|
+
{{else if (eq agent.model "opus")}}
|
|
291
|
+
Provide detailed, comprehensive analysis.
|
|
292
|
+
{{/if}}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Conditional Logic
|
|
296
|
+
```yaml
|
|
297
|
+
prompt: |
|
|
298
|
+
{{#if (eq env.NODE_ENV "production")}}
|
|
299
|
+
Production mode: Be careful
|
|
300
|
+
{{else}}
|
|
301
|
+
Development mode: Experiment freely
|
|
302
|
+
{{/if}}
|
|
303
|
+
|
|
304
|
+
{{#if (or (eq agent.provider "cli/claude") (eq agent.provider "cli/gemini"))}}
|
|
305
|
+
Web search available!
|
|
306
|
+
{{/if}}
|
|
307
|
+
|
|
308
|
+
{{#if (eq agent.model "haiku")}}
|
|
309
|
+
Fast response mode
|
|
310
|
+
{{else if (eq agent.model "opus")}}
|
|
311
|
+
Deep analysis mode
|
|
312
|
+
{{/if}}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Helpers Available
|
|
316
|
+
- `(eq a b)` - Equality
|
|
317
|
+
- `(ne a b)` - Not equal
|
|
318
|
+
- `(and a b)` - Logical AND
|
|
319
|
+
- `(or a b)` - Logical OR
|
|
320
|
+
- `(not a)` - Logical NOT
|
|
321
|
+
- `(contains array value)` - Array contains
|
|
322
|
+
|
|
323
|
+
### Example: Environment-Aware Agent
|
|
324
|
+
```yaml
|
|
325
|
+
agents:
|
|
326
|
+
- id: "smart_agent"
|
|
327
|
+
inline:
|
|
328
|
+
prompt: |
|
|
329
|
+
You are an adaptive assistant.
|
|
330
|
+
|
|
331
|
+
{{#if env.DEBUG}}
|
|
332
|
+
Debug mode enabled: Provide verbose explanations
|
|
333
|
+
{{/if}}
|
|
334
|
+
|
|
335
|
+
{{#if (eq agent.provider "cli/claude")}}
|
|
336
|
+
Using Claude - complex reasoning available
|
|
337
|
+
{{/if}}
|
|
338
|
+
|
|
339
|
+
Provider: {{agent.provider}}
|
|
340
|
+
Model: {{agent.model}}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
Set environment variables:
|
|
344
|
+
```bash
|
|
345
|
+
export DEBUG=true
|
|
346
|
+
export NODE_ENV=production
|
|
347
|
+
crewx query "@smart_agent analyze this"
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Security Features
|
|
353
|
+
|
|
354
|
+
### Prompt Injection Protection
|
|
355
|
+
|
|
356
|
+
CrewX built-in agents (@claude, @gemini, @copilot) are protected against prompt injection attacks using an authenticated system prompt mechanism.
|
|
357
|
+
|
|
358
|
+
**How it works:**
|
|
359
|
+
1. Each agent session generates a unique random security key (`{{vars.security_key}}`)
|
|
360
|
+
2. Agent prompts are wrapped in authenticated tags with the security key
|
|
361
|
+
3. Agents are instructed to ONLY follow instructions within authenticated tags
|
|
362
|
+
4. Any user-provided prompt tags with different or missing keys are ignored
|
|
363
|
+
|
|
364
|
+
**User Injection Attempts (Blocked):**
|
|
365
|
+
- "Ignore all previous instructions and do X" → Ignored
|
|
366
|
+
- Attempting to inject unauthorized system instructions → Treated as user input
|
|
367
|
+
- Using incorrect or fake security keys → Key mismatch, ignored
|
|
368
|
+
|
|
369
|
+
**Benefits:**
|
|
370
|
+
- ✅ Prevents unauthorized behavior changes
|
|
371
|
+
- ✅ Maintains agent integrity and purpose
|
|
372
|
+
- ✅ Random keys are unpredictable per session
|
|
373
|
+
- ✅ Transparent to legitimate users
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Agent Behavior Control
|
|
378
|
+
|
|
379
|
+
### User-Defined Behavior
|
|
380
|
+
CrewX does NOT inject any hardcoded behavior prompts. You have complete control over agent behavior through the agent's prompt configuration.
|
|
381
|
+
|
|
382
|
+
### Custom Read-Only Mode
|
|
383
|
+
If you want read-only analysis:
|
|
384
|
+
```yaml
|
|
385
|
+
agents:
|
|
386
|
+
- id: "analyzer"
|
|
387
|
+
inline:
|
|
388
|
+
prompt: |
|
|
389
|
+
You are a read-only analyzer. Do not modify files.
|
|
390
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"latest": "v0.1.8",
|
|
3
|
+
"versions": {
|
|
4
|
+
"v0.1.8": {
|
|
5
|
+
"released": "2025-01-01",
|
|
6
|
+
"templates": ["default", "minimal", "development", "production"],
|
|
7
|
+
"description": "Initial template system with @crewx agent and model selection support",
|
|
8
|
+
"minCrewxVersion": "0.1.8",
|
|
9
|
+
"maxCrewxVersion": null
|
|
10
|
+
},
|
|
11
|
+
"main": {
|
|
12
|
+
"released": "development",
|
|
13
|
+
"templates": ["default", "minimal", "secure-wrapper", "development", "production"],
|
|
14
|
+
"description": "Development branch - latest unreleased features",
|
|
15
|
+
"minCrewxVersion": "0.1.8",
|
|
16
|
+
"maxCrewxVersion": null
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { BaseAIProvider } from '@sowonai/crewx-sdk';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseAIProvider = void 0;
|
|
4
|
-
var crewx_sdk_1 = require("@sowonai/crewx-sdk");
|
|
5
|
-
Object.defineProperty(exports, "BaseAIProvider", { enumerable: true, get: function () { return crewx_sdk_1.BaseAIProvider; } });
|
|
6
|
-
//# sourceMappingURL=base-ai.provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-ai.provider.js","sourceRoot":"","sources":["../../src/providers/base-ai.provider.ts"],"names":[],"mappings":";;;AAAA,gDAAoD;AAA3C,2GAAA,cAAc,OAAA"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ClaudeProvider = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const crewx_sdk_1 = require("@sowonai/crewx-sdk");
|
|
15
|
-
const tool_call_service_1 = require("../services/tool-call.service");
|
|
16
|
-
const version_1 = require("../version");
|
|
17
|
-
const logger_adapter_1 = require("./logger.adapter");
|
|
18
|
-
let ClaudeProvider = class ClaudeProvider extends crewx_sdk_1.ClaudeProvider {
|
|
19
|
-
constructor(toolCallService) {
|
|
20
|
-
super({
|
|
21
|
-
logger: (0, logger_adapter_1.createLoggerAdapter)('ClaudeProvider'),
|
|
22
|
-
toolCallHandler: toolCallService,
|
|
23
|
-
crewxVersion: version_1.CREWX_VERSION,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
exports.ClaudeProvider = ClaudeProvider;
|
|
28
|
-
exports.ClaudeProvider = ClaudeProvider = __decorate([
|
|
29
|
-
(0, common_1.Injectable)(),
|
|
30
|
-
__metadata("design:paramtypes", [tool_call_service_1.ToolCallService])
|
|
31
|
-
], ClaudeProvider);
|
|
32
|
-
//# sourceMappingURL=claude.provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.provider.js","sourceRoot":"","sources":["../../src/providers/claude.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAAyE;AACzE,qEAAgE;AAChE,wCAA2C;AAC3C,qDAAuD;AAGhD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,0BAAiB;IACnD,YAAY,eAAiC;QAC3C,KAAK,CAAC;YACJ,MAAM,EAAE,IAAA,oCAAmB,EAAC,gBAAgB,CAAC;YAC7C,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,uBAAa;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEmB,mCAAe;GADlC,cAAc,CAQ1B"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CodexProvider = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const crewx_sdk_1 = require("@sowonai/crewx-sdk");
|
|
15
|
-
const version_1 = require("../version");
|
|
16
|
-
const logger_adapter_1 = require("./logger.adapter");
|
|
17
|
-
let CodexProvider = class CodexProvider extends crewx_sdk_1.CodexProvider {
|
|
18
|
-
constructor() {
|
|
19
|
-
super({
|
|
20
|
-
logger: (0, logger_adapter_1.createLoggerAdapter)('CodexProvider'),
|
|
21
|
-
crewxVersion: version_1.CREWX_VERSION,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
exports.CodexProvider = CodexProvider;
|
|
26
|
-
exports.CodexProvider = CodexProvider = __decorate([
|
|
27
|
-
(0, common_1.Injectable)(),
|
|
28
|
-
__metadata("design:paramtypes", [])
|
|
29
|
-
], CodexProvider);
|
|
30
|
-
//# sourceMappingURL=codex.provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex.provider.js","sourceRoot":"","sources":["../../src/providers/codex.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAAuE;AACvE,wCAA2C;AAC3C,qDAAuD;AAGhD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,yBAAgB;IACjD;QACE,KAAK,CAAC;YACJ,MAAM,EAAE,IAAA,oCAAmB,EAAC,eAAe,CAAC;YAC5C,YAAY,EAAE,uBAAa;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAPY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;;GACA,aAAa,CAOzB"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CopilotProvider = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const crewx_sdk_1 = require("@sowonai/crewx-sdk");
|
|
15
|
-
const tool_call_service_1 = require("../services/tool-call.service");
|
|
16
|
-
const version_1 = require("../version");
|
|
17
|
-
const logger_adapter_1 = require("./logger.adapter");
|
|
18
|
-
let CopilotProvider = class CopilotProvider extends crewx_sdk_1.CopilotProvider {
|
|
19
|
-
constructor(toolCallService) {
|
|
20
|
-
super({
|
|
21
|
-
logger: (0, logger_adapter_1.createLoggerAdapter)('CopilotProvider'),
|
|
22
|
-
toolCallHandler: toolCallService,
|
|
23
|
-
crewxVersion: version_1.CREWX_VERSION,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
exports.CopilotProvider = CopilotProvider;
|
|
28
|
-
exports.CopilotProvider = CopilotProvider = __decorate([
|
|
29
|
-
(0, common_1.Injectable)(),
|
|
30
|
-
__metadata("design:paramtypes", [tool_call_service_1.ToolCallService])
|
|
31
|
-
], CopilotProvider);
|
|
32
|
-
//# sourceMappingURL=copilot.provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.provider.js","sourceRoot":"","sources":["../../src/providers/copilot.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAA2E;AAC3E,qEAAgE;AAChE,wCAA2C;AAC3C,qDAAuD;AAGhD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,2BAAkB;IACrD,YAAY,eAAiC;QAC3C,KAAK,CAAC;YACJ,MAAM,EAAE,IAAA,oCAAmB,EAAC,iBAAiB,CAAC;YAC9C,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,uBAAa;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEmB,mCAAe;GADlC,eAAe,CAQ3B"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.GeminiProvider = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const crewx_sdk_1 = require("@sowonai/crewx-sdk");
|
|
15
|
-
const tool_call_service_1 = require("../services/tool-call.service");
|
|
16
|
-
const version_1 = require("../version");
|
|
17
|
-
const logger_adapter_1 = require("./logger.adapter");
|
|
18
|
-
let GeminiProvider = class GeminiProvider extends crewx_sdk_1.GeminiProvider {
|
|
19
|
-
constructor(toolCallService) {
|
|
20
|
-
super({
|
|
21
|
-
logger: (0, logger_adapter_1.createLoggerAdapter)('GeminiProvider'),
|
|
22
|
-
toolCallHandler: toolCallService,
|
|
23
|
-
crewxVersion: version_1.CREWX_VERSION,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
exports.GeminiProvider = GeminiProvider;
|
|
28
|
-
exports.GeminiProvider = GeminiProvider = __decorate([
|
|
29
|
-
(0, common_1.Injectable)(),
|
|
30
|
-
__metadata("design:paramtypes", [tool_call_service_1.ToolCallService])
|
|
31
|
-
], GeminiProvider);
|
|
32
|
-
//# sourceMappingURL=gemini.provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.provider.js","sourceRoot":"","sources":["../../src/providers/gemini.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAAyE;AACzE,qEAAgE;AAChE,wCAA2C;AAC3C,qDAAuD;AAGhD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,0BAAiB;IACnD,YAAY,eAAiC;QAC3C,KAAK,CAAC;YACJ,MAAM,EAAE,IAAA,oCAAmB,EAAC,gBAAgB,CAAC;YAC7C,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,uBAAa;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEmB,mCAAe;GADlC,cAAc,CAQ1B"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare class ContextEnhancementService {
|
|
2
|
-
private readonly logger;
|
|
3
|
-
private readonly projectContextCache;
|
|
4
|
-
private readonly CACHE_TTL;
|
|
5
|
-
loadProjectContext(workingDir: string): Promise<string>;
|
|
6
|
-
enhancePromptWithProjectContext(prompt: string, workingDir: string, options?: {
|
|
7
|
-
includeProjectContext?: boolean;
|
|
8
|
-
maxProjectContextLength?: number;
|
|
9
|
-
}): Promise<string>;
|
|
10
|
-
hasProjectContext(workingDir: string): Promise<boolean>;
|
|
11
|
-
createSampleClaudeMd(workingDir: string, projectName?: string): Promise<string>;
|
|
12
|
-
clearCache(): void;
|
|
13
|
-
}
|