@trydecember/cli 0.3.10 → 0.3.11
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 +1 -13
- package/dist/december.js +53 -53
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,19 +14,7 @@ December is an AI coding assistant that lives in your terminal. It understands y
|
|
|
14
14
|
|
|
15
15
|
### Get Started
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
curl -fsSL https://cli.trydecember.com | bash
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
#### Standalone Installer (Windows PowerShell)
|
|
24
|
-
|
|
25
|
-
```powershell
|
|
26
|
-
irm https://cli.trydecember.com/ps1 | iex
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
#### NPM Package
|
|
17
|
+
1. Install December:
|
|
30
18
|
|
|
31
19
|
```bash
|
|
32
20
|
npm install -g @trydecember/cli
|
package/dist/december.js
CHANGED
|
@@ -118438,11 +118438,11 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
118438
118438
|
const rhs = this.rhs === undefined ? "" : ` = ${this.rhs}`;
|
|
118439
118439
|
return `${varKind} ${this.name}${rhs};` + _n;
|
|
118440
118440
|
}
|
|
118441
|
-
optimizeNames(names,
|
|
118441
|
+
optimizeNames(names, constants3) {
|
|
118442
118442
|
if (!names[this.name.str])
|
|
118443
118443
|
return;
|
|
118444
118444
|
if (this.rhs)
|
|
118445
|
-
this.rhs = optimizeExpr(this.rhs, names,
|
|
118445
|
+
this.rhs = optimizeExpr(this.rhs, names, constants3);
|
|
118446
118446
|
return this;
|
|
118447
118447
|
}
|
|
118448
118448
|
get names() {
|
|
@@ -118460,10 +118460,10 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
118460
118460
|
render({ _n }) {
|
|
118461
118461
|
return `${this.lhs} = ${this.rhs};` + _n;
|
|
118462
118462
|
}
|
|
118463
|
-
optimizeNames(names,
|
|
118463
|
+
optimizeNames(names, constants3) {
|
|
118464
118464
|
if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)
|
|
118465
118465
|
return;
|
|
118466
|
-
this.rhs = optimizeExpr(this.rhs, names,
|
|
118466
|
+
this.rhs = optimizeExpr(this.rhs, names, constants3);
|
|
118467
118467
|
return this;
|
|
118468
118468
|
}
|
|
118469
118469
|
get names() {
|
|
@@ -118529,8 +118529,8 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
118529
118529
|
optimizeNodes() {
|
|
118530
118530
|
return `${this.code}` ? this : undefined;
|
|
118531
118531
|
}
|
|
118532
|
-
optimizeNames(names,
|
|
118533
|
-
this.code = optimizeExpr(this.code, names,
|
|
118532
|
+
optimizeNames(names, constants3) {
|
|
118533
|
+
this.code = optimizeExpr(this.code, names, constants3);
|
|
118534
118534
|
return this;
|
|
118535
118535
|
}
|
|
118536
118536
|
get names() {
|
|
@@ -118560,12 +118560,12 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
118560
118560
|
}
|
|
118561
118561
|
return nodes.length > 0 ? this : undefined;
|
|
118562
118562
|
}
|
|
118563
|
-
optimizeNames(names,
|
|
118563
|
+
optimizeNames(names, constants3) {
|
|
118564
118564
|
const { nodes } = this;
|
|
118565
118565
|
let i2 = nodes.length;
|
|
118566
118566
|
while (i2--) {
|
|
118567
118567
|
const n = nodes[i2];
|
|
118568
|
-
if (n.optimizeNames(names,
|
|
118568
|
+
if (n.optimizeNames(names, constants3))
|
|
118569
118569
|
continue;
|
|
118570
118570
|
subtractNames(names, n.names);
|
|
118571
118571
|
nodes.splice(i2, 1);
|
|
@@ -118622,12 +118622,12 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
118622
118622
|
return;
|
|
118623
118623
|
return this;
|
|
118624
118624
|
}
|
|
118625
|
-
optimizeNames(names,
|
|
118625
|
+
optimizeNames(names, constants3) {
|
|
118626
118626
|
var _a7;
|
|
118627
|
-
this.else = (_a7 = this.else) === null || _a7 === undefined ? undefined : _a7.optimizeNames(names,
|
|
118628
|
-
if (!(super.optimizeNames(names,
|
|
118627
|
+
this.else = (_a7 = this.else) === null || _a7 === undefined ? undefined : _a7.optimizeNames(names, constants3);
|
|
118628
|
+
if (!(super.optimizeNames(names, constants3) || this.else))
|
|
118629
118629
|
return;
|
|
118630
|
-
this.condition = optimizeExpr(this.condition, names,
|
|
118630
|
+
this.condition = optimizeExpr(this.condition, names, constants3);
|
|
118631
118631
|
return this;
|
|
118632
118632
|
}
|
|
118633
118633
|
get names() {
|
|
@@ -118652,10 +118652,10 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
118652
118652
|
render(opts) {
|
|
118653
118653
|
return `for(${this.iteration})` + super.render(opts);
|
|
118654
118654
|
}
|
|
118655
|
-
optimizeNames(names,
|
|
118656
|
-
if (!super.optimizeNames(names,
|
|
118655
|
+
optimizeNames(names, constants3) {
|
|
118656
|
+
if (!super.optimizeNames(names, constants3))
|
|
118657
118657
|
return;
|
|
118658
|
-
this.iteration = optimizeExpr(this.iteration, names,
|
|
118658
|
+
this.iteration = optimizeExpr(this.iteration, names, constants3);
|
|
118659
118659
|
return this;
|
|
118660
118660
|
}
|
|
118661
118661
|
get names() {
|
|
@@ -118693,10 +118693,10 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
118693
118693
|
render(opts) {
|
|
118694
118694
|
return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);
|
|
118695
118695
|
}
|
|
118696
|
-
optimizeNames(names,
|
|
118697
|
-
if (!super.optimizeNames(names,
|
|
118696
|
+
optimizeNames(names, constants3) {
|
|
118697
|
+
if (!super.optimizeNames(names, constants3))
|
|
118698
118698
|
return;
|
|
118699
|
-
this.iterable = optimizeExpr(this.iterable, names,
|
|
118699
|
+
this.iterable = optimizeExpr(this.iterable, names, constants3);
|
|
118700
118700
|
return this;
|
|
118701
118701
|
}
|
|
118702
118702
|
get names() {
|
|
@@ -118741,11 +118741,11 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
118741
118741
|
(_b = this.finally) === null || _b === undefined || _b.optimizeNodes();
|
|
118742
118742
|
return this;
|
|
118743
118743
|
}
|
|
118744
|
-
optimizeNames(names,
|
|
118744
|
+
optimizeNames(names, constants3) {
|
|
118745
118745
|
var _a7, _b;
|
|
118746
|
-
super.optimizeNames(names,
|
|
118747
|
-
(_a7 = this.catch) === null || _a7 === undefined || _a7.optimizeNames(names,
|
|
118748
|
-
(_b = this.finally) === null || _b === undefined || _b.optimizeNames(names,
|
|
118746
|
+
super.optimizeNames(names, constants3);
|
|
118747
|
+
(_a7 = this.catch) === null || _a7 === undefined || _a7.optimizeNames(names, constants3);
|
|
118748
|
+
(_b = this.finally) === null || _b === undefined || _b.optimizeNames(names, constants3);
|
|
118749
118749
|
return this;
|
|
118750
118750
|
}
|
|
118751
118751
|
get names() {
|
|
@@ -119019,7 +119019,7 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
119019
119019
|
function addExprNames(names, from) {
|
|
119020
119020
|
return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;
|
|
119021
119021
|
}
|
|
119022
|
-
function optimizeExpr(expr, names,
|
|
119022
|
+
function optimizeExpr(expr, names, constants3) {
|
|
119023
119023
|
if (expr instanceof code_1.Name)
|
|
119024
119024
|
return replaceName(expr);
|
|
119025
119025
|
if (!canOptimize(expr))
|
|
@@ -119034,14 +119034,14 @@ var require_codegen = __commonJS(function(exports) {
|
|
|
119034
119034
|
return items;
|
|
119035
119035
|
}, []));
|
|
119036
119036
|
function replaceName(n) {
|
|
119037
|
-
const c =
|
|
119037
|
+
const c = constants3[n.str];
|
|
119038
119038
|
if (c === undefined || names[n.str] !== 1)
|
|
119039
119039
|
return n;
|
|
119040
119040
|
delete names[n.str];
|
|
119041
119041
|
return c;
|
|
119042
119042
|
}
|
|
119043
119043
|
function canOptimize(e2) {
|
|
119044
|
-
return e2 instanceof code_1._Code && e2._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 &&
|
|
119044
|
+
return e2 instanceof code_1._Code && e2._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants3[c.str] !== undefined);
|
|
119045
119045
|
}
|
|
119046
119046
|
}
|
|
119047
119047
|
function subtractNames(names, from) {
|
|
@@ -151422,7 +151422,7 @@ var require_client_h1 = __commonJS(function(exports, module3) {
|
|
|
151422
151422
|
kHTTPContext,
|
|
151423
151423
|
kClosed
|
|
151424
151424
|
} = require_symbols();
|
|
151425
|
-
var
|
|
151425
|
+
var constants3 = require_constants4();
|
|
151426
151426
|
var EMPTY_BUF = Buffer.alloc(0);
|
|
151427
151427
|
var FastBuffer = Buffer[Symbol.species];
|
|
151428
151428
|
var removeAllListeners = util4.removeAllListeners;
|
|
@@ -151501,7 +151501,7 @@ var require_client_h1 = __commonJS(function(exports, module3) {
|
|
|
151501
151501
|
class Parser3 {
|
|
151502
151502
|
constructor(client, socket, { exports: exports2 }) {
|
|
151503
151503
|
this.llhttp = exports2;
|
|
151504
|
-
this.ptr = this.llhttp.llhttp_alloc(
|
|
151504
|
+
this.ptr = this.llhttp.llhttp_alloc(constants3.TYPE.RESPONSE);
|
|
151505
151505
|
this.client = client;
|
|
151506
151506
|
this.socket = socket;
|
|
151507
151507
|
this.timeout = null;
|
|
@@ -151594,11 +151594,11 @@ var require_client_h1 = __commonJS(function(exports, module3) {
|
|
|
151594
151594
|
currentParser = null;
|
|
151595
151595
|
currentBufferRef = null;
|
|
151596
151596
|
}
|
|
151597
|
-
if (ret !==
|
|
151597
|
+
if (ret !== constants3.ERROR.OK) {
|
|
151598
151598
|
const data2 = chunk.subarray(llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr);
|
|
151599
|
-
if (ret ===
|
|
151599
|
+
if (ret === constants3.ERROR.PAUSED_UPGRADE) {
|
|
151600
151600
|
this.onUpgrade(data2);
|
|
151601
|
-
} else if (ret ===
|
|
151601
|
+
} else if (ret === constants3.ERROR.PAUSED) {
|
|
151602
151602
|
this.paused = true;
|
|
151603
151603
|
socket.unshift(data2);
|
|
151604
151604
|
} else {
|
|
@@ -151621,10 +151621,10 @@ var require_client_h1 = __commonJS(function(exports, module3) {
|
|
|
151621
151621
|
} finally {
|
|
151622
151622
|
currentParser = null;
|
|
151623
151623
|
}
|
|
151624
|
-
if (ret ===
|
|
151624
|
+
if (ret === constants3.ERROR.OK) {
|
|
151625
151625
|
return null;
|
|
151626
151626
|
}
|
|
151627
|
-
if (ret ===
|
|
151627
|
+
if (ret === constants3.ERROR.PAUSED || ret === constants3.ERROR.PAUSED_UPGRADE) {
|
|
151628
151628
|
this.paused = true;
|
|
151629
151629
|
return null;
|
|
151630
151630
|
}
|
|
@@ -151641,7 +151641,7 @@ var require_client_h1 = __commonJS(function(exports, module3) {
|
|
|
151641
151641
|
const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
|
|
151642
151642
|
message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")";
|
|
151643
151643
|
}
|
|
151644
|
-
return new HTTPParserError(message,
|
|
151644
|
+
return new HTTPParserError(message, constants3.ERROR[ret], data2);
|
|
151645
151645
|
}
|
|
151646
151646
|
destroy() {
|
|
151647
151647
|
assert2(currentParser === null);
|
|
@@ -151820,7 +151820,7 @@ var require_client_h1 = __commonJS(function(exports, module3) {
|
|
|
151820
151820
|
socket[kBlocking] = false;
|
|
151821
151821
|
client[kResume]();
|
|
151822
151822
|
}
|
|
151823
|
-
return pause ?
|
|
151823
|
+
return pause ? constants3.ERROR.PAUSED : 0;
|
|
151824
151824
|
}
|
|
151825
151825
|
onBody(buf) {
|
|
151826
151826
|
const { client, socket, statusCode, maxResponseSize } = this;
|
|
@@ -151842,7 +151842,7 @@ var require_client_h1 = __commonJS(function(exports, module3) {
|
|
|
151842
151842
|
}
|
|
151843
151843
|
this.bytesRead += buf.length;
|
|
151844
151844
|
if (request.onData(buf) === false) {
|
|
151845
|
-
return
|
|
151845
|
+
return constants3.ERROR.PAUSED;
|
|
151846
151846
|
}
|
|
151847
151847
|
return 0;
|
|
151848
151848
|
}
|
|
@@ -151879,13 +151879,13 @@ var require_client_h1 = __commonJS(function(exports, module3) {
|
|
|
151879
151879
|
if (socket[kWriting]) {
|
|
151880
151880
|
assert2(client[kRunning] === 0);
|
|
151881
151881
|
util4.destroy(socket, new InformationalError("reset"));
|
|
151882
|
-
return
|
|
151882
|
+
return constants3.ERROR.PAUSED;
|
|
151883
151883
|
} else if (!shouldKeepAlive) {
|
|
151884
151884
|
util4.destroy(socket, new InformationalError("reset"));
|
|
151885
|
-
return
|
|
151885
|
+
return constants3.ERROR.PAUSED;
|
|
151886
151886
|
} else if (socket[kReset] && client[kRunning] === 0) {
|
|
151887
151887
|
util4.destroy(socket, new InformationalError("reset"));
|
|
151888
|
-
return
|
|
151888
|
+
return constants3.ERROR.PAUSED;
|
|
151889
151889
|
} else if (client[kPipelining] == null || client[kPipelining] === 1) {
|
|
151890
151890
|
setImmediate(client[kResume]);
|
|
151891
151891
|
} else {
|
|
@@ -169023,9 +169023,9 @@ function openUrl(url2, execFn = cp2.exec, osPlatform = () => os4.platform(), osR
|
|
|
169023
169023
|
var init_open = () => {};
|
|
169024
169024
|
|
|
169025
169025
|
// src/auth/device.ts
|
|
169026
|
-
async function loginViaDeviceCode(
|
|
169026
|
+
async function loginViaDeviceCode(serverUrl = process.env.SERVER_URL || "https://api.trydecember.com", onCodeGenerated) {
|
|
169027
169027
|
try {
|
|
169028
|
-
const genRes = await fetch(`${
|
|
169028
|
+
const genRes = await fetch(`${serverUrl}/api/v1/auth/device/code`, {
|
|
169029
169029
|
method: "POST",
|
|
169030
169030
|
headers: { "Content-Type": "application/json" }
|
|
169031
169031
|
});
|
|
@@ -169049,7 +169049,7 @@ async function loginViaDeviceCode(baseUrl = process.env.SERVER_URL || process.en
|
|
|
169049
169049
|
return;
|
|
169050
169050
|
}
|
|
169051
169051
|
try {
|
|
169052
|
-
const tokenRes = await fetch(`${
|
|
169052
|
+
const tokenRes = await fetch(`${serverUrl}/api/v1/auth/device/token`, {
|
|
169053
169053
|
method: "POST",
|
|
169054
169054
|
headers: { "Content-Type": "application/json" },
|
|
169055
169055
|
body: JSON.stringify({ deviceCode })
|
|
@@ -170948,7 +170948,7 @@ var require_scan = __commonJS(function(exports, module3) {
|
|
|
170948
170948
|
|
|
170949
170949
|
// ../../node_modules/.bun/picomatch@2.3.2/node_modules/picomatch/lib/parse.js
|
|
170950
170950
|
var require_parse7 = __commonJS(function(exports, module3) {
|
|
170951
|
-
var
|
|
170951
|
+
var constants3 = require_constants9();
|
|
170952
170952
|
var utils = require_utils8();
|
|
170953
170953
|
var {
|
|
170954
170954
|
MAX_LENGTH,
|
|
@@ -170956,7 +170956,7 @@ var require_parse7 = __commonJS(function(exports, module3) {
|
|
|
170956
170956
|
REGEX_NON_SPECIAL_CHARS,
|
|
170957
170957
|
REGEX_SPECIAL_CHARS_BACKREF,
|
|
170958
170958
|
REPLACEMENTS
|
|
170959
|
-
} =
|
|
170959
|
+
} = constants3;
|
|
170960
170960
|
var expandRange = (args, options) => {
|
|
170961
170961
|
if (typeof options.expandRange === "function") {
|
|
170962
170962
|
return options.expandRange(...args, options);
|
|
@@ -171162,7 +171162,7 @@ var require_parse7 = __commonJS(function(exports, module3) {
|
|
|
171162
171162
|
if (options.maxExtglobRecursion === false) {
|
|
171163
171163
|
return { risky: false };
|
|
171164
171164
|
}
|
|
171165
|
-
const max = typeof options.maxExtglobRecursion === "number" ? options.maxExtglobRecursion :
|
|
171165
|
+
const max = typeof options.maxExtglobRecursion === "number" ? options.maxExtglobRecursion : constants3.DEFAULT_MAX_EXTGLOB_RECURSION;
|
|
171166
171166
|
const branches = splitTopLevel(body).map((branch) => branch.trim());
|
|
171167
171167
|
if (branches.length > 1) {
|
|
171168
171168
|
if (branches.some((branch) => branch === "") || branches.some((branch) => /^[*?]+$/.test(branch)) || hasRepeatedCharPrefixOverlap(branches)) {
|
|
@@ -171195,8 +171195,8 @@ var require_parse7 = __commonJS(function(exports, module3) {
|
|
|
171195
171195
|
const tokens = [bos];
|
|
171196
171196
|
const capture = opts.capture ? "" : "?:";
|
|
171197
171197
|
const win32 = utils.isWindows(options);
|
|
171198
|
-
const PLATFORM_CHARS =
|
|
171199
|
-
const EXTGLOB_CHARS =
|
|
171198
|
+
const PLATFORM_CHARS = constants3.globChars(win32);
|
|
171199
|
+
const EXTGLOB_CHARS = constants3.extglobChars(PLATFORM_CHARS);
|
|
171200
171200
|
const {
|
|
171201
171201
|
DOT_LITERAL,
|
|
171202
171202
|
PLUS_LITERAL,
|
|
@@ -171900,7 +171900,7 @@ var require_parse7 = __commonJS(function(exports, module3) {
|
|
|
171900
171900
|
NO_DOTS_SLASH,
|
|
171901
171901
|
STAR,
|
|
171902
171902
|
START_ANCHOR
|
|
171903
|
-
} =
|
|
171903
|
+
} = constants3.globChars(win32);
|
|
171904
171904
|
const nodot = opts.dot ? NO_DOTS : NO_DOT;
|
|
171905
171905
|
const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;
|
|
171906
171906
|
const capture = opts.capture ? "" : "?:";
|
|
@@ -171959,7 +171959,7 @@ var require_picomatch = __commonJS(function(exports, module3) {
|
|
|
171959
171959
|
var scan = require_scan();
|
|
171960
171960
|
var parse15 = require_parse7();
|
|
171961
171961
|
var utils = require_utils8();
|
|
171962
|
-
var
|
|
171962
|
+
var constants3 = require_constants9();
|
|
171963
171963
|
var isObject2 = (val2) => val2 && typeof val2 === "object" && !Array.isArray(val2);
|
|
171964
171964
|
var picomatch = (glob2, options, returnState = false) => {
|
|
171965
171965
|
if (Array.isArray(glob2)) {
|
|
@@ -172090,7 +172090,7 @@ var require_picomatch = __commonJS(function(exports, module3) {
|
|
|
172090
172090
|
return /$^/;
|
|
172091
172091
|
}
|
|
172092
172092
|
};
|
|
172093
|
-
picomatch.constants =
|
|
172093
|
+
picomatch.constants = constants3;
|
|
172094
172094
|
module3.exports = picomatch;
|
|
172095
172095
|
});
|
|
172096
172096
|
|
|
@@ -177323,7 +177323,7 @@ var init_yoga_wasm_base64_esm = __esm(() => {
|
|
|
177323
177323
|
});
|
|
177324
177324
|
|
|
177325
177325
|
// ../../node_modules/.bun/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/generated/YGEnums.js
|
|
177326
|
-
var Align, BoxSizing, Dimension, Direction, Display, Edge, Errata, ExperimentalFeature, FlexDirection, Gutter, Justify, LogLevel, MeasureMode, NodeType, Overflow, PositionType, Unit, Wrap,
|
|
177326
|
+
var Align, BoxSizing, Dimension, Direction, Display, Edge, Errata, ExperimentalFeature, FlexDirection, Gutter, Justify, LogLevel, MeasureMode, NodeType, Overflow, PositionType, Unit, Wrap, constants3, YGEnums_default;
|
|
177327
177327
|
var init_YGEnums = __esm(() => {
|
|
177328
177328
|
Align = /* @__PURE__ */ function(Align2) {
|
|
177329
177329
|
Align2[Align2["Auto"] = 0] = "Auto";
|
|
@@ -177451,7 +177451,7 @@ var init_YGEnums = __esm(() => {
|
|
|
177451
177451
|
Wrap2[Wrap2["WrapReverse"] = 2] = "WrapReverse";
|
|
177452
177452
|
return Wrap2;
|
|
177453
177453
|
}({});
|
|
177454
|
-
|
|
177454
|
+
constants3 = {
|
|
177455
177455
|
ALIGN_AUTO: Align.Auto,
|
|
177456
177456
|
ALIGN_FLEX_START: Align.FlexStart,
|
|
177457
177457
|
ALIGN_CENTER: Align.Center,
|
|
@@ -177525,7 +177525,7 @@ var init_YGEnums = __esm(() => {
|
|
|
177525
177525
|
WRAP_WRAP: Wrap.Wrap,
|
|
177526
177526
|
WRAP_WRAP_REVERSE: Wrap.WrapReverse
|
|
177527
177527
|
};
|
|
177528
|
-
YGEnums_default =
|
|
177528
|
+
YGEnums_default = constants3;
|
|
177529
177529
|
});
|
|
177530
177530
|
|
|
177531
177531
|
// ../../node_modules/.bun/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/wrapAssembly.js
|
|
@@ -267456,7 +267456,7 @@ import path20 from "node:path";
|
|
|
267456
267456
|
// package.json
|
|
267457
267457
|
var package_default = {
|
|
267458
267458
|
name: "@trydecember/cli",
|
|
267459
|
-
version: "0.3.
|
|
267459
|
+
version: "0.3.11",
|
|
267460
267460
|
description: "AI coding agent for terminal and cloud.",
|
|
267461
267461
|
homepage: "https://trydecember.com",
|
|
267462
267462
|
repository: {
|