@hasna/skills 0.10.27 → 0.10.28
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/README.md +7 -1
- package/bin/index.js +4 -2
- package/bin/mcp.js +4 -2
- package/bin/migrate.js +1 -1
- package/bin/server.js +1 -1
- package/bin/worker.js +1 -1
- package/dist/index.js +4 -2
- package/dist/sdk/index.js +4 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2276,7 +2276,8 @@ materialization; it does not infer the installed version or enable cached skills
|
|
|
2276
2276
|
|
|
2277
2277
|
### Reviewing Codex inference and local MCP settings
|
|
2278
2278
|
|
|
2279
|
-
`codex-settings-v3` reviews tolerate model/effort/verbosity/service-tier changes
|
|
2279
|
+
`codex-settings-v3` reviews tolerate model/effort/verbosity/service-tier changes,
|
|
2280
|
+
and root/profile `personality` values `none`, `friendly`, or `pragmatic`,
|
|
2280
2281
|
and typed ordinary local stdio MCP configuration updates. The local MCP catalog
|
|
2281
2282
|
is separate from native skill discovery; MCP servers can still supply tool
|
|
2282
2283
|
context and instructions. This witness does not authenticate server responses.
|
|
@@ -2285,6 +2286,11 @@ skills/plugins/hooks, reserved Apps MCP servers and unknown fields stay bound.
|
|
|
2285
2286
|
HTTP, OAuth, remote-environment and unsupported MCP layouts retain their full
|
|
2286
2287
|
witness. V1/V2 reviews retain their original digest meaning.
|
|
2287
2288
|
|
|
2289
|
+
The personality extension leaves existing V3 digests without that field unchanged.
|
|
2290
|
+
A stored review that included personality requires a fresh explicit review before
|
|
2291
|
+
its changed digest can be adopted. Unknown values and other personality fields
|
|
2292
|
+
(including `features.personality`) remain refused or bound.
|
|
2293
|
+
|
|
2288
2294
|
Capture a new review with `skills hook witness --kind codex-settings-v3 --path
|
|
2289
2295
|
/absolute/path/config.toml`. To migrate an existing raw, V1 or V2 review, preserve
|
|
2290
2296
|
and read back its exact reviewed configuration, then use `skills hook
|
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.28",
|
|
36872
36872
|
description: "Skills library for AI coding agents",
|
|
36873
36873
|
type: "module",
|
|
36874
36874
|
bin: {
|
|
@@ -51915,12 +51915,14 @@ function disablesOneSkill(entry) {
|
|
|
51915
51915
|
return selector.length === 1 && typeof entry[selector[0]] === "string" && entry[selector[0]].length > 0;
|
|
51916
51916
|
}
|
|
51917
51917
|
function inference(target, version) {
|
|
51918
|
-
const keys2 = version === 3 ? [...INFERENCE, "service_tier", "plan_mode_reasoning_effort"] : INFERENCE;
|
|
51918
|
+
const keys2 = version === 3 ? [...INFERENCE, "service_tier", "plan_mode_reasoning_effort", "personality"] : INFERENCE;
|
|
51919
51919
|
for (const key of keys2)
|
|
51920
51920
|
if (Object.hasOwn(target, key)) {
|
|
51921
51921
|
const value = target[key];
|
|
51922
51922
|
if (key === "model")
|
|
51923
51923
|
need4(typeof value === "string" && MODEL.test(value));
|
|
51924
|
+
else if (key === "personality")
|
|
51925
|
+
need4(typeof value === "string" && ["none", "friendly", "pragmatic"].includes(value));
|
|
51924
51926
|
else if (version === 3 && key !== "model_verbosity") {
|
|
51925
51927
|
need4(typeof value === "string" && value.length <= 128 && !/[\x00-\x1f\x7f]/.test(value));
|
|
51926
51928
|
if (key !== "service_tier")
|
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.28",
|
|
20023
20023
|
description: "Skills library for AI coding agents",
|
|
20024
20024
|
type: "module",
|
|
20025
20025
|
bin: {
|
|
@@ -47926,12 +47926,14 @@ function disablesOneSkill(entry) {
|
|
|
47926
47926
|
return selector.length === 1 && typeof entry[selector[0]] === "string" && entry[selector[0]].length > 0;
|
|
47927
47927
|
}
|
|
47928
47928
|
function inference(target, version2) {
|
|
47929
|
-
const keys = version2 === 3 ? [...INFERENCE, "service_tier", "plan_mode_reasoning_effort"] : INFERENCE;
|
|
47929
|
+
const keys = version2 === 3 ? [...INFERENCE, "service_tier", "plan_mode_reasoning_effort", "personality"] : INFERENCE;
|
|
47930
47930
|
for (const key of keys)
|
|
47931
47931
|
if (Object.hasOwn(target, key)) {
|
|
47932
47932
|
const value = target[key];
|
|
47933
47933
|
if (key === "model")
|
|
47934
47934
|
need4(typeof value === "string" && MODEL.test(value));
|
|
47935
|
+
else if (key === "personality")
|
|
47936
|
+
need4(typeof value === "string" && ["none", "friendly", "pragmatic"].includes(value));
|
|
47935
47937
|
else if (version2 === 3 && key !== "model_verbosity") {
|
|
47936
47938
|
need4(typeof value === "string" && value.length <= 128 && !/[\x00-\x1f\x7f]/.test(value));
|
|
47937
47939
|
if (key !== "service_tier")
|
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.28",
|
|
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.28",
|
|
24129
24129
|
description: "Skills library for AI coding agents",
|
|
24130
24130
|
type: "module",
|
|
24131
24131
|
bin: {
|
package/dist/index.js
CHANGED
|
@@ -10914,7 +10914,7 @@ function replaceSkillSession(expected, replacement, plan, options = {}, beforeCo
|
|
|
10914
10914
|
// package.json
|
|
10915
10915
|
var package_default = {
|
|
10916
10916
|
name: "@hasna/skills",
|
|
10917
|
-
version: "0.10.
|
|
10917
|
+
version: "0.10.28",
|
|
10918
10918
|
description: "Skills library for AI coding agents",
|
|
10919
10919
|
type: "module",
|
|
10920
10920
|
bin: {
|
|
@@ -14050,12 +14050,14 @@ function disablesOneSkill(entry) {
|
|
|
14050
14050
|
return selector.length === 1 && typeof entry[selector[0]] === "string" && entry[selector[0]].length > 0;
|
|
14051
14051
|
}
|
|
14052
14052
|
function inference(target, version) {
|
|
14053
|
-
const keys = version === 3 ? [...INFERENCE, "service_tier", "plan_mode_reasoning_effort"] : INFERENCE;
|
|
14053
|
+
const keys = version === 3 ? [...INFERENCE, "service_tier", "plan_mode_reasoning_effort", "personality"] : INFERENCE;
|
|
14054
14054
|
for (const key of keys)
|
|
14055
14055
|
if (Object.hasOwn(target, key)) {
|
|
14056
14056
|
const value = target[key];
|
|
14057
14057
|
if (key === "model")
|
|
14058
14058
|
need4(typeof value === "string" && MODEL.test(value));
|
|
14059
|
+
else if (key === "personality")
|
|
14060
|
+
need4(typeof value === "string" && ["none", "friendly", "pragmatic"].includes(value));
|
|
14059
14061
|
else if (version === 3 && key !== "model_verbosity") {
|
|
14060
14062
|
need4(typeof value === "string" && value.length <= 128 && !/[\x00-\x1f\x7f]/.test(value));
|
|
14061
14063
|
if (key !== "service_tier")
|
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.28",
|
|
32377
32377
|
description: "Skills library for AI coding agents",
|
|
32378
32378
|
type: "module",
|
|
32379
32379
|
bin: {
|
|
@@ -38995,12 +38995,14 @@ function disablesOneSkill(entry) {
|
|
|
38995
38995
|
return selector.length === 1 && typeof entry[selector[0]] === "string" && entry[selector[0]].length > 0;
|
|
38996
38996
|
}
|
|
38997
38997
|
function inference(target, version) {
|
|
38998
|
-
const keys2 = version === 3 ? [...INFERENCE, "service_tier", "plan_mode_reasoning_effort"] : INFERENCE;
|
|
38998
|
+
const keys2 = version === 3 ? [...INFERENCE, "service_tier", "plan_mode_reasoning_effort", "personality"] : INFERENCE;
|
|
38999
38999
|
for (const key of keys2)
|
|
39000
39000
|
if (Object.hasOwn(target, key)) {
|
|
39001
39001
|
const value = target[key];
|
|
39002
39002
|
if (key === "model")
|
|
39003
39003
|
need3(typeof value === "string" && MODEL.test(value));
|
|
39004
|
+
else if (key === "personality")
|
|
39005
|
+
need3(typeof value === "string" && ["none", "friendly", "pragmatic"].includes(value));
|
|
39004
39006
|
else if (version === 3 && key !== "model_verbosity") {
|
|
39005
39007
|
need3(typeof value === "string" && value.length <= 128 && !/[\x00-\x1f\x7f]/.test(value));
|
|
39006
39008
|
if (key !== "service_tier")
|