@hasna/skills 0.10.68 → 0.10.69

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
@@ -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.68",
36891
+ version: "0.10.69",
36892
36892
  description: "Skills library for AI coding agents",
36893
36893
  type: "module",
36894
36894
  bin: {
@@ -36954,6 +36954,7 @@ var init_package = __esm(() => {
36954
36954
  "verify:release": "bun run scripts/release-guard.ts",
36955
36955
  "verify:release-review": "bun run scripts/verify-release-review.ts",
36956
36956
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
36957
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
36957
36958
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
36958
36959
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
36959
36960
  "verify:producer": "bun run scripts/release-dependencies.ts",
@@ -113534,23 +113535,120 @@ var init_remote_customer_tools = __esm(() => {
113534
113535
  init_remote_files();
113535
113536
  });
113536
113537
 
113538
+ // src/mcp/package-tool-list.ts
113539
+ function servePackageZodToolList(server) {
113540
+ const tools = new Map;
113541
+ let installed = false;
113542
+ const track = (name, tool, input2, output2) => {
113543
+ tools.set(name, { tool, input: input2, output: output2 });
113544
+ const update2 = tool.update.bind(tool);
113545
+ tool.update = (updates) => {
113546
+ update2(updates);
113547
+ const entry = tools.get(name);
113548
+ if (!entry)
113549
+ return;
113550
+ if (updates.paramsSchema !== undefined)
113551
+ entry.input = updates.paramsSchema;
113552
+ if (updates.outputSchema !== undefined)
113553
+ entry.output = updates.outputSchema;
113554
+ if (updates.name !== undefined && updates.name !== name) {
113555
+ tools.delete(name);
113556
+ if (updates.name) {
113557
+ name = updates.name;
113558
+ tools.set(name, entry);
113559
+ }
113560
+ }
113561
+ };
113562
+ if (!installed) {
113563
+ installed = true;
113564
+ server.server.setRequestHandler(ListToolsRequestSchema, () => ({ tools: listTools(tools) }));
113565
+ }
113566
+ };
113567
+ const registerTool = server.registerTool.bind(server);
113568
+ server.registerTool = (name, config2, cb) => {
113569
+ const tool = registerTool(name, config2, cb);
113570
+ track(name, tool, config2.inputSchema, config2.outputSchema);
113571
+ return tool;
113572
+ };
113573
+ const legacyTool = server.tool.bind(server);
113574
+ server.tool = (name, ...rest2) => {
113575
+ const tool = legacyTool(name, ...rest2);
113576
+ track(name, tool, legacyInputSchema(rest2), undefined);
113577
+ return tool;
113578
+ };
113579
+ }
113580
+ function listTools(tools) {
113581
+ return [...tools].filter(([, entry]) => entry.tool.enabled).map(([name, { tool, input: input2, output: output2 }]) => {
113582
+ const definition = {
113583
+ name,
113584
+ title: tool.title,
113585
+ description: tool.description,
113586
+ inputSchema: jsonSchema(input2, "input") ?? EMPTY_OBJECT_JSON_SCHEMA2,
113587
+ annotations: tool.annotations,
113588
+ execution: tool.execution,
113589
+ _meta: tool._meta
113590
+ };
113591
+ const outputSchema = jsonSchema(output2, "output");
113592
+ if (outputSchema)
113593
+ definition.outputSchema = outputSchema;
113594
+ return definition;
113595
+ });
113596
+ }
113597
+ function isZodTypeLike2(value) {
113598
+ return typeof value === "object" && value !== null && typeof value.parse === "function" && typeof value.safeParse === "function";
113599
+ }
113600
+ function isRawShape(value) {
113601
+ if (typeof value !== "object" || value === null || "_def" in value || "_zod" in value || isZodTypeLike2(value))
113602
+ return false;
113603
+ const values2 = Object.values(value);
113604
+ return values2.length === 0 || values2.some(isZodTypeLike2);
113605
+ }
113606
+ function legacyInputSchema(rest2) {
113607
+ const args = [...rest2];
113608
+ if (typeof args[0] === "string")
113609
+ args.shift();
113610
+ return args.length > 1 && isRawShape(args[0]) ? args[0] : undefined;
113611
+ }
113612
+ function jsonSchema(schema, io) {
113613
+ if (schema === undefined || schema === null)
113614
+ return;
113615
+ const object10 = isRawShape(schema) ? exports_external.object(schema) : schema;
113616
+ const def = object10._zod?.def;
113617
+ if (!def)
113618
+ throw new Error("Skills MCP tool schemas must be built with this package's zod 4");
113619
+ if (def.type !== "object" && def.shape === undefined)
113620
+ return;
113621
+ return exports_external.toJSONSchema(object10, { target: "draft-7", io });
113622
+ }
113623
+ var EMPTY_OBJECT_JSON_SCHEMA2;
113624
+ var init_package_tool_list = __esm(() => {
113625
+ init_types2();
113626
+ init_zod();
113627
+ EMPTY_OBJECT_JSON_SCHEMA2 = { type: "object", properties: {} };
113628
+ });
113629
+
113537
113630
  // src/mcp/server.ts
113538
113631
  var exports_server = {};
113539
113632
  __export(exports_server, {
113540
113633
  server: () => server,
113634
+ registerSkillsTools: () => registerSkillsTools,
113541
113635
  buildServer: () => buildServer
113542
113636
  });
113543
- function buildServer() {
113544
- const server = new McpServer({
113545
- name: "skills",
113546
- version: package_default.version
113547
- });
113637
+ function registerSkillsTools(server) {
113548
113638
  registerDiscoveryTools(server);
113549
113639
  registerOperationTools(server);
113550
113640
  registerScheduleTools(server);
113551
113641
  registerStorageTools(server);
113552
113642
  registerResourceMetaTools(server);
113553
113643
  registerRemoteCustomerTools(server);
113644
+ }
113645
+ function buildServer() {
113646
+ const server = new McpServer({
113647
+ name: "skills",
113648
+ version: package_default.version
113649
+ });
113650
+ servePackageZodToolList(server);
113651
+ registerSkillsTools(server);
113554
113652
  return server;
113555
113653
  }
113556
113654
  var server;
@@ -113563,6 +113661,7 @@ var init_server3 = __esm(() => {
113563
113661
  init_schedule_tools();
113564
113662
  init_storage_tools();
113565
113663
  init_remote_customer_tools();
113664
+ init_package_tool_list();
113566
113665
  server = buildServer();
113567
113666
  });
113568
113667
 
package/bin/mcp.js CHANGED
@@ -23,7 +23,7 @@ var package_default;
23
23
  var init_package = __esm(() => {
24
24
  package_default = {
25
25
  name: "@hasna/skills",
26
- version: "0.10.68",
26
+ version: "0.10.69",
27
27
  description: "Skills library for AI coding agents",
28
28
  type: "module",
29
29
  bin: {
@@ -89,6 +89,7 @@ var init_package = __esm(() => {
89
89
  "verify:release": "bun run scripts/release-guard.ts",
90
90
  "verify:release-review": "bun run scripts/verify-release-review.ts",
91
91
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
92
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
92
93
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
93
94
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
94
95
  "verify:producer": "bun run scripts/release-dependencies.ts",
@@ -47922,24 +47923,121 @@ var init_remote_customer_tools = __esm(() => {
47922
47923
  init_remote_files();
47923
47924
  });
47924
47925
 
47926
+ // src/mcp/package-tool-list.ts
47927
+ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
47928
+ function servePackageZodToolList(server) {
47929
+ const tools = new Map;
47930
+ let installed = false;
47931
+ const track = (name, tool, input2, output2) => {
47932
+ tools.set(name, { tool, input: input2, output: output2 });
47933
+ const update = tool.update.bind(tool);
47934
+ tool.update = (updates) => {
47935
+ update(updates);
47936
+ const entry = tools.get(name);
47937
+ if (!entry)
47938
+ return;
47939
+ if (updates.paramsSchema !== undefined)
47940
+ entry.input = updates.paramsSchema;
47941
+ if (updates.outputSchema !== undefined)
47942
+ entry.output = updates.outputSchema;
47943
+ if (updates.name !== undefined && updates.name !== name) {
47944
+ tools.delete(name);
47945
+ if (updates.name) {
47946
+ name = updates.name;
47947
+ tools.set(name, entry);
47948
+ }
47949
+ }
47950
+ };
47951
+ if (!installed) {
47952
+ installed = true;
47953
+ server.server.setRequestHandler(ListToolsRequestSchema, () => ({ tools: listTools(tools) }));
47954
+ }
47955
+ };
47956
+ const registerTool = server.registerTool.bind(server);
47957
+ server.registerTool = (name, config2, cb) => {
47958
+ const tool = registerTool(name, config2, cb);
47959
+ track(name, tool, config2.inputSchema, config2.outputSchema);
47960
+ return tool;
47961
+ };
47962
+ const legacyTool = server.tool.bind(server);
47963
+ server.tool = (name, ...rest) => {
47964
+ const tool = legacyTool(name, ...rest);
47965
+ track(name, tool, legacyInputSchema(rest), undefined);
47966
+ return tool;
47967
+ };
47968
+ }
47969
+ function listTools(tools) {
47970
+ return [...tools].filter(([, entry]) => entry.tool.enabled).map(([name, { tool, input: input2, output: output2 }]) => {
47971
+ const definition = {
47972
+ name,
47973
+ title: tool.title,
47974
+ description: tool.description,
47975
+ inputSchema: jsonSchema(input2, "input") ?? EMPTY_OBJECT_JSON_SCHEMA,
47976
+ annotations: tool.annotations,
47977
+ execution: tool.execution,
47978
+ _meta: tool._meta
47979
+ };
47980
+ const outputSchema = jsonSchema(output2, "output");
47981
+ if (outputSchema)
47982
+ definition.outputSchema = outputSchema;
47983
+ return definition;
47984
+ });
47985
+ }
47986
+ function isZodTypeLike(value) {
47987
+ return typeof value === "object" && value !== null && typeof value.parse === "function" && typeof value.safeParse === "function";
47988
+ }
47989
+ function isRawShape(value) {
47990
+ if (typeof value !== "object" || value === null || "_def" in value || "_zod" in value || isZodTypeLike(value))
47991
+ return false;
47992
+ const values = Object.values(value);
47993
+ return values.length === 0 || values.some(isZodTypeLike);
47994
+ }
47995
+ function legacyInputSchema(rest) {
47996
+ const args = [...rest];
47997
+ if (typeof args[0] === "string")
47998
+ args.shift();
47999
+ return args.length > 1 && isRawShape(args[0]) ? args[0] : undefined;
48000
+ }
48001
+ function jsonSchema(schema, io) {
48002
+ if (schema === undefined || schema === null)
48003
+ return;
48004
+ const object7 = isRawShape(schema) ? exports_external.object(schema) : schema;
48005
+ const def = object7._zod?.def;
48006
+ if (!def)
48007
+ throw new Error("Skills MCP tool schemas must be built with this package's zod 4");
48008
+ if (def.type !== "object" && def.shape === undefined)
48009
+ return;
48010
+ return exports_external.toJSONSchema(object7, { target: "draft-7", io });
48011
+ }
48012
+ var EMPTY_OBJECT_JSON_SCHEMA;
48013
+ var init_package_tool_list = __esm(() => {
48014
+ init_zod();
48015
+ EMPTY_OBJECT_JSON_SCHEMA = { type: "object", properties: {} };
48016
+ });
48017
+
47925
48018
  // src/mcp/server.ts
47926
48019
  var exports_server = {};
47927
48020
  __export(exports_server, {
47928
48021
  server: () => server,
48022
+ registerSkillsTools: () => registerSkillsTools,
47929
48023
  buildServer: () => buildServer
47930
48024
  });
47931
48025
  import { McpServer as McpServer2 } from "@modelcontextprotocol/sdk/server/mcp.js";
47932
- function buildServer() {
47933
- const server = new McpServer2({
47934
- name: "skills",
47935
- version: package_default.version
47936
- });
48026
+ function registerSkillsTools(server) {
47937
48027
  registerDiscoveryTools(server);
47938
48028
  registerOperationTools(server);
47939
48029
  registerScheduleTools(server);
47940
48030
  registerStorageTools(server);
47941
48031
  registerResourceMetaTools(server);
47942
48032
  registerRemoteCustomerTools(server);
48033
+ }
48034
+ function buildServer() {
48035
+ const server = new McpServer2({
48036
+ name: "skills",
48037
+ version: package_default.version
48038
+ });
48039
+ servePackageZodToolList(server);
48040
+ registerSkillsTools(server);
47943
48041
  return server;
47944
48042
  }
47945
48043
  var server;
@@ -47951,6 +48049,7 @@ var init_server = __esm(() => {
47951
48049
  init_schedule_tools();
47952
48050
  init_storage_tools();
47953
48051
  init_remote_customer_tools();
48052
+ init_package_tool_list();
47954
48053
  server = buildServer();
47955
48054
  });
47956
48055
 
@@ -47985,7 +48084,8 @@ var init_invitation_recovery_target = __esm(() => {
47985
48084
  // src/mcp/invitation-recovery.ts
47986
48085
  var exports_invitation_recovery = {};
47987
48086
  __export(exports_invitation_recovery, {
47988
- startInvitationRecoveryMcp: () => startInvitationRecoveryMcp
48087
+ startInvitationRecoveryMcp: () => startInvitationRecoveryMcp,
48088
+ registerInvitationRecoveryTools: () => registerInvitationRecoveryTools
47989
48089
  });
47990
48090
  import { McpServer as McpServer3 } from "@modelcontextprotocol/sdk/server/mcp.js";
47991
48091
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -47994,9 +48094,14 @@ async function startInvitationRecoveryMcp(args, env = process.env) {
47994
48094
  throw new Error("Use only --invitation-recovery --stdio with an explicit Skills API URL.");
47995
48095
  const target = prepareInvitationRecoveryTarget(env);
47996
48096
  const server2 = new McpServer3({ name: "skills-invitation-recovery", version: package_default.version });
48097
+ servePackageZodToolList(server2);
48098
+ registerInvitationRecoveryTools(server2, new RemoteSkillsAuthClient(target.origin), target);
48099
+ target.unchanged();
48100
+ await server2.connect(new StdioServerTransport);
48101
+ }
48102
+ function registerInvitationRecoveryTools(server2, client, target) {
47997
48103
  const uuid9 = exports_external.string().regex(/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/);
47998
48104
  const proof = { invitationId: uuid9, challengeId: uuid9, token: exports_external.string().regex(/^[A-Za-z0-9_-]{43}$/).describe("Invitation secret, only in this request; never logged or persisted."), confirm: exports_external.literal(true) };
47999
- const client = new RemoteSkillsAuthClient(target.origin);
48000
48105
  server2.registerTool("request_invitation_email_challenge", {
48001
48106
  title: "Request Invitation Recovery Code",
48002
48107
  description: "Existing accounts without usable memberships only. Retain the caller challenge UUID before this single request. The response does not confirm eligibility or email delivery. No automatic retry or credential writes.",
@@ -48025,8 +48130,6 @@ async function startInvitationRecoveryMcp(args, env = process.env) {
48025
48130
  return mcpError(result.code, result.error);
48026
48131
  }
48027
48132
  });
48028
- target.unchanged();
48029
- await server2.connect(new StdioServerTransport);
48030
48133
  }
48031
48134
  var init_invitation_recovery = __esm(() => {
48032
48135
  init_zod();
@@ -48036,6 +48139,7 @@ var init_invitation_recovery = __esm(() => {
48036
48139
  init_remote_auth();
48037
48140
  init_remote_invitation_recovery();
48038
48141
  init_helpers();
48142
+ init_package_tool_list();
48039
48143
  });
48040
48144
 
48041
48145
  // src/mcp/http.ts
package/bin/migrate.js CHANGED
@@ -25,7 +25,7 @@ import { join as join5 } from "path";
25
25
  // package.json
26
26
  var package_default = {
27
27
  name: "@hasna/skills",
28
- version: "0.10.68",
28
+ version: "0.10.69",
29
29
  description: "Skills library for AI coding agents",
30
30
  type: "module",
31
31
  bin: {
@@ -91,6 +91,7 @@ var package_default = {
91
91
  "verify:release": "bun run scripts/release-guard.ts",
92
92
  "verify:release-review": "bun run scripts/verify-release-review.ts",
93
93
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
94
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
94
95
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
95
96
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
96
97
  "verify:producer": "bun run scripts/release-dependencies.ts",
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.68",
24143
+ version: "0.10.69",
24144
24144
  description: "Skills library for AI coding agents",
24145
24145
  type: "module",
24146
24146
  bin: {
@@ -24206,6 +24206,7 @@ var package_default = {
24206
24206
  "verify:release": "bun run scripts/release-guard.ts",
24207
24207
  "verify:release-review": "bun run scripts/verify-release-review.ts",
24208
24208
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
24209
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
24209
24210
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
24210
24211
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
24211
24212
  "verify:producer": "bun run scripts/release-dependencies.ts",
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.68",
24146
+ version: "0.10.69",
24147
24147
  description: "Skills library for AI coding agents",
24148
24148
  type: "module",
24149
24149
  bin: {
@@ -24209,6 +24209,7 @@ var package_default = {
24209
24209
  "verify:release": "bun run scripts/release-guard.ts",
24210
24210
  "verify:release-review": "bun run scripts/verify-release-review.ts",
24211
24211
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
24212
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
24212
24213
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
24213
24214
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
24214
24215
  "verify:producer": "bun run scripts/release-dependencies.ts",
package/dist/index.js CHANGED
@@ -11923,7 +11923,7 @@ function replaceSkillSession(expected, replacement, plan, options = {}, beforeCo
11923
11923
  });
11924
11924
  }
11925
11925
  // package.json
11926
- var version = "0.10.68";
11926
+ var version = "0.10.69";
11927
11927
  var package_default = {
11928
11928
  name: "@hasna/skills",
11929
11929
  version,
@@ -11992,6 +11992,7 @@ var package_default = {
11992
11992
  "verify:release": "bun run scripts/release-guard.ts",
11993
11993
  "verify:release-review": "bun run scripts/verify-release-review.ts",
11994
11994
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
11995
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
11995
11996
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
11996
11997
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
11997
11998
  "verify:producer": "bun run scripts/release-dependencies.ts",
@@ -1,2 +1,8 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { RemoteSkillsAuthClient } from "../lib/remote-auth.js";
1
3
  /** Dedicated anonymous proof surface. Ordinary tools and credential resolution are not initialized. */
2
4
  export declare function startInvitationRecoveryMcp(args: string[], env?: Record<string, string | undefined>): Promise<void>;
5
+ /** Register the two anonymous invitation recovery tools on `server`. */
6
+ export declare function registerInvitationRecoveryTools(server: McpServer, client: RemoteSkillsAuthClient, target: {
7
+ unchanged(): void;
8
+ }): void;
@@ -0,0 +1,19 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * Serve tools/list with JSON Schema converted by this package's own zod.
4
+ *
5
+ * bin/mcp.js bundles zod but loads the MCP SDK from the consumer's
6
+ * node_modules, and the SDK may resolve a different zod. The SDK's own
7
+ * tools/list converts each input schema with its zod; when that zod is older
8
+ * than the one that built the schema it fails (`ctx.deferred.push`) or
9
+ * advertises degraded schemas. This records the schemas each tool is
10
+ * registered with and converts them exactly as the SDK does (draft-7, `io`
11
+ * input/output, raw shapes as objects), but with the zod that built them.
12
+ * Argument validation for tools/call stays with the SDK.
13
+ *
14
+ * Call it right after constructing the server and before registering tools.
15
+ * Both `registerTool` and the positional `tool()` form are covered.
16
+ */
17
+ export declare function servePackageZodToolList(server: McpServer): void;
18
+ /** The input schema the SDK's positional `tool()` form takes from its arguments. */
19
+ export declare function legacyInputSchema(rest: readonly unknown[]): unknown;
@@ -1,4 +1,6 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /** Register every Skills tool and resource on `server`. */
3
+ export declare function registerSkillsTools(server: McpServer): void;
2
4
  export declare function buildServer(): McpServer;
3
5
  /** @deprecated Use buildServer() — kept for internal imports during migration */
4
6
  export declare const server: McpServer;
@@ -49,7 +49,7 @@ var __require = import.meta.require;
49
49
  // src/runtime-prerequisites.ts
50
50
  import { isAbsolute as isAbsolute5 } from "path";
51
51
  // package.json
52
- var version = "0.10.68";
52
+ var version = "0.10.69";
53
53
  var package_default = {
54
54
  name: "@hasna/skills",
55
55
  version,
@@ -118,6 +118,7 @@ var package_default = {
118
118
  "verify:release": "bun run scripts/release-guard.ts",
119
119
  "verify:release-review": "bun run scripts/verify-release-review.ts",
120
120
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
121
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
121
122
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
122
123
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
123
124
  "verify:producer": "bun run scripts/release-dependencies.ts",
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.68";
32374
+ var version = "0.10.69";
32375
32375
  var package_default = {
32376
32376
  name: "@hasna/skills",
32377
32377
  version,
@@ -32440,6 +32440,7 @@ var package_default = {
32440
32440
  "verify:release": "bun run scripts/release-guard.ts",
32441
32441
  "verify:release-review": "bun run scripts/verify-release-review.ts",
32442
32442
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
32443
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
32443
32444
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
32444
32445
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
32445
32446
  "verify:producer": "bun run scripts/release-dependencies.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/skills",
3
- "version": "0.10.68",
3
+ "version": "0.10.69",
4
4
  "description": "Skills library for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -66,6 +66,7 @@
66
66
  "verify:release": "bun run scripts/release-guard.ts",
67
67
  "verify:release-review": "bun run scripts/verify-release-review.ts",
68
68
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
69
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
69
70
  "prepack": "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
70
71
  "prepublishOnly": "bun run verify:producer && bun run typecheck && bun run test",
71
72
  "verify:producer": "bun run scripts/release-dependencies.ts",