larkup 0.1.26 → 0.1.28
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +11 -11
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +16 -16
- package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/analytics.html +1 -1
- package/.next/server/app/analytics.rsc +17 -17
- package/.next/server/app/analytics.segments/_full.segment.rsc +17 -17
- package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/_index.segment.rsc +11 -11
- package/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
- package/.next/server/app/api/chat/route.js +4 -4
- package/.next/server/app/api/media/process/route.js +2 -2
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +17 -17
- package/.next/server/app/chat.segments/_full.segment.rsc +17 -17
- package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/server/app/chat.segments/_index.segment.rsc +11 -11
- package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
- package/.next/server/app/data/page_client-reference-manifest.js +1 -1
- package/.next/server/app/data.html +1 -1
- package/.next/server/app/data.rsc +17 -17
- package/.next/server/app/data.segments/_full.segment.rsc +17 -17
- package/.next/server/app/data.segments/_head.segment.rsc +4 -4
- package/.next/server/app/data.segments/_index.segment.rsc +11 -11
- package/.next/server/app/data.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/data.segments/data.segment.rsc +3 -3
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +16 -16
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +11 -11
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +18 -18
- package/.next/server/app/settings.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +11 -11
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/server/chunks/[root-of-the-server]__1o3rcbz._.js +5 -3
- package/.next/server/chunks/[root-of-the-server]__1s9is1o._.js +5 -3
- package/.next/server/chunks/[root-of-the-server]__1zptg4z._.js +5 -3
- package/.next/server/chunks/packages_marketplace_src_125_g2p._.js +1 -1
- package/.next/server/chunks/ssr/_18jagqc._.js +1 -1
- package/.next/server/chunks/ssr/_1hetwwu._.js +4 -2
- package/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
- package/.next/server/chunks/ssr/apps_web_components_analytics_analytics-dashboard_tsx_1056-z3._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{35vy87bzy7bpe.js → 0k405nomf6s4e.js} +9 -7
- package/.next/static/chunks/{1j-0l9rslamm-.js → 0qyuw19snetjl.js} +1 -1
- package/.next/static/chunks/{0yczikyqgop_l.js → 13hmtkhrbm4t3.js} +1 -1
- package/.next/static/chunks/{1w2jeq6n8-qz9.js → 3g_wl1fri6jb-.js} +1 -1
- package/CHANGELOG.md +22 -0
- package/components/analytics/analytics-dashboard.tsx +7 -7
- package/components/chat/message-item.tsx +7 -3
- package/components/settings/server-section.tsx +9 -9
- package/package.json +6 -6
- /package/.next/static/{xTwOrztPHLuoZTFujcRUv → bDwMIFYSTVBKUJkJJx77o}/_buildManifest.js +0 -0
- /package/.next/static/{xTwOrztPHLuoZTFujcRUv → bDwMIFYSTVBKUJkJJx77o}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{xTwOrztPHLuoZTFujcRUv → bDwMIFYSTVBKUJkJJx77o}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},797569,(e,t,r)=>{"use strict";t.exports=e.r(918622)},243712,(e,t,r)=>{"use strict";t.exports=e.r(797569).vendored["react-rsc"].React},938516,(e,t,r)=>{"use strict";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o={},l={RequestCookies:()=>
|
|
1
|
+
module.exports=[193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},797569,(e,t,r)=>{"use strict";t.exports=e.r(918622)},243712,(e,t,r)=>{"use strict";t.exports=e.r(797569).vendored["react-rsc"].React},938516,(e,t,r)=>{"use strict";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o={},l={RequestCookies:()=>y,ResponseCookies:()=>f,parseCookie:()=>c,parseSetCookie:()=>p,stringifyCookie:()=>u};for(var d in l)a(o,d,{get:l[d],enumerable:!0});function u(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),a=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?a:`${a}; ${r.join("; ")}`}function c(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[a,n]=[r.slice(0,e),r.slice(e+1)];try{t.set(a,decodeURIComponent(null!=n?n:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...a]=c(e),{domain:n,expires:s,httponly:i,maxage:o,path:l,samesite:d,secure:u,partitioned:p,priority:y}=Object.fromEntries(a.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var f,g,v={name:t,value:decodeURIComponent(r),domain:n,...s&&{expires:new Date(s)},...i&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...d&&{sameSite:m.includes(f=(f=d).toLowerCase())?f:void 0},...u&&{secure:!0},...y&&{priority:h.includes(g=(g=y).toLowerCase())?g:void 0},...p&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of s(t))i.call(e,o)||void 0===o||a(e,o,{get:()=>t[o],enumerable:!(r=n(t,o))||r.enumerable});return e})(a({},"__esModule",{value:!0}),o);var m=["strict","lax","none"],h=["low","medium","high"],y=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of c(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===a).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,a=this._parsed;return a.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(a).map(([e,t])=>u(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>u(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,a;this._parsed=new Map,this._headers=e;const n=null!=(a=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?a:[];for(const e of Array.isArray(n)?n:function(e){if(!e)return[];var t,r,a,n,s,i=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,s=!1;l();)if(","===(r=e.charAt(o))){for(a=o,o+=1,l(),n=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(s=!0,o=n,i.push(e.substring(t,a)),t=o):o=a+1}else o+=1;(!s||o>=e.length)&&i.push(e.substring(t,e.length))}return i}(n)){const t=p(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===a)}has(e){return this._parsed.has(e)}set(...e){let[t,r,a]=1===e.length?[e[0].name,e[0].value,e[0]]:e,n=this._parsed;return n.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...a})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=u(r);t.append("set-cookie",e)}}(n,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(u).join("; ")}}},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},478500,(e,t,r)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},192441,638725,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(666680),n=e.i(478500),s=e.i(761095);let i={projectName:"my-larkup",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
|
|
2
2
|
|
|
3
3
|
You have these tools:
|
|
4
4
|
1. "searchKnowledgeBase" — semantic search over the RAG knowledge base. Returns top-K most relevant document chunks.
|
|
@@ -34,7 +34,9 @@ CRITICAL RULES FOR CHARTS AND VISUALIZATIONS:
|
|
|
34
34
|
- The UI renders generateVisualization output as an interactive Recharts chart.
|
|
35
35
|
|
|
36
36
|
CRITICAL RULES FOR IMAGES AND KNOWLEDGE BASE:
|
|
37
|
-
-
|
|
37
|
+
- Never emit Markdown image syntax () or invent an image URL. The chat renderer does not trust model-supplied image URLs.
|
|
38
|
+
- To show an indexed image, use presentMedia with the exact mediaAssetId returned by search results. The UI will render the verified local media citation for you.
|
|
39
|
+
- If no exact mediaAssetId is available, describe the image in text and say that a preview is unavailable; do not fabricate or link to an image.
|
|
38
40
|
- The image description in the search results is only a brief, high-level summary.
|
|
39
41
|
- If the user asks a detailed or structural question about an image (e.g., "what columns are in the film table in the diagram?", "how many items are listed?"), you MUST use the "analyzeImageDeeply" tool. Pass the 'imageUrl' and a detailed prompt to get the exact information you need directly from the image before answering.
|
|
40
42
|
- Do not hallucinate or guess details about images. If the high-level summary doesn't contain the answer, use analyzeImageDeeply.
|
|
@@ -54,6 +56,6 @@ RESPONSE FORMATTING (Analytics Style):
|
|
|
54
56
|
- Structure complex responses logically (e.g., Summary -> Key Metrics -> Breakdown).
|
|
55
57
|
- If your findings contain a small table of data, format it cleanly using Markdown tables.
|
|
56
58
|
- DO NOT hallucinate facts; rely strictly on the provided query results.
|
|
57
|
-
- End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,i,"DEFAULT_DEPLOYMENT_CONFIG",0,{type:"rag-only",authMode:"none",enabledToolIds:[],widgetStyle:{primaryColor:"#000000",position:"bottom-right",title:"Chat with AI",welcomeMessage:"Hi! How can I help you today?",placeholder:"Type a message...",darkMode:!1,borderRadius:"lg"},allowedOrigins:["*"]},"DEFAULT_SYSTEM_PROMPT",0,o],638725);let l=r.default.join(process.cwd(),".larkup"),d=r.default.join(l,"servers"),u=r.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function
|
|
59
|
+
- End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,i,"DEFAULT_DEPLOYMENT_CONFIG",0,{type:"rag-only",authMode:"none",enabledToolIds:[],widgetStyle:{primaryColor:"#000000",position:"bottom-right",title:"Chat with AI",welcomeMessage:"Hi! How can I help you today?",placeholder:"Type a message...",darkMode:!1,borderRadius:"lg"},allowedOrigins:["*"]},"DEFAULT_SYSTEM_PROMPT",0,o],638725);let l=r.default.join(process.cwd(),".larkup"),d=r.default.join(l,"servers"),u=r.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function y(e){return await A(),h(async()=>e(await S()??c))}function f(e){return r.default.join(d,e)}function g(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,a){if(await v(e)){await t.promises.mkdir(r.default.dirname(a),{recursive:!0});try{await t.promises.rename(e,a)}catch{await t.promises.cp(e,a,{recursive:!0}),await t.promises.rm(e,{recursive:!0,force:!0})}}}async function S(){try{let e=await t.promises.readFile(u,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function x(e){return await t.promises.mkdir(l,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function A(){let e=await S();return e||h(b)}async function b(){let e=await S();if(e)return e;if(!await v(r.default.join(l,"config.json")))return x(c);let n=(0,a.randomUUID)(),s=f(n);for(let e of(await t.promises.mkdir(s,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(r.default.join(l,e),r.default.join(s,e));await w(r.default.join(l,"lancedb"),r.default.join(s,"lancedb")),await w(r.default.join(l,"generated-server"),r.default.join(s,"generated-server"));let i="Default server";try{let e=r.default.join(s,"config.json"),a=JSON.parse(await t.promises.readFile(e,"utf8"));a.projectName&&(i=a.projectName),"lancedb"===a.vectorStore&&(a.storeConfig?.mode??"local")==="local"&&(a.storeConfig={...a.storeConfig,dbPath:g(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(a,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return x({username:null,activeServerId:n,servers:[d],mode:null})}async function O(){let e=await A(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await O();if(!e)return null;let r=f(e.id);return await t.promises.mkdir(r,{recursive:!0}),r}async function E(){let e=await I();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:r}=await N("my-larkup");return f(r.id)}async function C(e){return new Promise(t=>{let r=s.default.createServer();r.once("error",()=>t(!1)),r.once("listening",()=>{r.close(()=>t(!0))}),r.listen(e,"127.0.0.1")})}async function T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function N(e){return y(async n=>{let s=(0,a.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await T(n),createdAt:o,updatedAt:o},d=f(s);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(r.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(r.default.join(d,"config.json"),JSON.stringify(function(e,t,r={}){return{...i,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:g(e,"lancedb")},embeddingApiKey:r.embeddingApiKey??i.embeddingApiKey,customEmbeddings:r.customEmbeddings??i.customEmbeddings,chatApiKey:r.chatApiKey??i.chatApiKey,customChatModels:r.customChatModels??i.customChatModels,serperApiKey:r.serperApiKey??i.serperApiKey,firecrawlApiKey:r.firecrawlApiKey??i.firecrawlApiKey,updatedAt:new Date().toISOString()}}(s,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:s};return await x(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return y(async r=>{let a=r.servers.filter(t=>t.id!==e),n=r.activeServerId===e?a[0]?.id??null:r.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),x({...r,servers:a,activeServerId:n})})},"getActiveServer",0,O,"getDataDir",0,I,"getWorkspace",0,A,"renameServer",0,function(e,t){return y(async r=>{let a=r.servers.map(r=>r.id===e?{...r,name:t.trim()||r.name,updatedAt:new Date().toISOString()}:r);return x({...r,servers:a})})},"requireDataDir",0,E,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return y(async t=>t.servers.some(t=>t.id===e)?x({...t,activeServerId:e}):t)},"setMode",0,function(e){return y(async t=>x({...t,mode:e}))},"setUsername",0,function(e){return y(async t=>x({...t,username:e.trim()||null}))}],192441)}];
|
|
58
60
|
|
|
59
61
|
//# sourceMappingURL=%5Broot-of-the-server%5D__1zptg4z._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[612069,e=>{"use strict";var a=e.i(902157),t=e.i(750227);let o=process.env.LARKUP_HUB_URL??"https://hub.larkup.de",i=null;async function n(){let e={};for(let o of[t.default.resolve(process.cwd(),"packages","tools"),t.default.resolve(process.cwd(),"..","..","packages","tools"),t.default.resolve(process.cwd(),".larkup","tools","node_modules","@larkup"),t.default.resolve(process.cwd(),"..","..",".larkup","tools","node_modules","@larkup")])try{for(let i of(await a.promises.readdir(o,{withFileTypes:!0}))){if(!i.isDirectory())continue;let n=t.default.join(o,i.name,"tool.manifest.json");try{let t=await a.promises.readFile(n,"utf8"),o=JSON.parse(t);o.id&&(e[o.id]=o)}catch{}}}catch{}return e}async function r(e){try{let a=new AbortController,t=setTimeout(()=>a.abort(),5e3),i=await fetch(`${e??o}/v1/tools`,{signal:a.signal,headers:{Accept:"application/json"}});if(clearTimeout(t),!i.ok)return{};let n=await i.json(),r={};for(let e of n.tools??[])e.id&&(r[e.id]=e);return r}catch{return{}}}let s={"video-audio":{id:"video-audio",name:"Video & Audio",description:"Index video and audio files with transcription and frame analysis.",category:"media",version:"0.2.0",pricing:"free",emoji:"🎬",icon:"Film",packageName:"@larkup/tool-video-audio",installSize:"~15 MB",systemDeps:["ffmpeg"],author:"Larkup",capabilities:["video-indexing","audio-indexing","transcription","frame-extraction","youtube-import"],tags:["transcription","ffmpeg","video","audio","whisper"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup-rag",license:"Apache-2.0",updatedAt:"2026-07-20",configSchema:[{key:"frameInterval",label:"Frame extraction interval (seconds)",type:"text",defaultValue:"10",help:"Baseline cadence for duration-aware coverage frames; scene changes and a reserved ending pass are added separately."},{key:"audioProvider",label:"Audio Provider",type:"select",help:"Choose the provider used only for audio and video transcription.",options:[{label:"OpenAI",value:"openai"},{label:"Groq",value:"groq"},{label:"Deepgram",value:"deepgram"},{label:"ElevenLabs",value:"elevenlabs"},{label:"Local Whisper",value:"local"}]},{key:"audioLanguage",label:"Transcription language",type:"text",defaultValue:"auto",help:"Use auto to infer Arabic from the media title and use provider detection otherwise. Enter a language code such as ar, ar-EG, en, or de to override it."},{key:"audioApiKey",label:"Audio API Key",type:"password",help:"Required for the selected audio provider and kept separate from the chat model key."}]},"clip-embeddings":{id:"clip-embeddings",name:"CLIP Image Search",description:"Direct image-to-image similarity search using CLIP/SigLIP embeddings.",category:"embedding",version:"0.1.0",pricing:"free",emoji:"🔍",icon:"ScanEye",packageName:"@larkup/tool-clip-embeddings",installSize:"~200 MB",author:"Larkup",capabilities:["clip-embeddings","image-similarity"],tags:["clip","siglip","image-search","visual-similarity"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup-rag",license:"Apache-2.0",updatedAt:"2026-07-20",comingSoon:!0},"doc-editor":{id:"doc-editor",name:"Document Editor",description:"AI-powered form filling and document editing with Canvas-style live preview.",category:"utility",version:"0.2.1",pricing:"free",emoji:"📝",icon:"FileEdit",packageName:"@larkup/tool-doc-editor",installSize:"~5 MB",systemDeps:["docker"],author:"Larkup",capabilities:["document-editing","form-filling","document-preview"],tags:["pdf","docx","pptx","form","canvas","editor","fill"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup-rag",license:"Apache-2.0",updatedAt:"2026-07-20"}};async function l(e){if(i)return i;let a={...s};return Object.assign(a,await n()),e?.skipHub||Object.assign(a,await r(e?.hubUrl)),i=a,a}async function c(){return Object.values(await l()).sort((e,a)=>e.name.localeCompare(a.name))}async function d(e){return(await l())[e]}async function u(e){return(await c()).filter(a=>a.capabilities.includes(e))}e.s(["getAllTools",0,c,"getToolById",0,d,"getToolsWithCapability",0,u,"invalidateRegistryCache",0,function(){i=null}],612069)},463857,e=>{"use strict";var a=e.i(902157),t=e.i(750227),o=e.i(874533),i=e.i(812057),n=e.i(612069);let r=(0,i.promisify)(o.exec);function s(){return t.default.join(process.cwd(),".larkup","tools")}function l(){return t.default.join(s(),"installed.json")}async function c(){await a.promises.mkdir(s(),{recursive:!0})}async function d(){try{let e=await a.promises.readFile(l(),"utf8"),t=JSON.parse(e);for(let e of(t.downloadCounts||(t.downloadCounts={}),t.tools??[]))e.packagePath&&!e.packageName&&(e.packageName=e.packagePath,delete e.packagePath),e.source||(e.source="local"),e.resolvedPath||(e.resolvedPath=e.packageName);return t}catch{return{tools:[],downloadCounts:{},updatedAt:new Date().toISOString()}}}async function u(e){await c(),e.updatedAt=new Date().toISOString(),await a.promises.writeFile(l(),JSON.stringify(e,null,2),"utf8")}async function p(){let e=[...(await d()).tools];for(let a of(process.env.LARKUP_BUNDLED_TOOLS??"").split(",").map(e=>e.trim()).filter(Boolean)){if(e.some(e=>e.id===a))continue;let t=await (0,n.getToolById)(a);t&&e.push({id:a,version:t.version,installedAt:"bundled",packageName:t.packageName,resolvedPath:t.packageName,source:"local",config:I(t)})}return e}async function f(e){return(await p()).some(a=>a.id===e)}async function m(e){return(await p()).find(a=>a.id===e)}async function g(){return(await d()).downloadCounts}async function w(e){let a=await (0,n.getToolById)(e);if(!a?.systemDeps?.length)return[];let t=[];for(let e of a.systemDeps)try{await r(`which ${e}`)}catch{t.push(e)}return t}async function y(){let e=s(),o=t.default.join(e,"package.json");try{await a.promises.access(o)}catch{await c(),await a.promises.writeFile(o,JSON.stringify({name:"larkup-tools",version:"1.0.0",private:!0,description:"Isolated directory for installed Larkup marketplace tools."},null,2),"utf8")}}async function h(e,o,i,n){let l=s();switch(i){case"local":case"docker":{await y();let i=`npm install ${e}@${o} --prefix "${l}" --save --no-audit --no-fund`;n?.(`Running: npm install ${e}@${o}`);try{let{stdout:e,stderr:a}=await r(i,{cwd:l,timeout:12e4,env:{...process.env,NODE_ENV:"production"}});a&&!a.includes("npm warn")&&console.warn(`[marketplace] Install stderr: ${a}`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";throw Error(`Failed to install ${e}: ${a}`)}let s=t.default.join(l,"node_modules",e);try{await a.promises.access(s)}catch{throw Error(`Package ${e} was installed but could not be found at ${s}`)}return s}case"serverless":{n?.("Serverless environment detected — queuing for next deploy");let i=t.default.join(l,"pending-tools.json"),r={tools:[]};try{let e=await a.promises.readFile(i,"utf8");r=JSON.parse(e)}catch{}return r.tools.push({packageName:e,version:o}),await c(),await a.promises.writeFile(i,JSON.stringify(r,null,2),"utf8"),t.default.join(l,"node_modules",e)}case"sandbox":{n?.("Installing in sandbox environment"),await y();let a=`npm install ${e}@${o} --prefix "${l}" --save --no-audit --no-fund`;return await r(a,{cwd:l,timeout:12e4}),t.default.join(l,"node_modules",e)}default:throw Error(`Unsupported deployment target: ${i}`)}}async function v(e){let a=await (0,n.getToolById)(e);if(a)return a;throw Error(`Unknown tool: ${e}. Not found in local registry or Hub.`)}async function k(e){try{let{stdout:a}=await r("pnpm ls -r --depth -1 --json 2>/dev/null || true",{cwd:process.cwd(),timeout:1e4}),t=JSON.parse(a||"[]");return Array.isArray(t)&&t.some(a=>a.name===e)}catch{return!1}}async function b(a,o){let i=(e,t,i)=>{o?.({toolId:a,stage:e,percent:t,message:i})};try{let o,r,s;i("checking-deps",5,"Resolving tool manifest…");let l=await v(a);if(l.comingSoon)throw Error(`${l.name} is coming soon.`);i("checking-deps",15,"Checking system dependencies…");let p=await w(a);if(p.length>0){let e=`Missing system dependencies: ${p.join(", ")}. Please install them first.`;throw i("failed",0,e),Error(e)}let f=await k(l.packageName),m=(s=process.env.LARKUP_DEPLOYMENT_TARGET)&&["local","docker","serverless","sandbox"].includes(s)?s:process.env.VERCEL||process.env.AWS_LAMBDA_FUNCTION_NAME?"serverless":process.env.DOCKER_CONTAINER||function(){try{return e.r(902157).existsSync("/.dockerenv")}catch{return!1}}()?"docker":process.env.E2B_SANDBOX_ID||process.env.MODAL_TASK_ID?"sandbox":"local";if(f){i("downloading",30,"Resolving workspace package…");try{let e=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();o=t.default.dirname(e)}catch{o=t.default.join(process.cwd(),"node_modules",l.packageName)}r="local",i("installing",60,"Workspace package resolved.")}else i("downloading",30,`Downloading ${l.packageName}@${l.version}…`),o=await h(l.packageName,l.version,m,e=>i("downloading",50,e)),r="sandbox"===m?"sandbox":"registry",i("installing",70,"Package installed.");i("installing",80,"Registering tool…"),await c();let g=await d(),y=g.tools.findIndex(e=>e.id===a),b={id:a,version:l.version,installedAt:new Date().toISOString(),packageName:l.packageName,resolvedPath:o,source:r,config:I(l)};y>=0?g.tools[y]=b:g.tools.push(b),g.downloadCounts[a]=(g.downloadCounts[a]??0)+1,await u(g),N(a).catch(()=>{}),(0,n.invalidateRegistryCache)(),i("completed",100,"Installed successfully.")}catch(e){throw i("failed",0,e instanceof Error?e.message:"Installation failed."),e}}async function A(e){let a=await d(),t=a.tools.find(a=>a.id===e);if(a.tools=a.tools.filter(a=>a.id!==e),await u(a),t?.source==="registry"&&t.packageName)try{let e=s();await r(`npm uninstall ${t.packageName} --prefix "${e}"`,{cwd:e,timeout:3e4})}catch{}(0,n.invalidateRegistryCache)()}async function N(e){let a=process.env.LARKUP_HUB_URL??"https://hub.larkup.de";try{let t=new AbortController,o=setTimeout(()=>t.abort(),3e3);await fetch(`${a}/v1/tools/${e}/installed`,{method:"POST",signal:t.signal,headers:{"Content-Type":"application/json"}}),clearTimeout(o)}catch{}}function I(e){let a={};for(let t of e.configSchema??[])void 0!==t.defaultValue&&(a[t.key]=t.defaultValue);return a}e.s(["getDownloadCounts",0,g,"getInstalledTool",0,m,"getInstalledTools",0,p,"installTool",0,b,"isToolInstalled",0,f,"uninstallTool",0,A])}];
|
|
1
|
+
module.exports=[612069,e=>{"use strict";var a=e.i(902157),t=e.i(750227);let o=process.env.LARKUP_HUB_URL??"https://hub.larkup.de",i=null;async function n(){let e={};for(let o of[t.default.resolve(process.cwd(),"packages","tools"),t.default.resolve(process.cwd(),"..","..","packages","tools"),t.default.resolve(process.cwd(),".larkup","tools","node_modules","@larkup"),t.default.resolve(process.cwd(),"..","..",".larkup","tools","node_modules","@larkup")])try{for(let i of(await a.promises.readdir(o,{withFileTypes:!0}))){if(!i.isDirectory())continue;let n=t.default.join(o,i.name,"tool.manifest.json");try{let t=await a.promises.readFile(n,"utf8"),o=JSON.parse(t);o.id&&(e[o.id]=o)}catch{}}}catch{}return e}async function r(e){try{let a=new AbortController,t=setTimeout(()=>a.abort(),5e3),i=await fetch(`${e??o}/v1/tools`,{signal:a.signal,headers:{Accept:"application/json"}});if(clearTimeout(t),!i.ok)return{};let n=await i.json(),r={};for(let e of n.tools??[])e.id&&(r[e.id]=e);return r}catch{return{}}}let s={"video-audio":{id:"video-audio",name:"Video & Audio",description:"Index video and audio files with transcription and frame analysis.",category:"media",version:"0.2.1",pricing:"free",emoji:"🎬",icon:"Film",packageName:"@larkup/tool-video-audio",installSize:"~15 MB",systemDeps:["ffmpeg"],author:"Larkup",capabilities:["video-indexing","audio-indexing","transcription","frame-extraction","youtube-import"],tags:["transcription","ffmpeg","video","audio","whisper"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup-rag",license:"Apache-2.0",updatedAt:"2026-07-20",configSchema:[{key:"frameInterval",label:"Frame extraction interval (seconds)",type:"text",defaultValue:"10",help:"Baseline cadence for duration-aware coverage frames; scene changes and a reserved ending pass are added separately."},{key:"audioProvider",label:"Audio Provider",type:"select",help:"Choose the provider used only for audio and video transcription.",options:[{label:"OpenAI",value:"openai"},{label:"Groq",value:"groq"},{label:"Deepgram",value:"deepgram"},{label:"ElevenLabs",value:"elevenlabs"},{label:"Local Whisper",value:"local"}]},{key:"audioLanguage",label:"Transcription language",type:"text",defaultValue:"auto",help:"Use auto to infer Arabic from the media title and use provider detection otherwise. Enter a language code such as ar, ar-EG, en, or de to override it."},{key:"audioApiKey",label:"Audio API Key",type:"password",help:"Required for the selected audio provider and kept separate from the chat model key."}]},"clip-embeddings":{id:"clip-embeddings",name:"CLIP Image Search",description:"Direct image-to-image similarity search using CLIP/SigLIP embeddings.",category:"embedding",version:"0.1.0",pricing:"free",emoji:"🔍",icon:"ScanEye",packageName:"@larkup/tool-clip-embeddings",installSize:"~200 MB",author:"Larkup",capabilities:["clip-embeddings","image-similarity"],tags:["clip","siglip","image-search","visual-similarity"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup-rag",license:"Apache-2.0",updatedAt:"2026-07-20",comingSoon:!0},"doc-editor":{id:"doc-editor",name:"Document Editor",description:"AI-powered form filling and document editing with Canvas-style live preview.",category:"utility",version:"0.2.3",pricing:"free",emoji:"📝",icon:"FileEdit",packageName:"@larkup/tool-doc-editor",installSize:"~5 MB",systemDeps:["docker"],author:"Larkup",capabilities:["document-editing","form-filling","document-preview"],tags:["pdf","docx","pptx","form","canvas","editor","fill"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup-rag",license:"Apache-2.0",updatedAt:"2026-07-20"}};async function l(e){if(i)return i;let a={...s};return Object.assign(a,await n()),e?.skipHub||Object.assign(a,await r(e?.hubUrl)),i=a,a}async function c(){return Object.values(await l()).sort((e,a)=>e.name.localeCompare(a.name))}async function d(e){return(await l())[e]}async function u(e){return(await c()).filter(a=>a.capabilities.includes(e))}e.s(["getAllTools",0,c,"getToolById",0,d,"getToolsWithCapability",0,u,"invalidateRegistryCache",0,function(){i=null}],612069)},463857,e=>{"use strict";var a=e.i(902157),t=e.i(750227),o=e.i(874533),i=e.i(812057),n=e.i(612069);let r=(0,i.promisify)(o.exec);function s(){return t.default.join(process.cwd(),".larkup","tools")}function l(){return t.default.join(s(),"installed.json")}async function c(){await a.promises.mkdir(s(),{recursive:!0})}async function d(){try{let e=await a.promises.readFile(l(),"utf8"),t=JSON.parse(e);for(let e of(t.downloadCounts||(t.downloadCounts={}),t.tools??[]))e.packagePath&&!e.packageName&&(e.packageName=e.packagePath,delete e.packagePath),e.source||(e.source="local"),e.resolvedPath||(e.resolvedPath=e.packageName);return t}catch{return{tools:[],downloadCounts:{},updatedAt:new Date().toISOString()}}}async function u(e){await c(),e.updatedAt=new Date().toISOString(),await a.promises.writeFile(l(),JSON.stringify(e,null,2),"utf8")}async function p(){let e=[...(await d()).tools];for(let a of(process.env.LARKUP_BUNDLED_TOOLS??"").split(",").map(e=>e.trim()).filter(Boolean)){if(e.some(e=>e.id===a))continue;let t=await (0,n.getToolById)(a);t&&e.push({id:a,version:t.version,installedAt:"bundled",packageName:t.packageName,resolvedPath:t.packageName,source:"local",config:I(t)})}return e}async function f(e){return(await p()).some(a=>a.id===e)}async function m(e){return(await p()).find(a=>a.id===e)}async function g(){return(await d()).downloadCounts}async function w(e){let a=await (0,n.getToolById)(e);if(!a?.systemDeps?.length)return[];let t=[];for(let e of a.systemDeps)try{await r(`which ${e}`)}catch{t.push(e)}return t}async function h(){let e=s(),o=t.default.join(e,"package.json");try{await a.promises.access(o)}catch{await c(),await a.promises.writeFile(o,JSON.stringify({name:"larkup-tools",version:"1.0.0",private:!0,description:"Isolated directory for installed Larkup marketplace tools."},null,2),"utf8")}}async function y(e,o,i,n){let l=s();switch(i){case"local":case"docker":{await h();let i=async e=>{let a=`npm install ${e} --prefix "${l}" --save --no-audit --no-fund`;n?.(`Running: npm install ${e}`);let{stderr:t}=await r(a,{cwd:l,timeout:12e4,env:{...process.env,NODE_ENV:"production"}});t&&!t.includes("npm warn")&&console.warn(`[marketplace] Install stderr: ${t}`)};try{await i(`${e}@${o}`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";if(!a.includes("ETARGET")&&!a.includes("No matching version found"))throw Error(`Failed to install ${e}: ${a}`);n?.(`Catalog version ${o} is unavailable; installing the latest published version…`);try{await i(`${e}@latest`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";throw Error(`Failed to install ${e}: ${a}`)}}let s=t.default.join(l,"node_modules",e);try{await a.promises.access(s)}catch{throw Error(`Package ${e} was installed but could not be found at ${s}`)}let c=JSON.parse(await a.promises.readFile(t.default.join(s,"package.json"),"utf8"));return{resolvedPath:s,version:c.version??o}}case"serverless":{n?.("Serverless environment detected — queuing for next deploy");let i=t.default.join(l,"pending-tools.json"),r={tools:[]};try{let e=await a.promises.readFile(i,"utf8");r=JSON.parse(e)}catch{}return r.tools.push({packageName:e,version:o}),await c(),await a.promises.writeFile(i,JSON.stringify(r,null,2),"utf8"),{resolvedPath:t.default.join(l,"node_modules",e),version:o}}case"sandbox":{n?.("Installing in sandbox environment"),await h();let a=`npm install ${e}@${o} --prefix "${l}" --save --no-audit --no-fund`;return await r(a,{cwd:l,timeout:12e4}),{resolvedPath:t.default.join(l,"node_modules",e),version:o}}default:throw Error(`Unsupported deployment target: ${i}`)}}async function v(e){let a=await (0,n.getToolById)(e);if(a)return a;throw Error(`Unknown tool: ${e}. Not found in local registry or Hub.`)}async function k(e){try{let{stdout:a}=await r("pnpm ls -r --depth -1 --json 2>/dev/null || true",{cwd:process.cwd(),timeout:1e4}),t=JSON.parse(a||"[]");return Array.isArray(t)&&t.some(a=>a.name===e)}catch{return!1}}async function b(a,o){let i=(e,t,i)=>{o?.({toolId:a,stage:e,percent:t,message:i})};try{let o,r,s;i("checking-deps",5,"Resolving tool manifest…");let l=await v(a);if(l.comingSoon)throw Error(`${l.name} is coming soon.`);i("checking-deps",15,"Checking system dependencies…");let p=await w(a);if(p.length>0){let e=`Missing system dependencies: ${p.join(", ")}. Please install them first.`;throw i("failed",0,e),Error(e)}let f=await k(l.packageName),m=(s=process.env.LARKUP_DEPLOYMENT_TARGET)&&["local","docker","serverless","sandbox"].includes(s)?s:process.env.VERCEL||process.env.AWS_LAMBDA_FUNCTION_NAME?"serverless":process.env.DOCKER_CONTAINER||function(){try{return e.r(902157).existsSync("/.dockerenv")}catch{return!1}}()?"docker":process.env.E2B_SANDBOX_ID||process.env.MODAL_TASK_ID?"sandbox":"local",g=l.version;if(f){i("downloading",30,"Resolving workspace package…");try{let e=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();o=t.default.dirname(e)}catch{o=t.default.join(process.cwd(),"node_modules",l.packageName)}r="local",i("installing",60,"Workspace package resolved.")}else{i("downloading",30,`Downloading ${l.packageName}@${l.version}…`);let e=await y(l.packageName,l.version,m,e=>i("downloading",50,e));o=e.resolvedPath,g=e.version,r="sandbox"===m?"sandbox":"registry",i("installing",70,"Package installed.")}i("installing",80,"Registering tool…"),await c();let h=await d(),b=h.tools.findIndex(e=>e.id===a),A={id:a,version:g,installedAt:new Date().toISOString(),packageName:l.packageName,resolvedPath:o,source:r,config:I(l)};b>=0?h.tools[b]=A:h.tools.push(A),h.downloadCounts[a]=(h.downloadCounts[a]??0)+1,await u(h),N(a).catch(()=>{}),(0,n.invalidateRegistryCache)(),i("completed",100,"Installed successfully.")}catch(e){throw i("failed",0,e instanceof Error?e.message:"Installation failed."),e}}async function A(e){let a=await d(),t=a.tools.find(a=>a.id===e);if(a.tools=a.tools.filter(a=>a.id!==e),await u(a),t?.source==="registry"&&t.packageName)try{let e=s();await r(`npm uninstall ${t.packageName} --prefix "${e}"`,{cwd:e,timeout:3e4})}catch{}(0,n.invalidateRegistryCache)()}async function N(e){let a=process.env.LARKUP_HUB_URL??"https://hub.larkup.de";try{let t=new AbortController,o=setTimeout(()=>t.abort(),3e3);await fetch(`${a}/v1/tools/${e}/installed`,{method:"POST",signal:t.signal,headers:{"Content-Type":"application/json"}}),clearTimeout(o)}catch{}}function I(e){let a={};for(let t of e.configSchema??[])void 0!==t.defaultValue&&(a[t.key]=t.defaultValue);return a}e.s(["getDownloadCounts",0,g,"getInstalledTool",0,m,"getInstalledTools",0,p,"installTool",0,b,"isToolInstalled",0,f,"uninstallTool",0,A])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_marketplace_src_125_g2p._.js.map
|