funifier-mcp 0.2.22 → 0.2.23

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.
@@ -86,7 +86,7 @@ Edit these files directly, then save back with funifier_save file="${p}" \u2014
86
86
  Use the Read/Edit tools on this file. When saving back, use funifier_save with file="${p}".`;return{content:[{type:"text",text:`Found ${u.length} ${r} item(s) matching "${i}".
87
87
 
88
88
  Full payload saved to:
89
- ${p}${m}`}]}}catch(s){return{content:[{type:"text",text:`Error getting ${r} ${i}: ${s.message}`}],isError:!0}}})}});var Y4=x(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});dx.fetchCurrentById=JW;async function JW(e,t,r){let i;switch(t){case"trigger":i=await e.listTriggers();break;case"scheduler":i=await e.listSchedulers();break;case"aggregate":i=await e.listAggregates();break;case"websocket":i=await e.listWebsockets();break;case"widget":i=await e.listWidgets();break;case"custom-page":i=await e.listCustomPages();break;case"public-endpoint":i=await e.listPublicEndpoints();break;case"challenge-aggregate":i=await e.listChallengeAggregates();break;case"auth-module":i=await e.listAuthModules();break;case"ai-knowledge":i=await e.listAiKnowledge();break;case"action":i=await e.listActions();break;case"challenge":i=await e.listChallenges();break;case"point":i=await e.listPoints();break;case"level":i=await e.listLevels();break;case"leaderboard":i=await e.listLeaderboards();break;case"quiz":i=await e.listQuizzes();break;case"virtual-good-catalog":i=await e.listVirtualGoodCatalogs();break;case"virtual-good-item":i=await e.listVirtualGoodItems();break;default:throw new Error(`Unknown resource type: ${t}`)}return i.find(a=>a._id===r)??null}});var X4=x(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});px.mergeResource=WW;function WW(e,t){return{...e,...t}}});var Q4=x(Ei=>{"use strict";var YW=Ei&&Ei.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),XW=Ei&&Ei.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),QW=Ei&&Ei.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var i=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(i[i.length]=n);return i},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var i=e(t),n=0;n<i.length;n++)i[n]!=="default"&&YW(r,t,i[n]);return XW(r,t),r}}();Object.defineProperty(Ei,"__esModule",{value:!0});Ei.registerSaveTool=sY;var fx=un(),mx=QW(require("fs")),eY=Y4(),tY=X4(),rY=["trigger","scheduler","aggregate","websocket","widget","custom-page","public-endpoint","challenge-aggregate","auth-module","ai-knowledge","action","challenge","point","level","leaderboard","quiz","virtual-good-catalog","virtual-good-item"],nY=new Set(["trigger","scheduler","aggregate","websocket","public-endpoint","auth-module"]),iY={html:".html",css:".css",content:".content.md",aggregate:".pipeline.json"};function aY(e,t,r){let i=e.replace(/\.json$/,""),n=nY.has(t)?".script.groovy":".script.js",a={...iY,script:n},o={...r};for(let[s,c]of Object.entries(a)){let u=`${i}${c}`;mx.existsSync(u)&&(o[s]=mx.readFileSync(u,"utf-8"))}return o}async function oY(e,t,r){switch(t){case"trigger":return await e.saveTrigger(r);case"scheduler":return await e.saveScheduler(r);case"aggregate":return await e.saveAggregate(r);case"websocket":return await e.saveWebsocket(r,!r._id);case"widget":return await e.saveWidget(r);case"custom-page":return await e.saveCustomPage(r);case"public-endpoint":return await e.savePublicEndpoint(r);case"challenge-aggregate":return await e.saveChallengeAggregate(r);case"auth-module":return await e.saveAuthModule(r,!r._id);case"ai-knowledge":return await e.saveAiKnowledge(r);case"action":return await e.saveAction(r);case"challenge":return await e.saveChallenge(r);case"point":return await e.savePoint(r);case"level":return await e.saveLevel(r);case"leaderboard":return await e.saveLeaderboard(r);case"quiz":return await e.saveQuiz(r);case"virtual-good-catalog":return await e.saveVirtualGoodCatalog(r);case"virtual-good-item":return await e.saveVirtualGoodItem(r);default:throw new Error(`Unknown resource type: ${t}`)}}function sY(e,t){e.tool("funifier_save","Create or update a Funifier resource. On update (when `_id` is present in the payload), the current resource is fetched and any fields missing from the payload are preserved \u2014 you only need to send the fields you want to change. To clear a field, send it explicitly as `null`. Array and object fields are replaced wholesale when present in the payload.",{type:fx.z.enum(rY).describe("The resource type"),payload:fx.z.string().optional().describe("JSON string of the resource payload. On update, send only the fields you want to change (plus `_id`). Use `file` instead when the payload is too large to pass inline."),file:fx.z.string().optional().describe("Path to a JSON file containing the resource payload. Use this when the payload is too large to pass inline (e.g. a file previously written by funifier_get).")},async({type:r,payload:i,file:n})=>{try{let a=t.requireClient();if(!i&&!n)return{content:[{type:"text",text:"Either `payload` or `file` must be provided."}],isError:!0};let o=n?mx.readFileSync(n,"utf-8"):i,s=JSON.parse(o),c=Array.isArray(s)?s[0]:s,u=n?aY(n,r,c):c,l=u;if(u._id){let b=await(0,eY.fetchCurrentById)(a,r,u._id);if(!b)return{content:[{type:"text",text:`Cannot update ${r} ${u._id}: resource not found`}],isError:!0};l=(0,tY.mergeResource)(b,u)}let g=(await oY(a,r,l))?._id??l._id??"unknown";return{content:[{type:"text",text:`${r} saved successfully. _id: ${g}`}]}}catch(a){return{content:[{type:"text",text:`Error saving ${r}: ${a.message}`}],isError:!0}}})}});var tE=x(hx=>{"use strict";Object.defineProperty(hx,"__esModule",{value:!0});hx.registerDeleteTool=uY;var eE=un(),cY=["trigger","scheduler","aggregate","websocket","widget","custom-page","public-endpoint","challenge-aggregate","auth-module","ai-knowledge","action","challenge","point","level","leaderboard","quiz"];function uY(e,t){e.tool("funifier_delete","Delete a Funifier resource by type and ID",{type:eE.z.enum(cY).describe("The resource type"),id:eE.z.string().describe("The resource ID to delete")},async({type:r,id:i})=>{try{let n=t.requireClient();switch(r){case"trigger":await n.deleteTrigger(i);break;case"scheduler":await n.deleteScheduler(i);break;case"aggregate":await n.deleteAggregate(i);break;case"websocket":await n.deleteWebsocket(i);break;case"widget":await n.deleteWidget(i);break;case"custom-page":await n.deleteCustomPage(i);break;case"public-endpoint":await n.deletePublicEndpoint(i);break;case"challenge-aggregate":await n.deleteChallengeAggregate(i);break;case"auth-module":await n.deleteAuthModule(i);break;case"ai-knowledge":await n.deleteAiKnowledge(i);break;case"action":await n.deleteAction(i);break;case"challenge":await n.deleteChallenge(i);break;case"point":await n.deletePoint(i);break;case"level":await n.deleteLevel(i);break;case"leaderboard":await n.deleteLeaderboard(i);break;case"quiz":await n.deleteQuiz(i);break;default:return{content:[{type:"text",text:`Unknown resource type: ${r}`}],isError:!0}}return{content:[{type:"text",text:`Successfully deleted ${r} with id ${i}`}]}}catch(n){return{content:[{type:"text",text:`Error deleting ${r} ${i}: ${n.message}`}],isError:!0}}})}});var rE=x(xx=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});xx.registerExecuteTool=lY;var gx=un();function lY(e,t){e.tool("funifier_execute","Execute a Funifier resource (scheduler, aggregate, or public-endpoint)",{type:gx.z.enum(["scheduler","aggregate","public-endpoint"]).describe("The resource type to execute"),id:gx.z.string().describe("The resource ID to execute"),params:gx.z.string().optional().describe("Optional JSON string of execution parameters")},async({type:r,id:i,params:n})=>{try{let a=t.requireClient(),o;switch(r){case"scheduler":o=await a.executeScheduler(i);break;case"aggregate":{let s=n?JSON.parse(n):{};o=await a.executeAggregate(i,s);break}case"public-endpoint":{if(!n)return{content:[{type:"text",text:"public-endpoint execution requires params with apiKey, method, and payload"}],isError:!0};let s=JSON.parse(n),{apiKey:c,method:u,payload:l}=s;if(!c||!u)return{content:[{type:"text",text:"public-endpoint params must include apiKey and method"}],isError:!0};o=await a.executePublicEndpoint(c,i,l||{},u);break}default:return{content:[{type:"text",text:`Execute is not supported for type: ${r}. Supported types: scheduler, aggregate, public-endpoint`}],isError:!0}}return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}catch(a){return{content:[{type:"text",text:`Error executing ${r} ${i}: ${a.message}`}],isError:!0}}})}});var iE=x(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});vx.registerLogsTool=dY;var nE=un();function dY(e,t){e.tool("funifier_logs","Get execution logs for a Funifier resource (trigger or scheduler)",{type:nE.z.enum(["trigger","scheduler"]).describe("The resource type to get logs for"),id:nE.z.string().describe("The resource ID")},async({type:r,id:i})=>{try{let n=t.requireClient(),a;switch(r){case"trigger":a=await n.getTriggerLogs(i);break;case"scheduler":a=await n.getSchedulerLogs(i);break;default:return{content:[{type:"text",text:`Logs are not supported for type: ${r}. Supported types: trigger, scheduler`}],isError:!0}}return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}catch(n){return{content:[{type:"text",text:`Error getting logs for ${r} ${i}: ${n.message}`}],isError:!0}}})}});var oE=x(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});bx.registerDatabaseTool=pY;var ea=un(),aE=sx();function pY(e,t){e.tool("funifier_database","Query or aggregate any Funifier database collection. Use action='query' for simple equality filters. Use action='aggregate' for MongoDB operators ($regex, $gt, $in, etc.) and pipelines. Use action='collections' to list all available collections.",{action:ea.z.enum(["query","aggregate","collections","insert","update","delete","bulk"]).describe(`'query' for simple equality reads only \u2014 e.g. {"active": true, "team": false}. Does NOT support MongoDB operators ($regex, $gt, $in, etc.). For operators use 'aggregate' with a $match stage: pipeline=[{"$match": {"nome_guerra": {"$regex": "ECOA", "$options": "i"}}}, {"$limit": 5}]. 'aggregate' for full MongoDB pipelines ($match, $group, $project, $sort, $lookup, etc.). 'collections' to list all available collections. 'insert' to create a document (POST). 'update' to update a document (PUT, requires _id in data). 'delete' to remove documents (requires query filter). 'bulk' to insert/update multiple documents`),collection:ea.z.string().optional().describe("The collection name (e.g., 'player', 'action_log', 'videos__c'). Required for query and aggregate."),query:ea.z.string().optional().describe(`For action='query': JSON string with simple equality filters only (e.g., '{"active": true, "userId": "john"}', '{"team": false, "hierarquia": 0}'). Defaults to {} (all documents). Does NOT support MongoDB operators \u2014 use action=aggregate for those.`),pipeline:ea.z.string().optional().describe("For action='aggregate': JSON string of MongoDB aggregate pipeline array"),sort:ea.z.string().optional().describe(`For action='query': JSON string of sort object (e.g., '{"time":-1}').`),limit:ea.z.number().optional().describe("For action='query': Maximum number of documents to return. Default: 10."),offset:ea.z.number().optional().describe("For action='query': Number of documents to skip for pagination. Default: 0."),data:ea.z.string().optional().describe("For insert/update/bulk: JSON string of document(s). For insert: single object. For update: object with _id field. For bulk: array of objects.")},async({action:r,collection:i,query:n,pipeline:a,sort:o,limit:s,offset:c,data:u})=>{try{let l=t.requireClient();if(r==="collections"){let p=await l.getCollections();return{content:[{type:"text",text:`Found ${p.length} collections:
89
+ ${p}${m}`}]}}catch(s){return{content:[{type:"text",text:`Error getting ${r} ${i}: ${s.message}`}],isError:!0}}})}});var Y4=x(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});dx.fetchCurrentById=JW;async function JW(e,t,r){let i;switch(t){case"trigger":i=await e.listTriggers();break;case"scheduler":i=await e.listSchedulers();break;case"aggregate":i=await e.listAggregates();break;case"websocket":i=await e.listWebsockets();break;case"widget":i=await e.listWidgets();break;case"custom-page":i=await e.listCustomPages();break;case"public-endpoint":i=await e.listPublicEndpoints();break;case"challenge-aggregate":i=await e.listChallengeAggregates();break;case"auth-module":i=await e.listAuthModules();break;case"ai-knowledge":i=await e.listAiKnowledge();break;case"action":i=await e.listActions();break;case"challenge":i=await e.listChallenges();break;case"point":i=await e.listPoints();break;case"level":i=await e.listLevels();break;case"leaderboard":i=await e.listLeaderboards();break;case"quiz":i=await e.listQuizzes();break;case"virtual-good-catalog":i=await e.listVirtualGoodCatalogs();break;case"virtual-good-item":i=await e.listVirtualGoodItems();break;default:throw new Error(`Unknown resource type: ${t}`)}return i.find(a=>a._id===r)??null}});var X4=x(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});px.mergeResource=WW;function WW(e,t){return{...e,...t}}});var Q4=x(Ei=>{"use strict";var YW=Ei&&Ei.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),XW=Ei&&Ei.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),QW=Ei&&Ei.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var i=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(i[i.length]=n);return i},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var i=e(t),n=0;n<i.length;n++)i[n]!=="default"&&YW(r,t,i[n]);return XW(r,t),r}}();Object.defineProperty(Ei,"__esModule",{value:!0});Ei.registerSaveTool=sY;var fx=un(),mx=QW(require("fs")),eY=Y4(),tY=X4(),rY=["trigger","scheduler","aggregate","websocket","widget","custom-page","public-endpoint","challenge-aggregate","auth-module","ai-knowledge","action","challenge","point","level","leaderboard","quiz","virtual-good-catalog","virtual-good-item"],nY=new Set(["trigger","scheduler","aggregate","websocket","public-endpoint","auth-module"]),iY={html:".html",css:".css",content:".content.md",aggregate:".pipeline.json"};function aY(e,t,r){let i=e.replace(/\.json$/,""),n=nY.has(t)?".script.groovy":".script.js",a={...iY,script:n},o={...r};for(let[s,c]of Object.entries(a)){let u=`${i}${c}`;mx.existsSync(u)&&(o[s]=mx.readFileSync(u,"utf-8"))}return o}async function oY(e,t,r){switch(t){case"trigger":return await e.saveTrigger(r);case"scheduler":return await e.saveScheduler(r);case"aggregate":return await e.saveAggregate(r);case"websocket":return await e.saveWebsocket(r,!r._id);case"widget":return await e.saveWidget(r);case"custom-page":return await e.saveCustomPage(r);case"public-endpoint":return await e.savePublicEndpoint(r);case"challenge-aggregate":return await e.saveChallengeAggregate(r);case"auth-module":return await e.saveAuthModule(r,!r._id);case"ai-knowledge":return await e.saveAiKnowledge(r);case"action":return await e.saveAction(r);case"challenge":return await e.saveChallenge(r);case"point":return await e.savePoint(r);case"level":return await e.saveLevel(r);case"leaderboard":return await e.saveLeaderboard(r);case"quiz":return await e.saveQuiz(r);case"virtual-good-catalog":return await e.saveVirtualGoodCatalog(r);case"virtual-good-item":return await e.saveVirtualGoodItem(r);default:throw new Error(`Unknown resource type: ${t}`)}}function sY(e,t){e.tool("funifier_save","Create or update a Funifier resource. On update (when `_id` is present in the payload), the current resource is fetched and any fields missing from the payload are preserved \u2014 you only need to send the fields you want to change. To clear a field, send it explicitly as `null`. Array and object fields are replaced wholesale when present in the payload.",{type:fx.z.enum(rY).describe("The resource type"),payload:fx.z.string().optional().describe("JSON string of the resource payload. On update, send only the fields you want to change (plus `_id`). Use `file` instead when the payload is too large to pass inline."),file:fx.z.string().optional().describe("Path to a JSON file containing the resource payload. Use this when the payload is too large to pass inline (e.g. a file previously written by funifier_get).")},async({type:r,payload:i,file:n})=>{try{let a=t.requireClient();if(!i&&!n)return{content:[{type:"text",text:"Either `payload` or `file` must be provided."}],isError:!0};let o=n?mx.readFileSync(n,"utf-8"):i,s=JSON.parse(o),c=Array.isArray(s)?s[0]:s,u=n?aY(n,r,c):c,l=u;if(u._id){let b=await(0,eY.fetchCurrentById)(a,r,u._id);b&&(l=(0,tY.mergeResource)(b,u))}let g=(await oY(a,r,l))?._id??l._id??"unknown";return{content:[{type:"text",text:`${r} saved successfully. _id: ${g}`}]}}catch(a){return{content:[{type:"text",text:`Error saving ${r}: ${a.message}`}],isError:!0}}})}});var tE=x(hx=>{"use strict";Object.defineProperty(hx,"__esModule",{value:!0});hx.registerDeleteTool=uY;var eE=un(),cY=["trigger","scheduler","aggregate","websocket","widget","custom-page","public-endpoint","challenge-aggregate","auth-module","ai-knowledge","action","challenge","point","level","leaderboard","quiz"];function uY(e,t){e.tool("funifier_delete","Delete a Funifier resource by type and ID",{type:eE.z.enum(cY).describe("The resource type"),id:eE.z.string().describe("The resource ID to delete")},async({type:r,id:i})=>{try{let n=t.requireClient();switch(r){case"trigger":await n.deleteTrigger(i);break;case"scheduler":await n.deleteScheduler(i);break;case"aggregate":await n.deleteAggregate(i);break;case"websocket":await n.deleteWebsocket(i);break;case"widget":await n.deleteWidget(i);break;case"custom-page":await n.deleteCustomPage(i);break;case"public-endpoint":await n.deletePublicEndpoint(i);break;case"challenge-aggregate":await n.deleteChallengeAggregate(i);break;case"auth-module":await n.deleteAuthModule(i);break;case"ai-knowledge":await n.deleteAiKnowledge(i);break;case"action":await n.deleteAction(i);break;case"challenge":await n.deleteChallenge(i);break;case"point":await n.deletePoint(i);break;case"level":await n.deleteLevel(i);break;case"leaderboard":await n.deleteLeaderboard(i);break;case"quiz":await n.deleteQuiz(i);break;default:return{content:[{type:"text",text:`Unknown resource type: ${r}`}],isError:!0}}return{content:[{type:"text",text:`Successfully deleted ${r} with id ${i}`}]}}catch(n){return{content:[{type:"text",text:`Error deleting ${r} ${i}: ${n.message}`}],isError:!0}}})}});var rE=x(xx=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});xx.registerExecuteTool=lY;var gx=un();function lY(e,t){e.tool("funifier_execute","Execute a Funifier resource (scheduler, aggregate, or public-endpoint)",{type:gx.z.enum(["scheduler","aggregate","public-endpoint"]).describe("The resource type to execute"),id:gx.z.string().describe("The resource ID to execute"),params:gx.z.string().optional().describe("Optional JSON string of execution parameters")},async({type:r,id:i,params:n})=>{try{let a=t.requireClient(),o;switch(r){case"scheduler":o=await a.executeScheduler(i);break;case"aggregate":{let s=n?JSON.parse(n):{};o=await a.executeAggregate(i,s);break}case"public-endpoint":{if(!n)return{content:[{type:"text",text:"public-endpoint execution requires params with apiKey, method, and payload"}],isError:!0};let s=JSON.parse(n),{apiKey:c,method:u,payload:l}=s;if(!c||!u)return{content:[{type:"text",text:"public-endpoint params must include apiKey and method"}],isError:!0};o=await a.executePublicEndpoint(c,i,l||{},u);break}default:return{content:[{type:"text",text:`Execute is not supported for type: ${r}. Supported types: scheduler, aggregate, public-endpoint`}],isError:!0}}return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}catch(a){return{content:[{type:"text",text:`Error executing ${r} ${i}: ${a.message}`}],isError:!0}}})}});var iE=x(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});vx.registerLogsTool=dY;var nE=un();function dY(e,t){e.tool("funifier_logs","Get execution logs for a Funifier resource (trigger or scheduler)",{type:nE.z.enum(["trigger","scheduler"]).describe("The resource type to get logs for"),id:nE.z.string().describe("The resource ID")},async({type:r,id:i})=>{try{let n=t.requireClient(),a;switch(r){case"trigger":a=await n.getTriggerLogs(i);break;case"scheduler":a=await n.getSchedulerLogs(i);break;default:return{content:[{type:"text",text:`Logs are not supported for type: ${r}. Supported types: trigger, scheduler`}],isError:!0}}return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}catch(n){return{content:[{type:"text",text:`Error getting logs for ${r} ${i}: ${n.message}`}],isError:!0}}})}});var oE=x(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});bx.registerDatabaseTool=pY;var ea=un(),aE=sx();function pY(e,t){e.tool("funifier_database","Query or aggregate any Funifier database collection. Use action='query' for simple equality filters. Use action='aggregate' for MongoDB operators ($regex, $gt, $in, etc.) and pipelines. Use action='collections' to list all available collections.",{action:ea.z.enum(["query","aggregate","collections","insert","update","delete","bulk"]).describe(`'query' for simple equality reads only \u2014 e.g. {"active": true, "team": false}. Does NOT support MongoDB operators ($regex, $gt, $in, etc.). For operators use 'aggregate' with a $match stage: pipeline=[{"$match": {"nome_guerra": {"$regex": "ECOA", "$options": "i"}}}, {"$limit": 5}]. 'aggregate' for full MongoDB pipelines ($match, $group, $project, $sort, $lookup, etc.). 'collections' to list all available collections. 'insert' to create a document (POST). 'update' to update a document (PUT, requires _id in data). 'delete' to remove documents (requires query filter). 'bulk' to insert/update multiple documents`),collection:ea.z.string().optional().describe("The collection name (e.g., 'player', 'action_log', 'videos__c'). Required for query and aggregate."),query:ea.z.string().optional().describe(`For action='query': JSON string with simple equality filters only (e.g., '{"active": true, "userId": "john"}', '{"team": false, "hierarquia": 0}'). Defaults to {} (all documents). Does NOT support MongoDB operators \u2014 use action=aggregate for those.`),pipeline:ea.z.string().optional().describe("For action='aggregate': JSON string of MongoDB aggregate pipeline array"),sort:ea.z.string().optional().describe(`For action='query': JSON string of sort object (e.g., '{"time":-1}').`),limit:ea.z.number().optional().describe("For action='query': Maximum number of documents to return. Default: 10."),offset:ea.z.number().optional().describe("For action='query': Number of documents to skip for pagination. Default: 0."),data:ea.z.string().optional().describe("For insert/update/bulk: JSON string of document(s). For insert: single object. For update: object with _id field. For bulk: array of objects.")},async({action:r,collection:i,query:n,pipeline:a,sort:o,limit:s,offset:c,data:u})=>{try{let l=t.requireClient();if(r==="collections"){let p=await l.getCollections();return{content:[{type:"text",text:`Found ${p.length} collections:
90
90
 
