@easbot/utils 0.3.17 → 0.3.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{chunk-PVTJQVMO.cjs → chunk-5XHOPT4Y.cjs} +1 -1
- package/dist/chunks/chunk-GVXRTRAT.cjs +2 -0
- package/dist/chunks/{chunk-QBLZGSTI.cjs → chunk-KKCFNFFR.cjs} +5 -5
- package/dist/chunks/{chunk-JI7GHGIF.mjs → chunk-N26SFBEH.mjs} +2 -2
- package/dist/chunks/{chunk-ZA3GGWB3.mjs → chunk-OEWMITBM.mjs} +1 -1
- package/dist/chunks/chunk-XGZ7XJWW.mjs +2 -0
- package/dist/chunks/filesystem-DXKLXORJ.cjs +1 -0
- package/dist/chunks/filesystem-YGESISP6.mjs +1 -0
- package/dist/chunks/registry-CEQNVNEA.cjs +1 -0
- package/dist/chunks/registry-JMOZUWPG.mjs +1 -0
- package/dist/chunks/shell-4USPDVM2.cjs +1 -0
- package/dist/chunks/shell-GC34UPJP.mjs +1 -0
- package/dist/index.cjs +22 -58
- package/dist/index.d.cts +66 -40
- package/dist/index.d.ts +66 -40
- package/dist/index.mjs +20 -56
- package/package.json +2 -2
- package/dist/chunks/chunk-AJU5GBQB.cjs +0 -2
- package/dist/chunks/chunk-QNKOAEBG.mjs +0 -2
- package/dist/chunks/filesystem-TBYCQ7D2.cjs +0 -1
- package/dist/chunks/filesystem-WCPIBXDN.mjs +0 -1
- package/dist/chunks/registry-7SGIVICB.cjs +0 -1
- package/dist/chunks/registry-ZZW4VHED.mjs +0 -1
- package/dist/chunks/shell-NYVVJ4D5.mjs +0 -1
- package/dist/chunks/shell-XYMW3MHM.cjs +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -483,6 +483,71 @@ interface LoadEnvOptions {
|
|
|
483
483
|
isDevelopment?: boolean;
|
|
484
484
|
}
|
|
485
485
|
declare function loadEnv(options?: LoadEnvOptions): void;
|
|
486
|
+
declare namespace Env {
|
|
487
|
+
type StateResult = Record<string, string | undefined>;
|
|
488
|
+
export function reset(): void;
|
|
489
|
+
export function get(key: string): Promise<string | undefined>;
|
|
490
|
+
export function all(): Promise<StateResult>;
|
|
491
|
+
export function set(key: string, value: string): Promise<void>;
|
|
492
|
+
export function remove(key: string): Promise<void>;
|
|
493
|
+
export { };
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
declare const OAUTH_DUMMY_KEY = "easbot-oauth-dummy-key";
|
|
497
|
+
declare namespace Auth {
|
|
498
|
+
const Oauth: z.ZodObject<{
|
|
499
|
+
type: z.ZodLiteral<"oauth">;
|
|
500
|
+
refresh: z.ZodString;
|
|
501
|
+
access: z.ZodString;
|
|
502
|
+
expires: z.ZodNumber;
|
|
503
|
+
accountId: z.ZodOptional<z.ZodString>;
|
|
504
|
+
enterpriseUrl: z.ZodOptional<z.ZodString>;
|
|
505
|
+
}, z.core.$strip>;
|
|
506
|
+
const Api: z.ZodObject<{
|
|
507
|
+
type: z.ZodLiteral<"api">;
|
|
508
|
+
key: z.ZodString;
|
|
509
|
+
}, z.core.$strip>;
|
|
510
|
+
const WellKnown: z.ZodObject<{
|
|
511
|
+
type: z.ZodLiteral<"wellknown">;
|
|
512
|
+
key: z.ZodString;
|
|
513
|
+
token: z.ZodString;
|
|
514
|
+
}, z.core.$strip>;
|
|
515
|
+
const Info: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
516
|
+
type: z.ZodLiteral<"oauth">;
|
|
517
|
+
refresh: z.ZodString;
|
|
518
|
+
access: z.ZodString;
|
|
519
|
+
expires: z.ZodNumber;
|
|
520
|
+
accountId: z.ZodOptional<z.ZodString>;
|
|
521
|
+
enterpriseUrl: z.ZodOptional<z.ZodString>;
|
|
522
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
523
|
+
type: z.ZodLiteral<"api">;
|
|
524
|
+
key: z.ZodString;
|
|
525
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
526
|
+
type: z.ZodLiteral<"wellknown">;
|
|
527
|
+
key: z.ZodString;
|
|
528
|
+
token: z.ZodString;
|
|
529
|
+
}, z.core.$strip>], "type">;
|
|
530
|
+
type Info = z.infer<typeof Info>;
|
|
531
|
+
function reset(): void;
|
|
532
|
+
function get(providerId: string): Promise<{
|
|
533
|
+
type: "oauth";
|
|
534
|
+
refresh: string;
|
|
535
|
+
access: string;
|
|
536
|
+
expires: number;
|
|
537
|
+
accountId?: string | undefined;
|
|
538
|
+
enterpriseUrl?: string | undefined;
|
|
539
|
+
} | {
|
|
540
|
+
type: "api";
|
|
541
|
+
key: string;
|
|
542
|
+
} | {
|
|
543
|
+
type: "wellknown";
|
|
544
|
+
key: string;
|
|
545
|
+
token: string;
|
|
546
|
+
} | undefined>;
|
|
547
|
+
function all(): Promise<Record<string, Info>>;
|
|
548
|
+
function set(key: string, info: Info): Promise<void>;
|
|
549
|
+
function remove(key: string): Promise<void>;
|
|
550
|
+
}
|
|
486
551
|
|
|
487
552
|
interface GitResult {
|
|
488
553
|
exitCode: number;
|
|
@@ -1487,43 +1552,4 @@ declare namespace Log {
|
|
|
1487
1552
|
function create(tags?: Record<string, any>): Logger;
|
|
1488
1553
|
}
|
|
1489
1554
|
|
|
1490
|
-
|
|
1491
|
-
declare function sanitizeEntityToken(value: string): string;
|
|
1492
|
-
|
|
1493
|
-
interface GraphEntityTypeDef {
|
|
1494
|
-
readonly type: string;
|
|
1495
|
-
readonly rule: string;
|
|
1496
|
-
}
|
|
1497
|
-
interface GraphRelationTypeDef {
|
|
1498
|
-
readonly type: string;
|
|
1499
|
-
readonly rule: string;
|
|
1500
|
-
}
|
|
1501
|
-
interface ExtractedEntity {
|
|
1502
|
-
name: string;
|
|
1503
|
-
type: string;
|
|
1504
|
-
properties?: Record<string, unknown>;
|
|
1505
|
-
}
|
|
1506
|
-
interface ExtractedRelation {
|
|
1507
|
-
source: string;
|
|
1508
|
-
target: string;
|
|
1509
|
-
relation: string;
|
|
1510
|
-
}
|
|
1511
|
-
interface ExtractionResult {
|
|
1512
|
-
summary: string;
|
|
1513
|
-
entities: ExtractedEntity[];
|
|
1514
|
-
relations: ExtractedRelation[];
|
|
1515
|
-
}
|
|
1516
|
-
|
|
1517
|
-
declare function extractEntitiesByRules(content: string): ExtractionResult;
|
|
1518
|
-
|
|
1519
|
-
interface BuildPromptOptions {
|
|
1520
|
-
maxContentLength?: number;
|
|
1521
|
-
maxChunks?: number;
|
|
1522
|
-
includeSummary?: boolean;
|
|
1523
|
-
}
|
|
1524
|
-
declare function buildEntityExtractionPrompt(chunks: string[], entityTypes: ReadonlyArray<GraphEntityTypeDef>, relationTypes: ReadonlyArray<GraphRelationTypeDef>, options?: BuildPromptOptions): string;
|
|
1525
|
-
|
|
1526
|
-
declare function parseEntityExtractionResult(text: string, allowedEntities: ReadonlyArray<GraphEntityTypeDef>, allowedRelations: ReadonlyArray<GraphRelationTypeDef>): ExtractionResult;
|
|
1527
|
-
declare function normalizeExtractionResult(input: unknown, allowedEntities: ReadonlyArray<GraphEntityTypeDef>, allowedRelations: ReadonlyArray<GraphRelationTypeDef>): ExtractionResult;
|
|
1528
|
-
|
|
1529
|
-
export { $, Archive, AsyncQueue, Binary, type BuildPromptOptions, Color, Context, DEFAULT_LANG, type EasServer, Encode, EventLoop, type ExtractedEntity, type ExtractedRelation, type ExtractionResult, Fetch, type FetchResponse, Filesystem, Fn, type GitResult, Glob, type GraphEntityTypeDef, type GraphRelationTypeDef, Grep, Identifier, Ignore, Keybind, type Lang, Lazy, Locale, Lock, Log, MIME_TYPES, Markdown, type MiddlewareDefinition, NamedError, type NodeSpawnObjectArgs, type NodeSpawnOptions, type NodeSpawnResult, type NodeWhichOptions, PKG, PackageRegistry, type ParseCommandResult, type ParsedVersion, PkgShell, type ProxyOptions, type RPCMethod, type RequestOptions, type RouteDefinition, type SSEHandler, SUPPORTED_LANGS, Schema, Semver, type ServerOptions, SessionTitle, Shell, Slug, type StreamHandler, type TimezoneDateParts, Token, TruncateContent, type WebSocketHandler, type WebSocketRouteDefinition, Wildcard, abortAfter, abortAfterAny, addMinutesInTimezone, buildEntityExtractionPrompt, createPkgShell, createRESTServer, createRPCServer, createServer, createStreamingServer, createWebSocketServer, defer, detectPlatform, escapeCommandArg, escapeCommandArgSafe, extractEntitiesByRules, findLast, fn, formatDuration, formatLocalISO, formatLocalISOCompact, formatLogTime, formatLogTimeMs, getDirectory, getFileExtension, getFilename, getFilenameTruncated, getProxyConfig, getProxyUrl, getTimezoneOffset, getTimezoneParts, git, iife, inferEntityType, isValidTimezone, joinCommandArgs, lazy, lazyAsync, loadEnv, loadTextFile, loadTextFileAsync, needsShellExecution, normalizeExtractionResult, normalizeTimezone, now, nowLocalISO, parseCommand, parseCommandWithOptions, parseEntityExtractionResult, parseLocalISO, parseModelId, proxied, readableStreamToText, resolveLocaleLang, retry, sanitizeEntityToken, shell, signal, startServer, truncateMiddle, updateSchema, whichSync, withTimeout, work };
|
|
1555
|
+
export { $, Archive, AsyncQueue, Auth, Binary, Color, Context, DEFAULT_LANG, type EasServer, Encode, Env, EventLoop, Fetch, type FetchResponse, Filesystem, Fn, type GitResult, Glob, Grep, Identifier, Ignore, Keybind, type Lang, Lazy, Locale, Lock, Log, MIME_TYPES, Markdown, type MiddlewareDefinition, NamedError, type NodeSpawnObjectArgs, type NodeSpawnOptions, type NodeSpawnResult, type NodeWhichOptions, OAUTH_DUMMY_KEY, PKG, PackageRegistry, type ParseCommandResult, type ParsedVersion, PkgShell, type ProxyOptions, type RPCMethod, type RequestOptions, type RouteDefinition, type SSEHandler, SUPPORTED_LANGS, Schema, Semver, type ServerOptions, SessionTitle, Shell, Slug, type StreamHandler, type TimezoneDateParts, Token, TruncateContent, type WebSocketHandler, type WebSocketRouteDefinition, Wildcard, abortAfter, abortAfterAny, addMinutesInTimezone, createPkgShell, createRESTServer, createRPCServer, createServer, createStreamingServer, createWebSocketServer, defer, detectPlatform, escapeCommandArg, escapeCommandArgSafe, findLast, fn, formatDuration, formatLocalISO, formatLocalISOCompact, formatLogTime, formatLogTimeMs, getDirectory, getFileExtension, getFilename, getFilenameTruncated, getProxyConfig, getProxyUrl, getTimezoneOffset, getTimezoneParts, git, iife, isValidTimezone, joinCommandArgs, lazy, lazyAsync, loadEnv, loadTextFile, loadTextFileAsync, needsShellExecution, normalizeTimezone, now, nowLocalISO, parseCommand, parseCommandWithOptions, parseLocalISO, parseModelId, proxied, readableStreamToText, resolveLocaleLang, retry, shell, signal, startServer, truncateMiddle, updateSchema, whichSync, withTimeout, work };
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export{a as Lock}from'./chunks/chunk-GOEMY5AZ.mjs';import {b,D,
|
|
2
|
-
Full ${
|
|
3
|
-
Use Read tool with offset/limit parameters to view specific sections.]`:`[Content truncated. Full ${
|
|
4
|
-
Use Read tool with offset/limit parameters to view specific sections.]`}async function
|
|
1
|
+
export{a as Lock}from'./chunks/chunk-GOEMY5AZ.mjs';import {a,b,D,G,c as c$1}from'./chunks/chunk-N26SFBEH.mjs';export{H as $,j as HTTPException,d as Hono,c as Lazy,D as PKG,A as PkgShell,G as Shell,g as compress,e as cors,s as createNodeWebSocket,B as createPkgShell,p as createRESTServer,n as createRPCServer,m as createServer,r as createStreamingServer,q as createWebSocketServer,y as detectPlatform,w as escapeCommandArg,x as escapeCommandArgSafe,z as joinCommandArgs,a as lazy,b as lazyAsync,f as logger,u as needsShellExecution,t as parseCommand,v as parseCommandWithOptions,E as readableStreamToText,h as secureHeaders,C as shell,o as startServer,i as timeout,k as validator,F as whichSync,l as zValidator}from'./chunks/chunk-N26SFBEH.mjs';import {d,b as b$2,a as a$1}from'./chunks/chunk-XGZ7XJWW.mjs';export{d as Filesystem,b as Glob,c as MIME_TYPES,a as Wildcard}from'./chunks/chunk-XGZ7XJWW.mjs';import {m,b as b$1}from'./chunks/chunk-OEWMITBM.mjs';export{m as Log,o as PackageRegistry,n as Semver,l as addMinutesInTimezone,a as formatLocalISO,b as formatLocalISOCompact,f as formatLogTime,g as formatLogTimeMs,h as getTimezoneOffset,i as getTimezoneParts,j as isValidTimezone,k as normalizeTimezone,c as now,d as nowLocalISO,e as parseLocalISO}from'./chunks/chunk-OEWMITBM.mjs';import {f,c,d as d$1}from'./chunks/chunk-6GV3NECV.mjs';import de,{readFile,writeFile,rename}from'fs/promises';import W,{z}from'zod';import {randomBytes}from'crypto';import {config}from'dotenv';import Se,{dirname,join}from'path';import {xdgData,xdgConfig}from'xdg-basedir';import It from'os';import {existsSync,mkdirSync,readdirSync,statSync}from'fs';import {fileURLToPath}from'url';import xe from'gray-matter';import {EnvHttpProxyAgent,ProxyAgent,getGlobalDispatcher,setGlobalDispatcher}from'undici';import {AsyncLocalStorage}from'async_hooks';f();f();function Rt(r,t){for(let n=r.length-1;n>=0;n-=1){let o=r[n];if(o!==void 0&&t(o,n,r))return o}}f();var we;(n=>{function r(o,a,c){let m=0,i=o.length-1;for(;m<=i;){let f=Math.floor((m+i)/2),x=o[f];if(x===void 0)break;let T=c(x);if(T===a)return {found:true,index:f};T<a?m=f+1:i=f-1;}return {found:false,index:m}}n.search=r;function t(o,a,c){let m=c(a),i=0,f=o.length;for(;i<f;){let x=Math.floor((i+f)/2),T=o[x];if(T===void 0)break;c(T)<m?i=x+1:f=x;}return o.splice(i,0,a),o}n.insert=t;})(we||(we={}));f();var Te;(c=>{function r(m){let i=new TextEncoder().encode(m),f=Array.from(i,x=>String.fromCharCode(x)).join("");return btoa(f).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}c.base64Encode=r;function t(m){let i=atob(m.replace(/-/g,"+").replace(/_/g,"/")),f=Uint8Array.from(i,x=>x.charCodeAt(0));return new TextDecoder().decode(f)}c.base64Decode=t;async function n(m,i="SHA-256"){let x=new TextEncoder().encode(m),T=await crypto.subtle.digest(i,x);return Array.from(new Uint8Array(T)).map(h=>h.toString(16).padStart(2,"0")).join("")}c.hash=n;function o(m){if(!m)return;let i=2166136261;for(let f=0;f<m.length;f++)i^=m.charCodeAt(f),i=Math.imul(i,16777619);return (i>>>0).toString(36)}c.checksum=o;function a(m,i=5e5){if(!m)return;if(m.length<=i)return o(m);let f=4096,T=[0,Math.floor(m.length*.25),Math.floor(m.length*.5),Math.floor(m.length*.75),m.length-f].map(v=>{let y=Math.max(0,Math.min(m.length-f,v-Math.floor(f/2)));return o(m.slice(y,y+f))??""}).join(":");return `${m.length}:${T}`}c.sampledChecksum=a;})(Te||(Te={}));f();f();var te;(v=>{let r={event:"evt",session:"ses",message:"msg",permission:"per",question:"que",user:"usr",part:"prt",pty:"pty",tool:"tool",workspace:"wrk",command:"cmd",task:"task",heartbeat:"hb",agent:"ag",subagent:"sub",hook:"hok",compaction:"cmp",context:"ctx",experience:"exp",pattern:"pat",knowledge:"knw",evolution:"evo",result:"res"};function t(y){return W.string().startsWith(r[y])}v.schema=t;let n=26,o=0,a=0;function c(y,h){return i(y,false,h)}v.ascending=c;function m(y,h){return i(y,true,h)}v.descending=m;function i(y,h,b){if(!b)return x(y,h);if(!b.startsWith(r[y]))throw new Error(`ID ${b} does not start with ${r[y]}`);return b}function f(y){let h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",b="",A=randomBytes(y);for(let k=0;k<y;k++){let D=A[k];D!==void 0&&(b+=h[D%62]);}return b}function x(y,h,b){let A=b??Date.now();A!==o&&(o=A,a=0),a++;let k=BigInt(A)*BigInt(4096)+BigInt(a);k=h?~k:k;let D=Buffer.alloc(6);for(let z=0;z<6;z++)D[z]=Number(k>>BigInt(40-8*z)&BigInt(255));return r[y]+"_"+D.toString("hex")+f(n-12)}v.create=x;function T(y){let h=y.split("_")[0];if(!h)return 0;let b=y.slice(h.length+1,h.length+13),A=BigInt("0x"+b);return Number(A/BigInt(4096))}v.timestamp=T;})(te||(te={}));var Pe;(x=>{x.DEFAULT_MAX_CHARS=4e3,x.DIRECTION="head",x.DIR=d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),x.GLOB=d.join(x.DIR,"*");let a=10080*60*1e3;function c(T,v,y){return y?`[Content truncated. Source: ${y}
|
|
2
|
+
Full ${v} saved to: ${T}
|
|
3
|
+
Use Read tool with offset/limit parameters to view specific sections.]`:`[Content truncated. Full ${v} saved to: ${T}
|
|
4
|
+
Use Read tool with offset/limit parameters to view specific sections.]`}async function m(T,v={}){let y=v.maxChars??4e3,h=v.direction??x.DIRECTION,b=v.label??"content",A=v.sourcePath,k=d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),D=v.dir??k;if(T.length<=y)return {content:T,truncated:false};let z=te.ascending("context"),G=d.join(D,z);await de.mkdir(D,{recursive:true}).catch(()=>{}),await de.writeFile(G,T,"utf-8");let q=T.length-y,U;h==="head"?U=T.slice(0,y):U=T.slice(-y);let X=c(G,b,A),e=`${q} characters truncated`;return {content:h==="head"?`${U}
|
|
5
5
|
|
|
6
6
|
...${e}...
|
|
7
7
|
|
|
@@ -9,57 +9,21 @@ ${X}`:`...${e}...
|
|
|
9
9
|
|
|
10
10
|
${X}
|
|
11
11
|
|
|
12
|
-
${
|
|
13
|
-
`):
|
|
12
|
+
${U}`,truncated:true,outputPath:G,originalLength:T.length,removedLength:q,label:b}}x.truncate=m;function i(T){return T.truncated?c(T.outputPath,T.label):""}x.formatHint=i;async function f(){let T=te.timestamp(te.create("context",false,Date.now()-a)),y=(await de.readdir(x.DIR).catch(()=>[])).filter(h=>h.startsWith("context_"));for(let h of y)te.timestamp(h)>=T||await de.unlink(d.join(x.DIR,h)).catch(()=>{});}x.cleanup=f;})(Pe||(Pe={}));f();var Re;(i=>{let r="New session - ",t="Child session - ";i.parentTitlePrefix=r,i.childTitlePrefix=t;function a(f=false){return (f?t:r)+b$1(new Date)}i.createDefault=a;function c(f){return new RegExp(`^(${r}|${t})\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[+-]\\d{2}:\\d{2}$`).test(f)}i.isDefault=c;function m(f){let x=f.match(/^(.+) \(fork #(\d+)\)$/);if(x){let T=x[1]??"",v=parseInt(x[2]??"0",10);return `${T} (fork #${v+1})`}return `${f} (fork #1)`}i.getForked=m;})(Re||(Re={}));f();var le=class le extends Error{static create(t,n){var c$1;let o=W.object({name:W.literal(t),data:n}).meta({ref:t}),a=(c$1=class extends le{constructor(i,f){super(t,f);c(this,"data",i);c(this,"name",t);this.name=t;}static isInstance(i){return i!==null&&typeof i=="object"&&"name"in i&&i.name===t}schema(){return o}toObject(){return {name:t,data:this.data}}},c(c$1,"Schema",o),c$1);return Object.defineProperty(a,"name",{value:t}),a}};c(le,"Unknown",le.create("UnknownError",W.object({message:W.string()})));var ue=le;f();var Ee;(t=>{function r(n){return new Ae(n)}t.create=r;})(Ee||(Ee={}));var Ae=class{constructor(t){c(this,"rules",[]);c(this,"ignorecase");c(this,"debug");this.ignorecase=t?.ignorecase??false,this.debug=t?.debug??false;}add(t){let n=typeof t=="string"?t.split(`
|
|
13
|
+
`):t;for(let o=0;o<n.length;o++){let a=n[o];this.parseRule(a,o+1);}return this}parseRule(t,n){let o=t,a=t;if(o.length===0||o.startsWith("#"))return;let c=o.startsWith("!");if(c&&(o=o.slice(1)),o=o.trim(),o.length===0||(o.startsWith("\\#")&&(o=o.slice(1)),o.startsWith("#")))return;let m=o.startsWith("/");m&&(o=o.slice(1));let i=o.endsWith("/");i&&(o=o.slice(0,-1)),o.length!==0&&this.rules.push({pattern:o,negative:c,isDirectory:i,anchored:m,original:a,lineNumber:n});}ignores(t,n){let o=this.normalizePath(t),a=n??t.endsWith("/"),c=this.checkIgnore(o,a);return this.debug&&console.log(`Ignore.ignores("${t}", isDirectory=${a}) => ${c}`),c}checkIgnore(t,n){let o=false;for(let a of this.rules)a.isDirectory&&!n||this.matchPath(a,t)&&(a.negative?o=false:o=true);return o}matchPath(t,n){let o=this.ignorecase?n.toLowerCase():n,c=this.ignorecase?t.pattern.toLowerCase():t.pattern;if(t.anchored)return a$1.match(o,c);if(c.includes("/"))return a$1.match(o,c);let m=o.split("/");for(let i of m)if(a$1.match(i,c))return true;return false}filter(t){return t.filter(n=>!this.ignores(n))}createFilter(){return t=>!this.ignores(t)}normalizePath(t){let n=t.replace(/\\/g,"/");if(n==="/")return "";for(;n.startsWith("./");)n=n.slice(2);return n.endsWith("/")&&n.length>1&&(n=n.slice(0,-1)),n}};f();function We(r,t){let n=o=>{let a;try{a=r.parse(o);}catch(c){throw console.trace("schema validation failure stack trace:"),c instanceof z.ZodError&&console.error("schema validation issues:",JSON.stringify(c.issues,null,2)),c}return t(a)};return n.force=o=>t(o),n.schema=r,n}var St=We,ve;(t=>t.fn=We)(ve||(ve={}));f();var Ot=m.create({service:"env"});function _t(r={}){let t=r.isDevelopment??false,n=t?".env.dev":".env",o=r.globalConfigPath??(xdgConfig?Se.join(xdgConfig,"easbot"):void 0),a=r.projectRoot??process.cwd(),c=a?Se.join(a,".easbot"):void 0,m=[{root:o,label:"global"},{root:a,label:"project"},{root:c,label:"workspace"}],i=["XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_CACHE_HOME","XDG_STATE_HOME","XDG_RUNTIME_DIR","EASBOT_CONFIG_PATH","EASBOT_DATA_PATH","EASBOT_CACHE_PATH","EASBOT_STATE_PATH","EASBOT_LOG_PATH"];for(let{root:f,label:x}of m){if(!f)continue;let T=Se.join(f,n),y=config({path:T,override:true,debug:false,encoding:"utf-8",quiet:true}).parsed;if(y&&(t&&Ot.debug("loadEnv: loaded env file",{layer:x,path:T,keyCount:Object.keys(y).length}),t)){let h=i.filter(b=>b in y);h.length>0&&console.warn(`[loadEnv] ${T} contains keys that have no effect: ${h.join(", ")}.
|
|
14
14
|
Reason: xdg-basedir caches XDG_* on import, so this .env file loads too late.
|
|
15
|
-
How to override: export them in the shell before loadEnv() runs, or set process.env directly.`);}}}f();async function $
|
|
16
|
-
`),
|
|
17
|
-
`);return e.replace(
|
|
18
|
-
${
|
|
19
|
-
---`)}X.fallbackSanitization=a;function
|
|
20
|
-
Content-Type: ${
|
|
15
|
+
How to override: export them in the shell before loadEnv() runs, or set process.env directly.`);}}}var ke;(m=>{let r=a(()=>({...process.env}));function t(){r.reset();}m.reset=t;async function n(i){return r()[i]}m.get=n;async function o(){return r()}m.all=o;async function a$1(i,f){r()[i]=f;}m.set=a$1;async function c(i){delete r()[i];}m.remove=c;})(ke||(ke={}));f();var Lt="easbot-oauth-dummy-key",Mt=m.create({service:"auth"}),_e;(b$1=>{b$1.Oauth=W.object({type:W.literal("oauth"),refresh:W.string(),access:W.string(),expires:W.number(),accountId:W.string().optional(),enterpriseUrl:W.string().optional()}).meta({ref:"OAuth"}),b$1.Api=W.object({type:W.literal("api"),key:W.string()}).meta({ref:"ApiAuth"}),b$1.WellKnown=W.object({type:W.literal("wellknown"),key:W.string(),token:W.string()}).meta({ref:"WellKnownAuth"}),b$1.Info=W.discriminatedUnion("type",[b$1.Oauth,b$1.Api,b$1.WellKnown]).meta({ref:"Auth"});function a(){let A=process.env.EASBOT_DATA_PATH??(xdgData?Se.join(xdgData,"easbot"):It.tmpdir());return Se.join(A,"auth.json")}let c=b(async()=>{let k=await D.file(a()).json().catch(()=>({})),D$1={};for(let[z,G]of Object.entries(k)){let q=b$1.Info.safeParse(G);if(q.success){D$1[z]=q.data;continue}Mt.warn("auth.json entry skipped: schema validation failed",{providerId:z,issues:q.error.issues.map(U=>({path:U.path,message:U.message}))});}return D$1}),m=Promise.resolve(),i=A=>{let k=m.then(A,A);return m=k.catch(()=>{}),k};async function f(A,k){let D$1=Se.dirname(A);existsSync(D$1)||mkdirSync(D$1,{recursive:true});let z=`${A}.${process.pid}.${Date.now()}.tmp`;await writeFile(z,JSON.stringify(k,null,2),{mode:384});try{await rename(z,A);}catch(G){try{let{unlink:q}=await import('fs/promises');await q(z);}catch{}throw await D.write(A,JSON.stringify(k,null,2)),G}}function x(){c.reset();}b$1.reset=x;async function T(A){return (await c())[A]}b$1.get=T;async function v(){return c()}b$1.all=v;async function y(A,k){await i(async()=>{let D$1=a(),z=await D.file(D$1).json().catch(()=>({})),G={};for(let[q,U]of Object.entries(z)){let X=b$1.Info.safeParse(U);X.success&&(G[q]=X.data);}G[A]=k,await f(D$1,G),c.reset();});}b$1.set=y;async function h(A){await i(async()=>{let k=a(),D$1=await D.file(k).json().catch(()=>({}));if(!(A in D$1)){c.reset();return}let z={};for(let[G,q]of Object.entries(D$1)){if(G===A)continue;let U=b$1.Info.safeParse(q);U.success&&(z[G]=U.data);}await f(k,z),c.reset();});}b$1.remove=h;})(_e||(_e={}));f();async function Ct(r,t){if(process.env.EASBOT_CLIENT==="acp")try{let c=process.platform==="win32"?"cmd":void 0,m=G.spawn(c,`git ${r.join(" ")}`,{stdin:void 0,stdout:"pipe",stderr:"pipe",cwd:t.cwd,env:t.env?{...process.env,...t.env}:process.env}),[i,f,x]=await Promise.all([m.exited,new Response(m.stdout).arrayBuffer(),new Response(m.stderr).arrayBuffer()]),T=Buffer.from(f),v=Buffer.from(x);return {exitCode:i,text:()=>T.toString(),stdout:T,stderr:v}}catch(c){let m=Buffer.from(c instanceof Error?c.message:String(c));return {exitCode:1,text:()=>"",stdout:Buffer.alloc(0),stderr:m}}let n=t.env?{...process.env,...t.env}:void 0,o=G.$`git ${r.join(" ")}`.quiet().nothrow().cwd(t.cwd);n&&(o=o.env(n));let a=await o;return {exitCode:a.exitCode,text:()=>a.text(),stdout:a.stdout,stderr:a.stderr}}f();function Je(r){return r?dirname(fileURLToPath(r)):typeof d$1<"u"?d$1:process.cwd()}function Ye(r,t,n=3){function o(a,c){if(c>n||!existsSync(a))return null;try{let m=readdirSync(a);for(let i of m){let f=join(a,i);try{let x=statSync(f);if(x.isFile()&&f.endsWith(t))return f;if(x.isDirectory()&&c<n){let T=o(f,c+1);if(T)return T}}catch{}}}catch{}return null}return o(r,0)}function Ke(r,t){let n=join(r,t);if(existsSync(n))return n;let o=t.split("/").pop()||t,a=r;for(let c=0;c<5;c++){let m=join(a,"assets","txt");if(existsSync(m)){let x=Ye(m,o,5);if(x)return x}let i=join(a,"dist","assets","txt");if(existsSync(i)){let x=Ye(i,o,5);if(x)return x}let f=join(a,"..");if(f===a)break;a=f;}return n}function Bt(r,t){return c$1.lazy(()=>{try{let n=Je(t),o=Ke(n,r);return D.file(o).textSync()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}function Gt(r,t){return c$1.lazy(async()=>{try{let n=Je(t),o=Ke(n,r);return await D.file(o).text()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}f();function Wt(r){return r()}f();function qt(r){if(!r||typeof r!="string")return {provider:"",model:""};let t=r.indexOf("/");return t===-1?{provider:"",model:r}:{provider:r.substring(0,t),model:r.substring(t+1)}}f();var $e;(X=>{X.FILE_REGEX=/(?<![\w`])#(\S+)/g,X.SHELL_REGEX=/!`([^`]+)`/g;function n(e){return Array.from(e.matchAll(X.FILE_REGEX))}X.files=n;function o(e){return Array.from(e.matchAll(X.SHELL_REGEX))}X.shell=o;function a(e){if(!e||typeof e!="string")return typeof e=="string"?e:"";let s=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!s)return e;let d=s[0],w=(s[1]??"").split(`
|
|
16
|
+
`),u=[];for(let p of w){if(p.trim().startsWith("#")||p.trim()===""){u.push(p);continue}if(p.match(/^\s+/)){u.push(p);continue}let S=p.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.*)$/);if(!S){u.push(p);continue}let E=S[1],N=S?.[2]?.trim();if(N===""||N===">"||N==="|"||N?.startsWith('"')||N?.startsWith("'")){u.push(p);continue}if(N?.includes(":")){u.push(`${E}: |-`),u.push(` ${N}`);continue}u.push(p);}let l=u.join(`
|
|
17
|
+
`);return e.replace(d,`---
|
|
18
|
+
${l}
|
|
19
|
+
---`)}X.fallbackSanitization=a;function c(e){if(typeof e!="string")return null;if(!e)return {data:{},content:""};try{let s=xe(e);return {data:s.data??{},content:s.content??""}}catch{try{let s=xe(a(e));return {data:s.data??{},content:s.content??""}}catch{return null}}}async function m(e){let s=await readFile(e,"utf-8"),d=c(s);if(!d){let P=`${e}: Failed to parse YAML frontmatter`;throw new X.FrontmatterError({path:e,message:P},{cause:new Error(P)})}return d}X.parse=m;function i(e){if(!e||typeof e!="string")return {frontmatter:{},content:typeof e=="string"?e:""};let s=c(e);return s?{frontmatter:s.data,content:s.content}:{frontmatter:{},content:e}}X.extractFrontmatter=i;function f(e,s){let d=e??"";return !s||Object.keys(s).length===0?xe.stringify(d,void 0):xe.stringify(d,s)}X.format=f,X.FrontmatterError=ue.create("ConfigFrontmatterError",z.object({path:z.string(),message:z.string()}));function T(e,s){return v(e,s)}X.replaceVariables=T;function v(e,s){return y(e,s)}X.renderTemplate=v;function y(e,s){let d=e;return d=h(d,s),d=k(d,s),d=G(d,s),d=z$1(d,s),d=d.replace(/\{\{([^}]*)\}\}/g,(P,w)=>{let u=w.trim();if(!u)return "";let l=ye(u,s);return l!==void 0?String(U(l)):""}),d}function h(e,s){let d=e.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l,p)=>{if(!w||!u||!l||!p)return P;let{a:S,b:E}=b(u,s);return S===void 0||E===void 0?P:A(w,S,E)?l:p});return d=d.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let{a:p,b:S}=b(u,s);return p===void 0||S===void 0?P:A(w,p,S)?l:""}),d}function b(e,s){let d=/"([^"]*)"|(\w+(?:\.\w+|\[\d+\])*)/g,P=[],w;for(;(w=d.exec(e))!==null;)w[1]!==void 0?P.push(w[1]):w[2]!==void 0&&P.push(w[2]);if(P.length<2)return {a:void 0,b:void 0};let u=ye(P[0],s),l=ye(P[1],s);return {a:u,b:l}}function A(e,s,d){switch(e){case "eq":return s===d;case "ne":return s!==d;case "gt":return Number(s)>Number(d);case "lt":return Number(s)<Number(d);case "gte":return Number(s)>=Number(d);case "lte":return Number(s)<=Number(d);default:return false}}function k(e,s){let d=e.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let p=s[w];return D(p)?u:l});return d=d.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(P,w,u)=>{if(!w||!u)return P;let l=s[w];return D(l)?u:""}),d}function D(e){return e==null||e===false||e===""}function z$1(e,s){let d=e.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let p=w in s?s[w]:void 0;return D(p)?l:u});return d=d.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u)=>{if(!w||!u)return P;let l=w in s?s[w]:void 0;return D(l)?"":u}),d}function G(e,s){let d=e.match(/\{\{#each\s+([\w.]+)\}\}/);if(!d?.[1])return e;let P=d[1],w=ye(P,s),u=d[0],l=d.index,p=e.slice(l+u.length),S;if(Array.isArray(w))S=w.map((O,R)=>({key:String(R),value:O}));else if(w!==null&&typeof w=="object")S=Object.entries(w).map(([O,R])=>({key:O,value:R}));else return q(e,l,u,p);let E=1,N=-1,I=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,C;for(I.lastIndex=0;(C=I.exec(p))!==null;)if(C[0].startsWith("{{#each"))E++;else if(E--,E===0){N=C.index;break}if(N===-1)return e;let H=p.slice(0,N),j=e.slice(l,l+u.length+N+"{{/each}}".length);if(S.length===0)return e.replace(j,"");let B=S.map(({key:O,value:R},M)=>{let L={...s};return typeof R=="object"&&R!==null?(Object.assign(L,R),L.this=R,L["@value"]=R,L["@index"]=M,L["@key"]=O):(L.this=R,L["@value"]=R,L["@index"]=M,L["@key"]=O),y(H,L)});return e.replace(j,B.join(""))}function q(e,s,d,P,w){let u=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,l=1,p=-1,S;for(u.lastIndex=0;(S=u.exec(P))!==null;)if(S[0].startsWith("{{#each"))l++;else if(l--,l===0){p=S.index;break}if(p===-1)return e;let N=e.slice(s,s+d.length+p+"{{/each}}".length);return e.replace(N,"")}function U(e){return e instanceof Date?b$1(e):Array.isArray(e)?e.map(U).join(", "):e!==null&&typeof e=="object"?JSON.stringify(e,null,2):String(e)}X.formatVariableValue=U;})($e||($e={}));function ye(r,t){let n=/(@\w+)|(\w+)|\[(\d+)\]/g,o=t,a;for(;(a=n.exec(r))!==null;){if(o==null)return;if(a[1]!==void 0){let c=a[1];o=t[c];}else if(a[2]!==void 0){let c=a[2];if(typeof o=="object"&&o!==null)o=o[c];else return}else if(a[3]!==void 0){let c=Number(a[3]);if(Array.isArray(o)&&c>=0&&c<o.length)o=o[c];else return}}return o}f();function Ve(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n[n.length-1]??""}function Yt(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n.slice(0,n.length-1).join("/")+"/"}function Jt(r){if(!r)return "";let t=r.split(".");return t[t.length-1]}function Kt(r,t=20){let n=Ve(r);if(n.length<=t)return n;let o=n.lastIndexOf("."),a=o<=0?"":n.slice(o),c=t-a.length-1;return c<=0?n.slice(0,t-1)+"\u2026":n.slice(0,c)+"\u2026"+a}function Vt(r,t=20){if(r.length<=t)return r;let n=t-1,o=Math.ceil(n/2),a=Math.floor(n/2);return r.slice(0,o)+"\u2026"+r.slice(-a)}f();var Zt=["load failed","network connection was lost","network request failed","failed to fetch","econnreset","econnrefused","etimedout","socket hang up"];function Qt(r){if(!r)return false;let t=String(r instanceof Error?r.message:r).toLowerCase();return Zt.some(n=>t.includes(n))}async function De(r,t={}){let{attempts:n=3,delay:o=500,factor:a=2,maxDelay:c=1e4,retryIf:m=Qt}=t,i;for(let f=0;f<n;f++)try{return await r()}catch(x){if(i=x,f===n-1||!m(x))throw x;let T=Math.min(o*a**f,c);await new Promise(v=>setTimeout(v,T));}throw i}f();var Ne;(w=>{let r=m.create({service:"fetch"}),t=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"],n=false,o=null,a,c;function m$1(){return t.some(u=>{let l=process.env[u];return typeof l=="string"&&l.trim().length>0})}w.hasProxyConfigured=m$1;function i(){let u=process.env.http_proxy||process.env.HTTP_PROXY;return process.env.https_proxy||process.env.HTTPS_PROXY||u}w.getProxyUrl=i;function f(u={}){let l=u.httpProxy||u.httpsProxy||i();if(!l){r.warn("[Fetch] No proxy configured, HTTP_PROXY/HTTPS_PROXY environment variables not set");return}let p;!u.httpProxy&&!u.httpsProxy?(!process.env.NO_PROXY&&!process.env.no_proxy?(a=void 0,c=void 0,process.env.NO_PROXY="localhost,127.0.0.1,::1",process.env.no_proxy="localhost,127.0.0.1,::1"):(a=process.env.NO_PROXY,c=process.env.no_proxy),p=new EnvHttpProxyAgent({connectTimeout:u.connectTimeout||1e4,keepAliveTimeout:u.keepAliveTimeout||3e4}),r.info(`[Fetch] Global proxy enabled via EnvHttpProxyAgent (honors NO_PROXY=${process.env.NO_PROXY})`)):(p=new ProxyAgent({uri:l,connectTimeout:u.connectTimeout||1e4,keepAliveTimeout:u.keepAliveTimeout||3e4}),r.info(`[Fetch] Global proxy enabled: ${l}`)),o=getGlobalDispatcher(),setGlobalDispatcher(p),n=true;}w.enableProxy=f;function x(){!n||!o||(setGlobalDispatcher(o),n=false,o=null,a===void 0?delete process.env.NO_PROXY:process.env.NO_PROXY=a,c===void 0?delete process.env.no_proxy:process.env.no_proxy=c,a=void 0,c=void 0,r.info("[Fetch] Global proxy disabled"));}w.disableProxy=x;function T(){return n}w.isProxyEnabled=T;async function v(u,l){let p=l?.timeout||3e4,S=l?.responseType||"json",{timeout:E,responseType:N,...I}=l||{},C=null,H=null;try{I.signal||(C=new AbortController,H=setTimeout(()=>C.abort(),p));let F=await fetch(u,{...I,signal:I.signal||C.signal});H&&clearTimeout(H);let j;switch(S){case "arrayBuffer":j=await F.arrayBuffer();break;case "blob":j=await F.blob();break;case "buffer":{let B=await F.arrayBuffer();j=Buffer.from(B);break}case "text":j=await F.text();break;default:{let B=await F.text();try{j=JSON.parse(B);}catch{j=B;}break}}return {ok:F.ok,status:F.status,statusText:F.statusText,headers:F.headers,data:j,url:F.url}}catch(F){throw H&&clearTimeout(H),F}}async function y(u,l){let p=l?.retries??0,S=l?.retryDelay??1e3,{retries:E,retryDelay:N,responseType:I,...C}=l||{};return De(()=>v(u,{...C,responseType:l?.responseType}),{attempts:p+1,delay:S,maxDelay:S*2**(p+1)})}async function h(u,l){return y(u,{method:"GET",...l})}w.get=h;async function b(u,l,p){return y(u,{method:"POST",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.post=b;async function A(u,l,p){return y(u,{method:"PUT",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.put=A;async function k(u,l,p){return y(u,{method:"DELETE",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.del=k;async function D$1(u,l,p){return y(u,{method:"PATCH",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.patch=D$1;async function z(u,l){return y(u,l)}w.request=z;function G(u={}){return m$1()?(f(u),true):false}w.autoProxy=G;let q=5*1024*1024;function U(u){return new TextEncoder().encode(u)}function X(u){return d.mimeType(u)}function e(u){return u.startsWith("file://")}async function s(u){let l=fileURLToPath(u);return await D.file(l).bytes()}async function d$1(u,l,p){let S=`----FetchFormBoundary${Date.now()}`,E=[],I=l.some(R=>R.filename||R.value instanceof Uint8Array||Buffer.isBuffer(R.value))&&!p?.timeout?3e5:p?.timeout;for(let R of l){let M=R.maxSize??q,L=R.filename,oe=`Content-Disposition: form-data; name="${R.name}"${L?`; filename="${L}"`:""}`;L&&(oe+=`\r
|
|
20
|
+
Content-Type: ${X(L)}`),oe+=`\r
|
|
21
21
|
\r
|
|
22
|
-
`,
|
|
23
|
-
--${
|
|
24
|
-
--${
|
|
25
|
-
`),
|
|
26
|
-
`));for(let
|
|
27
|
-
`)));
|
|
28
|
-
`);j=
|
|
29
|
-
`)}X.tree=s;async function c(e){let i=await r();return i?d$1(i,e):(t.debug("ripgrep not available, using pure JS fallback for search()",{cwd:e.cwd,pattern:e.pattern}),x(e))}X.search=c;async function d$1(e,i){let p=["--json","--glob=!.git/*"];if(i.follow&&p.push("--follow"),i.glob)for(let R of i.glob)p.push(`--glob=${R}`);i.limit&&p.push(`--max-count=${i.limit}`),p.push("--"),p.push(i.pattern);let f=await D.run([e,...p],{cwd:i.cwd});if(f.code!==0)return [];let u=i.hidden!==false,y=f.stdout.split(/\r?\n/).filter(Boolean),T=[];for(let R of y)try{let L=JSON.parse(R);if(L?.type!=="match")continue;let A=L.data;if(!A?.path?.text||!A?.lines?.text)continue;let $=d.toUnixPath(A.path.text);if(!u&&$.split("/").some(D=>D.startsWith(".")))continue;if(T.push({path:$,lines:A.lines.text,line_number:A.line_number,absolute_offset:A.absolute_offset??0}),i.limit&&T.length>=i.limit)break}catch{}return T}async function x(e){let i;try{i=new RegExp(e.pattern);}catch{return []}try{if(!(await le.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(D){throw D.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):D}let p=[],f=[];if(e.glob)for(let D of e.glob)D.startsWith("!")?f.push(D):p.push(D);let y=w(f).map(D=>D.startsWith("!")?D.slice(1):D),T=e.hidden!==false,R=[],L=p.length>0?w(p):["**/*"],A=new Set,$=[];for(let D of L){e.signal?.throwIfAborted();let N=await b$2.scan(D,{cwd:e.cwd,absolute:false,include:"file",dot:T,symlink:e.follow??false,maxDepth:void 0,ignore:y});for(let j of N)A.has(j)||(A.add(j),$.push(j));}for(let D of $){if(e.signal?.throwIfAborted(),e.limit&&R.length>=e.limit)break;let N=d.join(e.cwd,D),j;try{j=await le.readFile(N,"utf-8");}catch{continue}let H=j.split(/\r?\n/),U=0;for(let I=0;I<H.length;I++){let k=H[I]??"";if(i.test(k)&&(R.push({path:D,lines:k,line_number:I+1,absolute_offset:U}),e.limit&&R.length>=e.limit))break;U+=Buffer.byteLength(k,"utf-8")+1;}}return R}function b$1(e,i){return a$1.match(e,i)}X.match=b$1;let E=a(async()=>await r());async function g(){return await E()}X.filepathCached=g;function w(e){let i=[];for(let p of e){if(p.startsWith("!")){let u=p.slice(1);i.push(`!${P(u)}`);continue}let f=O(p);for(let u of f)i.push(C(u));}return i}function P(e){return !e||e.startsWith("**")||e.includes("/")?e:/[*?[\]]/.test(e)?`**/${e}`:`**/${e}/**`}function O(e){let i=z(e);if(i===-1)return [e];let p=B(e,i);if(p===-1)return [e];let f=e.slice(i+1,p),u=Y(f);if(!u||u.length<=1)return [e];let y=e.slice(0,i),T=e.slice(p+1);return u.map(R=>y+R+T)}function C(e){return !e||e.includes("/")||e.startsWith("**")?e:`**/${e}`}function z(e){for(let p=0;p<e.length;p++){let f=e[p];if(f==="\\"){p++;continue}if(f==="{"){return p;}}return -1}function B(e,i){for(let p=i+1;p<e.length;p++){let f=e[p];if(f==="\\"){p++;continue}if(f==="}")return p}return -1}function Y(e){return e?e.split(","):null}X._ready=a(async()=>{let e=await r();return t.debug("Grep initialized",{ripgrep:e?"available":"fallback (pure JS)"}),e});})(Ce||(Ce={}));f();var je;(h=>{function t(s,c){if(s===c)return true;if(typeof s!="object"||typeof c!="object"||s===null||c===null)return false;let d=Object.keys(s),x=Object.keys(c);if(d.length!==x.length)return false;for(let b of d)if(!x.includes(b)||!t(s[b],c[b]))return false;return true}function r(s){return {...s,super:s.super??false}}function o(s,c){return s?t(r(s),r(c)):false}h.match=o;function n(s,c=false){return {name:s.name,ctrl:s.ctrl,meta:s.meta,shift:s.shift,super:s.super??false,leader:c}}h.fromParsedKey=n;function a(s){if(!s)return "";let c=[];s.ctrl&&c.push("ctrl"),s.meta&&c.push("alt"),s.super&&c.push("super"),s.shift&&c.push("shift"),s.name&&(s.name==="delete"?c.push("del"):c.push(s.name));let d=c.join("+");return s.leader&&(d=d?`<leader> ${d}`:"<leader>"),d}h.keyToString=a;function l(s){return s==="none"?[]:s.split(",").map(c=>{let x=c.replace(/<leader>/g,"leader+").toLowerCase().split("+"),b={ctrl:false,meta:false,shift:false,super:false,leader:false,name:""};for(let E of x)switch(E){case "ctrl":b.ctrl=true;break;case "alt":case "meta":case "option":b.meta=true;break;case "super":b.super=true;break;case "shift":b.shift=true;break;case "leader":b.leader=true;break;case "esc":b.name="escape";break;default:b.name=E;break}return b})}h.parse=l;})(je||(je={}));f();var ne;(E=>{E.SUPPORTED_LANGS=["zh-CN","en-US"],E.DEFAULT_LANG="zh-CN";function o(g,w="EASBOT_LANG"){let P=[g,process.env[w]?.trim()];for(let O of P)if(O&&E.SUPPORTED_LANGS.includes(O))return O;return E.DEFAULT_LANG}E.resolveLocaleLang=o;function n(g){return g.replace(/\b\w/g,w=>w.toUpperCase())}E.titlecase=n;function a(g){return new Date(g).toLocaleTimeString(void 0,{timeStyle:"short"})}E.time=a;function l(g){let w=new Date(g),P=a(g),O=w.toLocaleDateString();return `${P} \xB7 ${O}`}E.datetime=l;function h(g){let w=new Date(g),P=new Date;return w.getFullYear()===P.getFullYear()&&w.getMonth()===P.getMonth()&&w.getDate()===P.getDate()?a(g):l(g)}E.todayTimeOrDateTime=h;function s(g){return g>=1e6?(g/1e6).toFixed(1)+"M":g>=1e3?(g/1e3).toFixed(1)+"K":g.toString()}E.number=s;function c(g){if(g<1e3)return `${g}ms`;if(g<6e4)return `${(g/1e3).toFixed(1)}s`;if(g<36e5){let O=Math.floor(g/6e4),C=Math.floor(g%6e4/1e3);return `${O}m ${C}s`}if(g<864e5){let O=Math.floor(g/36e5),C=Math.floor(g%36e5/6e4);return `${O}h ${C}m`}let w=Math.floor(g/36e5);return `${Math.floor(g%36e5/864e5)}d ${w}h`}E.duration=c;function d(g,w){return g.length<=w?g:g.slice(0,w-1)+"\u2026"}E.truncate=d;function x(g,w=35){if(g.length<=w)return g;let P="\u2026",O=Math.ceil((w-P.length)/2),C=Math.floor((w-P.length)/2);return g.slice(0,O)+P+g.slice(-C)}E.truncateMiddle=x;function b(g,w,P){return (g===1?w:P).replace("{}",g.toString())}E.pluralize=b;})(ne||(ne={}));var Qt=ne.resolveLocaleLang,er=ne.SUPPORTED_LANGS,tr=ne.DEFAULT_LANG;f();var rr=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"];function nr(){return rr.some(t=>process.env[t])}function or(){return process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy}function sr(){let t=process.env.HTTP_PROXY||process.env.http_proxy,r=process.env.HTTPS_PROXY||process.env.https_proxy;return {http:t,https:r,enabled:!!(t||r)}}f();var Me=class{constructor(){c(this,"queue",[]);c(this,"resolvers",[]);}push(r){let o=this.resolvers.shift();o?o(r):this.queue.push(r);}async next(){return this.queue.length>0?this.queue.shift():new Promise(r=>this.resolvers.push(r))}async*[Symbol.asyncIterator](){for(;;)yield await this.next();}};async function ir(t,r,o){let n=[...r];await Promise.all(Array.from({length:t},async()=>{for(;;){let a=n.pop();if(a===void 0)return;await o(a);}}));}f();function ar(){let t,r=new Promise(o=>t=o);return {trigger(){return t()},wait(){return r}}}f();function cr(t,r){let o;return Promise.race([t.then(n=>(clearTimeout(o),n)),new Promise((n,a)=>{o=setTimeout(()=>{a(new Error(`Operation timed out after ${r}ms`));},r);})])}f();var ze;(h=>{let o=/[\u4e00-\u9fff\u3400-\u4dbf]/g;function n(s){if(!s)return 0;let c=String(s),d=(c.match(o)||[]).length,x=c.length-d,b=Math.round(d/1.5),E=Math.round(x/4);return Math.max(0,b+E)}h.estimate=n;function a(s){if(s==null)return 0;try{let c=typeof s=="string"?s:JSON.stringify(s);return n(c)}catch{return 0}}h.estimateObject=a;function l(s){if(s.total!==void 0&&s.total>0)return s.total;let c=s.input??0,d=s.output??0,x=s.cache?.read??0,b=s.cache?.write??0;return c+d+x+b}h.total=l;})(ze||(ze={}));f();function ur(t){let r={},o=t.shape??t.required().shape;for(let[n,a]of Object.entries(o))r[n]=a.nullable().optional();return G.object(r)}f();f();function Q(t){return /(\.md|\.ts|\.json|readme|doc|spec|guideline)/i.test(t)?"document":/(deadline|date|day|week|month|year|q[1-4]|sprint)/i.test(t)?"time":/(file|model|dataset|artifact|resource|tool|sdk|ollama|sqlite|embedding|vector|fts)/i.test(t)?"object":/(event|incident|release|meeting|migration|launch)/i.test(t)?"event":/(api|service|system|engine|pipeline|server|db|database|memorysystem|contextengine)/i.test(t)?"process":/(team|group|org|company|inc|ltd|corp)/i.test(t)?"organization":/(concept|principle|policy|method|pattern|strategy)/i.test(t)?"concept":/(score|rate|ratio|latency|accuracy|recall|precision|throughput|kpi)/i.test(t)?"metric":/(task|issue|ticket|todo|action)/i.test(t)?"task":/(process|workflow|procedure|flow|lifecycle)/i.test(t)?"process":/[A-Z]/.test(t)?"object":"keyword"}function re(t){return t.trim().replace(/^[^\p{L}\p{N}]+|[^\p{L}\p{N}]+$/gu,"").replace(/\s+/g," ").slice(0,120)}f();var fr=/([A-Za-z][\w.-]{1,80})\s+(is_a|part_of|has_attribute|located_in|occurs_in|causes|influences|owned_by|member_of|uses|depends_on|related_to)\s+([A-Za-z][\w.-]{1,80})/g;function Ke(t){let r=[],o=[],n=new Set,a=new Set;for(let s of t.matchAll(fr)){let c=re(s[1]??""),d=(s[2]??"related_to").trim(),x=re(s[3]??"");if(!c||!x||c===x)continue;let b=c.toLowerCase(),E=x.toLowerCase();n.has(b)||(n.add(b),r.push({name:c,type:Q(c),properties:{source:"rule_extracted"}})),n.has(E)||(n.add(E),r.push({name:x,type:Q(x),properties:{source:"rule_extracted"}}));let g=`${b}|${E}|${d}`;a.has(g)||(a.add(g),o.push({source:c,target:x,relation:d}));}let l=t.split(/\n\s*\n/);for(let s of l){if(s.trim().length<20)continue;let c=[];for(let d of s.match(/[\p{L}\p{N}][\p{L}\p{N}_.-]{2,80}/gu)??[]){let x=re(d);if(!x)continue;let b=x.toLowerCase();n.has(b)&&(c.some(E=>E.key===b)||c.push({key:b,name:x}));}for(let d=0;d<c.length;d++)for(let x=d+1;x<c.length;x++){let b=c[d],E=c[x];if(!b||!E||b.key===E.key)continue;let g=Q(b.name),w=Q(E.name),P="related_to";g==="document"&&w==="object"?P="defines":g==="object"&&w==="document"?P="referenced_in":g==="process"&&w==="object"?P="uses":g==="object"&&w==="process"?P="used_by":g==="concept"&&(P="relates_to");let O=`${b.key}|${E.key}|${P}`;a.has(O)||(a.add(O),o.push({source:b.name,target:E.name,relation:P}));}}let h=t.match(/[\p{L}\p{N}][\p{L}\p{N}_.-]{1,80}/gu)??[];for(let s of h){let c=re(s);if(!c)continue;let d=c.toLowerCase();n.has(d)||(n.add(d),r.push({name:c,type:Q(c),properties:{source:"keyword_extracted"}}));}return {summary:"",entities:r,relations:o}}f();function Ve(t,r,o,n={}){let{maxContentLength:a=2e3,maxChunks:l=5,includeSummary:h=true}=n,s=r.map(b=>`- ${b.type}: ${b.rule}`).join(`
|
|
30
|
-
`),c=o.map(b=>`- ${b.type}: ${b.rule}`).join(`
|
|
31
|
-
`),d=t.slice(0,l).join(`
|
|
32
|
-
|
|
33
|
-
`).slice(0,a);return `You are an information extraction engine for a general-purpose memory graph.
|
|
34
|
-
|
|
35
|
-
Extract entities and directed relations from the text${h?", and generate a concise summary":""}.
|
|
36
|
-
|
|
37
|
-
Entity type taxonomy:
|
|
38
|
-
${s}
|
|
39
|
-
|
|
40
|
-
Relation type taxonomy:
|
|
41
|
-
${c}
|
|
42
|
-
|
|
43
|
-
Extraction rules:
|
|
44
|
-
- Output valid JSON only. Do not include markdown, prose, or code fences.
|
|
45
|
-
${h?`- summary: A concise summary (max 250 characters) describing the main topic and key points.
|
|
46
|
-
`:""}- Use canonical, concise entity names (deduplicated, case-insensitive).
|
|
47
|
-
- Prefer specific entity types over "keyword".
|
|
48
|
-
- Include relation only if both source and target entities are present in the entities list.
|
|
49
|
-
- Do not invent facts not grounded in the input text.
|
|
50
|
-
- Keep relation direction meaningful (source -> target).
|
|
51
|
-
- properties should contain short factual attributes only (plain JSON object).
|
|
52
|
-
|
|
53
|
-
Return this exact JSON shape:
|
|
54
|
-
{
|
|
55
|
-
${h?` "summary": "A concise summary of the text content (max 250 characters)",
|
|
56
|
-
`:""} "entities": [
|
|
57
|
-
{ "name": "string", "type": "one_of_entity_types", "properties": {} }
|
|
58
|
-
],
|
|
59
|
-
"relations": [
|
|
60
|
-
{ "source": "entity_name", "target": "entity_name", "relation": "one_of_relation_types" }
|
|
61
|
-
]
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
Input text:
|
|
65
|
-
${d}`}f();function Qe(t,r,o){try{let n=t.match(/\{[\s\S]*\}/);if(n){let a=JSON.parse(n[0]);return Be(a,r,o)}}catch{}return {summary:"",entities:[],relations:[]}}function Be(t,r,o){let n=t,a=new Set(r.map(w=>w.type)),l=new Set(o.map(w=>w.type)),h=typeof n.summary=="string"?n.summary.trim():"",s=Array.isArray(n.entities)?n.entities:[],c=Array.isArray(n.relations)?n.relations:[],d=[],x=new Set,b=new Map;for(let w of s){let P=typeof w?.name=="string"?w.name.trim():"";if(!P)continue;let O=P.toLowerCase();if(x.has(O))continue;x.add(O),b.set(O,P);let C=typeof w?.type=="string"?w.type.trim():"",z=a.has(C)?C:"keyword",B=w?.properties&&typeof w.properties=="object"&&!Array.isArray(w.properties)?w.properties:{};d.push({name:P,type:z,properties:B});}let E=[],g=new Set;for(let w of c){let P=typeof w?.source=="string"?w.source.trim():"",O=typeof w?.target=="string"?w.target.trim():"";if(!P||!O)continue;let C=b.get(P.toLowerCase()),z=b.get(O.toLowerCase());if(!C||!z||C===z)continue;let B=typeof w?.relation=="string"?w.relation.trim():"",Y=l.has(B)?B:"related_to",W=`${C.toLowerCase()}|${z.toLowerCase()}|${Y}`;g.has(W)||(g.add(W),E.push({source:C,target:z,relation:Y}));}return {summary:h,entities:d,relations:E}}export{Ie as Archive,Me as AsyncQueue,be as Binary,Ne as Color,Le as Context,tr as DEFAULT_LANG,we as Encode,Fe as EventLoop,$e as Fetch,ke as Fn,Ce as Grep,V as Identifier,Re as Ignore,je as Keybind,ne as Locale,_e as Markdown,ae as NamedError,er as SUPPORTED_LANGS,De as Schema,Ee as SessionTitle,ve as Slug,ze as Token,Te as TruncateContent,Ye as abortAfter,Yt as abortAfterAny,Ve as buildEntityExtractionPrompt,Kt as defer,Ke as extractEntitiesByRules,Et as findLast,Pt as fn,Vt as formatDuration,zt as getDirectory,Bt as getFileExtension,Xe as getFilename,Gt as getFilenameTruncated,sr as getProxyConfig,or as getProxyUrl,$t as git,Ct as iife,Q as inferEntityType,Ot as loadEnv,Lt as loadTextFile,Ft as loadTextFileAsync,Be as normalizeExtractionResult,Qe as parseEntityExtractionResult,jt as parseModelId,nr as proxied,Qt as resolveLocaleLang,Oe as retry,re as sanitizeEntityToken,ar as signal,Ht as truncateMiddle,ur as updateSchema,cr as withTimeout,ir as work};
|
|
22
|
+
`,E.push(U(oe));let Y=R.value;if(typeof Y=="string")if(e(Y)){let be=await s(Y);if(L||(L=Y.split("/").pop()||"file"),be.byteLength>M)throw new Error(`File size ${be.byteLength} exceeds limit ${M} bytes: ${L}`);E.push(be);}else E.push(U(Y));else if(Buffer.isBuffer(Y)){if(Y.byteLength>M)throw new Error(`Buffer size ${Y.byteLength} exceeds limit ${M} bytes: ${R.name}`);E.push(new Uint8Array(Y.buffer,Y.byteOffset,Y.byteLength));}else if(Y instanceof Uint8Array){if(Y.byteLength>M)throw new Error(`File size ${Y.byteLength} exceeds limit ${M} bytes: ${R.name}`);E.push(Y);}}let C=U(`\r
|
|
23
|
+
--${S}--`),H=U(`\r
|
|
24
|
+
--${S}\r
|
|
25
|
+
`),F=[];F.push(U(`--${S}\r
|
|
26
|
+
`));for(let R=0;R<E.length;R++)F.push(E[R]),R%2===1&&R<E.length-1&&(F.push(H),F.push(U(`--${S}\r
|
|
27
|
+
`)));F.push(C);let j=F.reduce((R,M)=>R+M.length,0),B=new Uint8Array(j),O=0;for(let R of F)B.set(R,O),O+=R.length;return y(u,{method:"POST",headers:{"Content-Type":`multipart/form-data; boundary=${S}`,...p?.headers},body:B,timeout:I,...p})}w.postForm=d$1;function P(u,l,p){let S=new AbortController,E=S.signal;return (async()=>{try{let I={Accept:"text/event-stream",...p?.headers||{}},C=await fetch(u,{...p,headers:I,signal:E});if(!C.ok)throw new Error(`SSE connection failed: ${C.status}`);let H=C.body?.getReader();if(!H)throw new Error("SSE stream not available");let F=new TextDecoder("utf-8"),j="";for(;!E.aborted;){let{done:B,value:O}=await H.read();if(B)break;let R=F.decode(O,{stream:!0});j+=R;let M=j.split(`
|
|
28
|
+
`);j=M.pop()??"";for(let L of M)if(L.startsWith("data: ")){let oe=L.slice(6);if(oe==="[DONE]"){l.onComplete?.();return}l.onMessage?.(oe);}}l.onComplete?.();}catch(I){I.name!=="AbortError"&&l.onError?.(I);}})(),()=>{S.abort();}}w.sse=P;})(Ne||(Ne={}));f();var Fe;(o=>{let r=["brave","calm","clever","cosmic","crisp","curious","eager","gentle","glowing","happy","hidden","jolly","kind","lucky","mighty","misty","neon","nimble","playful","proud","quick","quiet","shiny","silent","stellar","sunny","swift","tidy","witty"],t=["cabin","cactus","canyon","circuit","comet","eagle","engine","falcon","forest","garden","harbor","island","knight","lagoon","meadow","moon","mountain","nebula","orchid","otter","panda","pixel","planet","river","rocket","sailor","squid","star","tiger","wizard","wolf"];function n(){return [r[Math.floor(Math.random()*r.length)],t[Math.floor(Math.random()*t.length)]].join("-")}o.create=n;})(Fe||(Fe={}));f();var Le;(a=>(a.positiveInt=W.union([W.number(),W.string().regex(/^\d+$/,"must be a positive integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(W.number().int().positive()),a.nonNegativeInt=W.union([W.number(),W.string().regex(/^\d+$/,"must be a non-negative integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(W.number().int().nonnegative()),a.booleanLike=W.union([W.boolean(),W.string()]).transform((c,m)=>{if(typeof c=="boolean")return c;let i=c.trim().toLowerCase();return ["true","1","yes","on"].includes(i)?true:["false","0","no","off"].includes(i)?false:(m.addIssue({code:"custom",message:`invalid boolean string: ${JSON.stringify(c)}`}),W.NEVER)}).pipe(W.boolean()),a.stringArray=(c=",")=>W.union([W.array(W.string()),W.string()]).transform(m=>Array.isArray(m)?m:m.split(c).map(f=>f.trim()).filter(f=>f.length>0)).pipe(W.array(W.string()))))(Le||(Le={}));f();function Qe(r){let t=new AbortController,n=setTimeout(t.abort.bind(t),r);return {controller:t,signal:t.signal,clearTimeout:()=>globalThis.clearTimeout(n)}}function or(r,...t){let n=Qe(r);return {signal:AbortSignal.any([n.signal,...t]),clearTimeout:n.clearTimeout}}f();var Me;(t=>{async function r(n,o){if(process.platform==="win32"){let a=Se.resolve(n),c=Se.resolve(o),m=`Expand-Archive -Path '${a}' -DestinationPath '${c}' -Force`,i=await G.run("powershell",`-NoProfile -NonInteractive -Command "$global:ProgressPreference = 'SilentlyContinue'; ${m}"`);if(i.code!==0)throw new Error(`PowerShell exited with code ${i.code}: ${i.stderr}`)}else {let a=`unzip -o -q ${n} -d ${o}`,c=await G.run(void 0,a);if(c.code!==0)throw new Error(`unzip exited with code ${c.code}: ${c.stderr}`)}}t.extractZip=r;})(Me||(Me={}));f();var Ce;(o=>{function r(a){return a?/^#[0-9a-fA-F]{6}$/.test(a):false}o.isValidHex=r;function t(a){let c=parseInt(a.slice(1,3),16),m=parseInt(a.slice(3,5),16),i=parseInt(a.slice(5,7),16);return {r:c,g:m,b:i}}o.hexToRgb=t;function n(a){if(!r(a))return;let{r:c,g:m,b:i}=t(a);return `\x1B[38;2;${c};${m};${i}m\x1B[1m`}o.hexToAnsiBold=n;})(Ce||(Ce={}));f();var je;(n=>{class r extends Error{constructor(c$1){super(`No context found for ${c$1}`);c(this,"name",c$1);}}n.NotFound=r;function t(o){let a=new AsyncLocalStorage;return {use(){let c=a.getStore();if(!c)throw new r(o);return c},provide(c,m){return a.run(c,m)}}}n.create=t;})(je||(je={}));f();function ir(r){return {[Symbol.dispose](){r();},[Symbol.asyncDispose](){return Promise.resolve(r())}}}f();var ze;(t=>{async function r(){return new Promise(n=>{let o=()=>{process._getActiveHandles().length===0&&process._getActiveRequests().length===0?n():setImmediate(o);};o();})}t.wait=r;})(ze||(ze={}));f();function ar(r){if(r<=0)return "";if(r<60)return `${r}s`;if(r<3600){let n=Math.floor(r/60),o=r%60;return o>0?`${n}m ${o}s`:`${n}m`}if(r<86400){let n=Math.floor(r/3600),o=Math.floor(r%3600/60);return o>0?`${n}h ${o}m`:`${n}h`}if(r<604800){let n=Math.floor(r/86400);return n===1?"~1 day":`~${n} days`}let t=Math.floor(r/604800);return t===1?"~1 week":`~${t} weeks`}f();var Ue;(X=>{let r=m.create({service:"grep"});async function t(){return n()}X.filepath=t;let n=b(async()=>{let e=await D.which("rg");if(!e)return null;try{if(!(await de.stat(e)).isFile())return null}catch{return null}try{let s=await D.run([e,"--version"],{timeout:5e3});if(s.code!==0||!s.stdout.startsWith("ripgrep "))return r.warn("rg failed self-test, falling back to pure JS",{filepath:e,code:s.code,stderr:s.stderr.slice(0,200)}),null}catch(s){return r.warn("rg spawn failed during self-test, falling back to pure JS",{filepath:e,error:s.message.slice(0,200)}),null}return e});async function o(){return await t()!==null}X.isUsingRipgrep=o;async function*a$2(e){e.signal?.throwIfAborted();let s=await t();s?yield*c(s,e):(r.debug("ripgrep not available, using pure JS fallback for files()",{cwd:e.cwd}),yield*m$1(e));}X.files=a$2;async function*c(e,s){s.signal?.throwIfAborted();let d$1=["--files","--glob=!.git/*"];s.follow&&d$1.push("--follow");let P=s.hidden!==false;if(s.maxDepth!==void 0&&d$1.push(`--max-depth=${s.maxDepth}`),s.glob)for(let l of s.glob)d$1.push(`--glob=${l}`);try{if(!(await de.stat(s.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${s.cwd}'`),{code:"ENOTDIR",errno:-20,path:s.cwd})}catch(l){throw l.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${s.cwd}'`),{code:"ENOENT",errno:-2,path:s.cwd}):l}let w=await D.run([e,...d$1],{cwd:s.cwd});if(w.code!==0&&w.code!==1)return;let u=w.stdout.split(/\r?\n/);for(let l of u){s.signal?.throwIfAborted();let p=l.trim();if(!p)continue;let S=d.toUnixPath(p);!P&&S.split("/").some(E=>E.startsWith("."))||(yield S);}}async function*m$1(e){e.signal?.throwIfAborted();try{if(!(await de.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(E){throw E.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):E}let s=[],d=[];if(e.glob)for(let E of e.glob)E.startsWith("!")?d.push(E.slice(1)):s.push(E);let P=s.length>0?b$1(s):["**/*"],w=e.hidden!==false,u=new Set,l=b$2.DEFAULT_MAX_DEPTH,p;e.maxDepth===void 0?p=l:e.maxDepth<0?p=1:p=e.maxDepth+1;let S=Math.min(Math.max(p,1),l);for(let E of P){e.signal?.throwIfAborted();let N=await b$2.scan(E,{cwd:e.cwd,absolute:false,include:"file",dot:w,symlink:e.follow??false,maxDepth:S,ignore:d});for(let I of N)!w&&I.split("/").some(C=>C.startsWith("."))||u.add(I);}for(let E of Array.from(u).sort())e.signal?.throwIfAborted(),yield E;e.signal?.throwIfAborted();}async function i(e){r.debug("tree",{cwd:e.cwd}),e.signal?.throwIfAborted();let s=e.hidden!==false,d=e.glob??[],P=d.filter(O=>!O.startsWith("!")),w=d.filter(O=>O.startsWith("!")).map(O=>O.slice(1)),u=P.length>0?P:["**/*"],l=new Set,p=[];for(let O of u){e.signal?.throwIfAborted();let R=await b$2.scan(O,{cwd:e.cwd,absolute:false,include:"file",dot:s,symlink:false,maxDepth:b$2.DEFAULT_MAX_DEPTH});for(let M of R)l.has(M)||(l.add(M),p.push(M));}let S=p.filter(O=>{for(let R of w)if(b$2.match(R,O))return false;return true});function E(O,R){let M=O.children.get(R);if(M)return M;let L={name:R,children:new Map};return O.children.set(R,L),L}let N={children:new Map};for(let O of S){let R=O.split("/");if(R.length<2)continue;let M=N;for(let L of R.slice(0,-1))M=E(M,L);}let I=Array.from(N.children.values()).sort((O,R)=>O.name.localeCompare(R.name)),C=e.limit??Number.POSITIVE_INFINITY,H=[],F=I.map(O=>({node:O,path:O.name})),j=0,B=0;for(;F.length>0;){let O=F.shift();if(!O)break;if(j++,B<C){H.push(O.path),B++;for(let R of Array.from(O.node.children.values()).sort((M,L)=>M.name.localeCompare(L.name))){if(B>=C)break;F.push({node:R,path:`${O.path}/${R.name}`});}}}return j>B&&H.push(`[${B}/${j} shown, ${j-B} truncated]`),H.join(`
|
|
29
|
+
`)}X.tree=i;async function f(e){let s=await t();return s?x(s,e):(r.debug("ripgrep not available, using pure JS fallback for search()",{cwd:e.cwd,pattern:e.pattern}),T(e))}X.search=f;async function x(e,s){let d$1=["--json","--glob=!.git/*"];if(s.follow&&d$1.push("--follow"),s.glob)for(let p of s.glob)d$1.push(`--glob=${p}`);s.limit&&d$1.push(`--max-count=${s.limit}`),d$1.push("--"),d$1.push(s.pattern);let P=await D.run([e,...d$1],{cwd:s.cwd});if(P.code!==0)return [];let w=s.hidden!==false,u=P.stdout.split(/\r?\n/).filter(Boolean),l=[];for(let p of u)try{let S=JSON.parse(p);if(S?.type!=="match")continue;let E=S.data;if(!E?.path?.text||!E?.lines?.text)continue;let N=d.toUnixPath(E.path.text);if(!w&&N.split("/").some(I=>I.startsWith(".")))continue;if(l.push({path:N,lines:E.lines.text,line_number:E.line_number,absolute_offset:E.absolute_offset??0}),s.limit&&l.length>=s.limit)break}catch{}return l}async function T(e){let s;try{s=new RegExp(e.pattern);}catch{return []}try{if(!(await de.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(I){throw I.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):I}let d$1=[],P=[];if(e.glob)for(let I of e.glob)I.startsWith("!")?P.push(I):d$1.push(I);let u=b$1(P).map(I=>I.startsWith("!")?I.slice(1):I),l=e.hidden!==false,p=[],S=d$1.length>0?b$1(d$1):["**/*"],E=new Set,N=[];for(let I of S){e.signal?.throwIfAborted();let C=await b$2.scan(I,{cwd:e.cwd,absolute:false,include:"file",dot:l,symlink:e.follow??false,maxDepth:void 0,ignore:u});for(let H of C)E.has(H)||(E.add(H),N.push(H));}for(let I of N){if(e.signal?.throwIfAborted(),e.limit&&p.length>=e.limit)break;let C=d.join(e.cwd,I),H;try{H=await de.readFile(C,"utf-8");}catch{continue}let F=H.split(/\r?\n/),j=0;for(let B=0;B<F.length;B++){let O=F[B]??"";if(s.test(O)&&(p.push({path:I,lines:O,line_number:B+1,absolute_offset:j}),e.limit&&p.length>=e.limit))break;j+=Buffer.byteLength(O,"utf-8")+1;}}return p}function v(e,s){return a$1.match(e,s)}X.match=v;let y=a(async()=>await t());async function h(){return await y()}X.filepathCached=h;function b$1(e){let s=[];for(let d of e){if(d.startsWith("!")){let w=d.slice(1);s.push(`!${A(w)}`);continue}let P=k(d);for(let w of P)s.push(D$1(w));}return s}function A(e){return !e||e.startsWith("**")||e.includes("/")?e:/[*?[\]]/.test(e)?`**/${e}`:`**/${e}/**`}function k(e){let s=z(e);if(s===-1)return [e];let d=G(e,s);if(d===-1)return [e];let P=e.slice(s+1,d),w=q(P);if(!w||w.length<=1)return [e];let u=e.slice(0,s),l=e.slice(d+1);return w.map(p=>u+p+l)}function D$1(e){return !e||e.includes("/")||e.startsWith("**")?e:`**/${e}`}function z(e){for(let d=0;d<e.length;d++){let P=e[d];if(P==="\\"){d++;continue}if(P==="{"){return d;}}return -1}function G(e,s){for(let d=s+1;d<e.length;d++){let P=e[d];if(P==="\\"){d++;continue}if(P==="}")return d}return -1}function q(e){return e?e.split(","):null}X._ready=a(async()=>{let e=await t();return r.debug("Grep initialized",{ripgrep:e?"available":"fallback (pure JS)"}),e});})(Ue||(Ue={}));f();var He;(m=>{function r(i,f){if(i===f)return true;if(typeof i!="object"||typeof f!="object"||i===null||f===null)return false;let x=Object.keys(i),T=Object.keys(f);if(x.length!==T.length)return false;for(let v of x)if(!T.includes(v)||!r(i[v],f[v]))return false;return true}function t(i){return {...i,super:i.super??false}}function n(i,f){return i?r(t(i),t(f)):false}m.match=n;function o(i,f=false){return {name:i.name,ctrl:i.ctrl,meta:i.meta,shift:i.shift,super:i.super??false,leader:f}}m.fromParsedKey=o;function a(i){if(!i)return "";let f=[];i.ctrl&&f.push("ctrl"),i.meta&&f.push("alt"),i.super&&f.push("super"),i.shift&&f.push("shift"),i.name&&(i.name==="delete"?f.push("del"):f.push(i.name));let x=f.join("+");return i.leader&&(x=x?`<leader> ${x}`:"<leader>"),x}m.keyToString=a;function c(i){return i==="none"?[]:i.split(",").map(f=>{let T=f.replace(/<leader>/g,"leader+").toLowerCase().split("+"),v={ctrl:false,meta:false,shift:false,super:false,leader:false,name:""};for(let y of T)switch(y){case "ctrl":v.ctrl=true;break;case "alt":case "meta":case "option":v.meta=true;break;case "super":v.super=true;break;case "shift":v.shift=true;break;case "leader":v.leader=true;break;case "esc":v.name="escape";break;default:v.name=y;break}return v})}m.parse=c;})(He||(He={}));f();var ie;(y=>{y.SUPPORTED_LANGS=["zh-CN","en-US"],y.DEFAULT_LANG="zh-CN";function n(h,b="EASBOT_LANG"){let A=[h,process.env[b]?.trim()];for(let k of A)if(k&&y.SUPPORTED_LANGS.includes(k))return k;return y.DEFAULT_LANG}y.resolveLocaleLang=n;function o(h){return h.replace(/\b\w/g,b=>b.toUpperCase())}y.titlecase=o;function a(h){return new Date(h).toLocaleTimeString(void 0,{timeStyle:"short"})}y.time=a;function c(h){let b=new Date(h),A=a(h),k=b.toLocaleDateString();return `${A} \xB7 ${k}`}y.datetime=c;function m(h){let b=new Date(h),A=new Date;return b.getFullYear()===A.getFullYear()&&b.getMonth()===A.getMonth()&&b.getDate()===A.getDate()?a(h):c(h)}y.todayTimeOrDateTime=m;function i(h){return h>=1e6?(h/1e6).toFixed(1)+"M":h>=1e3?(h/1e3).toFixed(1)+"K":h.toString()}y.number=i;function f(h){if(h<1e3)return `${h}ms`;if(h<6e4)return `${(h/1e3).toFixed(1)}s`;if(h<36e5){let k=Math.floor(h/6e4),D=Math.floor(h%6e4/1e3);return `${k}m ${D}s`}if(h<864e5){let k=Math.floor(h/36e5),D=Math.floor(h%36e5/6e4);return `${k}h ${D}m`}let b=Math.floor(h/36e5);return `${Math.floor(h%36e5/864e5)}d ${b}h`}y.duration=f;function x(h,b){return h.length<=b?h:h.slice(0,b-1)+"\u2026"}y.truncate=x;function T(h,b=35){if(h.length<=b)return h;let A="\u2026",k=Math.ceil((b-A.length)/2),D=Math.floor((b-A.length)/2);return h.slice(0,k)+A+h.slice(-D)}y.truncateMiddle=T;function v(h,b,A){return (h===1?b:A).replace("{}",h.toString())}y.pluralize=v;})(ie||(ie={}));var cr=ie.resolveLocaleLang,lr=ie.SUPPORTED_LANGS,ur=ie.DEFAULT_LANG;f();var fr=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"];function dr(){return fr.some(r=>process.env[r])}function pr(){return process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy}function mr(){let r=process.env.HTTP_PROXY||process.env.http_proxy,t=process.env.HTTPS_PROXY||process.env.https_proxy;return {http:r,https:t,enabled:!!(r||t)}}f();var Be=class{constructor(){c(this,"queue",[]);c(this,"resolvers",[]);}push(t){let n=this.resolvers.shift();n?n(t):this.queue.push(t);}async next(){return this.queue.length>0?this.queue.shift():new Promise(t=>this.resolvers.push(t))}async*[Symbol.asyncIterator](){for(;;)yield await this.next();}};async function gr(r,t,n){let o=[...t];await Promise.all(Array.from({length:r},async()=>{for(;;){let a=o.pop();if(a===void 0)return;await n(a);}}));}f();function hr(){let r,t=new Promise(n=>r=n);return {trigger(){return r()},wait(){return t}}}f();function xr(r,t){let n;return Promise.race([r.then(o=>(clearTimeout(n),o)),new Promise((o,a)=>{n=setTimeout(()=>{a(new Error(`Operation timed out after ${t}ms`));},t);})])}f();var Ge;(m=>{let n=/[\u4e00-\u9fff\u3400-\u4dbf]/g;function o(i){if(!i)return 0;let f=String(i),x=(f.match(n)||[]).length,T=f.length-x,v=Math.round(x/1.5),y=Math.round(T/4);return Math.max(0,v+y)}m.estimate=o;function a(i){if(i==null)return 0;try{let f=typeof i=="string"?i:JSON.stringify(i);return o(f)}catch{return 0}}m.estimateObject=a;function c(i){if(i.total!==void 0&&i.total>0)return i.total;let f=i.input??0,x=i.output??0,T=i.cache?.read??0,v=i.cache?.write??0;return f+x+T+v}m.total=c;})(Ge||(Ge={}));f();function br(r){let t={},n=r.shape??r.required().shape;for(let[o,a]of Object.entries(n))t[o]=a.nullable().optional();return W.object(t)}export{Me as Archive,Be as AsyncQueue,_e as Auth,we as Binary,Ce as Color,je as Context,ur as DEFAULT_LANG,Te as Encode,ke as Env,ze as EventLoop,Ne as Fetch,ve as Fn,Ue as Grep,te as Identifier,Ee as Ignore,He as Keybind,ie as Locale,$e as Markdown,ue as NamedError,Lt as OAUTH_DUMMY_KEY,lr as SUPPORTED_LANGS,Le as Schema,Re as SessionTitle,Fe as Slug,Ge as Token,Pe as TruncateContent,Qe as abortAfter,or as abortAfterAny,ir as defer,Rt as findLast,St as fn,ar as formatDuration,Yt as getDirectory,Jt as getFileExtension,Ve as getFilename,Kt as getFilenameTruncated,mr as getProxyConfig,pr as getProxyUrl,Ct as git,Wt as iife,_t as loadEnv,Bt as loadTextFile,Gt as loadTextFileAsync,qt as parseModelId,dr as proxied,cr as resolveLocaleLang,De as retry,hr as signal,Vt as truncateMiddle,br as updateSchema,xr as withTimeout,gr as work};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easbot/utils",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.20",
|
|
4
4
|
"description": "Shared utilities library for EASBOT ecosystem",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"ws": "^8.20.0",
|
|
56
56
|
"xdg-basedir": "^5.1.0",
|
|
57
57
|
"zod": "^4.4.3",
|
|
58
|
-
"@easbot/types": "0.3.
|
|
58
|
+
"@easbot/types": "0.3.20"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/markdown-it": "^14.1.2",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkK7PV4FXJ_cjs=require('./chunk-K7PV4FXJ.cjs'),ft=require('fs/promises'),fs=require('fs'),path=require('path'),stream=require('stream'),promises=require('stream/promises'),bt=require('os'),glob=require('glob');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ft__default=/*#__PURE__*/_interopDefault(ft);var bt__default=/*#__PURE__*/_interopDefault(bt);chunkK7PV4FXJ_cjs.e();chunkK7PV4FXJ_cjs.e();chunkK7PV4FXJ_cjs.e();function Y(e,n){let s=new Set,i=0;for(;i<e.length;){let c=e[i];if(e[i+1]==="-"&&i+2<e.length){let l=e[i+2],g=c.charCodeAt(0),m=l.charCodeAt(0);if(g>m)return null;for(let S=g;S<=m;S++)s.add(String.fromCharCode(S));i+=3;}else s.add(c),i++;}return {kind:"class",chars:s,negate:n}}function _(e){let n=[],s="",i=0;for(;i<e.length;){let c=e[i];if(c==="\\"&&i+1<e.length){s+=e[i+1],i+=2;continue}if(c==="["){let r=e.indexOf("]",i+1);if(r!==-1){let l=e.slice(i+1,r),g=false,m=0;(l.startsWith("!")||l.startsWith("^"))&&(g=true,m=1);let S=Y(l.slice(m),g);if(S){s&&(n.push({kind:"literal",text:s}),s=""),n.push(S),i=r+1;continue}}}s+=c,i++;}return s&&n.push({kind:"literal",text:s}),n}function V(e){let n=tt(e);if(n===-1)return null;let s=et(e,n);if(s===-1)return null;let i=e.slice(n+1,s),c=nt(i);if(!c)return null;let r=e.slice(0,n),l=e.slice(s+1),g=[];for(let m of c)g.push(r+m+l);return g}function tt(e){for(let n=0;n<e.length;n++){if(e[n]==="\\"&&n+1<e.length){n++;continue}if(e[n]==="{")return n}return -1}function et(e,n){let s=1;for(let i=n+1;i<e.length;i++){if(e[i]==="\\"&&i+1<e.length){i++;continue}if(e[i]==="{")s++;else if(e[i]==="}"&&(s--,s===0))return i}return -1}function nt(e){let n=[],s="",i=0;for(let c=0;c<e.length;c++){let r=e[c];if(r==="\\"&&c+1<e.length){s+=e[c+1],c++;continue}if(r==="{")i++,s+=r;else if(r==="}"){if(i--,s+=r,i<0)return null}else r===","&&i===0?(n.push(s),s=""):s+=r;}return i!==0?null:(n.push(s),n)}function it(e){let n=V(e);return n?[{kind:"brace",alternatives:n.map(i=>F(i))}]:F(e)}function F(e,n=false){let s=[],i="",c=0,r=n?e.length-2:e.length;for(;c<r;){let l=e[c];if(l==="\\"&&c+1<r){i+=e[c+1],c+=2;continue}if(l==="*"&&e[c+1]==="*"&&(c+2>=r||e[c+2]==="/")&&(c===0||e[c-1]==="/")){i&&(s.push(..._(i)),i=""),s.push({kind:"starstar"}),c+=2,e[c]==="/"&&c++;continue}if(l==="*"){i&&(s.push(..._(i)),i=""),s.push({kind:"star"}),c++;continue}if(l==="?"){i&&(s.push(..._(i)),i=""),s.push({kind:"question"}),c++;continue}i+=l,c++;}return i&&s.push(..._(i)),s}function rt(e){let n=0;for(;n<e.length;){let s=e[n];if(s==="\\"&&n+1<e.length){n+=2;continue}if(s===" ")return e[n+1]==="*"&&n+2===e.length;n++;}return false}function C(e,n,s=0,i=0){for(;s<e.length;){let c=e[s];if(c.kind==="literal"){if(!n.startsWith(c.text,i))return false;i+=c.text.length;}else if(c.kind==="star"){let r=s+1;for(;r<e.length&&e[r].kind==="star";)r++;if(r>=e.length){for(let l=i;l<n.length;l++)if(n[l]==="/")return false;return true}for(let l=i;l<=n.length;l++){if(C(e,n,r,l))return true;if(n[l]==="/")break}return false}else if(c.kind==="starstar"){let r=s+1;for(;r<e.length&&e[r].kind==="starstar";)r++;if(r>=e.length)return true;for(let l=i;l<=n.length;l++)if(C(e,n,r,l))return true;return false}else if(c.kind==="question"){if(i>=n.length||n[i]==="/")return false;i++;}else if(c.kind==="class"){let r=n[i];if(r===void 0||c.chars.has(r)===c.negate)return false;i++;}else if(c.kind==="brace"){for(let r of c.alternatives)if(C(r,n,0,i))return true;return false}s++;}return i===n.length}function N(e){return e.sort((n,s)=>{let i=n[0].length-s[0].length;return i!==0?i:n[0].localeCompare(s[0])})}var A=new Map,st=1024;function q(e){let n=A.get(e);if(n)return n;let s=it(e);if(A.size>=st){let i=A.keys().next().value;i!==void 0&&A.delete(i);}return A.set(e,s),s}exports.a=void 0;(c=>{function e(r,l){if(!l)return r==="";try{if(n(r,l))return !0;if(rt(l)){let g=l.slice(0,-2);if(n(r,g))return !0}return !1}catch{return false}}c.match=e;function n(r,l){if(!r)return at(l);let g=q(l);return C(g,r)}function s(r,l){let g=N(Object.entries(l)),m;for(let[S,y]of g)e(r,S)&&(m=y);return m}c.all=s;function i(r,l){let g=N(Object.entries(l)),m;for(let[S,y]of g){let u=S.split(/\s+/);u.length!==0&&e(r.head,u[0])&&(u.length===1||ot(r.tail,u.slice(1)))&&(m=y);}return m}c.allStructured=i;})(exports.a||(exports.a={}));function ot(e,n){if(n.length===0)return true;if(e.length<n.length)return false;for(let s=0;s<n.length;s++)if(!exports.a.match(e[s],n[s]))return false;return true}function at(e){let n=q(e);return C(n,"")}exports.b=void 0;(y=>{y.DEFAULT_MAX_DEPTH=20;function n(u){let d;return u.maxDepth===void 0?d=20:u.maxDepth<1?d=1:u.maxDepth>20?d=20:d=u.maxDepth,{...u,follow:u.symlink??false,nodir:u.include!=="all",maxDepth:d}}async function s(u,d={}){let x=await glob.glob(u,n(d));return c(x)}y.scan=s;function i(u,d={}){let x=glob.globSync(u,n(d));return c(x)}y.scanSync=i;function c(u){let d=false;for(let x of u)if(x.indexOf("\\")!==-1){d=true;break}return d?u.map(x=>exports.d.toUnixPath(x)):u}function r(u,d){return exports.a.match(d,u)}y.match=r;async function l(u){try{let d=await ft__default.default.readFile(u,"utf-8");return g(d)}catch{return []}}y.parseGitignore=l;function g(u){let d=[],x=u.split(/\r?\n/);for(let T of x){let E=T.trim();if(!E||E.startsWith("#")||E.startsWith("!"))continue;let h=E;h.endsWith("/")&&(h=`${h}**`),!h.includes("*")&&!h.includes("?")&&!h.includes("[")&&(h=`**/${h}/**`),d.push(h);}return d}y.parseGitignoreContent=g;function m(u,d){let x=u.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/$/,"");for(let T of d)if(exports.a.match(x,T)||exports.a.match(x,`${T}/**`))return true;return false}y.isIgnored=m,y.DEFAULT_IGNORE_PATTERNS=["**/node_modules/**","**/dist/**","**/build/**","**/out/**","**/target/**","**/.cache/**","**/.vite/**","**/.turbo/**","**/.next/**","**/.nuxt/**","**/coverage/**","**/.nyc_output/**","**/logs/**","**/*.log","**/.DS_Store","**/Thumbs.db","**/tmp/**","**/temp/**","**/.git/**","**/*.min.js","**/*.min.ts","**/*.db","**/data/**"];})(exports.b||(exports.b={}));var U=process.platform==="win32",K={".html":"text/html",".htm":"text/html",".css":"text/css",".csv":"text/csv",".txt":"text/plain",".md":"text/markdown",".xml":"application/xml",".yaml":"application/yaml",".yml":"application/yaml",".toml":"application/toml",".ini":"text/plain",".cfg":"text/plain",".conf":"text/plain",".log":"text/plain",".sh":"application/x-sh",".bash":"application/x-bash",".zsh":"application/x-zsh",".fish":"application/x-fish",".ps1":"application/x-powershell",".bat":"application/x-batch",".cmd":"application/x-batch",".dockerfile":"application/x-dockerfile",".makefile":"application/x-makefile",".properties":"text/plain",".js":"application/javascript",".mjs":"application/javascript",".cjs":"application/javascript",".jsx":"text/javascript",".ts":"application/typescript",".tsx":"text/typescript",".mts":"application/typescript",".json":"application/json",".jsonc":"application/json",".json5":"application/json",".webmanifest":"application/manifest+json",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".ico":"image/x-icon",".webp":"image/webp",".avif":"image/avif",".heic":"image/heic",".heif":"image/heif",".bmp":"image/bmp",".tiff":"image/tiff",".tif":"image/tiff",".mp4":"video/mp4",".webm":"video/webm",".ogg":"video/ogg",".avi":"video/x-msvideo",".mkv":"video/x-matroska",".mov":"video/quicktime",".mp3":"audio/mpeg",".wav":"audio/wav",".flac":"audio/flac",".aac":"audio/aac",".opus":"audio/opus",".m4a":"audio/mp4",".pdf":"application/pdf",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".rtf":"application/rtf",".epub":"application/epub+zip",".zip":"application/zip",".tar":"application/x-tar",".gz":"application/gzip",".tgz":"application/gzip",".bz2":"application/x-bzip2",".xz":"application/x-xz",".7z":"application/x-7z-compressed",".rar":"application/vnd.rar",".wasm":"application/wasm",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".otf":"font/otf",".eot":"application/vnd.ms-fontobject",".db":"application/x-sqlite3",".sqlite":"application/vnd.sqlite3",".proto":"application/protobuf"},St=Object.fromEntries(Object.entries(K).map(([e,n])=>[n,e]));exports.d=void 0;(Ct=>{async function e(t,a){await ft.mkdir(t,{recursive:a?.recursive??true});}Ct.mkdir=e;async function n(t,a,o){let p=o?.recursive??true;try{(await ft.stat(t)).isDirectory()||(p=!1);}catch{}await ft.cp(t,a,{recursive:p,dereference:o?.dereference??true,force:o?.force??true});}Ct.cp=n;async function s(t){try{return await ft.stat(t),!0}catch{return false}}Ct.exists=s;function i(t){try{return fs.statSync(t).isDirectory()}catch{return false}}Ct.isDir=i;function c(t){try{return fs.statSync(t)}catch{return}}Ct.stat=c;async function r(t){return c(t)?.size??0}Ct.size=r;async function l(t){return ft.readFile(t,"utf-8")}Ct.readText=l;async function g(t){let a=await ft.readFile(t,"utf-8");try{return JSON.parse(a)}catch(o){let f=o instanceof Error?o.message:String(o);throw new Error(`Invalid JSON in ${t}: ${f}`,{cause:o})}}Ct.readJson=g;async function m(t){return ft.readFile(t)}Ct.readBytes=m;async function S(t){let a=await ft.readFile(t);return a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)}Ct.readArrayBuffer=S;async function y(t,a,o){let f=o!==void 0?{mode:o}:void 0;try{await ft.writeFile(t,a,f);}catch(p){if(yt(p)){await ft.mkdir(h(t),{recursive:true}),await ft.writeFile(t,a,f);return}throw p}}Ct.write=y;async function u(t,a,o){return y(t,JSON.stringify(a,null,2),o)}Ct.writeJson=u;async function d(t,a,o){await ft.mkdir(h(t),{recursive:true});let f=a instanceof ReadableStream?stream.Readable.fromWeb(a):a,p=o!==void 0?fs.createWriteStream(t,{mode:o}):fs.createWriteStream(t);await promises.pipeline(f,p);}Ct.writeStream=d;function x(t){let a=path.extname(t).toLowerCase();return K[a]||"application/octet-stream"}Ct.mimeType=x;function T(t){return St[t]}Ct.mimeTypeToExt=T;function E(t){return t?!!(t.startsWith("text/")||t==="application/json"||t==="application/xml"||t==="application/javascript"||t==="application/typescript"||t==="application/x-javascript"||t==="application/yaml"||t==="application/x-yaml"||t==="application/toml"||t==="application/x-sh"||t==="application/x-bash"||t==="application/x-zsh"||t==="application/x-powershell"||t==="application/x-batch"||t==="application/x-dockerfile"||t==="application/x-makefile"):false}Ct.isTextMime=E;function h(t){if(!t)return ".";let a=b(t).replace(/\/+$/,"")||"/";if(a==="/")return "/";let o=a.lastIndexOf("/");return o===-1?".":o===0?"/":a.slice(0,o)}Ct.dirname=h;function wt(t,a){if(!t)return "";let o=b(t).replace(/\/+$/,"");if(!o||o==="/")return "";let f=o.lastIndexOf("/"),p=f===-1?o:o.slice(f+1);return p?(a&&p.endsWith(a)&&(p=p.slice(0,-a.length)),p):""}Ct.basename=wt;function kt(t){if(!t)return "";let a=path.basename(b(t));if(!a||a==="."||a==="..")return "";let o=a.lastIndexOf(".");return o<=0?"":a.slice(o)}Ct.extname=kt;function b(t){return t==null?"":String(t).replace(/\\/g,"/")}Ct.toUnixPath=b;function Q(t,a){if(!t||!a)return "";let o=b(t),f=b(a),p=O(o)?o:path.resolve(o),v=O(f)?f:path.resolve(f);return b(path.relative(p,v))}Ct.relative=Q;function L(t=process.env,a=bt__default.default.homedir){let o=[t.EASBOT_TEST_HOME,t.EASBOT_HOME,t.HOME,t.USERPROFILE];for(let f of o)if(f?.trim())return b(f.trim());try{return b(a())}catch{return ""}}function P(t,a){let o=a??L();if(!t)return o;if(U&&(t=B(t)),t==="~"?t=o:t.startsWith("~/")?t=j(o,t.slice(2)):O(t)||(t=path.resolve(t)),t=b(t),U)try{t=b(fs.realpathSync.native(t));}catch{}return t}Ct.normalize=P;function Tt(t,a){let o=a??L();return t?(U&&(t=B(t)),t==="~"?t=o:t.startsWith("~/")?t=j(o,t.slice(2)):O(t)||(t=path.resolve(t)),b(t)):o}Ct.resolve=Tt;function O(t){return t?!!(t.startsWith("/")||/^[a-zA-Z]:[/\\]?$/.test(t)||/^[a-zA-Z]:[/\\]/.test(t)):false}Ct.isAbsolute=O;function j(t,...a){let o=b(t);for(let f of a){let p=b(f);O(p)?o=p:(o&&!o.endsWith("/")&&(o+="/"),o+=p);}return o}Ct.join=j;function B(t){return U?t.replace(/^\/([a-zA-Z]):(?:[\\/]|$)/,(a,o)=>`${o.toUpperCase()}:/`).replace(/^\/([a-zA-Z])(?:\/|$)/,(a,o)=>`${o.toUpperCase()}:/`).replace(/^\/cygdrive\/([a-zA-Z])(?:\/|$)/,(a,o)=>`${o.toUpperCase()}:/`).replace(/^\/mnt\/([a-zA-Z])(?:\/|$)/,(a,o)=>`${o.toUpperCase()}:/`):t}Ct.windowsPath=B;function M(t,a){if(!t||!a)return false;let o=P(t),f=P(a);if(!o||!f)return false;let p=Q(o,f);return p?p!==".."&&!p.startsWith("../"):o===f}Ct.contains=M;function Et(t,a){return !t||!a?false:M(t,a)||M(a,t)}Ct.overlaps=Et;async function Pt(t,a,o){let f=[];return await Z(a,o,P,h,async p=>{let v=j(p,t);await s(v)&&f.push(v);}),f}Ct.findUp=Pt;async function*Ot(t){let{targets:a,stop:o}=t;yield*vt(t.start,o,P,h,async function*(f){for(let p of a){let v=j(f,p);await s(v)&&(yield v);}});}Ct.up=Ot;async function At(t,a,o){let f=[];return await Z(a,o,P,h,async p=>{try{let v=await exports.b.scan(t,{cwd:p,absolute:!0,include:"file",dot:!0});f.push(...v);}catch{}}),f}Ct.globUp=At;})(exports.d||(exports.d={}));async function Z(e,n,s,i,c){let r=s(e);if(!r)return;let l=n?s(n):void 0,g=new Set;for(;r&&!g.has(r)&&(g.add(r),await c(r),!(l&&r===l));){let m=i(r);if(m===r)break;r=m;}}async function*vt(e,n,s,i,c){let r=s(e);if(!r)return;let l=n?s(n):void 0,g=new Set;for(;r&&!g.has(r)&&(g.add(r),yield*c(r),!(l&&r===l));){let m=i(r);if(m===r)break;r=m;}}function yt(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT"}
|
|
2
|
-
exports.c=K;
|