@omnidev-ai/cli 0.5.1 → 0.5.3

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/index.js CHANGED
@@ -1,25 +1,22 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- __require,
4
- __toESM,
5
- debug,
6
- disableCapability,
7
- disableProvider,
8
- discoverCapabilities,
9
- enableCapability,
10
- enableProvider,
11
- generateInstructionsTemplate,
12
- getActiveProfile,
13
- getEnabledCapabilities,
14
- loadCapabilityConfig,
15
- loadConfig,
16
- readEnabledProviders,
17
- resolveEnabledCapabilities,
18
- setActiveProfile,
19
- syncAgentConfiguration,
20
- writeConfig,
21
- writeEnabledProviders
22
- } from "./shared/chunk-7txw9v1e.js";
2
+ import { createRequire } from "node:module";
3
+ var __create = Object.create;
4
+ var __getProtoOf = Object.getPrototypeOf;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __toESM = (mod, isNodeMode, target) => {
9
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
10
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
11
+ for (let key of __getOwnPropNames(mod))
12
+ if (!__hasOwnProp.call(to, key))
13
+ __defProp(to, key, {
14
+ get: () => mod[key],
15
+ enumerable: true
16
+ });
17
+ return to;
18
+ };
19
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
23
20
 
24
21
  // src/index.ts
25
22
  import { run } from "@stricli/core";
@@ -31,6 +28,7 @@ import { buildApplication, buildRouteMap as buildRouteMap4 } from "@stricli/core
31
28
 
32
29
  // ../adapters/src/claude-code/index.ts
33
30
  import { existsSync, mkdirSync } from "node:fs";
31
+ import { writeFile } from "node:fs/promises";
34
32
  import { join } from "node:path";
