@vikasitai/vikasit-code 1.0.6 → 1.0.7

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.
Files changed (3) hide show
  1. package/README.md +0 -4
  2. package/bin/vikasit +178 -15
  3. package/package.json +14 -14
package/README.md CHANGED
@@ -1,8 +1,4 @@
1
1
  # @vikasitai/vikasit-code
2
-
3
2
  Your AI coding partner.
4
-
5
3
  npm install -g @vikasitai/vikasit-code
6
- vikasit
7
-
8
4
  https://vikasit.ai/code
package/bin/vikasit CHANGED
@@ -1,16 +1,179 @@
1
1
  #!/usr/bin/env node
2
- const c=require("child_process"),f=require("fs"),p=require("path"),o=require("os")
3
- function r(t){const s=c.spawnSync(t,process.argv.slice(2),{stdio:"inherit"});s.error&&(console.error(s.error.message),process.exit(1));process.exit("number"==typeof s.status?s.status:0)}
4
- if(process.env.VIKASIT_BIN_PATH)r(process.env.VIKASIT_BIN_PATH)
5
- const d=p.dirname(f.realpathSync(__filename)),h=p.join(d,".vikasit")
6
- if(f.existsSync(h))r(h)
7
- const P={darwin:"darwin",linux:"linux",win32:"windows"},A={x64:"x64",arm64:"arm64",arm:"arm"}
8
- const pl=P[o.platform()]||o.platform(),ar=A[o.arch()]||o.arch()
9
- const b="vikasit-code-"+pl+"-"+ar,bn=pl==="windows"?"vikasit.exe":"vikasit"
10
- function a(){if(ar!=="x64")return false;if(pl==="darwin"){try{const s=c.spawnSync("sysctl",["-n","hw.optional.avx2_0"],{encoding:"utf8",timeout:1500});return s.status===0&&(s.stdout||"").trim()==="1"}catch{return false}}if(pl==="linux"){try{return/(^|\s)avx2(\s|$)/i.test(f.readFileSync("/proc/cpuinfo","utf8"))}catch{return false}}return false}
11
- const bl=ar==="x64"&&!a()
12
- const n=(()=>{if(pl==="linux"){const m=(()=>{try{if(f.existsSync("/etc/alpine-release"))return true}catch{}try{const s=c.spawnSync("ldd",["--version"],{encoding:"utf8"});if(((s.stdout||"")+(s.stderr||"")).toLowerCase().includes("musl"))return true}catch{}return false})();if(m)return bl?[b+"-baseline-musl",b+"-musl",b+"-baseline",b]:[b+"-musl",b+"-baseline-musl",b,b+"-baseline"];return bl?[b+"-baseline",b]:[b,b+"-baseline"]}return bl?[b+"-baseline",b]:[b,b+"-baseline"]})()
13
- function fb(s){let c2=s;for(;;){const m=p.join(c2,"node_modules");if(f.existsSync(m))for(const x of n){const s2=p.join(m,"@vikasitai",x,"bin",bn);if(f.existsSync(s2))return s2;const u=p.join(m,x,"bin",bn);if(f.existsSync(u))return u}const p2=p.dirname(c2);if(p2===c2)return;c2=p2}}
14
- const rs=fb(d)
15
- if(!rs){console.error("Could not find Vikasit Code binary for "+pl+"/"+ar+".\nTry: npm install -g @vikasitai/"+n[0]+"\nVisit: https://vikasit.ai/code");process.exit(1)}
16
- r(rs)
2
+
3
+ const childProcess = require("child_process")
4
+ const fs = require("fs")
5
+ const path = require("path")
6
+ const os = require("os")
7
+
8
+ function run(target) {
9
+ const result = childProcess.spawnSync(target, process.argv.slice(2), {
10
+ stdio: "inherit",
11
+ })
12
+ if (result.error) {
13
+ console.error(result.error.message)
14
+ process.exit(1)
15
+ }
16
+ const code = typeof result.status === "number" ? result.status : 0
17
+ process.exit(code)
18
+ }
19
+
20
+ const envPath = process.env.VIKASIT_BIN_PATH
21
+ if (envPath) {
22
+ run(envPath)
23
+ }
24
+
25
+ const scriptPath = fs.realpathSync(__filename)
26
+ const scriptDir = path.dirname(scriptPath)
27
+
28
+ //
29
+ const cached = path.join(scriptDir, ".vikasit")
30
+ if (fs.existsSync(cached)) {
31
+ run(cached)
32
+ }
33
+
34
+ const platformMap = {
35
+ darwin: "darwin",
36
+ linux: "linux",
37
+ win32: "windows",
38
+ }
39
+ const archMap = {
40
+ x64: "x64",
41
+ arm64: "arm64",
42
+ arm: "arm",
43
+ }
44
+
45
+ let platform = platformMap[os.platform()]
46
+ if (!platform) {
47
+ platform = os.platform()
48
+ }
49
+ let arch = archMap[os.arch()]
50
+ if (!arch) {
51
+ arch = os.arch()
52
+ }
53
+ const base = "opencode-" + platform + "-" + arch
54
+ const binary = platform === "windows" ? "opencode.exe" : "vikasit"
55
+
56
+ function supportsAvx2() {
57
+ if (arch !== "x64") return false
58
+
59
+ if (platform === "linux") {
60
+ try {
61
+ return /(^|\s)avx2(\s|$)/i.test(fs.readFileSync("/proc/cpuinfo", "utf8"))
62
+ } catch {
63
+ return false
64
+ }
65
+ }
66
+
67
+ if (platform === "darwin") {
68
+ try {
69
+ const result = childProcess.spawnSync("sysctl", ["-n", "hw.optional.avx2_0"], {
70
+ encoding: "utf8",
71
+ timeout: 1500,
72
+ })
73
+ if (result.status !== 0) return false
74
+ return (result.stdout || "").trim() === "1"
75
+ } catch {
76
+ return false
77
+ }
78
+ }
79
+
80
+ if (platform === "windows") {
81
+ const cmd =
82
+ '(Add-Type -MemberDefinition "[DllImport(""kernel32.dll"")] public static extern bool IsProcessorFeaturePresent(int ProcessorFeature);" -Name Kernel32 -Namespace Win32 -PassThru)::IsProcessorFeaturePresent(40)'
83
+
84
+ for (const exe of ["powershell.exe", "pwsh.exe", "pwsh", "powershell"]) {
85
+ try {
86
+ const result = childProcess.spawnSync(exe, ["-NoProfile", "-NonInteractive", "-Command", cmd], {
87
+ encoding: "utf8",
88
+ timeout: 3000,
89
+ windowsHide: true,
90
+ })
91
+ if (result.status !== 0) continue
92
+ const out = (result.stdout || "").trim().toLowerCase()
93
+ if (out === "true" || out === "1") return true
94
+ if (out === "false" || out === "0") return false
95
+ } catch {
96
+ continue
97
+ }
98
+ }
99
+
100
+ return false
101
+ }
102
+
103
+ return false
104
+ }
105
+
106
+ const names = (() => {
107
+ const avx2 = supportsAvx2()
108
+ const baseline = arch === "x64" && !avx2
109
+
110
+ if (platform === "linux") {
111
+ const musl = (() => {
112
+ try {
113
+ if (fs.existsSync("/etc/alpine-release")) return true
114
+ } catch {
115
+ // ignore
116
+ }
117
+
118
+ try {
119
+ const result = childProcess.spawnSync("ldd", ["--version"], { encoding: "utf8" })
120
+ const text = ((result.stdout || "") + (result.stderr || "")).toLowerCase()
121
+ if (text.includes("musl")) return true
122
+ } catch {
123
+ // ignore
124
+ }
125
+
126
+ return false
127
+ })()
128
+
129
+ if (musl) {
130
+ if (arch === "x64") {
131
+ if (baseline) return [`${base}-baseline-musl`, `${base}-musl`, `${base}-baseline`, base]
132
+ return [`${base}-musl`, `${base}-baseline-musl`, base, `${base}-baseline`]
133
+ }
134
+ return [`${base}-musl`, base]
135
+ }
136
+
137
+ if (arch === "x64") {
138
+ if (baseline) return [`${base}-baseline`, base, `${base}-baseline-musl`, `${base}-musl`]
139
+ return [base, `${base}-baseline`, `${base}-musl`, `${base}-baseline-musl`]
140
+ }
141
+ return [base, `${base}-musl`]
142
+ }
143
+
144
+ if (arch === "x64") {
145
+ if (baseline) return [`${base}-baseline`, base]
146
+ return [base, `${base}-baseline`]
147
+ }
148
+ return [base]
149
+ })()
150
+
151
+ function findBinary(startDir) {
152
+ let current = startDir
153
+ for (;;) {
154
+ const modules = path.join(current, "node_modules")
155
+ if (fs.existsSync(modules)) {
156
+ for (const name of names) {
157
+ const candidate = path.join(modules, name, "bin", binary)
158
+ if (fs.existsSync(candidate)) return candidate
159
+ }
160
+ }
161
+ const parent = path.dirname(current)
162
+ if (parent === current) {
163
+ return
164
+ }
165
+ current = parent
166
+ }
167
+ }
168
+
169
+ const resolved = findBinary(scriptDir)
170
+ if (!resolved) {
171
+ console.error(
172
+ "It seems that your package manager failed to install the right version of the opencode CLI for your platform. You can try manually installing " +
173
+ names.map((n) => `\"${n}\"`).join(" or ") +
174
+ " package",
175
+ )
176
+ process.exit(1)
177
+ }
178
+
179
+ run(resolved)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vikasitai/vikasit-code",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "Your AI coding partner, right in the terminal",
5
5
  "author": "Vikasit AI <info@vikasit.ai>",
