@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,75 @@
1
+ /**
2
+ * Calliope CLI - Tab Completion
3
+ *
4
+ * Provides completions for commands, file paths, and tool arguments.
5
+ */
6
+ export interface Completion {
7
+ value: string;
8
+ display: string;
9
+ description?: string;
10
+ type: 'command' | 'file' | 'directory' | 'option' | 'argument';
11
+ }
12
+ export interface CompletionContext {
13
+ input: string;
14
+ cursorPosition: number;
15
+ currentWord: string;
16
+ previousWord: string;
17
+ isCommand: boolean;
18
+ }
19
+ /**
20
+ * Parse input to get completion context
21
+ */
22
+ export declare function parseContext(input: string, cursorPosition: number): CompletionContext;
23
+ /**
24
+ * Get command completions
25
+ */
26
+ export declare function getCommandCompletions(prefix: string): Completion[];
27
+ /**
28
+ * Get subcommand completions
29
+ */
30
+ export declare function getSubcommandCompletions(command: string, prefix: string): Completion[];
31
+ /**
32
+ * Get file path completions
33
+ */
34
+ export declare function getFileCompletions(partialPath: string, cwd?: string): Completion[];
35
+ /**
36
+ * Get completions for current input
37
+ */
38
+ export declare function getCompletions(input: string, cursorPosition: number, cwd?: string): Completion[];
39
+ /**
40
+ * Apply completion to input
41
+ */
42
+ export declare function applyCompletion(input: string, cursorPosition: number, completion: Completion): {
43
+ newInput: string;
44
+ newCursorPosition: number;
45
+ };
46
+ export interface CompletionState {
47
+ completions: Completion[];
48
+ selectedIndex: number;
49
+ originalInput: string;
50
+ originalCursor: number;
51
+ }
52
+ /**
53
+ * Create new completion state
54
+ */
55
+ export declare function createCompletionState(input: string, cursorPosition: number, cwd?: string): CompletionState | null;
56
+ /**
57
+ * Cycle to next completion
58
+ */
59
+ export declare function nextCompletion(state: CompletionState): CompletionState;
60
+ /**
61
+ * Cycle to previous completion
62
+ */
63
+ export declare function prevCompletion(state: CompletionState): CompletionState;
64
+ /**
65
+ * Get current completion
66
+ */
67
+ export declare function getCurrentCompletion(state: CompletionState): Completion;
68
+ /**
69
+ * Apply current completion
70
+ */
71
+ export declare function applyCurrentCompletion(state: CompletionState): {
72
+ newInput: string;
73
+ newCursorPosition: number;
74
+ };
75
+ //# sourceMappingURL=completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CAChE;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAoCD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,iBAAiB,CAcrF;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAUlE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAYtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,UAAU,EAAE,CAoDjG;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAgChG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,UAAU,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAajD;AAMD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,GACX,eAAe,GAAG,IAAI,CAUxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAKtE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAKtE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CAEvE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAGA"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Calliope CLI - Tab Completion
3
+ *
4
+ * Provides completions for commands, file paths, and tool arguments.
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ // ============================================================================
9
+ // Commands
10
+ // ============================================================================
11
+ const COMMANDS = [
12
+ { name: '/help', description: 'Show help' },
13
+ { name: '/clear', description: 'Clear screen' },
14
+ { name: '/copy', description: 'Copy last response' },
15
+ { name: '/export', description: 'Export conversation', subcommands: ['markdown', 'json'] },
16
+ { name: '/edit', description: 'Edit last message' },
17
+ { name: '/undo', description: 'Undo last exchange' },
18
+ { name: '/confirm', description: 'Toggle confirmation', subcommands: ['on', 'off'] },
19
+ { name: '/profile', description: 'Manage profiles', subcommands: ['list', 'save', 'delete'] },
20
+ { name: '/mcp', description: 'MCP servers', subcommands: ['list', 'add', 'remove', 'refresh', 'tools'] },
21
+ { name: '/skills', description: 'Agent skills', subcommands: ['list', 'add', 'remove', 'info'] },
22
+ { name: '/memory', description: 'Project memory', subcommands: ['init', 'show', 'add', 'remove', 'global'] },
23
+ { name: '/project', description: 'Project config', subcommands: ['init', 'show', 'run'] },
24
+ { name: '/find', description: 'Fuzzy file search' },
25
+ { name: '/branch', description: 'Conversation branches', subcommands: ['list', 'new', 'switch', 'delete'] },
26
+ { name: '/theme', description: 'Color themes', subcommands: ['list', 'default', 'light', 'monokai', 'nord', 'minimal'] },
27
+ { name: '/hooks', description: 'Tool hooks', subcommands: ['list', 'add', 'init'] },
28
+ { name: '/search', description: 'Search conversation' },
29
+ { name: '/status', description: 'Show status' },
30
+ { name: '/config', description: 'Show config' },
31
+ { name: '/upgrade', description: 'Check for updates' },
32
+ { name: '/session', description: 'Session management', subcommands: ['list', 'new'] },
33
+ { name: '/mode', description: 'Change mode', subcommands: ['plan', 'hybrid', 'work'] },
34
+ { name: '/exit', description: 'Exit' },
35
+ ];
36
+ // ============================================================================
37
+ // Context Parsing
38
+ // ============================================================================
39
+ /**
40
+ * Parse input to get completion context
41
+ */
42
+ export function parseContext(input, cursorPosition) {
43
+ const beforeCursor = input.slice(0, cursorPosition);
44
+ const words = beforeCursor.split(/\s+/);
45
+ const currentWord = words[words.length - 1] || '';
46
+ const previousWord = words.length > 1 ? words[words.length - 2] : '';
47
+ const isCommand = beforeCursor.trimStart().startsWith('/');
48
+ return {
49
+ input,
50
+ cursorPosition,
51
+ currentWord,
52
+ previousWord,
53
+ isCommand,
54
+ };
55
+ }
56
+ // ============================================================================
57
+ // Completion Providers
58
+ // ============================================================================
59
+ /**
60
+ * Get command completions
61
+ */
62
+ export function getCommandCompletions(prefix) {
63
+ const lower = prefix.toLowerCase();
64
+ return COMMANDS
65
+ .filter(cmd => cmd.name.toLowerCase().startsWith(lower))
66
+ .map(cmd => ({
67
+ value: cmd.name,
68
+ display: cmd.name,
69
+ description: cmd.description,
70
+ type: 'command',
71
+ }));
72
+ }
73
+ /**
74
+ * Get subcommand completions
75
+ */
76
+ export function getSubcommandCompletions(command, prefix) {
77
+ const cmd = COMMANDS.find(c => c.name === command);
78
+ if (!cmd?.subcommands)
79
+ return [];
80
+ const lower = prefix.toLowerCase();
81
+ return cmd.subcommands
82
+ .filter(sub => sub.toLowerCase().startsWith(lower))
83
+ .map(sub => ({
84
+ value: sub,
85
+ display: sub,
86
+ type: 'option',
87
+ }));
88
+ }
89
+ /**
90
+ * Get file path completions
91
+ */
92
+ export function getFileCompletions(partialPath, cwd = process.cwd()) {
93
+ const completions = [];
94
+ try {
95
+ // Determine the directory to search and the prefix to match
96
+ let searchDir;
97
+ let prefix;
98
+ if (partialPath.includes('/')) {
99
+ const lastSlash = partialPath.lastIndexOf('/');
100
+ const dirPart = partialPath.slice(0, lastSlash) || '/';
101
+ prefix = partialPath.slice(lastSlash + 1);
102
+ if (path.isAbsolute(dirPart)) {
103
+ searchDir = dirPart;
104
+ }
105
+ else {
106
+ searchDir = path.join(cwd, dirPart);
107
+ }
108
+ }
109
+ else {
110
+ searchDir = cwd;
111
+ prefix = partialPath;
112
+ }
113
+ if (!fs.existsSync(searchDir))
114
+ return [];
115
+ const entries = fs.readdirSync(searchDir, { withFileTypes: true });
116
+ const lower = prefix.toLowerCase();
117
+ for (const entry of entries) {
118
+ // Skip hidden files unless prefix starts with .
119
+ if (entry.name.startsWith('.') && !prefix.startsWith('.')) {
120
+ continue;
121
+ }
122
+ if (entry.name.toLowerCase().startsWith(lower)) {
123
+ const isDir = entry.isDirectory();
124
+ const relativePath = partialPath.includes('/')
125
+ ? partialPath.slice(0, partialPath.lastIndexOf('/') + 1) + entry.name
126
+ : entry.name;
127
+ completions.push({
128
+ value: isDir ? relativePath + '/' : relativePath,
129
+ display: entry.name + (isDir ? '/' : ''),
130
+ type: isDir ? 'directory' : 'file',
131
+ });
132
+ }
133
+ }
134
+ }
135
+ catch {
136
+ // Ignore errors
137
+ }
138
+ return completions.slice(0, 50); // Limit results
139
+ }
140
+ // ============================================================================
141
+ // Main Completion Function
142
+ // ============================================================================
143
+ /**
144
+ * Get completions for current input
145
+ */
146
+ export function getCompletions(input, cursorPosition, cwd) {
147
+ const ctx = parseContext(input, cursorPosition);
148
+ // Command completion
149
+ if (ctx.currentWord.startsWith('/')) {
150
+ return getCommandCompletions(ctx.currentWord);
151
+ }
152
+ // Subcommand completion
153
+ if (ctx.previousWord.startsWith('/')) {
154
+ const subcompletions = getSubcommandCompletions(ctx.previousWord, ctx.currentWord);
155
+ if (subcompletions.length > 0) {
156
+ return subcompletions;
157
+ }
158
+ }
159
+ // File path completion (for @ references or paths)
160
+ if (ctx.currentWord.startsWith('@') ||
161
+ ctx.currentWord.startsWith('./') ||
162
+ ctx.currentWord.startsWith('/') ||
163
+ ctx.currentWord.startsWith('../')) {
164
+ const pathPart = ctx.currentWord.startsWith('@')
165
+ ? ctx.currentWord.slice(1)
166
+ : ctx.currentWord;
167
+ return getFileCompletions(pathPart, cwd).map(c => ({
168
+ ...c,
169
+ value: ctx.currentWord.startsWith('@') ? '@' + c.value : c.value,
170
+ display: ctx.currentWord.startsWith('@') ? '@' + c.display : c.display,
171
+ }));
172
+ }
173
+ return [];
174
+ }
175
+ /**
176
+ * Apply completion to input
177
+ */
178
+ export function applyCompletion(input, cursorPosition, completion) {
179
+ const ctx = parseContext(input, cursorPosition);
180
+ // Find where the current word starts
181
+ const wordStart = cursorPosition - ctx.currentWord.length;
182
+ // Build new input
183
+ const before = input.slice(0, wordStart);
184
+ const after = input.slice(cursorPosition);
185
+ const newInput = before + completion.value + after;
186
+ const newCursorPosition = wordStart + completion.value.length;
187
+ return { newInput, newCursorPosition };
188
+ }
189
+ /**
190
+ * Create new completion state
191
+ */
192
+ export function createCompletionState(input, cursorPosition, cwd) {
193
+ const completions = getCompletions(input, cursorPosition, cwd);
194
+ if (completions.length === 0)
195
+ return null;
196
+ return {
197
+ completions,
198
+ selectedIndex: 0,
199
+ originalInput: input,
200
+ originalCursor: cursorPosition,
201
+ };
202
+ }
203
+ /**
204
+ * Cycle to next completion
205
+ */
206
+ export function nextCompletion(state) {
207
+ return {
208
+ ...state,
209
+ selectedIndex: (state.selectedIndex + 1) % state.completions.length,
210
+ };
211
+ }
212
+ /**
213
+ * Cycle to previous completion
214
+ */
215
+ export function prevCompletion(state) {
216
+ return {
217
+ ...state,
218
+ selectedIndex: (state.selectedIndex - 1 + state.completions.length) % state.completions.length,
219
+ };
220
+ }
221
+ /**
222
+ * Get current completion
223
+ */
224
+ export function getCurrentCompletion(state) {
225
+ return state.completions[state.selectedIndex];
226
+ }
227
+ /**
228
+ * Apply current completion
229
+ */
230
+ export function applyCurrentCompletion(state) {
231
+ const completion = getCurrentCompletion(state);
232
+ return applyCompletion(state.originalInput, state.originalCursor, completion);
233
+ }
234
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAqB7B,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,MAAM,QAAQ,GAAyE;IACrF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;IAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;IAC/C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACpD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;IAC1F,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACnD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACpD,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;IACpF,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;IAC7F,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;IACxG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;IAChG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IAC5G,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;IACzF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IAC3G,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;IACxH,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;IACnF,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACvD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE;IAC/C,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE;IAC/C,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACtD,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;IACrF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;IACtF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;CACvC,CAAC;AAEF,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,cAAsB;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE3D,OAAO;QACL,KAAK;QACL,cAAc;QACd,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,QAAQ;SACZ,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACvD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACX,KAAK,EAAE,GAAG,CAAC,IAAI;QACf,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,IAAI,EAAE,SAAkB;KACzB,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,MAAc;IACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,GAAG,EAAE,WAAW;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,GAAG,CAAC,WAAW;SACnB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAClD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACX,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,QAAiB;KACxB,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IACjF,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,4DAA4D;QAC5D,IAAI,SAAiB,CAAC;QACtB,IAAI,MAAc,CAAC;QAEnB,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC;YACvD,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAE1C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,SAAS,GAAG,OAAO,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,GAAG,CAAC;YAChB,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,CAAC;QAEzC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,gDAAgD;YAChD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC5C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI;oBACrE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBAEf,WAAW,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY;oBAChD,OAAO,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,gBAAgB;AACpD,CAAC;AAED,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,cAAsB,EAAE,GAAY;IAChF,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAEhD,qBAAqB;IACrB,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,wBAAwB;IACxB,IAAI,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,wBAAwB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACnF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QAC/B,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;QAChC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QAC/B,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;YAC9C,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QACpB,OAAO,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjD,GAAG,CAAC;YACJ,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;YAChE,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;SACvE,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,cAAsB,EACtB,UAAsB;IAEtB,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAEhD,qCAAqC;IACrC,MAAM,SAAS,GAAG,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;IAE1D,kBAAkB;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;IACnD,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;IAE9D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AACzC,CAAC;AAaD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,cAAsB,EACtB,GAAY;IAEZ,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IAC/D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,OAAO;QACL,WAAW;QACX,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,cAAc;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,OAAO;QACL,GAAG,KAAK;QACR,aAAa,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM;KACpE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,OAAO;QACL,GAAG,KAAK;QACR,aAAa,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM;KAC/F,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAsB;IAI3D,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,eAAe,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAChF,CAAC"}
package/dist/config.d.ts CHANGED
@@ -7,6 +7,12 @@
7
7
  import Conf from 'conf';
