@calliopelabs/cli 0.4.6 → 0.6.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.
Files changed (112) hide show
  1. package/README.md +258 -105
  2. package/dist/branching.d.ts +56 -0
  3. package/dist/branching.d.ts.map +1 -0
  4. package/dist/branching.js +211 -0
  5. package/dist/branching.js.map +1 -0
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +235 -2
  8. package/dist/cli.js.map +1 -1
  9. package/dist/completion.d.ts +75 -0
  10. package/dist/completion.d.ts.map +1 -0
  11. package/dist/completion.js +234 -0
  12. package/dist/completion.js.map +1 -0
  13. package/dist/config.d.ts +36 -0
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +90 -0
  16. package/dist/config.js.map +1 -1
  17. package/dist/diff.d.ts +73 -0
  18. package/dist/diff.d.ts.map +1 -0
  19. package/dist/diff.js +317 -0
  20. package/dist/diff.js.map +1 -0
  21. package/dist/errors.d.ts +41 -0
  22. package/dist/errors.d.ts.map +1 -0
  23. package/dist/errors.js +199 -0
  24. package/dist/errors.js.map +1 -0
  25. package/dist/file-watcher.d.ts +91 -0
  26. package/dist/file-watcher.d.ts.map +1 -0
  27. package/dist/file-watcher.js +269 -0
  28. package/dist/file-watcher.js.map +1 -0
  29. package/dist/files.d.ts +49 -0
  30. package/dist/files.d.ts.map +1 -0
  31. package/dist/files.js +191 -0
  32. package/dist/files.js.map +1 -0
  33. package/dist/fuzzy-search.d.ts +75 -0
  34. package/dist/fuzzy-search.d.ts.map +1 -0
  35. package/dist/fuzzy-search.js +240 -0
  36. package/dist/fuzzy-search.js.map +1 -0
  37. package/dist/hooks.d.ts +79 -0
  38. package/dist/hooks.d.ts.map +1 -0
  39. package/dist/hooks.js +271 -0
  40. package/dist/hooks.js.map +1 -0
  41. package/dist/keyboard.d.ts +57 -0
  42. package/dist/keyboard.d.ts.map +1 -0
  43. package/dist/keyboard.js +265 -0
  44. package/dist/keyboard.js.map +1 -0
  45. package/dist/markdown.d.ts +14 -0
  46. package/dist/markdown.d.ts.map +1 -0
  47. package/dist/markdown.js +248 -0
  48. package/dist/markdown.js.map +1 -0
  49. package/dist/mcp.d.ts +90 -0
  50. package/dist/mcp.d.ts.map +1 -0
  51. package/dist/mcp.js +290 -0
  52. package/dist/mcp.js.map +1 -0
  53. package/dist/memory.d.ts +104 -0
  54. package/dist/memory.d.ts.map +1 -0
  55. package/dist/memory.js +394 -0
  56. package/dist/memory.js.map +1 -0
  57. package/dist/model-router.d.ts +67 -0
  58. package/dist/model-router.d.ts.map +1 -0
  59. package/dist/model-router.js +289 -0
  60. package/dist/model-router.js.map +1 -0
  61. package/dist/parallel-tools.d.ts +51 -0
  62. package/dist/parallel-tools.d.ts.map +1 -0
  63. package/dist/parallel-tools.js +278 -0
  64. package/dist/parallel-tools.js.map +1 -0
  65. package/dist/project-config.d.ts +84 -0
  66. package/dist/project-config.d.ts.map +1 -0
  67. package/dist/project-config.js +250 -0
  68. package/dist/project-config.js.map +1 -0
  69. package/dist/providers.d.ts +10 -2
  70. package/dist/providers.d.ts.map +1 -1
  71. package/dist/providers.js +240 -38
  72. package/dist/providers.js.map +1 -1
  73. package/dist/risk.d.ts +31 -0
  74. package/dist/risk.d.ts.map +1 -0
  75. package/dist/risk.js +367 -0
  76. package/dist/risk.js.map +1 -0
  77. package/dist/sandbox.d.ts +49 -0
  78. package/dist/sandbox.d.ts.map +1 -0
  79. package/dist/sandbox.js +347 -0
  80. package/dist/sandbox.js.map +1 -0
  81. package/dist/skills.d.ts +71 -0
  82. package/dist/skills.d.ts.map +1 -0
  83. package/dist/skills.js +383 -0
  84. package/dist/skills.js.map +1 -0
  85. package/dist/storage.d.ts +139 -0
  86. package/dist/storage.d.ts.map +1 -0
  87. package/dist/storage.js +508 -0
  88. package/dist/storage.js.map +1 -0
  89. package/dist/streaming.d.ts +94 -0
  90. package/dist/streaming.d.ts.map +1 -0
  91. package/dist/streaming.js +305 -0
  92. package/dist/streaming.js.map +1 -0
  93. package/dist/summarization.d.ts +76 -0
  94. package/dist/summarization.d.ts.map +1 -0
  95. package/dist/summarization.js +242 -0
  96. package/dist/summarization.js.map +1 -0
  97. package/dist/themes.d.ts +110 -0
  98. package/dist/themes.d.ts.map +1 -0
  99. package/dist/themes.js +329 -0
  100. package/dist/themes.js.map +1 -0
  101. package/dist/tools.d.ts.map +1 -1
  102. package/dist/tools.js +335 -1
  103. package/dist/tools.js.map +1 -1
  104. package/dist/types.d.ts +56 -1
  105. package/dist/types.d.ts.map +1 -1
  106. package/dist/types.js +105 -0
  107. package/dist/types.js.map +1 -1
  108. package/dist/ui-cli.d.ts +9 -2
  109. package/dist/ui-cli.d.ts.map +1 -1
  110. package/dist/ui-cli.js +1315 -220
  111. package/dist/ui-cli.js.map +1 -1
  112. package/package.json +1 -1
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Calliope CLI - Project Configuration
3
+ *
4
+ * Loads project-specific settings from .calliope file (simple human-readable format)
5
+ *
6
+ * Format:
7
+ * ```
8
+ * # Comment
9
+ * project: My Project Name
10
+ * provider: anthropic
11
+ * model: claude-sonnet-4
12
+ *
13
+ * [tech]
14
+ * typescript
15
+ * react
16
+ * node
17
+ *
18
+ * [conventions]
19
+ * Use functional components
20
+ * Prefer async/await
21
+ *
22
+ * [ignore]
23
+ * node_modules/
24
+ * dist/
25
+ *
26
+ * [commands]
27
+ * build: npm run build
28
+ * test: npm test
29
+ * ```
30
+ */
31
+ import type { LLMProvider, AgentPersona } from './types.js';
32
+ export interface ProjectConfig {
33
+ project?: string;
34
+ description?: string;
35
+ provider?: LLMProvider;
36
+ model?: string;
37
+ persona?: AgentPersona;
38
+ maxIterations?: number;
39
+ systemPromptPrefix?: string;
40
+ systemPromptSuffix?: string;
41
+ tech?: string[];
42
+ conventions?: string[];
43
+ ignore?: string[];
44
+ include?: string[];
45
+ skills?: string[];
46
+ disabledTools?: string[];
47
+ commands?: Record<string, string>;
48
+ mcpServers?: string[];
49
+ }
50
+ /**
51
+ * Find project config file in directory tree
52
+ */
53
+ export declare function findProjectConfig(startDir: string): string | null;
54
+ /**
55
+ * Parse .calliope config file
56
+ *
57
+ * Format:
58
+ * - Lines starting with # are comments
59
+ * - key: value for simple values
60
+ * - [section] starts a list section
61
+ * - Indented or unindented lines in sections are list items
62
+ */
63
+ export declare function parseConfigFile(content: string): ProjectConfig;
64
+ /**
65
+ * Load project config from file
66
+ */
67
+ export declare function loadProjectConfig(configPath: string): ProjectConfig | null;
68
+ /**
69
+ * Get project config for a directory
70
+ */
71
+ export declare function getProjectConfig(dir: string): ProjectConfig | null;
72
+ /**
73
+ * Generate a default project config
74
+ */
75
+ export declare function generateDefaultConfig(projectName?: string): string;
76
+ /**
77
+ * Create a project config file
78
+ */
79
+ export declare function createProjectConfig(dir: string, projectName?: string): string;
80
+ /**
81
+ * Build additional context from project config
82
+ */
83
+ export declare function buildProjectContext(config: ProjectConfig): string;
84
+ //# sourceMappingURL=project-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM5D,MAAM,WAAW,aAAa;IAE5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAGvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAGnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGlC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcjE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAwF9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAQ1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAIlE;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CA+BlE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7E;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA+BjE"}
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Calliope CLI - Project Configuration
3
+ *
4
+ * Loads project-specific settings from .calliope file (simple human-readable format)
5
+ *
6
+ * Format:
7
+ * ```
8
+ * # Comment
9
+ * project: My Project Name
10
+ * provider: anthropic
11
+ * model: claude-sonnet-4
12
+ *
13
+ * [tech]
14
+ * typescript
15
+ * react
16
+ * node
17
+ *
18
+ * [conventions]
19
+ * Use functional components
20
+ * Prefer async/await
21
+ *
22
+ * [ignore]
23
+ * node_modules/
24
+ * dist/
25
+ *
26
+ * [commands]
27
+ * build: npm run build
28
+ * test: npm test
29
+ * ```
30
+ */
31
+ import * as fs from 'fs';
32
+ import * as path from 'path';
33
+ // ============================================================================
34
+ // Config File Detection
35
+ // ============================================================================
36
+ const CONFIG_FILENAMES = [
37
+ '.calliope',
38
+ '.calliope.conf',
39
+ 'calliope.conf',
40
+ ];
41
+ /**
42
+ * Find project config file in directory tree
43
+ */
44
+ export function findProjectConfig(startDir) {
45
+ let currentDir = startDir;
46
+ while (currentDir !== path.dirname(currentDir)) {
47
+ for (const filename of CONFIG_FILENAMES) {
48
+ const configPath = path.join(currentDir, filename);
49
+ if (fs.existsSync(configPath)) {
50
+ return configPath;
51
+ }
52
+ }
53
+ currentDir = path.dirname(currentDir);
54
+ }
55
+ return null;
56
+ }
57
+ // ============================================================================
58
+ // Config Parsing (Simple human-readable format)
59
+ // ============================================================================
60
+ /**
61
+ * Parse .calliope config file
62
+ *
63
+ * Format:
64
+ * - Lines starting with # are comments
65
+ * - key: value for simple values
66
+ * - [section] starts a list section
67
+ * - Indented or unindented lines in sections are list items
68
+ */
69
+ export function parseConfigFile(content) {
70
+ const config = {};
71
+ const lines = content.split('\n');
72
+ let currentSection = null;
73
+ let currentList = [];
74
+ const flushSection = () => {
75
+ if (currentSection && currentList.length > 0) {
76
+ config[currentSection] = [...currentList];
77
+ currentList = [];
78
+ }
79
+ currentSection = null;
80
+ };
81
+ for (const rawLine of lines) {
82
+ const line = rawLine.trim();
83
+ // Skip empty lines and comments
84
+ if (!line || line.startsWith('#')) {
85
+ continue;
86
+ }
87
+ // Section header [name]
88
+ if (line.startsWith('[') && line.endsWith(']')) {
89
+ flushSection();
90
+ currentSection = line.slice(1, -1).toLowerCase();
91
+ continue;
92
+ }
93
+ // In a section - add as list item
94
+ if (currentSection) {
95
+ // Handle command format: name: script
96
+ if (currentSection === 'commands' && line.includes(':')) {
97
+ const colonIdx = line.indexOf(':');
98
+ const name = line.slice(0, colonIdx).trim();
99
+ const script = line.slice(colonIdx + 1).trim();
100
+ if (!config.commands)
101
+ config.commands = {};
102
+ config.commands[name] = script;
103
+ }
104
+ else {
105
+ currentList.push(line);
106
+ }
107
+ continue;
108
+ }
109
+ // Key: value pair
110
+ if (line.includes(':')) {
111
+ const colonIdx = line.indexOf(':');
112
+ const key = line.slice(0, colonIdx).trim().toLowerCase();
113
+ const value = line.slice(colonIdx + 1).trim();
114
+ switch (key) {
115
+ case 'project':
116
+ config.project = value;
117
+ break;
118
+ case 'description':
119
+ config.description = value;
120
+ break;
121
+ case 'provider':
122
+ config.provider = value;
123
+ break;
124
+ case 'model':
125
+ config.model = value;
126
+ break;
127
+ case 'persona':
128
+ config.persona = value;
129
+ break;
130
+ case 'maxiterations':
131
+ case 'max-iterations':
132
+ case 'max_iterations':
133
+ config.maxIterations = parseInt(value, 10);
134
+ break;
135
+ case 'prefix':
136
+ case 'systempromptprefix':
137
+ config.systemPromptPrefix = value;
138
+ break;
139
+ case 'suffix':
140
+ case 'systempromptsuffix':
141
+ config.systemPromptSuffix = value;
142
+ break;
143
+ }
144
+ }
145
+ }
146
+ // Flush final section
147
+ flushSection();
148
+ return config;
149
+ }
150
+ /**
151
+ * Load project config from file
152
+ */
153
+ export function loadProjectConfig(configPath) {
154
+ try {
155
+ const content = fs.readFileSync(configPath, 'utf-8');
156
+ return parseConfigFile(content);
157
+ }
158
+ catch (e) {
159
+ console.error(`Warning: Failed to load project config: ${e instanceof Error ? e.message : String(e)}`);
160
+ return null;
161
+ }
162
+ }
163
+ /**
164
+ * Get project config for a directory
165
+ */
166
+ export function getProjectConfig(dir) {
167
+ const configPath = findProjectConfig(dir);
168
+ if (!configPath)
169
+ return null;
170
+ return loadProjectConfig(configPath);
171
+ }
172
+ // ============================================================================
173
+ // Config Generation
174
+ // ============================================================================
175
+ /**
176
+ * Generate a default project config
177
+ */
178
+ export function generateDefaultConfig(projectName) {
179
+ return `# Calliope Project Configuration
180
+ # https://github.com/calliopelabs/calliope-cli
181
+
182
+ project: ${projectName || 'My Project'}
183
+ # provider: anthropic
184
+ # model: claude-sonnet-4
185
+
186
+ [tech]
187
+ # Add your tech stack
188
+ # typescript
189
+ # react
190
+ # node
191
+
192
+ [conventions]
193
+ # Add coding conventions for this project
194
+ # Use functional components
195
+ # Prefer async/await over promises
196
+
197
+ [ignore]
198
+ node_modules/
199
+ dist/
200
+ .git/
201
+ *.log
202
+
203
+ [commands]
204
+ # Custom commands (name: script)
205
+ # build: npm run build
206
+ # test: npm test
207
+ # lint: npm run lint
208
+ `;
209
+ }
210
+ /**
211
+ * Create a project config file
212
+ */
213
+ export function createProjectConfig(dir, projectName) {
214
+ const configPath = path.join(dir, '.calliope');
215
+ const content = generateDefaultConfig(projectName || path.basename(dir));
216
+ fs.writeFileSync(configPath, content);
217
+ return configPath;
218
+ }
219
+ // ============================================================================
220
+ // System Prompt Builder
221
+ // ============================================================================
222
+ /**
223
+ * Build additional context from project config
224
+ */
225
+ export function buildProjectContext(config) {
226
+ const parts = [];
227
+ if (config.project) {
228
+ parts.push(`Project: ${config.project}`);
229
+ }
230
+ if (config.description) {
231
+ parts.push(`Description: ${config.description}`);
232
+ }
233
+ if (config.tech && config.tech.length > 0) {
234
+ parts.push(`Tech stack: ${config.tech.join(', ')}`);
235
+ }
236
+ if (config.conventions && config.conventions.length > 0) {
237
+ parts.push('\nProject conventions:');
238
+ for (const conv of config.conventions) {
239
+ parts.push(`- ${conv}`);
240
+ }
241
+ }
242
+ if (config.systemPromptPrefix) {
243
+ parts.unshift(config.systemPromptPrefix);
244
+ }
245
+ if (config.systemPromptSuffix) {
246
+ parts.push(config.systemPromptSuffix);
247
+ }
248
+ return parts.join('\n');
249
+ }
250
+ //# sourceMappingURL=project-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,15 @@ export declare function getAvailableProviders(): LLMProvider[];
13
13
  */
