@trydecember/cli 0.2.26 → 0.2.28
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/README.md +4 -4
- package/dist/december.js +61 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
December is an AI coding assistant that lives in your terminal. It understands your codebase and helps you build faster by writing code, fixing bugs, and running commands. Use it directly in your terminal or alongside your favorite IDE.
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**Also available on the web at <a href="https://trydecember.com" target="_blank">trydecember.com</a>**
|
|
6
6
|
|
|
7
|
-
<img src="https://github.com/user-attachments/assets/
|
|
7
|
+
<img src="https://github.com/user-attachments/assets/68a4d571-2242-4212-8d80-6157269d8b37" alt="December" width="100%" />
|
|
8
8
|
|
|
9
9
|
- **Writes code & runs commands:** Ask it to build features, fix bugs, or run tests. It does the work for you.
|
|
10
|
-
- **Cloud Handoff:** Use _/handoff_ to continue your session on **<a href="https://trydecember.com" target="_blank">
|
|
10
|
+
- **Cloud Handoff:** Use _/handoff_ to continue your session on **<a href="https://trydecember.com" target="_blank">trydecember.com</a>**
|
|
11
11
|
- **Bring your own AI:** Use API keys for OpenAI, Anthropic, Gemini, and 12+ others, or log in via December to use December credits.
|
|
12
12
|
|
|
13
13
|
### Get Started
|
|
@@ -22,4 +22,4 @@ npm install -g @trydecember/cli
|
|
|
22
22
|
|
|
23
23
|
### Feedback & Bugs
|
|
24
24
|
|
|
25
|
-
Found a bug or have a feature request? [
|
|
25
|
+
Found a bug or have a feature request? [Open an issue](https://github.com/phasehumans/december/issues) or email us at [team@trydecember.com](mailto:team@trydecember.com)
|
package/dist/december.js
CHANGED
|
@@ -233,6 +233,8 @@ function getModelContextWindow(value) {
|
|
|
233
233
|
return 200000;
|
|
234
234
|
if (lower.includes("o3-mini") || lower.includes("o1"))
|
|
235
235
|
return 200000;
|
|
236
|
+
if (lower.includes("gpt-5"))
|
|
237
|
+
return 200000;
|
|
236
238
|
if (lower.includes("gpt-4.5"))
|
|
237
239
|
return 128000;
|
|
238
240
|
if (lower.includes("gpt-4"))
|
|
@@ -265,14 +267,24 @@ var init_models = __esm(() => {
|
|
|
265
267
|
"gemini-3.6-flash": 1e6,
|
|
266
268
|
"gemini-3.5-flash": 1e6,
|
|
267
269
|
"gemini-3.5-flash-lite": 1e6,
|
|
270
|
+
"gemini-3-pro-preview": 1e6,
|
|
268
271
|
"gemini-3.1-pro": 1e6,
|
|
269
272
|
"gemini-2.5-pro": 1e6,
|
|
270
273
|
"gemini-2.5-flash": 1e6,
|
|
274
|
+
"claude-fable-5": 200000,
|
|
275
|
+
"claude-opus-5": 200000,
|
|
276
|
+
"claude-sonnet-5": 200000,
|
|
277
|
+
"claude-haiku-4-5-20251001": 200000,
|
|
271
278
|
"claude-3-7-sonnet-latest": 200000,
|
|
272
279
|
"claude-3-5-sonnet-20241022": 200000,
|
|
273
280
|
"claude-3-5-sonnet-latest": 200000,
|
|
274
281
|
"claude-3-5-haiku-latest": 200000,
|
|
275
282
|
"claude-3-haiku-20240307": 200000,
|
|
283
|
+
"gpt-5.6-sol": 200000,
|
|
284
|
+
"gpt-5.6-terra": 200000,
|
|
285
|
+
"gpt-5.6-luna": 200000,
|
|
286
|
+
"gpt-5.5-instant": 128000,
|
|
287
|
+
"gpt-5.4-mini": 128000,
|
|
276
288
|
"o3-mini": 200000,
|
|
277
289
|
o1: 200000,
|
|
278
290
|
"o1-mini": 128000,
|
|
@@ -9117,6 +9129,13 @@ var init_openai = __esm(() => {
|
|
|
9117
9129
|
});
|
|
9118
9130
|
|
|
9119
9131
|
// ../../packages/providers/src/providers/openai.ts
|
|
9132
|
+
function resolveOpenAIModel(model) {
|
|
9133
|
+
let name = model || "gpt-4o";
|
|
9134
|
+
if (name.startsWith("openai/")) {
|
|
9135
|
+
name = name.slice("openai/".length);
|
|
9136
|
+
}
|
|
9137
|
+
return name;
|
|
9138
|
+
}
|
|
9120
9139
|
function openaiProvider(baseURL, apiKey, defaultHeaders, customClient) {
|
|
9121
9140
|
const client = customClient || new OpenAI({
|
|
9122
9141
|
baseURL,
|
|
@@ -9183,7 +9202,7 @@ function openaiProvider(baseURL, apiKey, defaultHeaders, customClient) {
|
|
|
9183
9202
|
}
|
|
9184
9203
|
}
|
|
9185
9204
|
const stream = await client.chat.completions.create({
|
|
9186
|
-
model: modelOptions?.model
|
|
9205
|
+
model: resolveOpenAIModel(modelOptions?.model),
|
|
9187
9206
|
messages: oaiMessages,
|
|
9188
9207
|
tools: oaiTools,
|
|
9189
9208
|
stream: true,
|
|
@@ -62566,6 +62585,19 @@ var init_src = __esm(() => {
|
|
|
62566
62585
|
});
|
|
62567
62586
|
|
|
62568
62587
|
// ../../packages/providers/src/providers/anthropic.ts
|
|
62588
|
+
function resolveAnthropicModel(model) {
|
|
62589
|
+
let name = model || "claude-3-5-sonnet-20241022";
|
|
62590
|
+
if (name.startsWith("anthropic/")) {
|
|
62591
|
+
name = name.slice("anthropic/".length);
|
|
62592
|
+
}
|
|
62593
|
+
const aliasMap = {
|
|
62594
|
+
"claude-3-7-sonnet-latest": "claude-3-7-sonnet-20250219",
|
|
62595
|
+
"claude-3-5-sonnet-latest": "claude-3-5-sonnet-20241022",
|
|
62596
|
+
"claude-3-5-haiku-latest": "claude-3-5-haiku-20241022",
|
|
62597
|
+
"claude-3-opus-latest": "claude-3-opus-20240229"
|
|
62598
|
+
};
|
|
62599
|
+
return aliasMap[name] || name;
|
|
62600
|
+
}
|
|
62569
62601
|
function anthropicProvider(baseURL, apiKey, customClient) {
|
|
62570
62602
|
const client = customClient || new Anthropic({
|
|
62571
62603
|
baseURL,
|
|
@@ -62674,7 +62706,7 @@ function anthropicProvider(baseURL, apiKey, customClient) {
|
|
|
62674
62706
|
}
|
|
62675
62707
|
}
|
|
62676
62708
|
const stream = await client.messages.create({
|
|
62677
|
-
model: modelOptions?.model
|
|
62709
|
+
model: resolveAnthropicModel(modelOptions?.model),
|
|
62678
62710
|
messages: antMessages,
|
|
62679
62711
|
system: formattedSystem,
|
|
62680
62712
|
tools: antTools,
|
|
@@ -102343,6 +102375,16 @@ function sanitizeSchemaForGemini(schema) {
|
|
|
102343
102375
|
}
|
|
102344
102376
|
return result;
|
|
102345
102377
|
}
|
|
102378
|
+
function resolveGeminiModel(model) {
|
|
102379
|
+
let name = model || "gemini-3.6-flash";
|
|
102380
|
+
if (name.startsWith("google/")) {
|
|
102381
|
+
name = name.slice("google/".length);
|
|
102382
|
+
}
|
|
102383
|
+
if (name === "gemini-3.1-pro") {
|
|
102384
|
+
return "gemini-3-pro-preview";
|
|
102385
|
+
}
|
|
102386
|
+
return name;
|
|
102387
|
+
}
|
|
102346
102388
|
function geminiProvider(apiKey, customClient) {
|
|
102347
102389
|
const client = customClient || new GoogleGenAI2({
|
|
102348
102390
|
apiKey: apiKey || process.env.GEMINI_API_KEY || "dummy-key"
|
|
@@ -102446,11 +102488,7 @@ function geminiProvider(apiKey, customClient) {
|
|
|
102446
102488
|
] : undefined;
|
|
102447
102489
|
const thinkingLevel = modelOptions?.thinkingLevel;
|
|
102448
102490
|
let thinkingConfig;
|
|
102449
|
-
if (thinkingLevel
|
|
102450
|
-
thinkingConfig = { thinkingBudget: 0 };
|
|
102451
|
-
} else if (thinkingLevel === "auto") {
|
|
102452
|
-
thinkingConfig = { thinkingBudget: -1 };
|
|
102453
|
-
} else if (thinkingLevel) {
|
|
102491
|
+
if (thinkingLevel && thinkingLevel !== "off" && thinkingLevel !== "auto") {
|
|
102454
102492
|
const budgetMap = {
|
|
102455
102493
|
minimal: 1024,
|
|
102456
102494
|
low: 2048,
|
|
@@ -102463,10 +102501,10 @@ function geminiProvider(apiKey, customClient) {
|
|
|
102463
102501
|
}
|
|
102464
102502
|
}
|
|
102465
102503
|
const responseStream = await client.models.generateContentStream({
|
|
102466
|
-
model: modelOptions?.model
|
|
102504
|
+
model: resolveGeminiModel(modelOptions?.model),
|
|
102467
102505
|
contents: geminiMessages,
|
|
102468
102506
|
config: {
|
|
102469
|
-
systemInstruction: systemPrompt ? {
|
|
102507
|
+
systemInstruction: systemPrompt ? { parts: [{ text: systemPrompt }] } : undefined,
|
|
102470
102508
|
tools: geminiTools,
|
|
102471
102509
|
temperature: modelOptions?.temperature,
|
|
102472
102510
|
maxOutputTokens: modelOptions?.max_tokens,
|
|
@@ -102660,6 +102698,9 @@ var init_zai = __esm(() => {
|
|
|
102660
102698
|
// ../../packages/providers/src/index.ts
|
|
102661
102699
|
var exports_src2 = {};
|
|
102662
102700
|
__export(exports_src2, {
|
|
102701
|
+
resolveOpenAIModel: () => resolveOpenAIModel,
|
|
102702
|
+
resolveGeminiModel: () => resolveGeminiModel,
|
|
102703
|
+
resolveAnthropicModel: () => resolveAnthropicModel,
|
|
102663
102704
|
registerProvider: () => registerProvider,
|
|
102664
102705
|
openrouterProvider: () => openrouterProvider,
|
|
102665
102706
|
openaiProvider: () => openaiProvider,
|
|
@@ -253856,6 +253897,10 @@ var getProviderModels = (provider) => {
|
|
|
253856
253897
|
switch (provider) {
|
|
253857
253898
|
case "anthropic":
|
|
253858
253899
|
return [
|
|
253900
|
+
{ label: "Claude Fable 5", value: "claude-fable-5" },
|
|
253901
|
+
{ label: "Claude Opus 5", value: "claude-opus-5" },
|
|
253902
|
+
{ label: "Claude Sonnet 5", value: "claude-sonnet-5" },
|
|
253903
|
+
{ label: "Claude Haiku 4.5", value: "claude-haiku-4-5-20251001" },
|
|
253859
253904
|
{ label: "Claude 3.7 Sonnet", value: "claude-3-7-sonnet-latest" },
|
|
253860
253905
|
{ label: "Claude 3.5 Sonnet", value: "claude-3-5-sonnet-latest" },
|
|
253861
253906
|
{ label: "Claude 3.5 Haiku", value: "claude-3-5-haiku-latest" },
|
|
@@ -253868,7 +253913,6 @@ var getProviderModels = (provider) => {
|
|
|
253868
253913
|
{ label: "Gemini 3.6 Flash", value: "gemini-3.6-flash" },
|
|
253869
253914
|
{ label: "Gemini 3.5 Flash", value: "gemini-3.5-flash" },
|
|
253870
253915
|
{ label: "Gemini 3.5 Flash Lite", value: "gemini-3.5-flash-lite" },
|
|
253871
|
-
{ label: "Gemini 3.1 Pro", value: "gemini-3.1-pro" },
|
|
253872
253916
|
{ label: "Gemini 3 Pro Preview", value: "gemini-3-pro-preview" },
|
|
253873
253917
|
{ label: "Gemini 2.5 Pro", value: "gemini-2.5-pro" },
|
|
253874
253918
|
{ label: "Gemini 2.5 Flash", value: "gemini-2.5-flash" },
|
|
@@ -253879,14 +253923,17 @@ var getProviderModels = (provider) => {
|
|
|
253879
253923
|
];
|
|
253880
253924
|
case "openai":
|
|
253881
253925
|
return [
|
|
253926
|
+
{ label: "GPT-5.6 Sol", value: "gpt-5.6-sol" },
|
|
253927
|
+
{ label: "GPT-5.6 Terra", value: "gpt-5.6-terra" },
|
|
253928
|
+
{ label: "GPT-5.6 Luna", value: "gpt-5.6-luna" },
|
|
253929
|
+
{ label: "GPT-5.5 Instant", value: "gpt-5.5-instant" },
|
|
253930
|
+
{ label: "GPT-5.4 Mini", value: "gpt-5.4-mini" },
|
|
253882
253931
|
{ label: "o3-mini", value: "o3-mini" },
|
|
253883
253932
|
{ label: "o1", value: "o1" },
|
|
253884
253933
|
{ label: "o1-mini", value: "o1-mini" },
|
|
253885
|
-
{ label: "GPT-4.5 Preview", value: "gpt-4.5-preview" },
|
|
253886
253934
|
{ label: "GPT-4o", value: "gpt-4o" },
|
|
253887
253935
|
{ label: "GPT-4o Mini", value: "gpt-4o-mini" },
|
|
253888
|
-
{ label: "GPT-4 Turbo", value: "gpt-4-turbo" }
|
|
253889
|
-
{ label: "GPT-3.5 Turbo", value: "gpt-3.5-turbo" }
|
|
253936
|
+
{ label: "GPT-4 Turbo", value: "gpt-4-turbo" }
|
|
253890
253937
|
];
|
|
253891
253938
|
case "openrouter":
|
|
253892
253939
|
return [
|
|
@@ -261241,7 +261288,7 @@ var package_default = {
|
|
|
261241
261288
|
module: "src/index.ts",
|
|
261242
261289
|
type: "module",
|
|
261243
261290
|
private: false,
|
|
261244
|
-
version: "0.2.
|
|
261291
|
+
version: "0.2.28",
|
|
261245
261292
|
description: "Turn ideas into reality.",
|
|
261246
261293
|
author: "Chaitanya Sonawane",
|
|
261247
261294
|
license: "Apache-2.0",
|