agentwheel 0.19.3 → 0.19.4

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
@@ -15076,7 +15076,7 @@ program.command("sync", { hidden: true }).argument("[name-or-source]", "configur
15076
15076
  console.error("warning: 'agentwheel sync' is deprecated and will be removed in 0.10. Use 'agentwheel install'.");
15077
15077
  await runInstallCommand(source, options, { apply: !options.dryRun });
15078
15078
  });
15079
- program.command("update").description("re-resolve tracking packages, then apply the result").argument("[name]", "configured package name or source to update").option("--adapter <adapter>", "built-in adapter or comma-separated adapters").option("-i, --installation-type <type>", "installation type (for example local or user)").option("--user", "use the user workspace", false).option("--local", "use the nearest local workspace", false).option("--fleet <id>", "use one registered named fleet").option("-t, --target-root <path>", "workspace root").option("--agent <name>", "named agent from merged config").option("--all", "run for every configured agent", false).option("--profile <name>", "workspace runtime profile").option("--dry-run", "show plans without writing", false).option("--force-drift", "replace drifted managed artifacts", false).option("--force-foreign-state", "plan even when another workspace owns install state at the same paths", false).option("--force-conflict", "adopt unmanaged destinations when their content already matches the desired artifact", false).option("--replace-conflict", "replace unmanaged destinations even when their content differs", false).option("--execute-plugins", "execute semantic plugin installs", false).option("--reload-runtimes", "run configured runtime reload commands after executed semantic plugin changes", false).option("--restart-runtimes", "alias for --reload-runtimes", false).option("--allow-adapter-code", "allow loading local adapter code from configured packages", false).option("--select <type/name>", "temporarily select an artifact by type/name (repeatable or comma-separated)", collectSelectOption, []).option("--skill <name>", "temporarily select a skill by name (repeatable or comma-separated)", collectSkillOption, []).option("--dependency <name-or-source>", "update one tracking dependency while keeping unrelated graph nodes locked (repeatable)", collectDependencyOption, []).option("--with-suggestions", "include suggested companion artifacts for selected roots", false).option("--suggestion <alias>", "include one suggested companion alias (repeatable or comma-separated)", collectSuggestionOption, []).option("--no-deps", "resolve only root sources and ignore requires with a warning").option("--only-source", "exclude unrelated configured workspace packages", false).option("--frozen-lock", "resolve strictly from the existing graph lock and cached sources", false).option("--offline", "resolve strictly from graph locks and local caches", false).option("--refresh", "refresh available package versions even when the version-index TTL is fresh", false).option("--yes", "trust all new transitive sources", false).option("--trust <pattern>", "pre-approve a transitive source glob (repeatable)", collectTrustOption, []).action(async (name, options) => {
15079
+ program.command("update").description("re-resolve tracking packages, then apply the result").argument("[name]", "configured package name or source to update").option("--adapter <adapter>", "built-in adapter or comma-separated adapters").option("-i, --installation-type <type>", "installation type (for example local or user)").option("--user", "use the user workspace", false).option("--local", "use the nearest local workspace", false).option("--fleet <id>", "use one registered named fleet").option("-t, --target-root <path>", "workspace root").option("--agent <name>", "named agent from merged config").option("--all", "run for every configured agent", false).option("--profile <name>", "workspace runtime profile").option("--dry-run", "show plans without writing", false).option("--force-drift", "replace drifted managed artifacts", false).option("--force-foreign-state", "plan even when another workspace owns install state at the same paths", false).option("--force-conflict", "adopt unmanaged destinations when their content already matches the desired artifact", false).option("--replace-conflict", "replace unmanaged destinations even when their content differs", false).option("--execute-plugins", "execute semantic plugin installs", false).option("--reload-runtimes", "run configured runtime reload commands after executed semantic plugin changes", false).option("--restart-runtimes", "alias for --reload-runtimes", false).option("--allow-adapter-code", "allow loading local adapter code from configured packages", false).option("--select <type/name>", "temporarily select an artifact by type/name (repeatable or comma-separated)", collectSelectOption, []).option("--artifact <type/name>", "update only one configured artifact while preserving sibling state").option("--skill <name>", "temporarily select a skill by name (repeatable or comma-separated)", collectSkillOption, []).option("--dependency <name-or-source>", "update one tracking dependency while keeping unrelated graph nodes locked (repeatable)", collectDependencyOption, []).option("--with-suggestions", "include suggested companion artifacts for selected roots", false).option("--suggestion <alias>", "include one suggested companion alias (repeatable or comma-separated)", collectSuggestionOption, []).option("--no-deps", "resolve only root sources and ignore requires with a warning").option("--only-source", "exclude unrelated configured workspace packages", false).option("--frozen-lock", "resolve strictly from the existing graph lock and cached sources", false).option("--offline", "resolve strictly from graph locks and local caches", false).option("--refresh", "refresh available package versions even when the version-index TTL is fresh", false).option("--yes", "trust all new transitive sources", false).option("--trust <pattern>", "pre-approve a transitive source glob (repeatable)", collectTrustOption, []).action(async (name, options) => {
15080
15080
  if (options.onlySource && options.dependency.length > 0) throw new Error("--only-source cannot be combined with --dependency.");
15081
15081
  if (options.onlySource && !name) throw new Error("--only-source requires a configured package argument.");
15082
15082
  if (name && options.dependency.length > 0) throw new Error("A package argument cannot be combined with --dependency.");
@@ -15086,15 +15086,23 @@ program.command("update").description("re-resolve tracking packages, then apply
15086
15086
  if (options.dependency.length > 0 && (options.frozenLock || options.offline)) {
15087
15087
  throw new Error("--dependency cannot be combined with --frozen-lock or --offline.");
15088
15088
  }
15089
+ if (options.artifact && !name) throw new Error("--artifact requires a configured package argument.");
15090
+ if (options.artifact && (options.select.length > 0 || options.skill.length > 0 || options.dependency.length > 0)) {
15091
+ throw new Error("--artifact cannot be combined with --select, --skill, or --dependency.");
15092
+ }
15093
+ const focusedSelector = options.artifact ? normalizeArtifactSelectors([options.artifact])?.[0] : void 0;
15094
+ const focusedSeparator = focusedSelector?.indexOf("/") ?? -1;
15095
+ const focusedArtifact = focusedSelector && focusedSeparator > 0 ? { type: focusedSelector.slice(0, focusedSeparator), name: focusedSelector.slice(focusedSeparator + 1) } : void 0;
15089
15096
  const normalizedOptions = normalizeRuntimeScopeOptions(options);
15090
15097
  const composite = await resolveSelectedCompositeProfile(normalizedOptions);
15091
15098
  if (composite) {
15099
+ if (focusedArtifact) throw new Error("--artifact does not support composite profiles; select one concrete profile or agent.");
15092
15100
  await runCompositeUpdate(composite.workspaceRoot, composite.name, composite.profile, name, normalizedOptions);
15093
15101
  return;
15094
15102
  }
15095
15103
  const targets = await resolveCliTargets(normalizedOptions, { preferAllProfile: true });
15096
15104
  for (const target of targets) {
15097
- await runConfiguredGraphPackages(target, { ...normalizedOptions, scope: name }, { mode: "update" });
15105
+ await runConfiguredGraphPackages(target, { ...normalizedOptions, scope: name, focusedArtifact }, { mode: "update" });
15098
15106
  }
15099
15107
  });
15100
15108
  program.command("skill").description("operate on configured skills").addCommand(
@@ -16144,7 +16152,7 @@ async function buildGraphPlansForTarget(target, source, options, behavior) {
16144
16152
  const state = installStateForTarget(group.target, adapter, group.adapterOptions, group.installationType);
16145
16153
  const manifest = await readInstallManifest(state.installRoot, adapter.name, transport, state);
16146
16154
  const scopedResult = targetOptions.focusedArtifact ? previousGroupLock ? scopeUpdatePlanToArtifact(result, scopedRootId, targetOptions.focusedArtifact, previousGroupLock, manifest) : scopeInstallPlanToArtifact(result, scopedRootId, targetOptions.focusedArtifact, manifest) : previousGroupLock ? scopeUpdatePlanToRoot(result, scopedRootId, previousGroupLock, manifest) : scopeInstallPlanToRoot(result, scopedRootId, manifest);
16147
- if (targetOptions.focusedArtifact && (targetOptions.forceForeignState !== true || group.target.fleetId)) {
16155
+ if (targetOptions.focusedArtifact && targetOptions.forceForeignState !== true) {
16148
16156
  const focusedPaths = scopedResult.plan.operations.filter((operation) => operationMatchesFocusedArtifact(
16149
16157
  operation,
16150
16158
  targetOptions.focusedArtifact,
package/openpack.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "name": "NestDevLab/agentwheel",
4
- "version": "0.19.3",
4
+ "version": "0.19.4",
5
5
  "provides": [
6
6
  { "type": "skills", "path": "skills" }
7
7
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentwheel",
3
- "version": "0.19.3",
3
+ "version": "0.19.4",
4
4
  "description": "Weave skills, rules, and instructions across every AI agent.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -5,7 +5,7 @@ allowed-tools: [Bash]
5
5
  license: MIT
6
6
  metadata:
7
7
  author: NestDevLab
8
- version: "0.19.3"
8
+ version: "0.19.4"
9
9
  ---
10
10
 
11
11
  # agentwheel
@@ -5,7 +5,7 @@ allowed-tools: [Bash]
5
5
  license: MIT
6
6
  metadata:
7
7
  author: NestDevLab
8
- version: "0.19.3"
8
+ version: "0.19.4"
9
9
  ---
10
10
 
11
11
  # Agentwheel Discovery