@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 +9 -4
- package/bin/mcp.js +1 -1
- package/bin/migrate.js +1 -1
- package/bin/server.js +1 -1
- package/bin/worker.js +1 -1
- package/dist/index.js +9 -4
- package/dist/sdk/index.js +9 -4
- package/package.json +1 -1
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.
|
|
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
|
-
|
|
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.
|
|
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
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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}`);
|