@m14i/sith 1.8.0 → 1.9.0

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/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"ink","version":"7.0.3","description":"React for CLI","license":"MIT","repository":"vadimdemedes/ink","author":{"name":"Vadim Demedes","email":"vadimdemedes@hey.com","url":"https://github.com/vadimdemedes"},"type":"module","exports":{"types":"./build/index.d.ts","default":"./build/index.js"},"engines":{"node":">=22"},"scripts":{"dev":"tsc --watch","build":"tsc","prepare":"npm run build","test":"npm run typecheck && npm run lint && FORCE_COLOR=true ava","lint":"xo","format":"prettier --write .","typecheck":"tsc --noEmit","example":"NODE_NO_WARNINGS=1 node --import=tsx","benchmark":"NODE_NO_WARNINGS=1 node --import=tsx","inspect":"react-devtools"},"files":["build"],"keywords":["react","cli","jsx","stdout","components","command-line","preact","redux","print","render","colors","text"],"dependencies":{"@alcalzone/ansi-tokenize":"^0.3.0","ansi-escapes":"^7.3.0","ansi-styles":"^6.2.3","auto-bind":"^5.0.1","chalk":"^5.6.2","cli-boxes":"^4.0.1","cli-cursor":"^4.0.0","cli-truncate":"^6.0.0","code-excerpt":"^4.0.0","es-toolkit":"^1.45.1","indent-string":"^5.0.0","is-in-ci":"^2.0.0","patch-console":"^2.0.0","react-reconciler":"^0.33.0","scheduler":"^0.27.0","signal-exit":"^3.0.7","slice-ansi":"^9.0.0","stack-utils":"^2.0.6","string-width":"^8.2.0","terminal-size":"^4.0.1","type-fest":"^5.5.0","widest-line":"^6.0.0","wrap-ansi":"^10.0.0","ws":"^8.20.0","yoga-layout":"~3.2.1"},"devDependencies":{"@faker-js/faker":"^10.4.0","@sindresorhus/tsconfig":"^8.1.0","@sinonjs/fake-timers":"^15.3.0","@types/ms":"^2.1.0","@types/node":"^25.5.2","@types/react":"^19.2.14","@types/react-reconciler":"^0.33.0","@types/scheduler":"^0.26.0","@types/signal-exit":"^3.0.0","@types/sinon":"^21.0.1","@types/stack-utils":"^2.0.3","@types/ws":"^8.18.1","@vdemedes/prettier-config":"^2.0.1","ava":"^7.0.0","boxen":"^8.0.1","delay":"^7.0.0","ms":"^2.1.3","node-pty":"^1.2.0-beta.12","p-queue":"^9.1.2","prettier":"^3.8.1","react":"^19.2.4","react-devtools":"^7.0.1","react-devtools-core":"^7.0.1","react-router":"^7.14.0","sinon":"^21.0.3","strip-ansi":"^7.2.0","tsx":"^4.21.0","typescript":"^5.8.3","xo":"^1.2.3"},"peerDependencies":{"@types/react":">=19.2.0","react":">=19.2.0","react-devtools-core":">=6.1.2"},"peerDependenciesMeta":{"@types/react":{"optional":true},"react-devtools-core":{"optional":true}},"ava":{"workerThreads":false,"serial":true,"files":["test/**/*","!test/helpers/**/*","!test/fixtures/**/*"],"extensions":{"ts":"module","tsx":"module"},"nodeArguments":["--import=tsx"]},"prettier":"@vdemedes/prettier-config"}
1
+ {"name":"@m14i/sith","version":"1.9.0","description":"Turn your context to the dark side. Standardize and share your OpenCode setup with a fully dockerized environment, designed for seamless collaboration and CI integration.","type":"module","repository":{"type":"git","url":"https://github.com/MerzoukeMansouri/sith.git"},"bin":{"sith":"./dist/index.js"},"scripts":{"build":"ncc build src/index.ts -o dist && rm -rf dist/assets && cp -r assets dist/","dev":"tsx src/index.ts","dev:build":"pnpm build && node dist/index.js","dev:shell":"pnpm build && node dist/index.js shell","typecheck":"tsc --noEmit","clean":"rm -rf dist","prepublishOnly":"pnpm build"},"files":["dist","assets","docker"],"keywords":["opencode","docker","ci","automation","cli","nix"],"author":"","license":"MIT","dependencies":{"@inquirer/prompts":"^5.0.0","chalk":"^5.3.0","commander":"^12.1.0","execa":"^9.0.0","ink":"^7.0.3","react":"^19.2.6","update-notifier":"^7.3.1"},"devDependencies":{"@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.1","@semantic-release/npm":"^12.0.1","@types/node":"^20.12.7","@types/react":"^19.2.14","@types/update-notifier":"^6.0.8","@vercel/ncc":"^0.38.1","semantic-release":"^24.2.0","tsx":"^4.7.2","typescript":"^5.4.5"},"engines":{"node":">=18"}}
@@ -0,0 +1,137 @@
1
+ {
2
+ "name": "ink",
3
+ "version": "7.0.3",
4
+ "description": "React for CLI",
5
+ "license": "MIT",
6
+ "repository": "vadimdemedes/ink",
7
+ "author": {
8
+ "name": "Vadim Demedes",
9
+ "email": "vadimdemedes@hey.com",
10
+ "url": "https://github.com/vadimdemedes"
11
+ },
12
+ "type": "module",
13
+ "exports": {
14
+ "types": "./build/index.d.ts",
15
+ "default": "./build/index.js"
16
+ },
17
+ "engines": {
18
+ "node": ">=22"
19
+ },
20
+ "scripts": {
21
+ "dev": "tsc --watch",
22
+ "build": "tsc",
23
+ "prepare": "npm run build",
24
+ "test": "npm run typecheck && npm run lint && FORCE_COLOR=true ava",
25
+ "lint": "xo",
26
+ "format": "prettier --write .",
27
+ "typecheck": "tsc --noEmit",
28
+ "example": "NODE_NO_WARNINGS=1 node --import=tsx",
29
+ "benchmark": "NODE_NO_WARNINGS=1 node --import=tsx",
30
+ "inspect": "react-devtools"
31
+ },
32
+ "files": [
33
+ "build"
34
+ ],
35
+ "keywords": [
36
+ "react",
37
+ "cli",
38
+ "jsx",
39
+ "stdout",
40
+ "components",
41
+ "command-line",
42
+ "preact",
43
+ "redux",
44
+ "print",
45
+ "render",
46
+ "colors",
47
+ "text"
48
+ ],
49
+ "dependencies": {
50
+ "@alcalzone/ansi-tokenize": "^0.3.0",
51
+ "ansi-escapes": "^7.3.0",
52
+ "ansi-styles": "^6.2.3",
53
+ "auto-bind": "^5.0.1",
54
+ "chalk": "^5.6.2",
55
+ "cli-boxes": "^4.0.1",
56
+ "cli-cursor": "^4.0.0",
57
+ "cli-truncate": "^6.0.0",
58
+ "code-excerpt": "^4.0.0",
59
+ "es-toolkit": "^1.45.1",
60
+ "indent-string": "^5.0.0",
61
+ "is-in-ci": "^2.0.0",
62
+ "patch-console": "^2.0.0",
63
+ "react-reconciler": "^0.33.0",
64
+ "scheduler": "^0.27.0",
65
+ "signal-exit": "^3.0.7",
66
+ "slice-ansi": "^9.0.0",
67
+ "stack-utils": "^2.0.6",
68
+ "string-width": "^8.2.0",
69
+ "terminal-size": "^4.0.1",
70
+ "type-fest": "^5.5.0",
71
+ "widest-line": "^6.0.0",
72
+ "wrap-ansi": "^10.0.0",
73
+ "ws": "^8.20.0",
74
+ "yoga-layout": "~3.2.1"
75
+ },
76
+ "devDependencies": {
77
+ "@faker-js/faker": "^10.4.0",
78
+ "@sindresorhus/tsconfig": "^8.1.0",
79
+ "@sinonjs/fake-timers": "^15.3.0",
80
+ "@types/ms": "^2.1.0",
81
+ "@types/node": "^25.5.2",
82
+ "@types/react": "^19.2.14",
83
+ "@types/react-reconciler": "^0.33.0",
84
+ "@types/scheduler": "^0.26.0",
85
+ "@types/signal-exit": "^3.0.0",
86
+ "@types/sinon": "^21.0.1",
87
+ "@types/stack-utils": "^2.0.3",
88
+ "@types/ws": "^8.18.1",
89
+ "@vdemedes/prettier-config": "^2.0.1",
90
+ "ava": "^7.0.0",
91
+ "boxen": "^8.0.1",
92
+ "delay": "^7.0.0",
93
+ "ms": "^2.1.3",
94
+ "node-pty": "^1.2.0-beta.12",
95
+ "p-queue": "^9.1.2",
96
+ "prettier": "^3.8.1",
97
+ "react": "^19.2.4",
98
+ "react-devtools": "^7.0.1",
99
+ "react-devtools-core": "^7.0.1",
100
+ "react-router": "^7.14.0",
101
+ "sinon": "^21.0.3",
102
+ "strip-ansi": "^7.2.0",
103
+ "tsx": "^4.21.0",
104
+ "typescript": "^5.8.3",
105
+ "xo": "^1.2.3"
106
+ },
107
+ "peerDependencies": {
108
+ "@types/react": ">=19.2.0",
109
+ "react": ">=19.2.0",
110
+ "react-devtools-core": ">=6.1.2"
111
+ },
112
+ "peerDependenciesMeta": {
113
+ "@types/react": {
114
+ "optional": true
115
+ },
116
+ "react-devtools-core": {
117
+ "optional": true
118
+ }
119
+ },
120
+ "ava": {
121
+ "workerThreads": false,
122
+ "serial": true,
123
+ "files": [
124
+ "test/**/*",
125
+ "!test/helpers/**/*",
126
+ "!test/fixtures/**/*"
127
+ ],
128
+ "extensions": {
129
+ "ts": "module",
130
+ "tsx": "module"
131
+ },
132
+ "nodeArguments": [
133
+ "--import=tsx"
134
+ ]
135
+ },
136
+ "prettier": "@vdemedes/prettier-config"
137
+ }
package/docker/Dockerfile CHANGED
@@ -9,10 +9,11 @@
9
9
  # ============================================================================
10
10
  FROM nixos/nix:2.19.2 AS builder
11
11
 
12
- # Configuration Nix pour permettre les builds
12
+ # Configuration Nix pour permettre les builds et activer flakes
13
13
  # Note: sandbox=false required for Docker-in-Docker compatibility
14
14
  RUN echo "sandbox = false" >> /etc/nix/nix.conf && \
15
- echo "filter-syscalls = false" >> /etc/nix/nix.conf
15
+ echo "filter-syscalls = false" >> /etc/nix/nix.conf && \
16
+ echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
16
17
 
17
18
  # Copier les fichiers de configuration des skills
18
19
  COPY docker/skills/rtk-config.toml /opt/sith/skills/rtk-config.toml
@@ -24,9 +25,11 @@ COPY docker/nix/ /opt/sith/nix/
24
25
  # Configurer npm pour utiliser le registry public
25
26
  RUN echo "registry=https://registry.npmjs.org/" > /root/.npmrc
26
27
 
27
- # Pré-charger l'environnement Nix (installe tous les packages)
28
- # Cela cache les dépendances dans le layer Docker
29
- RUN nix-shell /opt/sith/nix/shell.nix --run "echo '✅ Environment cached'"
28
+ # Generate flake.lock and pre-build environment with profile
29
+ RUN cd /opt/sith/nix && \
30
+ nix flake lock && \
31
+ nix develop --profile /opt/sith/nix-profile --command echo '✅ Flake environment cached' && \
32
+ nix-store --gc --print-dead
30
33
 