8
8
  export type LLMProvider = 'anthropic' | 'google' | 'openai' | 'together' | 'openrouter' | 'groq' | 'fireworks' | 'mistral' | 'ollama' | 'ai21' | 'huggingface' | 'litellm' | 'auto';
9
9
  export type AgentPersona = 'calliope' | 'professional' | 'minimal';
10
+ export interface Profile {
11
+ provider: LLMProvider;
12
+ model?: string;
13
+ persona: AgentPersona;
14
+ confirmMode?: boolean;
15
+ }
10
16
  export interface CalliopeConfig {
11
17
  setupComplete: boolean;
12
18
  defaultProvider: LLMProvider;
@@ -30,6 +36,8 @@ export interface CalliopeConfig {
30
36
  autoSaveHistory: boolean;
31
37
  workspaceRoot?: string;
32
38
  autoUpgrade: boolean;
39
+ profiles?: Record<string, Profile>;
40
+ activeProfile?: string;
33
41
  }
34
42
  declare const config: Conf<CalliopeConfig>;
35
43
  /**
@@ -76,5 +84,33 @@ export declare function getApiKey(provider: LLMProvider): string | undefined;
76
84
  * Get base URL for a provider (for Ollama/LiteLLM)
77
85
  */
78
86
  export declare function getBaseUrl(provider: LLMProvider): string | undefined;
87
+ /**
88
+ * Get a profile by name (built-in or custom)
89
+ */
90
+ export declare function getProfile(name: string): Profile | undefined;
91
+ /**
92
+ * Save a custom profile
93
+ */
94
+ export declare function saveProfile(name: string, profile: Profile): void;
95
+ /**
96
+ * Delete a custom profile
97
+ */
98
+ export declare function deleteProfile(name: string): boolean;
99
+ /**
100
+ * List all available profiles
101
+ */
102
+ export declare function listProfiles(): {
103
+ name: string;
104
+ profile: Profile;
105
+ builtin: boolean;
106
+ }[];
107
+ /**
108
+ * Set the active profile
109
+ */
110
+ export declare function setActiveProfile(name: string | undefined): void;
111
+ /**
112
+ * Get the active profile name
113
+ */
114
+ export declare function getActiveProfile(): string | undefined;
79
115
  export default config;
80
116
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AACpL,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,cAAc;IAE7B,aAAa,EAAE,OAAO,CAAC;IAGvB,eAAe,EAAE,WAAW,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IAGrB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,EAAE,OAAO,CAAC;CACtB;AAaD,QAAA,MAAM,MAAM,sBA2BV,CAAC;AAEH;;GAEG;AACH,wBAAgB,SAAS,IAAI,cAAc,CAE1C;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAE1F;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAIjE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,EAAE,CAiBtD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CA0CnE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAQpE;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -179,5 +179,95 @@ export function getBaseUrl(provider) {
179
179
  }
180
180
  return undefined;
181
181
  }
