@julong/mono-rele2-utils 1.32.0 → 1.33.0
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/dist/chunk-CDRQCMN2.cjs +145 -0
- package/dist/chunk-JG5KC5FP.js +145 -0
- package/dist/cli.cjs +1 -6
- package/dist/cli.js +1 -6
- package/dist/index.cjs +1 -67
- package/dist/index.js +1 -67
- package/dist/server.cjs +1 -5
- package/dist/server.js +1 -5
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
`),process.exit(n?1:0));let o=e[n],s=Object.keys(o.inputSchema),c={};for(let i=0;i<s.length;i++){let g=t[i];if(g!==void 0)try{c[s[i]]=JSON.parse(g)}catch{c[s[i]]=g}}let f=y.z.object(o.inputSchema).parse(c),m=await o.handler(f);for(let i of m.content)i.type==="text"&&console.log(i.text)}function Z(e){e instanceof y.z.ZodError?console.error("Validation error:",e.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ")):console.error("Error:",e instanceof Error?e.message:String(e)),process.exit(1)}var k=require("zod");var a=require("zod");function w(...e){return e.filter(Boolean).join(" ")}var d={cnTool:{name:"cn",description:"Merges class names, filtering out falsy values",inputSchema:{classes:a.z.array(a.z.string()).describe("List of class names to merge")},typeLabels:{classes:"string[]"},returnType:"string",returnDescription:"Merged class name string with falsy values filtered out",handler:async({classes:e})=>r(w(...e)),examples:[{args:[`'["btn","active","large"]'`],result:"btn active large"}]},caseConvertTool:{name:"case_convert",description:"Converts text to the specified case format",inputSchema:{input:a.z.string().describe("Text to convert"),to:a.z.enum(["upper","lower","capitalize","camel","snake","kebab"]).describe("Target case format")},typeLabels:{input:"string",to:'"upper" | "lower" | "capitalize" | "camel" | "snake" | "kebab"'},returnType:"string",returnDescription:"Converted text in the target case format",handler:async({input:e,to:n})=>r(N(e,n)),examples:[{args:['"hello world"',"camel"],result:"helloWorld"},{args:['"helloWorld"',"snake"],result:"hello_world"},{args:['"hello world"',"kebab"],result:"hello-world"}]},truncateTool:{name:"truncate",description:"Truncates text to a maximum length and appends a suffix",inputSchema:{input:a.z.string().describe("Text to truncate"),maxLength:a.z.number().int().positive().describe("Maximum character length"),suffix:a.z.string().default("...").describe("Suffix to append when truncated")},typeLabels:{input:"string",maxLength:"number",suffix:"string"},returnType:"string",returnDescription:"Truncated text with the configured suffix appended if truncated",handler:async({input:e,maxLength:n,suffix:t})=>{let o=e.length<=n?e:e.slice(0,n-t.length)+t;return r(o)},examples:[{args:['"hello world long text"',"10"],result:"hello w..."},{args:['"hello world"',"8",'"\u2026"'],result:"hello w\u2026"}]}},z=d.cnTool,D=d.caseConvertTool,R=d.truncateTool;function N(e,n){switch(n){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();case"capitalize":return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();case"camel":return e.replace(/[-_\s]+(.)/g,(t,o)=>o.toUpperCase()).replace(/^(.)/,t=>t.toLowerCase());case"snake":return e.replace(/([A-Z])/g,"_$1").replace(/[-\s]+/g,"_").toLowerCase().replace(/^_/,"");case"kebab":return e.replace(/([A-Z])/g,"-$1").replace(/[_\s]+/g,"-").toLowerCase().replace(/^-/,"")}}var p=require("zod");function E(e){let n=typeof e=="string"?JSON.parse(e):e,t={};function o(s,c){if(s===null||typeof s!="object"||Array.isArray(s)){t[c]=s;return}for(let[f,m]of Object.entries(s)){let i=c?`${c}.${f}`:f;o(m,i)}}return o(n,""),t}var b={objectFlattenTool:{name:"object_flatten",description:"Flattens a nested JSON object of any depth into dot-notation key-value pairs. Accepts a JSON string and recursively flattens all levels. Arrays and primitives at any level are treated as leaf values.",inputSchema:{json:p.z.union([p.z.string(),p.z.record(p.z.string(),p.z.any())]).describe("JSON string or parsed object to flatten (unlimited depth)")},handler:async({json:e})=>{try{let t=E(e);return r(JSON.stringify(t,null,2))}catch(n){return n instanceof SyntaxError?r("Error: invalid JSON string \u2014 unable to parse input"):r(`Error: failed to flatten object \u2014 ${n.message}`)}},examples:[{args:[`'{"user":{"name":"Alice","address":{"city":"Seoul","zip":"12345"}},"active":true}'`],result:JSON.stringify({"user.name":"Alice","user.address.city":"Seoul","user.address.zip":"12345",active:!0},null,2)},{args:[`'{"a":{"b":{"c":{"d":{"e":"deep"}}}}}'`],result:JSON.stringify({"a.b.c.d.e":"deep"},null,2)}],returnType:"JsonObject",returnDescription:'Flattened object with dot-notation keys \u2014 e.g. { "a.b.c": value }',guidelines:["Arrays and primitives at any level are always treated as leaf values \u2014 they are never traversed.","The result is always a flat JSON object with dot-notation keys.","There is no depth limit \u2014 objects of any nesting level are fully flattened.","Input is accepted as a JSON string (MCP/CLI) and parsed internally."]}},J=b.objectFlattenTool;var u=require("zod");function C(e){let n=typeof e=="string"?JSON.parse(e):e,{first:t,last:o}=n.name,s=n.location.city;return`\uC774\uB984\uC740 ${t} ${o} \uC774\uACE0 \uD604\uC7AC ${s} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.`}var x={getUserTool:{name:"getUser",description:"RandomUser API \uD615\uC2DD\uC758 \uC0AC\uC6A9\uC790 \uAC1D\uCCB4\uB97C \uBC1B\uC544 \uC774\uB984\uACFC \uAC70\uC8FC \uB3C4\uC2DC\uB85C \uAD6C\uC131\uB41C \uD55C\uAE00 \uBB38\uC7A5\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. JSON \uBB38\uC790\uC5F4 \uB610\uB294 \uD30C\uC2F1\uB41C \uAC1D\uCCB4\uB97C \uC785\uB825\uBC1B\uC2B5\uB2C8\uB2E4.",inputSchema:{user:u.z.union([u.z.string(),u.z.record(u.z.string(),u.z.any())]).describe("RandomUser \uD615\uC2DD\uC758 JSON \uBB38\uC790\uC5F4 \uB610\uB294 \uAC1D\uCCB4 \u2014 name.first / name.last / location.city \uD544\uC218")},typeLabels:{user:"RandomUser"},typeDefs:{user:["interface RandomUser {",' gender: "male" | "female";'," name: {"," title: string;"," first: string;"," last: string;"," };"," location: {"," street: {"," number: number;"," name: string;"," };"," city: string;"," state: string;"," country: string;"," postcode: string | number;"," coordinates: {"," latitude: string;"," longitude: string;"," };"," timezone: {"," offset: string;"," description: string;"," };"," };"," email: string;"," login: {"," uuid: string;"," username: string;"," };"," dob: {"," date: string;"," age: number;"," };"," phone: string;"," cell: string;"," picture: {"," large: string;"," medium: string;"," thumbnail: string;"," };"," nat: string;","}"].join(`
|
|
4
|
-
`)},returnType:"string",returnDescription:'"\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4." \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5',handler:async({user:e})=>{try{let t=C(e);return r(t)}catch(n){return n instanceof SyntaxError?r("Error: invalid JSON string \u2014 unable to parse input"):r(`Error: failed to process user data \u2014 ${n.message}
|
|
5
|
-
|
|
6
|
-
Input must include \`name.first\`, \`name.last\`, and \`location.city\`.`)}},examples:[{args:[`'{"name":{"title":"Mr","first":"Alice","last":"Kim"},"location":{"city":"Seoul"},"gender":"female","email":"alice@example.com","nat":"KR"}'`],result:"\uC774\uB984\uC740 Alice Kim \uC774\uACE0 \uD604\uC7AC Seoul \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4."}],guidelines:["\uC785\uB825\uC740 RandomUser API \uC2A4\uD399\uC744 \uB530\uB985\uB2C8\uB2E4. \uCD5C\uC18C\uD55C name.first, name.last, location.city \uD544\uB4DC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.","JSON \uBB38\uC790\uC5F4(string)\uACFC \uD30C\uC2F1\uB41C \uAC1D\uCCB4 \uBAA8\uB450 \uD5C8\uC6A9\uB429\uB2C8\uB2E4 (CLI / MCP \uBAA8\uB450 \uB3D9\uC791).","\uACB0\uACFC\uB294 \uD56D\uC0C1 '\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.' \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5\uC785\uB2C8\uB2E4."]}},U=x.getUserTool;var S=require("zod"),l=["API_KEY"];function L(e){let n=e.filter(o=>!l.includes(o));if(n.length>0)throw new Error(`Invalid env key(s): ${n.join(", ")}. Allowed keys: ${l.join(", ")}`);let t={};for(let o of e){let s=process.env[o];s!==void 0&&(t[o]=s)}return t}var $={envGetTool:{name:"env_get",description:`MCP \uD074\uB77C\uC774\uC5B8\uD2B8 config\uC758 env \uD544\uB4DC\uB97C \uD1B5\uD574 \uC8FC\uC785\uB41C \uD658\uACBD \uBCC0\uC218 \uAC12\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. \uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4\uB294 \uD328\uD0A4\uC9C0\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uD658\uACBD \uBCC0\uC218\uB85C \uD55C\uC815\uB429\uB2C8\uB2E4. \uD604\uC7AC \uC9C0\uC6D0: ${l.join(", ")}.`,inputSchema:{keys:S.z.array(S.z.string()).nonempty().describe(`\uC870\uD68C\uD560 \uD658\uACBD \uBCC0\uC218 \uC774\uB984 \uBAA9\uB85D (\uC720\uD6A8 \uD0A4: ${l.join(", ")})`)},typeLabels:{keys:"string[]"},typeDefs:{keys:["// @julong/mono-rele2-utils \uD658\uACBD \uBCC0\uC218 \uD0A4 \uBAA9\uB85D",...l.map(e=>`// "${e}"`),"","// MCP client config \uC608\uC2DC:","// {",'// "mcpServers": {','// "@julong/mono-rele2-utils": {','// "command": "npx",','// "args": ["-y", "@julong/mono-rele2-utils"],','// "env": {',...l.map(e=>`// "${e}": "<value>"`),"// }","// }","// }","// }"].join(`
|
|
7
|
-
`)},returnType:"Record<string, string>",returnDescription:"key: \uD658\uACBD \uBCC0\uC218 \uC774\uB984, value: \uD574\uB2F9 \uAC12 (\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uBCC0\uC218\uB294 \uACB0\uACFC\uC5D0\uC11C \uC81C\uC678)",handler:async({keys:e})=>{try{let n=L(e);return Object.keys(n).length===0?r("(no matching environment variables found)"):r(JSON.stringify(n,null,2))}catch(n){return r(`Error: ${n.message}`)}},examples:[{args:[`'["API_KEY"]'`],result:JSON.stringify({API_KEY:"<value>"},null,2)}],guidelines:[`\uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4: ${l.join(", ")}`,"MCP client config.json\uC758 env \uD544\uB4DC\uC5D0 \uC704 \uD0A4\uB4E4\uB9CC \uC124\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uD0A4\uB97C \uC694\uCCAD\uD558\uBA74 \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uC5D0 \uD5C8\uC6A9\uB41C \uD0A4 \uBAA9\uB85D\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uD658\uACBD \uBCC0\uC218\uB294 \uACB0\uACFC \uAC1D\uCCB4\uC5D0\uC11C \uC81C\uC678\uB429\uB2C8\uB2E4."]}},_=$.envGetTool;var v={...d,...b,...x,...$};j(v).catch(Z);
|
|
2
|
+
"use strict";var _chunkCDRQCMN2cjs = require('./chunk-CDRQCMN2.cjs');_chunkCDRQCMN2cjs.d.call(void 0, _chunkCDRQCMN2cjs.n).catch(_chunkCDRQCMN2cjs.e);
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
`),process.exit(n?1:0));let o=e[n],s=Object.keys(o.inputSchema),l={};for(let i=0;i<s.length;i++){let g=t[i];if(g!==void 0)try{l[s[i]]=JSON.parse(g)}catch{l[s[i]]=g}}let f=S.object(o.inputSchema).parse(l),m=await o.handler(f);for(let i of m.content)i.type==="text"&&console.log(i.text)}function j(e){e instanceof S.ZodError?console.error("Validation error:",e.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ")):console.error("Error:",e instanceof Error?e.message:String(e)),process.exit(1)}import{z as G}from"zod";import{z as c}from"zod";function Z(...e){return e.filter(Boolean).join(" ")}var p={cnTool:{name:"cn",description:"Merges class names, filtering out falsy values",inputSchema:{classes:c.array(c.string()).describe("List of class names to merge")},typeLabels:{classes:"string[]"},returnType:"string",returnDescription:"Merged class name string with falsy values filtered out",handler:async({classes:e})=>r(Z(...e)),examples:[{args:[`'["btn","active","large"]'`],result:"btn active large"}]},caseConvertTool:{name:"case_convert",description:"Converts text to the specified case format",inputSchema:{input:c.string().describe("Text to convert"),to:c.enum(["upper","lower","capitalize","camel","snake","kebab"]).describe("Target case format")},typeLabels:{input:"string",to:'"upper" | "lower" | "capitalize" | "camel" | "snake" | "kebab"'},returnType:"string",returnDescription:"Converted text in the target case format",handler:async({input:e,to:n})=>r(z(e,n)),examples:[{args:['"hello world"',"camel"],result:"helloWorld"},{args:['"helloWorld"',"snake"],result:"hello_world"},{args:['"hello world"',"kebab"],result:"hello-world"}]},truncateTool:{name:"truncate",description:"Truncates text to a maximum length and appends a suffix",inputSchema:{input:c.string().describe("Text to truncate"),maxLength:c.number().int().positive().describe("Maximum character length"),suffix:c.string().default("...").describe("Suffix to append when truncated")},typeLabels:{input:"string",maxLength:"number",suffix:"string"},returnType:"string",returnDescription:"Truncated text with the configured suffix appended if truncated",handler:async({input:e,maxLength:n,suffix:t})=>{let o=e.length<=n?e:e.slice(0,n-t.length)+t;return r(o)},examples:[{args:['"hello world long text"',"10"],result:"hello w..."},{args:['"hello world"',"8",'"\u2026"'],result:"hello w\u2026"}]}},O=p.cnTool,A=p.caseConvertTool,k=p.truncateTool;function z(e,n){switch(n){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();case"capitalize":return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();case"camel":return e.replace(/[-_\s]+(.)/g,(t,o)=>o.toUpperCase()).replace(/^(.)/,t=>t.toLowerCase());case"snake":return e.replace(/([A-Z])/g,"_$1").replace(/[-\s]+/g,"_").toLowerCase().replace(/^_/,"");case"kebab":return e.replace(/([A-Z])/g,"-$1").replace(/[_\s]+/g,"-").toLowerCase().replace(/^-/,"")}}import{z as u}from"zod";function D(e){let n=typeof e=="string"?JSON.parse(e):e,t={};function o(s,l){if(s===null||typeof s!="object"||Array.isArray(s)){t[l]=s;return}for(let[f,m]of Object.entries(s)){let i=l?`${l}.${f}`:f;o(m,i)}}return o(n,""),t}var h={objectFlattenTool:{name:"object_flatten",description:"Flattens a nested JSON object of any depth into dot-notation key-value pairs. Accepts a JSON string and recursively flattens all levels. Arrays and primitives at any level are treated as leaf values.",inputSchema:{json:u.union([u.string(),u.record(u.string(),u.any())]).describe("JSON string or parsed object to flatten (unlimited depth)")},handler:async({json:e})=>{try{let t=D(e);return r(JSON.stringify(t,null,2))}catch(n){return n instanceof SyntaxError?r("Error: invalid JSON string \u2014 unable to parse input"):r(`Error: failed to flatten object \u2014 ${n.message}`)}},examples:[{args:[`'{"user":{"name":"Alice","address":{"city":"Seoul","zip":"12345"}},"active":true}'`],result:JSON.stringify({"user.name":"Alice","user.address.city":"Seoul","user.address.zip":"12345",active:!0},null,2)},{args:[`'{"a":{"b":{"c":{"d":{"e":"deep"}}}}}'`],result:JSON.stringify({"a.b.c.d.e":"deep"},null,2)}],returnType:"JsonObject",returnDescription:'Flattened object with dot-notation keys \u2014 e.g. { "a.b.c": value }',guidelines:["Arrays and primitives at any level are always treated as leaf values \u2014 they are never traversed.","The result is always a flat JSON object with dot-notation keys.","There is no depth limit \u2014 objects of any nesting level are fully flattened.","Input is accepted as a JSON string (MCP/CLI) and parsed internally."]}},R=h.objectFlattenTool;import{z as d}from"zod";function N(e){let n=typeof e=="string"?JSON.parse(e):e,{first:t,last:o}=n.name,s=n.location.city;return`\uC774\uB984\uC740 ${t} ${o} \uC774\uACE0 \uD604\uC7AC ${s} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.`}var b={getUserTool:{name:"getUser",description:"RandomUser API \uD615\uC2DD\uC758 \uC0AC\uC6A9\uC790 \uAC1D\uCCB4\uB97C \uBC1B\uC544 \uC774\uB984\uACFC \uAC70\uC8FC \uB3C4\uC2DC\uB85C \uAD6C\uC131\uB41C \uD55C\uAE00 \uBB38\uC7A5\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. JSON \uBB38\uC790\uC5F4 \uB610\uB294 \uD30C\uC2F1\uB41C \uAC1D\uCCB4\uB97C \uC785\uB825\uBC1B\uC2B5\uB2C8\uB2E4.",inputSchema:{user:d.union([d.string(),d.record(d.string(),d.any())]).describe("RandomUser \uD615\uC2DD\uC758 JSON \uBB38\uC790\uC5F4 \uB610\uB294 \uAC1D\uCCB4 \u2014 name.first / name.last / location.city \uD544\uC218")},typeLabels:{user:"RandomUser"},typeDefs:{user:["interface RandomUser {",' gender: "male" | "female";'," name: {"," title: string;"," first: string;"," last: string;"," };"," location: {"," street: {"," number: number;"," name: string;"," };"," city: string;"," state: string;"," country: string;"," postcode: string | number;"," coordinates: {"," latitude: string;"," longitude: string;"," };"," timezone: {"," offset: string;"," description: string;"," };"," };"," email: string;"," login: {"," uuid: string;"," username: string;"," };"," dob: {"," date: string;"," age: number;"," };"," phone: string;"," cell: string;"," picture: {"," large: string;"," medium: string;"," thumbnail: string;"," };"," nat: string;","}"].join(`
|
|
4
|
-
`)},returnType:"string",returnDescription:'"\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4." \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5',handler:async({user:e})=>{try{let t=N(e);return r(t)}catch(n){return n instanceof SyntaxError?r("Error: invalid JSON string \u2014 unable to parse input"):r(`Error: failed to process user data \u2014 ${n.message}
|
|
5
|
-
|
|
6
|
-
Input must include \`name.first\`, \`name.last\`, and \`location.city\`.`)}},examples:[{args:[`'{"name":{"title":"Mr","first":"Alice","last":"Kim"},"location":{"city":"Seoul"},"gender":"female","email":"alice@example.com","nat":"KR"}'`],result:"\uC774\uB984\uC740 Alice Kim \uC774\uACE0 \uD604\uC7AC Seoul \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4."}],guidelines:["\uC785\uB825\uC740 RandomUser API \uC2A4\uD399\uC744 \uB530\uB985\uB2C8\uB2E4. \uCD5C\uC18C\uD55C name.first, name.last, location.city \uD544\uB4DC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.","JSON \uBB38\uC790\uC5F4(string)\uACFC \uD30C\uC2F1\uB41C \uAC1D\uCCB4 \uBAA8\uB450 \uD5C8\uC6A9\uB429\uB2C8\uB2E4 (CLI / MCP \uBAA8\uB450 \uB3D9\uC791).","\uACB0\uACFC\uB294 \uD56D\uC0C1 '\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.' \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5\uC785\uB2C8\uB2E4."]}},E=b.getUserTool;import{z as w}from"zod";var a=["API_KEY"];function J(e){let n=e.filter(o=>!a.includes(o));if(n.length>0)throw new Error(`Invalid env key(s): ${n.join(", ")}. Allowed keys: ${a.join(", ")}`);let t={};for(let o of e){let s=process.env[o];s!==void 0&&(t[o]=s)}return t}var x={envGetTool:{name:"env_get",description:`MCP \uD074\uB77C\uC774\uC5B8\uD2B8 config\uC758 env \uD544\uB4DC\uB97C \uD1B5\uD574 \uC8FC\uC785\uB41C \uD658\uACBD \uBCC0\uC218 \uAC12\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. \uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4\uB294 \uD328\uD0A4\uC9C0\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uD658\uACBD \uBCC0\uC218\uB85C \uD55C\uC815\uB429\uB2C8\uB2E4. \uD604\uC7AC \uC9C0\uC6D0: ${a.join(", ")}.`,inputSchema:{keys:w.array(w.string()).nonempty().describe(`\uC870\uD68C\uD560 \uD658\uACBD \uBCC0\uC218 \uC774\uB984 \uBAA9\uB85D (\uC720\uD6A8 \uD0A4: ${a.join(", ")})`)},typeLabels:{keys:"string[]"},typeDefs:{keys:["// @julong/mono-rele2-utils \uD658\uACBD \uBCC0\uC218 \uD0A4 \uBAA9\uB85D",...a.map(e=>`// "${e}"`),"","// MCP client config \uC608\uC2DC:","// {",'// "mcpServers": {','// "@julong/mono-rele2-utils": {','// "command": "npx",','// "args": ["-y", "@julong/mono-rele2-utils"],','// "env": {',...a.map(e=>`// "${e}": "<value>"`),"// }","// }","// }","// }"].join(`
|
|
7
|
-
`)},returnType:"Record<string, string>",returnDescription:"key: \uD658\uACBD \uBCC0\uC218 \uC774\uB984, value: \uD574\uB2F9 \uAC12 (\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uBCC0\uC218\uB294 \uACB0\uACFC\uC5D0\uC11C \uC81C\uC678)",handler:async({keys:e})=>{try{let n=J(e);return Object.keys(n).length===0?r("(no matching environment variables found)"):r(JSON.stringify(n,null,2))}catch(n){return r(`Error: ${n.message}`)}},examples:[{args:[`'["API_KEY"]'`],result:JSON.stringify({API_KEY:"<value>"},null,2)}],guidelines:[`\uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4: ${a.join(", ")}`,"MCP client config.json\uC758 env \uD544\uB4DC\uC5D0 \uC704 \uD0A4\uB4E4\uB9CC \uC124\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uD0A4\uB97C \uC694\uCCAD\uD558\uBA74 \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uC5D0 \uD5C8\uC6A9\uB41C \uD0A4 \uBAA9\uB85D\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uD658\uACBD \uBCC0\uC218\uB294 \uACB0\uACFC \uAC1D\uCCB4\uC5D0\uC11C \uC81C\uC678\uB429\uB2C8\uB2E4."]}},C=x.envGetTool;var v={...p,...h,...b,...x};$(v).catch(j);
|
|
2
|
+
import{d as r,e as o,n as i}from"./chunk-JG5KC5FP.js";r(i).catch(o);
|
package/dist/index.cjs
CHANGED
|
@@ -1,67 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
name: ${t}
|
|
3
|
-
description: ${e}
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# ${t}
|
|
7
|
-
|
|
8
|
-
\`\`\`sh
|
|
9
|
-
${t} <toolName> [...args]
|
|
10
|
-
\`\`\`
|
|
11
|
-
|
|
12
|
-
## Skills
|
|
13
|
-
|
|
14
|
-
${B(o)}
|
|
15
|
-
|
|
16
|
-
## Examples
|
|
17
|
-
|
|
18
|
-
${G(t,o)}
|
|
19
|
-
|
|
20
|
-
## Guidelines
|
|
21
|
-
|
|
22
|
-
${Y(t,o)}
|
|
23
|
-
`}function B(n){return Object.entries(n).map(([t,e])=>{let o=Object.entries(e.inputSchema).map(([a,s])=>{let c=e.typeLabels?.[a];return`| \`${a}\` | ${F(s,c)} |`}).join(`
|
|
24
|
-
`),r=e.typeDefs?Object.entries(e.typeDefs).map(([a,s])=>`
|
|
25
|
-
|
|
26
|
-
**\`${a}\`** type definition:
|
|
27
|
-
\`\`\`typescript
|
|
28
|
-
${s}
|
|
29
|
-
\`\`\``).join(""):"";return`### ${t}
|
|
30
|
-
|
|
31
|
-
${e.description}
|
|
32
|
-
|
|
33
|
-
| arg | description |
|
|
34
|
-
|-----|-------------|
|
|
35
|
-
${o}${r}`}).join(`
|
|
36
|
-
|
|
37
|
-
`)}function F(n,t){let e=n.description??"",o=n,r,a=!1;for(;o instanceof i.z.ZodOptional||o instanceof i.z.ZodDefault;){if(o instanceof i.z.ZodDefault){let c=o.def.defaultValue;r=typeof c=="function"?c():c}o instanceof i.z.ZodOptional&&(a=!0),o=o.unwrap()}let s=[];if(t&&s.push(`Type: ${t}`),e&&s.push(e),o instanceof i.z.ZodEnum){let c=o.options.map(g=>`\`${g}\``).join(" \\| ");s.push(c)}return r!==void 0?s.push(`default: \`${String(r)}\``):a&&s.push("optional"),s.join(" \u2014 ")}function G(n,t){let e=[];for(let[o,r]of Object.entries(t))if(r.examples)for(let a of r.examples){let s=[n,o,...a.args].join(" ");e.push(`- \`${s}\` => \`${a.result}\``)}return e.join(`
|
|
38
|
-
`)}function Y(n,t){let e=[],o=new Set,r=s=>{o.has(s)||(o.add(s),e.push(s))};r("Arguments are positional \u2014 pass them in the order listed in each skill's table");let a=Object.values(t).flatMap(s=>Object.values(s.inputSchema));a.some(s=>k(s,i.z.ZodNumber))&&r("Numeric args are auto-parsed \u2014 pass as plain numbers (e.g. `10`)"),a.some(s=>k(s,i.z.ZodArray))&&r('Array args must be valid JSON \u2014 wrap in single quotes on Unix shells (e.g. `\'["a","b"]\'`)'),a.some(s=>s instanceof i.z.ZodOptional||s instanceof i.z.ZodDefault)&&r("Optional args with defaults may be omitted");for(let s of Object.values(t))if(s.guidelines)for(let c of s.guidelines)r(c);return r(`Run \`${n}\` with no args to list all available skills`),e.map(s=>`- ${s}`).join(`
|
|
39
|
-
`)}function k(n,t){let e=n;for(;e instanceof i.z.ZodOptional||e instanceof i.z.ZodDefault;)e=e.unwrap();return e instanceof t}function D(n){let{binName:t,tools:e}=n;return Object.entries(e).map(([o,r])=>W(t,o,r)).join(`
|
|
40
|
-
|
|
41
|
-
`)}function W(n,t,e){let o=Object.entries(e.inputSchema),r=o.map(([p,u])=>u instanceof i.z.ZodOptional||u instanceof i.z.ZodDefault?`[${p}]`:`<${p}>`).join(" "),a=[n,t,r].filter(Boolean).join(" "),s=o.map(([p,u])=>{let x=e.typeLabels?.[p],m=R(u,x),S=q(u);return`| \`${p}\` | ${m} | ${S} |`}).join(`
|
|
42
|
-
`),c=e.examples??[],g="";if(c.length>0){let p=c.map(m=>[n,t,...m.args].join(" ")),u=Math.max(...p.map(m=>m.length));g=`
|
|
43
|
-
|
|
44
|
-
\`\`\`sh
|
|
45
|
-
${c.map((m,S)=>`${p[S].padEnd(u)} # ${m.result}`).join(`
|
|
46
|
-
`)}
|
|
47
|
-
\`\`\``}let E=e.typeDefs?Object.entries(e.typeDefs).map(([p,u])=>`
|
|
48
|
-
|
|
49
|
-
**\`${p}\`** type definition:
|
|
50
|
-
|
|
51
|
-
\`\`\`typescript
|
|
52
|
-
${u}
|
|
53
|
-
\`\`\``).join(""):"",J=s?`
|
|
54
|
-
|
|
55
|
-
| arg | type | description |
|
|
56
|
-
|-----|------|-------------|
|
|
57
|
-
${s}`:"";return`#### \`${t}\`
|
|
58
|
-
|
|
59
|
-
${e.description}.
|
|
60
|
-
|
|
61
|
-
\`\`\`sh
|
|
62
|
-
${a}
|
|
63
|
-
\`\`\`${J}${E}${g}`}function R(n,t){if(t)return t;let e=n;for(;e instanceof i.z.ZodOptional||e instanceof i.z.ZodDefault;)e=e.unwrap();return e instanceof i.z.ZodEnum?e.options.map(o=>`\`${o}\``).join(" \\| "):e instanceof i.z.ZodNumber?"number":e instanceof i.z.ZodString?"string":e instanceof i.z.ZodBoolean?"boolean":e instanceof i.z.ZodArray?"JSON string (array)":e instanceof i.z.ZodUnion?e.options.map(r=>R(r)).join(" \\| "):e instanceof i.z.ZodRecord?"JSON object":"unknown"}function q(n){let t=n.description??"",e=n,o,r=!1;for(;e instanceof i.z.ZodOptional||e instanceof i.z.ZodDefault;){if(e instanceof i.z.ZodDefault){let a=e.def.defaultValue;o=typeof a=="function"?a():a}e instanceof i.z.ZodOptional&&(r=!0),e=e.unwrap()}return o!==void 0?`${t} (default: \`${String(o)}\`)`:r?`${t} (optional)`:t}var d=require("zod");var b={cnTool:{name:"cn",description:"Merges class names, filtering out falsy values",inputSchema:{classes:d.z.array(d.z.string()).describe("List of class names to merge")},typeLabels:{classes:"string[]"},returnType:"string",returnDescription:"Merged class name string with falsy values filtered out",handler:async({classes:n})=>l(h(...n)),examples:[{args:[`'["btn","active","large"]'`],result:"btn active large"}]},caseConvertTool:{name:"case_convert",description:"Converts text to the specified case format",inputSchema:{input:d.z.string().describe("Text to convert"),to:d.z.enum(["upper","lower","capitalize","camel","snake","kebab"]).describe("Target case format")},typeLabels:{input:"string",to:'"upper" | "lower" | "capitalize" | "camel" | "snake" | "kebab"'},returnType:"string",returnDescription:"Converted text in the target case format",handler:async({input:n,to:t})=>l(ee(n,t)),examples:[{args:['"hello world"',"camel"],result:"helloWorld"},{args:['"helloWorld"',"snake"],result:"hello_world"},{args:['"hello world"',"kebab"],result:"hello-world"}]},truncateTool:{name:"truncate",description:"Truncates text to a maximum length and appends a suffix",inputSchema:{input:d.z.string().describe("Text to truncate"),maxLength:d.z.number().int().positive().describe("Maximum character length"),suffix:d.z.string().default("...").describe("Suffix to append when truncated")},typeLabels:{input:"string",maxLength:"number",suffix:"string"},returnType:"string",returnDescription:"Truncated text with the configured suffix appended if truncated",handler:async({input:n,maxLength:t,suffix:e})=>{let o=n.length<=t?n:n.slice(0,t-e.length)+e;return l(o)},examples:[{args:['"hello world long text"',"10"],result:"hello w..."},{args:['"hello world"',"8",'"\u2026"'],result:"hello w\u2026"}]}},H=b.cnTool,Q=b.caseConvertTool,X=b.truncateTool;function ee(n,t){switch(t){case"upper":return n.toUpperCase();case"lower":return n.toLowerCase();case"capitalize":return n.charAt(0).toUpperCase()+n.slice(1).toLowerCase();case"camel":return n.replace(/[-_\s]+(.)/g,(e,o)=>o.toUpperCase()).replace(/^(.)/,e=>e.toLowerCase());case"snake":return n.replace(/([A-Z])/g,"_$1").replace(/[-\s]+/g,"_").toLowerCase().replace(/^_/,"");case"kebab":return n.replace(/([A-Z])/g,"-$1").replace(/[_\s]+/g,"-").toLowerCase().replace(/^-/,"")}}var y=require("zod");function ne(n){let t=typeof n=="string"?JSON.parse(n):n,e={};function o(r,a){if(r===null||typeof r!="object"||Array.isArray(r)){e[a]=r;return}for(let[s,c]of Object.entries(r)){let g=a?`${a}.${s}`:s;o(c,g)}}return o(t,""),e}var w={objectFlattenTool:{name:"object_flatten",description:"Flattens a nested JSON object of any depth into dot-notation key-value pairs. Accepts a JSON string and recursively flattens all levels. Arrays and primitives at any level are treated as leaf values.",inputSchema:{json:y.z.union([y.z.string(),y.z.record(y.z.string(),y.z.any())]).describe("JSON string or parsed object to flatten (unlimited depth)")},handler:async({json:n})=>{try{let e=ne(n);return l(JSON.stringify(e,null,2))}catch(t){return t instanceof SyntaxError?l("Error: invalid JSON string \u2014 unable to parse input"):l(`Error: failed to flatten object \u2014 ${t.message}`)}},examples:[{args:[`'{"user":{"name":"Alice","address":{"city":"Seoul","zip":"12345"}},"active":true}'`],result:JSON.stringify({"user.name":"Alice","user.address.city":"Seoul","user.address.zip":"12345",active:!0},null,2)},{args:[`'{"a":{"b":{"c":{"d":{"e":"deep"}}}}}'`],result:JSON.stringify({"a.b.c.d.e":"deep"},null,2)}],returnType:"JsonObject",returnDescription:'Flattened object with dot-notation keys \u2014 e.g. { "a.b.c": value }',guidelines:["Arrays and primitives at any level are always treated as leaf values \u2014 they are never traversed.","The result is always a flat JSON object with dot-notation keys.","There is no depth limit \u2014 objects of any nesting level are fully flattened.","Input is accepted as a JSON string (MCP/CLI) and parsed internally."]}},te=w.objectFlattenTool;var T=require("zod");function oe(n){let t=typeof n=="string"?JSON.parse(n):n,{first:e,last:o}=t.name,r=t.location.city;return`\uC774\uB984\uC740 ${e} ${o} \uC774\uACE0 \uD604\uC7AC ${r} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.`}var v={getUserTool:{name:"getUser",description:"RandomUser API \uD615\uC2DD\uC758 \uC0AC\uC6A9\uC790 \uAC1D\uCCB4\uB97C \uBC1B\uC544 \uC774\uB984\uACFC \uAC70\uC8FC \uB3C4\uC2DC\uB85C \uAD6C\uC131\uB41C \uD55C\uAE00 \uBB38\uC7A5\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. JSON \uBB38\uC790\uC5F4 \uB610\uB294 \uD30C\uC2F1\uB41C \uAC1D\uCCB4\uB97C \uC785\uB825\uBC1B\uC2B5\uB2C8\uB2E4.",inputSchema:{user:T.z.union([T.z.string(),T.z.record(T.z.string(),T.z.any())]).describe("RandomUser \uD615\uC2DD\uC758 JSON \uBB38\uC790\uC5F4 \uB610\uB294 \uAC1D\uCCB4 \u2014 name.first / name.last / location.city \uD544\uC218")},typeLabels:{user:"RandomUser"},typeDefs:{user:["interface RandomUser {",' gender: "male" | "female";'," name: {"," title: string;"," first: string;"," last: string;"," };"," location: {"," street: {"," number: number;"," name: string;"," };"," city: string;"," state: string;"," country: string;"," postcode: string | number;"," coordinates: {"," latitude: string;"," longitude: string;"," };"," timezone: {"," offset: string;"," description: string;"," };"," };"," email: string;"," login: {"," uuid: string;"," username: string;"," };"," dob: {"," date: string;"," age: number;"," };"," phone: string;"," cell: string;"," picture: {"," large: string;"," medium: string;"," thumbnail: string;"," };"," nat: string;","}"].join(`
|
|
64
|
-
`)},returnType:"string",returnDescription:'"\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4." \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5',handler:async({user:n})=>{try{let e=oe(n);return l(e)}catch(t){return t instanceof SyntaxError?l("Error: invalid JSON string \u2014 unable to parse input"):l(`Error: failed to process user data \u2014 ${t.message}
|
|
65
|
-
|
|
66
|
-
Input must include \`name.first\`, \`name.last\`, and \`location.city\`.`)}},examples:[{args:[`'{"name":{"title":"Mr","first":"Alice","last":"Kim"},"location":{"city":"Seoul"},"gender":"female","email":"alice@example.com","nat":"KR"}'`],result:"\uC774\uB984\uC740 Alice Kim \uC774\uACE0 \uD604\uC7AC Seoul \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4."}],guidelines:["\uC785\uB825\uC740 RandomUser API \uC2A4\uD399\uC744 \uB530\uB985\uB2C8\uB2E4. \uCD5C\uC18C\uD55C name.first, name.last, location.city \uD544\uB4DC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.","JSON \uBB38\uC790\uC5F4(string)\uACFC \uD30C\uC2F1\uB41C \uAC1D\uCCB4 \uBAA8\uB450 \uD5C8\uC6A9\uB429\uB2C8\uB2E4 (CLI / MCP \uBAA8\uB450 \uB3D9\uC791).","\uACB0\uACFC\uB294 \uD56D\uC0C1 '\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.' \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5\uC785\uB2C8\uB2E4."]}},re=v.getUserTool;var O=require("zod"),f=["API_KEY"];function se(n){let t=n.filter(o=>!f.includes(o));if(t.length>0)throw new Error(`Invalid env key(s): ${t.join(", ")}. Allowed keys: ${f.join(", ")}`);let e={};for(let o of n){let r=process.env[o];r!==void 0&&(e[o]=r)}return e}var A={envGetTool:{name:"env_get",description:`MCP \uD074\uB77C\uC774\uC5B8\uD2B8 config\uC758 env \uD544\uB4DC\uB97C \uD1B5\uD574 \uC8FC\uC785\uB41C \uD658\uACBD \uBCC0\uC218 \uAC12\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. \uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4\uB294 \uD328\uD0A4\uC9C0\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uD658\uACBD \uBCC0\uC218\uB85C \uD55C\uC815\uB429\uB2C8\uB2E4. \uD604\uC7AC \uC9C0\uC6D0: ${f.join(", ")}.`,inputSchema:{keys:O.z.array(O.z.string()).nonempty().describe(`\uC870\uD68C\uD560 \uD658\uACBD \uBCC0\uC218 \uC774\uB984 \uBAA9\uB85D (\uC720\uD6A8 \uD0A4: ${f.join(", ")})`)},typeLabels:{keys:"string[]"},typeDefs:{keys:["// @julong/mono-rele2-utils \uD658\uACBD \uBCC0\uC218 \uD0A4 \uBAA9\uB85D",...f.map(n=>`// "${n}"`),"","// MCP client config \uC608\uC2DC:","// {",'// "mcpServers": {','// "@julong/mono-rele2-utils": {','// "command": "npx",','// "args": ["-y", "@julong/mono-rele2-utils"],','// "env": {',...f.map(n=>`// "${n}": "<value>"`),"// }","// }","// }","// }"].join(`
|
|
67
|
-
`)},returnType:"Record<string, string>",returnDescription:"key: \uD658\uACBD \uBCC0\uC218 \uC774\uB984, value: \uD574\uB2F9 \uAC12 (\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uBCC0\uC218\uB294 \uACB0\uACFC\uC5D0\uC11C \uC81C\uC678)",handler:async({keys:n})=>{try{let t=se(n);return Object.keys(t).length===0?l("(no matching environment variables found)"):l(JSON.stringify(t,null,2))}catch(t){return l(`Error: ${t.message}`)}},examples:[{args:[`'["API_KEY"]'`],result:JSON.stringify({API_KEY:"<value>"},null,2)}],guidelines:[`\uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4: ${f.join(", ")}`,"MCP client config.json\uC758 env \uD544\uB4DC\uC5D0 \uC704 \uD0A4\uB4E4\uB9CC \uC124\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uD0A4\uB97C \uC694\uCCAD\uD558\uBA74 \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uC5D0 \uD5C8\uC6A9\uB41C \uD0A4 \uBAA9\uB85D\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uD658\uACBD \uBCC0\uC218\uB294 \uACB0\uACFC \uAC1D\uCCB4\uC5D0\uC11C \uC81C\uC678\uB429\uB2C8\uB2E4."]}},ie=A.envGetTool;var N={...b,...w,...v,...A};0&&(module.exports={cn,generateReadmeSkills,generateSkillMarkdown,tools});
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkCDRQCMN2cjs = require('./chunk-CDRQCMN2.cjs');exports.cn = _chunkCDRQCMN2cjs.a; exports.generateReadmeSkills = _chunkCDRQCMN2cjs.g; exports.generateSkillMarkdown = _chunkCDRQCMN2cjs.f; exports.tools = _chunkCDRQCMN2cjs.n;
|
package/dist/index.js
CHANGED
|
@@ -1,67 +1 @@
|
|
|
1
|
-
|
|
2
|
-
name: ${t}
|
|
3
|
-
description: ${e}
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# ${t}
|
|
7
|
-
|
|
8
|
-
\`\`\`sh
|
|
9
|
-
${t} <toolName> [...args]
|
|
10
|
-
\`\`\`
|
|
11
|
-
|
|
12
|
-
## Skills
|
|
13
|
-
|
|
14
|
-
${N(o)}
|
|
15
|
-
|
|
16
|
-
## Examples
|
|
17
|
-
|
|
18
|
-
${J(t,o)}
|
|
19
|
-
|
|
20
|
-
## Guidelines
|
|
21
|
-
|
|
22
|
-
${C(t,o)}
|
|
23
|
-
`}function N(n){return Object.entries(n).map(([t,e])=>{let o=Object.entries(e.inputSchema).map(([a,r])=>{let c=e.typeLabels?.[a];return`| \`${a}\` | ${E(r,c)} |`}).join(`
|
|
24
|
-
`),s=e.typeDefs?Object.entries(e.typeDefs).map(([a,r])=>`
|
|
25
|
-
|
|
26
|
-
**\`${a}\`** type definition:
|
|
27
|
-
\`\`\`typescript
|
|
28
|
-
${r}
|
|
29
|
-
\`\`\``).join(""):"";return`### ${t}
|
|
30
|
-
|
|
31
|
-
${e.description}
|
|
32
|
-
|
|
33
|
-
| arg | description |
|
|
34
|
-
|-----|-------------|
|
|
35
|
-
${o}${s}`}).join(`
|
|
36
|
-
|
|
37
|
-
`)}function E(n,t){let e=n.description??"",o=n,s,a=!1;for(;o instanceof i.ZodOptional||o instanceof i.ZodDefault;){if(o instanceof i.ZodDefault){let c=o.def.defaultValue;s=typeof c=="function"?c():c}o instanceof i.ZodOptional&&(a=!0),o=o.unwrap()}let r=[];if(t&&r.push(`Type: ${t}`),e&&r.push(e),o instanceof i.ZodEnum){let c=o.options.map(g=>`\`${g}\``).join(" \\| ");r.push(c)}return s!==void 0?r.push(`default: \`${String(s)}\``):a&&r.push("optional"),r.join(" \u2014 ")}function J(n,t){let e=[];for(let[o,s]of Object.entries(t))if(s.examples)for(let a of s.examples){let r=[n,o,...a.args].join(" ");e.push(`- \`${r}\` => \`${a.result}\``)}return e.join(`
|
|
38
|
-
`)}function C(n,t){let e=[],o=new Set,s=r=>{o.has(r)||(o.add(r),e.push(r))};s("Arguments are positional \u2014 pass them in the order listed in each skill's table");let a=Object.values(t).flatMap(r=>Object.values(r.inputSchema));a.some(r=>O(r,i.ZodNumber))&&s("Numeric args are auto-parsed \u2014 pass as plain numbers (e.g. `10`)"),a.some(r=>O(r,i.ZodArray))&&s('Array args must be valid JSON \u2014 wrap in single quotes on Unix shells (e.g. `\'["a","b"]\'`)'),a.some(r=>r instanceof i.ZodOptional||r instanceof i.ZodDefault)&&s("Optional args with defaults may be omitted");for(let r of Object.values(t))if(r.guidelines)for(let c of r.guidelines)s(c);return s(`Run \`${n}\` with no args to list all available skills`),e.map(r=>`- ${r}`).join(`
|
|
39
|
-
`)}function O(n,t){let e=n;for(;e instanceof i.ZodOptional||e instanceof i.ZodDefault;)e=e.unwrap();return e instanceof t}function U(n){let{binName:t,tools:e}=n;return Object.entries(e).map(([o,s])=>L(t,o,s)).join(`
|
|
40
|
-
|
|
41
|
-
`)}function L(n,t,e){let o=Object.entries(e.inputSchema),s=o.map(([p,u])=>u instanceof i.ZodOptional||u instanceof i.ZodDefault?`[${p}]`:`<${p}>`).join(" "),a=[n,t,s].filter(Boolean).join(" "),r=o.map(([p,u])=>{let h=e.typeLabels?.[p],f=A(u,h),x=M(u);return`| \`${p}\` | ${f} | ${x} |`}).join(`
|
|
42
|
-
`),c=e.examples??[],g="";if(c.length>0){let p=c.map(f=>[n,t,...f.args].join(" ")),u=Math.max(...p.map(f=>f.length));g=`
|
|
43
|
-
|
|
44
|
-
\`\`\`sh
|
|
45
|
-
${c.map((f,x)=>`${p[x].padEnd(u)} # ${f.result}`).join(`
|
|
46
|
-
`)}
|
|
47
|
-
\`\`\``}let z=e.typeDefs?Object.entries(e.typeDefs).map(([p,u])=>`
|
|
48
|
-
|
|
49
|
-
**\`${p}\`** type definition:
|
|
50
|
-
|
|
51
|
-
\`\`\`typescript
|
|
52
|
-
${u}
|
|
53
|
-
\`\`\``).join(""):"",D=r?`
|
|
54
|
-
|
|
55
|
-
| arg | type | description |
|
|
56
|
-
|-----|------|-------------|
|
|
57
|
-
${r}`:"";return`#### \`${t}\`
|
|
58
|
-
|
|
59
|
-
${e.description}.
|
|
60
|
-
|
|
61
|
-
\`\`\`sh
|
|
62
|
-
${a}
|
|
63
|
-
\`\`\`${D}${z}${g}`}function A(n,t){if(t)return t;let e=n;for(;e instanceof i.ZodOptional||e instanceof i.ZodDefault;)e=e.unwrap();return e instanceof i.ZodEnum?e.options.map(o=>`\`${o}\``).join(" \\| "):e instanceof i.ZodNumber?"number":e instanceof i.ZodString?"string":e instanceof i.ZodBoolean?"boolean":e instanceof i.ZodArray?"JSON string (array)":e instanceof i.ZodUnion?e.options.map(s=>A(s)).join(" \\| "):e instanceof i.ZodRecord?"JSON object":"unknown"}function M(n){let t=n.description??"",e=n,o,s=!1;for(;e instanceof i.ZodOptional||e instanceof i.ZodDefault;){if(e instanceof i.ZodDefault){let a=e.def.defaultValue;o=typeof a=="function"?a():a}e instanceof i.ZodOptional&&(s=!0),e=e.unwrap()}return o!==void 0?`${t} (default: \`${String(o)}\`)`:s?`${t} (optional)`:t}import{z as m}from"zod";var y={cnTool:{name:"cn",description:"Merges class names, filtering out falsy values",inputSchema:{classes:m.array(m.string()).describe("List of class names to merge")},typeLabels:{classes:"string[]"},returnType:"string",returnDescription:"Merged class name string with falsy values filtered out",handler:async({classes:n})=>l(S(...n)),examples:[{args:[`'["btn","active","large"]'`],result:"btn active large"}]},caseConvertTool:{name:"case_convert",description:"Converts text to the specified case format",inputSchema:{input:m.string().describe("Text to convert"),to:m.enum(["upper","lower","capitalize","camel","snake","kebab"]).describe("Target case format")},typeLabels:{input:"string",to:'"upper" | "lower" | "capitalize" | "camel" | "snake" | "kebab"'},returnType:"string",returnDescription:"Converted text in the target case format",handler:async({input:n,to:t})=>l(V(n,t)),examples:[{args:['"hello world"',"camel"],result:"helloWorld"},{args:['"helloWorld"',"snake"],result:"hello_world"},{args:['"hello world"',"kebab"],result:"hello-world"}]},truncateTool:{name:"truncate",description:"Truncates text to a maximum length and appends a suffix",inputSchema:{input:m.string().describe("Text to truncate"),maxLength:m.number().int().positive().describe("Maximum character length"),suffix:m.string().default("...").describe("Suffix to append when truncated")},typeLabels:{input:"string",maxLength:"number",suffix:"string"},returnType:"string",returnDescription:"Truncated text with the configured suffix appended if truncated",handler:async({input:n,maxLength:t,suffix:e})=>{let o=n.length<=t?n:n.slice(0,t-e.length)+e;return l(o)},examples:[{args:['"hello world long text"',"10"],result:"hello w..."},{args:['"hello world"',"8",'"\u2026"'],result:"hello w\u2026"}]}},_=y.cnTool,P=y.caseConvertTool,I=y.truncateTool;function V(n,t){switch(t){case"upper":return n.toUpperCase();case"lower":return n.toLowerCase();case"capitalize":return n.charAt(0).toUpperCase()+n.slice(1).toLowerCase();case"camel":return n.replace(/[-_\s]+(.)/g,(e,o)=>o.toUpperCase()).replace(/^(.)/,e=>e.toLowerCase());case"snake":return n.replace(/([A-Z])/g,"_$1").replace(/[-\s]+/g,"_").toLowerCase().replace(/^_/,"");case"kebab":return n.replace(/([A-Z])/g,"-$1").replace(/[_\s]+/g,"-").toLowerCase().replace(/^-/,"")}}import{z as T}from"zod";function K(n){let t=typeof n=="string"?JSON.parse(n):n,e={};function o(s,a){if(s===null||typeof s!="object"||Array.isArray(s)){e[a]=s;return}for(let[r,c]of Object.entries(s)){let g=a?`${a}.${r}`:r;o(c,g)}}return o(t,""),e}var Z={objectFlattenTool:{name:"object_flatten",description:"Flattens a nested JSON object of any depth into dot-notation key-value pairs. Accepts a JSON string and recursively flattens all levels. Arrays and primitives at any level are treated as leaf values.",inputSchema:{json:T.union([T.string(),T.record(T.string(),T.any())]).describe("JSON string or parsed object to flatten (unlimited depth)")},handler:async({json:n})=>{try{let e=K(n);return l(JSON.stringify(e,null,2))}catch(t){return t instanceof SyntaxError?l("Error: invalid JSON string \u2014 unable to parse input"):l(`Error: failed to flatten object \u2014 ${t.message}`)}},examples:[{args:[`'{"user":{"name":"Alice","address":{"city":"Seoul","zip":"12345"}},"active":true}'`],result:JSON.stringify({"user.name":"Alice","user.address.city":"Seoul","user.address.zip":"12345",active:!0},null,2)},{args:[`'{"a":{"b":{"c":{"d":{"e":"deep"}}}}}'`],result:JSON.stringify({"a.b.c.d.e":"deep"},null,2)}],returnType:"JsonObject",returnDescription:'Flattened object with dot-notation keys \u2014 e.g. { "a.b.c": value }',guidelines:["Arrays and primitives at any level are always treated as leaf values \u2014 they are never traversed.","The result is always a flat JSON object with dot-notation keys.","There is no depth limit \u2014 objects of any nesting level are fully flattened.","Input is accepted as a JSON string (MCP/CLI) and parsed internally."]}},B=Z.objectFlattenTool;import{z as b}from"zod";function F(n){let t=typeof n=="string"?JSON.parse(n):n,{first:e,last:o}=t.name,s=t.location.city;return`\uC774\uB984\uC740 ${e} ${o} \uC774\uACE0 \uD604\uC7AC ${s} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.`}var w={getUserTool:{name:"getUser",description:"RandomUser API \uD615\uC2DD\uC758 \uC0AC\uC6A9\uC790 \uAC1D\uCCB4\uB97C \uBC1B\uC544 \uC774\uB984\uACFC \uAC70\uC8FC \uB3C4\uC2DC\uB85C \uAD6C\uC131\uB41C \uD55C\uAE00 \uBB38\uC7A5\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. JSON \uBB38\uC790\uC5F4 \uB610\uB294 \uD30C\uC2F1\uB41C \uAC1D\uCCB4\uB97C \uC785\uB825\uBC1B\uC2B5\uB2C8\uB2E4.",inputSchema:{user:b.union([b.string(),b.record(b.string(),b.any())]).describe("RandomUser \uD615\uC2DD\uC758 JSON \uBB38\uC790\uC5F4 \uB610\uB294 \uAC1D\uCCB4 \u2014 name.first / name.last / location.city \uD544\uC218")},typeLabels:{user:"RandomUser"},typeDefs:{user:["interface RandomUser {",' gender: "male" | "female";'," name: {"," title: string;"," first: string;"," last: string;"," };"," location: {"," street: {"," number: number;"," name: string;"," };"," city: string;"," state: string;"," country: string;"," postcode: string | number;"," coordinates: {"," latitude: string;"," longitude: string;"," };"," timezone: {"," offset: string;"," description: string;"," };"," };"," email: string;"," login: {"," uuid: string;"," username: string;"," };"," dob: {"," date: string;"," age: number;"," };"," phone: string;"," cell: string;"," picture: {"," large: string;"," medium: string;"," thumbnail: string;"," };"," nat: string;","}"].join(`
|
|
64
|
-
`)},returnType:"string",returnDescription:'"\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4." \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5',handler:async({user:n})=>{try{let e=F(n);return l(e)}catch(t){return t instanceof SyntaxError?l("Error: invalid JSON string \u2014 unable to parse input"):l(`Error: failed to process user data \u2014 ${t.message}
|
|
65
|
-
|
|
66
|
-
Input must include \`name.first\`, \`name.last\`, and \`location.city\`.`)}},examples:[{args:[`'{"name":{"title":"Mr","first":"Alice","last":"Kim"},"location":{"city":"Seoul"},"gender":"female","email":"alice@example.com","nat":"KR"}'`],result:"\uC774\uB984\uC740 Alice Kim \uC774\uACE0 \uD604\uC7AC Seoul \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4."}],guidelines:["\uC785\uB825\uC740 RandomUser API \uC2A4\uD399\uC744 \uB530\uB985\uB2C8\uB2E4. \uCD5C\uC18C\uD55C name.first, name.last, location.city \uD544\uB4DC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.","JSON \uBB38\uC790\uC5F4(string)\uACFC \uD30C\uC2F1\uB41C \uAC1D\uCCB4 \uBAA8\uB450 \uD5C8\uC6A9\uB429\uB2C8\uB2E4 (CLI / MCP \uBAA8\uB450 \uB3D9\uC791).","\uACB0\uACFC\uB294 \uD56D\uC0C1 '\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.' \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5\uC785\uB2C8\uB2E4."]}},G=w.getUserTool;import{z as k}from"zod";var d=["API_KEY"];function Y(n){let t=n.filter(o=>!d.includes(o));if(t.length>0)throw new Error(`Invalid env key(s): ${t.join(", ")}. Allowed keys: ${d.join(", ")}`);let e={};for(let o of n){let s=process.env[o];s!==void 0&&(e[o]=s)}return e}var v={envGetTool:{name:"env_get",description:`MCP \uD074\uB77C\uC774\uC5B8\uD2B8 config\uC758 env \uD544\uB4DC\uB97C \uD1B5\uD574 \uC8FC\uC785\uB41C \uD658\uACBD \uBCC0\uC218 \uAC12\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. \uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4\uB294 \uD328\uD0A4\uC9C0\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uD658\uACBD \uBCC0\uC218\uB85C \uD55C\uC815\uB429\uB2C8\uB2E4. \uD604\uC7AC \uC9C0\uC6D0: ${d.join(", ")}.`,inputSchema:{keys:k.array(k.string()).nonempty().describe(`\uC870\uD68C\uD560 \uD658\uACBD \uBCC0\uC218 \uC774\uB984 \uBAA9\uB85D (\uC720\uD6A8 \uD0A4: ${d.join(", ")})`)},typeLabels:{keys:"string[]"},typeDefs:{keys:["// @julong/mono-rele2-utils \uD658\uACBD \uBCC0\uC218 \uD0A4 \uBAA9\uB85D",...d.map(n=>`// "${n}"`),"","// MCP client config \uC608\uC2DC:","// {",'// "mcpServers": {','// "@julong/mono-rele2-utils": {','// "command": "npx",','// "args": ["-y", "@julong/mono-rele2-utils"],','// "env": {',...d.map(n=>`// "${n}": "<value>"`),"// }","// }","// }","// }"].join(`
|
|
67
|
-
`)},returnType:"Record<string, string>",returnDescription:"key: \uD658\uACBD \uBCC0\uC218 \uC774\uB984, value: \uD574\uB2F9 \uAC12 (\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uBCC0\uC218\uB294 \uACB0\uACFC\uC5D0\uC11C \uC81C\uC678)",handler:async({keys:n})=>{try{let t=Y(n);return Object.keys(t).length===0?l("(no matching environment variables found)"):l(JSON.stringify(t,null,2))}catch(t){return l(`Error: ${t.message}`)}},examples:[{args:[`'["API_KEY"]'`],result:JSON.stringify({API_KEY:"<value>"},null,2)}],guidelines:[`\uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4: ${d.join(", ")}`,"MCP client config.json\uC758 env \uD544\uB4DC\uC5D0 \uC704 \uD0A4\uB4E4\uB9CC \uC124\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uD0A4\uB97C \uC694\uCCAD\uD558\uBA74 \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uC5D0 \uD5C8\uC6A9\uB41C \uD0A4 \uBAA9\uB85D\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uD658\uACBD \uBCC0\uC218\uB294 \uACB0\uACFC \uAC1D\uCCB4\uC5D0\uC11C \uC81C\uC678\uB429\uB2C8\uB2E4."]}},W=v.envGetTool;var q={...y,...Z,...w,...v};export{S as cn,U as generateReadmeSkills,R as generateSkillMarkdown,q as tools};
|
|
1
|
+
import{a as e,f as o,g as r,n as t}from"./chunk-JG5KC5FP.js";export{e as cn,r as generateReadmeSkills,o as generateSkillMarkdown,t as tools};
|
package/dist/server.cjs
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
`)},returnType:"string",returnDescription:'"\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4." \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5',handler:async({user:e})=>{try{let t=C(e);return r(t)}catch(n){return n instanceof SyntaxError?r("Error: invalid JSON string \u2014 unable to parse input"):r(`Error: failed to process user data \u2014 ${n.message}
|
|
4
|
-
|
|
5
|
-
Input must include \`name.first\`, \`name.last\`, and \`location.city\`.`)}},examples:[{args:[`'{"name":{"title":"Mr","first":"Alice","last":"Kim"},"location":{"city":"Seoul"},"gender":"female","email":"alice@example.com","nat":"KR"}'`],result:"\uC774\uB984\uC740 Alice Kim \uC774\uACE0 \uD604\uC7AC Seoul \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4."}],guidelines:["\uC785\uB825\uC740 RandomUser API \uC2A4\uD399\uC744 \uB530\uB985\uB2C8\uB2E4. \uCD5C\uC18C\uD55C name.first, name.last, location.city \uD544\uB4DC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.","JSON \uBB38\uC790\uC5F4(string)\uACFC \uD30C\uC2F1\uB41C \uAC1D\uCCB4 \uBAA8\uB450 \uD5C8\uC6A9\uB429\uB2C8\uB2E4 (CLI / MCP \uBAA8\uB450 \uB3D9\uC791).","\uACB0\uACFC\uB294 \uD56D\uC0C1 '\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.' \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5\uC785\uB2C8\uB2E4."]}},x=h.getUserTool;var S=require("zod"),a=["API_KEY"];function U(e){let n=e.filter(o=>!a.includes(o));if(n.length>0)throw new Error(`Invalid env key(s): ${n.join(", ")}. Allowed keys: ${a.join(", ")}`);let t={};for(let o of e){let s=process.env[o];s!==void 0&&(t[o]=s)}return t}var $={envGetTool:{name:"env_get",description:`MCP \uD074\uB77C\uC774\uC5B8\uD2B8 config\uC758 env \uD544\uB4DC\uB97C \uD1B5\uD574 \uC8FC\uC785\uB41C \uD658\uACBD \uBCC0\uC218 \uAC12\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. \uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4\uB294 \uD328\uD0A4\uC9C0\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uD658\uACBD \uBCC0\uC218\uB85C \uD55C\uC815\uB429\uB2C8\uB2E4. \uD604\uC7AC \uC9C0\uC6D0: ${a.join(", ")}.`,inputSchema:{keys:S.z.array(S.z.string()).nonempty().describe(`\uC870\uD68C\uD560 \uD658\uACBD \uBCC0\uC218 \uC774\uB984 \uBAA9\uB85D (\uC720\uD6A8 \uD0A4: ${a.join(", ")})`)},typeLabels:{keys:"string[]"},typeDefs:{keys:["// @julong/mono-rele2-utils \uD658\uACBD \uBCC0\uC218 \uD0A4 \uBAA9\uB85D",...a.map(e=>`// "${e}"`),"","// MCP client config \uC608\uC2DC:","// {",'// "mcpServers": {','// "@julong/mono-rele2-utils": {','// "command": "npx",','// "args": ["-y", "@julong/mono-rele2-utils"],','// "env": {',...a.map(e=>`// "${e}": "<value>"`),"// }","// }","// }","// }"].join(`
|
|
6
|
-
`)},returnType:"Record<string, string>",returnDescription:"key: \uD658\uACBD \uBCC0\uC218 \uC774\uB984, value: \uD574\uB2F9 \uAC12 (\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uBCC0\uC218\uB294 \uACB0\uACFC\uC5D0\uC11C \uC81C\uC678)",handler:async({keys:e})=>{try{let n=U(e);return Object.keys(n).length===0?r("(no matching environment variables found)"):r(JSON.stringify(n,null,2))}catch(n){return r(`Error: ${n.message}`)}},examples:[{args:[`'["API_KEY"]'`],result:JSON.stringify({API_KEY:"<value>"},null,2)}],guidelines:[`\uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4: ${a.join(", ")}`,"MCP client config.json\uC758 env \uD544\uB4DC\uC5D0 \uC704 \uD0A4\uB4E4\uB9CC \uC124\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uD0A4\uB97C \uC694\uCCAD\uD558\uBA74 \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uC5D0 \uD5C8\uC6A9\uB41C \uD0A4 \uBAA9\uB85D\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uD658\uACBD \uBCC0\uC218\uB294 \uACB0\uACFC \uAC1D\uCCB4\uC5D0\uC11C \uC81C\uC678\uB429\uB2C8\uB2E4."]}},j=$.envGetTool;var fe={...p,...T,...h,...$};var L=O({name:"mono-rele2-utils",version:"1.0.0"},[m,g,y,b,x,j]);A(L).catch(e=>{console.error("[utils] server error:",e),process.exit(1)});
|
|
2
|
+
"use strict";var _chunkCDRQCMN2cjs = require('./chunk-CDRQCMN2.cjs');var v=_chunkCDRQCMN2cjs.b.call(void 0, {name:"mono-rele2-utils",version:"1.0.0"},[_chunkCDRQCMN2cjs.h,_chunkCDRQCMN2cjs.i,_chunkCDRQCMN2cjs.j,_chunkCDRQCMN2cjs.k,_chunkCDRQCMN2cjs.l,_chunkCDRQCMN2cjs.m]);_chunkCDRQCMN2cjs.c.call(void 0, v).catch(a=>{console.error("[utils] server error:",a),process.exit(1)});
|
package/dist/server.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
`)},returnType:"string",returnDescription:'"\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4." \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5',handler:async({user:e})=>{try{let t=E(e);return r(t)}catch(n){return n instanceof SyntaxError?r("Error: invalid JSON string \u2014 unable to parse input"):r(`Error: failed to process user data \u2014 ${n.message}
|
|
4
|
-
|
|
5
|
-
Input must include \`name.first\`, \`name.last\`, and \`location.city\`.`)}},examples:[{args:[`'{"name":{"title":"Mr","first":"Alice","last":"Kim"},"location":{"city":"Seoul"},"gender":"female","email":"alice@example.com","nat":"KR"}'`],result:"\uC774\uB984\uC740 Alice Kim \uC774\uACE0 \uD604\uC7AC Seoul \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4."}],guidelines:["\uC785\uB825\uC740 RandomUser API \uC2A4\uD399\uC744 \uB530\uB985\uB2C8\uB2E4. \uCD5C\uC18C\uD55C name.first, name.last, location.city \uD544\uB4DC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.","JSON \uBB38\uC790\uC5F4(string)\uACFC \uD30C\uC2F1\uB41C \uAC1D\uCCB4 \uBAA8\uB450 \uD5C8\uC6A9\uB429\uB2C8\uB2E4 (CLI / MCP \uBAA8\uB450 \uB3D9\uC791).","\uACB0\uACFC\uB294 \uD56D\uC0C1 '\uC774\uB984\uC740 {first} {last} \uC774\uACE0 \uD604\uC7AC {city} \uC5D0 \uC0B4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.' \uD615\uC2DD\uC758 \uD55C\uAE00 \uBB38\uC7A5\uC785\uB2C8\uB2E4."]}},x=h.getUserTool;import{z as O}from"zod";var i=["API_KEY"];function J(e){let n=e.filter(o=>!i.includes(o));if(n.length>0)throw new Error(`Invalid env key(s): ${n.join(", ")}. Allowed keys: ${i.join(", ")}`);let t={};for(let o of e){let s=process.env[o];s!==void 0&&(t[o]=s)}return t}var S={envGetTool:{name:"env_get",description:`MCP \uD074\uB77C\uC774\uC5B8\uD2B8 config\uC758 env \uD544\uB4DC\uB97C \uD1B5\uD574 \uC8FC\uC785\uB41C \uD658\uACBD \uBCC0\uC218 \uAC12\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. \uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4\uB294 \uD328\uD0A4\uC9C0\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uD658\uACBD \uBCC0\uC218\uB85C \uD55C\uC815\uB429\uB2C8\uB2E4. \uD604\uC7AC \uC9C0\uC6D0: ${i.join(", ")}.`,inputSchema:{keys:O.array(O.string()).nonempty().describe(`\uC870\uD68C\uD560 \uD658\uACBD \uBCC0\uC218 \uC774\uB984 \uBAA9\uB85D (\uC720\uD6A8 \uD0A4: ${i.join(", ")})`)},typeLabels:{keys:"string[]"},typeDefs:{keys:["// @julong/mono-rele2-utils \uD658\uACBD \uBCC0\uC218 \uD0A4 \uBAA9\uB85D",...i.map(e=>`// "${e}"`),"","// MCP client config \uC608\uC2DC:","// {",'// "mcpServers": {','// "@julong/mono-rele2-utils": {','// "command": "npx",','// "args": ["-y", "@julong/mono-rele2-utils"],','// "env": {',...i.map(e=>`// "${e}": "<value>"`),"// }","// }","// }","// }"].join(`
|
|
6
|
-
`)},returnType:"Record<string, string>",returnDescription:"key: \uD658\uACBD \uBCC0\uC218 \uC774\uB984, value: \uD574\uB2F9 \uAC12 (\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uBCC0\uC218\uB294 \uACB0\uACFC\uC5D0\uC11C \uC81C\uC678)",handler:async({keys:e})=>{try{let n=J(e);return Object.keys(n).length===0?r("(no matching environment variables found)"):r(JSON.stringify(n,null,2))}catch(n){return r(`Error: ${n.message}`)}},examples:[{args:[`'["API_KEY"]'`],result:JSON.stringify({API_KEY:"<value>"},null,2)}],guidelines:[`\uC870\uD68C \uAC00\uB2A5\uD55C \uD0A4: ${i.join(", ")}`,"MCP client config.json\uC758 env \uD544\uB4DC\uC5D0 \uC704 \uD0A4\uB4E4\uB9CC \uC124\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uD0A4\uB97C \uC694\uCCAD\uD558\uBA74 \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uC5D0 \uD5C8\uC6A9\uB41C \uD0A4 \uBAA9\uB85D\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uD658\uACBD \uBCC0\uC218\uB294 \uACB0\uACFC \uAC1D\uCCB4\uC5D0\uC11C \uC81C\uC678\uB429\uB2C8\uB2E4."]}},$=S.envGetTool;var Se={...l,...T,...h,...S};var C=v({name:"mono-rele2-utils",version:"1.0.0"},[m,g,y,b,x,$]);Z(C).catch(e=>{console.error("[utils] server error:",e),process.exit(1)});
|
|
2
|
+
import{b as e,c as o,h as r,i as t,j as s,k as c,l,m as n}from"./chunk-JG5KC5FP.js";var v=e({name:"mono-rele2-utils",version:"1.0.0"},[r,t,s,c,l,n]);o(v).catch(a=>{console.error("[utils] server error:",a),process.exit(1)});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@julong/mono-rele2-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.33.0",
|
|
4
4
|
"description": "Use this skill to invoke text utility functions via the mono-rele2-utils CLI. Handles class name merging, case conversion, and text truncation.",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"type": "module",
|