31
34
  # Installer OpenCode CLI via script officiel
32
35
  RUN nix-shell /opt/sith/nix/shell.nix --run " \
@@ -46,10 +49,11 @@ LABEL description="OpenCode CI/CD avec Nix, GitHub Copilot et skills d'optimisat
46
49
  LABEL version="2.3.0"
47
50
  LABEL org.opencontainers.image.source="https://github.com/MerzoukeMansouri/sith"
48
51
 
49
- # Configuration Nix pour permettre les builds
52
+ # Configuration Nix pour permettre les builds et activer flakes
50
53
  # Note: sandbox=false required for Docker-in-Docker compatibility
51
54
  RUN echo "sandbox = false" >> /etc/nix/nix.conf && \
52
- echo "filter-syscalls = false" >> /etc/nix/nix.conf
55
+ echo "filter-syscalls = false" >> /etc/nix/nix.conf && \
56
+ echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
53
57
 
54
58
  # Copier les fichiers de configuration des skills depuis builder
55
59
  COPY --from=builder /opt/sith/ /opt/sith/
@@ -99,13 +103,13 @@ ENV CAVEMAN_AUTO=true
99
103
  # Healthcheck pour vérifier que l'environnement est prêt
100
104
  # Note: RTK check is conditional on RTK_ENABLED to avoid false failures
101
105
  HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
102
- CMD nix-shell /opt/sith/nix/shell.nix --run "opencode --version && ([ \"\$RTK_ENABLED\" = \"false\" ] || command -v rtk)" || exit 1
106
+ CMD cd /opt/sith/nix && nix develop --command sh -c "opencode --version && ([ \"\$RTK_ENABLED\" = \"false\" ] || command -v rtk)" || exit 1
103
107
 
104
108
  # Répertoire de travail pour les projets
105
109
  WORKDIR /workspace
106
110
 
107
- # Point d'entrée via nix-shell
108
- ENTRYPOINT ["nix-shell", "/opt/sith/nix/shell.nix", "--run"]
111
+ # Point d'entrée via nix develop (flakes) with cached profile
112
+ ENTRYPOINT ["sh", "-c", "cd /opt/sith/nix && nix develop --offline --command"]
109
113
 
110
114
  # Commande par défaut
111
115
  CMD ["opencode --help"]
