@hasna/skills 0.10.44 → 0.10.45

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/index.js CHANGED
@@ -36868,7 +36868,7 @@ var package_default;
36868
36868
  var init_package = __esm(() => {
36869
36869
  package_default = {
36870
36870
  name: "@hasna/skills",
36871
- version: "0.10.44",
36871
+ version: "0.10.45",
36872
36872
  description: "Skills library for AI coding agents",
36873
36873
  type: "module",
36874
36874
  bin: {
@@ -54427,6 +54427,7 @@ function planAgentIntegration(options) {
54427
54427
  const codexPluginSourceInputs = codexPluginControls.sourceInputs.filter((input) => codexDiscovery?.method === "reviewed" && codexDiscovery.roots.some((root) => root === input.sourceRoot || root.startsWith(input.sourceRoot + sep6) || input.sourceRoot.startsWith(root + sep6)) && codexDiscovery.sources.some((source) => source.path === join27(input.sourceRoot, ".codex-plugin/plugin.json") && source.sha256 !== null && source.format === undefined && source.fields === undefined));
54428
54428
  assertCodexInstallationInputs(home, [options.projectDir ?? home], codexPluginSourceInputs.map((input) => input.sourceRoot));
54429
54429
  const changes = [];
54430
+ let observedSettings;
54430
54431
  for (const agent of [...new Set(options.agents)]) {
54431
54432
  if (!INTEGRATION_AGENTS.includes(agent))
54432
54433
  throw new Error(`Unsupported agent: ${agent}`);
@@ -54499,8 +54500,12 @@ function planAgentIntegration(options) {
54499
54500
  if (previous !== codexConfigBefore)
54500
54501
  throw new Error(`Configuration changed during planning: ${configPath}`);
54501
54502
  const next = disableReviewedCodexPluginNames(codexPathConfig, codexPluginSkills);
54502
- if (next !== (previous ?? ""))
54503
- changes.push({ path: configPath, before: previous, after: next });
54503
+ if (next !== (previous ?? "")) {
54504
+ if (previous !== null && isDeepStrictEqual7(Bun.TOML.parse(previous), Bun.TOML.parse(next))) {
54505
+ observedSettings = { path: configPath, before: previous };
54506
+ } else
54507
+ changes.push({ path: configPath, before: previous, after: next });
54508
+ }
54504
54509
  }
54505
54510
  }
54506
54511
  const codexPluginSkillReview = options.codexNativeCatalog ? { version: options.codexNativeCatalog.version, cwd: options.codexNativeCatalog.cwd, catalogSha256: sha3(JSON.stringify({ version: options.codexNativeCatalog.version, cwd: options.codexNativeCatalog.cwd, skills: projectCodexNativeSkillCatalog({ data: [{ cwd: options.codexNativeCatalog.cwd, errors: [], skills: options.codexNativeCatalog.skills }] }, options.codexNativeCatalog.cwd), ...options.codexNativeCatalog.plugins === undefined ? {} : { plugins: projectCodexInstalledPluginEntries(options.codexNativeCatalog.plugins) } })), configSha256: changes.find((change) => change.path === canonicalAgentPath(join27(home, ".codex/config.toml"), aliases))?.before === null ? null : sha3(readOptional(canonicalAgentPath(join27(home, ".codex/config.toml"), aliases)) ?? "") } : policy.bridge?.codexPluginSkillReview;
@@ -54533,7 +54538,7 @@ function planAgentIntegration(options) {
54533
54538
  if (JSON.stringify(policy) !== JSON.stringify(nextPolicy))
54534
54539
  changes.push({ path: policyPath, before: previousPolicy, after: serializedPolicy });
54535
54540
  recheckRootAliases(aliases);
54536
- return { dataDir: dataDir3, profileId, changes, nativeSkills, ...observedNativeSources.length ? { observedNativeSources } : {}, ...nextPolicy.bridge.codexPluginSkillReview ? { codexPluginSkillReview: nextPolicy.bridge.codexPluginSkillReview } : {}, observedPolicy: { path: policyPath, before: previousPolicy }, discoveryBefore: discoveries, discoveryAfter, ...aliases.length ? { rootAliases: aliases } : {}, ...retainedAgents.length ? { retainedReviewChecks: { home, projectDir: options.projectDir ?? home, agents: retainedAgents } } : {} };
54541
+ return { dataDir: dataDir3, profileId, changes, nativeSkills, ...observedSettings ? { observedSettings } : {}, ...observedNativeSources.length ? { observedNativeSources } : {}, ...nextPolicy.bridge.codexPluginSkillReview ? { codexPluginSkillReview: nextPolicy.bridge.codexPluginSkillReview } : {}, observedPolicy: { path: policyPath, before: previousPolicy }, discoveryBefore: discoveries, discoveryAfter, ...aliases.length ? { rootAliases: aliases } : {}, ...retainedAgents.length ? { retainedReviewChecks: { home, projectDir: options.projectDir ?? home, agents: retainedAgents } } : {} };
54537
54542
  }
54538
54543
  function hookProjectionRefusal(reason) {
54539
54544
  throw new Error(`CLAUDE_MANAGED_HOOK_${reason}`);
package/bin/mcp.js CHANGED
@@ -20019,7 +20019,7 @@ var package_default;
20019
20019
  var init_package = __esm(() => {
20020
20020
  package_default = {
20021
20021
  name: "@hasna/skills",
20022
- version: "0.10.44",
20022
+ version: "0.10.45",
20023
20023
  description: "Skills library for AI coding agents",
20024
20024
  type: "module",
20025
20025
  bin: {
package/bin/migrate.js CHANGED
@@ -7,7 +7,7 @@ import { join as join5 } from "path";
7
7
  // package.json
8
8
  var package_default = {
9
9
  name: "@hasna/skills",
10
- version: "0.10.44",
10
+ version: "0.10.45",
11
11
  description: "Skills library for AI coding agents",
12
12
  type: "module",
13
13
  bin: {
package/bin/server.js CHANGED
@@ -24122,7 +24122,7 @@ var init_dist_es9 = __esm(() => {
24122
24122
  // package.json
24123
24123
  var package_default = {
24124
24124
  name: "@hasna/skills",
24125
- version: "0.10.44",
24125
+ version: "0.10.45",
24126
24126
  description: "Skills library for AI coding agents",
24127
24127
  type: "module",
24128
24128
  bin: {
package/bin/worker.js CHANGED
@@ -24125,7 +24125,7 @@ import { randomUUID as randomUUID6 } from "crypto";
24125
24125
  // package.json
24126
24126
  var package_default = {
24127
24127
  name: "@hasna/skills",
24128
- version: "0.10.44",
24128
+ version: "0.10.45",
24129
24129
  description: "Skills library for AI coding agents",
24130
24130
  type: "module",
24131
24131
  bin: {
package/dist/index.js CHANGED
@@ -11048,7 +11048,7 @@ function replaceSkillSession(expected, replacement, plan, options = {}, beforeCo
11048
11048
  // package.json
11049
11049
  var package_default = {
11050
11050
  name: "@hasna/skills",
11051
- version: "0.10.44",
11051
+ version: "0.10.45",
11052
11052
  description: "Skills library for AI coding agents",
11053
11053
  type: "module",
11054
11054
  bin: {
@@ -16471,6 +16471,7 @@ function planAgentIntegration(options) {
16471
16471
  const codexPluginSourceInputs = codexPluginControls.sourceInputs.filter((input) => codexDiscovery?.method === "reviewed" && codexDiscovery.roots.some((root) => root === input.sourceRoot || root.startsWith(input.sourceRoot + sep6) || input.sourceRoot.startsWith(root + sep6)) && codexDiscovery.sources.some((source) => source.path === join21(input.sourceRoot, ".codex-plugin/plugin.json") && source.sha256 !== null && source.format === undefined && source.fields === undefined));
16472
16472
  assertCodexInstallationInputs(home, [options.projectDir ?? home], codexPluginSourceInputs.map((input) => input.sourceRoot));
16473
16473
  const changes = [];
16474
+ let observedSettings;
16474
16475
  for (const agent of [...new Set(options.agents)]) {
16475
16476
  if (!INTEGRATION_AGENTS.includes(agent))
16476
16477
  throw new Error(`Unsupported agent: ${agent}`);
@@ -16543,8 +16544,12 @@ function planAgentIntegration(options) {
16543
16544
  if (previous !== codexConfigBefore)
16544
16545
  throw new Error(`Configuration changed during planning: ${configPath}`);
16545
16546
  const next = disableReviewedCodexPluginNames(codexPathConfig, codexPluginSkills);
16546
- if (next !== (previous ?? ""))
16547
- changes.push({ path: configPath, before: previous, after: next });
16547
+ if (next !== (previous ?? "")) {
16548
+ if (previous !== null && isDeepStrictEqual6(Bun.TOML.parse(previous), Bun.TOML.parse(next))) {
16549
+ observedSettings = { path: configPath, before: previous };
16550
+ } else
16551
+ changes.push({ path: configPath, before: previous, after: next });
16552
+ }
16548
16553
  }
16549
16554
  }
16550
16555
  const codexPluginSkillReview = options.codexNativeCatalog ? { version: options.codexNativeCatalog.version, cwd: options.codexNativeCatalog.cwd, catalogSha256: sha3(JSON.stringify({ version: options.codexNativeCatalog.version, cwd: options.codexNativeCatalog.cwd, skills: projectCodexNativeSkillCatalog({ data: [{ cwd: options.codexNativeCatalog.cwd, errors: [], skills: options.codexNativeCatalog.skills }] }, options.codexNativeCatalog.cwd), ...options.codexNativeCatalog.plugins === undefined ? {} : { plugins: projectCodexInstalledPluginEntries(options.codexNativeCatalog.plugins) } })), configSha256: changes.find((change) => change.path === canonicalAgentPath(join21(home, ".codex/config.toml"), aliases))?.before === null ? null : sha3(readOptional(canonicalAgentPath(join21(home, ".codex/config.toml"), aliases)) ?? "") } : policy.bridge?.codexPluginSkillReview;
@@ -16577,7 +16582,7 @@ function planAgentIntegration(options) {
16577
16582
  if (JSON.stringify(policy) !== JSON.stringify(nextPolicy))
16578
16583
  changes.push({ path: policyPath, before: previousPolicy, after: serializedPolicy });
16579
16584
  recheckRootAliases(aliases);
16580
- return { dataDir: dataDir2, profileId, changes, nativeSkills, ...observedNativeSources.length ? { observedNativeSources } : {}, ...nextPolicy.bridge.codexPluginSkillReview ? { codexPluginSkillReview: nextPolicy.bridge.codexPluginSkillReview } : {}, observedPolicy: { path: policyPath, before: previousPolicy }, discoveryBefore: discoveries, discoveryAfter, ...aliases.length ? { rootAliases: aliases } : {}, ...retainedAgents.length ? { retainedReviewChecks: { home, projectDir: options.projectDir ?? home, agents: retainedAgents } } : {} };
16585
+ return { dataDir: dataDir2, profileId, changes, nativeSkills, ...observedSettings ? { observedSettings } : {}, ...observedNativeSources.length ? { observedNativeSources } : {}, ...nextPolicy.bridge.codexPluginSkillReview ? { codexPluginSkillReview: nextPolicy.bridge.codexPluginSkillReview } : {}, observedPolicy: { path: policyPath, before: previousPolicy }, discoveryBefore: discoveries, discoveryAfter, ...aliases.length ? { rootAliases: aliases } : {}, ...retainedAgents.length ? { retainedReviewChecks: { home, projectDir: options.projectDir ?? home, agents: retainedAgents } } : {} };
16581
16586
  }
16582
16587
  function hookProjectionRefusal(reason) {
16583
16588
  throw new Error(`CLAUDE_MANAGED_HOOK_${reason}`);
package/dist/sdk/index.js CHANGED
@@ -32373,7 +32373,7 @@ var init_event_sink = __esm(() => {
32373
32373
  // package.json
32374
32374
  var package_default = {
32375
32375
  name: "@hasna/skills",
32376
- version: "0.10.44",
32376
+ version: "0.10.45",
32377
32377
  description: "Skills library for AI coding agents",
32378
32378
  type: "module",
32379
32379
  bin: {
@@ -44539,6 +44539,7 @@ function planAgentIntegration(options) {
44539
44539
  const codexPluginSourceInputs = codexPluginControls.sourceInputs.filter((input) => codexDiscovery?.method === "reviewed" && codexDiscovery.roots.some((root2) => root2 === input.sourceRoot || root2.startsWith(input.sourceRoot + sep6) || input.sourceRoot.startsWith(root2 + sep6)) && codexDiscovery.sources.some((source) => source.path === join26(input.sourceRoot, ".codex-plugin/plugin.json") && source.sha256 !== null && source.format === undefined && source.fields === undefined));
44540
44540
  assertCodexInstallationInputs(home, [options.projectDir ?? home], codexPluginSourceInputs.map((input) => input.sourceRoot));
44541
44541
  const changes = [];
44542
+ let observedSettings;
44542
44543
  for (const agent of [...new Set(options.agents)]) {
44543
44544
  if (!INTEGRATION_AGENTS.includes(agent))
44544
44545
  throw new Error(`Unsupported agent: ${agent}`);
@@ -44611,8 +44612,12 @@ function planAgentIntegration(options) {
44611
44612
  if (previous !== codexConfigBefore)
44612
44613
  throw new Error(`Configuration changed during planning: ${configPath}`);
44613
44614
  const next = disableReviewedCodexPluginNames(codexPathConfig, codexPluginSkills);
44614
- if (next !== (previous ?? ""))
44615
- changes.push({ path: configPath, before: previous, after: next });
44615
+ if (next !== (previous ?? "")) {
44616
+ if (previous !== null && isDeepStrictEqual8(Bun.TOML.parse(previous), Bun.TOML.parse(next))) {
44617
+ observedSettings = { path: configPath, before: previous };
44618
+ } else
44619
+ changes.push({ path: configPath, before: previous, after: next });
44620
+ }
44616
44621
  }
44617
44622
  }
44618
44623
  const codexPluginSkillReview = options.codexNativeCatalog ? { version: options.codexNativeCatalog.version, cwd: options.codexNativeCatalog.cwd, catalogSha256: sha4(JSON.stringify({ version: options.codexNativeCatalog.version, cwd: options.codexNativeCatalog.cwd, skills: projectCodexNativeSkillCatalog({ data: [{ cwd: options.codexNativeCatalog.cwd, errors: [], skills: options.codexNativeCatalog.skills }] }, options.codexNativeCatalog.cwd), ...options.codexNativeCatalog.plugins === undefined ? {} : { plugins: projectCodexInstalledPluginEntries(options.codexNativeCatalog.plugins) } })), configSha256: changes.find((change) => change.path === canonicalAgentPath(join26(home, ".codex/config.toml"), aliases))?.before === null ? null : sha4(readOptional(canonicalAgentPath(join26(home, ".codex/config.toml"), aliases)) ?? "") } : policy.bridge?.codexPluginSkillReview;
@@ -44645,7 +44650,7 @@ function planAgentIntegration(options) {
44645
44650
  if (JSON.stringify(policy) !== JSON.stringify(nextPolicy))
44646
44651
  changes.push({ path: policyPath, before: previousPolicy, after: serializedPolicy });
44647
44652
  recheckRootAliases(aliases);
44648
- return { dataDir: dataDir2, profileId, changes, nativeSkills, ...observedNativeSources.length ? { observedNativeSources } : {}, ...nextPolicy.bridge.codexPluginSkillReview ? { codexPluginSkillReview: nextPolicy.bridge.codexPluginSkillReview } : {}, observedPolicy: { path: policyPath, before: previousPolicy }, discoveryBefore: discoveries, discoveryAfter, ...aliases.length ? { rootAliases: aliases } : {}, ...retainedAgents.length ? { retainedReviewChecks: { home, projectDir: options.projectDir ?? home, agents: retainedAgents } } : {} };
44653
+ return { dataDir: dataDir2, profileId, changes, nativeSkills, ...observedSettings ? { observedSettings } : {}, ...observedNativeSources.length ? { observedNativeSources } : {}, ...nextPolicy.bridge.codexPluginSkillReview ? { codexPluginSkillReview: nextPolicy.bridge.codexPluginSkillReview } : {}, observedPolicy: { path: policyPath, before: previousPolicy }, discoveryBefore: discoveries, discoveryAfter, ...aliases.length ? { rootAliases: aliases } : {}, ...retainedAgents.length ? { retainedReviewChecks: { home, projectDir: options.projectDir ?? home, agents: retainedAgents } } : {} };
44649
44654
  }
44650
44655
  function hookProjectionRefusal(reason) {
44651
44656
  throw new Error(`CLAUDE_MANAGED_HOOK_${reason}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/skills",
3
- "version": "0.10.44",
3
+ "version": "0.10.45",
4
4
  "description": "Skills library for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {