@kaitranntt/ccs 6.4.0-dev.2 → 6.4.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 (78) hide show
  1. package/VERSION +1 -1
  2. package/dist/auth/profile-detector.d.ts +1 -5
  3. package/dist/auth/profile-detector.d.ts.map +1 -1
  4. package/dist/auth/profile-detector.js +0 -31
  5. package/dist/auth/profile-detector.js.map +1 -1
  6. package/dist/ccs.js +0 -31
  7. package/dist/ccs.js.map +1 -1
  8. package/dist/commands/help-command.d.ts.map +1 -1
  9. package/dist/commands/help-command.js +0 -16
  10. package/dist/commands/help-command.js.map +1 -1
  11. package/dist/config/reserved-names.d.ts +1 -1
  12. package/dist/config/reserved-names.d.ts.map +1 -1
  13. package/dist/config/reserved-names.js +0 -2
  14. package/dist/config/reserved-names.js.map +1 -1
  15. package/dist/config/unified-config-loader.d.ts.map +1 -1
  16. package/dist/config/unified-config-loader.js +0 -30
  17. package/dist/config/unified-config-loader.js.map +1 -1
  18. package/dist/config/unified-config-types.d.ts +2 -45
  19. package/dist/config/unified-config-types.d.ts.map +1 -1
  20. package/dist/config/unified-config-types.js +2 -18
  21. package/dist/config/unified-config-types.js.map +1 -1
  22. package/dist/ui/assets/{accounts-OHf-47mH.js → accounts-aPbCYgXy.js} +1 -1
  23. package/dist/ui/assets/{analytics-C4uOxyuU.js → analytics-ByHzJ4fO.js} +1 -1
  24. package/dist/ui/assets/{api-B_mbwU9C.js → api-DRVliui6.js} +1 -1
  25. package/dist/ui/assets/{card-CR0u1y_L.js → card-CkFFTnqL.js} +1 -1
  26. package/dist/ui/assets/{cliproxy-tXwMpEJd.js → cliproxy-CJ5njiYX.js} +1 -1
  27. package/dist/ui/assets/{cliproxy-control-panel-DIIw97Bs.js → cliproxy-control-panel-C9y82uCL.js} +1 -1
  28. package/dist/ui/assets/{code-editor-CVohe7u9.js → code-editor-D1jkWlaX.js} +1 -1
  29. package/dist/ui/assets/health-B4BNP_1z.js +1 -0
  30. package/dist/ui/assets/icons-B9AtZK5c.js +1 -0
  31. package/dist/ui/assets/index-B_6ILhjh.css +1 -0
  32. package/dist/ui/assets/index-EyLCmFok.js +44 -0
  33. package/dist/ui/assets/settings-DcAQTmWn.js +1 -0
  34. package/dist/ui/assets/shared-DJshj6er.js +1 -0
  35. package/dist/ui/index.html +3 -3
  36. package/dist/web-server/routes.js +0 -275
  37. package/dist/web-server/routes.js.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/commands/copilot-command.d.ts +0 -10
  40. package/dist/commands/copilot-command.d.ts.map +0 -1
  41. package/dist/commands/copilot-command.js +0 -227
  42. package/dist/commands/copilot-command.js.map +0 -1
  43. package/dist/copilot/copilot-auth.d.ts +0 -52
  44. package/dist/copilot/copilot-auth.d.ts.map +0 -1
  45. package/dist/copilot/copilot-auth.js +0 -201
  46. package/dist/copilot/copilot-auth.js.map +0 -1
  47. package/dist/copilot/copilot-daemon.d.ts +0 -36
  48. package/dist/copilot/copilot-daemon.d.ts.map +0 -1
  49. package/dist/copilot/copilot-daemon.js +0 -237
  50. package/dist/copilot/copilot-daemon.js.map +0 -1
  51. package/dist/copilot/copilot-executor.d.ts +0 -26
  52. package/dist/copilot/copilot-executor.d.ts.map +0 -1
  53. package/dist/copilot/copilot-executor.js +0 -144
  54. package/dist/copilot/copilot-executor.js.map +0 -1
  55. package/dist/copilot/copilot-models.d.ts +0 -34
  56. package/dist/copilot/copilot-models.d.ts.map +0 -1
  57. package/dist/copilot/copilot-models.js +0 -261
  58. package/dist/copilot/copilot-models.js.map +0 -1
  59. package/dist/copilot/copilot-package-manager.d.ts +0 -93
  60. package/dist/copilot/copilot-package-manager.d.ts.map +0 -1
  61. package/dist/copilot/copilot-package-manager.js +0 -488
  62. package/dist/copilot/copilot-package-manager.js.map +0 -1
  63. package/dist/copilot/index.d.ts +0 -13
  64. package/dist/copilot/index.d.ts.map +0 -1
  65. package/dist/copilot/index.js +0 -63
  66. package/dist/copilot/index.js.map +0 -1
  67. package/dist/copilot/types.d.ts +0 -65
  68. package/dist/copilot/types.d.ts.map +0 -1
  69. package/dist/copilot/types.js +0 -8
  70. package/dist/copilot/types.js.map +0 -1
  71. package/dist/ui/assets/copilot-C-eWI9Ce.js +0 -4
  72. package/dist/ui/assets/health-Dh8bSHe-.js +0 -1
  73. package/dist/ui/assets/icons-WTNLz24z.js +0 -1
  74. package/dist/ui/assets/index-BXPLu3zJ.js +0 -44
  75. package/dist/ui/assets/index-D2qNwUdc.css +0 -1
  76. package/dist/ui/assets/settings-Bi8Aw4yN.js +0 -1
  77. package/dist/ui/assets/shared-DQlPCpix.js +0 -1
  78. package/dist/ui/assets/switch-pOvJh4Ez.js +0 -1
