@hasna/skills 0.10.67 → 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.67",
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",
@@ -40299,7 +40300,8 @@ var init_codex_native_compatibility = __esm(() => {
40299
40300
  "codex-cli 0.160.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
40300
40301
  "codex-cli 0.160.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
40301
40302
  "codex-cli 0.161.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
40302
- "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
40303
+ "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
40304
+ "codex-cli 0.162.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
40303
40305
  };
40304
40306
  SUPPORTED_CODEX_HOOK_VERSIONS = Object.freeze(Object.keys(MEASURED_CODEX_CAPABILITIES).filter((version) => supportsCodexNativeCapability(version, "hooks")));
40305
40307
  });
@@ -113533,23 +113535,120 @@ var init_remote_customer_tools = __esm(() => {
113533
113535
  init_remote_files();
113534
113536
  });
113535
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
+
113536
113630
  // src/mcp/server.ts
113537
113631
  var exports_server = {};
113538
113632
  __export(exports_server, {
113539
113633
  server: () => server,
113634
+ registerSkillsTools: () => registerSkillsTools,
113540
113635
  buildServer: () => buildServer
113541
113636
  });
113542
- function buildServer() {
113543
- const server = new McpServer({
113544
- name: "skills",
113545
- version: package_default.version
113546
- });
113637
+ function registerSkillsTools(server) {
113547
113638
  registerDiscoveryTools(server);
113548
113639
  registerOperationTools(server);
113549
113640
  registerScheduleTools(server);
113550
113641
  registerStorageTools(server);
113551
113642
  registerResourceMetaTools(server);
113552
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);
113553
113652
  return server;
113554
113653
  }
113555
113654
  var server;
@@ -113562,6 +113661,7 @@ var init_server3 = __esm(() => {
113562
113661
  init_schedule_tools();
113563
113662
  init_storage_tools();
113564
113663
  init_remote_customer_tools();
113664
+ init_package_tool_list();
113565
113665
  server = buildServer();
113566
113666
  });
113567
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.67",
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",
@@ -22755,7 +22756,8 @@ var init_codex_native_compatibility = __esm(() => {
22755
22756
  "codex-cli 0.160.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
22756
22757
  "codex-cli 0.160.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
22757
22758
  "codex-cli 0.161.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
22758
- "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
22759
+ "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
22760
+ "codex-cli 0.162.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
22759
22761
  };
22760
22762
  SUPPORTED_CODEX_HOOK_VERSIONS = Object.freeze(Object.keys(MEASURED_CODEX_CAPABILITIES).filter((version2) => supportsCodexNativeCapability(version2, "hooks")));
22761
22763
  });
@@ -47921,24 +47923,121 @@ var init_remote_customer_tools = __esm(() => {
47921
47923
  init_remote_files();
47922
47924
  });
47923
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
+
47924
48018
  // src/mcp/server.ts
47925
48019
  var exports_server = {};
47926
48020
  __export(exports_server, {
47927
48021
  server: () => server,
48022
+ registerSkillsTools: () => registerSkillsTools,
47928
48023
  buildServer: () => buildServer
47929
48024
  });
47930
48025
  import { McpServer as McpServer2 } from "@modelcontextprotocol/sdk/server/mcp.js";
47931
- function buildServer() {
47932
- const server = new McpServer2({
47933
- name: "skills",
47934
- version: package_default.version
47935
- });
48026
+ function registerSkillsTools(server) {
47936
48027
  registerDiscoveryTools(server);
47937
48028
  registerOperationTools(server);
47938
48029
  registerScheduleTools(server);
47939
48030
  registerStorageTools(server);
47940
48031
  registerResourceMetaTools(server);
47941
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);
47942
48041
  return server;
47943
48042
  }
47944
48043
  var server;
@@ -47950,6 +48049,7 @@ var init_server = __esm(() => {
47950
48049
  init_schedule_tools();
47951
48050
  init_storage_tools();
47952
48051
  init_remote_customer_tools();
48052
+ init_package_tool_list();
47953
48053
  server = buildServer();
47954
48054
  });
47955
48055
 