6
6
  "license": "MIT",
@@ -12,17 +12,17 @@
12
12
  "postinstall": "node ./postinstall.mjs || true"
13
13
  },
14
14
  "optionalDependencies": {
15
- "@vikasitai/vikasit-code-darwin-arm64": "1.0.6",
16
- "@vikasitai/vikasit-code-darwin-x64": "1.0.6",
17
- "@vikasitai/vikasit-code-darwin-x64-baseline": "1.0.6",
18
- "@vikasitai/vikasit-code-linux-arm64": "1.0.6",
19
- "@vikasitai/vikasit-code-linux-arm64-musl": "1.0.6",
20
- "@vikasitai/vikasit-code-linux-x64": "1.0.6",
21
- "@vikasitai/vikasit-code-linux-x64-baseline": "1.0.6",
22
- "@vikasitai/vikasit-code-linux-x64-baseline-musl": "1.0.6",
23
- "@vikasitai/vikasit-code-linux-x64-musl": "1.0.6",
24
- "@vikasitai/vikasit-code-windows-arm64": "1.0.6",
25
- "@vikasitai/vikasit-code-windows-x64": "1.0.6",
26
- "@vikasitai/vikasit-code-windows-x64-baseline": "1.0.6"
15
+ "@vikasitai/vikasit-code-darwin-arm64": "1.0.7",
16
+ "@vikasitai/vikasit-code-darwin-x64": "1.0.7",
17
+ "@vikasitai/vikasit-code-darwin-x64-baseline": "1.0.7",
18
+ "@vikasitai/vikasit-code-linux-arm64": "1.0.7",
19
+ "@vikasitai/vikasit-code-linux-arm64-musl": "1.0.7",
20
+ "@vikasitai/vikasit-code-linux-x64": "1.0.7",
21
+ "@vikasitai/vikasit-code-linux-x64-baseline": "1.0.7",
22
+ "@vikasitai/vikasit-code-linux-x64-baseline-musl": "1.0.7",
23
+ "@vikasitai/vikasit-code-linux-x64-musl": "1.0.7",
24
+ "@vikasitai/vikasit-code-windows-arm64": "1.0.7",
25
+ "@vikasitai/vikasit-code-windows-x64": "1.0.7",
26
+ "@vikasitai/vikasit-code-windows-x64-baseline": "1.0.7"
27
27
  }
28
- }
28
+ }