@@ -1,237 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copilot Daemon Manager
4
- *
5
- * Manages the copilot-api daemon lifecycle (start/stop/status).
6
- * Uses local installation from ~/.ccs/copilot/ (managed by copilot-package-manager).
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.stopDaemon = exports.startDaemon = exports.getDaemonStatus = exports.isDaemonRunning = void 0;
33
- const child_process_1 = require("child_process");
34
- const fs = __importStar(require("fs"));
35
- const path = __importStar(require("path"));
36
- const http = __importStar(require("http"));
37
- const copilot_package_manager_1 = require("./copilot-package-manager");
38
- const PID_FILE = path.join((0, copilot_package_manager_1.getCopilotDir)(), 'daemon.pid');
39
- /**
40
- * Check if copilot-api daemon is running on the specified port.
41
- * Uses 127.0.0.1 instead of localhost for more reliable local connections.
42
- */
43
- async function isDaemonRunning(port) {
44
- return new Promise((resolve) => {
45
- const req = http.request({
46
- hostname: '127.0.0.1',
47
- port,
48
- path: '/usage',
49
- method: 'GET',
50
- timeout: 3000,
51
- }, (res) => {
52
- resolve(res.statusCode === 200);
53
- });
54
- req.on('error', () => {
55
- resolve(false);
56
- });
57
- req.on('timeout', () => {
58
- req.destroy();
59
- resolve(false);
60
- });
61
- req.end();
62
- });
63
- }
64
- exports.isDaemonRunning = isDaemonRunning;
65
- /**
66
- * Get daemon status.
67
- */
68
- async function getDaemonStatus(port) {
69
- const running = await isDaemonRunning(port);
70
- const pid = getPidFromFile();
71
- return {
72
- running,
73
- port,
74
- pid: running ? (pid ?? undefined) : undefined,
75
- };
76
- }
77
- exports.getDaemonStatus = getDaemonStatus;
78
- /**
79
- * Read PID from file.
80
- */
81
- function getPidFromFile() {
82
- try {
83
- if (fs.existsSync(PID_FILE)) {
84
- const content = fs.readFileSync(PID_FILE, 'utf8').trim();
85
- const pid = parseInt(content, 10);
86
- return isNaN(pid) ? null : pid;
87
- }
88
- }
89
- catch {
90
- // Ignore errors
91
- }
92
- return null;
93
- }
94
- /**
95
- * Write PID to file.
96
- */
97
- function writePidToFile(pid) {
98
- try {
99
- const dir = path.dirname(PID_FILE);
100
- if (!fs.existsSync(dir)) {
101
- fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
102
- }
103
- fs.writeFileSync(PID_FILE, pid.toString(), { mode: 0o600 });
104
- }
105
- catch {
106
- // Ignore errors
107
- }
108
- }
109
- /**
110
- * Remove PID file.
111
- */
112
- function removePidFile() {
113
- try {
114
- if (fs.existsSync(PID_FILE)) {
115
- fs.unlinkSync(PID_FILE);
116
- }
117
- }
118
- catch {
119
- // Ignore errors
120
- }
121
- }
122
- /**
123
- * Start the copilot-api daemon.
124
- *
125
- * @param config Copilot configuration
126
- * @returns Promise that resolves when daemon is ready
127
- */
128
- async function startDaemon(config) {
129
- // Check if already running
130
- if (await isDaemonRunning(config.port)) {
131
- return { success: true, pid: getPidFromFile() ?? undefined };
132
- }
133
- const binPath = (0, copilot_package_manager_1.getCopilotApiBinPath)();
134
- const args = ['start', '--port', config.port.toString()];
135
- // Add account type
136
- if (config.account_type !== 'individual') {
137
- args.push('--account-type', config.account_type);
138
- }
139
- // Add rate limiting
140
- if (config.rate_limit !== null && config.rate_limit > 0) {
141
- args.push('--rate-limit', config.rate_limit.toString());
142
- if (config.wait_on_limit) {
143
- args.push('--wait');
144
- }
145
- }
146
- return new Promise((resolve) => {
147
- let proc;
148
- try {
149
- proc = (0, child_process_1.spawn)(binPath, args, {
150
- stdio: ['ignore', 'pipe', 'pipe'],
151
- detached: true,
152
- shell: process.platform === 'win32',
153
- });
154
- // Unref so parent can exit
155
- proc.unref();
156
- if (proc.pid) {
157
- writePidToFile(proc.pid);
158
- }
159
- // Wait for daemon to be ready (poll for up to 30 seconds)
160
- let attempts = 0;
161
- const maxAttempts = 30;
162
- const checkInterval = setInterval(async () => {
163
- attempts++;
164
- if (await isDaemonRunning(config.port)) {
165
- clearInterval(checkInterval);
166
- resolve({ success: true, pid: proc.pid });
167
- }
168
- else if (attempts >= maxAttempts) {
169
- clearInterval(checkInterval);
170
- resolve({
171
- success: false,
172
- error: 'Daemon did not start within 30 seconds',
173
- });
174
- }
175
- }, 1000);
176
- proc.on('error', (err) => {
177
- clearInterval(checkInterval);
178
- resolve({
179
- success: false,
180
- error: `Failed to start daemon: ${err.message}`,
181
- });
182
- });
183
- }
184
- catch (err) {
185
- resolve({
186
- success: false,
187
- error: `Failed to spawn daemon: ${err.message}`,
188
- });
189
- }
190
- });
191
- }
192
- exports.startDaemon = startDaemon;
193
- /**
194
- * Stop the copilot-api daemon.
195
- */
196
- async function stopDaemon() {
197
- const pid = getPidFromFile();
198
- if (!pid) {
199
- // No PID file, try to find by port
200
- removePidFile();
201
- return { success: true };
202
- }
203
- try {
204
- // Send SIGTERM to the process
205
- process.kill(pid, 'SIGTERM');
206
- // Wait for process to exit (up to 5 seconds)
207
- let attempts = 0;
208
- while (attempts < 10) {
209
- await new Promise((resolve) => setTimeout(resolve, 500));
210
- try {
211
- // Check if process still exists (kill(pid, 0) throws if not)
212
- process.kill(pid, 0);
213
- attempts++;
214
- }
215
- catch {
216
- // Process no longer exists
217
- break;
218
- }
219
- }
220
- removePidFile();
221
- return { success: true };
222
- }
223
- catch (err) {
224
- const error = err;
225
- if (error.code === 'ESRCH') {
226
- // Process doesn't exist
227
- removePidFile();
228
- return { success: true };
229
- }
230
- return {
231
- success: false,
232
- error: `Failed to stop daemon: ${error.message}`,
233
- };
234
- }
235
- }
236
- exports.stopDaemon = stopDaemon;
237
- //# sourceMappingURL=copilot-daemon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copilot-daemon.js","sourceRoot":"","sources":["../../src/copilot/copilot-daemon.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAoD;AACpD,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA6B;AAG7B,uEAAgF;AAEhF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAA,uCAAa,GAAE,EAAE,YAAY,CAAC,CAAC;AAE1D;;;GAGG;AACI,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB;YACE,QAAQ,EAAE,WAAW;YACrB,IAAI;YACJ,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;SACd,EACD,CAAC,GAAG,EAAE,EAAE;YACN,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;QAClC,CAAC,CACF,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AA1BD,0CA0BC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAE7B,OAAO;QACL,OAAO;QACP,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC;AACJ,CAAC;AATD,0CASC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,WAAW,CAC/B,MAAqB;IAErB,2BAA2B;IAC3B,IAAI,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,SAAS,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,8CAAoB,GAAE,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEzD,mBAAmB;IACnB,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAkB,CAAC;QAEvB,IAAI,CAAC;YACH,IAAI,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;gBAC1B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;aACpC,CAAC,CAAC;YAEH,2BAA2B;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAED,0DAA0D;YAC1D,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC3C,QAAQ,EAAE,CAAC;gBAEX,IAAI,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,aAAa,CAAC,aAAa,CAAC,CAAC;oBAC7B,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC5C,CAAC;qBAAM,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;oBACnC,aAAa,CAAC,aAAa,CAAC,CAAC;oBAC7B,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,wCAAwC;qBAChD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC7B,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,2BAA2B,GAAG,CAAC,OAAO,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,2BAA4B,GAAa,CAAC,OAAO,EAAE;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAzED,kCAyEC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU;IAC9B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAE7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,mCAAmC;QACnC,aAAa,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,8BAA8B;QAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAE7B,6CAA6C;QAC7C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,OAAO,QAAQ,GAAG,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,6DAA6D;gBAC7D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrB,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;gBAC3B,MAAM;YACR,CAAC;QACH,CAAC;QAED,aAAa,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAA4B,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,wBAAwB;YACxB,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE;SACjD,CAAC;IACJ,CAAC;AACH,CAAC;AAzCD,gCAyCC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Copilot Executor
3
- *
4
- * Main execution flow for running Claude Code with copilot-api proxy.
5
- * Uses local installation from ~/.ccs/copilot/ (managed by copilot-package-manager).
6
- */
7
- import { CopilotConfig } from '../config/unified-config-types';
8
- import { CopilotStatus } from './types';
9
- /**
10
- * Get full copilot status (auth + daemon).
11
- */
12
- export declare function getCopilotStatus(config: CopilotConfig): Promise<CopilotStatus>;
13
- /**
14
- * Generate environment variables for Claude Code to use copilot-api.
15
- * Uses model mapping for opus/sonnet/haiku tiers if configured.
16
- */
17
- export declare function generateCopilotEnv(config: CopilotConfig): Record<string, string>;
18
- /**
19
- * Execute Claude Code with copilot-api proxy.
20
- *
21
- * @param config Copilot configuration
22
- * @param claudeArgs Arguments to pass to Claude CLI
23
- * @returns Exit code
24
- */
25
- export declare function executeCopilotProfile(config: CopilotConfig, claudeArgs: string[]): Promise<number>;
26
- //# sourceMappingURL=copilot-executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copilot-executor.d.ts","sourceRoot":"","sources":["../../src/copilot/copilot-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAapF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBhF;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,CAAC,CAsFjB"}
@@ -1,144 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copilot Executor
4
- *
5
- * Main execution flow for running Claude Code with copilot-api proxy.
6
- * Uses local installation from ~/.ccs/copilot/ (managed by copilot-package-manager).
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.executeCopilotProfile = exports.generateCopilotEnv = exports.getCopilotStatus = void 0;
10
- const child_process_1 = require("child_process");
11
- const copilot_auth_1 = require("./copilot-auth");
12
- const copilot_daemon_1 = require("./copilot-daemon");
13
- const copilot_package_manager_1 = require("./copilot-package-manager");
14
- /**
15
- * Get full copilot status (auth + daemon).
16
- */
17
- async function getCopilotStatus(config) {
18
- const [auth, daemonRunning] = await Promise.all([
19
- (0, copilot_auth_1.checkAuthStatus)(),
20
- (0, copilot_daemon_1.isDaemonRunning)(config.port),
21
- ]);
22
- return {
23
- auth,
24
- daemon: {
25
- running: daemonRunning,
26
- port: config.port,
27
- },
28
- };
29
- }
30
- exports.getCopilotStatus = getCopilotStatus;
31
- /**
32
- * Generate environment variables for Claude Code to use copilot-api.
33
- * Uses model mapping for opus/sonnet/haiku tiers if configured.
34
- */
35
- function generateCopilotEnv(config) {
36
- // Use mapped models if configured, otherwise fall back to default model
37
- const opusModel = config.opus_model || config.model;
38
- const sonnetModel = config.sonnet_model || config.model;
39
- const haikuModel = config.haiku_model || config.model;
40
- // Use 127.0.0.1 instead of localhost for more reliable local connections
41
- // (bypasses DNS resolution and potential IPv6 issues)
42
- return {
43
- ANTHROPIC_BASE_URL: `http://127.0.0.1:${config.port}`,
44
- ANTHROPIC_AUTH_TOKEN: 'dummy', // copilot-api handles auth internally
45
- ANTHROPIC_MODEL: config.model,
46
- // Model tier mapping - allows different models for opus/sonnet/haiku
47
- ANTHROPIC_DEFAULT_OPUS_MODEL: opusModel,
48
- ANTHROPIC_DEFAULT_SONNET_MODEL: sonnetModel,
49
- ANTHROPIC_SMALL_FAST_MODEL: haikuModel,
50
- ANTHROPIC_DEFAULT_HAIKU_MODEL: haikuModel,
51
- // Disable non-essential traffic to avoid rate limiting
52
- DISABLE_NON_ESSENTIAL_MODEL_CALLS: '1',
53
- CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: '1',
54
- };
55
- }
56
- exports.generateCopilotEnv = generateCopilotEnv;
57
- /**
58
- * Execute Claude Code with copilot-api proxy.
59
- *
60
- * @param config Copilot configuration
61
- * @param claudeArgs Arguments to pass to Claude CLI
62
- * @returns Exit code
63
- */
64
- async function executeCopilotProfile(config, claudeArgs) {
65
- // Ensure copilot-api is installed (auto-install if missing, auto-update if outdated)
66
- try {
67
- await (0, copilot_package_manager_1.ensureCopilotApi)();
68
- }
69
- catch (error) {
70
- console.error('[X] Failed to install copilot-api.');
71
- console.error('');
72
- console.error(`Error: ${error.message}`);
73
- console.error('');
74
- console.error('Try installing manually:');
75
- console.error(' npm install -g copilot-api');
76
- return 1;
77
- }
78
- // Check if copilot-api is installed (should be after ensureCopilotApi)
79
- if (!(0, copilot_auth_1.isCopilotApiInstalled)()) {
80
- console.error('[X] copilot-api is not installed.');
81
- console.error('');
82
- console.error('Install with: ccs copilot --install');
83
- return 1;
84
- }
85
- // Check authentication
86
- const authStatus = await (0, copilot_auth_1.checkAuthStatus)();
87
- if (!authStatus.authenticated) {
88
- console.error('[X] Not authenticated with GitHub.');
89
- console.error('');
90
- console.error('Run: npx copilot-api auth');
91
- console.error('Or: ccs copilot auth');
92
- return 1;
93
- }
94
- // Check if daemon is running or needs to be started
95
- let daemonRunning = await (0, copilot_daemon_1.isDaemonRunning)(config.port);
96
- if (!daemonRunning) {
97
- if (config.auto_start) {
98
- console.log('[i] Starting copilot-api daemon...');
99
- const result = await (0, copilot_daemon_1.startDaemon)(config);
100
- if (!result.success) {
101
- console.error(`[X] Failed to start daemon: ${result.error}`);
102
- return 1;
103
- }
104
- console.log(`[OK] Daemon started on port ${config.port}`);
105
- daemonRunning = true;
106
- }
107
- else {
108
- console.error('[X] copilot-api daemon is not running.');
109
- console.error('');
110
- console.error('Start the daemon manually:');
111
- console.error(` npx copilot-api start --port ${config.port}`);
112
- console.error('');
113
- console.error('Or enable auto_start in config:');
114
- console.error(' ccs config (then enable auto_start in Copilot section)');
115
- return 1;
116
- }
117
- }
118
- // Generate environment for Claude
119
- const copilotEnv = generateCopilotEnv(config);
120
- // Merge with current environment
121
- const env = {
122
- ...process.env,
123
- ...copilotEnv,
124
- };
125
- console.log(`[i] Using GitHub Copilot proxy (model: ${config.model})`);
126
- console.log('');
127
- // Spawn Claude CLI
128
- return new Promise((resolve) => {
129
- const proc = (0, child_process_1.spawn)('claude', claudeArgs, {
130
- stdio: 'inherit',
131
- env,
132
- shell: process.platform === 'win32',
133
- });
134
- proc.on('close', (code) => {
135
- resolve(code ?? 0);
136
- });
137
- proc.on('error', (err) => {
138
- console.error(`[X] Failed to start Claude: ${err.message}`);
139
- resolve(1);
140
- });
141
- });
142
- }
143
- exports.executeCopilotProfile = executeCopilotProfile;
144
- //# sourceMappingURL=copilot-executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copilot-executor.js","sourceRoot":"","sources":["../../src/copilot/copilot-executor.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Copilot Model Catalog
3
- *
4
- * Manages available models from copilot-api.
5
- * Based on GitHub Copilot supported models:
6
- * https://docs.github.com/copilot/reference/ai-models/supported-models
7
- */
8
- import { CopilotModel } from './types';
9
- /**
10
- * Default models available through copilot-api.
11
- * Used as fallback when API is not reachable.
12
- * Source: GitHub Copilot Supported Models (Dec 2025)
13
- *
14
- * Plan tiers: free, pro, pro+, business, enterprise
15
- * Multipliers: 0 = free tier, 0.25-0.33 = cheap, 1 = standard, 3-10 = premium
16
- */
17
- export declare const DEFAULT_COPILOT_MODELS: CopilotModel[];
18
- /**
19
- * Fetch available models from running copilot-api daemon.
20
- *
21
- * @param port The port copilot-api is running on
22
- * @returns List of available models
23
- */
24
- export declare function fetchModelsFromDaemon(port: number): Promise<CopilotModel[]>;
25
- /**
26
- * Get available models (from daemon or defaults).
27
- */
28
- export declare function getAvailableModels(port: number): Promise<CopilotModel[]>;
29
- /**
30
- * Get the default model.
31
- * Uses gpt-4.1 as it's available on free tier.
32
- */
33
- export declare function getDefaultModel(): string;
34
- //# sourceMappingURL=copilot-models.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copilot-models.d.ts","sourceRoot":"","sources":["../../src/copilot/copilot-models.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,YAAY,EA+HhD,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkDjF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAE9E;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC"}