@@ -47984,7 +48084,8 @@ var init_invitation_recovery_target = __esm(() => {
47984
48084
  // src/mcp/invitation-recovery.ts
47985
48085
  var exports_invitation_recovery = {};
47986
48086
  __export(exports_invitation_recovery, {
47987
- startInvitationRecoveryMcp: () => startInvitationRecoveryMcp
48087
+ startInvitationRecoveryMcp: () => startInvitationRecoveryMcp,
48088
+ registerInvitationRecoveryTools: () => registerInvitationRecoveryTools
47988
48089
  });
47989
48090
  import { McpServer as McpServer3 } from "@modelcontextprotocol/sdk/server/mcp.js";
47990
48091
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -47993,9 +48094,14 @@ async function startInvitationRecoveryMcp(args, env = process.env) {
47993
48094
  throw new Error("Use only --invitation-recovery --stdio with an explicit Skills API URL.");
47994
48095
  const target = prepareInvitationRecoveryTarget(env);
47995
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) {
47996
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}$/);
47997
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) };
47998
- const client = new RemoteSkillsAuthClient(target.origin);
47999
48105
  server2.registerTool("request_invitation_email_challenge", {
48000
48106
  title: "Request Invitation Recovery Code",
48001
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.",
@@ -48024,8 +48130,6 @@ async function startInvitationRecoveryMcp(args, env = process.env) {
48024
48130
  return mcpError(result.code, result.error);
48025
48131
  }
48026
48132
  });
48027
- target.unchanged();
48028
- await server2.connect(new StdioServerTransport);
48029
48133
  }
48030
48134
  var init_invitation_recovery = __esm(() => {
48031
48135
  init_zod();
@@ -48035,6 +48139,7 @@ var init_invitation_recovery = __esm(() => {
48035
48139
  init_remote_auth();
48036
48140
  init_remote_invitation_recovery();
48037
48141
  init_helpers();
48142
+ init_package_tool_list();
48038
48143
  });
48039
48144
 
48040
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.67",
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.67",
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.67",
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
@@ -9400,7 +9400,8 @@ var MEASURED_CODEX_CAPABILITIES = {
9400
9400
  "codex-cli 0.160.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
9401
9401
  "codex-cli 0.160.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
9402
9402
  "codex-cli 0.161.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
9403
- "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
9403
+ "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
9404
+ "codex-cli 0.162.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
9404
9405
  };
9405
9406
  function supportsCodexNativeCapability(version, capability) {
9406
9407
  return typeof version === "string" && Object.hasOwn(MEASURED_CODEX_CAPABILITIES, version) && MEASURED_CODEX_CAPABILITIES[version].includes(capability);
@@ -11922,7 +11923,7 @@ function replaceSkillSession(expected, replacement, plan, options = {}, beforeCo
11922
11923
  });
11923
11924
  }
11924
11925
  // package.json
11925
- var version = "0.10.67";
11926
+ var version = "0.10.69";
11926
11927
  var package_default = {
11927
11928
  name: "@hasna/skills",
11928
11929
  version,
@@ -11991,6 +11992,7 @@ var package_default = {
11991
11992
  "verify:release": "bun run scripts/release-guard.ts",
11992
11993
  "verify:release-review": "bun run scripts/verify-release-review.ts",
11993
11994
  "verify:consumer-types": "bun run scripts/consumer-types.ts",
11995
+ "verify:consumer-mcp": "bun run scripts/consumer-mcp.ts",
11994
11996
  prepack: "bun run verify:generated && bun run verify:release && bun run verify:consumer-types",
11995
11997
  prepublishOnly: "bun run verify:producer && bun run typecheck && bun run test",
11996
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.67";
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",
@@ -1937,7 +1938,8 @@ var MEASURED_CODEX_CAPABILITIES = {
1937
1938
  "codex-cli 0.160.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
1938
1939
  "codex-cli 0.160.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
1939
1940
  "codex-cli 0.161.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
1940
- "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
1941
+ "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
1942
+ "codex-cli 0.162.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
1941
1943
  };
1942
1944
  function supportsCodexNativeCapability(version2, capability) {
1943
1945
  return typeof version2 === "string" && Object.hasOwn(MEASURED_CODEX_CAPABILITIES, version2) && MEASURED_CODEX_CAPABILITIES[version2].includes(capability);
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.67";
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",
@@ -38807,7 +38808,8 @@ var MEASURED_CODEX_CAPABILITIES = {
38807
38808
  "codex-cli 0.160.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
38808
38809
  "codex-cli 0.160.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
38809
38810
  "codex-cli 0.161.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
38810
- "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
38811
+ "codex-cli 0.162.0": ["hooks", "qualified-skill-catalog", "installed-plugin-review"],
38812
+ "codex-cli 0.162.1": ["hooks", "qualified-skill-catalog", "installed-plugin-review"]
38811
38813
  };
38812
38814
  function supportsCodexNativeCapability(version2, capability) {
38813
38815
  return typeof version2 === "string" && Object.hasOwn(MEASURED_CODEX_CAPABILITIES, version2) && MEASURED_CODEX_CAPABILITIES[version2].includes(capability);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/skills",
3
- "version": "0.10.67",
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",