@kaitranntt/ccs 6.4.0-dev.1 → 6.4.0-dev.3
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/VERSION +1 -1
- package/dist/auth/profile-detector.d.ts +5 -1
- package/dist/auth/profile-detector.d.ts.map +1 -1
- package/dist/auth/profile-detector.js +31 -0
- package/dist/auth/profile-detector.js.map +1 -1
- package/dist/ccs.d.ts +0 -8
- package/dist/ccs.d.ts.map +1 -1
- package/dist/ccs.js +92 -11
- package/dist/ccs.js.map +1 -1
- package/dist/commands/copilot-command.d.ts +10 -0
- package/dist/commands/copilot-command.d.ts.map +1 -0
- package/dist/commands/copilot-command.js +227 -0
- package/dist/commands/copilot-command.js.map +1 -0
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +16 -0
- package/dist/commands/help-command.js.map +1 -1
- package/dist/config/reserved-names.d.ts +1 -1
- package/dist/config/reserved-names.d.ts.map +1 -1
- package/dist/config/reserved-names.js +2 -0
- package/dist/config/reserved-names.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +30 -0
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +45 -2
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +18 -2
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/copilot/copilot-auth.d.ts +52 -0
- package/dist/copilot/copilot-auth.d.ts.map +1 -0
- package/dist/copilot/copilot-auth.js +201 -0
- package/dist/copilot/copilot-auth.js.map +1 -0
- package/dist/copilot/copilot-daemon.d.ts +36 -0
- package/dist/copilot/copilot-daemon.d.ts.map +1 -0
- package/dist/copilot/copilot-daemon.js +237 -0
- package/dist/copilot/copilot-daemon.js.map +1 -0
- package/dist/copilot/copilot-executor.d.ts +26 -0
- package/dist/copilot/copilot-executor.d.ts.map +1 -0
- package/dist/copilot/copilot-executor.js +144 -0
- package/dist/copilot/copilot-executor.js.map +1 -0
- package/dist/copilot/copilot-models.d.ts +34 -0
- package/dist/copilot/copilot-models.d.ts.map +1 -0
- package/dist/copilot/copilot-models.js +261 -0
- package/dist/copilot/copilot-models.js.map +1 -0
- package/dist/copilot/copilot-package-manager.d.ts +93 -0
- package/dist/copilot/copilot-package-manager.d.ts.map +1 -0
- package/dist/copilot/copilot-package-manager.js +488 -0
- package/dist/copilot/copilot-package-manager.js.map +1 -0
- package/dist/copilot/index.d.ts +13 -0
- package/dist/copilot/index.d.ts.map +1 -0
- package/dist/copilot/index.js +63 -0
- package/dist/copilot/index.js.map +1 -0
- package/dist/copilot/types.d.ts +65 -0
- package/dist/copilot/types.d.ts.map +1 -0
- package/dist/copilot/types.js +8 -0
- package/dist/copilot/types.js.map +1 -0
- package/dist/ui/assets/{accounts-mGEFDVQS.js → accounts-OHf-47mH.js} +1 -1
- package/dist/ui/assets/{analytics-3363PLPv.js → analytics-C4uOxyuU.js} +1 -1
- package/dist/ui/assets/{api-BUpOap35.js → api-B_mbwU9C.js} +1 -1
- package/dist/ui/assets/{card-BFvdp_30.js → card-CR0u1y_L.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-C9y82uCL.js → cliproxy-control-panel-DIIw97Bs.js} +1 -1
- package/dist/ui/assets/{cliproxy-CeRFx3Vh.js → cliproxy-tXwMpEJd.js} +1 -1
- package/dist/ui/assets/{code-editor-CsXy1qcC.js → code-editor-CVohe7u9.js} +1 -1
- package/dist/ui/assets/copilot-C-eWI9Ce.js +4 -0
- package/dist/ui/assets/health-Dh8bSHe-.js +1 -0
- package/dist/ui/assets/icons-WTNLz24z.js +1 -0
- package/dist/ui/assets/{index-mCIF4r_M.js → index-BXPLu3zJ.js} +10 -10
- package/dist/ui/assets/index-D2qNwUdc.css +1 -0
- package/dist/ui/assets/settings-Bi8Aw4yN.js +1 -0
- package/dist/ui/assets/shared-DQlPCpix.js +1 -0
- package/dist/ui/assets/switch-pOvJh4Ez.js +1 -0
- package/dist/ui/index.html +3 -3
- package/dist/utils/update-checker.d.ts +14 -2
- package/dist/utils/update-checker.d.ts.map +1 -1
- package/dist/utils/update-checker.js +39 -9
- package/dist/utils/update-checker.js.map +1 -1
- package/dist/web-server/routes.js +275 -0
- package/dist/web-server/routes.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/health-DK1m5XWA.js +0 -1
- package/dist/ui/assets/icons-B9AtZK5c.js +0 -1
- package/dist/ui/assets/index-B_6ILhjh.css +0 -1
- package/dist/ui/assets/settings-COJXs9MQ.js +0 -1
- package/dist/ui/assets/shared-DL1VmXYB.js +0 -1
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copilot Model Catalog
|
|
4
|
+
*
|
|
5
|
+
* Manages available models from copilot-api.
|
|
6
|
+
* Based on GitHub Copilot supported models:
|
|
7
|
+
* https://docs.github.com/copilot/reference/ai-models/supported-models
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.getDefaultModel = exports.getAvailableModels = exports.fetchModelsFromDaemon = exports.DEFAULT_COPILOT_MODELS = void 0;
|
|
34
|
+
const http = __importStar(require("http"));
|
|
35
|
+
/**
|
|
36
|
+
* Default models available through copilot-api.
|
|
37
|
+
* Used as fallback when API is not reachable.
|
|
38
|
+
* Source: GitHub Copilot Supported Models (Dec 2025)
|
|
39
|
+
*
|
|
40
|
+
* Plan tiers: free, pro, pro+, business, enterprise
|
|
41
|
+
* Multipliers: 0 = free tier, 0.25-0.33 = cheap, 1 = standard, 3-10 = premium
|
|
42
|
+
*/
|
|
43
|
+
exports.DEFAULT_COPILOT_MODELS = [
|
|
44
|
+
// Anthropic Models - All require paid Copilot subscription
|
|
45
|
+
{
|
|
46
|
+
id: 'claude-sonnet-4.5',
|
|
47
|
+
name: 'Claude Sonnet 4.5',
|
|
48
|
+
provider: 'anthropic',
|
|
49
|
+
minPlan: 'pro',
|
|
50
|
+
multiplier: 1,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'claude-sonnet-4',
|
|
54
|
+
name: 'Claude Sonnet 4',
|
|
55
|
+
provider: 'anthropic',
|
|
56
|
+
minPlan: 'pro',
|
|
57
|
+
multiplier: 1,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: 'claude-opus-4.5',
|
|
61
|
+
name: 'Claude Opus 4.5',
|
|
62
|
+
provider: 'anthropic',
|
|
63
|
+
minPlan: 'pro',
|
|
64
|
+
multiplier: 3,
|
|
65
|
+
preview: true,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 'claude-opus-4.1',
|
|
69
|
+
name: 'Claude Opus 4.1',
|
|
70
|
+
provider: 'anthropic',
|
|
71
|
+
minPlan: 'pro',
|
|
72
|
+
multiplier: 10,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 'claude-haiku-4.5',
|
|
76
|
+
name: 'Claude Haiku 4.5',
|
|
77
|
+
provider: 'anthropic',
|
|
78
|
+
minPlan: 'pro', // Requires paid Copilot subscription
|
|
79
|
+
multiplier: 0.33,
|
|
80
|
+
},
|
|
81
|
+
// OpenAI Models
|
|
82
|
+
{
|
|
83
|
+
id: 'gpt-5.2',
|
|
84
|
+
name: 'GPT-5.2',
|
|
85
|
+
provider: 'openai',
|
|
86
|
+
minPlan: 'pro',
|
|
87
|
+
multiplier: 1,
|
|
88
|
+
preview: true,
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: 'gpt-5.1-codex-max',
|
|
92
|
+
name: 'GPT-5.1 Codex Max',
|
|
93
|
+
provider: 'openai',
|
|
94
|
+
minPlan: 'pro',
|
|
95
|
+
multiplier: 1,
|
|
96
|
+
},
|
|
97
|
+
{ id: 'gpt-5.1-codex', name: 'GPT-5.1 Codex', provider: 'openai', minPlan: 'pro', multiplier: 1 },
|
|
98
|
+
{
|
|
99
|
+
id: 'gpt-5.1-codex-mini',
|
|
100
|
+
name: 'GPT-5.1 Codex Mini',
|
|
101
|
+
provider: 'openai',
|
|
102
|
+
minPlan: 'pro',
|
|
103
|
+
multiplier: 0.33,
|
|
104
|
+
preview: true,
|
|
105
|
+
},
|
|
106
|
+
{ id: 'gpt-5.1', name: 'GPT-5.1', provider: 'openai', minPlan: 'pro', multiplier: 1 },
|
|
107
|
+
{
|
|
108
|
+
id: 'gpt-5-codex',
|
|
109
|
+
name: 'GPT-5 Codex',
|
|
110
|
+
provider: 'openai',
|
|
111
|
+
minPlan: 'pro',
|
|
112
|
+
multiplier: 1,
|
|
113
|
+
preview: true,
|
|
114
|
+
},
|
|
115
|
+
{ id: 'gpt-5', name: 'GPT-5', provider: 'openai', minPlan: 'pro', multiplier: 1 },
|
|
116
|
+
{ id: 'gpt-5-mini', name: 'GPT-5 Mini', provider: 'openai', minPlan: 'free', multiplier: 0 },
|
|
117
|
+
{
|
|
118
|
+
id: 'gpt-4.1',
|
|
119
|
+
name: 'GPT-4.1',
|
|
120
|
+
provider: 'openai',
|
|
121
|
+
isDefault: true,
|
|
122
|
+
minPlan: 'free',
|
|
123
|
+
multiplier: 0,
|
|
124
|
+
},
|
|
125
|
+
// Google Models
|
|
126
|
+
{
|
|
127
|
+
id: 'gemini-3-pro',
|
|
128
|
+
name: 'Gemini 3 Pro',
|
|
129
|
+
provider: 'openai',
|
|
130
|
+
minPlan: 'pro',
|
|
131
|
+
multiplier: 1,
|
|
132
|
+
preview: true,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
id: 'gemini-3-flash',
|
|
136
|
+
name: 'Gemini 3 Flash',
|
|
137
|
+
provider: 'openai',
|
|
138
|
+
minPlan: 'pro',
|
|
139
|
+
multiplier: 0.33,
|
|
140
|
+
preview: true,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
id: 'gemini-2.5-pro',
|
|
144
|
+
name: 'Gemini 2.5 Pro',
|
|
145
|
+
provider: 'openai',
|
|
146
|
+
minPlan: 'pro',
|
|
147
|
+
multiplier: 1,
|
|
148
|
+
},
|
|
149
|
+
// xAI Models
|
|
150
|
+
{
|
|
151
|
+
id: 'grok-code-fast-1',
|
|
152
|
+
name: 'Grok Code Fast 1',
|
|
153
|
+
provider: 'openai',
|
|
154
|
+
minPlan: 'pro',
|
|
155
|
+
multiplier: 0.25,
|
|
156
|
+
},
|
|
157
|
+
// Fine-tuned Models
|
|
158
|
+
{
|
|
159
|
+
id: 'raptor-mini',
|
|
160
|
+
name: 'Raptor Mini',
|
|
161
|
+
provider: 'openai',
|
|
162
|
+
minPlan: 'free',
|
|
163
|
+
multiplier: 0,
|
|
164
|
+
preview: true,
|
|
165
|
+
},
|
|
166
|
+
];
|
|
167
|
+
/**
|
|
168
|
+
* Fetch available models from running copilot-api daemon.
|
|
169
|
+
*
|
|
170
|
+
* @param port The port copilot-api is running on
|
|
171
|
+
* @returns List of available models
|
|
172
|
+
*/
|
|
173
|
+
async function fetchModelsFromDaemon(port) {
|
|
174
|
+
return new Promise((resolve) => {
|
|
175
|
+
const req = http.request({
|
|
176
|
+
// Use 127.0.0.1 instead of localhost for more reliable local connections
|
|
177
|
+
hostname: '127.0.0.1',
|
|
178
|
+
port,
|
|
179
|
+
path: '/v1/models',
|
|
180
|
+
method: 'GET',
|
|
181
|
+
timeout: 5000,
|
|
182
|
+
}, (res) => {
|
|
183
|
+
let data = '';
|
|
184
|
+
res.on('data', (chunk) => {
|
|
185
|
+
data += chunk;
|
|
186
|
+
});
|
|
187
|
+
res.on('end', () => {
|
|
188
|
+
try {
|
|
189
|
+
const response = JSON.parse(data);
|
|
190
|
+
if (response.data && Array.isArray(response.data)) {
|
|
191
|
+
const models = response.data.map((m) => ({
|
|
192
|
+
id: m.id,
|
|
193
|
+
name: formatModelName(m.id),
|
|
194
|
+
provider: detectProvider(m.id),
|
|
195
|
+
isDefault: m.id === 'gpt-4.1', // Free tier default
|
|
196
|
+
}));
|
|
197
|
+
resolve(models.length > 0 ? models : exports.DEFAULT_COPILOT_MODELS);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
resolve(exports.DEFAULT_COPILOT_MODELS);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
resolve(exports.DEFAULT_COPILOT_MODELS);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
req.on('error', () => {
|
|
209
|
+
resolve(exports.DEFAULT_COPILOT_MODELS);
|
|
210
|
+
});
|
|
211
|
+
req.on('timeout', () => {
|
|
212
|
+
req.destroy();
|
|
213
|
+
resolve(exports.DEFAULT_COPILOT_MODELS);
|
|
214
|
+
});
|
|
215
|
+
req.end();
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
exports.fetchModelsFromDaemon = fetchModelsFromDaemon;
|
|
219
|
+
/**
|
|
220
|
+
* Get available models (from daemon or defaults).
|
|
221
|
+
*/
|
|
222
|
+
async function getAvailableModels(port) {
|
|
223
|
+
return fetchModelsFromDaemon(port);
|
|
224
|
+
}
|
|
225
|
+
exports.getAvailableModels = getAvailableModels;
|
|
226
|
+
/**
|
|
227
|
+
* Get the default model.
|
|
228
|
+
* Uses gpt-4.1 as it's available on free tier.
|
|
229
|
+
*/
|
|
230
|
+
function getDefaultModel() {
|
|
231
|
+
return 'gpt-4.1';
|
|
232
|
+
}
|
|
233
|
+
exports.getDefaultModel = getDefaultModel;
|
|
234
|
+
/**
|
|
235
|
+
* Detect provider from model ID.
|
|
236
|
+
*/
|
|
237
|
+
function detectProvider(modelId) {
|
|
238
|
+
if (modelId.includes('claude'))
|
|
239
|
+
return 'anthropic';
|
|
240
|
+
return 'openai';
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Format model ID to human-readable name.
|
|
244
|
+
* Includes badges for preview and plan tier.
|
|
245
|
+
*/
|
|
246
|
+
function formatModelName(modelId) {
|
|
247
|
+
// Find model in catalog for metadata
|
|
248
|
+
const model = exports.DEFAULT_COPILOT_MODELS.find((m) => m.id === modelId);
|
|
249
|
+
if (model) {
|
|
250
|
+
let name = model.name;
|
|
251
|
+
if (model.preview)
|
|
252
|
+
name += ' (Preview)';
|
|
253
|
+
return name;
|
|
254
|
+
}
|
|
255
|
+
// Fallback: convert kebab-case to title case
|
|
256
|
+
return modelId
|
|
257
|
+
.split('-')
|
|
258
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
259
|
+
.join(' ');
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=copilot-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-models.js","sourceRoot":"","sources":["../../src/copilot/copilot-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copilot Package Manager
|
|
3
|
+
*
|
|
4
|
+
* Self-managed npm package installation for copilot-api:
|
|
5
|
+
* - Installs copilot-api locally to ~/.ccs/copilot/
|
|
6
|
+
* - Auto-updates to latest version (like CLIProxy binary manager)
|
|
7
|
+
* - Version caching to avoid hitting npm registry on every run
|
|
8
|
+
* - Retry logic with exponential backoff
|
|
9
|
+
*
|
|
10
|
+
* Pattern: Mirrors CLIProxy BinaryManager but for npm packages
|
|
11
|
+
*/
|
|
12
|
+
/** Update check result */
|
|
13
|
+
interface UpdateCheckResult {
|
|
14
|
+
hasUpdate: boolean;
|
|
15
|
+
currentVersion: string;
|
|
16
|
+
latestVersion: string;
|
|
17
|
+
fromCache: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get copilot base directory
|
|
21
|
+
* All copilot-related files are stored under ~/.ccs/copilot/
|
|
22
|
+
*/
|
|
23
|
+
export declare function getCopilotDir(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Get path to copilot-api binary
|
|
26
|
+
*/
|
|
27
|
+
export declare function getCopilotApiBinPath(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get path to version pin file
|
|
30
|
+
*/
|
|
31
|
+
export declare function getVersionPinPath(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Check if copilot-api is installed locally
|
|
34
|
+
*/
|
|
35
|
+
export declare function isCopilotApiInstalled(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Get installed version from .version file
|
|
38
|
+
*/
|
|
39
|
+
export declare function getInstalledVersion(): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* Get pinned version if one exists
|
|
42
|
+
*/
|
|
43
|
+
export declare function getPinnedVersion(): string | null;
|
|
44
|
+
/**
|
|
45
|
+
* Save pinned version
|
|
46
|
+
*/
|
|
47
|
+
export declare function savePinnedVersion(version: string): void;
|
|
48
|
+
/**
|
|
49
|
+
* Clear pinned version
|
|
50
|
+
*/
|
|
51
|
+
export declare function clearPinnedVersion(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Check for updates
|
|
54
|
+
*/
|
|
55
|
+
export declare function checkForUpdates(): Promise<UpdateCheckResult>;
|
|
56
|
+
/**
|
|
57
|
+
* Ensure copilot-api is available (install if missing, update if outdated)
|
|
58
|
+
* @returns Path to copilot-api binary
|
|
59
|
+
*/
|
|
60
|
+
export declare function ensureCopilotApi(verbose?: boolean): Promise<string>;
|
|
61
|
+
/**
|
|
62
|
+
* Install a specific version of copilot-api
|
|
63
|
+
*/
|
|
64
|
+
export declare function installCopilotApiVersion(version: string, _verbose?: boolean): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Uninstall copilot-api (remove ~/.ccs/copilot directory)
|
|
67
|
+
*/
|
|
68
|
+
export declare function uninstallCopilotApi(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Get copilot-api info
|
|
71
|
+
*/
|
|
72
|
+
export declare function getCopilotApiInfo(): {
|
|
73
|
+
installed: boolean;
|
|
74
|
+
version: string | null;
|
|
75
|
+
path: string;
|
|
76
|
+
pinnedVersion: string | null;
|
|
77
|
+
};
|
|
78
|
+
declare const _default: {
|
|
79
|
+
getCopilotDir: typeof getCopilotDir;
|
|
80
|
+
getCopilotApiBinPath: typeof getCopilotApiBinPath;
|
|
81
|
+
isCopilotApiInstalled: typeof isCopilotApiInstalled;
|
|
82
|
+
getInstalledVersion: typeof getInstalledVersion;
|
|
83
|
+
getPinnedVersion: typeof getPinnedVersion;
|
|
84
|
+
savePinnedVersion: typeof savePinnedVersion;
|
|
85
|
+
clearPinnedVersion: typeof clearPinnedVersion;
|
|
86
|
+
checkForUpdates: typeof checkForUpdates;
|
|
87
|
+
ensureCopilotApi: typeof ensureCopilotApi;
|
|
88
|
+
installCopilotApiVersion: typeof installCopilotApiVersion;
|
|
89
|
+
uninstallCopilotApi: typeof uninstallCopilotApi;
|
|
90
|
+
getCopilotApiInfo: typeof getCopilotApiInfo;
|
|
91
|
+
};
|
|
92
|
+
export default _default;
|
|
93
|
+
//# sourceMappingURL=copilot-package-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-package-manager.d.ts","sourceRoot":"","sources":["../../src/copilot/copilot-package-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwBH,0BAA0B;AAC1B,UAAU,iBAAiB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AASD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C;AAuBD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAUnD;AA+FD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAUhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAQvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CASzC;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAkClE;AAkED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA4FvE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAOA;;;;;;;;;;;;;;;AAED,wBAaE"}
|