omegon 0.6.21 → 0.6.23
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/bin/omegon.mjs +6 -0
- package/extensions/bootstrap/deps.ts +48 -33
- package/package.json +4 -1
package/bin/omegon.mjs
CHANGED
|
@@ -63,6 +63,12 @@ function injectBundledResourceArgs(argv) {
|
|
|
63
63
|
return injected;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
+
if (process.argv.includes("--version") || process.argv.includes("-v")) {
|
|
67
|
+
const pkg = JSON.parse(readFileSync(join(omegonRoot, "package.json"), "utf8"));
|
|
68
|
+
process.stdout.write(pkg.version + "\n");
|
|
69
|
+
process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
|
|
66
72
|
if (process.argv.includes("--where")) {
|
|
67
73
|
process.stdout.write(JSON.stringify({
|
|
68
74
|
omegonRoot,
|
|
@@ -133,11 +133,21 @@ function hasCmd(cmd: string): boolean {
|
|
|
133
133
|
/** Get the best install command for the current platform */
|
|
134
134
|
export function bestInstallCmd(dep: Dep): string | undefined {
|
|
135
135
|
const plat = process.platform === "darwin" ? "darwin" : "linux";
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
);
|
|
136
|
+
const candidates = dep.install.filter((o) => o.platform === plat || o.platform === "any");
|
|
137
|
+
if (candidates.length === 0) return dep.install[0]?.cmd;
|
|
138
|
+
|
|
139
|
+
// If nix is available, prefer nix commands. Otherwise prefer brew.
|
|
140
|
+
const hasNix = hasCmd("nix");
|
|
141
|
+
const hasBrew = hasCmd("brew");
|
|
142
|
+
if (hasNix) {
|
|
143
|
+
const nix = candidates.find((o) => o.cmd.startsWith("nix "));
|
|
144
|
+
if (nix) return nix.cmd;
|
|
145
|
+
}
|
|
146
|
+
if (hasBrew) {
|
|
147
|
+
const brew = candidates.find((o) => o.cmd.startsWith("brew "));
|
|
148
|
+
if (brew) return brew.cmd;
|
|
149
|
+
}
|
|
150
|
+
return candidates[0]?.cmd;
|
|
141
151
|
}
|
|
142
152
|
|
|
143
153
|
/** Get all install options formatted for display */
|
|
@@ -154,28 +164,22 @@ export function installHints(dep: Dep): string[] {
|
|
|
154
164
|
* Order matters: displayed in this order during bootstrap.
|
|
155
165
|
*/
|
|
156
166
|
export const DEPS: Dep[] = [
|
|
157
|
-
// --- Core:
|
|
167
|
+
// --- Core: package manager + essential tools ---
|
|
158
168
|
{
|
|
159
169
|
id: "nix",
|
|
160
170
|
name: "Nix",
|
|
161
171
|
purpose: "Universal package manager — installs all other dependencies on any OS",
|
|
162
172
|
usedBy: ["bootstrap"],
|
|
163
173
|
tier: "core",
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
: "curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm" },
|
|
173
|
-
{ platform: "darwin", cmd: "curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm" },
|
|
174
|
-
],
|
|
174
|
+
// Either nix or brew satisfies this — we just need a working package manager
|
|
175
|
+
check: () => hasCmd("nix") || hasCmd("brew"),
|
|
176
|
+
install: isOstree()
|
|
177
|
+
? [{ platform: "linux", cmd: '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"' }]
|
|
178
|
+
: [
|
|
179
|
+
{ platform: "any", cmd: "curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm" },
|
|
180
|
+
{ platform: "any", cmd: '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"' },
|
|
181
|
+
],
|
|
175
182
|
url: "https://zero-to-nix.com",
|
|
176
|
-
// On ostree systems, root.transient must be enabled first for /nix to be created.
|
|
177
|
-
// preflight returns instructions if the system isn't ready.
|
|
178
|
-
preflight: isOstree() ? checkOstreeReadyForNix : undefined,
|
|
179
183
|
},
|
|
180
184
|
{
|
|
181
185
|
id: "ollama",
|
|
@@ -187,6 +191,7 @@ export const DEPS: Dep[] = [
|
|
|
187
191
|
requires: ["nix"],
|
|
188
192
|
install: [
|
|
189
193
|
{ platform: "any", cmd: "nix profile install nixpkgs#ollama" },
|
|
194
|
+
{ platform: "any", cmd: "brew install ollama" },
|
|
190
195
|
],
|
|
191
196
|
url: "https://ollama.com",
|
|
192
197
|
},
|
|
@@ -200,24 +205,12 @@ export const DEPS: Dep[] = [
|
|
|
200
205
|
requires: ["nix"],
|
|
201
206
|
install: [
|
|
202
207
|
{ platform: "any", cmd: "nix profile install nixpkgs#d2" },
|
|
208
|
+
{ platform: "any", cmd: "brew install d2" },
|
|
203
209
|
],
|
|
204
210
|
url: "https://d2lang.com",
|
|
205
211
|
},
|
|
206
212
|
|
|
207
213
|
// --- Recommended: common workflows ---
|
|
208
|
-
{
|
|
209
|
-
id: "vault",
|
|
210
|
-
name: "Vault CLI",
|
|
211
|
-
purpose: "HashiCorp Vault authentication status checking and secret management",
|
|
212
|
-
usedBy: ["01-auth"],
|
|
213
|
-
tier: "optional",
|
|
214
|
-
check: () => hasCmd("vault"),
|
|
215
|
-
requires: ["nix"],
|
|
216
|
-
install: [
|
|
217
|
-
{ platform: "any", cmd: "nix profile install nixpkgs#vault" },
|
|
218
|
-
],
|
|
219
|
-
url: "https://developer.hashicorp.com/vault/install",
|
|
220
|
-
},
|
|
221
214
|
{
|
|
222
215
|
id: "gh",
|
|
223
216
|
name: "GitHub CLI",
|
|
@@ -228,6 +221,7 @@ export const DEPS: Dep[] = [
|
|
|
228
221
|
requires: ["nix"],
|
|
229
222
|
install: [
|
|
230
223
|
{ platform: "any", cmd: "nix profile install nixpkgs#gh" },
|
|
224
|
+
{ platform: "any", cmd: "brew install gh" },
|
|
231
225
|
],
|
|
232
226
|
url: "https://cli.github.com",
|
|
233
227
|
},
|
|
@@ -241,6 +235,7 @@ export const DEPS: Dep[] = [
|
|
|
241
235
|
requires: ["nix"],
|
|
242
236
|
install: [
|
|
243
237
|
{ platform: "any", cmd: "nix profile install nixpkgs#pandoc" },
|
|
238
|
+
{ platform: "any", cmd: "brew install pandoc" },
|
|
244
239
|
],
|
|
245
240
|
url: "https://pandoc.org",
|
|
246
241
|
},
|
|
@@ -253,6 +248,7 @@ export const DEPS: Dep[] = [
|
|
|
253
248
|
check: () => hasCmd("cargo"),
|
|
254
249
|
install: [
|
|
255
250
|
{ platform: "any", cmd: "nix profile install nixpkgs#rustup && rustup default stable" },
|
|
251
|
+
{ platform: "any", cmd: "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y" },
|
|
256
252
|
],
|
|
257
253
|
url: "https://rustup.rs",
|
|
258
254
|
},
|
|
@@ -281,6 +277,7 @@ export const DEPS: Dep[] = [
|
|
|
281
277
|
requires: ["nix"],
|
|
282
278
|
install: [
|
|
283
279
|
{ platform: "any", cmd: "nix profile install nixpkgs#librsvg" },
|
|
280
|
+
{ platform: "any", cmd: "brew install librsvg" },
|
|
284
281
|
],
|
|
285
282
|
},
|
|
286
283
|
{
|
|
@@ -293,6 +290,7 @@ export const DEPS: Dep[] = [
|
|
|
293
290
|
requires: ["nix"],
|
|
294
291
|
install: [
|
|
295
292
|
{ platform: "any", cmd: "nix profile install nixpkgs#poppler_utils" },
|
|
293
|
+
{ platform: "any", cmd: "brew install poppler" },
|
|
296
294
|
],
|
|
297
295
|
},
|
|
298
296
|
{
|
|
@@ -305,6 +303,7 @@ export const DEPS: Dep[] = [
|
|
|
305
303
|
requires: ["nix"],
|
|
306
304
|
install: [
|
|
307
305
|
{ platform: "any", cmd: "nix profile install nixpkgs#uv" },
|
|
306
|
+
{ platform: "any", cmd: "brew install uv" },
|
|
308
307
|
],
|
|
309
308
|
url: "https://docs.astral.sh/uv/",
|
|
310
309
|
},
|
|
@@ -318,6 +317,7 @@ export const DEPS: Dep[] = [
|
|
|
318
317
|
requires: ["nix"],
|
|
319
318
|
install: [
|
|
320
319
|
{ platform: "any", cmd: "nix profile install nixpkgs#awscli2" },
|
|
320
|
+
{ platform: "any", cmd: "brew install awscli" },
|
|
321
321
|
],
|
|
322
322
|
},
|
|
323
323
|
{
|
|
@@ -330,7 +330,22 @@ export const DEPS: Dep[] = [
|
|
|
330
330
|
requires: ["nix"],
|
|
331
331
|
install: [
|
|
332
332
|
{ platform: "any", cmd: "nix profile install nixpkgs#kubectl" },
|
|
333
|
+
{ platform: "any", cmd: "brew install kubectl" },
|
|
334
|
+
],
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
id: "vault",
|
|
338
|
+
name: "Vault CLI",
|
|
339
|
+
purpose: "HashiCorp Vault authentication status checking and secret management",
|
|
340
|
+
usedBy: ["01-auth"],
|
|
341
|
+
tier: "optional",
|
|
342
|
+
check: () => hasCmd("vault"),
|
|
343
|
+
requires: ["nix"],
|
|
344
|
+
install: [
|
|
345
|
+
{ platform: "any", cmd: "nix profile install nixpkgs#vault" },
|
|
346
|
+
{ platform: "any", cmd: "brew install hashicorp/tap/vault" },
|
|
333
347
|
],
|
|
348
|
+
url: "https://developer.hashicorp.com/vault/install",
|
|
334
349
|
},
|
|
335
350
|
];
|
|
336
351
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omegon",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.23",
|
|
4
4
|
"description": "Omegon — an opinionated distribution of pi (by Mario Zechner) with extensions for lifecycle management, memory, orchestration, and visualization",
|
|
5
5
|
"bin": {
|
|
6
6
|
"omegon": "bin/omegon.mjs",
|
|
@@ -40,6 +40,9 @@
|
|
|
40
40
|
"url": "https://github.com/styrene-lab/omegon/issues"
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://github.com/styrene-lab/omegon#readme",
|
|
43
|
+
"optionalDependencies": {
|
|
44
|
+
"@mariozechner/clipboard": "0.3.2"
|
|
45
|
+
},
|
|
43
46
|
"engines": {
|
|
44
47
|
"node": ">=20.0.0"
|
|
45
48
|
},
|