@kitelev/exocortex-cli 15.26.2 → 15.26.3

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.
Files changed (2) hide show
  1. package/dist/index.js +3 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // @kitelev/exocortex-cli v15.26.2
2
+ // @kitelev/exocortex-cli v15.26.3
3
3
  // CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more
4
4
  // License: MIT
5
5
 
@@ -251,7 +251,7 @@ WHERE {
251
251
  ?person ${M.PREDICATES.INSTANCE_CLASS} "[[${M.ASSET_CLASSES.PERSON}]]" .
252
252
  ?person ${M.PREDICATES.ASSET_LABEL} ?label .
253
253
  }
254
- ORDER BY ?label`,parameters:[],examples:["\u0432\u0441\u0435 \u043B\u044E\u0434\u0438","\u043A\u043E\u043D\u0442\u0430\u043A\u0442\u044B","persons"],keywords:["\u043B\u044E\u0434\u0438","\u043A\u043E\u043D\u0442\u0430\u043A\u0442\u044B","persons","person"]}];function u4(n){return M.SPARQL_TEMPLATES.find(e=>e.name===n)}o(u4,"getTemplateByName");function f4(n,e=3){let t=n.toLowerCase(),r=new Map;for(let i of M.SPARQL_TEMPLATES){let s=0;for(let a of i.keywords)t.includes(a.toLowerCase())&&(s+=2);for(let a of i.examples){let c=a.toLowerCase().split(/\s+/),l=t.split(/\s+/),u=c.filter(f=>l.some(h=>h.includes(f)||f.includes(h)));s+=u.length*.5}s>0&&r.set(i,s)}return Array.from(r.entries()).sort((i,s)=>s[1]-i[1]).slice(0,e).map(([i])=>i)}o(f4,"findMatchingTemplates");function h4(n,e){let t=n.template;for(let r of n.parameters)!r.required&&!e[r.name]&&r.name==="limit"&&(e[r.name]="100");for(let[r,i]of Object.entries(e))t=t.replace(new RegExp(`\\{\\{${r}\\}\\}`,"g"),i);return t}o(h4,"fillTemplate");function d4(n,e){let t=[];for(let r of n.parameters)r.required&&!e[r.name]&&t.push(r.name);return{valid:t.length===0,missing:t}}o(d4,"validateParameters")});var _b=v(Sn=>{"use strict";var p4=Sn&&Sn.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(a=n[c])&&(s=(i<3?a(s):i>3?a(e,t,s):a(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},m4=Sn&&Sn.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(Sn,"__esModule",{value:!0});Sn.NLToSPARQLService=Sn.DEFAULT_NL_TO_SPARQL_CONFIG=void 0;var g4=Ve(),y4=la(),lt=b0();Sn.DEFAULT_NL_TO_SPARQL_CONFIG={defaultLimit:100,includeExplanation:!0,confidenceThreshold:.3};var w0=class{static{o(this,"NLToSPARQLService")}constructor(e={}){this.uuidPattern=/\b([0-9a-f]{8}[-]?[0-9a-f]{4}[-]?[0-9a-f]{4}[-]?[0-9a-f]{4}[-]?[0-9a-f]{12})\b/i,this.datePattern=/\b(20\d{2}[-]?\d{2}(?:[-]?\d{2})?)\b/,this.monthNames={\u044F\u043D\u0432\u0430\u0440:"01",\u0444\u0435\u0432\u0440\u0430\u043B:"02",\u043C\u0430\u0440\u0442:"03",\u0430\u043F\u0440\u0435\u043B:"04",\u043C\u0430\u0439:"05",\u0438\u044E\u043D:"06",\u0438\u044E\u043B:"07",\u0430\u0432\u0433\u0443\u0441\u0442:"08",\u0441\u0435\u043D\u0442\u044F\u0431\u0440:"09",\u043E\u043A\u0442\u044F\u0431\u0440:"10",\u043D\u043E\u044F\u0431\u0440:"11",\u0434\u0435\u043A\u0430\u0431\u0440:"12",january:"01",february:"02",march:"03",april:"04",may:"05",june:"06",july:"07",august:"08",september:"09",october:"10",november:"11",december:"12"},this.activityPatterns={\u0434\u0443\u0448:"\u0434\u0443\u0448","morning shower":"\u0434\u0443\u0448","\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 \u0434\u0443\u0448":"\u0434\u0443\u0448",\u0441\u043E\u043D:"\u041F\u043E\u0441\u043F\u0430\u0442\u044C",\u0441\u043F\u0430\u0442\u044C:"\u041F\u043E\u0441\u043F\u0430\u0442\u044C",\u043F\u043E\u0441\u043F\u0430\u0442\u044C:"\u041F\u043E\u0441\u043F\u0430\u0442\u044C",sleep:"\u041F\u043E\u0441\u043F\u0430\u0442\u044C",\u0439\u043E\u0433\u0430:"\u0439\u043E\u0433",yoga:"\u0439\u043E\u0433",\u043F\u0440\u0435\u0441\u0441:"\u041F\u0440\u0435\u0441\u0441","wim hof":"Wim Hof",\u043C\u043E\u0447\u0438:"\u041C\u041E\u0427\u0418"},this.prototypeMapping={\u0434\u0443\u0448:lt.KNOWN_PROTOTYPES.MORNING_SHOWER,"\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 \u0434\u0443\u0448":lt.KNOWN_PROTOTYPES.MORNING_SHOWER,"morning shower":lt.KNOWN_PROTOTYPES.MORNING_SHOWER,\u043D\u043E\u0433\u0442\u0438:lt.KNOWN_PROTOTYPES.CUT_NAILS,"\u043F\u043E\u0434\u0441\u0442\u0440\u0438\u0447\u044C \u043D\u043E\u0433\u0442\u0438":lt.KNOWN_PROTOTYPES.CUT_NAILS},this.config={...Sn.DEFAULT_NL_TO_SPARQL_CONFIG,...e}}convert(e){let t=e.trim().toLowerCase(),r=t.match(this.uuidPattern);if(r)return this.handleUuidQuery(t,r[1]);let i=(0,lt.findClassByTerm)(t),s=(0,lt.findMatchingTemplates)(t,3),a=new Set(["active_projects","projects_without_tasks","areas","persons","find_prototype","sleep_analysis","recent_activities"]);if(s.length>0){let l=s[0];if(a.has(l.name))return this.buildTemplateResult(t,l,s)}if(i)return this.handleClassQuery(t,i);if(s.length===0)return this.createFallbackQuery(t);let c=s[0];return this.buildTemplateResult(t,c,s)}buildTemplateResult(e,t,r){let i=this.extractParameters(e,t),s=(0,lt.validateParameters)(t,i);if(!s.valid){for(let f of s.missing){let h=this.inferParameter(e,f,t);h&&(i[f]=h)}let u=(0,lt.validateParameters)(t,i);if(!u.valid){let f=(0,lt.findClassByTerm)(e);return f?this.handleClassQuery(e,f):this.createFallbackQuery(e,{template:t,missingParams:u.missing})}}let a=(0,lt.fillTemplate)(t,i),c=this.calculateConfidence(e,t,i),l=r.slice(1).map(u=>{let f=this.extractParameters(e,u);return(0,lt.fillTemplate)(u,f)}).filter(u=>u!==a);return{query:a,templateName:t.name,parameters:i,confidence:c,explanation:this.generateExplanation(t,i),isFallback:!1,alternatives:l}}handleUuidQuery(e,t){if(e.includes("\u043F\u0440\u043E\u0442\u043E\u0442\u0438\u043F")||e.includes("prototype")||e.includes("\u0438\u043D\u0441\u0442\u0430\u043D\u0441")){let s=(0,lt.getTemplateByName)("find_by_prototype_uuid");if(!s)throw new Error("Template find_by_prototype_uuid not found");let a={prototypeUuid:t,limit:"100"};return{query:(0,lt.fillTemplate)(s,a),templateName:s.name,parameters:a,confidence:.9,explanation:`\u041F\u043E\u0438\u0441\u043A \u0438\u043D\u0441\u0442\u0430\u043D\u0441\u043E\u0432 \u043F\u0440\u043E\u0442\u043E\u0442\u0438\u043F\u0430 \u0441 UUID ${t}`,isFallback:!1,alternatives:[]}}let r=(0,lt.getTemplateByName)("properties_by_uuid");if(!r)throw new Error("Template properties_by_uuid not found");let i={uuid:t};return{query:(0,lt.fillTemplate)(r,i),templateName:r.name,parameters:i,confidence:.9,explanation:`\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u0441 UUID ${t}`,isFallback:!1,alternatives:[]}}handleClassQuery(e,t){let r=this.extractSearchTerms(e,t);if(r.length>0){let a=(0,lt.getTemplateByName)("find_by_class_and_keyword");if(!a)throw new Error("Template find_by_class_and_keyword not found");let c=r.join("|"),l={classMatch:t.match,regexPattern:c,limit:this.extractLimit(e)};return{query:(0,lt.fillTemplate)(a,l),templateName:a.name,parameters:l,confidence:.85,explanation:`\u041F\u043E\u0438\u0441\u043A ${t.label} \u043F\u043E \u043F\u0430\u0442\u0442\u0435\u0440\u043D\u0443 "${c}"`,isFallback:!1,alternatives:[]}}let i=(0,lt.getTemplateByName)("find_by_class");if(!i)throw new Error("Template find_by_class not found");let s={classMatch:t.match,limit:this.extractLimit(e)};return{query:(0,lt.fillTemplate)(i,s),templateName:i.name,parameters:s,confidence:.8,explanation:`\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 ${t.label}`,isFallback:!1,alternatives:[]}}extractSearchTerms(e,t){let r=e.toLowerCase().split(/\s+/),i=new Set([...t.terms,"\u0432\u0441\u0435","\u0432\u0441\u0435\u0445","\u0432\u0441\u044E","\u0432\u0435\u0441\u044C","\u043D\u0430\u0439\u0434\u0438","\u043D\u0430\u0439\u0442\u0438","\u043F\u043E\u043A\u0430\u0436\u0438","\u043F\u043E\u043A\u0430\u0436\u0435\u0448\u044C","\u0441\u043F\u0438\u0441\u043E\u043A","\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435","\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0445","\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0439","\u043F\u0440\u043E","\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435","\u0441\u043E","\u0441\u043B\u043E\u0432\u043E\u043C","\u0438\u043B\u0438","\u0438","and","or","\u0441","\u043D\u0430","\u043F\u043E","\u0434\u043B\u044F","\u0432","\u0437\u0430","\u043E\u0442","\u043A","\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435","\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445","\u043C\u043E\u0438","\u043C\u043E\u0438\u0445","\u043C\u043E\u0439","\u043C\u043E\u044F","\u043A\u0430\u043A\u0438\u0435","\u043A\u0430\u043A\u043E\u0439","\u043A\u0430\u043A\u0430\u044F","\u043A\u0430\u043A\u043E\u0433\u043E","\u0447\u0442\u043E","\u0433\u0434\u0435","\u043A\u0430\u043A","\u043A\u0442\u043E"]);return r.filter(a=>a.length>=2&&!i.has(a)&&!/^\d+$/.test(a))}extractParameters(e,t){let r={};for(let i of t.parameters)switch(i.name){case"keyword":case"pattern":case"taskLabel":case"entityLabel":r[i.name]=this.extractKeyword(e,t);break;case"prototypeUuid":r[i.name]=this.extractPrototypeUuid(e);break;case"yearMonth":r[i.name]=this.extractYearMonth(e);break;case"limit":r[i.name]=this.extractLimit(e);break;case"uuid":{let s=e.match(this.uuidPattern);s&&(r[i.name]=s[1]);break}}return r}extractKeyword(e,t){for(let[a,c]of Object.entries(this.activityPatterns))if(e.includes(a))return c;let r=e.match(/["'«»]([^"'«»]+)["'«»]/);if(r)return r[1];let i=e.replace(/^(найди|найти|покажи|покажешь|какие|какой|сколько|где|как|что|все|всех|мои|моих|за|в|по|для|который|которые)\s+/gi,"").replace(/\s+(за|в|по|для|с|на|от)\s+\d+.*$/gi,"").trim(),s=i.split(/\s+/);return s.length>0?s.slice(0,2).join(" "):i||e}extractPrototypeUuid(e){let t=e.match(this.uuidPattern);if(t)return t[1];for(let[r,i]of Object.entries(this.prototypeMapping))if(e.includes(r))return i;return""}extractYearMonth(e){let t=e.match(this.datePattern);if(t)return t[1].replace(/(\d{4})(\d{2})/,"$1-$2");for(let[r,i]of Object.entries(this.monthNames))if(e.includes(r)){let s=e.match(/\b(20\d{2})\b/);return`${s?s[1]:new Date().getFullYear()}-${i}`}return""}extractLimit(e){let t=e.match(/(?:первые|последние|топ|limit|лимит)\s*(\d+)/i);if(t)return t[1];let r=e.match(/\b(\d{1,3})\b/);return r&&parseInt(r[1])<=500?r[1]:String(this.config.defaultLimit)}inferParameter(e,t,r){switch(t){case"prototypeUuid":for(let[i,s]of Object.entries(this.prototypeMapping))if(e.includes(i))return s;break;case"keyword":case"pattern":for(let[i,s]of Object.entries(this.activityPatterns))if(e.includes(i))return s;break}return null}createFallbackQuery(e,t){let r=this.extractKeyword(e,lt.SPARQL_TEMPLATES[0]),i=`${lt.SPARQL_PREFIXES}
254
+ ORDER BY ?label`,parameters:[],examples:["\u0432\u0441\u0435 \u043B\u044E\u0434\u0438","\u043A\u043E\u043D\u0442\u0430\u043A\u0442\u044B","persons"],keywords:["\u043B\u044E\u0434\u0438","\u043A\u043E\u043D\u0442\u0430\u043A\u0442\u044B","\u043F\u0435\u0440\u0441\u043E\u043D","\u043F\u0435\u0440\u0441\u043E\u043D\u044B","\u043F\u0435\u0440\u0441\u043E\u043D\u0430","persons","person"]}];function u4(n){return M.SPARQL_TEMPLATES.find(e=>e.name===n)}o(u4,"getTemplateByName");function f4(n,e=3){let t=n.toLowerCase(),r=new Map;for(let i of M.SPARQL_TEMPLATES){let s=0;for(let a of i.keywords)t.includes(a.toLowerCase())&&(s+=2);for(let a of i.examples){let c=a.toLowerCase().split(/\s+/),l=t.split(/\s+/),u=c.filter(f=>l.some(h=>h.includes(f)||f.includes(h)));s+=u.length*.5}s>0&&r.set(i,s)}return Array.from(r.entries()).sort((i,s)=>s[1]-i[1]).slice(0,e).map(([i])=>i)}o(f4,"findMatchingTemplates");function h4(n,e){let t=n.template;for(let r of n.parameters)!r.required&&!e[r.name]&&r.name==="limit"&&(e[r.name]="100");for(let[r,i]of Object.entries(e))t=t.replace(new RegExp(`\\{\\{${r}\\}\\}`,"g"),i);return t}o(h4,"fillTemplate");function d4(n,e){let t=[];for(let r of n.parameters)r.required&&!e[r.name]&&t.push(r.name);return{valid:t.length===0,missing:t}}o(d4,"validateParameters")});var _b=v(Sn=>{"use strict";var p4=Sn&&Sn.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(a=n[c])&&(s=(i<3?a(s):i>3?a(e,t,s):a(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},m4=Sn&&Sn.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(Sn,"__esModule",{value:!0});Sn.NLToSPARQLService=Sn.DEFAULT_NL_TO_SPARQL_CONFIG=void 0;var g4=Ve(),y4=la(),lt=b0();Sn.DEFAULT_NL_TO_SPARQL_CONFIG={defaultLimit:100,includeExplanation:!0,confidenceThreshold:.3};var w0=class{static{o(this,"NLToSPARQLService")}constructor(e={}){this.uuidPattern=/\b([0-9a-f]{8}[-]?[0-9a-f]{4}[-]?[0-9a-f]{4}[-]?[0-9a-f]{4}[-]?[0-9a-f]{12})\b/i,this.datePattern=/\b(20\d{2}[-]?\d{2}(?:[-]?\d{2})?)\b/,this.monthNames={\u044F\u043D\u0432\u0430\u0440:"01",\u0444\u0435\u0432\u0440\u0430\u043B:"02",\u043C\u0430\u0440\u0442:"03",\u0430\u043F\u0440\u0435\u043B:"04",\u043C\u0430\u0439:"05",\u0438\u044E\u043D:"06",\u0438\u044E\u043B:"07",\u0430\u0432\u0433\u0443\u0441\u0442:"08",\u0441\u0435\u043D\u0442\u044F\u0431\u0440:"09",\u043E\u043A\u0442\u044F\u0431\u0440:"10",\u043D\u043E\u044F\u0431\u0440:"11",\u0434\u0435\u043A\u0430\u0431\u0440:"12",january:"01",february:"02",march:"03",april:"04",may:"05",june:"06",july:"07",august:"08",september:"09",october:"10",november:"11",december:"12"},this.activityPatterns={\u0434\u0443\u0448:"\u0434\u0443\u0448","morning shower":"\u0434\u0443\u0448","\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 \u0434\u0443\u0448":"\u0434\u0443\u0448",\u0441\u043E\u043D:"\u041F\u043E\u0441\u043F\u0430\u0442\u044C",\u0441\u043F\u0430\u0442\u044C:"\u041F\u043E\u0441\u043F\u0430\u0442\u044C",\u043F\u043E\u0441\u043F\u0430\u0442\u044C:"\u041F\u043E\u0441\u043F\u0430\u0442\u044C",sleep:"\u041F\u043E\u0441\u043F\u0430\u0442\u044C",\u0439\u043E\u0433\u0430:"\u0439\u043E\u0433",yoga:"\u0439\u043E\u0433",\u043F\u0440\u0435\u0441\u0441:"\u041F\u0440\u0435\u0441\u0441","wim hof":"Wim Hof",\u043C\u043E\u0447\u0438:"\u041C\u041E\u0427\u0418"},this.prototypeMapping={\u0434\u0443\u0448:lt.KNOWN_PROTOTYPES.MORNING_SHOWER,"\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 \u0434\u0443\u0448":lt.KNOWN_PROTOTYPES.MORNING_SHOWER,"morning shower":lt.KNOWN_PROTOTYPES.MORNING_SHOWER,\u043D\u043E\u0433\u0442\u0438:lt.KNOWN_PROTOTYPES.CUT_NAILS,"\u043F\u043E\u0434\u0441\u0442\u0440\u0438\u0447\u044C \u043D\u043E\u0433\u0442\u0438":lt.KNOWN_PROTOTYPES.CUT_NAILS},this.config={...Sn.DEFAULT_NL_TO_SPARQL_CONFIG,...e}}convert(e){let t=e.trim().toLowerCase(),r=t.match(this.uuidPattern);if(r)return this.handleUuidQuery(t,r[1]);let i=(0,lt.findClassByTerm)(t),s=(0,lt.findMatchingTemplates)(t,3),a=new Set(["active_projects","projects_without_tasks","areas","persons","find_prototype","sleep_analysis","recent_activities"]);if(s.length>0){let l=s[0];if(a.has(l.name)){let u=t.split(/\s+/);if(l.keywords.some(h=>u.includes(h.toLowerCase())))return this.buildTemplateResult(t,l,s)}}if(i)return this.handleClassQuery(t,i);if(s.length===0)return this.createFallbackQuery(t);let c=s[0];return this.buildTemplateResult(t,c,s)}buildTemplateResult(e,t,r){let i=this.extractParameters(e,t),s=(0,lt.validateParameters)(t,i);if(!s.valid){for(let f of s.missing){let h=this.inferParameter(e,f,t);h&&(i[f]=h)}let u=(0,lt.validateParameters)(t,i);if(!u.valid){let f=(0,lt.findClassByTerm)(e);return f?this.handleClassQuery(e,f):this.createFallbackQuery(e,{template:t,missingParams:u.missing})}}let a=(0,lt.fillTemplate)(t,i),c=this.calculateConfidence(e,t,i),l=r.slice(1).map(u=>{let f=this.extractParameters(e,u);return(0,lt.fillTemplate)(u,f)}).filter(u=>u!==a);return{query:a,templateName:t.name,parameters:i,confidence:c,explanation:this.generateExplanation(t,i),isFallback:!1,alternatives:l}}handleUuidQuery(e,t){if(e.includes("\u043F\u0440\u043E\u0442\u043E\u0442\u0438\u043F")||e.includes("prototype")||e.includes("\u0438\u043D\u0441\u0442\u0430\u043D\u0441")){let s=(0,lt.getTemplateByName)("find_by_prototype_uuid");if(!s)throw new Error("Template find_by_prototype_uuid not found");let a={prototypeUuid:t,limit:"100"};return{query:(0,lt.fillTemplate)(s,a),templateName:s.name,parameters:a,confidence:.9,explanation:`\u041F\u043E\u0438\u0441\u043A \u0438\u043D\u0441\u0442\u0430\u043D\u0441\u043E\u0432 \u043F\u0440\u043E\u0442\u043E\u0442\u0438\u043F\u0430 \u0441 UUID ${t}`,isFallback:!1,alternatives:[]}}let r=(0,lt.getTemplateByName)("properties_by_uuid");if(!r)throw new Error("Template properties_by_uuid not found");let i={uuid:t};return{query:(0,lt.fillTemplate)(r,i),templateName:r.name,parameters:i,confidence:.9,explanation:`\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u0441 UUID ${t}`,isFallback:!1,alternatives:[]}}handleClassQuery(e,t){let r=this.extractSearchTerms(e,t);if(r.length>0){let a=(0,lt.getTemplateByName)("find_by_class_and_keyword");if(!a)throw new Error("Template find_by_class_and_keyword not found");let c=r.join("|"),l={classMatch:t.match,regexPattern:c,limit:this.extractLimit(e)};return{query:(0,lt.fillTemplate)(a,l),templateName:a.name,parameters:l,confidence:.85,explanation:`\u041F\u043E\u0438\u0441\u043A ${t.label} \u043F\u043E \u043F\u0430\u0442\u0442\u0435\u0440\u043D\u0443 "${c}"`,isFallback:!1,alternatives:[]}}let i=(0,lt.getTemplateByName)("find_by_class");if(!i)throw new Error("Template find_by_class not found");let s={classMatch:t.match,limit:this.extractLimit(e)};return{query:(0,lt.fillTemplate)(i,s),templateName:i.name,parameters:s,confidence:.8,explanation:`\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 ${t.label}`,isFallback:!1,alternatives:[]}}extractSearchTerms(e,t){let r=e.toLowerCase().split(/\s+/),i=new Set([...t.terms,"\u0432\u0441\u0435","\u0432\u0441\u0435\u0445","\u0432\u0441\u044E","\u0432\u0435\u0441\u044C","\u043D\u0430\u0439\u0434\u0438","\u043D\u0430\u0439\u0442\u0438","\u043F\u043E\u043A\u0430\u0436\u0438","\u043F\u043E\u043A\u0430\u0436\u0435\u0448\u044C","\u0441\u043F\u0438\u0441\u043E\u043A","\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435","\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0445","\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0439","\u043F\u0440\u043E","\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435","\u0441\u043E","\u0441\u043B\u043E\u0432\u043E\u043C","\u0438\u043B\u0438","\u0438","and","or","\u0441","\u043D\u0430","\u043F\u043E","\u0434\u043B\u044F","\u0432","\u0437\u0430","\u043E\u0442","\u043A","\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435","\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445","\u043C\u043E\u0438","\u043C\u043E\u0438\u0445","\u043C\u043E\u0439","\u043C\u043E\u044F","\u043A\u0430\u043A\u0438\u0435","\u043A\u0430\u043A\u043E\u0439","\u043A\u0430\u043A\u0430\u044F","\u043A\u0430\u043A\u043E\u0433\u043E","\u0447\u0442\u043E","\u0433\u0434\u0435","\u043A\u0430\u043A","\u043A\u0442\u043E"]);return r.filter(a=>a.length>=2&&!i.has(a)&&!/^\d+$/.test(a))}extractParameters(e,t){let r={};for(let i of t.parameters)switch(i.name){case"keyword":case"pattern":case"taskLabel":case"entityLabel":r[i.name]=this.extractKeyword(e,t);break;case"prototypeUuid":r[i.name]=this.extractPrototypeUuid(e);break;case"yearMonth":r[i.name]=this.extractYearMonth(e);break;case"limit":r[i.name]=this.extractLimit(e);break;case"uuid":{let s=e.match(this.uuidPattern);s&&(r[i.name]=s[1]);break}}return r}extractKeyword(e,t){for(let[a,c]of Object.entries(this.activityPatterns))if(e.includes(a))return c;let r=e.match(/["'«»]([^"'«»]+)["'«»]/);if(r)return r[1];let i=e.replace(/^(найди|найти|покажи|покажешь|какие|какой|сколько|где|как|что|все|всех|мои|моих|за|в|по|для|который|которые)\s+/gi,"").replace(/\s+(за|в|по|для|с|на|от)\s+\d+.*$/gi,"").trim(),s=i.split(/\s+/);return s.length>0?s.slice(0,2).join(" "):i||e}extractPrototypeUuid(e){let t=e.match(this.uuidPattern);if(t)return t[1];for(let[r,i]of Object.entries(this.prototypeMapping))if(e.includes(r))return i;return""}extractYearMonth(e){let t=e.match(this.datePattern);if(t)return t[1].replace(/(\d{4})(\d{2})/,"$1-$2");for(let[r,i]of Object.entries(this.monthNames))if(e.includes(r)){let s=e.match(/\b(20\d{2})\b/);return`${s?s[1]:new Date().getFullYear()}-${i}`}return""}extractLimit(e){let t=e.match(/(?:первые|последние|топ|limit|лимит)\s*(\d+)/i);if(t)return t[1];let r=e.match(/\b(\d{1,3})\b/);return r&&parseInt(r[1])<=500?r[1]:String(this.config.defaultLimit)}inferParameter(e,t,r){switch(t){case"prototypeUuid":for(let[i,s]of Object.entries(this.prototypeMapping))if(e.includes(i))return s;break;case"keyword":case"pattern":for(let[i,s]of Object.entries(this.activityPatterns))if(e.includes(i))return s;break}return null}createFallbackQuery(e,t){let r=this.extractKeyword(e,lt.SPARQL_TEMPLATES[0]),i=`${lt.SPARQL_PREFIXES}
255
255
 
