opencode-rules-md 0.8.5 → 0.8.6

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.
@@ -48,6 +48,15 @@ export declare function resolveConfigPath(fs: CliFs, env: NodeJS.ProcessEnv, bas
48
48
  * to a flat string[].
49
49
  */
50
50
  export declare function normalizePlugin(raw: unknown): string[];
51
+ /**
52
+ * Read the installed plugin list from a loaded config, honoring both the
53
+ * modern `plugin` field (singular — what OpenCode actually uses) and the
54
+ * legacy `plugins` field (plural — written by older versions of `omd`).
55
+ *
56
+ * The modern field wins when both are present, matching OpenCode's own
57
+ * resolution order.
58
+ */
59
+ export declare function readInstalledPlugins(config: GlobalConfig): string[];
51
60
  /**
52
61
  * Returns true if entry is the plugin named name (with optional @version).
53
62
  */
@@ -67,6 +76,8 @@ export interface GlobalConfig {
67
76
  exists: boolean;
68
77
  data: Record<string, unknown>;
69
78
  }
79
+ /** Backwards-compatible alias used by update.ts / status.ts. */
80
+ export type LoadedConfig = GlobalConfig;
70
81
  /**
71
82
  * Load and parse a global config file.
72
83
  * Returns { path, exists, data }. data is {} when file absent or empty.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,eAAO,MAAM,WAAW,EAAG,mBAA4B,CAAC;AACxD,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAMjD,MAAM,WAAW,KAAK;IACpB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyFnE;AAgDD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,GAAE,MAAmB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAanC;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAmBtD;AAUD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAKhF;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,MAAoB,GACzB,MAAM,EAAE,CAiBV;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAKvD;AAMD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,GAAE,MAAmB,GAC5B,YAAY,CAiBX;AAiBJ;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkB5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAqB,GAC3B,IAAI,CA2BN;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA+B9E"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,eAAO,MAAM,WAAW,EAAG,mBAA4B,CAAC;AACxD,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAMjD,MAAM,WAAW,KAAK;IACpB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyFnE;AAgDD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,GAAE,MAAmB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAanC;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAmBtD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAMnE;AAUD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAKhF;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,MAAoB,GACzB,MAAM,EAAE,CAiBV;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAKvD;AAMD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,gEAAgE;AAChE,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,GAAE,MAAmB,GAC5B,YAAY,CAiBX;AAiBJ;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkB5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAqB,GAC3B,IAAI,CA2BN;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA+B9E"}
@@ -196,6 +196,21 @@ export function normalizePlugin(raw) {
196
196
  }
197
197
  return [];
198
198
  }
199
+ /**
200
+ * Read the installed plugin list from a loaded config, honoring both the
201
+ * modern `plugin` field (singular — what OpenCode actually uses) and the
202
+ * legacy `plugins` field (plural — written by older versions of `omd`).
203
+ *
204
+ * The modern field wins when both are present, matching OpenCode's own
205
+ * resolution order.
206
+ */
207
+ export function readInstalledPlugins(config) {
208
+ const modern = config.data['plugin'];
209
+ if (modern !== undefined) {
210
+ return normalizePlugin(modern);
211
+ }
212
+ return normalizePlugin(config.data['plugins']);
213
+ }
199
214
  // ─────────────────────────────────────────────────────────────────────────────
200
215
  // matchesPlugin
201
216
  // ─────────────────────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/config.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,50 @@
1
- import { type CliFs } from './config.js';
2
- export declare const CONFIG_BASENAMES: readonly ["opencode", "tui"];
1
+ import { spawnOpencodePlugin } from './spawn.js';
2
+ import type { CliFs } from './config.js';
3
+ /** Default base specifier used when the caller does not pin a version. */
4
+ export declare const DEFAULT_SPECIFIER: "opencode-rules-md";
3
5
  export interface InstallOptions {
6
+ /** Pin to a specific version, e.g. `"2.0.0"`. Falsy means "use the bare specifier". */
4
7
  version?: string;
8
+ /** Run the full pipeline without spawning the child process. */
5
9
  dryRun?: boolean;
10
+ /** Reserved for future prompts — currently a no-op. */
6
11
  yes?: boolean;
12
+ /** Test hook for resolving the latest version (kept for API compatibility). */
13
+ latestVersion?: string | undefined;
7
14
  /**
8
- * Optional injection point for tests: pretend the npm registry returned this
9
- * version when the requested version is "latest" or unset. When omitted,
10
- * `fetchLatestVersion()` is called against the real npm registry.
15
+ * Test seam: replaces spawnOpencodePlugin. Defaults to the real CLI wrapper.
16
+ * Pass an object with a compatible signature to assert on calls.
11
17
  */
12
- latestVersion?: string | undefined;
13
- }
14
- export interface InstallResultPerFile {
15
- path: string;
16
- status: 'wrote' | 'skipped' | 'error';
17
- backup: string | null;
18
+ spawn?: typeof spawnOpencodePlugin;
18
19
  }
19
20
  export interface InstallResult {
21
+ /** Whether we actually invoked the opencode CLI. */
20
22
  status: 'wrote' | 'skipped';
21
- results: InstallResultPerFile[];
22
- /** True when a stale local cache directory was purged after writing. */
23
- purged?: boolean;
23
+ /** The specifier passed to `opencode plugin`. Useful for logging. */
24
+ specifier: string;
24
25
  }
25
26
  /**
26
- * Install opencode-rules-md into both opencode.json and tui.json configs.
27
+ * Build the specifier to pass to `opencode plugin`.
28
+ *
29
+ * Rules:
30
+ * - Empty / unset version → bare `opencode-rules-md` (lets OpenCode refresh).
31
+ * - Any other value → `opencode-rules-md@<version>` (pins the install).
32
+ */
33
+ export declare function buildSpecifier(version: string | undefined): string;
34
+ /**
35
+ * Install opencode-rules-md via OpenCode's own plugin command.
27
36
  *
28
37
  * Options:
29
- * version — npm version specifier (default: latest from registry)
30
- * dryRun — run full pipeline without writing to disk
31
- * yes — accepted for future prompts, no-op here
32
- * latestVersion — test hook for the resolved latest version
38
+ * version — optional npm version pin
39
+ * dryRun — print the would-be command and skip the spawn
40
+ * yes — reserved
41
+ *
42
+ * Returns:
43
+ * { status: 'skipped', specifier } when dryRun is true
44
+ * { status: 'wrote', specifier } on a clean exit
45
+ *
46
+ * Throws on non-zero exit, so the caller (main.ts) can map it to a CLI
47
+ * failure without us swallowing the error.
33
48
  */
34
- export declare const runInstall: (opts: InstallOptions | undefined, fs: CliFs, env: NodeJS.ProcessEnv) => Promise<InstallResult>;
49
+ export declare const runInstall: (opts?: InstallOptions, _fs?: CliFs, env?: NodeJS.ProcessEnv) => Promise<InstallResult>;
35
50
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAYA,OAAO,EAQL,KAAK,KAAK,EACX,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,gBAAgB,8BAA+B,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA8ED;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,cAAc,YAAK,EACzB,IAAI,KAAK,EACT,KAAK,MAAM,CAAC,UAAU,KACrB,OAAO,CAAC,aAAa,CAqEvB,CAAC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,qBAAc,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMlE;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,GACrB,OAAM,cAAmB,EAIzB,MAAM,KAAK,EACX,MAAM,MAAM,CAAC,UAAU,KACtB,OAAO,CAAC,aAAa,CAmBvB,CAAC"}
@@ -1,148 +1,67 @@
1
1
  // ---------------------------------------------------------------------------
2
2
  // src/cli/install.ts — `omd install` command implementation.
3
3
  //
4
- // Dual-config install loop: iterates over ["opencode", "tui"], loads each
5
- // config, normalizes + deduplicates the plugin list, appends the fresh
6
- // specifier, and writes atomically with a timestamped backup. When the version
7
- // is omitted or "latest", the latest published npm version is resolved so the
8
- // written specifier matches the concrete version (important for accurate
9
- // update checks) and any stale local cache can be purged.
4
+ // `omd install` is a thin convenience wrapper around OpenCode's own
5
+ // `opencode plugin <specifier> --global` command. OpenCode handles the
6
+ // correct config field name (`plugin`, singular), manifest reading, and
7
+ // cache placement under ~/.cache/opencode/packages/. We no longer edit
8
+ // opencode.json or tui.json directly duplicating that logic was the
9
+ // source of the original bug (we wrote `plugins` plural, which OpenCode
10
+ // silently ignored).
11
+ //
12
+ // The bare specifier `opencode-rules-md` (no `@latest`) is intentional:
13
+ // it lets OpenCode resolve and refresh the package on every invocation
14
+ // without us pinning to a stale version literal.
10
15
  // ---------------------------------------------------------------------------
11
- import { dirname, join } from 'path';
12
- import { PLUGIN_NAME, loadGlobalConfig, matchesPlugin, normalizePlugin, backupIfWritable, rotateBackups, writeAtomically, } from './config.js';
13
- import { fetchLatestVersion } from './registry.js';
14
- import { purgeDirectory, resolveCachePath } from './update.js';
15
- export const CONFIG_BASENAMES = ['opencode', 'tui'];
16
+ import { spawnOpencodePlugin } from './spawn.js';
17
+ import { PLUGIN_NAME } from './config.js';
18
+ /** Default base specifier used when the caller does not pin a version. */
19
+ export const DEFAULT_SPECIFIER = PLUGIN_NAME;
16
20
  /**
17
- * Resolve the concrete version to write.
21
+ * Build the specifier to pass to `opencode plugin`.
18
22
  *
19
- * - If the user supplied an explicit version (not "latest" and not empty), use
20
- * it unchanged.
21
- * - Otherwise, ask the npm registry for the latest published version.
22
- * - If the registry is unreachable, fall back to the literal "@latest" tag so
23
- * the install command never hard-fails due to network issues. This preserves
24
- * the previous behavior while still allowing the cache check to compare when
25
- * a concrete version is known.
26
- */
27
- async function resolveVersion(opts) {
28
- const raw = opts.version?.trim() ?? '';
29
- const wantsLatest = raw === '' || raw === 'latest';
30
- if (!wantsLatest) {
31
- return raw;
32
- }
33
- // Tests can short-circuit the network call via latestVersion.
34
- if (opts.latestVersion !== undefined) {
35
- return opts.latestVersion;
36
- }
37
- const latest = await fetchLatestVersion();
38
- return latest ?? 'latest';
39
- }
40
- /**
41
- * Read the version field from a cached package.json, if present.
42
- * Returns null when the file is missing or unreadable.
23
+ * Rules:
24
+ * - Empty / unset version → bare `opencode-rules-md` (lets OpenCode refresh).
25
+ * - Any other value → `opencode-rules-md@<version>` (pins the install).
43
26
  */
44
- function readCacheVersion(fs, cachePath) {
45
- const pkgPath = join(cachePath, 'package.json');
46
- try {
47
- if (!fs.existsSync(pkgPath)) {
48
- return null;
49
- }
50
- const pkg = JSON.parse(fs.readFileSync(pkgPath));
51
- return typeof pkg.version === 'string' ? pkg.version : null;
52
- }
53
- catch {
54
- // A broken cache is treated as "version unknown" so it gets purged.
55
- return null;
27
+ export function buildSpecifier(version) {
28
+ const trimmed = version?.trim() ?? '';
29
+ if (!trimmed || trimmed === 'latest') {
30
+ return DEFAULT_SPECIFIER;
56
31
  }
32
+ return `${PLUGIN_NAME}@${trimmed}`;
57
33
  }
58
34
  /**
59
- * Purge the local cache directory when it is stale relative to the version we
60
- * just installed. If the cache version cannot be determined, we err on the
61
- * side of purging so the next npx invocation fetches a fresh copy.
62
- */
63
- function purgeCacheIfStale(fs, env, resolvedVersion) {
64
- // The literal "latest" tag is not a comparable version; we only purge when
65
- // we have a concrete resolved version to compare against.
66
- if (resolvedVersion === 'latest') {
67
- return false;
68
- }
69
- const cachePath = resolveCachePath(env);
70
- if (!fs.existsSync(cachePath)) {
71
- return false;
72
- }
73
- const cacheVersion = readCacheVersion(fs, cachePath);
74
- if (cacheVersion === null || cacheVersion !== resolvedVersion) {
75
- purgeDirectory(fs, cachePath);
76
- return true;
77
- }
78
- return false;
79
- }
80
- /**
81
- * Install opencode-rules-md into both opencode.json and tui.json configs.
35
+ * Install opencode-rules-md via OpenCode's own plugin command.
82
36
  *
83
37
  * Options:
84
- * version — npm version specifier (default: latest from registry)
85
- * dryRun — run full pipeline without writing to disk
86
- * yes — accepted for future prompts, no-op here
87
- * latestVersion — test hook for the resolved latest version
38
+ * version — optional npm version pin
39
+ * dryRun — print the would-be command and skip the spawn
40
+ * yes — reserved
41
+ *
42
+ * Returns:
43
+ * { status: 'skipped', specifier } when dryRun is true
44
+ * { status: 'wrote', specifier } on a clean exit
45
+ *
46
+ * Throws on non-zero exit, so the caller (main.ts) can map it to a CLI
47
+ * failure without us swallowing the error.
88
48
  */
89
- export const runInstall = async (opts = {}, fs, env) => {
90
- const resolvedVersion = await resolveVersion(opts);
91
- const freshEntry = `${PLUGIN_NAME}@${resolvedVersion}`;
92
- const results = [];
93
- let anyProcessed = false;
94
- for (const basename of CONFIG_BASENAMES) {
95
- const loaded = loadGlobalConfig(fs, env, basename);
96
- const plugins = normalizePlugin(loaded.data['plugins']);
97
- // Find existing entry for this plugin
98
- const existingEntry = plugins.find(p => matchesPlugin(p));
99
- // No-op if the same specifier is already installed
100
- if (existingEntry === freshEntry) {
101
- results.push({ path: loaded.path, status: 'skipped', backup: null });
102
- continue;
103
- }
104
- anyProcessed = true;
105
- // Build the new plugin list: remove all matching entries, append fresh specifier.
106
- // Existing non-matching plugins are preserved in their original order.
107
- const withoutStale = plugins.filter(p => !matchesPlugin(p));
108
- const newPlugins = [...withoutStale, freshEntry];
109
- const newData = { ...loaded.data, plugins: newPlugins };
110
- const newContent = JSON.stringify(newData, null, 2) + '\n';
111
- if (opts.dryRun) {
112
- results.push({ path: loaded.path, status: 'wrote', backup: null });
113
- continue;
114
- }
115
- // Backup the existing file if it exists
116
- let backup;
117
- if (loaded.exists) {
118
- backup = backupIfWritable(fs, loaded.path);
119
- if (backup !== undefined) {
120
- const dir = dirname(loaded.path);
121
- const segs = loaded.path.replace(/\\/g, '/').split('/');
122
- const base = segs[segs.length - 1] ?? loaded.path;
123
- const dot = base.lastIndexOf('.');
124
- const name = dot >= 0 ? base.slice(0, dot) : base;
125
- rotateBackups(fs, dir, name, 3);
126
- }
127
- }
128
- writeAtomically(fs, loaded.path, newContent);
129
- results.push({
130
- path: loaded.path,
131
- status: 'wrote',
132
- backup: backup ?? null,
133
- });
49
+ export const runInstall = async (opts = {},
50
+ // The next two parameters are kept for API compatibility with main.ts.
51
+ // `omd install` no longer reads or writes the user's config files directly,
52
+ // so fs/env are no longer consulted here.
53
+ _fs, env) => {
54
+ const specifier = buildSpecifier(opts.version);
55
+ const spawnFn = opts.spawn ?? spawnOpencodePlugin;
56
+ const targetEnv = env ?? process.env;
57
+ if (opts.dryRun) {
58
+ console.log(`omd: would run: opencode plugin ${specifier} --global`);
59
+ return { status: 'skipped', specifier };
134
60
  }
135
- // After writing the configs, purge a stale local cache so the next run of the
136
- // plugin starts from the version we just registered. In dry-run mode we
137
- // never touch the filesystem.
138
- let purged = false;
139
- if (!opts.dryRun) {
140
- purged = purgeCacheIfStale(fs, env, resolvedVersion);
61
+ const result = await spawnFn([specifier, '--global'], { env: targetEnv, stdio: 'inherit' });
62
+ if ((result.status ?? 0) !== 0) {
63
+ throw new Error(`opencode plugin ${specifier} --global exited with status ${String(result.status)}`);
141
64
  }
142
- return {
143
- status: anyProcessed ? 'wrote' : 'skipped',
144
- results,
145
- purged,
146
- };
65
+ return { status: 'wrote', specifier };
147
66
  };
148
67
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6DAA6D;AAC7D,EAAE;AACF,oEAAoE;AACpE,uEAAuE;AACvE,wEAAwE;AACxE,uEAAuE;AACvE,sEAAsE;AACtE,wEAAwE;AACxE,qBAAqB;AACrB,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,iDAAiD;AACjD,8EAA8E;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAyB7C;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAA2B;IACxD,MAAM,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,OAAuB,EAAE;AACzB,uEAAuE;AACvE,4EAA4E;AAC5E,0CAA0C;AAC1C,GAAW,EACX,GAAuB,EACC,EAAE;IAC1B,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAErC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,mCAAmC,SAAS,WAAW,CAAC,CAAC;QACrE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAE5F,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,mBAAmB,SAAS,gCAAgC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC,CAAC"}
@@ -9,6 +9,11 @@ export interface MainOptions {
9
9
  * version when "latest" is requested by install or update.
10
10
  */
11
11
  latestVersion?: string;
12
+ /**
13
+ * Test seam: replace the `spawnOpencodePlugin` function. Lets tests verify
14
+ * which CLI args the installer would have invoked without touching disk.
15
+ */
16
+ spawn?: typeof import('./spawn.js').spawnOpencodePlugin;
12
17
  }
13
18
  export declare const runMain: (opts: MainOptions, argv: string[]) => Promise<number>;
14
19
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAuHzC,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,OAAO,GAClB,MAAM,WAAW,EACjB,MAAM,MAAM,EAAE,KACb,OAAO,CAAC,MAAM,CA4IhB,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAuHzC,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,YAAY,EAAE,mBAAmB,CAAC;CACzD;AAED,eAAO,MAAM,OAAO,GAClB,MAAM,WAAW,EACjB,MAAM,MAAM,EAAE,KACb,OAAO,CAAC,MAAM,CAgJhB,CAAC"}
@@ -18,17 +18,17 @@ Usage:
18
18
  omd [command] [options]
19
19
 
20
20
  Commands:
21
- install Register opencode-rules-md in both opencode.json and tui.json
22
- uninstall Remove opencode-rules-md from both configs
23
- status Show installed plugin state for each config
24
- doctor Run health checks for the plugin environment
25
- update Check for new versions and purge stale cache
21
+ install Register opencode-rules-md via OpenCode's plugin command
22
+ uninstall Remove opencode-rules-md from both configs and cache
23
+ status Show installed plugin state for each config
24
+ doctor Run health checks for the plugin environment
25
+ update Check for new versions and refresh the install via OpenCode
26
26
 
27
27
  Options:
28
28
  --dry-run Show what would be changed without writing
29
29
  --version Pin to a specific version (install only)
30
30
  --latest Use the latest version (install only)
31
- --purge Also remove ~/.cache/opencode/node_modules/opencode-rules-md (uninstall only)
31
+ --purge Also remove ~/.cache/opencode/packages/opencode-rules-md* (uninstall only)
32
32
  --yes Accept all prompts automatically
33
33
 
34
34
  Examples:
@@ -129,12 +129,12 @@ export const runMain = async (opts, argv) => {
129
129
  // Remaining argv for parseArgs to extract options
130
130
  const remaining = argv.slice(argv.indexOf('install') + 1 || argv.indexOf(resolvedCommand) + 1);
131
131
  const { values } = parseArgs({
132
- argv: remaining,
132
+ args: remaining,
133
133
  allowPositionals: true,
134
134
  strict: false,
135
135
  options: {
136
136
  'dry-run': { type: 'boolean', default: false },
137
- version: { type: 'string', default: undefined },
137
+ version: { type: 'string', default: '' },
138
138
  latest: { type: 'boolean', default: false },
139
139
  yes: { type: 'boolean', default: false },
140
140
  },
@@ -144,29 +144,20 @@ export const runMain = async (opts, argv) => {
144
144
  dryRun: Boolean(values['dry-run']),
145
145
  yes: Boolean(values['yes']),
146
146
  latestVersion: opts.latestVersion,
147
+ ...(opts.spawn ? { spawn: opts.spawn } : {}),
147
148
  };
148
149
  const result = await runInstall(installOpts, fs, env);
149
150
  if (result.status === 'skipped') {
150
- stdout('omd: already installed (no changes needed)');
151
+ stdout(`omd: install skipped (dry-run) would run: opencode plugin ${result.specifier} --global`);
151
152
  return 0;
152
153
  }
153
- for (const r of result.results) {
154
- if (r.status === 'wrote') {
155
- stdout(`omd: registered in ${r.path}`);
156
- }
157
- else if (r.status === 'skipped') {
158
- stdout(`omd: ${r.path} — already up to date`);
159
- }
160
- }
161
- if (result.purged) {
162
- stdout('omd: cache purged');
163
- }
154
+ stdout(`omd: installed via opencode plugin ${result.specifier} --global`);
164
155
  return 0;
165
156
  }
166
157
  case 'uninstall': {
167
158
  const remaining = argv.slice(argv.indexOf(resolvedCommand) + 1);
168
159
  const { values } = parseArgs({
169
- argv: remaining,
160
+ args: remaining,
170
161
  allowPositionals: true,
171
162
  strict: false,
172
163
  options: {
@@ -199,7 +190,7 @@ export const runMain = async (opts, argv) => {
199
190
  return 0;
200
191
  }
201
192
  case 'status': {
202
- await runStatus(fs, env, stdout);
193
+ await runStatus(fs, env, stdout, opts.latestVersion !== undefined ? { latestVersion: opts.latestVersion } : {});
203
194
  return 0;
204
195
  }
205
196
  case 'doctor': {
@@ -209,7 +200,7 @@ export const runMain = async (opts, argv) => {
209
200
  case 'update': {
210
201
  const remaining = argv.slice(argv.indexOf(resolvedCommand) + 1);
211
202
  const { values } = parseArgs({
212
- argv: remaining,
203
+ args: remaining,
213
204
  allowPositionals: true,
214
205
  strict: false,
215
206
  options: {
@@ -217,9 +208,21 @@ export const runMain = async (opts, argv) => {
217
208
  },
218
209
  });
219
210
  const dryRun = Boolean(values['dry-run']);
220
- const updateResult = await runUpdate(fs, env, stdout, stderr, { dryRun, latestVersion: opts.latestVersion });
221
- if (updateResult.status === 'current') {
222
- stdout('omd: already at latest version');
211
+ const updateResult = await runUpdate(fs, env, stdout, stderr, {
212
+ dryRun,
213
+ latestVersion: opts.latestVersion,
214
+ ...(opts.spawn ? { spawn: opts.spawn } : {}),
215
+ });
216
+ switch (updateResult.status) {
217
+ case 'current':
218
+ stdout('omd: already at latest version');
219
+ break;
220
+ case 'unreachable':
221
+ stderr('omd: could not reach npm registry — try again later');
222
+ return 1;
223
+ case 'stale':
224
+ // runUpdate already logged the purge / reinstall outcome.
225
+ break;
223
226
  }
224
227
  return 0;
225
228
  }
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export interface SpawnResult {
2
+ status: number | null;
3
+ stdout: string;
4
+ stderr: string;
5
+ }
6
+ export interface SpawnOptions {
7
+ env: NodeJS.ProcessEnv;
8
+ stdio?: 'pipe' | 'inherit';
9
+ }
10
+ export type SpawnFn = (command: string, args: string[], options: SpawnOptions) => SpawnResult;
11
+ export interface SpawnOpencodePluginOptions {
12
+ /** Injected spawn function for tests. Defaults to node:child_process.spawnSync. */
13
+ spawn?: SpawnFn;
14
+ /** Environment variables passed to the child process. Defaults to process.env. */
15
+ env?: NodeJS.ProcessEnv;
16
+ /** stdio mode for the child process. 'inherit' forwards output to the parent. */
17
+ stdio?: 'pipe' | 'inherit';
18
+ }
19
+ /**
20
+ * Run `opencode plugin <args...>` and return the exit status plus captured
21
+ * stdout/stderr (only populated when `stdio: 'pipe'`).
22
+ *
23
+ * The default implementation uses spawnSync so the call blocks until the
24
+ * child process exits. This keeps `omd install` simple — the user's shell
25
+ * stays put until registration completes, then returns control with a
26
+ * non-zero status on failure.
27
+ */
28
+ export declare function spawnOpencodePlugin(args: string[], opts?: SpawnOpencodePluginOptions): Promise<SpawnResult>;
29
+ //# sourceMappingURL=spawn.d.ts.map