182
+ // Built-in profiles
183
+ const BUILTIN_PROFILES = {
184
+ fast: {
185
+ provider: 'groq',
186
+ model: 'llama-3.3-70b-versatile',
187
+ persona: 'minimal',
188
+ confirmMode: false,
189
+ },
190
+ smart: {
191
+ provider: 'anthropic',
192
+ model: 'claude-sonnet-4-20250514',
193
+ persona: 'calliope',
194
+ confirmMode: true,
195
+ },
196
+ cheap: {
197
+ provider: 'google',
198
+ model: 'gemini-2.0-flash',
199
+ persona: 'professional',
200
+ confirmMode: true,
201
+ },
202
+ local: {
203
+ provider: 'ollama',
204
+ model: 'llama3.3',
205
+ persona: 'professional',
206
+ confirmMode: true,
207
+ },
208
+ };
209
+ /**
210
+ * Get a profile by name (built-in or custom)
211
+ */
212
+ export function getProfile(name) {
213
+ // Check built-in profiles first
214
+ if (BUILTIN_PROFILES[name]) {
215
+ return BUILTIN_PROFILES[name];
216
+ }
217
+ // Check custom profiles
218
+ const profiles = config.get('profiles') || {};
219
+ return profiles[name];
220
+ }
221
+ /**
222
+ * Save a custom profile
223
+ */
224
+ export function saveProfile(name, profile) {
225
+ const profiles = config.get('profiles') || {};
226
+ profiles[name] = profile;
227
+ config.set('profiles', profiles);
228
+ }
229
+ /**
230
+ * Delete a custom profile
231
+ */
232
+ export function deleteProfile(name) {
233
+ if (BUILTIN_PROFILES[name]) {
234
+ return false; // Can't delete built-in profiles
235
+ }
236
+ const profiles = config.get('profiles') || {};
237
+ if (profiles[name]) {
238
+ delete profiles[name];
239
+ config.set('profiles', profiles);
240
+ return true;
241
+ }
242
+ return false;
243
+ }
244
+ /**
245
+ * List all available profiles
246
+ */
247
+ export function listProfiles() {
248
+ const result = [];
249
+ // Add built-in profiles
250
+ for (const [name, profile] of Object.entries(BUILTIN_PROFILES)) {
251
+ result.push({ name, profile, builtin: true });
252
+ }
253
+ // Add custom profiles
254
+ const customProfiles = config.get('profiles') || {};
255
+ for (const [name, profile] of Object.entries(customProfiles)) {
256
+ result.push({ name, profile, builtin: false });
257
+ }
258
+ return result;
259
+ }
260
+ /**
261
+ * Set the active profile
262
+ */
263
+ export function setActiveProfile(name) {
264
+ config.set('activeProfile', name);
265
+ }
266
+ /**
267
+ * Get the active profile name
268
+ */
269
+ export function getActiveProfile() {
270
+ return config.get('activeProfile');
271
+ }
182
272
  export default config;
