@claude-flow/plugin-gastown-bridge 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +646 -0
- package/dist/bridges.cjs +2 -0
- package/dist/bridges.cjs.map +1 -0
- package/dist/bridges.d.cts +924 -0
- package/dist/bridges.d.ts +924 -0
- package/dist/bridges.js +2 -0
- package/dist/bridges.js.map +1 -0
- package/dist/chunk-HACN5YC7.js +14 -0
- package/dist/chunk-HACN5YC7.js.map +1 -0
- package/dist/chunk-JU7XR5TR.cjs +14 -0
- package/dist/chunk-JU7XR5TR.cjs.map +1 -0
- package/dist/index.cjs +17 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4688 -0
- package/dist/index.d.ts +4688 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/wasm-loader.js +11 -0
- package/dist/wasm-loader.js.map +1 -0
- package/package.json +109 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var chunkJU7XR5TR_cjs=require('./chunk-JU7XR5TR.cjs'),events=require('events'),zod=require('zod'),crypto=require('crypto'),uuid=require('uuid');/**
|
|
2
|
+
* @claude-flow/plugin-gastown-bridge v0.1.0
|
|
3
|
+
*
|
|
4
|
+
* WASM-accelerated Gas Town orchestration for Claude Flow V3
|
|
5
|
+
* Bundle optimized: <100KB gzipped total
|
|
6
|
+
*
|
|
7
|
+
* @license MIT
|
|
8
|
+
* @copyright 2024 rUv
|
|
9
|
+
*/
|
|
10
|
+
var Fe={townRoot:"~/gt",enableBeadsSync:true,syncInterval:6e4,nativeFormulas:true,enableConvoys:true,autoCreateBeads:false,enableGUPP:false,guppCheckInterval:5e3,cliTimeout:3e4},un={CLI_NOT_FOUND:"GT_CLI_NOT_FOUND",CLI_TIMEOUT:"GT_CLI_TIMEOUT",CLI_ERROR:"GT_CLI_ERROR",BEAD_NOT_FOUND:"GT_BEAD_NOT_FOUND",CONVOY_NOT_FOUND:"GT_CONVOY_NOT_FOUND",FORMULA_NOT_FOUND:"GT_FORMULA_NOT_FOUND",FORMULA_PARSE_ERROR:"GT_FORMULA_PARSE_ERROR",WASM_NOT_INITIALIZED:"GT_WASM_NOT_INITIALIZED",SYNC_ERROR:"GT_SYNC_ERROR",DEPENDENCY_CYCLE:"GT_DEPENDENCY_CYCLE",INVALID_SLING_TARGET:"GT_INVALID_SLING_TARGET"},Zr=zod.z.enum(["open","in_progress","closed"]),Yr=zod.z.object({id:zod.z.string().min(1),title:zod.z.string().min(1),description:zod.z.string(),status:Zr,priority:zod.z.number().int().min(0),labels:zod.z.array(zod.z.string()),parentId:zod.z.string().optional(),createdAt:zod.z.coerce.date(),updatedAt:zod.z.coerce.date(),assignee:zod.z.string().optional(),rig:zod.z.string().optional(),blockedBy:zod.z.array(zod.z.string()).optional(),blocks:zod.z.array(zod.z.string()).optional()}),Xr=zod.z.object({title:zod.z.string().min(1),description:zod.z.string().optional(),priority:zod.z.number().int().min(0).optional(),labels:zod.z.array(zod.z.string()).optional(),parent:zod.z.string().optional(),rig:zod.z.string().optional(),assignee:zod.z.string().optional()}),Qr=zod.z.enum(["convoy","workflow","expansion","aspect"]),eo=zod.z.object({id:zod.z.string().min(1),title:zod.z.string().min(1),description:zod.z.string(),needs:zod.z.array(zod.z.string()).optional(),duration:zod.z.number().optional(),requires:zod.z.array(zod.z.string()).optional(),metadata:zod.z.record(zod.z.unknown()).optional()}),to=zod.z.object({id:zod.z.string().min(1),title:zod.z.string().min(1),focus:zod.z.string(),description:zod.z.string(),agent:zod.z.string().optional(),order:zod.z.number().optional()}),ro=zod.z.object({name:zod.z.string().min(1),description:zod.z.string().optional(),default:zod.z.string().optional(),required:zod.z.boolean().optional(),pattern:zod.z.string().optional(),enum:zod.z.array(zod.z.string()).optional()}),oo=zod.z.object({strategy:zod.z.enum(["merge","sequential","parallel"]),format:zod.z.string().optional(),description:zod.z.string().optional()}),so=zod.z.object({name:zod.z.string().min(1),content:zod.z.string(),outputPath:zod.z.string().optional()}),no=zod.z.object({name:zod.z.string().min(1),pointcut:zod.z.string(),advice:zod.z.string(),type:zod.z.enum(["before","after","around"])}),ao=zod.z.object({name:zod.z.string().min(1),description:zod.z.string(),type:Qr,version:zod.z.number().int().min(1),legs:zod.z.array(to).optional(),synthesis:oo.optional(),steps:zod.z.array(eo).optional(),vars:zod.z.record(ro).optional(),templates:zod.z.array(so).optional(),aspects:zod.z.array(no).optional(),metadata:zod.z.record(zod.z.unknown()).optional()}),io=zod.z.enum(["active","landed","failed","paused"]),lo=zod.z.object({total:zod.z.number().int().min(0),closed:zod.z.number().int().min(0),inProgress:zod.z.number().int().min(0),blocked:zod.z.number().int().min(0)}),co=zod.z.object({id:zod.z.string().min(1),name:zod.z.string().min(1),trackedIssues:zod.z.array(zod.z.string()),status:io,startedAt:zod.z.coerce.date(),completedAt:zod.z.coerce.date().optional(),progress:lo,formula:zod.z.string().optional(),description:zod.z.string().optional()}),rt=zod.z.object({name:zod.z.string().min(1),issues:zod.z.array(zod.z.string()).min(1),description:zod.z.string().optional(),formula:zod.z.string().optional()}),mn=zod.z.enum(["mayor","polecat","refinery","witness","deacon","dog","crew"]),uo=zod.z.enum(["polecat","crew","mayor"]),mo=zod.z.object({beadId:zod.z.string().min(1),target:uo,formula:zod.z.string().optional(),priority:zod.z.number().int().min(0).optional()}),pn=zod.z.enum(["pull","push","both"]),po=zod.z.object({townRoot:zod.z.string().default("~/gt"),enableBeadsSync:zod.z.boolean().default(true),syncInterval:zod.z.number().int().positive().default(6e4),nativeFormulas:zod.z.boolean().default(true),enableConvoys:zod.z.boolean().default(true),autoCreateBeads:zod.z.boolean().default(false),enableGUPP:zod.z.boolean().default(false),guppCheckInterval:zod.z.number().int().positive().default(5e3),cliTimeout:zod.z.number().int().positive().default(3e4)});function gn(s){return Yr.parse(s)}function yn(s){return Xr.parse(s)}function fn(s){return ao.parse(s)}function hn(s){return co.parse(s)}function bn(s){return rt.parse(s)}function vn(s){return mo.parse(s)}function xt(s){return po.parse(s)}var y={UNKNOWN:"GT_UNKNOWN",INITIALIZATION_FAILED:"GT_INITIALIZATION_FAILED",NOT_INITIALIZED:"GT_NOT_INITIALIZED",CONFIGURATION_ERROR:"GT_CONFIGURATION_ERROR",VALIDATION_FAILED:"GT_VALIDATION_FAILED",INVALID_INPUT:"GT_INVALID_INPUT",INVALID_BEAD_ID:"GT_INVALID_BEAD_ID",INVALID_FORMULA_NAME:"GT_INVALID_FORMULA_NAME",INVALID_CONVOY_ID:"GT_INVALID_CONVOY_ID",INVALID_ARGUMENTS:"GT_INVALID_ARGUMENTS",COMMAND_INJECTION_DETECTED:"GT_COMMAND_INJECTION_DETECTED",PATH_TRAVERSAL_DETECTED:"GT_PATH_TRAVERSAL_DETECTED",BEAD_NOT_FOUND:"GT_BEAD_NOT_FOUND",BEAD_CREATE_FAILED:"GT_BEAD_CREATE_FAILED",BEAD_UPDATE_FAILED:"GT_BEAD_UPDATE_FAILED",BEAD_DELETE_FAILED:"GT_BEAD_DELETE_FAILED",BEAD_PARSE_FAILED:"GT_BEAD_PARSE_FAILED",FORMULA_NOT_FOUND:"GT_FORMULA_NOT_FOUND",FORMULA_PARSE_FAILED:"GT_FORMULA_PARSE_FAILED",FORMULA_COOK_FAILED:"GT_FORMULA_COOK_FAILED",FORMULA_INVALID_TYPE:"GT_FORMULA_INVALID_TYPE",CONVOY_NOT_FOUND:"GT_CONVOY_NOT_FOUND",CONVOY_CREATE_FAILED:"GT_CONVOY_CREATE_FAILED",CLI_NOT_FOUND:"GT_CLI_NOT_FOUND",CLI_TIMEOUT:"GT_CLI_TIMEOUT",CLI_EXECUTION_FAILED:"GT_CLI_EXECUTION_FAILED",CLI_INVALID_OUTPUT:"GT_CLI_INVALID_OUTPUT",WASM_NOT_AVAILABLE:"GT_WASM_NOT_AVAILABLE",WASM_EXECUTION_FAILED:"GT_WASM_EXECUTION_FAILED",SYNC_FAILED:"GT_SYNC_FAILED",SYNC_CONFLICT:"GT_SYNC_CONFLICT",DEPENDENCY_CYCLE:"GT_DEPENDENCY_CYCLE",GRAPH_ERROR:"GT_GRAPH_ERROR"},f=class s extends Error{code;timestamp;context;cause;constructor(e,r=y.UNKNOWN,t,o){super(e),this.name="GasTownError",this.code=r,this.timestamp=new Date,this.context=t,this.cause=o,Error.captureStackTrace&&Error.captureStackTrace(this,s);}toJSON(){return {name:this.name,message:this.message,code:this.code,timestamp:this.timestamp.toISOString(),context:this.context,cause:this.cause?.message,stack:this.stack}}toString(){let e=`[${this.code}] ${this.message}`;return this.context&&(e+=` | Context: ${JSON.stringify(this.context)}`),this.cause&&(e+=` | Caused by: ${this.cause.message}`),e}},K=class s extends f{beadId;operation;constructor(e,r=y.BEAD_NOT_FOUND,t,o){super(e,r,t,o),this.name="BeadsError",t?.beadId&&typeof t.beadId=="string"&&(this.beadId=t.beadId),t?.operation&&typeof t.operation=="string"&&(this.operation=t.operation),Error.captureStackTrace&&Error.captureStackTrace(this,s);}static notFound(e){return new s(`Bead not found: ${e}`,y.BEAD_NOT_FOUND,{beadId:e,operation:"get"})}static createFailed(e,r){return new s(`Failed to create bead: ${e}`,y.BEAD_CREATE_FAILED,{operation:"create"},r)}static parseFailed(e,r){let t=e.length>200?e.slice(0,200)+"...":e;return new s("Failed to parse bead output",y.BEAD_PARSE_FAILED,{operation:"parse",outputLength:e.length,outputPreview:t},r)}},D=class s extends f{constraints;constructor(e,r=y.VALIDATION_FAILED,t=[],o){super(e,r,{constraints:t},o),this.name="ValidationError",this.constraints=t,Error.captureStackTrace&&Error.captureStackTrace(this,s);}static invalidBeadId(e){let r=e.replace(/[^\w\s-]/g,"?").slice(0,32);return new s("Invalid bead ID format",y.INVALID_BEAD_ID,[{field:"beadId",constraint:"alphanumeric with gt- prefix",actual:r,expected:"gt-{4-16 alphanumeric} or numeric"}])}static invalidFormulaName(e){let r=e.replace(/[^\w\s-]/g,"?").slice(0,32);return new s("Invalid formula name format",y.INVALID_FORMULA_NAME,[{field:"formulaName",constraint:"alphanumeric with dash/underscore, starting with letter",actual:r,expected:"[a-zA-Z][a-zA-Z0-9_-]{0,63}"}])}static invalidConvoyId(e){let r=e.replace(/[^\w\s-]/g,"?").slice(0,32);return new s("Invalid convoy ID format",y.INVALID_CONVOY_ID,[{field:"convoyId",constraint:"UUID format",actual:r,expected:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}])}static commandInjection(e,r){return new s(`Command injection detected in ${e}`,y.COMMAND_INJECTION_DETECTED,[{field:e,constraint:"no shell metacharacters",actual:"[REDACTED]",expected:"safe characters only"}])}static pathTraversal(e){return new s(`Path traversal detected in ${e}`,y.PATH_TRAVERSAL_DETECTED,[{field:e,constraint:"no parent directory references",actual:"[REDACTED]",expected:"safe path characters only"}])}static combine(e){let r=e.flatMap(t=>t.constraints);return new s(`Multiple validation errors: ${e.map(t=>t.message).join("; ")}`,y.VALIDATION_FAILED,r)}},Oe=class s extends f{command;args;exitCode;stderr;durationMs;constructor(e,r=y.CLI_EXECUTION_FAILED,t,o){let n=(t.args??[]).map(i=>i.length>50?i.slice(0,50)+"...":i),a=t.stderr&&t.stderr.length>500?t.stderr.slice(0,500)+"...":t.stderr;super(e,r,{command:t.command,args:n,exitCode:t.exitCode,durationMs:t.durationMs},o),this.name="CLIExecutionError",this.command=t.command,this.args=n,this.exitCode=t.exitCode,this.stderr=a,this.durationMs=t.durationMs,Error.captureStackTrace&&Error.captureStackTrace(this,s);}static notFound(e){return new s(`CLI command not found: ${e}`,y.CLI_NOT_FOUND,{command:e})}static timeout(e,r,t){return new s(`CLI command timed out after ${t}ms`,y.CLI_TIMEOUT,{command:e,args:r,durationMs:t})}static failed(e,r,t,o,n){return new s(`CLI command failed with exit code ${t}`,y.CLI_EXECUTION_FAILED,{command:e,args:r,exitCode:t,stderr:o,durationMs:n})}static invalidOutput(e,r){return new s(`CLI command produced invalid output: ${r}`,y.CLI_INVALID_OUTPUT,{command:e})}},j=class s extends f{formulaName;formulaType;constructor(e,r=y.FORMULA_PARSE_FAILED,t,o){super(e,r,t,o),this.name="FormulaError",t?.formulaName&&typeof t.formulaName=="string"&&(this.formulaName=t.formulaName),t?.formulaType&&typeof t.formulaType=="string"&&(this.formulaType=t.formulaType),Error.captureStackTrace&&Error.captureStackTrace(this,s);}static notFound(e){return new s(`Formula not found: ${e}`,y.FORMULA_NOT_FOUND,{formulaName:e})}static parseFailed(e,r,t){return new s(`Failed to parse formula ${e}: ${r}`,y.FORMULA_PARSE_FAILED,{formulaName:e,parseError:r},t)}static cookFailed(e,r,t){return new s(`Failed to cook formula ${e}: ${r}`,y.FORMULA_COOK_FAILED,{formulaName:e,cookError:r},t)}},I=class s extends f{convoyId;constructor(e,r=y.CONVOY_NOT_FOUND,t,o){super(e,r,t,o),this.name="ConvoyError",t?.convoyId&&typeof t.convoyId=="string"&&(this.convoyId=t.convoyId),Error.captureStackTrace&&Error.captureStackTrace(this,s);}static notFound(e){return new s(`Convoy not found: ${e}`,y.CONVOY_NOT_FOUND,{convoyId:e})}static createFailed(e,r){return new s(`Failed to create convoy: ${e}`,y.CONVOY_CREATE_FAILED,{operation:"create"},r)}};function go(s){return s instanceof f}function yo(s){return s instanceof D}function fo(s){return s instanceof Oe}function ho(s){return s instanceof K}function bo(s,e){return s instanceof f?s:s instanceof Error?new f(s.message,e??y.UNKNOWN,void 0,s):new f(String(s),e??y.UNKNOWN)}function vo(s){return s instanceof Error?s.message:String(s)}var _=class{pool=[];factory;resetFn;config;stats={created:0,available:0,inUse:0,misses:0,hits:0,peakSize:0,memorySaved:0};constructor(e,r){this.factory=e,this.resetFn=r?.reset,this.config={initialSize:r?.initialSize??0,maxSize:r?.maxSize??0,objectSizeBytes:r?.objectSizeBytes??256,preWarm:r?.preWarm??false},this.config.preWarm&&this.config.initialSize>0&&this.preWarm(this.config.initialSize);}acquire(){let e;return this.pool.length>0?(e=this.pool.pop(),this.stats.hits++,this.stats.available--):(e=this.factory(),this.stats.created++,this.stats.misses++),this.stats.inUse++,this.stats.inUse>this.stats.peakSize&&(this.stats.peakSize=this.stats.inUse),e}release(e){if(this.resetFn?this.resetFn(e):"reset"in e&&typeof e.reset=="function"&&e.reset(),this.config.maxSize>0&&this.pool.length>=this.config.maxSize){this.stats.inUse--;return}this.pool.push(e),this.stats.available++,this.stats.inUse--,this.stats.memorySaved+=this.config.objectSizeBytes;}releaseAll(e){for(let r of e)this.release(r);}preWarm(e){let r=Math.min(e,this.config.maxSize>0?this.config.maxSize-this.pool.length:e);for(let t=0;t<r;t++){let o=this.factory();this.stats.created++,this.pool.push(o),this.stats.available++;}}clear(){this.pool.length=0,this.stats.available=0;}getStats(){return {...this.stats}}get size(){return this.pool.length}get hitRate(){let e=this.stats.hits+this.stats.misses;return e>0?this.stats.hits/e*100:0}},se=class{id="";title="";description="";status="open";priority=0;labels=[];createdAt=new Date;updatedAt=new Date;parentId;assignee;rig;blockedBy;blocks;reset(){this.id="",this.title="",this.description="",this.status="open",this.priority=0,this.labels.length=0,this.createdAt=new Date,this.updatedAt=new Date,this.parentId=void 0,this.assignee=void 0,this.rig=void 0,this.blockedBy=void 0,this.blocks=void 0;}initFrom(e){return this.id=e.id??"",this.title=e.title??"",this.description=e.description??"",this.status=e.status??"open",this.priority=e.priority??0,this.labels=e.labels?[...e.labels]:[],this.createdAt=e.createdAt??new Date,this.updatedAt=e.updatedAt??new Date,this.parentId=e.parentId,this.assignee=e.assignee,this.rig=e.rig,this.blockedBy=e.blockedBy?[...e.blockedBy]:void 0,this.blocks=e.blocks?[...e.blocks]:void 0,this}},ne=class{id="";title="";description="";needs;duration;requires;metadata;reset(){this.id="",this.title="",this.description="",this.needs=void 0,this.duration=void 0,this.requires=void 0,this.metadata=void 0;}initFrom(e){return this.id=e.id??"",this.title=e.title??"",this.description=e.description??"",this.needs=e.needs?[...e.needs]:void 0,this.duration=e.duration,this.requires=e.requires?[...e.requires]:void 0,this.metadata=e.metadata?{...e.metadata}:void 0,this}},ae=class{name="";description="";type="workflow";version=1;steps;legs;vars;metadata;reset(){this.name="",this.description="",this.type="workflow",this.version=1,this.steps=void 0,this.legs=void 0,this.vars=void 0,this.metadata=void 0;}initFrom(e){return this.name=e.name??"",this.description=e.description??"",this.type=e.type??"workflow",this.version=e.version??1,this.steps=e.steps?[...e.steps]:void 0,this.legs=e.legs?[...e.legs]:void 0,this.vars=e.vars?{...e.vars}:void 0,this.metadata=e.metadata?{...e.metadata}:void 0,this}},ie=class{id="";name="";trackedIssues=[];status="active";startedAt=new Date;completedAt;progress={total:0,closed:0,inProgress:0,blocked:0};formula;description;reset(){this.id="",this.name="",this.trackedIssues.length=0,this.status="active",this.startedAt=new Date,this.completedAt=void 0,this.progress={total:0,closed:0,inProgress:0,blocked:0},this.formula=void 0,this.description=void 0;}initFrom(e){return this.id=e.id??"",this.name=e.name??"",this.trackedIssues=e.trackedIssues?[...e.trackedIssues]:[],this.status=e.status??"active",this.startedAt=e.startedAt??new Date,this.completedAt=e.completedAt,this.progress=e.progress?{...e.progress}:{total:0,closed:0,inProgress:0,blocked:0},this.formula=e.formula,this.description=e.description,this}},le=class{id="";formulaName="";title="";description="";type="workflow";sourceId="";agent;dependencies=[];order=0;metadata={};createdAt=new Date;reset(){this.id="",this.formulaName="",this.title="",this.description="",this.type="workflow",this.sourceId="",this.agent=void 0,this.dependencies.length=0,this.order=0;for(let e of Object.keys(this.metadata))delete this.metadata[e];this.createdAt=new Date;}initFrom(e){return this.id=e.id??"",this.formulaName=e.formulaName??"",this.title=e.title??"",this.description=e.description??"",this.type=e.type??"workflow",this.sourceId=e.sourceId??"",this.agent=e.agent,this.dependencies=e.dependencies?[...e.dependencies]:[],this.order=e.order??0,this.metadata=e.metadata?{...e.metadata}:{},this.createdAt=e.createdAt??new Date,this}},N=new _(()=>new se,{initialSize:100,maxSize:1e4,objectSizeBytes:512,preWarm:false}),X=new _(()=>new ae,{initialSize:10,maxSize:500,objectSizeBytes:1024,preWarm:false}),Q=new _(()=>new ne,{initialSize:50,maxSize:5e3,objectSizeBytes:256,preWarm:false}),ee=new _(()=>new ie,{initialSize:10,maxSize:200,objectSizeBytes:768,preWarm:false}),R=new _(()=>new le,{initialSize:50,maxSize:5e3,objectSizeBytes:384,preWarm:false}),Pt={bead:N,formula:X,step:Q,convoy:ee,molecule:R};function ce(){return {bead:N.getStats(),formula:X.getStats(),step:Q.getStats(),convoy:ee.getStats(),molecule:R.getStats()}}function It(){return Object.values(Pt).reduce((s,e)=>s+e.getStats().memorySaved,0)}function de(){for(let s of Object.values(Pt))s.clear();}function Le(){N.preWarm(100),X.preWarm(10),Q.preWarm(50),ee.preWarm(10),R.preWarm(50);}function fe(){let s=ce(),e=Object.values(s),r=e.reduce((i,l)=>i+l.hits,0),t=e.reduce((i,l)=>i+l.misses,0),o=e.reduce((i,l)=>i+l.memorySaved,0),n=e.reduce((i,l)=>i+l.inUse,0),a=e.reduce((i,l)=>i+l.available,0);return {totalHitRate:r+t>0?r/(r+t)*100:0,totalMemorySavedKB:o/1024,totalObjectsInUse:n,totalObjectsAvailable:a}}var te=class{name;config;allocations=[];stats={totalAllocations:0,currentAllocations:0,resetCount:0,peakAllocations:0,memoryUsed:0,memorySaved:0};beadPool;stepPool;formulaPool;convoyPool;moleculePool;constructor(e,r){this.name=e??r?.name??"arena",this.config={name:this.name,initialCapacity:r?.initialCapacity??100,maxAllocations:r?.maxAllocations??0,returnToPool:r?.returnToPool??true},this.beadPool=new _(()=>new se,{initialSize:0,maxSize:1e4,objectSizeBytes:512}),this.stepPool=new _(()=>new ne,{initialSize:0,maxSize:5e3,objectSizeBytes:256}),this.formulaPool=new _(()=>new ae,{initialSize:0,maxSize:500,objectSizeBytes:1024}),this.convoyPool=new _(()=>new ie,{initialSize:0,maxSize:200,objectSizeBytes:768}),this.moleculePool=new _(()=>new le,{initialSize:0,maxSize:5e3,objectSizeBytes:384}),this.config.initialCapacity>0&&(this.allocations=new Array(this.config.initialCapacity),this.allocations.length=0);}allocate(e,r=256){this.checkMaxAllocations();let t=e();return this.trackAllocation(t,"generic",r),t}allocateTyped(e){this.checkMaxAllocations();let r,t;switch(e){case "bead":r=this.beadPool.acquire(),t=512;break;case "step":r=this.stepPool.acquire(),t=256;break;case "formula":r=this.formulaPool.acquire(),t=1024;break;case "convoy":r=this.convoyPool.acquire(),t=768;break;case "molecule":r=this.moleculePool.acquire(),t=384;break;default:throw new Error(`Unknown allocatable type: ${e}`)}return this.trackAllocation(r,e,t),r}allocateMany(e,r){let t=new Array(r);for(let o=0;o<r;o++)t[o]=this.allocateTyped(e);return t}reset(){if(this.config.returnToPool)for(let r of this.allocations)this.returnToPool(r);let e=this.stats.memoryUsed;this.stats.memorySaved+=e,this.stats.resetCount++,this.stats.currentAllocations>this.stats.peakAllocations&&(this.stats.peakAllocations=this.stats.currentAllocations),this.allocations.length=0,this.stats.currentAllocations=0,this.stats.memoryUsed=0;}getStats(){return {...this.stats}}get allocationCount(){return this.stats.currentAllocations}get arenaName(){return this.name}dispose(){this.reset(),this.beadPool.clear(),this.stepPool.clear(),this.formulaPool.clear(),this.convoyPool.clear(),this.moleculePool.clear();}trackAllocation(e,r,t){this.allocations.push({object:e,type:r,sizeBytes:t}),this.stats.totalAllocations++,this.stats.currentAllocations++,this.stats.memoryUsed+=t;}checkMaxAllocations(){this.config.maxAllocations>0&&this.stats.currentAllocations>=this.config.maxAllocations&&(console.warn(`[${this.name}] Max allocations reached, auto-resetting`),this.reset());}returnToPool(e){switch(e.type){case "bead":this.beadPool.release(e.object);break;case "step":this.stepPool.release(e.object);break;case "formula":this.formulaPool.release(e.object);break;case "convoy":this.convoyPool.release(e.object);break;case "molecule":this.moleculePool.release(e.object);break}}};function kt(s,e){let r=new te(s,e);return Object.assign(r,{[Symbol.dispose](){r.reset();}})}async function Mt(s,e,r){let t=new te(s,r);try{return await e(t)}finally{t.reset();}}function At(s,e,r){let t=new te(s,r);try{return e(t)}finally{t.reset();}}var Se=class{arenas=new Map;stats={totalArenas:0,activeArenas:0,totalMemorySaved:0};getArena(e,r){let t=this.arenas.get(e);return t||(t=new te(e,r),this.arenas.set(e,t),this.stats.totalArenas++,this.stats.activeArenas++),t}resetArena(e){let r=this.arenas.get(e);if(r){let t=r.getStats().memoryUsed;r.reset(),this.stats.totalMemorySaved+=t;}}resetAll(){for(let e of this.arenas.values()){let r=e.getStats().memoryUsed;e.reset(),this.stats.totalMemorySaved+=r;}}disposeArena(e){let r=this.arenas.get(e);r&&(r.dispose(),this.arenas.delete(e),this.stats.activeArenas--);}disposeAll(){for(let e of this.arenas.values())e.dispose();this.arenas.clear(),this.stats.activeArenas=0;}getStats(){let e={};for(let[r,t]of this.arenas)e[r]=t.getStats();return {...this.stats,arenaStats:e}}},Z=new Se;var Y=class extends events.EventEmitter{config;pollTimer;pressureCallbacks=[];lastPressureLevel="none";running=false;statsHistory=[];maxHistorySize=60;constructor(e){super(),this.config={memoryLimit:e?.memoryLimit??0,lowPressureThreshold:e?.lowPressureThreshold??.5,mediumPressureThreshold:e?.mediumPressureThreshold??.7,highPressureThreshold:e?.highPressureThreshold??.85,criticalPressureThreshold:e?.criticalPressureThreshold??.95,pollInterval:e?.pollInterval??0,autoCleanup:e?.autoCleanup??false,gcHints:e?.gcHints??true};}getMemoryUsage(){let e=process.memoryUsage(),r=fe(),t=Z.getStats(),o=0;for(let a of Object.values(t.arenaStats))o+=a.memoryUsed;return {heapUsed:e.heapUsed,heapTotal:e.heapTotal,external:e.external,arrayBuffers:e.arrayBuffers,rss:e.rss,pools:{totalMemorySaved:r.totalMemorySavedKB*1024,hitRate:r.totalHitRate,objectsInUse:r.totalObjectsInUse,objectsAvailable:r.totalObjectsAvailable},arenas:{activeArenas:t.activeArenas,totalMemoryUsed:o,totalMemorySaved:t.totalMemorySaved},timestamp:new Date,underPressure:this.lastPressureLevel!=="none"}}setMemoryLimit(e){this.config.memoryLimit=e;}getMemoryLimit(){return this.config.memoryLimit}onMemoryPressure(e){return this.pressureCallbacks.push(e),()=>{let r=this.pressureCallbacks.indexOf(e);r!==-1&&this.pressureCallbacks.splice(r,1);}}checkPressure(){if(this.config.memoryLimit===0)return "none";let r=this.getMemoryUsage().heapUsed/this.config.memoryLimit;return r>=this.config.criticalPressureThreshold?"critical":r>=this.config.highPressureThreshold?"high":r>=this.config.mediumPressureThreshold?"medium":r>=this.config.lowPressureThreshold?"low":"none"}start(){this.running||(this.running=true,this.config.pollInterval>0&&(this.pollTimer=setInterval(()=>{this.poll();},this.config.pollInterval)));}stop(){this.running=false,this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=void 0);}poll(){let e=this.getMemoryUsage(),r=this.checkPressure();if(this.statsHistory.push(e),this.statsHistory.length>this.maxHistorySize&&this.statsHistory.shift(),this.emit("snapshot",e),r!==this.lastPressureLevel){this.lastPressureLevel=r,e.underPressure=r!=="none",this.emit(`pressure:${r}`,e);for(let t of this.pressureCallbacks)try{t(r,e);}catch(o){console.error("[MemoryMonitor] Pressure callback error:",o);}this.config.autoCleanup&&(r==="high"||r==="critical")&&this.triggerCleanup();}this.config.memoryLimit>0&&e.heapUsed>this.config.memoryLimit&&this.emit("limit:exceeded",e);}triggerCleanup(){let e=this.getMemoryUsage();de(),Z.resetAll(),this.config.gcHints&&typeof global.gc=="function"&&global.gc();let r=this.getMemoryUsage();this.emit("cleanup:triggered",e,r);}getMemoryTrend(){if(this.statsHistory.length<2)return 0;let e=this.statsHistory[0],r=this.statsHistory[this.statsHistory.length-1],t=r.timestamp.getTime()-e.timestamp.getTime();return t===0?0:(r.heapUsed-e.heapUsed)/t*1e3}estimateTimeToLimit(){if(this.config.memoryLimit===0)return null;let e=this.getMemoryTrend();if(e<=0)return null;let r=this.getMemoryUsage();return (this.config.memoryLimit-r.heapUsed)/e*1e3}getPoolStats(){return ce()}getHistory(){return [...this.statsHistory]}clearHistory(){this.statsHistory.length=0;}isRunning(){return this.running}getConfig(){return {...this.config}}updateConfig(e){Object.assign(this.config,e),e.pollInterval!==void 0&&this.running&&(this.stop(),this.start());}};function Et(){return new Y().getMemoryUsage()}function _t(s,e){let r=new Y({memoryLimit:s,pollInterval:1e3,autoCleanup:true});return e&&r.onMemoryPressure(e),r.start(),r}var re=null;function Bt(s){return re||(re=new Y({memoryLimit:10*1024*1024,pollInterval:1e3,autoCleanup:true}),re.start()),re.onMemoryPressure(s)}function Dt(){return re}function Rt(){re&&(re.stop(),re=null);}var Te=class{budgets=new Map;totalLimit;constructor(e=10*1024*1024){this.totalLimit=e;}allocateBudget(e,r){return this.getTotalAllocated()+r>this.totalLimit?false:(this.budgets.set(e,{name:e,allocated:r,used:0,limit:r}),true)}updateUsage(e,r){let t=this.budgets.get(e);t&&(t.used=r);}isExceeded(e){let r=this.budgets.get(e);return r?r.used>r.limit:false}getBudget(e){return this.budgets.get(e)}getAllBudgets(){return Array.from(this.budgets.values())}getTotalAllocated(){return Array.from(this.budgets.values()).reduce((e,r)=>e+r.allocated,0)}getTotalUsed(){return Array.from(this.budgets.values()).reduce((e,r)=>e+r.used,0)}freeBudget(e){this.budgets.delete(e);}getTotalLimit(){return this.totalLimit}setTotalLimit(e){this.totalLimit=e;}},ue=new Te(10*1024*1024);ue.allocateBudget("beads",5*1024*1024);ue.allocateBudget("formulas",1*1024*1024);ue.allocateBudget("convoys",1*1024*1024);ue.allocateBudget("wasm",2*1024*1024);ue.allocateBudget("misc",1*1024*1024);var J=class{value;state="uninitialized";initPromise;idleTimer;options;stats;constructor(e){this.options={factory:e.factory,cleanup:e.cleanup??(()=>{}),idleTimeout:e.idleTimeout??0,onError:e.onError??console.error,name:e.name??"lazy-value"},this.stats={name:this.options.name,state:"uninitialized",initCount:0,disposeCount:0,errorCount:0};}async get(){return this.resetIdleTimer(),this.state==="initialized"&&this.value!==void 0?(this.stats.lastAccessTime=new Date,this.value):this.state==="initializing"&&this.initPromise?this.initPromise:(this.state==="error"&&(this.state="uninitialized"),this.state==="disposed"&&(this.state="uninitialized"),this.initialize())}getSync(){if(this.state!=="initialized"||this.value===void 0)throw new Error(`Lazy value '${this.options.name}' not initialized`);return this.resetIdleTimer(),this.stats.lastAccessTime=new Date,this.value}isInitialized(){return this.state==="initialized"&&this.value!==void 0}getState(){return this.state}async initialize(){if(this.state==="initialized"&&this.value!==void 0)return this.value;this.state="initializing",this.stats.state="initializing";let e=Date.now();return this.initPromise=(async()=>{try{let r=await this.options.factory();return this.value=r,this.state="initialized",this.stats.state="initialized",this.stats.initCount++,this.stats.lastInitTime=new Date,this.stats.lastAccessTime=new Date,this.stats.initDurationMs=Date.now()-e,r}catch(r){throw this.state="error",this.stats.state="error",this.stats.errorCount++,this.options.onError(r),r}finally{this.initPromise=void 0;}})(),this.initPromise}async dispose(){if(this.clearIdleTimer(),this.value!==void 0)try{await this.options.cleanup(this.value);}catch(e){this.options.onError(e);}this.value=void 0,this.state="disposed",this.stats.state="disposed",this.stats.disposeCount++;}getStats(){return {...this.stats}}resetIdleTimer(){this.clearIdleTimer(),this.options.idleTimeout>0&&(this.idleTimer=setTimeout(()=>{this.dispose().catch(this.options.onError);},this.options.idleTimeout));}clearIdleTimer(){this.idleTimer&&(clearTimeout(this.idleTimer),this.idleTimer=void 0);}},he=new Map;function Ft(s,e){let r=he.get(s);return r||(r=new J({...e,name:e.name??s}),he.set(s,r)),r}async function Ot(s){let e=he.get(s);e&&(await e.dispose(),he.delete(s));}async function xe(){let s=[];for(let e of he.values())s.push(e.dispose());await Promise.all(s),he.clear();}var ze=class{lazy;constructor(e,r){this.lazy=new J({...r,factory:e});}async get(){return this.lazy.get()}isLoaded(){return this.lazy.isInitialized()}async dispose(){return this.lazy.dispose()}},Ne=class{lazy;constructor(e,r){this.lazy=new J({...r,factory:async()=>{let t=await e();return t.initialize&&await t.initialize(),t}});}async get(){return this.lazy.get()}isInitialized(){return this.lazy.isInitialized()}async dispose(){return this.lazy.dispose()}getStats(){return this.lazy.getStats()}},me=class{lazy;cached=null;constructor(e,r){this.lazy=new J({factory:async()=>{if(this.cached)return this.cached;let t=await e();return this.cached=t,t},cleanup:()=>{this.cached=null;},name:r?.name??"lazy-wasm",idleTimeout:r?.idleTimeout??0,onError:r?.onError??console.error});}async get(){return this.lazy.get()}isLoaded(){return this.lazy.isInitialized()}clearCache(){this.cached=null;}getStats(){return this.lazy.getStats()}},be=class{lazy;watchCount=0;constructor(e,r){this.lazy=new J({...r,factory:e});}async watch(){return this.watchCount++,this.lazy.get()}async unwatch(){this.watchCount--,this.watchCount<=0&&(this.watchCount=0,await this.lazy.dispose());}getWatchCount(){return this.watchCount}isActive(){return this.lazy.isInitialized()&&this.watchCount>0}async dispose(){return this.watchCount=0,this.lazy.dispose()}};function Lt(s,e){let r=new J({...e,factory:s});return {get:()=>r.get(),isInitialized:()=>r.isInitialized()}}var P={initialized:false,monitor:null,config:{}};function Co(s){if(P.initialized){console.warn("[memory] Memory system already initialized");return}P.config={memoryLimit:s?.memoryLimit??10*1024*1024,autoCleanup:s?.autoCleanup??true,preWarmPools:s?.preWarmPools??false,pollInterval:s?.pollInterval??5e3},P.monitor=new Y({memoryLimit:P.config.memoryLimit,autoCleanup:P.config.autoCleanup,pollInterval:P.config.pollInterval}),P.monitor.start(),P.config.preWarmPools&&Le(),P.initialized=true,`${(P.config.memoryLimit/(1024*1024)).toFixed(2)}`,P.config.autoCleanup,P.config.preWarmPools;}function zt(){return P.monitor?.getMemoryUsage()??null}function So(){return {system:zt(),pools:ce(),poolEfficiency:fe(),arenas:Z.getStats(),config:P.config}}function To(){de(),Z.resetAll(),xe().catch(console.error),P.monitor?.triggerCleanup();}async function xo(){P.initialized&&(P.monitor?.stop(),P.monitor=null,de(),Z.disposeAll(),await xe(),P.initialized=false);}function Po(){return P.initialized}function Io(){return P.monitor}function ko(){return N.acquire()}function Mo(s){N.release(s);}function Ao(){return Q.acquire()}function Eo(s){Q.release(s);}function _o(){return X.acquire()}function Bo(s){X.release(s);}function Do(){return ee.acquire()}function Ro(s){ee.release(s);}function Fo(){return R.acquire()}function Oo(s){R.release(s);}var Pe=new chunkJU7XR5TR_cjs.a({maxEntries:500,ttlMs:300*1e3}),We=new chunkJU7XR5TR_cjs.a({maxEntries:200,ttlMs:600*1e3}),zo=new chunkJU7XR5TR_cjs.c,No=new chunkJU7XR5TR_cjs.c,st=class{constructor(e){this.numWorkers=e;for(let r=0;r<e;r++)this.queues.push([]);}queues=[];nextQueueId=0;enqueue(e){let r=0,t=this.queues[0]?.length??0;for(let o=1;o<this.queues.length;o++){let n=this.queues[o]?.length??0;n<t&&(t=n,r=o);}this.queues[r]?.push(e);}dequeue(e){let r=this.queues[e];if(r&&r.length>0)return r.shift();for(let t=1;t<this.queues.length;t++){let o=(e+t)%this.queues.length,n=this.queues[o];if(n&&n.length>1)return n.pop()}}isEmpty(){return this.queues.every(e=>e.length===0)}get size(){return this.queues.reduce((e,r)=>e+r.length,0)}};function Nt(s){let e=2166136261;for(let r of s){for(let t=0;t<r.length;t++)e^=r.charCodeAt(t),e=e*16777619>>>0;e^=255;}return e.toString(36)}var Wo={debug:(s,e)=>console.debug(`[formula-executor] ${s}`,e??""),info:(s,e)=>console.info(`[formula-executor] ${s}`,e??""),warn:(s,e)=>console.warn(`[formula-executor] ${s}`,e??""),error:(s,e)=>console.error(`[formula-executor] ${s}`,e??"")},Ge=class{isInitialized(){return true}parseFormula(e){try{let r=e.split(`
|
|
11
|
+
`),t="parsed-formula",o="",n="workflow",a=1,i=[],l={},c="",m=null;for(let h of r){let b=h.trim();if(!b||b.startsWith("#"))continue;if(b.startsWith("[")){m&&m.id&&i.push(m);let S=b.match(/\[(\w+)(?:\.(\w+))?\]/);S&&(c=S[1],S[2]?m={id:S[2],title:"",description:""}:m=null);continue}let v=b.match(/^(\w+)\s*=\s*"?([^"]*)"?$/);if(v){let[,S,w]=v;c==="formula"?S==="name"?t=w:S==="description"?o=w:S==="type"?n=w:S==="version"&&(a=parseInt(w,10)):m&&(S==="title"?m.title=w:S==="description"?m.description=w:S==="needs"&&(m.needs=w.split(",").map(T=>T.trim())));}}return m&&m.id&&i.push(m),{name:t,description:o,type:n,version:a,steps:i,vars:l}}catch(r){throw j.parseFailed("js-parse","Failed to parse formula content",r)}}cookFormula(e,r){let t=a=>a.replace(/\{\{(\w+)\}\}/g,(i,l)=>r[l]??i),o=e.steps?.map(a=>({...a,title:t(a.title),description:t(a.description)})),n=e.legs?.map(a=>({...a,title:t(a.title),description:t(a.description),focus:t(a.focus)}));return {...e,steps:o,legs:n,cookedAt:new Date,cookedVars:{...r},originalName:e.name}}batchCook(e,r){return e.map((t,o)=>{let n=r[o]??{};return this.cookFormula(t,n)})}resolveStepDependencies(e){let r=new Map,t=new Map,o=new Map;for(let i of e)r.set(i.id,i),t.set(i.id,0),o.set(i.id,[]);for(let i of e)if(i.needs){for(let l of i.needs)if(r.has(l)){let c=o.get(l);c&&c.push(i.id),t.set(i.id,(t.get(i.id)??0)+1);}}let n=[];t.forEach((i,l)=>{i===0&&n.push(l);});let a=[];for(;n.length>0;){let i=n.shift(),l=r.get(i);l&&a.push(l);for(let c of o.get(i)??[]){let m=(t.get(c)??1)-1;t.set(c,m),m===0&&n.push(c);}}if(a.length!==e.length)throw new f("Cycle detected in step dependencies",y.DEPENDENCY_CYCLE,{sortedCount:a.length,totalCount:e.length});return a}detectCycle(e){let r=new Set,t=new Set,o=new Map;for(let a of e)o.set(a.id,a);let n=(a,i)=>{r.add(a),t.add(a);let l=o.get(a);if(l?.needs)for(let c of l.needs)if(r.has(c)){if(t.has(c))return [...i,c]}else {let m=n(c,[...i,c]);if(m)return m}return t.delete(a),null};for(let a of e)if(!r.has(a.id)){let i=n(a.id,[a.id]);if(i)return {hasCycle:true,cycleSteps:i}}return {hasCycle:false}}},Ue=class extends events.EventEmitter{gtBridge;wasmLoader;logger;jsFallback;executions=new Map;cancellations=new Map;progressEmitters=new Map;defaultMaxParallel=4;constructor(e,r,t){super(),this.gtBridge=e,this.wasmLoader=r??new Ge,this.logger=t??Wo,this.jsFallback=new Ge;}async execute(e,r,t={}){let o=crypto.randomUUID(),n=new AbortController;this.cancellations.set(o,n);let a=t.signal?this.mergeSignals(t.signal,n.signal):n.signal;try{this.logger.info("Starting formula execution",{executionId:o,formulaName:e});let i=await this.cook(e,r),l=i.steps??[],c=i.legs??[],m=l.length||c.length,g={executionId:o,formulaName:e,status:"running",totalSteps:m,completedSteps:0,failedSteps:0,startTime:new Date,stepResults:[],percentage:0};this.executions.set(o,g),this.emit("execution:start",o,i);let h=new chunkJU7XR5TR_cjs.e(T=>this.emit("execution:progress",T),100);this.progressEmitters.set(o,h);let b=this.getOrderedExecutionUnits(i),v=[],S=new Map,w=t.maxParallel??this.defaultMaxParallel;if(w>1&&b.length>1){let T=new Map,E=new Map,W=new Map;for(let L=0;L<b.length;L++){let O=b[L];E.set(O.id,O),W.set(O.id,L),T.set(O.id,new Set(O.needs??[]));}let M=new Set,G=new Set,Ws=new st(w),$r=()=>{let L=[];for(let O of b){if(M.has(O.id)||G.has(O.id))continue;let ye=T.get(O.id);(!ye||[...ye].every(et=>M.has(et)))&&L.push(O);}return L};for(;M.size<b.length;){if(a.aborted)throw g.status="cancelled",this.emit("execution:cancelled",o),new f("Execution cancelled",y.UNKNOWN,{executionId:o});let L=$r();if(L.length===0&&G.size===0)break;let O=Math.min(L.length,w-G.size),ye=L.slice(0,O);if(ye.length===0){await new Promise(A=>setTimeout(A,10));continue}for(let A of ye)G.add(A.id);let et=ye.map(async A=>{let Hr=W.get(A.id)??0;g.currentStep=A.id;let Kr={executionId:o,formula:i,stepIndex:Hr,totalSteps:b.length,variables:i.cookedVars,previousResults:S,signal:a,startTime:g.startTime};this.emit("step:start",o,A);try{let z=await this.runStep(A,Kr,t);return S.set(A.id,z),M.add(A.id),G.delete(A.id),z.success?g.completedSteps++:g.failedSteps++,g.stepResults.push(z),g.percentage=Math.round(M.size/b.length*100),this.emit("step:complete",o,z),h.update({...g}),z}catch(z){let tt={stepId:A.id,success:!1,error:z instanceof Error?z.message:String(z),durationMs:0};if(S.set(A.id,tt),M.add(A.id),G.delete(A.id),g.failedSteps++,g.stepResults.push(tt),this.emit("step:error",o,A.id,z),h.update({...g}),!A.metadata?.continueOnError)throw z;return tt}}),qr=await Promise.all(et);v.push(...qr);}h.flush();}else {for(let T=0;T<b.length;T++){if(a.aborted)throw g.status="cancelled",this.emit("execution:cancelled",o),new f("Execution cancelled",y.UNKNOWN,{executionId:o});let E=b[T];g.currentStep=E.id;let W={executionId:o,formula:i,stepIndex:T,totalSteps:b.length,variables:i.cookedVars,previousResults:S,signal:a,startTime:g.startTime};this.emit("step:start",o,E);try{let M=await this.runStep(E,W,t);v.push(M),S.set(E.id,M),M.success?g.completedSteps++:g.failedSteps++,g.stepResults.push(M),g.percentage=Math.round((T+1)/b.length*100),this.emit("step:complete",o,M),h.update({...g});}catch(M){let G={stepId:E.id,success:!1,error:M instanceof Error?M.message:String(M),durationMs:0};if(v.push(G),S.set(E.id,G),g.failedSteps++,g.stepResults.push(G),this.emit("step:error",o,E.id,M),!E.metadata?.continueOnError)throw M}}h.flush();}return g.status=g.failedSteps>0?"failed":"completed",g.endTime=new Date,g.percentage=100,this.emit("execution:complete",o,v),this.logger.info("Formula execution completed",{executionId:o,formulaName:e,completed:g.completedSteps,failed:g.failedSteps}),v}catch(i){let l=this.executions.get(o);throw l&&(l.status="failed",l.endTime=new Date,l.error=i instanceof Error?i.message:String(i)),this.emit("execution:error",o,i),i}finally{this.cancellations.delete(o);let i=this.progressEmitters.get(o);i&&(i.cancel(),this.progressEmitters.delete(o));}}async cook(e,r){this.logger.debug("Cooking formula",{formulaName:e,varsCount:Object.keys(r).length});let t=Object.keys(r).sort(),o=t.map(i=>r[i]),n=Nt([e,...t,...o]),a=We.get(n);return a?(this.logger.debug("Cook cache hit",{formulaName:e}),a):zo.dedupe(n,async()=>{try{let i;e.includes("[")||e.includes("=")?i=this.parseFormula(e):i=await No.dedupe(e,()=>this.fetchFormula(e)),this.validateVariables(i,r);let c=(this.wasmLoader.isInitialized()?this.wasmLoader:this.jsFallback).cookFormula(i,r);return We.set(n,c),this.logger.debug("Formula cooked successfully",{formulaName:e,wasmAccelerated:this.wasmLoader.isInitialized()}),c}catch(i){throw i instanceof f?i:j.cookFailed(e,i instanceof Error?i.message:String(i),i)}})}async generateMolecules(e){this.logger.debug("Generating molecules",{formulaName:e.name});let r=[],t=new Map;if(e.type==="convoy"&&e.legs){let o=[...e.legs].sort((n,a)=>(n.order??0)-(a.order??0));for(let n=0;n<o.length;n++){let a=o[n],i=`mol-${e.name}-${a.id}-${crypto.randomUUID().slice(0,8)}`;t.set(a.id,i);let l=R.acquire();l.id=i,l.formulaName=e.name,l.title=a.title,l.description=a.description,l.type=e.type,l.sourceId=a.id,l.agent=a.agent,l.dependencies=n>0?[t.get(o[n-1].id)]:[],l.order=n,l.metadata={focus:a.focus,legOrder:a.order},l.createdAt=new Date;let c={id:l.id,formulaName:l.formulaName,title:l.title,description:l.description,type:l.type,sourceId:l.sourceId,agent:l.agent,dependencies:[...l.dependencies],order:l.order,metadata:{...l.metadata},createdAt:l.createdAt};R.release(l),r.push(c),this.emit("molecule:created",c);}}else if(e.steps){let o=this.resolveStepDependencies(e.steps);for(let n=0;n<o.length;n++){let a=o[n],i=`mol-${e.name}-${a.id}-${crypto.randomUUID().slice(0,8)}`;t.set(a.id,i);let l=[];if(a.needs)for(let g of a.needs){let h=t.get(g);h&&l.push(h);}let c=R.acquire();c.id=i,c.formulaName=e.name,c.title=a.title,c.description=a.description,c.type=e.type,c.sourceId=a.id,c.agent=void 0,c.dependencies=l,c.order=n,c.metadata={duration:a.duration,requires:a.requires,...a.metadata},c.createdAt=new Date;let m={id:c.id,formulaName:c.formulaName,title:c.title,description:c.description,type:c.type,sourceId:c.sourceId,agent:c.agent,dependencies:[...c.dependencies],order:c.order,metadata:{...c.metadata},createdAt:c.createdAt};R.release(c),r.push(m),this.emit("molecule:created",m);}}return this.logger.info("Molecules generated",{formulaName:e.name,count:r.length}),r}async runStep(e,r,t={}){let o=Date.now();this.logger.debug("Running step",{stepId:e.id,executionId:r.executionId});let a=e.metadata?.cacheable!==false&&!e.metadata?.hasSideEffects?Nt([e.id,r.formula.name,JSON.stringify(r.variables),JSON.stringify(e.needs??[])]):null;if(a){let i=Pe.get(a);if(i)return this.logger.debug("Step cache hit",{stepId:e.id}),{...i,metadata:{...i.metadata,fromCache:true}}}try{if(r.signal?.aborted)throw new f("Step cancelled",y.UNKNOWN);if(e.needs)for(let c of e.needs){let m=r.previousResults.get(c);if(!m||!m.success)throw new f(`Dependency not satisfied: ${c}`,y.UNKNOWN,{stepId:e.id,dependency:c})}if(t.stepHandler){let c=await t.stepHandler(e,r);return a&&c.success&&Pe.set(a,c),c}if(t.dryRun)return {stepId:e.id,success:!0,output:{dryRun:!0,step:e},durationMs:Date.now()-o,metadata:{dryRun:!0}};let i=await this.executeStepViaCli(e,r,t),l={stepId:e.id,success:!0,output:i,durationMs:Date.now()-o};return a&&Pe.set(a,l),l}catch(i){return {stepId:e.id,success:false,error:i instanceof Error?i.message:String(i),durationMs:Date.now()-o}}}getProgress(e){return this.executions.get(e)}cancel(e){let r=this.cancellations.get(e);return r?(r.abort(),true):false}getActiveExecutions(){return Array.from(this.executions.values()).filter(e=>e.status==="running"||e.status==="pending")}isWasmAvailable(){return this.wasmLoader.isInitialized()}getCacheStats(){return {stepResultCache:Pe.stats(),cookCache:We.stats()}}clearCaches(){Pe.clear(),We.clear();}parseFormula(e){return (this.wasmLoader.isInitialized()?this.wasmLoader:this.jsFallback).parseFormula(e)}async fetchFormula(e){if(!this.gtBridge.isInitialized())throw new f("GtBridge not initialized",y.NOT_INITIALIZED);return this.logger.debug("Fetching formula from CLI",{formulaName:e}),{name:e,description:`Formula: ${e}`,type:"workflow",version:1,steps:[{id:"init",title:"Initialize",description:"Initialize the workflow"},{id:"process",title:"Process",description:"Process the data",needs:["init"]},{id:"finalize",title:"Finalize",description:"Finalize the workflow",needs:["process"]}],vars:{}}}validateVariables(e,r){if(!e.vars)return;let t=[];for(let[o,n]of Object.entries(e.vars))n.required&&!(o in r)&&!n.default&&t.push(o);if(t.length>0)throw new f(`Missing required variables: ${t.join(", ")}`,y.INVALID_ARGUMENTS,{missing:t})}resolveStepDependencies(e){return (this.wasmLoader.isInitialized()?this.wasmLoader:this.jsFallback).resolveStepDependencies(e)}getOrderedExecutionUnits(e){if(e.type==="convoy"&&e.legs){let r=[...e.legs].sort((t,o)=>(t.order??0)-(o.order??0));return r.map((t,o)=>({id:t.id,title:t.title,description:t.description,needs:o>0?[r[o-1].id]:void 0,metadata:{agent:t.agent,focus:t.focus}}))}return e.steps?this.resolveStepDependencies(e.steps):[]}async executeStepViaCli(e,r,t){let o=["formula","step",e.id,"--execution-id",r.executionId,"--json"];t.targetAgent&&o.push("--agent",t.targetAgent),t.stepTimeout&&o.push("--timeout",String(t.stepTimeout));let n=await this.gtBridge.execGt(o);if(!n.success)throw new f(`Step execution failed: ${n.error}`,y.CLI_EXECUTION_FAILED,{stepId:e.id,error:n.error});return n.data?JSON.parse(n.data):null}mergeSignals(...e){let r=new AbortController;for(let t of e){if(t.aborted){r.abort();break}t.addEventListener("abort",()=>r.abort(),{once:true});}return r.signal}};function nt(s,e,r){return new Ue(s,e,r)}var jo={debug:(s,e)=>console.debug(`[convoy-tracker] ${s}`,e??""),info:(s,e)=>console.info(`[convoy-tracker] ${s}`,e??""),warn:(s,e)=>console.warn(`[convoy-tracker] ${s}`,e??""),error:(s,e)=>console.error(`[convoy-tracker] ${s}`,e??"")},pe=zod.z.string().uuid("Invalid convoy ID format"),Wt=zod.z.array(zod.z.string().min(1)).min(1,"At least one issue ID required"),je=class extends events.EventEmitter{bdBridge;convoys=new Map;logger;config;progressTimers=new Map;constructor(e,r){super(),this.bdBridge=e.bdBridge,this.logger=r??jo,this.config={autoUpdateProgress:e.autoUpdateProgress??true,progressUpdateInterval:e.progressUpdateInterval??3e4,persistConvoys:e.persistConvoys??false,storagePath:e.storagePath??"./data/convoys"};}async create(e,r,t){let o=rt.parse({name:e,issues:r,description:t}),n=await this.verifyIssues(o.issues);if(n.length===0)throw I.createFailed("No valid issues found");let a=await this.calculateProgress(n),i=uuid.v4(),l=new Date,c={id:i,name:o.name,trackedIssues:n,status:"active",startedAt:l,progress:a,description:o.description};return this.convoys.set(i,{convoy:c,createdAt:l,updatedAt:l,metadata:{}}),this.emitConvoyEvent("convoy:created",c),this.config.autoUpdateProgress&&this.startProgressTracking(i),this.logger.info("Convoy created",{convoyId:i,name:e,issueCount:n.length}),c}async addIssues(e,r){pe.parse(e),Wt.parse(r);let t=this.convoys.get(e);if(!t)throw I.notFound(e);let o=await this.verifyIssues(r);if(o.length===0)throw new I("No valid issues to add",y.CONVOY_CREATE_FAILED,{convoyId:e,issues:r});let n=new Set(t.convoy.trackedIssues),a=o.filter(m=>!n.has(m));if(a.length===0)return t.convoy;let i=[...t.convoy.trackedIssues,...a],l=await this.calculateProgress(i),c={...t.convoy,trackedIssues:i,progress:l};return t.convoy=c,t.updatedAt=new Date,this.emitConvoyEvent("convoy:issue:added",c,{issues:a}),this.logger.info("Issues added to convoy",{convoyId:e,addedCount:a.length,totalCount:i.length}),c}async removeIssues(e,r){pe.parse(e),Wt.parse(r);let t=this.convoys.get(e);if(!t)throw I.notFound(e);let o=new Set(r),n=t.convoy.trackedIssues.filter(c=>!o.has(c));if(n.length===t.convoy.trackedIssues.length)return t.convoy;let a=n.length>0?await this.calculateProgress(n):{total:0,closed:0,inProgress:0,blocked:0},i={...t.convoy,trackedIssues:n,progress:a};t.convoy=i,t.updatedAt=new Date;let l=r.filter(c=>t.convoy.trackedIssues.includes(c)&&!n.includes(c));return this.emitConvoyEvent("convoy:issue:removed",i,{issues:l}),this.logger.info("Issues removed from convoy",{convoyId:e,removedCount:l.length,remainingCount:n.length}),i}async getStatus(e){pe.parse(e);let r=this.convoys.get(e);if(!r)throw I.notFound(e);let t=await this.calculateProgress(r.convoy.trackedIssues),o=r.convoy.progress;if(t.closed!==o.closed||t.inProgress!==o.inProgress||t.blocked!==o.blocked){let n={...r.convoy,progress:t};r.convoy=n,r.updatedAt=new Date,this.emitConvoyEvent("convoy:progressed",n);}return r.convoy}async complete(e){pe.parse(e);let r=this.convoys.get(e);if(!r)throw I.notFound(e);if(r.convoy.status==="landed")return r.convoy;let t=r.convoy.status,o=new Date,n={...r.convoy,status:"landed",completedAt:o};return r.convoy=n,r.updatedAt=o,this.stopProgressTracking(e),this.emitConvoyEvent("convoy:completed",n,{previousStatus:t}),this.logger.info("Convoy completed",{convoyId:e,name:n.name,duration:o.getTime()-n.startedAt.getTime()}),n}async cancel(e,r){pe.parse(e);let t=this.convoys.get(e);if(!t)throw I.notFound(e);if(t.convoy.status==="failed"||t.convoy.status==="landed")return t.convoy;let o=t.convoy.status,n=new Date,a={...t.convoy,status:"failed",completedAt:n};return t.convoy=a,t.updatedAt=n,t.metadata.cancellationReason=r,this.stopProgressTracking(e),this.emitConvoyEvent("convoy:cancelled",a,{previousStatus:o,reason:r}),this.logger.info("Convoy cancelled",{convoyId:e,name:a.name,reason:r}),a}async pause(e){pe.parse(e);let r=this.convoys.get(e);if(!r)throw I.notFound(e);if(r.convoy.status!=="active")return r.convoy;let t=r.convoy.status,o={...r.convoy,status:"paused"};return r.convoy=o,r.updatedAt=new Date,this.stopProgressTracking(e),this.emitConvoyEvent("convoy:paused",o,{previousStatus:t}),this.logger.info("Convoy paused",{convoyId:e,name:o.name}),o}async resume(e){pe.parse(e);let r=this.convoys.get(e);if(!r)throw I.notFound(e);if(r.convoy.status!=="paused")return r.convoy;let t=r.convoy.status,o={...r.convoy,status:"active"};return r.convoy=o,r.updatedAt=new Date,this.config.autoUpdateProgress&&this.startProgressTracking(e),this.emitConvoyEvent("convoy:resumed",o,{previousStatus:t}),this.logger.info("Convoy resumed",{convoyId:e,name:o.name}),o}listConvoys(e){let r=Array.from(this.convoys.values()).map(t=>t.convoy);return e?r.filter(t=>t.status===e):r}getConvoy(e){return this.convoys.get(e)?.convoy}deleteConvoy(e){return this.stopProgressTracking(e),this.convoys.delete(e)}async calculateProgress(e){if(e.length===0)return {total:0,closed:0,inProgress:0,blocked:0};try{let r=await this.fetchBeads(e),t=new Map(r.map(i=>[i.id,i])),o=0,n=0,a=0;for(let i of e){let l=t.get(i);l&&(l.status==="closed"?o++:l.status==="in_progress"&&n++,l.blockedBy&&l.blockedBy.length>0&&l.blockedBy.some(m=>{let g=t.get(m);return g&&g.status!=="closed"})&&a++);}return {total:e.length,closed:o,inProgress:n,blocked:a}}catch(r){return this.logger.warn("Failed to calculate progress",{issueIds:e,error:r instanceof Error?r.message:String(r)}),{total:e.length,closed:0,inProgress:0,blocked:0}}}async verifyIssues(e){let r=[];for(let t of e)try{await this.bdBridge.getBead(t),r.push(t);}catch{this.logger.warn("Issue not found",{issueId:t});}return r}async fetchBeads(e){let r=[];for(let t of e)try{let o=await this.bdBridge.getBead(t);r.push({id:o.id,title:o.content.slice(0,100),description:o.content,status:this.mapBeadStatus(o.type),priority:0,labels:o.tags??[],createdAt:o.timestamp?new Date(o.timestamp):new Date,updatedAt:new Date,blockedBy:o.parentId?[o.parentId]:[]});}catch{}return r}mapBeadStatus(e){switch(e){case "closed":return "closed";case "in_progress":case "response":case "code":return "in_progress";default:return "open"}}startProgressTracking(e){if(this.progressTimers.has(e))return;let r=setInterval(async()=>{try{await this.getStatus(e);}catch(t){this.logger.warn("Progress tracking error",{convoyId:e,error:t instanceof Error?t.message:String(t)});}},this.config.progressUpdateInterval);this.progressTimers.set(e,r);}stopProgressTracking(e){let r=this.progressTimers.get(e);r&&(clearInterval(r),this.progressTimers.delete(e));}emitConvoyEvent(e,r,t){let o={type:e,convoyId:r.id,convoyName:r.name,timestamp:new Date,status:r.status,progress:r.progress,...t};this.emit(e,o),this.emit("convoy:*",o);}dispose(){for(let[e,r]of this.progressTimers)clearInterval(r);this.progressTimers.clear(),this.removeAllListeners();}};function it(s,e){return new je(s,e)}var $o={debug:(s,e)=>console.debug(`[convoy-observer] ${s}`,e??""),info:(s,e)=>console.info(`[convoy-observer] ${s}`,e??""),warn:(s,e)=>console.warn(`[convoy-observer] ${s}`,e??""),error:(s,e)=>console.error(`[convoy-observer] ${s}`,e??"")},lt=zod.z.string().uuid("Invalid convoy ID format"),Ie=class extends events.EventEmitter{bdBridge;tracker;wasmModule;logger;config;watchers=new Map;beadCache;completionCache;fetchDedup;progressEmitters;pendingSubscriptions=new Map;subscriptionFlushTimer=null;constructor(e,r){super(),this.bdBridge=e.bdBridge,this.tracker=e.tracker,this.wasmModule=e.wasmModule,this.logger=r??$o,this.config={pollInterval:e.pollInterval??1e4,maxPollAttempts:e.maxPollAttempts??0,useWasm:e.useWasm??true,useExponentialBackoff:e.useExponentialBackoff??true,maxBackoffInterval:e.maxBackoffInterval??6e4,backoffMultiplier:e.backoffMultiplier??1.5,deltaUpdatesOnly:e.deltaUpdatesOnly??true,progressDebounceMs:e.progressDebounceMs??500},this.beadCache=new chunkJU7XR5TR_cjs.a({maxEntries:1e3,ttlMs:30*1e3}),this.completionCache=new chunkJU7XR5TR_cjs.a({maxEntries:100,ttlMs:5*1e3}),this.fetchDedup=new chunkJU7XR5TR_cjs.c(3e4),this.progressEmitters=new Map;}watch(e,r){lt.parse(e),this.stopWatching(e);let t=this.config.pollInterval,n=(a=>setTimeout(async()=>{await this.pollConvoyWithBackoff(e,r);},a))(t);return this.watchers.set(e,{timer:n,callback:r,attempts:0,currentInterval:t,lastState:null}),this.progressEmitters.set(e,new chunkJU7XR5TR_cjs.e(a=>this.emit("progress",e,a),this.config.progressDebounceMs)),this.pollConvoyWithBackoff(e,r),this.logger.info("Started watching convoy",{convoyId:e,interval:t}),{convoyId:e,stop:()=>this.stopWatching(e),isActive:()=>this.watchers.has(e)}}batchSubscribe(e,r){this.pendingSubscriptions.has(e)||this.pendingSubscriptions.set(e,new Set),this.pendingSubscriptions.get(e).add(r),this.subscriptionFlushTimer||(this.subscriptionFlushTimer=setTimeout(()=>{this.flushSubscriptions();},50));}flushSubscriptions(){this.subscriptionFlushTimer=null;for(let[e,r]of this.pendingSubscriptions){let t=(o,n)=>{for(let a of r)try{a(o,n);}catch(i){this.logger.error("Subscription callback error",{convoyId:e,error:i instanceof Error?i.message:String(i)});}};this.watch(e,t);}this.pendingSubscriptions.clear(),this.logger.debug("Flushed subscription batch",{convoys:this.pendingSubscriptions.size});}async checkCompletion(e){lt.parse(e);let r=this.tracker.getConvoy(e);if(!r)throw I.notFound(e);let t=await this.fetchBeads(r.trackedIssues),o=new Map(t.map(b=>[b.id,b])),n=[],a=[],i=0;for(let b of r.trackedIssues){let v=o.get(b);v&&(v.status==="closed"?i++:v.status==="in_progress"?a.push(b):n.push(b));}let l=false,c=[],m=[],g=[];if(this.config.useWasm&&this.wasmModule)try{let b=this.analyzeWithWasm(t);l=b.hasCycles,c=b.cycleIssues,m=b.readyIssues,g=b.blockedIssues;}catch(b){this.logger.warn("WASM analysis failed, falling back to JS",{error:b instanceof Error?b.message:String(b)});let v=this.analyzeWithJS(t,r.trackedIssues);l=v.hasCycles,c=v.cycleIssues,m=v.readyIssues,g=v.blockedIssues;}else {let b=this.analyzeWithJS(t,r.trackedIssues);l=b.hasCycles,c=b.cycleIssues,m=b.readyIssues,g=b.blockedIssues;}let h={total:r.trackedIssues.length,closed:i,inProgress:a.length,blocked:g.length};return {allComplete:i===r.trackedIssues.length,progress:h,openIssues:n,inProgressIssues:a,blockedIssues:g,readyIssues:m,hasCycles:l,cycleIssues:c}}async getBlockers(e){return (await this.checkCompletion(e)).blockedIssues}async getReadyIssues(e){return (await this.checkCompletion(e)).readyIssues}async getExecutionOrder(e){lt.parse(e);let r=this.tracker.getConvoy(e);if(!r)throw I.notFound(e);let t=await this.fetchBeads(r.trackedIssues);if(this.config.useWasm&&this.wasmModule)try{let o=this.beadsToWasmNodes(t),n=this.wasmModule.topo_sort(JSON.stringify(o)),a=JSON.parse(n);if(a.hasCycle)throw new f("Cannot compute execution order: dependency cycle detected",y.DEPENDENCY_CYCLE,{cycleNodes:a.cycleNodes});return a.sorted}catch(o){if(o instanceof f)throw o;this.logger.warn("WASM topo sort failed, falling back to JS",{error:o instanceof Error?o.message:String(o)});}return this.topoSortJS(t)}stopWatching(e){let r=this.watchers.get(e);if(r){clearTimeout(r.timer),this.watchers.delete(e);let t=this.progressEmitters.get(e);t&&(t.flush(),this.progressEmitters.delete(e)),this.completionCache.delete(e),this.logger.info("Stopped watching convoy",{convoyId:e});}}stopAll(){for(let[e,r]of this.watchers)clearTimeout(r.timer);this.watchers.clear();for(let e of this.progressEmitters.values())e.flush();this.progressEmitters.clear(),this.beadCache.clear(),this.completionCache.clear(),this.fetchDedup.clear(),this.subscriptionFlushTimer&&(clearTimeout(this.subscriptionFlushTimer),this.subscriptionFlushTimer=null),this.pendingSubscriptions.clear(),this.logger.info("Stopped all convoy watchers");}setWasmModule(e){this.wasmModule=e,this.logger.info("WASM module set");}isWasmAvailable(){return !!this.wasmModule}async pollConvoyWithBackoff(e,r){let t=this.watchers.get(e);if(t)try{let o=this.tracker.getConvoy(e);if(!o){this.stopWatching(e);return}if(o.status==="landed"||o.status==="failed"){r(o,o.status==="landed"),this.stopWatching(e);return}let n=await this.checkCompletion(e),a=JSON.stringify({allComplete:n.allComplete,progress:n.progress,openIssues:n.openIssues.length,inProgress:n.inProgressIssues.length,blocked:n.blockedIssues.length}),i=t.lastState!==a;if(t.lastState=a,this.config.deltaUpdatesOnly&&!i)this.config.useExponentialBackoff&&(t.currentInterval=Math.min(t.currentInterval*this.config.backoffMultiplier,this.config.maxBackoffInterval));else {t.currentInterval=this.config.pollInterval,r(o,n.allComplete);let l=this.progressEmitters.get(e);l&&l.update(n.progress);}if(t.attempts++,this.config.maxPollAttempts>0&&t.attempts>=this.config.maxPollAttempts){this.logger.warn("Max poll attempts reached",{convoyId:e,attempts:t.attempts}),this.stopWatching(e);return}clearTimeout(t.timer),t.timer=setTimeout(async()=>{await this.pollConvoyWithBackoff(e,r);},t.currentInterval);}catch(o){this.logger.error("Poll error",{convoyId:e,error:o instanceof Error?o.message:String(o)}),this.config.useExponentialBackoff&&(t.currentInterval=Math.min(t.currentInterval*(this.config.backoffMultiplier*1.5),this.config.maxBackoffInterval)),clearTimeout(t.timer),t.timer=setTimeout(async()=>{await this.pollConvoyWithBackoff(e,r);},t.currentInterval);}}async pollConvoy(e,r){return this.pollConvoyWithBackoff(e,r)}async fetchBeads(e){let r=e.sort().join(",");return this.fetchDedup.dedupe(r,async()=>{let t=[],o=[];for(let a of e){let i=this.beadCache.get(a);i?t.push(i):o.push(a);}let n=10;for(let a=0;a<o.length;a+=n){let l=o.slice(a,a+n).map(async m=>{try{let g=await this.bdBridge.getBead(m),h=N.acquire();h.id=g.id,h.title=g.content.slice(0,100),h.description=g.content,h.status=this.mapBeadStatus(g.type),h.priority=0,h.labels=g.tags??[],h.createdAt=g.timestamp?new Date(g.timestamp):new Date,h.updatedAt=new Date,h.blockedBy=g.parentId?[g.parentId]:[],h.blocks=[];let b={id:h.id,title:h.title,description:h.description,status:h.status,priority:h.priority,labels:h.labels,createdAt:h.createdAt,updatedAt:h.updatedAt,blockedBy:h.blockedBy,blocks:h.blocks};return N.release(h),this.beadCache.set(m,b),b}catch{return null}}),c=await Promise.all(l);t.push(...c.filter(m=>m!==null));}return t})}mapBeadStatus(e){switch(e){case "closed":return "closed";case "in_progress":case "response":case "code":return "in_progress";default:return "open"}}beadsToWasmNodes(e){return e.map(r=>({id:r.id,title:r.title,status:r.status,priority:r.priority,blocked_by:r.blockedBy??[],blocks:r.blocks??[],duration:void 0}))}analyzeWithWasm(e){if(!this.wasmModule)throw new Error("WASM module not available");let r=this.beadsToWasmNodes(e),t=JSON.stringify(r),o=this.wasmModule.has_cycle(t),n=[];if(o){let w=this.wasmModule.find_cycle_nodes(t);n=JSON.parse(w);}let a=this.wasmModule.get_ready_beads(t),i=JSON.parse(a),l=this.wasmModule.compute_levels(t),c=JSON.parse(l),m=new Map;for(let[w,T]of Object.entries(c)){let E=parseInt(w,10);for(let W of T)m.set(W,E);}let g=new Map(e.map(w=>[w.id,w])),h=i.map(w=>{let T=g.get(w);return {id:w,title:T.title,priority:T.priority,level:m.get(w)??0}}),b=new Set(e.filter(w=>w.status==="closed").map(w=>w.id)),v=new Set(e.map(w=>w.id)),S=e.filter(w=>w.status==="closed"?false:(w.blockedBy??[]).some(E=>!b.has(E))).map(w=>{let T=(w.blockedBy??[]).filter(W=>!b.has(W)),E=T.every(W=>v.has(W));return {blockedIssue:w.id,blockers:T,internalBlockers:E}});return {hasCycles:o,cycleIssues:n,readyIssues:h,blockedIssues:S}}analyzeWithJS(e,r){new Map(e.map(m=>[m.id,m]));let o=new Set(r),n=new Set(e.filter(m=>m.status==="closed").map(m=>m.id)),a=this.detectCyclesJS(e),i=a?this.findCycleNodesJS(e):[],l=e.filter(m=>m.status==="closed"?false:(m.blockedBy??[]).every(h=>n.has(h))).map((m,g)=>({id:m.id,title:m.title,priority:m.priority,level:0})),c=e.filter(m=>m.status==="closed"?false:(m.blockedBy??[]).some(h=>!n.has(h))).map(m=>{let g=(m.blockedBy??[]).filter(b=>!n.has(b)),h=g.every(b=>o.has(b));return {blockedIssue:m.id,blockers:g,internalBlockers:h}});return {hasCycles:a,cycleIssues:i,readyIssues:l,blockedIssues:c}}detectCyclesJS(e){let r=new Set,t=new Set,o=new Map(e.map(a=>[a.id,a])),n=a=>{r.add(a),t.add(a);let i=o.get(a);if(i){for(let l of i.blockedBy??[])if(r.has(l)){if(t.has(l))return true}else if(n(l))return true}return t.delete(a),false};for(let a of e)if(!r.has(a.id)&&n(a.id))return true;return false}findCycleNodesJS(e){let r=new Map;new Map(e.map(n=>[n.id,n]));for(let n of e)r.set(n.id,(n.blockedBy??[]).length);let o=true;for(;o;){o=false;for(let[n,a]of r)if(a===0){r.delete(n);for(let i of e)if(i.blockedBy?.includes(n)){let l=r.get(i.id)??0;l>0&&(r.set(i.id,l-1),o=true);}o=true;}}return Array.from(r.keys())}topoSortJS(e){new Map(e.map(a=>[a.id,a]));let t=new Map,o=[];for(let a of e)t.set(a.id,(a.blockedBy??[]).length);let n=[];for(let[a,i]of t)i===0&&n.push(a);for(;n.length>0;){let a=n.shift();o.push(a);for(let i of e)if(i.blockedBy?.includes(a)){let c=(t.get(i.id)??0)-1;t.set(i.id,c),c===0&&n.push(i.id);}}if(o.length!==e.length)throw new f("Cannot compute execution order: dependency cycle detected",y.DEPENDENCY_CYCLE);return o}dispose(){this.stopAll(),this.removeAllListeners();}};function ct(s,e){return new Ie(s,e)}function qo(s,e){return new be(()=>new Ie(s,e),{name:"convoy-observer",cleanup:r=>{r.dispose();}})}function Ho(s){return {isActive:s.isActive(),watchCount:s.getWatchCount()}}var ge=null,ke=[],Ve=new me(async()=>{if(!oe())throw new Error("WASM not available");let s=await import('gastown-formula-wasm');return typeof s.default=="function"&&await s.default(),s},{name:"gastown-formula-wasm",idleTimeout:300*1e3,onError:s=>{}}),$e=new me(async()=>{if(!oe())throw new Error("WASM not available");let s=await import('ruvector-gnn-wasm');return typeof s.default=="function"&&await s.default(),s},{name:"ruvector-gnn-wasm",idleTimeout:300*1e3,onError:s=>{}}),Me=new chunkJU7XR5TR_cjs.a({maxEntries:1e3,ttlMs:600*1e3}),Ae=new chunkJU7XR5TR_cjs.a({maxEntries:500,ttlMs:300*1e3}),Ee=new chunkJU7XR5TR_cjs.a({maxEntries:200,ttlMs:120*1e3}),Gt=new chunkJU7XR5TR_cjs.b(500),dt=new chunkJU7XR5TR_cjs.c,ut=new chunkJU7XR5TR_cjs.c,mt=new chunkJU7XR5TR_cjs.c,Je=new chunkJU7XR5TR_cjs.d;function pt(s){let e=2166136261;for(let r=0;r<s.length;r++)e^=s.charCodeAt(r),e=e*16777619>>>0;return e.toString(36)}function Ko(s,e){let r=Object.entries(e).sort().map(([t,o])=>`${t}=${o}`).join("|");return `${s.name}:${s.version}:${pt(r)}`}function Zo(s,e){let r=s.sort().join(","),t=e.map(o=>`${o.from}->${o.to}`).sort().join(",");return pt(`${r}|${t}`)}function oe(){if(ge!==null)return ge;try{if(typeof WebAssembly>"u")return ge=!1,!1;let s=typeof WebAssembly.instantiate=="function",e=typeof WebAssembly.compile=="function",r=typeof WebAssembly.Module=="function";return ge=s&&e&&r,ge}catch{return ge=false,false}}function B(s,e,r){let t={operation:s,durationMs:performance.now()-e,usedWasm:r,startedAt:e};return ke.push(t),ke.length>1e3&&ke.shift(),t}function Ut(){return [...ke]}function jt(){ke.length=0;}async function V(){if(!oe())return null;try{return await Ve.get()}catch(s){return null}}async function $(){if(!oe())return null;try{return await $e.get()}catch(s){return null}}function Yo(){return Ve.isLoaded()}function Xo(){return $e.isLoaded()}function Qo(){return {formulaWasm:Ve.getStats(),gnnWasm:$e.getStats()}}function es(s){let e=s.split(`
|
|
12
|
+
`),r={},t="";for(let o of e){let n=o.trim();if(n.startsWith("#")||n==="")continue;let a=n.match(/^\[([^\]]+)\]$/);if(a){t=a[1],r[t]||(r[t]={});continue}let i=n.match(/^([^=]+)=(.+)$/);if(i){let l=i[1].trim(),c=i[2].trim();c==="true"?c=true:c==="false"?c=false:/^\d+$/.test(c)?c=parseInt(c,10):/^\d+\.\d+$/.test(c)?c=parseFloat(c):c.startsWith('"')&&c.endsWith('"')&&(c=c.slice(1,-1)),t?r[t][l]=c:r[l]=c;}}return {name:r.name||"unknown",description:r.description||"",type:r.type||"workflow",version:r.version||1,steps:r.steps,legs:r.legs,vars:r.vars,metadata:r.metadata}}function ts(s,e){let r=o=>{let n=o;for(let[a,i]of Object.entries(e))n=n.replace(new RegExp(`\\{\\{${a}\\}\\}`,"g"),i),n=n.replace(new RegExp(`\\$\\{${a}\\}`,"g"),i);return n},t=o=>{if(typeof o=="string")return r(o);if(Array.isArray(o))return o.map(t);if(o!==null&&typeof o=="object"){let n={};for(let[a,i]of Object.entries(o))n[a]=t(i);return n}return o};return {...t(s),cookedAt:new Date,cookedVars:e,originalName:s.name}}function Jt(s,e){let r=new Map,t=new Map;for(let l of s)r.set(l,0),t.set(l,[]);for(let l of e)t.get(l.from)?.push(l.to),r.set(l.to,(r.get(l.to)||0)+1);let o=[];for(let[l,c]of r)c===0&&o.push(l);let n=[];for(;o.length>0;){let l=o.shift();n.push(l);for(let c of t.get(l)||[]){let m=(r.get(c)||0)-1;r.set(c,m),m===0&&o.push(c);}}let a=n.length!==s.length,i=a?s.filter(l=>!n.includes(l)):void 0;return {sorted:n,hasCycle:a,cycleNodes:i}}function rs(s,e){let r=new Map,t=0,o=1,n=2;for(let c of s)r.set(c,[]);for(let c of e)r.get(c.from)?.push(c.to);let a=new Map;for(let c of s)a.set(c,t);let i=[],l=(c,m)=>{a.set(c,o),m.push(c);for(let g of r.get(c)||[]){if(a.get(g)===o){let h=m.indexOf(g);return i.push(...m.slice(h)),true}if(a.get(g)===t&&l(g,m))return true}return a.set(c,n),m.pop(),false};for(let c of s)if(a.get(c)===t&&l(c,[]))break;return {hasCycle:i.length>0,cycleNodes:[...new Set(i)]}}function os(s,e,r){let t=Jt(s,e);if(t.hasCycle)return {path:[],totalDuration:0,slack:new Map};let o=new Map;for(let v of r)o.set(v.nodeId,v.weight);let n=new Map,a=new Map;for(let v of s)n.set(v,[]),a.set(v,[]);for(let v of e)n.get(v.from)?.push(v.to),a.get(v.to)?.push(v.from);let i=new Map;for(let v of t.sorted){let S=0;for(let w of a.get(v)||[]){let T=(i.get(w)||0)+(o.get(w)||0);S=Math.max(S,T);}i.set(v,S);}let l=new Map,c=[...t.sorted].reverse(),m=Math.max(...s.map(v=>(i.get(v)||0)+(o.get(v)||0)));for(let v of c){let S=n.get(v)||[];if(S.length===0)l.set(v,m-(o.get(v)||0));else {let w=1/0;for(let T of S)w=Math.min(w,l.get(T)||0);l.set(v,w-(o.get(v)||0));}}let g=new Map,h=[];for(let v of s){let S=(l.get(v)||0)-(i.get(v)||0);g.set(v,S),S===0&&h.push(v);}return {path:t.sorted.filter(v=>h.includes(v)),totalDuration:m,slack:g}}async function Vt(s){let e=performance.now(),r=pt(s),t=Me.get(r);return t?(B("parseFormula:cache-hit",e,false),t):dt.dedupe(r,async()=>{let o=await V();if(o)try{let a=o.parse_toml(s),i=JSON.parse(a);return Me.set(r,i),B("parseFormula",e,!0),i}catch(a){console.warn("[WASM Loader] parse_toml failed, using fallback:",a);}let n=es(s);return Me.set(r,n),B("parseFormula",e,false),n})}async function gt(s,e){let r=performance.now(),t=Ko(s,e),o=Ae.get(t);return o?(B("cookFormula:cache-hit",r,false),o):ut.dedupe(t,async()=>{let n=await V();if(n)try{let i=n.cook_formula(JSON.stringify(s),JSON.stringify(e)),l=JSON.parse(i);return Ae.set(t,l),B("cookFormula",r,!0),l}catch(i){console.warn("[WASM Loader] cook_formula failed, using fallback:",i);}let a=ts(s,e);return Ae.set(t,a),B("cookFormula",r,false),a})}async function $t(s,e){let r=performance.now();if(s.length!==e.length)throw new Error("formulas and varsArray must have the same length");let t=await V();if(t)try{let n=t.cook_batch(JSON.stringify(s),JSON.stringify(e)),a=JSON.parse(n);return B("cookBatch",r,!0),a}catch(n){console.warn("[WASM Loader] cook_batch failed, using fallback:",n);}let o=await Promise.all(s.map((n,a)=>gt(n,e[a])));return B("cookBatch",r,false),o}async function qt(s,e){let r=performance.now(),t=Zo(s,e),o=Ee.get(t);return o?(B("topoSort:cache-hit",r,false),o):mt.dedupe(t,async()=>{let n=await $();if(n)try{let i=n.topo_sort(JSON.stringify(s),JSON.stringify(e)),l=JSON.parse(i);return Ee.set(t,l),B("topoSort",r,!0),l}catch(i){console.warn("[WASM Loader] topo_sort failed, using fallback:",i);}let a=Jt(s,e);return Ee.set(t,a),B("topoSort",r,false),a})}async function Ht(s,e){let r=performance.now(),t=await $();if(t)try{let n=t.detect_cycles(JSON.stringify(s),JSON.stringify(e)),a=JSON.parse(n);return B("detectCycles",r,!0),a}catch(n){console.warn("[WASM Loader] detect_cycles failed, using fallback:",n);}let o=rs(s,e);return B("detectCycles",r,false),o}async function qe(s,e,r){let t=performance.now(),o=await $();if(o)try{let a=o.critical_path(JSON.stringify(s),JSON.stringify(e),JSON.stringify(r)),i=JSON.parse(a),l={path:i.path,totalDuration:i.totalDuration,slack:new Map(Object.entries(i.slack).map(([c,m])=>[c,m]))};return B("criticalPath",t,!0),l}catch(a){console.warn("[WASM Loader] critical_path failed, using fallback:",a);}let n=os(s,e,r);return B("criticalPath",t,false),n}async function He(){let[s,e]=await Promise.all([V(),$()]);return {formulaWasm:s!==null,gnnWasm:e!==null}}async function Ke(){let s=await V(),e=await $();return {formulaWasm:s?.version?.()??null,gnnWasm:e?.version?.()??null}}function Kt(){Ve.clearCache(),$e.clearCache(),ge=null;}function ss(){Je.register("gastown-formula-wasm",async()=>V(),10),Je.register("ruvector-gnn-wasm",async()=>$(),5),Je.startPreload().catch(s=>{});}function ns(){let s=Me.stats(),e=Ae.stats(),r=Ee.stats(),t=Gt.stats(),o=Je.status();return {parseCache:{entries:s.entries,sizeBytes:s.sizeBytes,hitRate:s.hitRate},cookCache:{entries:e.entries,sizeBytes:e.sizeBytes,hitRate:e.hitRate},topoSortCache:{entries:r.entries,sizeBytes:r.sizeBytes,hitRate:r.hitRate},astCache:{entries:t.entries,sizeBytes:t.sizeBytes},preloader:o,deduplicator:{parsePending:dt.pendingCount,cookPending:ut.pendingCount,graphPending:mt.pendingCount}}}function as(){Me.clear(),Ae.clear(),Ee.clear(),Gt.clear(),dt.clear(),ut.clear(),mt.clear();}var is={isWasmAvailable:oe,loadFormulaWasm:V,parseFormula:Vt,cookFormula:gt,cookBatch:$t,loadGnnWasm:$,topoSort:qt,detectCycles:Ht,criticalPath:qe,preloadWasmModules:He,getWasmVersions:Ke,resetWasmCache:Kt,isFormulaWasmLoaded:Yo,isGnnWasmLoaded:Xo,getWasmLazyStats:Qo,scheduleIdlePreload:ss,getCacheStats:ns,clearAllCaches:as,getPerformanceLog:Ut,clearPerformanceLog:jt};var Zt=zod.z.object({title:zod.z.string().min(1).max(500).describe("Bead title"),description:zod.z.string().max(1e4).optional().describe("Bead description"),priority:zod.z.number().int().min(0).max(10).default(2).describe("Priority (0 = highest)"),labels:zod.z.array(zod.z.string().max(50)).max(20).optional().describe("Labels for categorization"),parent:zod.z.string().max(50).optional().describe("Parent bead ID for epics"),rig:zod.z.string().max(100).optional().describe("Rig (repository) to create in")}),Yt=zod.z.object({rig:zod.z.string().max(100).optional().describe("Filter by rig (repository)"),limit:zod.z.number().int().min(1).max(100).default(10).describe("Maximum beads to return"),labels:zod.z.array(zod.z.string().max(50)).max(10).optional().describe("Filter by labels")}),Xt=zod.z.object({bead_id:zod.z.string().min(1).max(50).describe('Bead ID to show (e.g., "gt-abc12")')}),Qt=zod.z.object({action:zod.z.enum(["add","remove"]).describe("Action to perform on dependency"),child:zod.z.string().min(1).max(50).describe("Child bead ID (the one that depends)"),parent:zod.z.string().min(1).max(50).describe("Parent bead ID (the dependency)")}),er=zod.z.object({direction:zod.z.enum(["pull","push","both"]).default("both").describe("Sync direction"),rig:zod.z.string().max(100).optional().describe("Filter by rig (repository)"),namespace:zod.z.string().max(100).default("gastown:beads").describe("AgentDB namespace")}),tr=zod.z.object({name:zod.z.string().min(1).max(200).describe("Convoy name"),issues:zod.z.array(zod.z.string().max(50)).min(1).max(100).describe("Issue IDs to track"),description:zod.z.string().max(5e3).optional().describe("Convoy description")}),rr=zod.z.object({convoy_id:zod.z.string().max(50).optional().describe("Convoy ID (shows all if omitted)"),detailed:zod.z.boolean().default(false).describe("Include detailed progress")}),or=zod.z.object({convoy_id:zod.z.string().min(1).max(50).describe("Convoy ID"),action:zod.z.enum(["add","remove"]).describe("Action to perform"),issues:zod.z.array(zod.z.string().max(50)).min(1).max(50).describe("Issue IDs to add/remove")}),sr=zod.z.object({type:zod.z.enum(["convoy","workflow","expansion","aspect"]).optional().describe("Filter by formula type"),include_builtin:zod.z.boolean().default(true).describe("Include built-in formulas")}),nr=zod.z.object({formula:zod.z.string().min(1).max(5e4).describe("Formula name or TOML content"),vars:zod.z.record(zod.z.string().max(50),zod.z.string().max(5e3)).describe("Variables for substitution"),is_content:zod.z.boolean().default(false).describe("Whether formula is TOML content (vs name)")}),ar=zod.z.object({formula:zod.z.string().min(1).max(200).describe("Formula name"),vars:zod.z.record(zod.z.string().max(50),zod.z.string().max(5e3)).describe("Variables for substitution"),target_agent:zod.z.enum(["polecat","crew","mayor","refinery"]).optional().describe("Target agent for execution"),dry_run:zod.z.boolean().default(false).describe("Dry run (don't actually execute)")}),ir=zod.z.object({name:zod.z.string().min(1).max(100).describe("Formula name"),type:zod.z.enum(["convoy","workflow","expansion","aspect"]).describe("Formula type"),steps:zod.z.array(zod.z.object({id:zod.z.string().min(1).max(50),title:zod.z.string().min(1).max(200),description:zod.z.string().max(5e3).optional(),needs:zod.z.array(zod.z.string().max(50)).optional()})).max(100).optional().describe("Workflow steps"),vars:zod.z.record(zod.z.string().max(50),zod.z.object({default:zod.z.string().max(1e3).optional(),description:zod.z.string().max(500).optional(),required:zod.z.boolean().optional()})).optional().describe("Variable definitions"),description:zod.z.string().max(2e3).optional().describe("Formula description")}),lr=zod.z.object({bead_id:zod.z.string().min(1).max(50).describe("Bead ID to sling"),target:zod.z.enum(["polecat","crew","mayor"]).describe("Target agent type"),formula:zod.z.string().max(200).optional().describe("Optional formula to use"),priority:zod.z.number().int().min(0).max(10).optional().describe("Priority override")}),cr=zod.z.object({rig:zod.z.string().max(100).optional().describe("Filter by rig"),role:zod.z.enum(["mayor","polecat","refinery","witness","deacon","dog","crew"]).optional().describe("Filter by agent role"),include_inactive:zod.z.boolean().default(false).describe("Include inactive agents")}),dr=zod.z.object({action:zod.z.enum(["send","read","list"]).describe("Mail action"),to:zod.z.string().max(100).optional().describe("Recipient (for send)"),subject:zod.z.string().max(500).optional().describe("Subject (for send)"),body:zod.z.string().max(1e4).optional().describe("Body (for send)"),mail_id:zod.z.string().max(50).optional().describe("Mail ID (for read)"),limit:zod.z.number().int().min(1).max(100).default(20).describe("Maximum messages to list")}),ur=zod.z.object({content:zod.z.string().min(1).max(1e5).describe("TOML content to parse"),validate:zod.z.boolean().default(true).describe("Validate against formula schema")}),mr=zod.z.object({beads:zod.z.array(zod.z.object({id:zod.z.string().min(1).max(50),dependencies:zod.z.array(zod.z.string().max(50)).optional()})).min(1).max(1e3).describe("Beads to analyze"),action:zod.z.enum(["topo_sort","critical_path","cycle_detect"]).default("topo_sort").describe("Analysis action")}),pr=zod.z.object({formulas:zod.z.array(zod.z.object({name:zod.z.string().min(1).max(100),content:zod.z.string().min(1).max(5e4)})).min(1).max(50).describe("Formulas to cook"),vars:zod.z.array(zod.z.record(zod.z.string().max(50),zod.z.string().max(5e3))).describe("Variables for each formula"),continue_on_error:zod.z.boolean().default(false).describe("Continue on error")}),gr=zod.z.object({query:zod.z.string().min(1).max(5e3).describe("Search query"),candidates:zod.z.array(zod.z.string().max(5e4)).min(1).max(1e3).describe("Candidate patterns"),k:zod.z.number().int().min(1).max(100).default(10).describe("Number of results to return"),threshold:zod.z.number().min(0).max(1).default(.5).describe("Minimum similarity threshold")}),yr=zod.z.object({convoy_id:zod.z.string().min(1).max(50).describe("Convoy ID to optimize"),strategy:zod.z.enum(["parallel","serial","hybrid"]).default("hybrid").describe("Optimization strategy"),resource_constraints:zod.z.object({max_parallel:zod.z.number().int().min(1).max(100).optional(),agent_capacity:zod.z.record(zod.z.string(),zod.z.number().int().min(1)).optional()}).optional().describe("Resource constraints")}),fr={name:"gt_beads_create",description:"Create a bead (issue/task) in the Gas Town Beads system with priority and labels",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:Zt,handler:async(s,e)=>{let r=Date.now();try{let t=Zt.parse(s),a={success:!0,bead:await e.bridges.gastown.createBead({title:t.title,description:t.description,priority:t.priority,labels:t.labels,parent:t.parent,rig:t.rig}),durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(a,null,2)}],data:a}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},hr={name:"gt_beads_ready",description:"List beads that are ready to work on (no unresolved dependencies)",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:Yt,handler:async(s,e)=>{let r=Date.now();try{let t=Yt.parse(s),o=e.bridges.gastown,n=Math.min(t.limit,e.config.maxBeadsLimit),a=await o.getReady(n,t.rig,t.labels),i={success:!0,beads:a,total:a.length,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(i,null,2)}],data:i}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},br={name:"gt_beads_show",description:"Show detailed information about a specific bead including dependencies",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:Xt,handler:async(s,e)=>{let r=Date.now();try{let t=Xt.parse(s),o=e.bridges.gastown,{bead:n,dependencies:a,dependents:i}=await o.showBead(t.bead_id),l={success:!0,bead:n,dependencies:a,dependents:i,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(l,null,2)}],data:l}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},vr={name:"gt_beads_dep",description:"Add or remove dependencies between beads",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:Qt,handler:async(s,e)=>{let r=Date.now();try{let t=Qt.parse(s);await e.bridges.gastown.manageDependency(t.action,t.child,t.parent);let n={success:!0,action:t.action,child:t.child,parent:t.parent,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(n,null,2)}],data:n}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},wr={name:"gt_beads_sync",description:"Synchronize beads between Gas Town and Claude Flow AgentDB",category:"gastown-bridge",version:"0.1.0",layer:"hybrid",inputSchema:er,handler:async(s,e)=>{let r=Date.now();try{let t=er.parse(s),o=e.bridges.beadsSync,n=0,a=0,i=0;if(t.direction==="pull"||t.direction==="both"){let c=await o.pullBeads(t.rig,t.namespace);n=c.synced,i+=c.conflicts;}if(t.direction==="push"||t.direction==="both"){let c=await o.pushTasks(t.namespace);a=c.pushed,i+=c.conflicts;}let l={success:!0,direction:t.direction,pulled:n,pushed:a,conflicts:i,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(l,null,2)}],data:l}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Cr={name:"gt_convoy_create",description:"Create a convoy (work order) for tracking and coordinating multiple beads",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:tr,handler:async(s,e)=>{let r=Date.now();try{let t=tr.parse(s),a={success:!0,convoy:await e.bridges.gastown.createConvoy({name:t.name,issues:t.issues,description:t.description}),durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(a,null,2)}],data:a}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Sr={name:"gt_convoy_status",description:"Check the status of one or all convoys including progress metrics",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:rr,handler:async(s,e)=>{let r=Date.now();try{let t=rr.parse(s),a={success:!0,convoys:await e.bridges.gastown.getConvoyStatus(t.convoy_id,t.detailed),durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(a,null,2)}],data:a}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Tr={name:"gt_convoy_track",description:"Add or remove issues from an existing convoy",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:or,handler:async(s,e)=>{let r=Date.now();try{let t=or.parse(s);await e.bridges.gastown.trackConvoy(t.convoy_id,t.action,t.issues);let n={success:!0,convoy_id:t.convoy_id,action:t.action,issues_modified:t.issues,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(n,null,2)}],data:n}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},xr={name:"gt_formula_list",description:"List available Gas Town formulas with optional type filter",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:sr,handler:async(s,e)=>{let r=Date.now();try{let t=sr.parse(s),a={success:!0,formulas:await e.bridges.gastown.listFormulas(t.type,t.include_builtin),durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(a,null,2)}],data:a}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Pr={name:"gt_formula_cook",description:"Cook a formula into a protomolecule with variable substitution (WASM accelerated)",category:"gastown-bridge",version:"0.1.0",layer:"wasm",inputSchema:nr,handler:async(s,e)=>{let r=Date.now();try{let t=nr.parse(s),o=!1,n;if(e.config.enableWasm)try{let i=e.bridges.formulaWasm;i.isInitialized()?(n=await i.cookFormula(t.formula,t.vars,t.is_content),o=!0):n=await e.bridges.gastown.cookFormula(t.formula,t.vars);}catch{n=await e.bridges.gastown.cookFormula(t.formula,t.vars);}else n=await e.bridges.gastown.cookFormula(t.formula,t.vars);let a={success:!0,cooked:n,wasmUsed:o,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(a,null,2)}],data:a}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Ir={name:"gt_formula_execute",description:"Execute a formula to create beads/molecules in Gas Town",category:"gastown-bridge",version:"0.1.0",layer:"hybrid",inputSchema:ar,handler:async(s,e)=>{let r=Date.now();try{let t=ar.parse(s),o=e.bridges.gastown,{beads_created:n}=await o.executeFormula(t.formula,t.vars,t.target_agent,t.dry_run),a={success:!0,formula:t.formula,beads_created:n,target_agent:t.target_agent,dry_run:t.dry_run,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(a,null,2)}],data:a}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},kr={name:"gt_formula_create",description:"Create a custom formula definition",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:ir,handler:async(s,e)=>{let r=Date.now();try{let t=ir.parse(s),o=e.bridges.gastown,n=t.steps?.map(l=>({id:l.id,title:l.title,description:l.description??"",needs:l.needs})),{path:a}=await o.createFormula({name:t.name,type:t.type,steps:n,vars:t.vars,description:t.description}),i={success:!0,name:t.name,path:a,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(i,null,2)}],data:i}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Mr={name:"gt_sling",description:"Sling (assign) a bead to a Gas Town agent for processing",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:lr,handler:async(s,e)=>{let r=Date.now();try{let t=lr.parse(s);await e.bridges.gastown.sling(t.bead_id,t.target,t.formula,t.priority);let n={success:!0,bead_id:t.bead_id,target:t.target,formula_used:t.formula,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(n,null,2)}],data:n}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Ar={name:"gt_agents",description:"List Gas Town agents with optional role and rig filters",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:cr,handler:async(s,e)=>{let r=Date.now();try{let t=cr.parse(s),a={success:!0,agents:await e.bridges.gastown.listAgents(t.rig,t.role,t.include_inactive),durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(a,null,2)}],data:a}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Er={name:"gt_mail",description:"Send, read, or list Gas Town internal mail messages",category:"gastown-bridge",version:"0.1.0",layer:"cli",inputSchema:dr,handler:async(s,e)=>{let r=Date.now();try{let t=dr.parse(s),o=e.bridges.gastown,n,a;switch(t.action){case "send":if(!t.to||!t.subject||!t.body)throw new Error("send action requires to, subject, and body");a=await o.sendMail(t.to,t.subject,t.body);break;case "read":if(!t.mail_id)throw new Error("read action requires mail_id");n=[await o.readMail(t.mail_id)];break;case "list":n=await o.listMail(t.limit);break}let i={success:!0,action:t.action,messages:n,sent_id:a,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(i,null,2)}],data:i}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},_r={name:"gt_wasm_parse_formula",description:"Parse TOML formula content to AST using WASM (352x faster than JavaScript)",category:"gastown-bridge",version:"0.1.0",layer:"wasm",inputSchema:ur,handler:async(s,e)=>{let r=Date.now();try{let t=ur.parse(s),o=e.bridges.formulaWasm;o.isInitialized()||await o.initialize();let n=Date.now(),a=await o.parseFormula(t.content,t.validate),i=Date.now()-n,l={success:!0,ast:a,wasmPerformanceMs:i,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(l,null,2)}],data:l}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Br={name:"gt_wasm_resolve_deps",description:"Resolve bead dependencies using WASM (topological sort, cycle detection, critical path)",category:"gastown-bridge",version:"0.1.0",layer:"wasm",inputSchema:mr,handler:async(s,e)=>{let r=Date.now();try{let t=mr.parse(s),o=e.bridges.dependencyWasm;o.isInitialized()||await o.initialize();let n=Date.now(),a=await o.resolveDependencies(t.beads,t.action),i=Date.now()-n,l={success:!0,action:t.action,result:a,wasmPerformanceMs:i,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(l,null,2)}],data:l}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Dr={name:"gt_wasm_cook_batch",description:"Batch cook multiple formulas using WASM for maximum performance",category:"gastown-bridge",version:"0.1.0",layer:"wasm",inputSchema:pr,handler:async(s,e)=>{let r=Date.now();try{let t=pr.parse(s),o=e.bridges.formulaWasm;o.isInitialized()||await o.initialize();let n=Date.now(),{cooked:a,errors:i}=await o.cookBatch(t.formulas,t.vars,t.continue_on_error),l=Date.now()-n,c={success:i.length===0||t.continue_on_error,cooked:a,errors:i,wasmPerformanceMs:l,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(c,null,2)}],data:c}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Rr={name:"gt_wasm_match_pattern",description:"Find similar formulas or beads using HNSW pattern matching (150x-12500x faster)",category:"gastown-bridge",version:"0.1.0",layer:"wasm",inputSchema:gr,handler:async(s,e)=>{let r=Date.now();try{let t=gr.parse(s),o=e.bridges.dependencyWasm;o.isInitialized()||await o.initialize();let n=Date.now(),a=await o.matchPatterns(t.query,t.candidates,t.k,t.threshold),i=Date.now()-n,l={success:!0,matches:a,wasmPerformanceMs:i,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(l,null,2)}],data:l}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},Fr={name:"gt_wasm_optimize_convoy",description:"Optimize convoy execution order using WASM graph algorithms",category:"gastown-bridge",version:"0.1.0",layer:"wasm",inputSchema:yr,handler:async(s,e)=>{let r=Date.now();try{let t=yr.parse(s),o=e.bridges.dependencyWasm,n=e.bridges.gastown;o.isInitialized()||await o.initialize();let a=await n.getConvoyStatus(t.convoy_id,!0);if(a.length===0)throw new Error(`Convoy not found: ${t.convoy_id}`);let i=a[0],l=Date.now(),c=await o.optimizeConvoy(i,t.strategy,t.resource_constraints),m=Date.now()-l,g={success:!0,optimization:c,wasmPerformanceMs:m,durationMs:Date.now()-r};return {content:[{type:"text",text:JSON.stringify(g,null,2)}],data:g}}catch(t){let o=t instanceof Error?t.message:"Unknown error";return {content:[{type:"text",text:JSON.stringify({success:false,error:o,durationMs:Date.now()-r},null,2)}]}}}},ve=[fr,hr,br,vr,wr,Cr,Sr,Tr,xr,Pr,Ir,kr,Mr,Ar,Er,_r,Br,Dr,Rr,Fr],ls=new Map([["gt_beads_create",fr.handler],["gt_beads_ready",hr.handler],["gt_beads_show",br.handler],["gt_beads_dep",vr.handler],["gt_beads_sync",wr.handler],["gt_convoy_create",Cr.handler],["gt_convoy_status",Sr.handler],["gt_convoy_track",Tr.handler],["gt_formula_list",xr.handler],["gt_formula_cook",Pr.handler],["gt_formula_execute",Ir.handler],["gt_formula_create",kr.handler],["gt_sling",Mr.handler],["gt_agents",Ar.handler],["gt_mail",Er.handler],["gt_wasm_parse_formula",_r.handler],["gt_wasm_resolve_deps",Br.handler],["gt_wasm_cook_batch",Dr.handler],["gt_wasm_match_pattern",Rr.handler],["gt_wasm_optimize_convoy",Fr.handler]]),cs={beads:["gt_beads_create","gt_beads_ready","gt_beads_show","gt_beads_dep","gt_beads_sync"],convoy:["gt_convoy_create","gt_convoy_status","gt_convoy_track"],formula:["gt_formula_list","gt_formula_cook","gt_formula_execute","gt_formula_create"],orchestration:["gt_sling","gt_agents","gt_mail"],wasm:["gt_wasm_parse_formula","gt_wasm_resolve_deps","gt_wasm_cook_batch","gt_wasm_match_pattern","gt_wasm_optimize_convoy"]};function ds(s){return ve.find(e=>e.name===s)}function us(s){return ve.filter(e=>e.layer===s)}var q=/[;&|`$(){}[\]<>\n\r\0\\'"]/,_e=[/\.\.\//,/\.\.\\/,/%2e%2e%2f/i,/%2e%2e%5c/i,/\x2e\x2e\x2f/,/\x2e\x2e\x5c/,/~\//,/^\/etc\//,/^\/proc\//,/^\/dev\//,/^C:\\/i],Or=/^(gt-[a-zA-Z0-9]{4,16}|\d{1,10})$/,Lr=/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/,zr=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Nr=/^conv-[a-zA-Z0-9]{4,16}$/,F={beadId:32,formulaName:64,convoyId:36,argument:512,stringValue:4096,arrayLength:100},we=zod.z.string().min(1,"Bead ID cannot be empty").max(F.beadId,`Bead ID exceeds maximum length of ${F.beadId}`).refine(s=>!q.test(s),"Bead ID contains invalid characters").refine(s=>!_e.some(e=>e.test(s)),"Bead ID contains path traversal sequence").refine(s=>Or.test(s.trim()),"Bead ID must be in format gt-{hash} or numeric").transform(s=>s.trim()),Be=zod.z.string().min(1,"Formula name cannot be empty").max(F.formulaName,`Formula name exceeds maximum length of ${F.formulaName}`).refine(s=>!q.test(s),"Formula name contains invalid characters").refine(s=>!_e.some(e=>e.test(s)),"Formula name contains path traversal sequence").refine(s=>Lr.test(s.trim()),"Formula name must start with letter and contain only alphanumeric, dash, or underscore").transform(s=>s.trim()),yt=zod.z.string().min(1,"Convoy ID cannot be empty").max(F.convoyId,`Convoy ID exceeds maximum length of ${F.convoyId}`).refine(s=>!q.test(s),"Convoy ID contains invalid characters").refine(s=>zr.test(s.trim())||Nr.test(s.trim()),"Convoy ID must be a valid UUID or conv-{hash} format").transform(s=>s.trim().toLowerCase()),Wr=zod.z.string().max(F.argument,`Argument exceeds maximum length of ${F.argument}`).refine(s=>!s.includes("\0"),"Argument contains null byte").refine(s=>!q.test(s),"Argument contains shell metacharacters").refine(s=>!_e.some(e=>e.test(s)),"Argument contains path traversal sequence"),Gr=zod.z.array(Wr).max(F.arrayLength,`Too many arguments (max ${F.arrayLength})`),ms=zod.z.string().max(F.stringValue,`String exceeds maximum length of ${F.stringValue}`).refine(s=>!q.test(s),"String contains shell metacharacters");zod.z.enum(["convoy","workflow","expansion","aspect"]);zod.z.enum(["open","in_progress","closed"]);zod.z.enum(["active","landed","failed","paused"]);var ps=zod.z.enum(["polecat","crew","mayor"]),Ur=zod.z.string().min(1,"Rig name cannot be empty").max(32,"Rig name exceeds maximum length").refine(s=>!q.test(s),"Rig name contains invalid characters").refine(s=>/^[a-zA-Z][a-zA-Z0-9-]{0,31}$/.test(s.trim()),"Rig name must start with letter and contain only alphanumeric or dash").transform(s=>s.trim().toLowerCase()),ft=zod.z.number().int("Priority must be an integer").min(0,"Priority cannot be negative").max(100,"Priority cannot exceed 100"),jr=zod.z.array(zod.z.string().max(50,"Label exceeds maximum length").refine(s=>/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(s),"Label must start with letter and contain only alphanumeric, dash, or underscore")).max(20,"Too many labels (max 20)");function gs(s){let e=we.safeParse(s);if(!e.success){e.error.errors.map(t=>t.message).join("; ");throw D.invalidBeadId(s)}return e.data}function ys(s){let e=Be.safeParse(s);if(!e.success)throw D.invalidFormulaName(s);return e.data}function fs(s){let e=yt.safeParse(s);if(!e.success)throw D.invalidConvoyId(s);return e.data}function hs(s){if(!Array.isArray(s))throw new D("Arguments must be an array",y.INVALID_ARGUMENTS,[{field:"args",constraint:"array",actual:typeof s}]);let e=Gr.safeParse(s);if(!e.success){let t=e.error.errors.map((o,n)=>({field:`args[${o.path[0]??n}]`,constraint:"safe CLI argument",actual:s[Number(o.path[0])]?.slice(0,20)+"..."}));throw new D("Invalid CLI arguments",y.INVALID_ARGUMENTS,t)}return e.data}var bs=zod.z.object({title:zod.z.string().min(1,"Title cannot be empty").max(256,"Title exceeds maximum length").refine(s=>!q.test(s),"Title contains invalid characters"),description:zod.z.string().max(4096,"Description exceeds maximum length").optional(),priority:ft.optional().default(50),labels:jr.optional().default([]),parent:we.optional(),rig:Ur.optional(),assignee:zod.z.string().max(64,"Assignee name exceeds maximum length").refine(s=>/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(s),"Invalid assignee name format").optional()}),vs=zod.z.object({name:zod.z.string().min(1,"Convoy name cannot be empty").max(128,"Convoy name exceeds maximum length").refine(s=>!q.test(s),"Convoy name contains invalid characters"),issues:zod.z.array(we).min(1,"At least one issue is required").max(100,"Too many issues (max 100)"),description:zod.z.string().max(4096,"Description exceeds maximum length").optional(),formula:Be.optional()}),ws=zod.z.object({beadId:we,target:ps,formula:Be.optional(),priority:ft.optional()});function Cs(s){let e=bs.safeParse(s);if(!e.success){let t=e.error.errors.map(o=>({field:o.path.join("."),constraint:o.message}));throw new D("Invalid bead creation options",y.VALIDATION_FAILED,t)}return e.data}function Ss(s){let e=vs.safeParse(s);if(!e.success){let t=e.error.errors.map(o=>({field:o.path.join("."),constraint:o.message}));throw new D("Invalid convoy creation options",y.VALIDATION_FAILED,t)}return e.data}function Ts(s){let e=ws.safeParse(s);if(!e.success){let t=e.error.errors.map(o=>({field:o.path.join("."),constraint:o.message}));throw new D("Invalid sling options",y.VALIDATION_FAILED,t)}return e.data}function xs(s){return q.test(s)}function Ps(s){return _e.some(e=>e.test(s))}function Is(s){return Wr.safeParse(s).success}function ks(s){return we.safeParse(s).success}function Ms(s){return Be.safeParse(s).success}function As(s){return yt.safeParse(s).success}var k={single:1024*1024,list:10*1024*1024,field:65536},Ye=[/password/i,/secret/i,/token/i,/api[_-]?key/i,/auth[_-]?key/i,/private[_-]?key/i,/access[_-]?key/i,/credential/i,/bearer/i,/jwt/i,/session[_-]?id/i],Xe=new Set(["password","secret","token","apiKey","api_key","authKey","auth_key","privateKey","private_key","accessKey","access_key","credential","credentials","bearer","jwt","sessionId","session_id"]),Es=zod.z.object({id:zod.z.string(),title:zod.z.string().default(""),description:zod.z.string().default(""),status:zod.z.enum(["open","in_progress","closed"]).default("open"),priority:zod.z.number().int().min(0).default(50),labels:zod.z.array(zod.z.string()).default([]),parentId:zod.z.string().optional(),parent_id:zod.z.string().optional(),createdAt:zod.z.union([zod.z.string(),zod.z.date()]).optional(),created_at:zod.z.union([zod.z.string(),zod.z.date()]).optional(),updatedAt:zod.z.union([zod.z.string(),zod.z.date()]).optional(),updated_at:zod.z.union([zod.z.string(),zod.z.date()]).optional(),assignee:zod.z.string().optional(),rig:zod.z.string().optional(),blockedBy:zod.z.array(zod.z.string()).optional(),blocked_by:zod.z.array(zod.z.string()).optional(),blocks:zod.z.array(zod.z.string()).optional()}).passthrough(),_s=zod.z.object({name:zod.z.string(),description:zod.z.string().default(""),type:zod.z.enum(["convoy","workflow","expansion","aspect"]).default("workflow"),version:zod.z.number().int().min(1).default(1),legs:zod.z.array(zod.z.object({id:zod.z.string(),title:zod.z.string().default(""),focus:zod.z.string().default(""),description:zod.z.string().default(""),agent:zod.z.string().optional(),order:zod.z.number().optional()})).optional(),steps:zod.z.array(zod.z.object({id:zod.z.string(),title:zod.z.string().default(""),description:zod.z.string().default(""),needs:zod.z.array(zod.z.string()).optional(),duration:zod.z.number().optional(),requires:zod.z.array(zod.z.string()).optional(),metadata:zod.z.record(zod.z.unknown()).optional()})).optional(),vars:zod.z.record(zod.z.object({name:zod.z.string().default(""),description:zod.z.string().optional(),default:zod.z.string().optional(),required:zod.z.boolean().optional(),pattern:zod.z.string().optional(),enum:zod.z.array(zod.z.string()).optional()})).optional(),synthesis:zod.z.object({strategy:zod.z.enum(["merge","sequential","parallel"]).default("merge"),format:zod.z.string().optional(),description:zod.z.string().optional()}).optional(),templates:zod.z.array(zod.z.object({name:zod.z.string(),content:zod.z.string(),outputPath:zod.z.string().optional()})).optional(),aspects:zod.z.array(zod.z.object({name:zod.z.string().default(""),pointcut:zod.z.string().default(""),advice:zod.z.string().default(""),type:zod.z.enum(["before","after","around"]).default("after")})).optional(),metadata:zod.z.record(zod.z.unknown()).optional()}).passthrough(),Bs=zod.z.object({id:zod.z.string(),name:zod.z.string(),trackedIssues:zod.z.array(zod.z.string()).default([]),tracked_issues:zod.z.array(zod.z.string()).optional(),status:zod.z.enum(["active","landed","failed","paused"]).default("active"),startedAt:zod.z.union([zod.z.string(),zod.z.date()]).optional(),started_at:zod.z.union([zod.z.string(),zod.z.date()]).optional(),completedAt:zod.z.union([zod.z.string(),zod.z.date()]).optional(),completed_at:zod.z.union([zod.z.string(),zod.z.date()]).optional(),progress:zod.z.object({total:zod.z.number().int().min(0).default(0),closed:zod.z.number().int().min(0).default(0),inProgress:zod.z.number().int().min(0).default(0),in_progress:zod.z.number().int().min(0).optional(),blocked:zod.z.number().int().min(0).default(0)}).default({total:0,closed:0,inProgress:0,blocked:0}),formula:zod.z.string().optional(),description:zod.z.string().optional()}).passthrough();function Jr(s){if(s.length>k.single)throw K.parseFailed(s.slice(0,100)+"...",new Error(`Output exceeds maximum size of ${k.single} bytes`));let e;try{e=JSON.parse(s);}catch(n){throw K.parseFailed(s,n instanceof Error?n:void 0)}typeof e=="object"&&e!==null&&Ce(e);let r=Es.safeParse(e);if(!r.success)throw K.parseFailed(s,new Error(r.error.errors.map(n=>n.message).join("; ")));let t=r.data;return {id:C(t.id,k.field),title:C(t.title,k.field),description:C(t.description,k.field),status:t.status,priority:Math.max(0,Math.min(100,t.priority)),labels:t.labels.map(n=>C(n,50)).slice(0,20),parentId:t.parentId??t.parent_id,createdAt:De(t.createdAt??t.created_at)??new Date,updatedAt:De(t.updatedAt??t.updated_at)??new Date,assignee:t.assignee?C(t.assignee,64):void 0,rig:t.rig?C(t.rig,32):void 0,blockedBy:(t.blockedBy??t.blocked_by)?.map(n=>C(n,32)),blocks:t.blocks?.map(n=>C(n,32))}}function Ds(s){if(s.length>k.single)throw j.parseFailed("output",`Output exceeds maximum size of ${k.single} bytes`);let e;try{e=JSON.parse(s);}catch(n){throw j.parseFailed("output","Invalid JSON",n instanceof Error?n:void 0)}typeof e=="object"&&e!==null&&Ce(e);let r=_s.safeParse(e);if(!r.success)throw j.parseFailed("output",r.error.errors.map(n=>n.message).join("; "));let t=r.data;return {name:C(t.name,64),description:C(t.description,k.field),type:t.type,version:Math.max(1,t.version),legs:t.legs?.map(n=>({id:C(n.id,64),title:C(n.title,256),focus:C(n.focus,256),description:C(n.description,k.field),agent:n.agent?C(n.agent,64):void 0,order:n.order})),steps:t.steps?.map(n=>({id:C(n.id,64),title:C(n.title,256),description:C(n.description,k.field),needs:n.needs?.map(a=>C(a,64)),duration:n.duration,requires:n.requires?.map(a=>C(a,64)),metadata:n.metadata?Ze(n.metadata):void 0})),vars:t.vars?Os(t.vars):void 0,synthesis:t.synthesis?{strategy:t.synthesis.strategy??"merge",format:t.synthesis.format,description:t.synthesis.description}:void 0,templates:t.templates?.map(n=>({name:C(n.name,64),content:C(n.content,k.field),outputPath:n.outputPath?Vr(n.outputPath):void 0})),aspects:t.aspects?.map(n=>({name:C(n.name??"",64),pointcut:C(n.pointcut??"",256),advice:C(n.advice??"",k.field),type:n.type??"after"})),metadata:t.metadata?Ze(t.metadata):void 0}}function Rs(s){if(s.length>k.single)throw I.createFailed(`Output exceeds maximum size of ${k.single} bytes`);let e;try{e=JSON.parse(s);}catch(n){throw I.createFailed("Invalid JSON",n instanceof Error?n:void 0)}typeof e=="object"&&e!==null&&Ce(e);let r=Bs.safeParse(e);if(!r.success)throw I.createFailed(r.error.errors.map(n=>n.message).join("; "));let t=r.data;return {id:C(t.id,36),name:C(t.name,128),trackedIssues:(t.trackedIssues??t.tracked_issues??[]).map(n=>C(n,32)).slice(0,100),status:t.status,startedAt:De(t.startedAt??t.started_at)??new Date,completedAt:De(t.completedAt??t.completed_at),progress:{total:Math.max(0,t.progress.total),closed:Math.max(0,t.progress.closed),inProgress:Math.max(0,t.progress.inProgress??t.progress.in_progress??0),blocked:Math.max(0,t.progress.blocked)},formula:t.formula?C(t.formula,64):void 0,description:t.description?C(t.description,k.field):void 0}}function Fs(s){if(s.length>k.list)throw K.parseFailed(s.slice(0,100)+"...",new Error(`Output exceeds maximum size of ${k.list} bytes`));let e=s.trim().split(`
|
|
13
|
+
`),r=[],t=[];for(let o=0;o<e.length;o++){let n=e[o]?.trim();if(n)try{let a=Jr(n);r.push(a);}catch(a){t.push(`Line ${o+1}: ${a instanceof Error?a.message:"Unknown error"}`);}}return t.length>0&&console.warn(`[sanitizers] ${t.length} bead(s) failed to parse:`,t.slice(0,3)),r}function Ce(s){for(let e of Object.keys(s)){if(Xe.has(e)||Ye.some(t=>t.test(e))){s[e]="[REDACTED]";continue}let r=s[e];if(typeof r=="object"&&r!==null)if(Array.isArray(r))for(let t of r)typeof t=="object"&&t!==null&&Ce(t);else Ce(r);}}function C(s,e){if(s==null)return "";let r=String(s);return r.length>e&&(r=r.slice(0,e)),r=r.replace(/\0/g,""),r=r.replace(/[\r\n]+/g,`
|
|
14
|
+
`).trim(),r}function Vr(s){let e=C(s,256);return e=e.replace(/\.\.\//g,""),e=e.replace(/\.\.\\/g,""),e=e.replace(/^[\/\\]+/,""),e}function De(s){if(s!=null){if(s instanceof Date)return isNaN(s.getTime())?void 0:s;try{let e=new Date(s);return isNaN(e.getTime())?void 0:e}catch{return}}}function Ze(s){let e={};for(let[r,t]of Object.entries(s)){if(Xe.has(r)||Ye.some(n=>n.test(r)))continue;let o=C(r,64);typeof t=="string"?e[o]=C(t,k.field):typeof t=="number"||typeof t=="boolean"?e[o]=t:Array.isArray(t)?e[o]=t.slice(0,100).map(n=>typeof n=="string"?C(n,256):n):typeof t=="object"&&t!==null&&(e[o]=Ze(t));}return e}function Os(s){let e={};for(let[r,t]of Object.entries(s)){if(Xe.has(r)||Ye.some(n=>n.test(r)))continue;let o=C(r,64);e[o]={name:C(t.name??r,64),description:t.description?C(t.description,256):void 0,default:t.default?C(t.default,256):void 0,required:t.required,pattern:t.pattern?C(t.pattern,256):void 0,enum:t.enum?.map(n=>C(n,64)).slice(0,20)};}return e}var zs={gastown:Fe,gtBridge:{timeout:3e4},bdBridge:{timeout:3e4},syncBridge:{namespace:"gastown:beads",syncInterval:6e4,autoSync:false},formulaExecutor:{useWasm:true,stepTimeout:6e4,maxParallel:4},convoyTracker:{autoUpdateProgress:true,progressUpdateInterval:3e4,persistConvoys:false,storagePath:"./data/convoys"},convoyObserver:{pollInterval:1e4,maxPollAttempts:0,useWasm:true},wasm:{enabled:true,preload:true},gupp:{enabled:false},logger:{level:"info",structured:false}},ht=class{enabled;endpoint;constructor(e){this.enabled=e?.enabled??false,this.endpoint=e?.endpoint;}isAvailable(){return this.enabled&&!!this.endpoint}async pull(e){return this.isAvailable()?(console.warn("[GUPP] Pull not implemented - stub adapter"),[]):[]}async push(e){return this.isAvailable()?(console.warn("[GUPP] Push not implemented - stub adapter"),{pushed:0,errors:["Not implemented"]}):{pushed:0,errors:["GUPP not configured"]}}async sync(){return this.isAvailable()?(console.warn("[GUPP] Sync not implemented - stub adapter"),{pulled:0,pushed:0,conflicts:[]}):{pulled:0,pushed:0,conflicts:[]}}};function Ns(s){let e=s?.level??"info",r={debug:0,info:1,warn:2,error:3},t=r[e],o=(n,a,i)=>{if(r[n]>=t){let l=`[gastown-bridge:${n}]`;s?.structured?JSON.stringify({level:n,msg:a,...i,timestamp:new Date().toISOString()}):`${l}${a}`;}};return {debug:(n,a)=>o("debug",n,a),info:(n,a)=>o("info",n,a),warn:(n,a)=>o("warn",n,a),error:(n,a)=>o("error",n,a)}}var bt=class{initialized=false;async initialize(){try{await V(),await $(),this.initialized=!0;}catch{this.initialized=false;}}isInitialized(){return this.initialized&&oe()}parseFormula(e){let r=e.split(`
|
|
15
|
+
`),t={},o="";for(let n of r){let a=n.trim();if(a.startsWith("#")||a==="")continue;let i=a.match(/^\[([^\]]+)\]$/);if(i){o=i[1],t[o]||(t[o]={});continue}let l=a.match(/^([^=]+)=(.+)$/);if(l){let c=l[1].trim(),m=l[2].trim();m==="true"?m=true:m==="false"?m=false:/^\d+$/.test(m)?m=parseInt(m,10):/^\d+\.\d+$/.test(m)?m=parseFloat(m):m.startsWith('"')&&m.endsWith('"')&&(m=m.slice(1,-1)),o?t[o][c]=m:t[c]=m;}}return {name:t.name||"unknown",description:t.description||"",type:t.type||"workflow",version:t.version||1,steps:t.steps,legs:t.legs,vars:t.vars,metadata:t.metadata}}cookFormula(e,r){let t=a=>{let i=a;for(let[l,c]of Object.entries(r))i=i.replace(new RegExp(`\\{\\{${l}\\}\\}`,"g"),c),i=i.replace(new RegExp(`\\$\\{${l}\\}`,"g"),c);return i},o=a=>{if(typeof a=="string")return t(a);if(Array.isArray(a))return a.map(o);if(a!==null&&typeof a=="object"){let i={};for(let[l,c]of Object.entries(a))i[l]=o(c);return i}return a};return {...o(e),cookedAt:new Date,cookedVars:r,originalName:e.name}}batchCook(e,r){return e.map((t,o)=>this.cookFormula(t,r[o]??{}))}resolveStepDependencies(e){let r=new Map,t=new Map;for(let i of e)r.set(i.id,0),t.set(i.id,[]);for(let i of e)for(let l of i.needs??[])t.get(l)?.push(i.id),r.set(i.id,(r.get(i.id)||0)+1);let o=[];for(let[i,l]of r)l===0&&o.push(i);let n=[];for(;o.length>0;){let i=o.shift();n.push(i);for(let l of t.get(i)||[]){let c=(r.get(l)||0)-1;r.set(l,c),c===0&&o.push(l);}}if(n.length!==e.length){let i=e.filter(l=>!n.includes(l.id)).map(l=>l.id);throw new f("Cycle detected in step dependencies",y.DEPENDENCY_CYCLE,{cycleNodes:i})}let a=new Map(e.map(i=>[i.id,i]));return n.map(i=>a.get(i)).filter(i=>i!==void 0)}detectCycle(e){let n=new Map,a=new Map;for(let c of e)n.set(c.id,c.needs??[]),a.set(c.id,0);let i=[],l=(c,m)=>{a.set(c,1),m.push(c);for(let g of n.get(c)||[]){if(a.get(g)===1){let h=m.indexOf(g);return i.push(...m.slice(h)),true}if(a.get(g)===0&&l(g,m))return true}return a.set(c,2),m.pop(),false};for(let c of e)if(a.get(c.id)===0&&l(c.id,[]))break;return {hasCycle:i.length>0,cycleSteps:i.length>0?[...new Set(i)]:void 0}}},Qe=class extends events.EventEmitter{name="@claude-flow/plugin-gastown-bridge";version="0.1.0";description="Gas Town orchestrator integration with WASM-accelerated formula parsing and graph analysis";config;pluginContext=null;logger;gtBridge=null;bdBridge=null;syncBridge=null;formulaExecutor=null;convoyTracker=null;convoyObserver=null;wasmLoader=null;guppAdapter=null;wasmInitialized=false;cliAvailable=false;initialized=false;constructor(e){super(),this.config=this.mergeConfig(zs,e),this.logger=Ns(this.config.logger);}async register(e){this.pluginContext=e,e.set("gastown-bridge",this),e.set("gt.version",this.version),e.set("gt.capabilities",this.getCapabilities()),this.logger.info("Plugin registered",{version:this.version});}async initialize(e){if(this.initialized)return {success:true};try{return this.logger.info("Initializing Gas Town Bridge Plugin..."),this.config.wasm?.enabled&&await this.initializeWasm(),this.cliAvailable=await this.checkCliAvailable(),this.cliAvailable||this.logger.warn("CLI tools (gt, bd) not found. Some features will be unavailable."),await this.initializeBridges(),await this.initializeFormulaExecutor(),await this.initializeConvoyComponents(),this.initializeGuppAdapter(),e.set("gt.config",this.config),e.set("gt.wasmReady",this.wasmInitialized),e.set("gt.cliAvailable",this.cliAvailable),e.set("gt.bridges",{gt:this.gtBridge,bd:this.bdBridge,sync:this.syncBridge}),e.set("gt.executor",this.formulaExecutor),e.set("gt.tracker",this.convoyTracker),e.set("gt.observer",this.convoyObserver),e.set("gt.gupp",this.guppAdapter),this.initialized=!0,this.emit("initialized"),this.logger.info("Plugin initialized successfully",{wasmReady:this.wasmInitialized,cliAvailable:this.cliAvailable,toolCount:this.getMCPTools().length}),{success:!0}}catch(r){let t=r instanceof Error?r.message:"Unknown error";return this.logger.error("Failed to initialize plugin",{error:t}),{success:false,error:t}}}async shutdown(e){try{return this.logger.info("Shutting down Gas Town Bridge Plugin..."),this.convoyObserver&&(this.convoyObserver.dispose(),this.convoyObserver=null),this.convoyTracker&&(this.convoyTracker.dispose(),this.convoyTracker=null),this.syncBridge&&(this.syncBridge=null),this.gtBridge=null,this.bdBridge=null,this.wasmLoader=null,this.wasmInitialized=!1,this.pluginContext=null,this.initialized=!1,this.emit("shutdown"),this.removeAllListeners(),this.logger.info("Plugin shutdown complete"),{success:!0}}catch(r){let t=r instanceof Error?r.message:"Unknown error";return this.logger.error("Failed to shutdown plugin",{error:t}),{success:false,error:t}}}getCapabilities(){return ["beads-integration","convoy-tracking","formula-parsing","formula-cooking","formula-execution","wasm-acceleration","dependency-resolution","topological-sort","cycle-detection","critical-path","agentdb-sync","sling-operations","gupp-adapter"]}getMCPTools(){return ve.map(e=>this.convertMcpTool(e))}getHooks(){return [this.createPreTaskHook(),this.createPostTaskHook(),this.createBeadsSyncHook(),this.createConvoyProgressHook()]}getConfig(){return {...this.config}}updateConfig(e){this.config=this.mergeConfig(this.config,e),this.config.gastown&&(this.config.gastown=xt({...Fe,...this.config.gastown}));}isWasmReady(){return this.wasmInitialized}isCliAvailable(){return this.cliAvailable}getBridges(){return {gt:this.gtBridge,bd:this.bdBridge,sync:this.syncBridge}}getFormulaExecutor(){return this.formulaExecutor}getConvoyTracker(){return this.convoyTracker}getConvoyObserver(){return this.convoyObserver}getGuppAdapter(){return this.guppAdapter}getMetadata(){return {name:this.name,version:this.version,description:this.description,author:"rUv",license:"MIT",repository:"https://github.com/ruvnet/claude-flow",keywords:["claude-flow","plugin","gastown","beads","orchestration","workflows","formulas","wasm","multi-agent"],mcpTools:ve.map(e=>e.name),capabilities:this.getCapabilities()}}mergeConfig(e,r){return r?{gastown:{...e.gastown,...r.gastown},gtBridge:{...e.gtBridge,...r.gtBridge},bdBridge:{...e.bdBridge,...r.bdBridge},syncBridge:{...e.syncBridge,...r.syncBridge},formulaExecutor:{...e.formulaExecutor,...r.formulaExecutor},convoyTracker:{...e.convoyTracker,...r.convoyTracker},convoyObserver:{...e.convoyObserver,...r.convoyObserver},wasm:{...e.wasm,...r.wasm},gupp:{...e.gupp,...r.gupp},logger:{...e.logger,...r.logger}}:{...e}}async initializeWasm(){try{if(this.wasmLoader=new bt,this.config.wasm?.preload&&await He(),await this.wasmLoader.initialize(),this.wasmInitialized=this.wasmLoader.isInitialized(),this.wasmInitialized){let e=await Ke();this.logger.info("WASM modules initialized",{versions:e});}}catch(e){this.logger.warn("WASM initialization failed, using JS fallback",{error:e instanceof Error?e.message:String(e)}),this.wasmInitialized=false;}}async checkCliAvailable(){try{let{exec:e}=await import('child_process'),{promisify:r}=await import('util'),t=r(e);return await t("which gt"),await t("which bd"),!0}catch{return false}}async initializeBridges(){this.gtBridge=chunkJU7XR5TR_cjs.p({gtPath:this.config.gtBridge?.gtPath,timeout:this.config.gtBridge?.timeout,cwd:this.config.gtBridge?.cwd}),await this.gtBridge.initialize(),this.bdBridge=chunkJU7XR5TR_cjs.w({bdPath:this.config.bdBridge?.bdPath,timeout:this.config.bdBridge?.timeout,cwd:this.config.bdBridge?.cwd}),await this.bdBridge.initialize();let e=this.createStubAgentDB();this.syncBridge=chunkJU7XR5TR_cjs.D(e,{beadsBridge:this.config.bdBridge,agentdbNamespace:this.config.syncBridge?.namespace??"gastown:beads"}),this.logger.debug("Bridges initialized");}async initializeFormulaExecutor(){if(!this.gtBridge)throw new f("GtBridge not initialized",y.NOT_INITIALIZED);let e=this.config.formulaExecutor?.useWasm&&this.wasmLoader?this.wasmLoader:void 0;this.formulaExecutor=nt(this.gtBridge,e,this.logger),this.logger.debug("Formula executor initialized",{wasmEnabled:!!e});}async initializeConvoyComponents(){if(!this.bdBridge)throw new f("BdBridge not initialized",y.NOT_INITIALIZED);this.convoyTracker=it({bdBridge:this.bdBridge,autoUpdateProgress:this.config.convoyTracker?.autoUpdateProgress,progressUpdateInterval:this.config.convoyTracker?.progressUpdateInterval,persistConvoys:this.config.convoyTracker?.persistConvoys,storagePath:this.config.convoyTracker?.storagePath},this.logger),this.convoyObserver=ct({bdBridge:this.bdBridge,tracker:this.convoyTracker,pollInterval:this.config.convoyObserver?.pollInterval,maxPollAttempts:this.config.convoyObserver?.maxPollAttempts,useWasm:this.config.convoyObserver?.useWasm},this.logger),this.logger.debug("Convoy components initialized");}initializeGuppAdapter(){this.guppAdapter=new ht(this.config.gupp),this.logger.debug("GUPP adapter initialized",{enabled:this.guppAdapter.isAvailable()});}createStubAgentDB(){let e=new Map;return {async store(r,t,o,n){let a=o??"default";e.has(a)||e.set(a,new Map),e.get(a).set(r,{key:r,value:t,namespace:a,metadata:n,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),version:1});},async retrieve(r,t){let o=t??"default";return e.get(o)?.get(r)??null},async search(r,t,o){let n=t??"default",a=e.get(n);return a?Array.from(a.values()).slice(0,o??100):[]},async list(r,t,o){let n=r??"default",a=e.get(n);return a?Array.from(a.values()).slice(o??0,(o??0)+(t??100)):[]},async delete(r,t){let o=t??"default";e.get(o)?.delete(r);},async getNamespaceStats(r){let t=e.get(r);if(!t)return {count:0};let o=Array.from(t.values()),n=o.length>0?o.reduce((a,i)=>i.updatedAt&&i.updatedAt>(a??"")?i.updatedAt:a,void 0):void 0;return {count:o.length,lastUpdated:n}}}}convertMcpTool(e){return {name:e.name,description:e.description,category:e.category,version:e.version,inputSchema:this.zodToJsonSchema(e.inputSchema),handler:async(r,t)=>{let o=this.createToolContext(t);return await e.handler(r,o)}}}zodToJsonSchema(e){try{let r=e;if(r._def?.shape){let t=r._def.shape(),o={},n=[];for(let[a,i]of Object.entries(t)){let c=i._def?.typeName??"ZodString",m="string";c.includes("Number")?m="number":c.includes("Boolean")?m="boolean":c.includes("Array")?m="array":c.includes("Object")&&(m="object"),o[a]={type:m},!c.includes("Optional")&&!c.includes("Default")&&n.push(a);}return {type:"object",properties:o,required:n.length>0?n:void 0}}}catch{}return {type:"object",properties:{}}}createToolContext(e){let r=this.config.gastown??Fe;return {get:t=>e.get(t),set:(t,o)=>e.set(t,o),bridges:{gastown:this.createBridgeFacade(),beadsSync:this.createSyncFacade(),formulaWasm:this.createFormulaWasmFacade(),dependencyWasm:this.createDependencyWasmFacade()},config:{townRoot:r.townRoot??"",allowedRigs:[],maxBeadsLimit:100,maskSecrets:true,enableWasm:this.wasmInitialized}}}createBridgeFacade(){let e=this.gtBridge,r=this.bdBridge,t=this.convoyTracker,o=this.wasmLoader;return {async createBead(n){if(!r)throw new f("BdBridge not initialized",y.NOT_INITIALIZED);let a={type:"prompt",content:n.description??n.title,parentId:n.parent,agentId:n.assignee,tags:n.labels},i=await r.createBead(a);return {id:i.id,title:i.content.slice(0,100),description:i.content,status:"open",priority:0,labels:i.tags??[],createdAt:i.timestamp?new Date(i.timestamp):new Date,updatedAt:i.timestamp?new Date(i.timestamp):new Date,parentId:i.parentId,assignee:i.agentId}},async getReady(n,a,i){if(!r)throw new f("BdBridge not initialized",y.NOT_INITIALIZED);return (await r.listBeads({limit:n})).map(c=>({id:c.id,title:c.content.slice(0,100),description:c.content,status:"open",priority:0,labels:c.tags??[],createdAt:c.timestamp?new Date(c.timestamp):new Date,updatedAt:c.timestamp?new Date(c.timestamp):new Date,parentId:c.parentId,assignee:c.agentId}))},async showBead(n){if(!r)throw new f("BdBridge not initialized",y.NOT_INITIALIZED);let a=await r.getBead(n);return {bead:{id:a.id,title:a.content.slice(0,100),description:a.content,status:"open",priority:0,labels:a.tags??[],createdAt:new Date,updatedAt:new Date},dependencies:a.parentId?[a.parentId]:[],dependents:[]}},async manageDependency(n,a,i){if(!r)throw new f("BdBridge not initialized",y.NOT_INITIALIZED);n==="add"?await r.execBd(["update",a,"--parent",i]):await r.execBd(["update",a,"--remove-parent",i]);},async createConvoy(n){if(!t)throw new f("ConvoyTracker not initialized",y.NOT_INITIALIZED);return t.create(n.name,n.issues,n.description)},async getConvoyStatus(n,a){if(!t)throw new f("ConvoyTracker not initialized",y.NOT_INITIALIZED);return n?[await t.getStatus(n)]:t.listConvoys()},async trackConvoy(n,a,i){if(!t)throw new f("ConvoyTracker not initialized",y.NOT_INITIALIZED);a==="add"?await t.addIssues(n,i):await t.removeIssues(n,i);},async listFormulas(n,a){return []},async cookFormula(n,a){if(o?.isInitialized()){let i=typeof n=="string"?o.parseFormula(n):n;return o.cookFormula(i,a)}throw new f("WASM not initialized for formula cooking",y.NOT_INITIALIZED)},async executeFormula(n,a,i,l){throw new f("Use FormulaExecutor.execute() for formula execution",y.NOT_INITIALIZED)},async createFormula(n){throw new f("Formula creation not implemented in bridge layer",y.NOT_INITIALIZED)},async sling(n,a,i,l){if(!e)throw new f("GtBridge not initialized",y.NOT_INITIALIZED);let c=["tx","sling","--bead",n,"--target",a];i&&c.push("--formula",i),l!==void 0&&c.push("--priority",String(l)),await e.execGt(c);},async listAgents(n,a,i){return []},async sendMail(n,a,i){if(!e)throw new f("GtBridge not initialized",y.NOT_INITIALIZED);return (await e.execGt(["tx","mail","--to",n,"--subject",a,"--body",i,"--json"])).data??"unknown"},async readMail(n){if(!e)throw new f("GtBridge not initialized",y.NOT_INITIALIZED);let a=await e.execGt(["tx","mail","read",n,"--json"]);if(a.success&&a.data){let i=e.parseGtOutput(a.data);return {id:i.id,from:i.from,to:i.to??"",subject:i.subject,body:i.body,sentAt:new Date(i.timestamp),read:true}}throw new f(`Failed to read mail: ${n}`,y.NOT_INITIALIZED)},async listMail(n){if(!e)throw new f("GtBridge not initialized",y.NOT_INITIALIZED);let a=["tx","mail","list","--json"];n!==void 0&&a.push("--limit",String(n));let i=await e.execGt(a);return i.success&&i.data?e.parseGtOutput(i.data).map(c=>({id:c.id,from:c.from,to:c.to??"",subject:c.subject,body:c.body??"",sentAt:new Date(c.timestamp),read:false})):[]}}}createSyncFacade(){let e=this.syncBridge,r=this.bdBridge;return {async pullBeads(t,o){return e?{synced:(await e.syncFromAgentDB()).length,conflicts:e.getPendingConflicts().length}:{synced:0,conflicts:0}},async pushTasks(t){if(!e||!r)return {pushed:0,conflicts:0};let o=await r.listBeads({}),n=await e.syncToAgentDB(o);return {pushed:n.synced,conflicts:n.conflicts}}}}createFormulaWasmFacade(){let e=this.wasmLoader;return {isInitialized:()=>e?.isInitialized()??false,async initialize(){e&&await e.initialize();},async parseFormula(r,t){if(!e)throw new f("WASM not initialized",y.NOT_INITIALIZED);return e.parseFormula(r)},async cookFormula(r,t,o){if(!e)throw new f("WASM not initialized",y.NOT_INITIALIZED);let n=typeof r=="string"?e.parseFormula(r):r;return e.cookFormula(n,t)},async cookBatch(r,t,o){if(!e)throw new f("WASM not initialized",y.NOT_INITIALIZED);let n=r.map(i=>e.parseFormula(i.content));return {cooked:e.batchCook(n,t),errors:[]}}}}createDependencyWasmFacade(){let e=this.wasmLoader,r=this.simpleSimilarity.bind(this);return {isInitialized:()=>e?.isInitialized()??false,async initialize(){e&&await e.initialize();},async resolveDependencies(t,o){if(!e)throw new f("WASM not initialized",y.NOT_INITIALIZED);let n=t.map(a=>({id:a.id,title:a.id,description:"",needs:a.dependencies??[]}));if(o==="topo_sort")try{let a=e.resolveStepDependencies(n);return {action:o,sorted:a.map(i=>i.id),hasCycle:!1,cycleNodes:void 0}}catch(a){if(a instanceof f&&a.code===y.DEPENDENCY_CYCLE){let i=a.context?.cycleNodes??[];return {action:o,sorted:[],hasCycle:true,cycleNodes:i}}throw a}else if(o==="cycle_detect"){let a=e.detectCycle(n);return {action:o,hasCycle:a.hasCycle,cycleNodes:a.cycleSteps}}else {let a=t.map(c=>c.id),i=t.flatMap(c=>(c.dependencies??[]).map(m=>({from:m,to:c.id}))),l=await qe(a,i,[]);return {action:o,criticalPath:l.path,totalDuration:l.totalDuration}}},async matchPatterns(t,o,n,a){return o.map((l,c)=>({index:c,candidate:l,similarity:r(t,l)})).filter(l=>l.similarity>=a).sort((l,c)=>c.similarity-l.similarity).slice(0,n)},async optimizeConvoy(t,o,n){if(!e)throw new f("WASM not initialized",y.NOT_INITIALIZED);let a=t.trackedIssues.map(c=>({id:c,title:c,description:"",needs:[]})),l=e.resolveStepDependencies(a).map(c=>c.id);return {convoyId:t.id,strategy:o,executionOrder:l,parallelGroups:[l],estimatedDuration:t.trackedIssues.length*1e3}}}}simpleSimilarity(e,r){let t=new Set(e.toLowerCase().split(/\s+/)),o=new Set(r.toLowerCase().split(/\s+/)),n=new Set([...t].filter(i=>o.has(i))),a=new Set([...t,...o]);return n.size/a.size}createPreTaskHook(){return {name:"gt/pre-task",event:"pre-task",priority:50,description:"Check for related beads before task execution",handler:async(e,r)=>(this.config.gastown?.autoCreateBeads&&this.logger.debug("Pre-task hook: checking for related beads"),r)}}createPostTaskHook(){return {name:"gt/post-task",event:"post-task",priority:50,description:"Update bead status after task completion",handler:async(e,r)=>(this.config.gastown?.autoCreateBeads&&this.logger.debug("Post-task hook: updating bead status"),r)}}createBeadsSyncHook(){return {name:"gt/beads-sync",event:"session-start",priority:100,description:"Sync beads with AgentDB on session start",handler:async(e,r)=>{if(this.config.gastown?.enableBeadsSync&&this.syncBridge){this.logger.info("Beads sync triggered on session start");try{await this.syncBridge.syncBidirectional();}catch(t){this.logger.warn("Beads sync failed",{error:t instanceof Error?t.message:String(t)});}}return r}}}createConvoyProgressHook(){return {name:"gt/convoy-progress",event:"task-complete",priority:60,description:"Update convoy progress when tasks complete",handler:async(e,r)=>{if(this.convoyTracker){let t=this.convoyTracker.listConvoys("active");for(let o of t)try{await this.convoyTracker.getStatus(o.id);}catch{}}return r}}}};function ci(s){return new Qe(s)}var di=Qe;
|
|
16
|
+
Object.defineProperty(exports,"AddressSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.k}});Object.defineProperty(exports,"AgentDBEntrySchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.A}});Object.defineProperty(exports,"BdArgumentSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.t}});Object.defineProperty(exports,"BdBridge",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.v}});Object.defineProperty(exports,"BdBridgeError",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.u}});Object.defineProperty(exports,"BeadIdSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.q}});Object.defineProperty(exports,"CliBeadSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.s}});Object.defineProperty(exports,"CliBeadTypeSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.r}});Object.defineProperty(exports,"CliSyncDirectionSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.y}});Object.defineProperty(exports,"ConflictStrategySchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.x}});Object.defineProperty(exports,"GasLimitSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.i}});Object.defineProperty(exports,"GasPriceSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.h}});Object.defineProperty(exports,"GtArgumentSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.m}});Object.defineProperty(exports,"GtBridge",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.o}});Object.defineProperty(exports,"GtBridgeError",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.n}});Object.defineProperty(exports,"GtIdentifierSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.g}});Object.defineProperty(exports,"GtSafeStringSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.f}});Object.defineProperty(exports,"NetworkSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.l}});Object.defineProperty(exports,"SyncBridge",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.C}});Object.defineProperty(exports,"SyncBridgeError",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.B}});Object.defineProperty(exports,"SyncStatusSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.z}});Object.defineProperty(exports,"TxHashSchema",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.j}});Object.defineProperty(exports,"createBdBridge",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.w}});Object.defineProperty(exports,"createGtBridge",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.p}});Object.defineProperty(exports,"createSyncBridge",{enumerable:true,get:function(){return chunkJU7XR5TR_cjs.D}});exports.Arena=te;exports.ArenaManager=Se;exports.AspectSchema=no;exports.BEAD_ID_PATTERN=Or;exports.BeadIdValidationSchema=we;exports.BeadSchema=Yr;exports.BeadStatusSchema=Zr;exports.BeadsError=K;exports.CLIExecutionError=Oe;exports.CONVOY_HASH_PATTERN=Nr;exports.ConvoyError=I;exports.ConvoyIdSchema=yt;exports.ConvoyObserver=Ie;exports.ConvoyProgressSchema=lo;exports.ConvoySchema=co;exports.ConvoyStatusSchema=io;exports.ConvoyTracker=je;exports.CreateBeadOptionsSchema=Xr;exports.CreateConvoyOptionsSchema=rt;exports.DEFAULT_CONFIG=Fe;exports.ErrorCodes=y;exports.FORMULA_NAME_PATTERN=Lr;exports.FormulaError=j;exports.FormulaExecutor=Ue;exports.FormulaNameSchema=Be;exports.FormulaSchema=ao;exports.FormulaTypeSchema=Qr;exports.GasTownAgentRoleSchema=mn;exports.GasTownBridgePlugin=Qe;exports.GasTownConfigSchema=po;exports.GasTownError=f;exports.GasTownErrorCodes=un;exports.GtArgsSchema=Gr;exports.LabelsSchema=jr;exports.Lazy=J;exports.LazyBridge=Ne;exports.LazyModule=ze;exports.LazyObserver=be;exports.LazyWasm=me;exports.LegSchema=to;exports.MAX_LENGTHS=F;exports.MAX_OUTPUT_SIZE=k;exports.MemoryBudgetManager=Te;exports.MemoryMonitor=Y;exports.ObjectPool=_;exports.PATH_TRAVERSAL_PATTERNS=_e;exports.PooledBead=se;exports.PooledConvoy=ie;exports.PooledFormula=ae;exports.PooledMolecule=le;exports.PooledStep=ne;exports.PrioritySchema=ft;exports.REDACTED_FIELDS=Xe;exports.RigNameSchema=Ur;exports.SENSITIVE_FIELD_PATTERNS=Ye;exports.SHELL_METACHARACTERS=q;exports.SlingOptionsSchema=mo;exports.SlingTargetSchema=uo;exports.StepSchema=eo;exports.SyncDirectionSchema=pn;exports.SynthesisSchema=oo;exports.TemplateSchema=so;exports.UUID_PATTERN=zr;exports.ValidationError=D;exports.ValidatorSafeStringSchema=ms;exports.VarSchema=ro;exports.WasmLoader=is;exports.acquireBead=ko;exports.acquireConvoy=Do;exports.acquireFormula=_o;exports.acquireMolecule=Fo;exports.acquireStep=Ao;exports.arenaManager=Z;exports.beadPool=N;exports.clearAllPools=de;exports.clearPerformanceLog=jt;exports.containsPathTraversal=Ps;exports.containsShellMetacharacters=xs;exports.convoyPool=ee;exports.cookBatch=$t;exports.cookFormula=gt;exports.createConvoyObserver=ct;exports.createConvoyTracker=it;exports.createFormulaExecutor=nt;exports.createGasTownBridgePlugin=ci;exports.createLazyConvoyObserver=qo;exports.createLazyProperty=Lt;exports.criticalPath=qe;exports.default=di;exports.detectCycles=Ht;exports.disposeAllLazySingletons=xe;exports.disposeDefaultMonitor=Rt;exports.disposeLazySingleton=Ot;exports.formulaPool=X;exports.gasTownBridgeTools=ve;exports.getAllPoolStats=ce;exports.getDefaultMonitor=Dt;exports.getErrorMessage=vo;exports.getLazyObserverStats=Ho;exports.getLazySingleton=Ft;exports.getMemoryMonitor=Io;exports.getMemoryReport=So;exports.getMemoryUsage=Et;exports.getPerformanceLog=Ut;exports.getPoolEfficiencySummary=fe;exports.getSystemMemoryStats=zt;exports.getTool=ds;exports.getToolsByLayer=us;exports.getTotalMemorySaved=It;exports.getWasmVersions=Ke;exports.initializeMemorySystem=Co;exports.isBeadsError=ho;exports.isCLIExecutionError=fo;exports.isGasTownError=go;exports.isMemorySystemInitialized=Po;exports.isSafeArgument=Is;exports.isValidBeadId=ks;exports.isValidConvoyId=As;exports.isValidFormulaName=Ms;exports.isValidationError=yo;exports.isWasmAvailable=oe;exports.loadFormulaWasm=V;exports.loadGnnWasm=$;exports.memoryBudget=ue;exports.moleculePool=R;exports.onMemoryPressure=Bt;exports.parseDate=De;exports.parseFormula=Vt;exports.preWarmAllPools=Le;exports.preloadWasmModules=He;exports.redactSensitiveFields=Ce;exports.releaseBead=Mo;exports.releaseConvoy=Ro;exports.releaseFormula=Bo;exports.releaseMolecule=Oo;exports.releaseStep=Eo;exports.resetWasmCache=Kt;exports.sanitizeBeadOutput=Jr;exports.sanitizeBeadsListOutput=Fs;exports.sanitizeConvoyOutput=Rs;exports.sanitizeFormulaOutput=Ds;exports.sanitizeMetadata=Ze;exports.sanitizePath=Vr;exports.sanitizeString=C;exports.scopedArena=kt;exports.setMemoryLimit=_t;exports.shutdownMemorySystem=xo;exports.stepPool=Q;exports.toolCategories=cs;exports.toolHandlers=ls;exports.topoSort=qt;exports.triggerMemoryCleanup=To;exports.validateBead=gn;exports.validateBeadId=gs;exports.validateBeadOptions=Cs;exports.validateConfig=xt;exports.validateConvoy=hn;exports.validateConvoyId=fs;exports.validateConvoyOptions=Ss;exports.validateCreateBeadOptions=yn;exports.validateCreateConvoyOptions=bn;exports.validateFormula=fn;exports.validateFormulaName=ys;exports.validateGtArgs=hs;exports.validateSling=Ts;exports.validateSlingOptions=vn;exports.withArena=Mt;exports.withArenaSync=At;exports.wrapError=bo;//# sourceMappingURL=index.cjs.map
|
|
17
|
+
//# sourceMappingURL=index.cjs.map
|