@hasna/skills 0.10.3 → 0.10.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/bin/index.js +11 -6
- 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 +11 -6
- package/dist/sdk/index.js +11 -6
- 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.4",
|
|
36872
36872
|
description: "Skills library for AI coding agents",
|
|
36873
36873
|
type: "module",
|
|
36874
36874
|
bin: {
|
|
@@ -51946,12 +51946,17 @@ function assertManagedAgentBridge(agent, options = {}) {
|
|
|
51946
51946
|
const setting = (path) => (codexConfig.skills?.config ?? []).filter((entry) => typeof entry.path === "string" && [path, join20(path, "SKILL.md")].includes(canonicalAgentPath(entry.path, aliases)));
|
|
51947
51947
|
if (agent === "codex" && [...setting(expected), ...(codexConfig.skills?.config ?? []).filter((entry) => typeof entry.name === "string" && entry.name.trim() === CLI_BRIDGE_NAME)].some((entry) => entry.enabled === false))
|
|
51948
51948
|
throw new Error("NATIVE_SKILL_DRIFT: the Codex CLI bridge is disabled; run skills hook install");
|
|
51949
|
-
const
|
|
51950
|
-
if (agent !== "codex" || !entry.vendor
|
|
51949
|
+
const disabledVendorSkill = (entry) => {
|
|
51950
|
+
if (agent !== "codex" || !entry.vendor)
|
|
51951
51951
|
return false;
|
|
51952
|
-
const matched = Array.isArray(binding.disabledBuiltins) && binding.disabledBuiltins.some((item) => item.path === entry.path && item.hash === entry.hash);
|
|
51953
51952
|
const settings = setting(entry.path);
|
|
51954
|
-
|
|
51953
|
+
if (settings.length !== 1 || settings[0]?.enabled !== false)
|
|
51954
|
+
return false;
|
|
51955
|
+
if (entry.path.startsWith(canonicalAgentPath(join20(home, ".codex", "plugins", "cache"), aliases) + sep4))
|
|
51956
|
+
return true;
|
|
51957
|
+
if (!entry.path.startsWith(canonicalAgentPath(join20(home, ".codex", "skills", ".system"), aliases) + sep4))
|
|
51958
|
+
return false;
|
|
51959
|
+
return Array.isArray(binding.disabledBuiltins) && binding.disabledBuiltins.some((item) => item.path === entry.path && item.hash === entry.hash);
|
|
51955
51960
|
};
|
|
51956
51961
|
if (!discovery || discovery.agent !== agent)
|
|
51957
51962
|
throw new Error("NATIVE_SKILL_DRIFT: native discovery coverage is missing; run skills hook install");
|
|
@@ -51968,7 +51973,7 @@ function assertManagedAgentBridge(agent, options = {}) {
|
|
|
51968
51973
|
throw new Error(`NATIVE_SKILL_DRIFT: ${error.message}`);
|
|
51969
51974
|
}
|
|
51970
51975
|
const inventory = inventoryNativeSkills(home, { includeVendor: true, guardHermes: agent === "hermes", agents: [agent], projectDirs: [...roots], agentRoots: discovery.roots.map((path) => ({ agent, path })), allowRootAliases: aliases.length > 0 });
|
|
51971
|
-
const unexpected = inventory.filter((entry) => visible(entry) && !entry.bridge && !
|
|
51976
|
+
const unexpected = inventory.filter((entry) => visible(entry) && !entry.bridge && !disabledVendorSkill(entry));
|
|
51972
51977
|
if (unexpected.length) {
|
|
51973
51978
|
const paths = unexpected.slice(0, 3).map((entry) => {
|
|
51974
51979
|
const escaped = JSON.stringify(entry.path).replace(/[\u007f-\u009f\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069]/g, (character) => `\\u${character.charCodeAt(0).toString(16).padStart(4, "0")}`);
|
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.4",
|
|
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.4",
|
|
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.4",
|
|
24129
24129
|
description: "Skills library for AI coding agents",
|
|
24130
24130
|
type: "module",
|
|
24131
24131
|
bin: {
|
package/dist/index.js
CHANGED
|
@@ -9611,7 +9611,7 @@ import { isAbsolute as isAbsolute11, join as join23, resolve as resolve11 } from
|
|
|
9611
9611
|
// package.json
|
|
9612
9612
|
var package_default = {
|
|
9613
9613
|
name: "@hasna/skills",
|
|
9614
|
-
version: "0.10.
|
|
9614
|
+
version: "0.10.4",
|
|
9615
9615
|
description: "Skills library for AI coding agents",
|
|
9616
9616
|
type: "module",
|
|
9617
9617
|
bin: {
|
|
@@ -14125,12 +14125,17 @@ function assertManagedAgentBridge(agent, options = {}) {
|
|
|
14125
14125
|
const setting = (path) => (codexConfig.skills?.config ?? []).filter((entry) => typeof entry.path === "string" && [path, join16(path, "SKILL.md")].includes(canonicalAgentPath(entry.path, aliases)));
|
|
14126
14126
|
if (agent === "codex" && [...setting(expected), ...(codexConfig.skills?.config ?? []).filter((entry) => typeof entry.name === "string" && entry.name.trim() === CLI_BRIDGE_NAME)].some((entry) => entry.enabled === false))
|
|
14127
14127
|
throw new Error("NATIVE_SKILL_DRIFT: the Codex CLI bridge is disabled; run skills hook install");
|
|
14128
|
-
const
|
|
14129
|
-
if (agent !== "codex" || !entry.vendor
|
|
14128
|
+
const disabledVendorSkill = (entry) => {
|
|
14129
|
+
if (agent !== "codex" || !entry.vendor)
|
|
14130
14130
|
return false;
|
|
14131
|
-
const matched = Array.isArray(binding.disabledBuiltins) && binding.disabledBuiltins.some((item) => item.path === entry.path && item.hash === entry.hash);
|
|
14132
14131
|
const settings = setting(entry.path);
|
|
14133
|
-
|
|
14132
|
+
if (settings.length !== 1 || settings[0]?.enabled !== false)
|
|
14133
|
+
return false;
|
|
14134
|
+
if (entry.path.startsWith(canonicalAgentPath(join16(home, ".codex", "plugins", "cache"), aliases) + sep4))
|
|
14135
|
+
return true;
|
|
14136
|
+
if (!entry.path.startsWith(canonicalAgentPath(join16(home, ".codex", "skills", ".system"), aliases) + sep4))
|
|
14137
|
+
return false;
|
|
14138
|
+
return Array.isArray(binding.disabledBuiltins) && binding.disabledBuiltins.some((item) => item.path === entry.path && item.hash === entry.hash);
|
|
14134
14139
|
};
|
|
14135
14140
|
if (!discovery || discovery.agent !== agent)
|
|
14136
14141
|
throw new Error("NATIVE_SKILL_DRIFT: native discovery coverage is missing; run skills hook install");
|
|
@@ -14147,7 +14152,7 @@ function assertManagedAgentBridge(agent, options = {}) {
|
|
|
14147
14152
|
throw new Error(`NATIVE_SKILL_DRIFT: ${error.message}`);
|
|
14148
14153
|
}
|
|
14149
14154
|
const inventory = inventoryNativeSkills(home, { includeVendor: true, guardHermes: agent === "hermes", agents: [agent], projectDirs: [...roots], agentRoots: discovery.roots.map((path) => ({ agent, path })), allowRootAliases: aliases.length > 0 });
|
|
14150
|
-
const unexpected = inventory.filter((entry) => visible(entry) && !entry.bridge && !
|
|
14155
|
+
const unexpected = inventory.filter((entry) => visible(entry) && !entry.bridge && !disabledVendorSkill(entry));
|
|
14151
14156
|
if (unexpected.length) {
|
|
14152
14157
|
const paths = unexpected.slice(0, 3).map((entry) => {
|
|
14153
14158
|
const escaped = JSON.stringify(entry.path).replace(/[\u007f-\u009f\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069]/g, (character) => `\\u${character.charCodeAt(0).toString(16).padStart(4, "0")}`);
|
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.4",
|
|
32377
32377
|
description: "Skills library for AI coding agents",
|
|
32378
32378
|
type: "module",
|
|
32379
32379
|
bin: {
|
|
@@ -41996,12 +41996,17 @@ function assertManagedAgentBridge(agent, options = {}) {
|
|
|
41996
41996
|
const setting = (path) => (codexConfig.skills?.config ?? []).filter((entry) => typeof entry.path === "string" && [path, join21(path, "SKILL.md")].includes(canonicalAgentPath(entry.path, aliases)));
|
|
41997
41997
|
if (agent === "codex" && [...setting(expected), ...(codexConfig.skills?.config ?? []).filter((entry) => typeof entry.name === "string" && entry.name.trim() === CLI_BRIDGE_NAME)].some((entry) => entry.enabled === false))
|
|
41998
41998
|
throw new Error("NATIVE_SKILL_DRIFT: the Codex CLI bridge is disabled; run skills hook install");
|
|
41999
|
-
const
|
|
42000
|
-
if (agent !== "codex" || !entry.vendor
|
|
41999
|
+
const disabledVendorSkill = (entry) => {
|
|
42000
|
+
if (agent !== "codex" || !entry.vendor)
|
|
42001
42001
|
return false;
|
|
42002
|
-
const matched = Array.isArray(binding.disabledBuiltins) && binding.disabledBuiltins.some((item) => item.path === entry.path && item.hash === entry.hash);
|
|
42003
42002
|
const settings = setting(entry.path);
|
|
42004
|
-
|
|
42003
|
+
if (settings.length !== 1 || settings[0]?.enabled !== false)
|
|
42004
|
+
return false;
|
|
42005
|
+
if (entry.path.startsWith(canonicalAgentPath(join21(home, ".codex", "plugins", "cache"), aliases) + sep4))
|
|
42006
|
+
return true;
|
|
42007
|
+
if (!entry.path.startsWith(canonicalAgentPath(join21(home, ".codex", "skills", ".system"), aliases) + sep4))
|
|
42008
|
+
return false;
|
|
42009
|
+
return Array.isArray(binding.disabledBuiltins) && binding.disabledBuiltins.some((item) => item.path === entry.path && item.hash === entry.hash);
|
|
42005
42010
|
};
|
|
42006
42011
|
if (!discovery || discovery.agent !== agent)
|
|
42007
42012
|
throw new Error("NATIVE_SKILL_DRIFT: native discovery coverage is missing; run skills hook install");
|
|
@@ -42018,7 +42023,7 @@ function assertManagedAgentBridge(agent, options = {}) {
|
|
|
42018
42023
|
throw new Error(`NATIVE_SKILL_DRIFT: ${error.message}`);
|
|
42019
42024
|
}
|
|
42020
42025
|
const inventory = inventoryNativeSkills(home, { includeVendor: true, guardHermes: agent === "hermes", agents: [agent], projectDirs: [...roots], agentRoots: discovery.roots.map((path) => ({ agent, path })), allowRootAliases: aliases.length > 0 });
|
|
42021
|
-
const unexpected = inventory.filter((entry) => visible(entry) && !entry.bridge && !
|
|
42026
|
+
const unexpected = inventory.filter((entry) => visible(entry) && !entry.bridge && !disabledVendorSkill(entry));
|
|
42022
42027
|
if (unexpected.length) {
|
|
42023
42028
|
const paths = unexpected.slice(0, 3).map((entry) => {
|
|
42024
42029
|
const escaped = JSON.stringify(entry.path).replace(/[\u007f-\u009f\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069]/g, (character) => `\\u${character.charCodeAt(0).toString(16).padStart(4, "0")}`);
|