@kisev/agentomatic 11.0.2-dev.87.g5a92e74c6754 → 11.0.2-dev.91.gfa6af2f8ec2b

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/cli.js CHANGED
@@ -321,6 +321,7 @@ function contextualHelp(arguments_) {
321
321
  "--fragments <list|none>",
322
322
  `Select fragments: ${CONFIG_FRAGMENTS.map((item) => item.name).join(", ")}.`,
323
323
  ],
324
+ ["--no-dependency", "Skip provisioning the persistent npm dependency for the core plugin."],
324
325
  ["--json", "Emit stable machine-readable output."],
325
326
  ["--help", "Show this command help and exit."],
326
327
  ], [
@@ -1210,12 +1211,13 @@ async function run(arguments_) {
1210
1211
  }));
1211
1212
  }
1212
1213
  else {
1213
- const preview = await previewConfigSetup(selection, options.scope);
1214
+ const preview = await previewConfigSetup(selection, options.scope, process.cwd(), undefined, !options.noDependency);
1214
1215
  if (!options.yes) {
1215
1216
  process.stdout.write(renderConfigSetup(preview, { applied: false }));
1216
1217
  await confirmSummary();
1217
1218
  }
1218
1219
  const plan = await applyConfigSetup(selection, options.scope, process.cwd(), undefined, {
1220
+ provisionDependency: !options.noDependency,
1219
1221
  receipt: preview.receipt,
1220
1222
  });
1221
1223
  if (options.json)
package/dist/doctor.js CHANGED
@@ -126,7 +126,8 @@ function redactedConfig(value) {
126
126
  })
127
127
  : [];
128
128
  const knownPlugins = new Set([packageName, ...CATALOG.plugins]);
129
- const plugins = rawPlugins.filter((plugin) => knownPlugins.has(plugin));
129
+ const normalizePlugin = (plugin) => plugin === packageName || plugin.startsWith(`${packageName}@`) ? packageName : plugin;
130
+ const plugins = rawPlugins.map(normalizePlugin).filter((plugin) => knownPlugins.has(plugin));
130
131
  const enabled = plugins.filter((plugin) => plugin === packageName ||
131
132
  CATALOG.plugins.includes(plugin));
132
133
  return {
@@ -1,4 +1,5 @@
1
1
  import { JsoncError } from "./jsonc.js";
2
+ import { requirePackageVersion } from "./package-metadata.js";
2
3
  const effects = new Set(["allow", "ask", "deny"]);
3
4
  const aliases = {
4
5
  bash: "shell",
@@ -115,10 +116,19 @@ function plugins(value, legacy) {
115
116
  throw new JsoncError("conflict", "Invalid plugin entry; use a package string or V2 package/options object");
116
117
  });
117
118
  }
119
+ const OUR_PACKAGE = /^@kisev\/(?:agentomatic|skills-opencode)(?:@|$)/;
120
+ function ourEntry(entry) {
121
+ if (typeof entry === "string")
122
+ return OUR_PACKAGE.test(entry);
123
+ return object(entry) && typeof entry.package === "string" && OUR_PACKAGE.test(entry.package);
124
+ }
118
125
  export function corePluginEdits(config) {
119
126
  const edits = [
120
127
  { kind: "set-if-absent", path: ["$schema"], value: "https://opencode.ai/config.json" },
121
128
  ];
129
+ // V2 resolves a bare package name through the registry "latest" dist-tag, which
130
+ // can differ from the installed build; pin the exact running version instead.
131
+ const pinned = `@kisev/agentomatic@${requirePackageVersion()}`;
122
132
  const native = "plugins" in config ? plugins(config.plugins, false) : undefined;
123
133
  const legacy = "plugin" in config ? plugins(config.plugin, true) : undefined;
124
134
  if (native && legacy) {
@@ -128,9 +138,21 @@ export function corePluginEdits(config) {
128
138
  }
129
139
  else if (legacy)
130
140
  edits.push({ kind: "rename-key", path: ["plugin"], to: "plugins" });
131
- const entries = native ?? legacy ?? [];
132
- if (!entries.some((entry) => entry === "@kisev/agentomatic" || (object(entry) && entry.package === "@kisev/agentomatic")))
133
- entries.push("@kisev/agentomatic");
141
+ const normalized = [];
142
+ let pinnedPresent = false;
143
+ for (const entry of native ?? legacy ?? []) {
144
+ if (!ourEntry(entry)) {
145
+ normalized.push(entry);
146
+ continue;
147
+ }
148
+ if (pinnedPresent)
149
+ continue;
150
+ normalized.push(object(entry) ? { ...entry, package: pinned } : pinned);
151
+ pinnedPresent = true;
152
+ }
153
+ const entries = normalized;
154
+ if (!pinnedPresent)
155
+ entries.push(pinned);
134
156
  edits.push({ kind: "set-value", path: ["plugins"], value: entries });
135
157
  return edits;
136
158
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kisev/agentomatic",
3
- "version": "11.0.2-dev.87.g5a92e74c6754",
3
+ "version": "11.0.2-dev.91.gfa6af2f8ec2b",
4
4
  "description": "OpenCode integration and opt-in installer for portable Agent Skills.",
5
5
  "homepage": "https://github.com/kisev/skills#readme",
6
6
  "bugs": {
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@clack/prompts": "^1.8.1",
49
- "@kisev/safe-fs": "1.0.0-dev.87.g5a92e74c6754",
49
+ "@kisev/safe-fs": "1.0.0-dev.91.gfa6af2f8ec2b",
50
50
  "commander": "15.0.0",
51
51
  "zod": "4.1.8"
52
52
  },