@hasna/skills 0.10.78 → 0.10.80
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 +34 -3
- 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 +1 -1
- package/dist/runtime-prerequisites.js +1 -1
- package/dist/sdk/index.js +1 -1
- package/docs/plugin-admission.md +1 -1
- package/package.json +1 -1
package/bin/index.js
CHANGED
|
@@ -36888,7 +36888,7 @@ var package_default;
|
|
|
36888
36888
|
var init_package = __esm(() => {
|
|
36889
36889
|
package_default = {
|
|
36890
36890
|
name: "@hasna/skills",
|
|
36891
|
-
version: "0.10.
|
|
36891
|
+
version: "0.10.80",
|
|
36892
36892
|
description: "Skills library for AI coding agents",
|
|
36893
36893
|
type: "module",
|
|
36894
36894
|
bin: {
|
|
@@ -116054,7 +116054,7 @@ async function registerClaudeMcp(command, server2, environment) {
|
|
|
116054
116054
|
const previous = parseClaudeConfig(before2), data = parseClaudeConfig(current);
|
|
116055
116055
|
if (exitCode === 0) {
|
|
116056
116056
|
const actual = isPlainObject4(data.mcpServers) ? data.mcpServers[MCP_SERVER_NAME] : undefined;
|
|
116057
|
-
if (!
|
|
116057
|
+
if (!claudeNativeConfigPreserved(previous, data) || !isPlainObject4(actual) || !isDeepStrictEqual16({ ...actual, env: actual.env ?? {} }, desired))
|
|
116058
116058
|
throw new Error;
|
|
116059
116059
|
} else {
|
|
116060
116060
|
if (!cliUnavailable && (!duplicateAccepted || !isPlainObject4(previous.mcpServers) || !previous.mcpServers[MCP_SERVER_NAME]))
|
|
@@ -116117,6 +116117,37 @@ function parseClaudeConfig(bytes) {
|
|
|
116117
116117
|
throw new Error;
|
|
116118
116118
|
return data;
|
|
116119
116119
|
}
|
|
116120
|
+
function claudeNativeConfigPreserved(before2, after2) {
|
|
116121
|
+
const previous = withoutClaudeSkills(before2), current = withoutClaudeSkills(after2);
|
|
116122
|
+
for (const key2 of Object.keys(current)) {
|
|
116123
|
+
if (Object.hasOwn(previous, key2))
|
|
116124
|
+
continue;
|
|
116125
|
+
if (!isClaudeBootstrapAddition(key2, current[key2]))
|
|
116126
|
+
return false;
|
|
116127
|
+
delete current[key2];
|
|
116128
|
+
}
|
|
116129
|
+
return isDeepStrictEqual16(previous, current);
|
|
116130
|
+
}
|
|
116131
|
+
function isClaudeBootstrapAddition(key2, value) {
|
|
116132
|
+
switch (key2) {
|
|
116133
|
+
case "firstStartTime":
|
|
116134
|
+
return typeof value === "string" && /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(value) && Number.isFinite(Date.parse(value)) && new Date(value).toISOString() === value;
|
|
116135
|
+
case "firstStartVersion":
|
|
116136
|
+
return typeof value === "string" && /^\d{1,6}\.\d{1,6}\.\d{1,6}$/.test(value);
|
|
116137
|
+
case "machineID":
|
|
116138
|
+
return typeof value === "string" && /^[0-9a-f]{64}$/i.test(value);
|
|
116139
|
+
case "opusProMigrationComplete":
|
|
116140
|
+
case "sonnet1m45MigrationComplete":
|
|
116141
|
+
case "hasResetAutoModeOptInForDefaultOffer":
|
|
116142
|
+
return value === true;
|
|
116143
|
+
case "seenNotifications":
|
|
116144
|
+
return isPlainObject4(value) && Object.keys(value).length === 0;
|
|
116145
|
+
case "migrationVersion":
|
|
116146
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
116147
|
+
default:
|
|
116148
|
+
return false;
|
|
116149
|
+
}
|
|
116150
|
+
}
|
|
116120
116151
|
function withoutClaudeSkills(data) {
|
|
116121
116152
|
const rest2 = { ...data }, servers = { ...data.mcpServers };
|
|
116122
116153
|
delete servers[MCP_SERVER_NAME];
|
|
@@ -121221,7 +121252,7 @@ function reviewClaudeProspectiveCandidate(request2, requestFileSha256) {
|
|
|
121221
121252
|
refuse8("candidate must select between one and 32 plugins from one marketplace");
|
|
121222
121253
|
if (candidate2.functionHooksEnv !== undefined && candidate2.functionHooksEnv !== "1")
|
|
121223
121254
|
refuse8("function-hook environment mutation only supports the explicit value 1");
|
|
121224
|
-
const settingsMarketplaceWriterVersions = ["2.1.276", "2.1.278", "2.1.282", "2.1.287", "2.1.293", "2.1.296", "2.1.299", "2.1.300"];
|
|
121255
|
+
const settingsMarketplaceWriterVersions = ["2.1.276", "2.1.278", "2.1.282", "2.1.287", "2.1.293", "2.1.296", "2.1.299", "2.1.300", "2.1.301", "2.1.302"];
|
|
121225
121256
|
const nativeVersion = request2.native.executable.version;
|
|
121226
121257
|
const measuredSettingsWriter = settingsMarketplaceWriterVersions.some((version2) => nativeVersion === version2 || nativeVersion === `${version2} (Claude Code)`);
|
|
121227
121258
|
if (hasOwn2(candidate2, "settingsMarketplaceSource") && (candidate2.settingsMarketplaceSource !== "directory" || request2.scope.kind !== "user" || !measuredSettingsWriter))
|
package/bin/mcp.js
CHANGED
package/bin/migrate.js
CHANGED
package/bin/server.js
CHANGED
|
@@ -24140,7 +24140,7 @@ restoreLaunchCwd();
|
|
|
24140
24140
|
// package.json
|
|
24141
24141
|
var package_default = {
|
|
24142
24142
|
name: "@hasna/skills",
|
|
24143
|
-
version: "0.10.
|
|
24143
|
+
version: "0.10.80",
|
|
24144
24144
|
description: "Skills library for AI coding agents",
|
|
24145
24145
|
type: "module",
|
|
24146
24146
|
bin: {
|
package/bin/worker.js
CHANGED
|
@@ -24143,7 +24143,7 @@ import { randomUUID as randomUUID6 } from "crypto";
|
|
|
24143
24143
|
// package.json
|
|
24144
24144
|
var package_default = {
|
|
24145
24145
|
name: "@hasna/skills",
|
|
24146
|
-
version: "0.10.
|
|
24146
|
+
version: "0.10.80",
|
|
24147
24147
|
description: "Skills library for AI coding agents",
|
|
24148
24148
|
type: "module",
|
|
24149
24149
|
bin: {
|
package/dist/index.js
CHANGED
|
@@ -15447,7 +15447,7 @@ import { basename as basename13, dirname as dirname24, isAbsolute as isAbsolute2
|
|
|
15447
15447
|
import { homedir as homedir5 } from "os";
|
|
15448
15448
|
import { isAbsolute as isAbsolute25, join as join36, resolve as resolve24 } from "path";
|
|
15449
15449
|
// package.json
|
|
15450
|
-
var version = "0.10.
|
|
15450
|
+
var version = "0.10.80";
|
|
15451
15451
|
var package_default = {
|
|
15452
15452
|
name: "@hasna/skills",
|
|
15453
15453
|
version,
|
|
@@ -49,7 +49,7 @@ var __require = import.meta.require;
|
|
|
49
49
|
// src/runtime-prerequisites.ts
|
|
50
50
|
import { isAbsolute as isAbsolute7 } from "path";
|
|
51
51
|
// package.json
|
|
52
|
-
var version = "0.10.
|
|
52
|
+
var version = "0.10.80";
|
|
53
53
|
var package_default = {
|
|
54
54
|
name: "@hasna/skills",
|
|
55
55
|
version,
|
package/dist/sdk/index.js
CHANGED
|
@@ -32371,7 +32371,7 @@ var init_event_sink = __esm(() => {
|
|
|
32371
32371
|
init_dist();
|
|
32372
32372
|
});
|
|
32373
32373
|
// package.json
|
|
32374
|
-
var version = "0.10.
|
|
32374
|
+
var version = "0.10.80";
|
|
32375
32375
|
var package_default = {
|
|
32376
32376
|
name: "@hasna/skills",
|
|
32377
32377
|
version,
|
package/docs/plugin-admission.md
CHANGED
|
@@ -195,7 +195,7 @@ plugin dependency declarations refuse because this validator does not resolve
|
|
|
195
195
|
or review unselected external plugins.
|
|
196
196
|
The request may declare `functionHooksEnv: "1"`; without that declaration the
|
|
197
197
|
environment document is preserved unchanged. For a measured Claude 2.1.276,
|
|
198
|
-
2.1.278, 2.1.282, 2.1.287, 2.1.293, 2.1.296, 2.1.299 or 2.1.
|
|
198
|
+
2.1.278, 2.1.282, 2.1.287, 2.1.293, 2.1.296, 2.1.299, 2.1.300, 2.1.301 or 2.1.302 user-scoped install,
|
|
199
199
|
`candidate.settingsMarketplaceSource: "directory"`
|
|
200
200
|
explicitly declares the native settings registration. Skills derives
|
|
201
201
|
`extraKnownMarketplaces[candidate.marketplace].source` from the exact frozen
|