91
91
  ${p.join(`
92
92
  `)}`}]}}if(!i)return{content:[{type:"text",text:"Error: 'collection' is required for query and aggregate actions."}],isError:!0};if(r==="query"){let p=n?JSON.parse(n):{},g=o?JSON.parse(o):void 0,b=await l.queryCollection(i,p,{sort:g,limit:s??10,skip:c??0}),m=`Found ${b.length} document(s) in '${i}':`;return(0,aE.applyCharGuard)(b,m)}if(r==="aggregate"){if(!a)return{content:[{type:"text",text:"Error: 'pipeline' is required for aggregate action."}],isError:!0};let p=JSON.parse(a),g=await l.aggregateCollection(i,p),b=Array.isArray(g)?g:[g],m=`Aggregate result (${b.length} document(s)) from '${i}':`;return(0,aE.applyCharGuard)(b,m)}if(r==="insert"){if(!u)return{content:[{type:"text",text:"Error: 'data' is required for insert action."}],isError:!0};let p=JSON.parse(u),g=await l.insertDocument(i,p);return{content:[{type:"text",text:`Inserted document into '${i}':
@@ -152,7 +152,7 @@ Found existing funifier.json \u2014 serverUrl: ${l.serverUrl}`),await n({message
152
152
  \u2705 Setup complete.`),r.some(a=>a.key==="claude-code")&&console.log(" Claude Code: type /funifier-help to start."),r.some(a=>a.key==="antigravity")){let a=process.env.USERPROFILE||process.env.HOME||"~",o=er.join(a,".gemini","antigravity","mcp_config.json");console.log(` Antigravity: merge .antigravity/mcp_config.json into ${o}`),console.log(" Or: Antigravity \u2192 Manage MCP Servers \u2192 View raw config \u2192 add the funifier block")}if(r.some(a=>a.key==="kimi")){let a=process.env.USERPROFILE||process.env.HOME||"~",o=er.join(a,".kimi","mcp.json");console.log(` Kimi: merge .kimi/mcp.json into ${o}`),console.log(" Or: run `kimi mcp add --transport stdio funifier -- node <path-to-bundle.js>`")}i||console.log(" \u26A0 Fill in funifier.json.example and rename to funifier.json before using the MCP.")}});var hj=x(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.tokenize=Up;Wc.buildIndex=LQ;Wc.scoreFiles=BQ;var qQ=new Set(["the","and","for","are","but","not","you","all","can","her","was","one","our","had","has","have","that","this","with","they","from","will","been","its","than","then","when","who","what","how","into","more","also","use","used","using","which","about","each","some","such","any"]),UQ=new Set(["de","da","do","em","no","na","um","uma","que","com","por","para","dos","das","nos","nas","ser","ter","seu","sua","seus","suas","isso","este","esta","esse","essa","como","mais","mas","ele","ela","eles","elas","nao","sem","pode","pois","caso","cada","onde","quando","todo","toda","todos"]);function Up(e){return e.toLowerCase().split(/[\s\W_]+/).filter(t=>t.length>=3&&!qQ.has(t)&&!UQ.has(t))}function LQ(e){let t={files:{},idf:{}},r={},i=e.size;for(let[n,a]of e){let o=Up(a),s={};for(let u of o)s[u]=(s[u]??0)+1;let c=[];for(let u of a.split(`
153
153
  `))/^#{1,2}\s/.test(u)&&c.push(...Up(u.replace(/^#+\s*/,"")));t.files[n]={tokens:s,headings:c,totalTokens:o.length};for(let u of Object.keys(s))r[u]=(r[u]??0)+1}for(let[n,a]of Object.entries(r))t.idf[n]=Math.log((i+1)/(a+1));return t}function BQ(e,t,r={}){let{skillDocs:i=[],minScore:n=-1/0,top:a}=r,o=Up(e),s=[];for(let[c,u]of Object.entries(t.files)){let l=0;for(let p of o){let g=(u.tokens[p]??0)/Math.max(u.totalTokens,1),b=t.idf[p]??0;l+=g*b,u.headings.includes(p)&&(l+=.3)}i.includes(c)&&(l+=.2),l>n&&s.push({file:c,score:l})}return s.sort((c,u)=>u.score-c.score),a!==void 0?s.slice(0,a):s}});var xj=x(ki=>{"use strict";var VQ=ki&&ki.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),KQ=ki&&ki.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),gj=ki&&ki.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var i=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(i[i.length]=n);return i},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var i=e(t),n=0;n<i.length;n++)i[n]!=="default"&&VQ(r,t,i[n]);return KQ(r,t),r}}();Object.defineProperty(ki,"__esModule",{value:!0});ki.default=WQ;var Yc=gj(require("fs")),Xc=gj(require("path")),GQ=hj(),HQ=Sx();function JQ(e){let t=e.slice(3),r=t.find(n=>!n.startsWith("--"))??"",i=n=>{let a=t.find(s=>s.startsWith(`--${n}=`))?.split("=").slice(1).join("=");if(a!==void 0)return a;let o=t.indexOf(`--${n}`);return o>=0?t[o+1]:void 0};return{query:r,top:i("top")?parseInt(i("top"),10):3,skillId:i("skill"),minScore:i("min-score")?parseFloat(i("min-score")):.3}}function WQ(){let{query:e,top:t,skillId:r,minScore:i}=JQ(process.argv);e||(console.error('Usage: funifier-mcp search "<query>" [--top N] [--skill <id>] [--min-score N]'),process.exit(1));let n=Xc.join(process.cwd(),"datasource-funifier-docs"),a=(0,HQ.resolvePackageRoot)(),o=Xc.join(a,"datasource-funifier-docs"),s=Yc.existsSync(Xc.join(n,".search-index.json"))?n:o,c=Xc.join(s,".search-index.json"),u=Xc.join(s,".skills-map.json");Yc.existsSync(c)||(console.error("ERROR: .search-index.json not found. Run `npm run build:skills` first."),process.exit(1));let l=JSON.parse(Yc.readFileSync(c,"utf-8")),p=[];r&&Yc.existsSync(u)&&(p=JSON.parse(Yc.readFileSync(u,"utf-8"))[r]??[]);let g=(0,GQ.scoreFiles)(e,l,{skillDocs:p,minScore:i,top:t}),b="\u2500".repeat(53);console.log(`
154
154
  SEARCH: "${e}"`),console.log(b),g.length===0?console.log("No results above score threshold."):g.forEach((m,y)=>{let _=`datasource-funifier-docs/${m.file}`;console.log(`${y+1}. ${_.padEnd(60)} [score: ${m.score.toFixed(2)}]`)}),console.log(b),console.log(`Read files with score > ${i}. Skip others.
155
- `)}});var vj=x((Bce,YQ)=>{YQ.exports={name:"funifier-mcp",version:"0.2.22",description:"Funifier AI toolkit \u2014 MCP server, API client, and Claude Code skills for the Funifier gamification platform",main:"dist/index.js",types:"dist/index.d.ts",bin:{"funifier-mcp":"dist/mcp/index.js"},files:["dist","skills","doc","datasource-funifier-docs","AGENTS.md",".github/copilot-instructions.md",".cursor/rules/funifier.mdc","README.md","LICENSE"],repository:{type:"git",url:"git+https://github.com/funifierinc/funifier-mcp.git"},bugs:{url:"https://github.com/funifierinc/funifier-mcp/issues"},homepage:"https://github.com/funifierinc/funifier-mcp#readme",author:"Funifier",publishConfig:{access:"public"},scripts:{build:"tsc",bundle:"npm run build && esbuild dist/mcp/index.js --bundle --outfile=dist/mcp/bundle.js --format=cjs --platform=node --minify",dev:"tsc --watch",prepublishOnly:"npm run build:skills && npm run bundle",test:"vitest run","test:watch":"vitest watch","build:skills":"tsx scripts/build-skills.ts","build:skills:force":"tsx scripts/build-skills.ts --force","search:docs":"tsx scripts/search-docs.ts"},keywords:["funifier","gamification","mcp","model-context-protocol","claude","ai","api-client"],license:"MIT",dependencies:{"@inquirer/prompts":"^7.10.1","@modelcontextprotocol/sdk":"^1.0.0",axios:"^1.6.0",zod:"^3.25.76"},devDependencies:{"@types/node":"^25.5.0",esbuild:"^0.20.0",tsx:"^4.21.0",typescript:"^5.3.0",vitest:"^1.0.0"},engines:{node:">=18"}}});Object.defineProperty(exports,"__esModule",{value:!0});var XQ=tg(),QQ=zw(),eee=B4(),tee=sE(),ree=uE(),nee=lE();async function iee(){let e=process.argv[2];if(e==="init"){let{default:a}=mj();await a();return}if(e==="search"){let{default:a}=xj();a();return}if(e==="--version"||e==="-v"){let a=vj();console.log(a.version);return}if(e==="--help"||e==="-h"){console.log("Usage: funifier-mcp Start the MCP server (stdio)"),console.log(" funifier-mcp init Interactive setup for AI platforms"),console.log(' funifier-mcp search "<query>" Search Funifier documentation'),console.log(" funifier-mcp --version Print version");return}let t=new eee.ApiHolder,r=t.tryAutoConnect(),i=new XQ.McpServer({name:"funifier-mcp-server",version:"0.1.0"});(0,tee.registerTools)(i,t),(0,ree.registerResources)(i),(0,nee.registerPrompts)(i);let n=new QQ.StdioServerTransport;await i.connect(n),r||console.error("Funifier MCP server started without auto-config. Use funifier_connect tool to connect.")}iee().catch(e=>{console.error("Fatal error starting Funifier MCP server:",e),process.exit(1)});
155
+ `)}});var vj=x((Bce,YQ)=>{YQ.exports={name:"funifier-mcp",version:"0.2.23",description:"Funifier AI toolkit \u2014 MCP server, API client, and Claude Code skills for the Funifier gamification platform",main:"dist/index.js",types:"dist/index.d.ts",bin:{"funifier-mcp":"dist/mcp/index.js"},files:["dist","skills","doc","datasource-funifier-docs","AGENTS.md",".github/copilot-instructions.md",".cursor/rules/funifier.mdc","README.md","LICENSE"],repository:{type:"git",url:"git+https://github.com/funifierinc/funifier-mcp.git"},bugs:{url:"https://github.com/funifierinc/funifier-mcp/issues"},homepage:"https://github.com/funifierinc/funifier-mcp#readme",author:"Funifier",publishConfig:{access:"public"},scripts:{build:"tsc",bundle:"npm run build && esbuild dist/mcp/index.js --bundle --outfile=dist/mcp/bundle.js --format=cjs --platform=node --minify",dev:"tsc --watch",prepublishOnly:"npm run build:skills && npm run bundle",test:"vitest run","test:watch":"vitest watch","build:skills":"tsx scripts/build-skills.ts","build:skills:force":"tsx scripts/build-skills.ts --force","search:docs":"tsx scripts/search-docs.ts"},keywords:["funifier","gamification","mcp","model-context-protocol","claude","ai","api-client"],license:"MIT",dependencies:{"@inquirer/prompts":"^7.10.1","@modelcontextprotocol/sdk":"^1.0.0",axios:"^1.6.0",zod:"^3.25.76"},devDependencies:{"@types/node":"^25.5.0",esbuild:"^0.20.0",tsx:"^4.21.0",typescript:"^5.3.0",vitest:"^1.0.0"},engines:{node:">=18"}}});Object.defineProperty(exports,"__esModule",{value:!0});var XQ=tg(),QQ=zw(),eee=B4(),tee=sE(),ree=uE(),nee=lE();async function iee(){let e=process.argv[2];if(e==="init"){let{default:a}=mj();await a();return}if(e==="search"){let{default:a}=xj();a();return}if(e==="--version"||e==="-v"){let a=vj();console.log(a.version);return}if(e==="--help"||e==="-h"){console.log("Usage: funifier-mcp Start the MCP server (stdio)"),console.log(" funifier-mcp init Interactive setup for AI platforms"),console.log(' funifier-mcp search "<query>" Search Funifier documentation'),console.log(" funifier-mcp --version Print version");return}let t=new eee.ApiHolder,r=t.tryAutoConnect(),i=new XQ.McpServer({name:"funifier-mcp-server",version:"0.1.0"});(0,tee.registerTools)(i,t),(0,ree.registerResources)(i),(0,nee.registerPrompts)(i);let n=new QQ.StdioServerTransport;await i.connect(n),r||console.error("Funifier MCP server started without auto-config. Use funifier_connect tool to connect.")}iee().catch(e=>{console.error("Fatal error starting Funifier MCP server:",e),process.exit(1)});
156
156
  /*! Bundled license information:
157
157
 
158
158
  mime-db/index.js:
@@ -1 +1 @@
1
- {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/save.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA2F1C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QAuDvE"}
1
+ {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/save.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA2F1C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QA+CvE"}
@@ -142,18 +142,10 @@ function registerSaveTool(server, apiHolder) {
142
142
  let toSave = data;
143
143
  if (data._id) {
144
144
  const current = await (0, _fetch_current_1.fetchCurrentById)(api, type, data._id);
145
- if (!current) {
146
- return {
147
- content: [
148
- {
149
- type: "text",
150
- text: `Cannot update ${type} ${data._id}: resource not found`,
151
- },
152
- ],
153
- isError: true,
154
- };
145
+ if (current) {
146
+ toSave = (0, _merge_1.mergeResource)(current, data);
155
147
  }
156
- toSave = (0, _merge_1.mergeResource)(current, data);
148
+ // if current is null: _id is user-defined for a new resource — create as-is
157
149
  }
158
150
  const result = await dispatchSave(api, type, toSave);
159
151
  const id = result?._id ?? toSave._id ?? "unknown";
@@ -1 +1 @@
1
- {"version":3,"file":"save.js","sourceRoot":"","sources":["../../../src/mcp/tools/save.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"save.js","sourceRoot":"","sources":["../../../src/mcp/tools/save.ts"],"names":[],"mappings":"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"}
@@ -163,20 +163,21 @@ function makeHarness(fakeApi) {
163
163
  (0, vitest_1.expect)(savedArg.icon).toBeNull();
164
164
  (0, vitest_1.expect)(savedArg.title).toBe("T");
165
165
  });
166
- (0, vitest_1.it)("update path: _id not found returns isError and does not save", async () => {
167
- let saveCalled = false;
166
+ (0, vitest_1.it)("create path: _id present but not found creates the resource", async () => {
167
+ let savedArg = null;
168
168
  const fakeApi = {
169
169
  listCustomPages: async () => [{ _id: "other", title: "x" }],
170
- saveCustomPage: async () => {
171
- saveCalled = true;
172
- return {};
170
+ saveCustomPage: async (data) => {
171
+ savedArg = data;
172
+ return data;
173
173
  },
174
174
  };
175
175
  const invoke = makeHarness(fakeApi);
176
176
  const result = await invoke("custom-page", { _id: "cp1", title: "New" });
177
- (0, vitest_1.expect)(result.isError).toBe(true);
178
- (0, vitest_1.expect)(result.content[0].text).toMatch(/not found/i);
179
- (0, vitest_1.expect)(saveCalled).toBe(false);
177
+ (0, vitest_1.expect)(result.isError).toBeUndefined();
178
+ (0, vitest_1.expect)(savedArg).not.toBeNull();
179
+ (0, vitest_1.expect)(savedArg._id).toBe("cp1");
180
+ (0, vitest_1.expect)(savedArg.title).toBe("New");
180
181
  });
181
182
  (0, vitest_1.it)("update path: nested array is replaced wholesale", async () => {
182
183
  const current = { _id: "ch1", name: "C", rules: [{ id: "a" }, { id: "b" }] };
@@ -1 +1 @@
1
- {"version":3,"file":"save.test.js","sourceRoot":"","sources":["../../../src/mcp/tools/save.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"save.test.js","sourceRoot":"","sources":["../../../src/mcp/tools/save.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "funifier-mcp",
3
- "version": "0.2.22",
3
+ "version": "0.2.23",
4
4
  "description": "Funifier AI toolkit — MCP server, API client, and Claude Code skills for the Funifier gamification platform",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",