@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 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
- **Visit us at <a href="https://trydecember.com" target="_blank">trydecember.com</a>**
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/13987611-130a-4de9-a10c-790ddc9bce3c" alt="December" width="100%" />
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">December Cloud</a>**.
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? [Let us know on GitHub](https://github.com/phasehumans/december/issues).
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 || "gpt-4o",
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 || "claude-3-5-sonnet-20241022",
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 === "off") {
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 || "gemini-3.6-flash",
102504
+ model: resolveGeminiModel(modelOptions?.model),
102467
102505
  contents: geminiMessages,
102468
102506
  config: {
102469
- systemInstruction: systemPrompt ? { role: "system", parts: [{ text: systemPrompt }] } : undefined,
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.26",
261291
+ version: "0.2.28",
261245
261292
  description: "Turn ideas into reality.",
261246
261293
  author: "Chaitanya Sonawane",
261247
261294
  license: "Apache-2.0",
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "module": "src/index.ts",
4
4
  "type": "module",
5
5
  "private": false,
6
- "version": "0.2.26",
6
+ "version": "0.2.28",
7
7
  "description": "Turn ideas into reality.",
8
8
  "author": "Chaitanya Sonawane",
9
9
  "license": "Apache-2.0",