@neikyun/ciel 5.1.7 → 5.1.8
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/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +2 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/index.js +3 -17
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +2 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/version.d.ts +2 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +39 -0
- package/dist/cli/version.js.map +1 -0
- package/package.json +1 -1
- package/scripts/postinstall.cjs +98 -96
package/dist/cli/check.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":"AAmBA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB9C"}
|
package/dist/cli/check.js
CHANGED
|
@@ -4,8 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.runCheck = runCheck;
|
|
5
5
|
const https_1 = require("https");
|
|
6
6
|
const utils_1 = require("./utils");
|
|
7
|
+
const version_1 = require("./version");
|
|
7
8
|
const GITHUB_RAW = "https://raw.githubusercontent.com/KaosKyun/Ciel/main";
|
|
8
|
-
const CIEL_VERSION =
|
|
9
|
+
const CIEL_VERSION = (0, version_1.getVersion)();
|
|
9
10
|
function fetchUrl(url) {
|
|
10
11
|
return new Promise((resolve, reject) => {
|
|
11
12
|
(0, https_1.get)(url, (res) => {
|
package/dist/cli/check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":";AAAA,uDAAuD;;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAmBvD,4BAqBC;AAtCD,iCAAwC;AACxC,mCAAkC;AAClC,uCAAuC;AAEvC,MAAM,UAAU,GAAG,sDAAsD,CAAC;AAC1E,MAAM,YAAY,GAAG,IAAA,oBAAU,GAAE,CAAC;AAElC,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAA,WAAQ,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACpB,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;YACnD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,GAAG,UAAU,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAA,WAAG,EAAC,6CAA6C,CAAC,CAAC;YACnD,IAAA,WAAG,EAAC,iCAAiC,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;YACnC,IAAA,UAAE,EAAC,SAAS,YAAY,iBAAiB,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,YAAY,OAAO,aAAa,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAA,WAAG,EAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -12,23 +12,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
const init_1 = require("./init");
|
|
13
13
|
const uninstall_1 = require("./uninstall");
|
|
14
14
|
const check_1 = require("./check");
|
|
15
|
-
const
|
|
16
|
-
const path_1 = require("path");
|
|
17
|
-
const CIEL_VERSION = "5.1.5";
|
|
18
|
-
function getVersion() {
|
|
19
|
-
// Try VERSION file first (dev), fall back to package version
|
|
20
|
-
try {
|
|
21
|
-
if ((0, fs_1.existsSync)((0, path_1.join)(process.cwd(), "VERSION"))) {
|
|
22
|
-
return (0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), "VERSION"), "utf-8").trim();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
// silent
|
|
27
|
-
}
|
|
28
|
-
return CIEL_VERSION;
|
|
29
|
-
}
|
|
15
|
+
const version_1 = require("./version");
|
|
30
16
|
function usage() {
|
|
31
|
-
const v = getVersion();
|
|
17
|
+
const v = (0, version_1.getVersion)();
|
|
32
18
|
console.log(`
|
|
33
19
|
Ciel v${v} — CLI
|
|
34
20
|
|
|
@@ -65,7 +51,7 @@ async function main() {
|
|
|
65
51
|
process.exit(0);
|
|
66
52
|
}
|
|
67
53
|
if (args.includes("--version") || args.includes("-v")) {
|
|
68
|
-
console.log(getVersion());
|
|
54
|
+
console.log((0, version_1.getVersion)());
|
|
69
55
|
process.exit(0);
|
|
70
56
|
}
|
|
71
57
|
const command = args.find((a) => !a.startsWith("-")) || "init";
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA,uBAAuB;AACvB,2CAA2C;AAC3C,EAAE;AACF,YAAY;AACZ,8DAA8D;AAC9D,yCAAyC;AACzC,qDAAqD;AACrD,4CAA4C;;AAE5C,iCAAiC;AACjC,2CAA2C;AAC3C,mCAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA,uBAAuB;AACvB,2CAA2C;AAC3C,EAAE;AACF,YAAY;AACZ,8DAA8D;AAC9D,yCAAyC;AACzC,qDAAqD;AACrD,4CAA4C;;AAE5C,iCAAiC;AACjC,2CAA2C;AAC3C,mCAAmC;AACnC,uCAAuC;AAEvC,SAAS,KAAK;IACZ,MAAM,CAAC,GAAG,IAAA,oBAAU,GAAE,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC;QACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BR,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAU,GAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC;IAC/D,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;KACvD,CAAC;IAEF,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,MAAM,IAAA,cAAO,EAAC,OAAO,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,IAAA,cAAO,EAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM;QACR,KAAK,WAAW;YACd,MAAM,IAAA,wBAAY,EAAC,OAAO,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,IAAA,gBAAQ,GAAE,CAAC;YACjB,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/cli/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA+HD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FjE"}
|
package/dist/cli/init.js
CHANGED
|
@@ -9,6 +9,7 @@ const os_1 = require("os");
|
|
|
9
9
|
const utils_1 = require("./utils");
|
|
10
10
|
const opencode_1 = require("./opencode");
|
|
11
11
|
const claude_1 = require("./claude");
|
|
12
|
+
const version_1 = require("./version");
|
|
12
13
|
/**
|
|
13
14
|
* Signal file to verify when resolving the template source directory.
|
|
14
15
|
*/
|
|
@@ -128,7 +129,7 @@ async function downloadTemplatesToTemp() {
|
|
|
128
129
|
}
|
|
129
130
|
async function runInit(options) {
|
|
130
131
|
const { yes, quiet, force = false } = options;
|
|
131
|
-
const version =
|
|
132
|
+
const version = (0, version_1.getVersion)();
|
|
132
133
|
const targetDir = process.cwd();
|
|
133
134
|
(0, utils_1.header)(`Ciel v${version} — Install`);
|
|
134
135
|
// Resolve source templates directory (local or GitHub)
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,kDAAkD;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,kDAAkD;;AA6IlD,0BA0FC;AArOD,2BAAuE;AACvE,+BAA4B;AAC5B,2BAA4B;AAC5B,mCAA+D;AAC/D,yCAA6D;AAC7D,qCAAuD;AACvD,uCAAuC;AAQvC;;GAEG;AACH,MAAM,YAAY,GAAG,6CAA6C,CAAC;AACnE,MAAM,UAAU,GAAG,sDAAsD,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB;IACvB,MAAM,UAAU,GAAG;QACjB,8BAA8B;QAC9B,OAAO,CAAC,GAAG,EAAE;QACb,8CAA8C;QAC9C,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;QAC5B,8CAA8C;QAC9C,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;QACzB,iCAAiC;QACjC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;QAC/B,0BAA0B;QAC1B,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC;QACrB,qCAAqC;QACrC,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC;QACxB,yCAAyC;QACzC,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC;KAC5B,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YACxC,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB;IACpC,MAAM,MAAM,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG;QACpB,kBAAkB;QAClB,6CAA6C;QAC7C,wDAAwD;QACxD,sDAAsD;QACtD,oDAAoD;QACpD,sDAAsD;QACtD,oBAAoB;QACpB,oDAAoD;QACpD,sDAAsD;QACtD,uDAAuD;QACvD,uDAAuD;QACvD,oDAAoD;QACpD,4DAA4D;QAC5D,yDAAyD;QACzD,qDAAqD;QACrD,+CAA+C;QAC/C,oBAAoB;QACpB,8BAA8B;QAC9B,qBAAqB;QACrB,mCAAmC;QACnC,iCAAiC;QACjC,+BAA+B;QAC/B,iCAAiC;QACjC,oBAAoB;QACpB,mCAAmC;QACnC,oCAAoC;QACpC,6BAA6B;QAC7B,iCAAiC;QACjC,uBAAuB;QACvB,uBAAuB;QACvB,eAAe;QACf,WAAW;QACX,WAAW;QACX,mBAAmB;QACnB,uBAAuB;QACvB,yBAAyB;QACzB,0BAA0B;QAC1B,uBAAuB;QACvB,+BAA+B;QAC/B,4BAA4B;QAC5B,wBAAwB;QACxB,aAAa;QACb,sBAAsB;QACtB,0BAA0B;KAC3B,CAAC;IAEF,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,SAAS;YAE3B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACvC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAA,kBAAa,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAC5C,IAAA,YAAI,EAAC,kDAAkD,UAAU,IAAI,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC;QACpG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAA,UAAE,EAAC,cAAc,UAAU,6BAA6B,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAA,oBAAU,GAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhC,IAAA,cAAM,EAAC,SAAS,OAAO,YAAY,CAAC,CAAC;IAErC,uDAAuD;IACvD,IAAI,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,0CAA0C;QAC1C,IAAA,YAAI,EAAC,2DAA2D,CAAC,CAAC;QAClE,MAAM,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAA,YAAI,EAAC,qCAAqC,CAAC,CAAC;QAC5C,IAAA,YAAI,EAAC,kDAAkD,CAAC,CAAC;QACzD,IAAA,YAAI,EAAC,oCAAoC,CAAC,CAAC;QAC3C,IAAA,YAAI,EAAC,EAAE,CAAC,CAAC;QACT,IAAA,YAAI,EAAC,6CAA6C,CAAC,CAAC;QACpD,IAAA,YAAI,EAAC,6CAA6C,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,mBAAmB;IACnB,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,SAAS,CAAC,CAAC;IAE1C,2BAA2B;IAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9E,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAa,EACnC,iBAAiB,OAAO,OAAO,SAAS,eAAe,SAAS,IAAI,EACpE,IAAI,CACL,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAA,WAAG,EAAC,UAAU,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACnD,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;QACtD,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACrD,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,iDAAiD,EAAE,OAAO,CAAC,CAAC;IACjH,CAAC;IAED,qCAAqC;IACrC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAA,WAAG,EAAC,4BAA4B,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAA,0BAAe,EAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS;YAAE,IAAA,UAAE,EAAC,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;YAAE,IAAA,YAAI,EAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,IAAA,WAAG,EAAC,+BAA+B,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS;YAAE,IAAA,UAAE,EAAC,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;YAAE,IAAA,YAAI,EAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAA,YAAI,EAAC,sCAAsC,CAAC,CAAC;QAC7C,IAAA,WAAG,EAAC,6CAA6C,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;IACV,IAAA,cAAM,EAAC,SAAS,OAAO,qBAAqB,CAAC,CAAC;IAC9C,IAAA,UAAE,EAAC,6CAA6C,CAAC,CAAC;IAClD,IAAI,WAAW,EAAE,CAAC;QAChB,IAAA,WAAG,EAAC,yCAAyC,CAAC,CAAC;QAC/C,IAAA,WAAG,EAAC,0DAA0D,CAAC,CAAC;QAChE,IAAA,WAAG,EAAC,kDAAkD,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,IAAA,WAAG,EAAC,+CAA+C,CAAC,CAAC;QACrD,IAAA,WAAG,EAAC,sDAAsD,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":"AASA,wBAAgB,UAAU,IAAI,MAAM,CA4BnC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Shared version utility — reads from package.json at runtime
|
|
3
|
+
// Single source of truth for all version display
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.getVersion = getVersion;
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
// In-memory cache (avoids reading file on every call)
|
|
9
|
+
let _cachedVersion = null;
|
|
10
|
+
function getVersion() {
|
|
11
|
+
if (_cachedVersion)
|
|
12
|
+
return _cachedVersion;
|
|
13
|
+
// Try package.json (npm package: node_modules/@neikyun/ciel/package.json)
|
|
14
|
+
try {
|
|
15
|
+
// __dirname is dist/cli/ or src/cli/ depending on environment
|
|
16
|
+
const pkgPath = (0, path_1.join)(__dirname, "..", "..", "package.json");
|
|
17
|
+
if ((0, fs_1.existsSync)(pkgPath)) {
|
|
18
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, "utf-8"));
|
|
19
|
+
_cachedVersion = pkg.version || "0.0.0";
|
|
20
|
+
return _cachedVersion;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// silent
|
|
25
|
+
}
|
|
26
|
+
// Fallback: VERSION file at project root (dev mode)
|
|
27
|
+
try {
|
|
28
|
+
const versionPath = (0, path_1.join)(process.cwd(), "VERSION");
|
|
29
|
+
if ((0, fs_1.existsSync)(versionPath)) {
|
|
30
|
+
_cachedVersion = (0, fs_1.readFileSync)(versionPath, "utf-8").trim();
|
|
31
|
+
return _cachedVersion;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// silent
|
|
36
|
+
}
|
|
37
|
+
return "0.0.0";
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,iDAAiD;;AAQjD,gCA4BC;AAlCD,2BAA8C;AAC9C,+BAA4B;AAE5B,sDAAsD;AACtD,IAAI,cAAc,GAAkB,IAAI,CAAC;AAEzC,SAAgB,UAAU;IACxB,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,0EAA0E;IAC1E,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5D,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,cAAc,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;YACxC,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,cAAc,GAAG,IAAA,iBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3D,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neikyun/ciel",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.8",
|
|
4
4
|
"description": "Ciel — Deep-reasoning pipeline for LLM-assisted development. OpenCode plugin + multi-platform CLI (OpenCode, Claude Code, more).",
|
|
5
5
|
"main": "./dist/plugin/index.js",
|
|
6
6
|
"types": "./dist/plugin/index.d.ts",
|
package/scripts/postinstall.cjs
CHANGED
|
@@ -1,49 +1,48 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// Ciel postinstall — auto-configure après npm install
|
|
2
|
+
// Ciel postinstall — auto-configure après npm install / npm update
|
|
3
3
|
//
|
|
4
4
|
// S'exécute automatiquement après `npm install @neikyun/ciel`.
|
|
5
|
-
// Détecte OpenCode / Claude Code,
|
|
5
|
+
// Détecte OpenCode / Claude Code, configure tout, gère les mises à jour.
|
|
6
6
|
//
|
|
7
|
-
//
|
|
7
|
+
// Comportement :
|
|
8
|
+
// - Première install → propose et configure
|
|
9
|
+
// - npm update (nouvelle version) → détecte et propose la mise à jour
|
|
10
|
+
// - npm install (même version) → skip silencieux
|
|
11
|
+
// - Désactivable : CI=true npm install @neikyun/ciel
|
|
8
12
|
// npm install @neikyun/ciel --ignore-scripts
|
|
9
13
|
|
|
10
|
-
const { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, chmodSync } = require("fs");
|
|
14
|
+
const { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, chmodSync, unlinkSync } = require("fs");
|
|
11
15
|
const { join, dirname } = require("path");
|
|
12
|
-
const { execSync } = require("child_process");
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
// ---- Version ----
|
|
18
|
+
const PKG_PATH = join(__dirname, "..", "package.json");
|
|
19
|
+
const PKG = existsSync(PKG_PATH) ? JSON.parse(readFileSync(PKG_PATH, "utf-8")) : {};
|
|
20
|
+
const CIEL_VERSION = PKG.version || "0.0.0";
|
|
15
21
|
|
|
16
|
-
//
|
|
22
|
+
// ---- Colors ----
|
|
17
23
|
const cyan = (s) => `\x1b[36m${s}\x1b[0m`;
|
|
18
24
|
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
19
25
|
const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
|
|
20
26
|
const bold = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
21
27
|
|
|
22
|
-
//
|
|
28
|
+
// ---- Helpers ----
|
|
23
29
|
function detectPlatform(targetDir) {
|
|
24
30
|
const platforms = [];
|
|
25
|
-
if (existsSync(join(targetDir, "opencode.json")) || existsSync(join(targetDir, ".opencode")))
|
|
31
|
+
if (existsSync(join(targetDir, "opencode.json")) || existsSync(join(targetDir, ".opencode")))
|
|
26
32
|
platforms.push("opencode");
|
|
27
|
-
|
|
28
|
-
if (existsSync(join(targetDir, ".claude/settings.json")) || existsSync(join(targetDir, ".claude"))) {
|
|
33
|
+
if (existsSync(join(targetDir, ".claude/settings.json")) || existsSync(join(targetDir, ".claude")))
|
|
29
34
|
platforms.push("claude");
|
|
30
|
-
}
|
|
31
35
|
return platforms;
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
function resolveAssetsDir() {
|
|
35
39
|
const candidates = [
|
|
36
|
-
// npm install local (workspace)
|
|
37
40
|
join(__dirname, "..", "assets"),
|
|
38
|
-
// npm install global
|
|
39
41
|
join(__dirname, "..", "..", "assets"),
|
|
40
|
-
// GitHub fallback (via npx ciel)
|
|
41
|
-
null,
|
|
42
42
|
];
|
|
43
43
|
for (const dir of candidates) {
|
|
44
|
-
if (dir && existsSync(join(dir, "platforms/opencode/.opencode/agents/ciel.md")))
|
|
44
|
+
if (dir && existsSync(join(dir, "platforms/opencode/.opencode/agents/ciel.md")))
|
|
45
45
|
return dir;
|
|
46
|
-
}
|
|
47
46
|
}
|
|
48
47
|
return null;
|
|
49
48
|
}
|
|
@@ -73,16 +72,33 @@ function patchOpencodeJson(targetDir) {
|
|
|
73
72
|
try {
|
|
74
73
|
const raw = readFileSync(configPath, "utf-8");
|
|
75
74
|
const config = JSON.parse(raw);
|
|
75
|
+
let changed = false;
|
|
76
|
+
|
|
77
|
+
// Remove old local plugin reference (curl install)
|
|
78
|
+
if (config.plugin) {
|
|
79
|
+
const filtered = config.plugin.filter((p) => p !== "./.opencode/plugins/ciel.ts");
|
|
80
|
+
if (filtered.length !== config.plugin.length) changed = true;
|
|
81
|
+
config.plugin = filtered;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Add new npm plugin reference
|
|
76
85
|
if (!config.plugin) config.plugin = [];
|
|
77
86
|
if (!config.plugin.includes("@neikyun/ciel")) {
|
|
78
87
|
config.plugin.push("@neikyun/ciel");
|
|
88
|
+
changed = true;
|
|
79
89
|
}
|
|
90
|
+
|
|
91
|
+
// Add instructions
|
|
80
92
|
if (!config.instructions) config.instructions = [];
|
|
81
93
|
if (!config.instructions.includes("AGENTS.md")) {
|
|
82
94
|
config.instructions.push("AGENTS.md");
|
|
95
|
+
changed = true;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (changed) {
|
|
99
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
83
100
|
}
|
|
84
|
-
|
|
85
|
-
return true;
|
|
101
|
+
return changed;
|
|
86
102
|
} catch {
|
|
87
103
|
return false;
|
|
88
104
|
}
|
|
@@ -91,141 +107,127 @@ function patchOpencodeJson(targetDir) {
|
|
|
91
107
|
function installForPlatform(targetDir, assetsDir, platform) {
|
|
92
108
|
let count = 0;
|
|
93
109
|
if (platform === "opencode") {
|
|
94
|
-
//
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// Copy commands
|
|
100
|
-
const cmdsSrc = join(assetsDir, "platforms/opencode/.opencode/commands");
|
|
101
|
-
const cmdsDest = join(targetDir, ".opencode/commands");
|
|
102
|
-
count += copyDir(cmdsSrc, cmdsDest);
|
|
110
|
+
// Clean old curl files
|
|
111
|
+
const oldPlugin = join(targetDir, ".opencode/plugins/ciel.ts");
|
|
112
|
+
if (existsSync(oldPlugin)) {
|
|
113
|
+
try { unlinkSync(oldPlugin); count++; } catch {}
|
|
114
|
+
}
|
|
103
115
|
|
|
116
|
+
// Copy fresh agents
|
|
117
|
+
count += copyDir(
|
|
118
|
+
join(assetsDir, "platforms/opencode/.opencode/agents"),
|
|
119
|
+
join(targetDir, ".opencode/agents")
|
|
120
|
+
);
|
|
121
|
+
// Copy fresh commands
|
|
122
|
+
count += copyDir(
|
|
123
|
+
join(assetsDir, "platforms/opencode/.opencode/commands"),
|
|
124
|
+
join(targetDir, ".opencode/commands")
|
|
125
|
+
);
|
|
104
126
|
// Copy AGENTS.md
|
|
105
127
|
const agentsMdSrc = join(assetsDir, "platforms/opencode/AGENTS.md");
|
|
106
128
|
if (existsSync(agentsMdSrc)) {
|
|
107
129
|
copyFileSync(agentsMdSrc, join(targetDir, "AGENTS.md"));
|
|
108
130
|
count++;
|
|
109
131
|
}
|
|
110
|
-
|
|
111
|
-
// Patch opencode.json
|
|
132
|
+
// Patch config
|
|
112
133
|
if (patchOpencodeJson(targetDir)) count++;
|
|
113
|
-
|
|
114
134
|
return count;
|
|
115
135
|
}
|
|
116
136
|
|
|
117
137
|
if (platform === "claude") {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const agentsDest = join(targetDir, ".claude/agents");
|
|
121
|
-
count += copyDir(agentsSrc, agentsDest);
|
|
122
|
-
|
|
123
|
-
// Copy hooks
|
|
124
|
-
const hooksSrc = join(assetsDir, ".claude/hooks");
|
|
125
|
-
const hooksDest = join(targetDir, ".claude/hooks");
|
|
126
|
-
count += copyDir(hooksSrc, hooksDest);
|
|
127
|
-
|
|
128
|
-
// Copy settings
|
|
138
|
+
count += copyDir(join(assetsDir, ".claude/agents"), join(targetDir, ".claude/agents"));
|
|
139
|
+
count += copyDir(join(assetsDir, ".claude/hooks"), join(targetDir, ".claude/hooks"));
|
|
129
140
|
const settingsSrc = join(assetsDir, ".claude/settings.json");
|
|
130
141
|
if (existsSync(settingsSrc)) {
|
|
131
142
|
copyFileSync(settingsSrc, join(targetDir, ".claude/settings.json"));
|
|
132
143
|
count++;
|
|
133
144
|
}
|
|
134
|
-
|
|
135
|
-
// Copy CLAUDE.md
|
|
136
145
|
const claudeMdSrc = join(assetsDir, "CLAUDE.md");
|
|
137
146
|
if (existsSync(claudeMdSrc)) {
|
|
138
147
|
copyFileSync(claudeMdSrc, join(targetDir, "CLAUDE.md"));
|
|
139
148
|
count++;
|
|
140
149
|
}
|
|
141
|
-
|
|
142
150
|
return count;
|
|
143
151
|
}
|
|
144
|
-
|
|
145
152
|
return 0;
|
|
146
153
|
}
|
|
147
154
|
|
|
155
|
+
function readMemory(targetDir) {
|
|
156
|
+
const memPath = join(targetDir, ".ciel/memory.json");
|
|
157
|
+
try {
|
|
158
|
+
return JSON.parse(readFileSync(memPath, "utf-8"));
|
|
159
|
+
} catch {
|
|
160
|
+
return {};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function writeMemory(targetDir, data) {
|
|
165
|
+
const memPath = join(targetDir, ".ciel/memory.json");
|
|
166
|
+
mkdirSync(join(targetDir, ".ciel"), { recursive: true });
|
|
167
|
+
writeFileSync(memPath, JSON.stringify(data, null, 2), "utf-8");
|
|
168
|
+
}
|
|
169
|
+
|
|
148
170
|
// ===== MAIN =====
|
|
149
171
|
async function main() {
|
|
150
|
-
// Skip
|
|
151
|
-
if (process.env.CI || process.env.NO_CIEL_POSTINSTALL)
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
172
|
+
// Skip in CI
|
|
173
|
+
if (process.env.CI || process.env.NO_CIEL_POSTINSTALL) return;
|
|
154
174
|
|
|
155
175
|
const targetDir = process.cwd();
|
|
156
176
|
const platforms = detectPlatform(targetDir);
|
|
157
|
-
|
|
158
|
-
if (platforms.length === 0) {
|
|
159
|
-
// No recognized platform — silent exit (tool installed in non-Ciel project)
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
177
|
+
if (platforms.length === 0) return; // Not a Ciel-compatible project
|
|
162
178
|
|
|
163
179
|
const assetsDir = resolveAssetsDir();
|
|
164
|
-
if (!assetsDir)
|
|
165
|
-
// Assets not bundled — postinstall can't configure
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
180
|
+
if (!assetsDir) return; // No templates bundled
|
|
168
181
|
|
|
169
|
-
// Check
|
|
170
|
-
const
|
|
182
|
+
// Check installed version vs current version
|
|
183
|
+
const memory = readMemory(targetDir);
|
|
184
|
+
const installedVersion = memory.cielVersion || null;
|
|
185
|
+
const isUpdate = installedVersion && installedVersion !== CIEL_VERSION;
|
|
186
|
+
const isFirstInstall = !installedVersion;
|
|
171
187
|
|
|
172
|
-
if (
|
|
173
|
-
// Already set up, skip prompt
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
188
|
+
if (!isFirstInstall && !isUpdate) return; // Same version → skip
|
|
176
189
|
|
|
177
|
-
//
|
|
178
|
-
const
|
|
179
|
-
console.log(`\n ${bold("✦ Ciel v" + CIEL_VERSION)} —
|
|
190
|
+
// Show banner
|
|
191
|
+
const action = isUpdate ? "mise à jour" : "configuration";
|
|
192
|
+
console.log(`\n ${bold("✦ Ciel v" + CIEL_VERSION)} — ${action} pour ${cyan(platforms.join(" + "))}`);
|
|
180
193
|
|
|
181
|
-
//
|
|
194
|
+
// Prompt (skip if unattended already accepted)
|
|
182
195
|
let answer = "y";
|
|
183
196
|
try {
|
|
184
197
|
const readline = require("readline");
|
|
185
198
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
186
199
|
answer = await new Promise((resolve) => {
|
|
187
|
-
rl.question(` ${yellow("?")}
|
|
200
|
+
rl.question(` ${yellow("?")} ${isUpdate ? "Mettre à jour" : "Configurer"} Ciel ? ${green("(Y/n)")} `, (a) => {
|
|
188
201
|
rl.close();
|
|
189
202
|
resolve(a.trim().toLowerCase() || "y");
|
|
190
203
|
});
|
|
191
204
|
});
|
|
192
205
|
} catch {
|
|
193
|
-
|
|
206
|
+
answer = "y";
|
|
194
207
|
}
|
|
195
208
|
|
|
196
209
|
if (answer !== "y" && answer !== "yes") {
|
|
197
|
-
console.log(` ${cyan("→")} Annul
|
|
210
|
+
console.log(` ${cyan("→")} Annulé.\n`);
|
|
198
211
|
return;
|
|
199
212
|
}
|
|
200
213
|
|
|
201
|
-
//
|
|
202
|
-
// Create .ciel/ state dir
|
|
203
|
-
mkdirSync(join(targetDir, ".ciel"), { recursive: true });
|
|
204
|
-
if (!existsSync(join(targetDir, ".ciel/map.json"))) {
|
|
205
|
-
writeFileSync(join(targetDir, ".ciel/map.json"), JSON.stringify({ modules: [], lastUpdated: new Date().toISOString() }), "utf-8");
|
|
206
|
-
}
|
|
207
|
-
if (!existsSync(join(targetDir, ".ciel/memory.json"))) {
|
|
208
|
-
writeFileSync(join(targetDir, ".ciel/memory.json"), "{}", "utf-8");
|
|
209
|
-
}
|
|
210
|
-
if (!existsSync(join(targetDir, ".ciel/parking.md"))) {
|
|
211
|
-
writeFileSync(join(targetDir, ".ciel/parking.md"), "# Ciel Parking Lot -- Decouvertes fortuites\n\n", "utf-8");
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
+
// ---- Execute ----
|
|
214
215
|
let total = 0;
|
|
215
216
|
for (const p of platforms) {
|
|
216
217
|
const n = installForPlatform(targetDir, assetsDir, p);
|
|
217
218
|
total += n;
|
|
218
|
-
console.log(` ${green("✓")} ${p}: ${n} fichiers
|
|
219
|
+
console.log(` ${green("✓")} ${p}: ${n} fichiers`);
|
|
219
220
|
}
|
|
220
221
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
222
|
+
// Store version
|
|
223
|
+
writeMemory(targetDir, { ...memory, cielVersion: CIEL_VERSION, lastUpdated: new Date().toISOString() });
|
|
224
|
+
|
|
225
|
+
console.log(`\n ${green("✓")} Ciel v${CIEL_VERSION} ${isUpdate ? "mis à jour" : "prêt"} !`);
|
|
226
|
+
if (platforms.includes("opencode"))
|
|
227
|
+
console.log(` → OpenCode: plugin "${cyan("@neikyun/ciel")}" dans opencode.json`);
|
|
228
|
+
if (platforms.includes("claude"))
|
|
229
|
+
console.log(` → Claude Code: redémarrez ${cyan("claude .")}`);
|
|
230
|
+
console.log();
|
|
227
231
|
}
|
|
228
232
|
|
|
229
|
-
main().catch(() => {
|
|
230
|
-
// Silent fail — postinstall ne doit jamais bloquer npm install
|
|
231
|
-
});
|
|
233
|
+
main().catch(() => {});
|