@@ -0,0 +1,61 @@
1
+ {
2
+ "nodes": {
3
+ "flake-utils": {
4
+ "inputs": {
5
+ "systems": "systems"
6
+ },
7
+ "locked": {
8
+ "lastModified": 1731533236,
9
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
10
+ "owner": "numtide",
11
+ "repo": "flake-utils",
12
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
13
+ "type": "github"
14
+ },
15
+ "original": {
16
+ "owner": "numtide",
17
+ "repo": "flake-utils",
18
+ "type": "github"
19
+ }
20
+ },
21
+ "nixpkgs": {
22
+ "locked": {
23
+ "lastModified": 1720535198,
24
+ "narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=",
25
+ "owner": "NixOS",
26
+ "repo": "nixpkgs",
27
+ "rev": "205fd4226592cc83fd4c0885a3e4c9c400efabb5",
28
+ "type": "github"
29
+ },
30
+ "original": {
31
+ "owner": "NixOS",
32
+ "ref": "nixos-23.11",
33
+ "repo": "nixpkgs",
34
+ "type": "github"
35
+ }
36
+ },
37
+ "root": {
38
+ "inputs": {
39
+ "flake-utils": "flake-utils",
40
+ "nixpkgs": "nixpkgs"
41
+ }
42
+ },
43
+ "systems": {
44
+ "locked": {
45
+ "lastModified": 1681028828,
46
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
47
+ "owner": "nix-systems",
48
+ "repo": "default",
49
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
50
+ "type": "github"
51
+ },
52
+ "original": {
53
+ "owner": "nix-systems",
54
+ "repo": "default",
55
+ "type": "github"
56
+ }
57
+ }
58
+ },
59
+ "root": "root",
60
+ "version": 7
61
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ description = "Sith - OpenCode Docker Environment";
3
+
4
+ inputs = {
5
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
6
+ flake-utils.url = "github:numtide/flake-utils";
7
+ };
8
+
9
+ outputs = { self, nixpkgs, flake-utils }:
10
+ flake-utils.lib.eachDefaultSystem (system:
11
+ let
12
+ pkgs = nixpkgs.legacyPackages.${system};
13
+
14
+ # Load packages from config
15
+ packagesConfig = builtins.fromJSON (builtins.readFile ./nix-config/packages.json);
16
+
17
+ allPackages = pkgs.lib.flatten (
18
+ pkgs.lib.mapAttrsToList (category: config: config.packages) packagesConfig.categories
19
+ );
20
+
21
+ resolvePkg = pkgPath:
22
+ let
23
+ parts = pkgs.lib.splitString "." pkgPath;
24
+ in
25
+ if pkgs.lib.length parts == 1
26
+ then builtins.getAttr (pkgs.lib.head parts) pkgs
27
+ else if pkgs.lib.length parts == 2
28
+ then builtins.getAttr (pkgs.lib.elemAt parts 1) (builtins.getAttr (pkgs.lib.head parts) pkgs)
29
+ else throw "Package path too deep: ${pkgPath}";
30
+
31
+ packages = map resolvePkg allPackages;
32
+ in
33
+ {
34
+ devShells.default = pkgs.mkShell {
35
+ name = "opencode-ci-environment";
36
+
37
+ buildInputs = packages;
38
+
39
+ shellHook = ''
40
+ # Source external setup script
41
+ if [ -f /opt/sith/nix/nix-scripts/setup.sh ]; then
42
+ source /opt/sith/nix/nix-scripts/setup.sh
43
+ fi
44
+ '';
45
+
46
+ LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
47
+ LANG = "en_US.UTF-8";
48
+ LC_ALL = "en_US.UTF-8";
49
+ LC_CTYPE = "en_US.UTF-8";
50
+
51
+ SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
52
+ NIX_SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
53
+ };
54
+ }
55
+ );
56
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m14i/sith",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "Turn your context to the dark side. Standardize and share your OpenCode setup with a fully dockerized environment, designed for seamless collaboration and CI integration.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -40,7 +40,8 @@
40
40
  "commander": "^12.1.0",
41
41
  "execa": "^9.0.0",
42
42
  "ink": "^7.0.3",
43
- "react": "^19.2.6"
43
+ "react": "^19.2.6",
44
+ "update-notifier": "^7.3.1"
44
45
  },
45
46
  "devDependencies": {
46
47
  "@semantic-release/changelog": "^6.0.3",
@@ -49,6 +50,7 @@
49
50
  "@semantic-release/npm": "^12.0.1",
50
51
  "@types/node": "^20.12.7",
51
52
  "@types/react": "^19.2.14",
53
+ "@types/update-notifier": "^6.0.8",
52
54
  "@vercel/ncc": "^0.38.1",
53
55
  "semantic-release": "^24.2.0",
54
56
  "tsx": "^4.7.2",