183
273
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/diff.d.ts ADDED
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Calliope CLI - Diff Preview System
3
+ *
4
+ * Shows diffs before applying file changes, with approve/reject workflow.
5
+ */
6
+ export interface DiffLine {
7
+ type: 'context' | 'add' | 'remove' | 'header';
8
+ content: string;
9
+ oldLineNum?: number;
10
+ newLineNum?: number;
11
+ }
12
+ export interface FileDiff {
13
+ path: string;
14
+ oldContent: string;
15
+ newContent: string;
16
+ lines: DiffLine[];
17
+ additions: number;
18
+ deletions: number;
19
+ }
20
+ export interface PendingChange {
21
+ id: string;
22
+ type: 'write' | 'edit' | 'delete';
23
+ path: string;
24
+ oldContent: string;
25
+ newContent: string;
26
+ diff: FileDiff;
27
+ approved: boolean | null;
28
+ }
29
+ /**
30
+ * Simple line-by-line diff algorithm
31
+ */
32
+ export declare function generateDiff(oldContent: string, newContent: string, path: string): FileDiff;
33
+ /**
34
+ * Format diff for terminal display
35
+ */
36
+ export declare function formatDiff(diff: FileDiff, contextLines?: number): string;
37
+ /**
38
+ * Format diff as compact summary
39
+ */
40
+ export declare function formatDiffSummary(diff: FileDiff): string;
41
+ /**
42
+ * Queue a file change for approval
43
+ */
44
+ export declare function queueChange(type: PendingChange['type'], path: string, newContent: string): PendingChange;
45
+ /**
46
+ * Get all pending changes
47
+ */
48
+ export declare function getPendingChanges(): PendingChange[];
49
+ /**
50
+ * Approve a change and apply it
51
+ */
52
+ export declare function approveChange(id: string): boolean;
53
+ /**
54
+ * Reject a change
55
+ */
56
+ export declare function rejectChange(id: string): boolean;
57
+ /**
58
+ * Approve all pending changes
59
+ */
60
+ export declare function approveAllChanges(): number;
61
+ /**
62
+ * Reject all pending changes
63
+ */
64
+ export declare function rejectAllChanges(): number;
65
+ /**
66
+ * Clear change history
67
+ */
68
+ export declare function clearChanges(): void;
69
+ /**
70
+ * Get change by ID
71
+ */
72
+ export declare function getChange(id: string): PendingChange | undefined;
73
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAkF3F;AAqDD;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,SAAI,GAAG,MAAM,CAqCnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAExD;AA0DD;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,aAAa,CAgBf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAgBjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAMhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CASzC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE/D"}