@newtype-os/cli 0.0.9 → 0.0.10

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/package.json CHANGED
@@ -6,9 +6,9 @@
6
6
  "scripts": {
7
7
  "postinstall": "bun ./postinstall.mjs || node ./postinstall.mjs"
8
8
  },
9
- "version": "0.0.9",
9
+ "version": "0.0.10",
10
10
  "license": "MIT",
11
11
  "optionalDependencies": {
12
- "@newtype-os/cli-darwin-arm64": "0.0.9"
12
+ "@newtype-os/cli-darwin-arm64": "0.0.10"
13
13
  }
14
14
  }
package/postinstall.mjs CHANGED
@@ -162,17 +162,40 @@ async function main() {
162
162
  const content = match[1]
163
163
  const home = os.homedir()
164
164
  const agents = [
165
- { name: "claude-code", dir: path.join(home, ".claude", "skills", "newtype"), file: "SKILL.md" },
166
- { name: "codex", dir: path.join(home, ".codex", "skills", "newtype"), file: "SKILL.md" },
167
- { name: "goose", dir: path.join(home, ".config", "goose", "skills", "newtype"), file: "SKILL.md" },
168
- { name: "cursor", dir: path.join(home, ".cursor", "rules"), file: "newtype.mdc" },
169
- { name: "augment", dir: path.join(home, ".augment", "rules"), file: "newtype.md" },
165
+ {
166
+ name: "claude-code",
167
+ root: path.join(home, ".claude"),
168
+ dir: path.join(home, ".claude", "skills", "newtype"),
169
+ file: "SKILL.md",
170
+ },
171
+ {
172
+ name: "codex",
173
+ root: path.join(home, ".codex"),
174
+ dir: path.join(home, ".codex", "skills", "newtype"),
175
+ file: "SKILL.md",
176
+ },
177
+ {
178
+ name: "goose",
179
+ root: path.join(home, ".config", "goose"),
180
+ dir: path.join(home, ".config", "goose", "skills", "newtype"),
181
+ file: "SKILL.md",
182
+ },
183
+ {
184
+ name: "cursor",
185
+ root: path.join(home, ".cursor"),
186
+ dir: path.join(home, ".cursor", "rules"),
187
+ file: "newtype.mdc",
188
+ },
189
+ {
190
+ name: "augment",
191
+ root: path.join(home, ".augment"),
192
+ dir: path.join(home, ".augment", "rules"),
193
+ file: "newtype.md",
194
+ },
170
195
  ]
171
196
  let injected = 0
172
197
  for (const agent of agents) {
173
- const parent = path.dirname(agent.dir)
174
- // Only inject if the agent's parent directory exists (agent is installed)
175
- if (!fs.existsSync(parent)) continue
198
+ if (!fs.existsSync(agent.root)) continue
176
199
  const target = path.join(agent.dir, agent.file)
177
200
  if (fs.existsSync(target)) continue // Don't overwrite existing
178
201
  fs.mkdirSync(agent.dir, { recursive: true })
package/bin/bin/nt DELETED
@@ -1,173 +0,0 @@
1
- #!/usr/bin/env node
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.OPENCODE_BIN_PATH
21
- if (envPath) {
22
- run(envPath)
23
- }
24
-
25
- const scriptPath = fs.realpathSync(__filename)
26
- const scriptDir = path.dirname(scriptPath)
27
-
28
- const platformMap = {
29
- darwin: "darwin",
30
- linux: "linux",
31
- win32: "windows",
32
- }
33
- const archMap = {
34
- x64: "x64",
35
- arm64: "arm64",
36
- arm: "arm",
37
- }
38
-
39
- let platform = platformMap[os.platform()]
40
- if (!platform) {
41
- platform = os.platform()
42
- }
43
- let arch = archMap[os.arch()]
44
- if (!arch) {
45
- arch = os.arch()
46
- }
47
- const base = "@newtype-os/cli-" + platform + "-" + arch
48
- const binary = platform === "windows" ? "nt.exe" : "nt"
49
-
50
- function supportsAvx2() {
51
- if (arch !== "x64") return false
52
-
53
- if (platform === "linux") {
54
- try {
55
- return /(^|\s)avx2(\s|$)/i.test(fs.readFileSync("/proc/cpuinfo", "utf8"))
56
- } catch {
57
- return false
58
- }
59
- }
60
-
61
- if (platform === "darwin") {
62
- try {
63
- const result = childProcess.spawnSync("sysctl", ["-n", "hw.optional.avx2_0"], {
64
- encoding: "utf8",
65
- timeout: 1500,
66
- })
67
- if (result.status !== 0) return false
68
- return (result.stdout || "").trim() === "1"
69
- } catch {
70
- return false
71
- }
72
- }
73
-
74
- if (platform === "windows") {
75
- const cmd =
76
- '(Add-Type -MemberDefinition "[DllImport(""kernel32.dll"")] public static extern bool IsProcessorFeaturePresent(int ProcessorFeature);" -Name Kernel32 -Namespace Win32 -PassThru)::IsProcessorFeaturePresent(40)'
77
-
78
- for (const exe of ["powershell.exe", "pwsh.exe", "pwsh", "powershell"]) {
79
- try {
80
- const result = childProcess.spawnSync(exe, ["-NoProfile", "-NonInteractive", "-Command", cmd], {
81
- encoding: "utf8",
82
- timeout: 3000,
83
- windowsHide: true,
84
- })
85
- if (result.status !== 0) continue
86
- const out = (result.stdout || "").trim().toLowerCase()
87
- if (out === "true" || out === "1") return true
88
- if (out === "false" || out === "0") return false
89
- } catch {
90
- continue
91
- }
92
- }
93
-
94
- return false
95
- }
96
-
97
- return false
98
- }
99
-
100
- const names = (() => {
101
- const avx2 = supportsAvx2()
102
- const baseline = arch === "x64" && !avx2
103
-
104
- if (platform === "linux") {
105
- const musl = (() => {
106
- try {
107
- if (fs.existsSync("/etc/alpine-release")) return true
108
- } catch {
109
- // ignore
110
- }
111
-
112
- try {
113
- const result = childProcess.spawnSync("ldd", ["--version"], { encoding: "utf8" })
114
- const text = ((result.stdout || "") + (result.stderr || "")).toLowerCase()
115
- if (text.includes("musl")) return true
116
- } catch {
117
- // ignore
118
- }
119
-
120
- return false
121
- })()
122
-
123
- if (musl) {
124
- if (arch === "x64") {
125
- if (baseline) return [`${base}-baseline-musl`, `${base}-musl`, `${base}-baseline`, base]
126
- return [`${base}-musl`, `${base}-baseline-musl`, base, `${base}-baseline`]
127
- }
128
- return [`${base}-musl`, base]
129
- }
130
-
131
- if (arch === "x64") {
132
- if (baseline) return [`${base}-baseline`, base, `${base}-baseline-musl`, `${base}-musl`]
133
- return [base, `${base}-baseline`, `${base}-musl`, `${base}-baseline-musl`]
134
- }
135
- return [base, `${base}-musl`]
136
- }
137
-
138
- if (arch === "x64") {
139
- if (baseline) return [`${base}-baseline`, base]
140
- return [base, `${base}-baseline`]
141
- }
142
- return [base]
143
- })()
144
-
145
- function findBinary(startDir) {
146
- let current = startDir
147
- for (;;) {
148
- const modules = path.join(current, "node_modules")
149
- if (fs.existsSync(modules)) {
150
- for (const name of names) {
151
- const candidate = path.join(modules, name, "bin", binary)
152
- if (fs.existsSync(candidate)) return candidate
153
- }
154
- }
155
- const parent = path.dirname(current)
156
- if (parent === current) {
157
- return
158
- }
159
- current = parent
160
- }
161
- }
162
-
163
- const resolved = findBinary(scriptDir)
164
- if (!resolved) {
165
- console.error(
166
- "It seems that your package manager failed to install the right version of the Newtype CLI for your platform. You can try manually installing " +
167
- names.map((n) => `\"${n}\"`).join(" or ") +
168
- " package",
169
- )
170
- process.exit(1)
171
- }
172
-
173
- run(resolved)
File without changes