35
33
  var claudeCodeAdapter = {
36
34
  id: "claude-code",
@@ -39,7 +37,7 @@ var claudeCodeAdapter = {
39
37
  const claudeMdPath = join(ctx.projectRoot, "CLAUDE.md");
40
38
  const filesCreated = [];
41
39
  if (!existsSync(claudeMdPath)) {
42
- await Bun.write(claudeMdPath, generateClaudeTemplate());
40
+ await writeFile(claudeMdPath, generateClaudeTemplate(), "utf-8");
43
41
  filesCreated.push("CLAUDE.md");
44
42
  }
45
43
  return {
@@ -62,7 +60,7 @@ description: "${skill.description}"
62
60
  ---
63
61
 
64
62
  ${skill.instructions}`;
65
- await Bun.write(skillPath, content);
63
+ await writeFile(skillPath, content, "utf-8");
66
64
  filesWritten.push(`.claude/skills/${skill.name}/SKILL.md`);
67
65
  }
68
66
  return {
@@ -83,6 +81,7 @@ function generateClaudeTemplate() {
83
81
  }
84
82
  // ../adapters/src/codex/index.ts
85
83
  import { existsSync as existsSync2 } from "node:fs";
84
+ import { writeFile as writeFile2 } from "node:fs/promises";
86
85
  import { join as join2 } from "node:path";
87
86
  var codexAdapter = {
88
87
  id: "codex",
@@ -91,7 +90,7 @@ var codexAdapter = {
91
90
  const agentsMdPath = join2(ctx.projectRoot, "AGENTS.md");
92
91
  const filesCreated = [];
93
92
  if (!existsSync2(agentsMdPath)) {
94
- await Bun.write(agentsMdPath, generateAgentsTemplate());
93
+ await writeFile2(agentsMdPath, generateAgentsTemplate(), "utf-8");
95
94
  filesCreated.push("AGENTS.md");
96
95
  }
97
96
  return {
@@ -118,6 +117,7 @@ function generateAgentsTemplate() {
118
117
  }
119
118
  // ../adapters/src/cursor/index.ts
120
119
  import { mkdirSync as mkdirSync2 } from "node:fs";
120
+ import { writeFile as writeFile3 } from "node:fs/promises";
121
121
  import { join as join3 } from "node:path";
122
122
  var cursorAdapter = {
123
123
  id: "cursor",
@@ -137,7 +137,7 @@ var cursorAdapter = {
137
137
  mkdirSync2(rulesDir, { recursive: true });
138
138
  for (const rule of bundle.rules) {
139
139
  const rulePath = join3(rulesDir, `omnidev-${rule.name}.mdc`);
140
- await Bun.write(rulePath, rule.content);
140
+ await writeFile3(rulePath, rule.content, "utf-8");
141
141
  filesWritten.push(`.cursor/rules/omnidev-${rule.name}.mdc`);
142
142
  }
143
143
  return {
@@ -148,6 +148,7 @@ var cursorAdapter = {
148
148
  };
149
149
  // ../adapters/src/opencode/index.ts
150
150
  import { existsSync as existsSync3, mkdirSync as mkdirSync3 } from "node:fs";
151
+ import { writeFile as writeFile4 } from "node:fs/promises";
151
152
  import { join as join4 } from "node:path";
152
153
  var opencodeAdapter = {
153
154
  id: "opencode",
@@ -158,7 +159,7 @@ var opencodeAdapter = {
158
159
  const instructionsPath = join4(opencodeDir, "instructions.md");
159
160
  const filesCreated = [];
160
161
  if (!existsSync3(instructionsPath)) {
161
- await Bun.write(instructionsPath, generateOpencodeTemplate());
162
+ await writeFile4(instructionsPath, generateOpencodeTemplate(), "utf-8");
162
163
  filesCreated.push(".opencode/instructions.md");
163
164
  }
164
165
  return {
@@ -184,6 +185,7 @@ function generateOpencodeTemplate() {
184
185
  `;
185
186
  }
186
187
  // ../adapters/src/registry.ts
188
+ import { readEnabledProviders } from "@omnidev-ai/core";
187
189
  var builtInAdapters = [
188
190
  claudeCodeAdapter,
189
191
  codexAdapter,
@@ -199,6 +201,14 @@ async function getEnabledAdapters() {
199
201
  return enabledIds.map((id) => adapterMap.get(id)).filter((a) => a != null);
200
202
  }
201
203
  // src/commands/capability.ts
204
+ import {
205
+ disableCapability,
206
+ discoverCapabilities,
207
+ enableCapability,
208
+ getEnabledCapabilities,
209
+ loadCapabilityConfig,
210
+ syncAgentConfiguration
211
+ } from "@omnidev-ai/core";
202
212
  import { buildCommand, buildRouteMap } from "@stricli/core";
203
213
  async function runCapabilityList() {
204
214
  try {
@@ -326,6 +336,9 @@ var capabilityRoutes = buildRouteMap({
326
336
 
327
337
  // src/commands/doctor.ts
328
338
  import { existsSync as existsSync4 } from "node:fs";
339
+ import { execFile } from "node:child_process";
340
+ import { readFile } from "node:fs/promises";
341
+ import { promisify } from "node:util";
329
342
  import { buildCommand as buildCommand2 } from "@stricli/core";
330
343
  var doctorCommand = buildCommand2({
331
344
  docs: {
@@ -341,7 +354,7 @@ async function runDoctor() {
341
354
  console.log("==============");
342
355
  console.log("");
343
356
  const checks = [
344
- checkBunVersion(),
357
+ checkPackageManager(),
345
358
  checkOmniLocalDir(),
346
359
  checkConfig(),
347
360
  checkRootGitignore(),
@@ -366,32 +379,50 @@ async function runDoctor() {
366
379
  process.exit(1);
367
380
  }
368
381
  }
369
- async function checkBunVersion() {
370
- const version = Bun.version;
371
- const parts = version.split(".");
372
- const firstPart = parts[0];
373
- if (!firstPart) {
382
+ async function checkPackageManager() {
383
+ const execFileAsync = promisify(execFile);
384
+ try {
385
+ const { stdout } = await execFileAsync("bun", ["--version"]);
386
+ const version = stdout.trim();
387
+ const firstPart = version.split(".")[0];
388
+ if (!firstPart) {
389
+ return {
390
+ name: "Package Manager",
391
+ passed: false,
392
+ message: `Invalid Bun version format: ${version}`,
393
+ fix: "Reinstall Bun: curl -fsSL https://bun.sh/install | bash"
394
+ };
395
+ }
396
+ const major = Number.parseInt(firstPart, 10);
397
+ if (major < 1) {
398
+ return {
399
+ name: "Package Manager",
400
+ passed: false,
401
+ message: `bun v${version}`,
402
+ fix: "Upgrade Bun: curl -fsSL https://bun.sh/install | bash"
403
+ };
404
+ }
374
405
  return {
375
- name: "Bun Version",
376
- passed: false,
377
- message: `Invalid version format: ${version}`,
378
- fix: "Reinstall Bun: curl -fsSL https://bun.sh/install | bash"
406
+ name: "Package Manager",
407
+ passed: true,
408
+ message: `bun v${version}`
379
409
  };
380
- }
381
- const major = Number.parseInt(firstPart, 10);
382
- if (major < 1) {
410
+ } catch {}
411
+ try {
412
+ const { stdout } = await execFileAsync("npm", ["--version"]);
413
+ return {
414
+ name: "Package Manager",
415
+ passed: true,
416
+ message: `npm v${stdout.trim()}`
417
+ };
418
+ } catch {
383
419
  return {
384
- name: "Bun Version",
420
+ name: "Package Manager",
385
421
  passed: false,
386
- message: `v${version}`,
387
- fix: "Upgrade Bun: curl -fsSL https://bun.sh/install | bash"
422
+ message: "Neither Bun nor npm is installed",
423
+ fix: "Install Bun (recommended): curl -fsSL https://bun.sh/install | bash"
388
424
  };
389
425
  }
390
- return {
391
- name: "Bun Version",
392
- passed: true,
393
- message: `v${version}`
394
- };
395
426
  }
396
427
  async function checkOmniLocalDir() {
397
428
  const exists = existsSync4(".omni");
@@ -420,8 +451,8 @@ async function checkConfig() {
420
451
  };
421
452
  }
422
453
  try {
423
- const { loadConfig: loadConfig2 } = await import("./shared/chunk-7txw9v1e.js");
424
- await loadConfig2();
454
+ const { loadConfig } = await import("@omnidev-ai/core");
455
+ await loadConfig();
425
456
  return {
426
457
  name: "Configuration",
427
458
  passed: true,
@@ -446,7 +477,7 @@ async function checkRootGitignore() {
446
477
  fix: "Run: omnidev init"
447
478
  };
448
479
  }
449
- const content = await Bun.file(gitignorePath).text();
480
+ const content = await readFile(gitignorePath, "utf-8");
450
481
  const lines = content.split(`
451
482
  `).map((line) => line.trim());
452
483
  const hasOmniDir = lines.includes(".omni/");
@@ -488,6 +519,15 @@ async function checkCapabilitiesDir() {
488
519
 
489
520
  // src/commands/init.ts
490
521
  import { existsSync as existsSync5, mkdirSync as mkdirSync4 } from "node:fs";
522
+ import { readFile as readFile2, writeFile as writeFile5 } from "node:fs/promises";
523
+ import {
524
+ generateInstructionsTemplate,
525
+ loadConfig,
526
+ setActiveProfile,
527
+ syncAgentConfiguration as syncAgentConfiguration2,
528
+ writeConfig,
529
+ writeEnabledProviders
530
+ } from "@omnidev-ai/core";
491
531
  import { buildCommand as buildCommand3 } from "@stricli/core";
492
532
 
493
533
  // src/prompts/provider.ts
@@ -538,7 +578,7 @@ async function runInit(_flags, providerArg) {
538
578
  await setActiveProfile("default");
539
579
  }
540
580
  if (!existsSync5(".omni/instructions.md")) {
541
- await Bun.write(".omni/instructions.md", generateInstructionsTemplate());
581
+ await writeFile5(".omni/instructions.md", generateInstructionsTemplate(), "utf-8");
542
582
  }
543
583
  const config = await loadConfig();
544
584
  const ctx = {
@@ -558,7 +598,7 @@ async function runInit(_flags, providerArg) {
558
598
  }
559
599
  }
560
600
  const enabledAdapters = await getEnabledAdapters();
561
- await syncAgentConfiguration({ silent: true, adapters: enabledAdapters });
601
+ await syncAgentConfiguration2({ silent: true, adapters: enabledAdapters });
562
602
  console.log("");
563
603
  console.log(`✓ OmniDev initialized for ${selectedAdapters.map((a) => a.displayName).join(" and ")}!`);
564
604
  console.log("");
@@ -623,7 +663,7 @@ async function updateRootGitignore() {
623
663
  const entriesToAdd = [".omni/", "omni.local.toml"];
624
664
  let content = "";
625
665
  if (existsSync5(gitignorePath)) {
626
- content = await Bun.file(gitignorePath).text();
666
+ content = await readFile2(gitignorePath, "utf-8");
627
667
  }
628
668
  const lines = content.split(`
629
669
  `);
@@ -638,11 +678,18 @@ async function updateRootGitignore() {
638
678
  ${missingEntries.join(`
639
679
  `)}
640
680
  `;
641
- await Bun.write(gitignorePath, content + section);
681
+ await writeFile5(gitignorePath, content + section, "utf-8");
642
682
  }
643
683
 
644
684
  // src/commands/profile.ts
645
685
  import { existsSync as existsSync6 } from "node:fs";
686
+ import {
687
+ getActiveProfile,
688
+ loadConfig as loadConfig2,
689
+ resolveEnabledCapabilities,
690
+ setActiveProfile as setActiveProfile2,
691
+ syncAgentConfiguration as syncAgentConfiguration3
692
+ } from "@omnidev-ai/core";
646
693
  import { buildCommand as buildCommand4, buildRouteMap as buildRouteMap2 } from "@stricli/core";
647
694
  var listCommand2 = buildCommand4({
648
695
  docs: {
@@ -690,7 +737,7 @@ async function runProfileList() {
690
737
  console.log(" Run: omnidev init");
691
738
  process.exit(1);
692
739
  }
693
- const config = await loadConfig();
740
+ const config = await loadConfig2();
694
741
  const activeProfile = await getActiveProfile() ?? config.active_profile ?? "default";
695
742
  const profiles = config.profiles ?? {};
696
743
  const profileNames = Object.keys(profiles);
@@ -730,7 +777,7 @@ async function runProfileSet(profileName) {
730
777
  console.log(" Run: omnidev init");
731
778
  process.exit(1);
732
779
  }
733
- const config = await loadConfig();
780
+ const config = await loadConfig2();
734
781
  const profiles = config.profiles ?? {};
735
782
  if (!(profileName in profiles)) {
736
783
  console.log(`✗ Profile "${profileName}" not found in omni.toml`);
@@ -746,11 +793,11 @@ async function runProfileSet(profileName) {
746
793
  }
747
794
  process.exit(1);
748
795
  }
749
- await setActiveProfile(profileName);
796
+ await setActiveProfile2(profileName);
750
797
  console.log(`✓ Active profile set to: ${profileName}`);
751
798
  console.log("");
752
799
  const adapters = await getEnabledAdapters();
753
- await syncAgentConfiguration({ adapters });
800
+ await syncAgentConfiguration3({ adapters });
754
801
  } catch (error) {
755
802
  console.error("✗ Error setting profile:", error);
756
803
  process.exit(1);
@@ -758,9 +805,15 @@ async function runProfileSet(profileName) {
758
805
  }
759
806
 
760
807
  // src/commands/provider.ts
808
+ import {
809
+ disableProvider,
810
+ enableProvider,
811
+ readEnabledProviders as readEnabledProviders2,
812
+ syncAgentConfiguration as syncAgentConfiguration4
813
+ } from "@omnidev-ai/core";
761
814
  import { buildCommand as buildCommand5, buildRouteMap as buildRouteMap3 } from "@stricli/core";
762
815
  async function runProviderList() {
763
- const enabled = await readEnabledProviders();
816
+ const enabled = await readEnabledProviders2();
764
817
  const allAdapters = getAllAdapters();
765
818
  console.log("Available providers:");
766
819
  console.log("");
@@ -791,7 +844,7 @@ async function runProviderEnable(_flags, providerId) {
791
844
  await enableProvider(providerId);
792
845
  console.log(`✓ Enabled provider: ${adapter.displayName}`);
793
846
  const enabledAdapters = await getEnabledAdapters();
794
- await syncAgentConfiguration({ silent: false, adapters: enabledAdapters });
847
+ await syncAgentConfiguration4({ silent: false, adapters: enabledAdapters });
795
848
  }
796
849
  async function runProviderDisable(_flags, providerId) {
797
850
  if (!providerId) {
@@ -872,6 +925,7 @@ var providerRoutes = buildRouteMap3({
872
925
  });
873
926
 
874
927
  // src/commands/sync.ts
928
+ import { getActiveProfile as getActiveProfile2, loadConfig as loadConfig3, syncAgentConfiguration as syncAgentConfiguration5 } from "@omnidev-ai/core";
875
929
  import { buildCommand as buildCommand6 } from "@stricli/core";
876
930
  var syncCommand = buildCommand6({
877
931
  docs: {
@@ -886,10 +940,10 @@ async function runSync() {
886
940
  console.log("Syncing OmniDev configuration...");
887
941
  console.log("");
888
942
  try {
889
- const config = await loadConfig();
890
- const activeProfile = await getActiveProfile() ?? config.active_profile ?? "default";
943
+ const config = await loadConfig3();
944
+ const activeProfile = await getActiveProfile2() ?? config.active_profile ?? "default";
891
945
  const adapters = await getEnabledAdapters();
892
- const result = await syncAgentConfiguration({ silent: false, adapters });
946
+ const result = await syncAgentConfiguration5({ silent: false, adapters });
893
947
  console.log("");
894
948
  console.log("✓ Sync completed successfully!");
895
949
  console.log("");
@@ -912,7 +966,9 @@ async function runSync() {
912
966
  process.exit(1);
913
967
  }
914
968
  }
969
+
915
970
  // src/lib/dynamic-app.ts
971
+ import { debug } from "@omnidev-ai/core";
916
972
  async function buildDynamicApp() {
917
973
  const routes = {
918
974
  init: initCommand,
@@ -959,7 +1015,7 @@ async function buildDynamicApp() {
959
1015
  return app;
960
1016
  }
961
1017
  async function loadCapabilityCommands() {
962
- const { buildCapabilityRegistry, installCapabilityDependencies } = await import("./shared/chunk-7txw9v1e.js");
1018
+ const { buildCapabilityRegistry, installCapabilityDependencies } = await import("@omnidev-ai/core");
963
1019
  await installCapabilityDependencies(true);
964
1020
  const registry = await buildCapabilityRegistry();
965
1021
  const capabilities = registry.getAllCapabilities();
@@ -1025,8 +1081,9 @@ async function loadCapabilityExport(capability) {
1025
1081
  }
1026
1082
 
1027
1083
  // src/index.ts
1084
+ import { debug as debug2 } from "@omnidev-ai/core";
1028
1085
  var app = await buildDynamicApp();
1029
- debug("CLI startup", {
1086
+ debug2("CLI startup", {
1030
1087
  arguments: process.argv.slice(2),
1031
1088
  cwd: process.cwd()
1032
1089
  });
package/package.json CHANGED
@@ -1,37 +1,38 @@
1
1
  {
2
- "name": "@omnidev-ai/cli",
3
- "version": "0.5.1",
4
- "type": "module",
5
- "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/Nikola-Milovic/omnidev.git",
9
- "directory": "packages/cli"
10
- },
11
- "exports": {
12
- ".": "./dist/index.js"
13
- },
14
- "bin": {
15
- "omnidev": "./dist/index.js"
16
- },
17
- "files": [
18
- "dist",
19
- "README.md"
20
- ],
21
- "publishConfig": {
22
- "access": "public",
23
- "registry": "https://registry.npmjs.org"
24
- },
25
- "scripts": {
26
- "typecheck": "tsc --noEmit",
27
- "build": "bunup"
28
- },
29
- "dependencies": {
30
- "@inquirer/prompts": "^8.1.0",
31
- "@stricli/core": "^1.2.5"
32
- },
33
- "devDependencies": {
34
- "@omnidev-ai/adapters": "0.0.1",
35
- "bunup": "^0.16.20"
36
- }
2
+ "name": "@omnidev-ai/cli",
3
+ "version": "0.5.3",
4
+ "type": "module",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/Nikola-Milovic/omnidev.git",
9
+ "directory": "packages/cli"
10
+ },
11
+ "exports": {
12
+ ".": "./dist/index.js"
13
+ },
14
+ "bin": {
15
+ "omnidev": "./dist/index.js"
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "registry": "https://registry.npmjs.org"
24
+ },
25
+ "scripts": {
26
+ "typecheck": "tsc --noEmit",
27
+ "build": "bunup"
28
+ },
29
+ "dependencies": {
30
+ "@inquirer/prompts": "^8.1.0",
31
+ "@omnidev-ai/core": "0.4.0",
32
+ "@stricli/core": "^1.2.5"
33
+ },
34
+ "devDependencies": {
35
+ "@omnidev-ai/adapters": "0.0.1",
36
+ "bunup": "^0.16.20"
37
+ }
37
38
  }