14
14
  export declare function selectProvider(preferred: LLMProvider): LLMProvider;
15
15
  /**
16
- * Chat with the selected provider
16
+ * Streaming callback type
17
17
  */
18
- export declare function chat(provider: LLMProvider, messages: Message[], tools: Tool[], model?: string): Promise<LLMResponse>;
18
+ export type StreamCallback = (token: string) => void;
19
+ /**
20
+ * Retry callback type for UI updates
21
+ */
22
+ export type RetryCallback = (attempt: number, error: Error, delayMs: number) => void;
23
+ /**
24
+ * Chat with the selected provider (with automatic retry)
25
+ */
26
+ export declare function chat(provider: LLMProvider, messages: Message[], tools: Tool[], model?: string, onToken?: StreamCallback, onRetry?: RetryCallback): Promise<LLMResponse>;
19
27
  //# sourceMappingURL=providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAY,WAAW,EAAE,MAAM,YAAY,CAAC;AA0FpF;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,EAAE,CAgBrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,CAuBlE;AAED;;GAEG;AACH,wBAAsB,IAAI,CACxB,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAwBtB"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAY,WAAW,EAA6C,MAAM,YAAY,CAAC;AA+J/H;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,EAAE,CAgBrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,CAuBlE;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAErF;;GAEG;AACH,wBAAsB,IAAI,CACxB,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,WAAW,CAAC,CAiCtB"}