@calliopelabs/cli 0.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/LICENSE +21 -0
- package/README.md +222 -0
- package/dist/bin.d.ts +10 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +156 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +446 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +79 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +181 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/providers.d.ts +19 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +383 -0
- package/dist/providers.js.map +1 -0
- package/dist/setup.d.ts +15 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +286 -0
- package/dist/setup.js.map +1 -0
- package/dist/tools.d.ts +15 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +281 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +47 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +60 -0
- package/dist/types.js.map +1 -0
- package/package.json +58 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Calliope Labs Inc
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Calliope CLI
|
|
2
|
+
|
|
3
|
+
> The Muse of Digital Eloquence
|
|
4
|
+
|
|
5
|
+
Multi-model AI agent CLI with Ralph Wiggum autonomous loops. Use Claude, Gemini, GPT, and more from a single elegant interface.
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
╭─────────────────────────────────────────────────────────────────╮
|
|
9
|
+
│ │
|
|
10
|
+
│ ██████╗ █████╗ ██╗ ██╗ ██╗ ██████╗ ██████╗ ███████╗ │
|
|
11
|
+
│ ██╔════╝██╔══██╗██║ ██║ ██║██╔═══██╗██╔══██╗██╔════╝ │
|
|
12
|
+
│ ██║ ███████║██║ ██║ ██║██║ ██║██████╔╝█████╗ │
|
|
13
|
+
│ ██║ ██╔══██║██║ ██║ ██║██║ ██║██╔═══╝ ██╔══╝ │
|
|
14
|
+
│ ╚██████╗██║ ██║███████╗███████╗██║╚██████╔╝██║ ███████╗ │
|
|
15
|
+
│ ╚═════╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚══════╝ │
|
|
16
|
+
│ │
|
|
17
|
+
│ The Muse of Digital Eloquence │
|
|
18
|
+
│ │
|
|
19
|
+
╰─────────────────────────────────────────────────────────────────╯
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install -g @calliopelabs/cli
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Run Calliope (first run will prompt for setup)
|
|
32
|
+
calliope
|
|
33
|
+
|
|
34
|
+
# Or set API key via environment
|
|
35
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
36
|
+
calliope
|
|
37
|
+
|
|
38
|
+
# Run in god mode (no permission prompts)
|
|
39
|
+
calliope -g
|
|
40
|
+
calliope --god-mode
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
On first run, Calliope will guide you through:
|
|
44
|
+
1. Selecting an AI provider (Anthropic, Google, OpenAI, etc.)
|
|
45
|
+
2. Entering your API key
|
|
46
|
+
3. Choosing a persona (Calliope, Professional, or Minimal)
|
|
47
|
+
|
|
48
|
+
## Features
|
|
49
|
+
|
|
50
|
+
### Multi-Model Support
|
|
51
|
+
|
|
52
|
+
Switch between 12+ providers on the fly:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
calliope> /provider anthropic # Use Claude
|
|
56
|
+
calliope> /provider google # Use Gemini
|
|
57
|
+
calliope> /provider openai # Use GPT
|
|
58
|
+
calliope> /provider mistral # Use Mistral
|
|
59
|
+
calliope> /provider ollama # Use local models
|
|
60
|
+
calliope> /provider openrouter # Use any model via OpenRouter
|
|
61
|
+
calliope> /provider litellm # Use LiteLLM proxy
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Ralph Wiggum Autonomous Loops
|
|
65
|
+
|
|
66
|
+
Run tasks autonomously until completion:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
calliope> /loop "Build a REST API with CRUD operations. Output DONE when complete." --max-iterations 20 --completion-promise "DONE"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The loop will:
|
|
73
|
+
- Run your prompt repeatedly
|
|
74
|
+
- Each iteration sees the previous work (files, git history)
|
|
75
|
+
- Stop when it outputs the completion promise
|
|
76
|
+
- Or stop at max iterations
|
|
77
|
+
|
|
78
|
+
Cancel anytime with `/cancel-loop` or `ESC`.
|
|
79
|
+
|
|
80
|
+
### Tools
|
|
81
|
+
|
|
82
|
+
Calliope has access to:
|
|
83
|
+
- **Shell** - Run any command
|
|
84
|
+
- **Read/Write Files** - File operations
|
|
85
|
+
- **Think** - Structured reasoning
|
|
86
|
+
|
|
87
|
+
### Personas
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
calliope> /persona calliope # Poetic, creative
|
|
91
|
+
calliope> /persona professional # Clear, concise
|
|
92
|
+
calliope> /persona minimal # Extremely brief
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Commands
|
|
96
|
+
|
|
97
|
+
| Command | Description |
|
|
98
|
+
|---------|-------------|
|
|
99
|
+
| `/help` | Show all commands |
|
|
100
|
+
| `/provider <name>` | Switch AI provider |
|
|
101
|
+
| `/model <name>` | Set model |
|
|
102
|
+
| `/persona <name>` | Switch persona |
|
|
103
|
+
| `/clear` | Clear conversation |
|
|
104
|
+
| `/status` | Show current status |
|
|
105
|
+
| `/loop "<prompt>"` | Start autonomous loop |
|
|
106
|
+
| `/cancel-loop` | Stop active loop |
|
|
107
|
+
| `/setup` | Reconfigure |
|
|
108
|
+
| `/exit` | Exit |
|
|
109
|
+
|
|
110
|
+
## Environment Variables
|
|
111
|
+
|
|
112
|
+
| Variable | Description |
|
|
113
|
+
|----------|-------------|
|
|
114
|
+
| `ANTHROPIC_API_KEY` | Anthropic Claude API key |
|
|
115
|
+
| `GOOGLE_API_KEY` | Google Gemini API key |
|
|
116
|
+
| `OPENAI_API_KEY` | OpenAI API key |
|
|
117
|
+
| `OPENROUTER_API_KEY` | OpenRouter API key |
|
|
118
|
+
| `TOGETHER_API_KEY` | Together AI API key |
|
|
119
|
+
| `GROQ_API_KEY` | Groq API key |
|
|
120
|
+
| `MISTRAL_API_KEY` | Mistral AI API key |
|
|
121
|
+
| `AI21_API_KEY` | AI21 Labs API key |
|
|
122
|
+
| `HUGGINGFACE_API_KEY` | HuggingFace API key |
|
|
123
|
+
| `OLLAMA_BASE_URL` | Ollama server URL (default: localhost:11434) |
|
|
124
|
+
| `LITELLM_BASE_URL` | LiteLLM proxy URL (default: localhost:4000) |
|
|
125
|
+
| `LITELLM_API_KEY` | LiteLLM API key (if required) |
|
|
126
|
+
|
|
127
|
+
## Configuration
|
|
128
|
+
|
|
129
|
+
Config is stored in `~/.config/calliope/config.json` (or platform equivalent).
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Show config location
|
|
133
|
+
calliope --config
|
|
134
|
+
|
|
135
|
+
# Reset config
|
|
136
|
+
calliope --reset
|
|
137
|
+
|
|
138
|
+
# Force setup wizard
|
|
139
|
+
calliope --setup
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Examples
|
|
143
|
+
|
|
144
|
+
### Basic Usage
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
$ calliope
|
|
148
|
+
calliope> What's in this directory?
|
|
149
|
+
✧ Calliope:
|
|
150
|
+
│ Let me check...
|
|
151
|
+
╭─ ⚡ shell
|
|
152
|
+
│ $ ls -la
|
|
153
|
+
│ ...
|
|
154
|
+
╰─ ✓
|
|
155
|
+
│ This directory contains...
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Autonomous Loop
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
calliope> /loop "Refactor all TypeScript files to use strict mode. Run tsc after each change. Output DONE when no errors." --max-iterations 30 --completion-promise "DONE"
|
|
162
|
+
|
|
163
|
+
╭─ 🔄 Ralph Loop Started
|
|
164
|
+
│ Max: 30
|
|
165
|
+
│ Promise: DONE
|
|
166
|
+
╰─ /cancel-loop to stop
|
|
167
|
+
|
|
168
|
+
╭─ Iteration 1/30
|
|
169
|
+
...
|
|
170
|
+
🎉 Completion promise detected!
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Security
|
|
174
|
+
|
|
175
|
+
### API Key Storage
|
|
176
|
+
|
|
177
|
+
API keys entered during setup are stored in `~/.config/calliope/config.json`. For better security:
|
|
178
|
+
- **Prefer environment variables** over stored keys
|
|
179
|
+
- The config file should have restricted permissions (0600)
|
|
180
|
+
- Never commit your config file to version control
|
|
181
|
+
|
|
182
|
+
### Tool Execution
|
|
183
|
+
|
|
184
|
+
Calliope can execute shell commands on your behalf. Safety measures include:
|
|
185
|
+
- **Path traversal protection** - File operations are restricted to the current directory and home folder
|
|
186
|
+
- **God mode warning** - Running with `-g`/`--god-mode` shows a clear warning
|
|
187
|
+
- **Timeout limits** - Shell commands timeout after 60 seconds by default
|
|
188
|
+
|
|
189
|
+
### Best Practices
|
|
190
|
+
|
|
191
|
+
1. **Review before running** - In normal mode, review tool calls before execution
|
|
192
|
+
2. **Use god mode carefully** - Only use `--god-mode` for trusted, well-defined tasks
|
|
193
|
+
3. **Limit iterations** - Always set `--max-iterations` on autonomous loops
|
|
194
|
+
4. **Work in project directories** - Run Calliope from your project root, not system directories
|
|
195
|
+
|
|
196
|
+
## Troubleshooting
|
|
197
|
+
|
|
198
|
+
### Common Issues
|
|
199
|
+
|
|
200
|
+
**"No API keys configured"**
|
|
201
|
+
- Run `calliope --setup` to configure your API key
|
|
202
|
+
- Or set environment variable: `export ANTHROPIC_API_KEY=sk-ant-...`
|
|
203
|
+
|
|
204
|
+
**"API key too short"**
|
|
205
|
+
- API keys have minimum length requirements (usually 40+ characters)
|
|
206
|
+
- Make sure you copied the full key
|
|
207
|
+
|
|
208
|
+
**"Empty response from API"**
|
|
209
|
+
- Check your API key is valid and has credits
|
|
210
|
+
- Try a different provider with `/provider`
|
|
211
|
+
|
|
212
|
+
**"Access denied" for file operations**
|
|
213
|
+
- File operations are restricted to cwd and home directory
|
|
214
|
+
- Use absolute paths within allowed directories
|
|
215
|
+
|
|
216
|
+
## More from Calliope
|
|
217
|
+
|
|
218
|
+
Check out our full suite of AI tools at **[calliope.ai](https://calliope.ai)**
|
|
219
|
+
|
|
220
|
+
## License
|
|
221
|
+
|
|
222
|
+
MIT © 2026 Calliope Labs Inc
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Calliope CLI - Main Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Multi-model AI agent CLI with Ralph Wiggum autonomous loops.
|
|
6
|
+
* Run `calliope` to start an interactive session.
|
|
7
|
+
*/
|
|
8
|
+
declare const skipPermissions: boolean;
|
|
9
|
+
export { skipPermissions };
|
|
10
|
+
//# sourceMappingURL=bin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAkBH,QAAA,MAAM,eAAe,SACsB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Calliope CLI - Main Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Multi-model AI agent CLI with Ralph Wiggum autonomous loops.
|
|
6
|
+
* Run `calliope` to start an interactive session.
|
|
7
|
+
*/
|
|
8
|
+
import { runSetup } from './setup.js';
|
|
9
|
+
import * as config from './config.js';
|
|
10
|
+
import { readFileSync } from 'fs';
|
|
11
|
+
import { fileURLToPath } from 'url';
|
|
12
|
+
import { dirname, join } from 'path';
|
|
13
|
+
// Get version from package.json
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = dirname(__filename);
|
|
16
|
+
const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
|
|
17
|
+
const VERSION = packageJson.version;
|
|
18
|
+
// Handle CLI flags
|
|
19
|
+
const args = process.argv.slice(2);
|
|
20
|
+
// Check for god-mode flag (skip all permission prompts)
|
|
21
|
+
const skipPermissions = args.includes('--god-mode') ||
|
|
22
|
+
args.includes('-g');
|
|
23
|
+
// Export for CLI to access
|
|
24
|
+
export { skipPermissions };
|
|
25
|
+
async function main() {
|
|
26
|
+
// Handle --help
|
|
27
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
28
|
+
printHelp();
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
// Handle --version
|
|
32
|
+
if (args.includes('--version') || args.includes('-v')) {
|
|
33
|
+
console.log(`calliope v${VERSION}`);
|
|
34
|
+
process.exit(0);
|
|
35
|
+
}
|
|
36
|
+
// Handle --setup (force reconfigure)
|
|
37
|
+
if (args.includes('--setup') || args.includes('--configure')) {
|
|
38
|
+
await runSetup(true);
|
|
39
|
+
return startCLI({ skipPermissions });
|
|
40
|
+
}
|
|
41
|
+
// Handle --reset (clear config)
|
|
42
|
+
if (args.includes('--reset')) {
|
|
43
|
+
config.resetConfig();
|
|
44
|
+
console.log('Configuration reset. Run `calliope` to set up again.');
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
// Handle --config (show config path)
|
|
48
|
+
if (args.includes('--config')) {
|
|
49
|
+
console.log(`Config file: ${config.getConfigPath()}`);
|
|
50
|
+
const providers = config.getConfiguredProviders();
|
|
51
|
+
console.log(`Configured providers: ${providers.length > 0 ? providers.join(', ') : 'none'}`);
|
|
52
|
+
console.log(`Default provider: ${config.get('defaultProvider')}`);
|
|
53
|
+
console.log(`Setup complete: ${config.isSetupComplete()}`);
|
|
54
|
+
process.exit(0);
|
|
55
|
+
}
|
|
56
|
+
// Show warning if god-mode enabled
|
|
57
|
+
if (skipPermissions) {
|
|
58
|
+
console.log('\x1b[35m⚡ GOD MODE ENABLED\x1b[0m');
|
|
59
|
+
console.log('\x1b[2m Tools execute without confirmation. Use wisely.\x1b[0m');
|
|
60
|
+
console.log();
|
|
61
|
+
}
|
|
62
|
+
// Check if setup is needed
|
|
63
|
+
if (!config.isSetupComplete()) {
|
|
64
|
+
// Check if we have any API keys from environment
|
|
65
|
+
const hasEnvKeys = process.env.ANTHROPIC_API_KEY ||
|
|
66
|
+
process.env.GOOGLE_API_KEY ||
|
|
67
|
+
process.env.OPENAI_API_KEY ||
|
|
68
|
+
process.env.OPENROUTER_API_KEY ||
|
|
69
|
+
process.env.TOGETHER_API_KEY ||
|
|
70
|
+
process.env.GROQ_API_KEY ||
|
|
71
|
+
process.env.FIREWORKS_API_KEY ||
|
|
72
|
+
process.env.MISTRAL_API_KEY ||
|
|
73
|
+
process.env.OLLAMA_BASE_URL ||
|
|
74
|
+
process.env.AI21_API_KEY ||
|
|
75
|
+
process.env.HUGGINGFACE_API_KEY ||
|
|
76
|
+
process.env.LITELLM_BASE_URL;
|
|
77
|
+
if (hasEnvKeys && (args.includes('--skip-setup') || skipPermissions)) {
|
|
78
|
+
// Skip setup if env keys present and flag set
|
|
79
|
+
config.markSetupComplete();
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Run interactive setup
|
|
83
|
+
const success = await runSetup();
|
|
84
|
+
if (!success) {
|
|
85
|
+
console.error('Setup cancelled.');
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Start the CLI
|
|
91
|
+
await startCLI();
|
|
92
|
+
}
|
|
93
|
+
async function startCLI(options = {}) {
|
|
94
|
+
// Dynamically import the CLI to avoid loading everything upfront
|
|
95
|
+
const { startCLI: start } = await import('./cli.js');
|
|
96
|
+
await start(options);
|
|
97
|
+
}
|
|
98
|
+
function printHelp() {
|
|
99
|
+
console.log(`
|
|
100
|
+
${bold('calliope')} - Multi-model AI agent CLI
|
|
101
|
+
|
|
102
|
+
${bold('USAGE')}
|
|
103
|
+
calliope [options] [prompt]
|
|
104
|
+
|
|
105
|
+
${bold('OPTIONS')}
|
|
106
|
+
-h, --help Show this help message
|
|
107
|
+
-v, --version Show version
|
|
108
|
+
--setup Run setup wizard (reconfigure)
|
|
109
|
+
--config Show config file path and status
|
|
110
|
+
--reset Reset all configuration
|
|
111
|
+
--skip-setup Skip setup if API keys in environment
|
|
112
|
+
|
|
113
|
+
-g, --god-mode Run tools without confirmation prompts
|
|
114
|
+
Enables unrestricted autonomous execution
|
|
115
|
+
|
|
116
|
+
${bold('ENVIRONMENT VARIABLES')}
|
|
117
|
+
ANTHROPIC_API_KEY Anthropic Claude API key
|
|
118
|
+
GOOGLE_API_KEY Google Gemini API key
|
|
119
|
+
OPENAI_API_KEY OpenAI API key
|
|
120
|
+
OPENROUTER_API_KEY OpenRouter API key
|
|
121
|
+
TOGETHER_API_KEY Together AI API key
|
|
122
|
+
GROQ_API_KEY Groq API key
|
|
123
|
+
MISTRAL_API_KEY Mistral AI API key
|
|
124
|
+
AI21_API_KEY AI21 Labs API key
|
|
125
|
+
HUGGINGFACE_API_KEY HuggingFace API key
|
|
126
|
+
OLLAMA_BASE_URL Ollama server URL (default: localhost:11434)
|
|
127
|
+
LITELLM_BASE_URL LiteLLM proxy URL (default: localhost:4000)
|
|
128
|
+
LITELLM_API_KEY LiteLLM API key (if required)
|
|
129
|
+
|
|
130
|
+
${bold('INTERACTIVE COMMANDS')}
|
|
131
|
+
/help Show all commands
|
|
132
|
+
/provider Switch AI provider
|
|
133
|
+
/model Change model
|
|
134
|
+
/persona Change personality
|
|
135
|
+
/loop Start autonomous loop (Ralph Wiggum)
|
|
136
|
+
/save Save session
|
|
137
|
+
/exit Exit
|
|
138
|
+
|
|
139
|
+
${bold('EXAMPLES')}
|
|
140
|
+
calliope Start interactive session
|
|
141
|
+
calliope --setup Run setup wizard
|
|
142
|
+
calliope "explain this" Start with a prompt
|
|
143
|
+
|
|
144
|
+
${bold('MORE INFO')}
|
|
145
|
+
https://github.com/calliopeai/calliope-cli
|
|
146
|
+
`);
|
|
147
|
+
}
|
|
148
|
+
function bold(text) {
|
|
149
|
+
return `\x1b[1m${text}\x1b[0m`;
|
|
150
|
+
}
|
|
151
|
+
// Run
|
|
152
|
+
main().catch((err) => {
|
|
153
|
+
console.error('Error:', err.message);
|
|
154
|
+
process.exit(1);
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calliope CLI - Interactive REPL
|
|
3
|
+
*
|
|
4
|
+
* Main interactive command-line interface.
|
|
5
|
+
*/
|
|
6
|
+
interface CLIOptions {
|
|
7
|
+
skipPermissions?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Start the CLI
|
|
11
|
+
*/
|
|
12
|
+
export declare function startCLI(options?: CLIOptions): Promise<void>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqDH,UAAU,UAAU;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAkBD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuFtE"}
|