256
256
  SELECT ?s ?label ?class WHERE {
257
257
  ?s ${lt.PREDICATES.ASSET_LABEL} ?label .
@@ -594,7 +594,7 @@ Continue? (y/n): `,s=>{r.close(),i(s.toLowerCase()==="y"||s.toLowerCase()==="yes
594
594
  ORDER BY DESC(?usageCount)
595
595
  `;a=s.parse(p),c=new Xt.AlgebraTranslator,l=c.translate(a),u=new Xt.AlgebraOptimizer,l=u.optimize(l);let S=(await f.executeAll(l)).map(A=>{let C=A.get("property"),k=A.get("usageCount");return{name:C?kC(C.toString()):"unknown",usageCount:k?parseInt(k.toString(),10):0}}),E={name:e,instanceCount:d,properties:S};if(r==="json"||t.format==="json"){let A=_e.success(E);console.log(JSON.stringify(A,null,2))}else{if(console.log(`\u{1F4CB} Class: ${e}
596
596
  `),console.log(` Instances: ${d}`),console.log(` Properties: ${S.length}
597
- `),S.length===0){console.log(" No properties found.");return}let A=Math.max(...S.map(C=>C.name.length),10);console.log(" \u250C"+"\u2500".repeat(A+2)+"\u252C"+"\u2500".repeat(10)+"\u2510"),console.log(" \u2502 "+"Property".padEnd(A)+" \u2502 "+"Usage".padEnd(8)+" \u2502"),console.log(" \u251C"+"\u2500".repeat(A+2)+"\u253C"+"\u2500".repeat(10)+"\u2524");for(let C of S)console.log(" \u2502 "+C.name.padEnd(A)+" \u2502 "+C.usageCount.toString().padStart(8)+" \u2502");console.log(" \u2514"+"\u2500".repeat(A+2)+"\u2534"+"\u2500".repeat(10)+"\u2518")}}o(HV,"showClassDetails");function kC(n){let e=n.replace(/^<|>$/g,""),t=e.lastIndexOf("#");if(t!==-1)return e.substring(t+1);let r=e.lastIndexOf("/");return r!==-1?e.substring(r+1):e}o(kC,"extractLocalName");var Pn=new ut;Pn.name("exocortex").description("CLI tool for Exocortex knowledge management system").version("15.26.2");var sv=Pn.command("sparql").description("SPARQL query execution and cache management");sv.addCommand(rA());sv.addCommand(sA());sv.addCommand(aA());Pn.addCommand(pC());Pn.addCommand(yC());Pn.addCommand(vC());Pn.addCommand(SC());Pn.addCommand(bC());Pn.addCommand(AC());Pn.addCommand(PC());Pn.addCommand(DC());Pn.addCommand(MC());Pn.parse();
597
+ `),S.length===0){console.log(" No properties found.");return}let A=Math.max(...S.map(C=>C.name.length),10);console.log(" \u250C"+"\u2500".repeat(A+2)+"\u252C"+"\u2500".repeat(10)+"\u2510"),console.log(" \u2502 "+"Property".padEnd(A)+" \u2502 "+"Usage".padEnd(8)+" \u2502"),console.log(" \u251C"+"\u2500".repeat(A+2)+"\u253C"+"\u2500".repeat(10)+"\u2524");for(let C of S)console.log(" \u2502 "+C.name.padEnd(A)+" \u2502 "+C.usageCount.toString().padStart(8)+" \u2502");console.log(" \u2514"+"\u2500".repeat(A+2)+"\u2534"+"\u2500".repeat(10)+"\u2518")}}o(HV,"showClassDetails");function kC(n){let e=n.replace(/^<|>$/g,""),t=e.lastIndexOf("#");if(t!==-1)return e.substring(t+1);let r=e.lastIndexOf("/");return r!==-1?e.substring(r+1):e}o(kC,"extractLocalName");var Pn=new ut;Pn.name("exocortex").description("CLI tool for Exocortex knowledge management system").version("15.26.3");var sv=Pn.command("sparql").description("SPARQL query execution and cache management");sv.addCommand(rA());sv.addCommand(sA());sv.addCommand(aA());Pn.addCommand(pC());Pn.addCommand(yC());Pn.addCommand(vC());Pn.addCommand(SC());Pn.addCommand(bC());Pn.addCommand(AC());Pn.addCommand(PC());Pn.addCommand(DC());Pn.addCommand(MC());Pn.parse();
598
598
  /*! Bundled license information:
599
599
 
600
600
  reflect-metadata/Reflect.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitelev/exocortex-cli",
3
- "version": "15.26.2",
3
+ "version": "15.26.3",
4
4
  "description": "CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more",
5
5
  "main": "dist/index.js",
6
6
  "bin": {