@duckmind/dm-darwin-x64 0.49.8 → 0.49.9
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/dm +0 -0
- package/extensions/.dm-extensions.json +44 -15
- package/extensions/dm-cliproxy/NOTICE.md +12 -0
- package/extensions/dm-cliproxy/index.js +2 -0
- package/extensions/dm-cliproxy/package.json +20 -0
- package/extensions/dm-cliproxy/scripts/check-config-migration.js +10 -0
- package/extensions/dm-cliproxy/src/apply.js +1 -0
- package/extensions/dm-cliproxy/src/cache.js +1 -0
- package/extensions/dm-cliproxy/src/commands.js +2 -0
- package/extensions/dm-cliproxy/src/compat.js +1 -0
- package/extensions/dm-cliproxy/src/config.js +2 -0
- package/extensions/dm-cliproxy/src/conflicts.js +1 -0
- package/extensions/dm-cliproxy/src/fetch-models.js +1 -0
- package/extensions/dm-cliproxy/src/fetch-usage.js +1 -0
- package/extensions/dm-cliproxy/src/log.js +1 -0
- package/extensions/dm-cliproxy/src/status-quota.js +1 -0
- package/extensions/dm-cliproxy/src/ui-frame.js +1 -0
- package/extensions/dm-cliproxy/src/ui-hub/hub.js +2 -0
- package/extensions/dm-cliproxy/src/ui-hub/index.js +2 -0
- package/extensions/dm-cliproxy/src/ui-hub/shell.js +1 -0
- package/extensions/dm-cliproxy/src/ui-hub/types.js +0 -0
- package/extensions/dm-cliproxy/src/ui-hub/view-diagnostics.js +1 -0
- package/extensions/dm-cliproxy/src/ui-hub/view-models.js +1 -0
- package/extensions/dm-cliproxy/src/ui-hub/view-usage.js +1 -0
- package/extensions/dm-cliproxy/src/ui-picker/catalog.js +1 -0
- package/extensions/dm-cliproxy/src/ui-picker/mutate.js +1 -0
- package/extensions/dm-cliproxy/src/ui-picker/prompt-confirm.js +1 -0
- package/extensions/dm-cliproxy/src/ui-picker/prompt-name.js +1 -0
- package/extensions/dm-cliproxy/src/ui-picker/providers.js +1 -0
- package/extensions/dm-cliproxy/src/ui-picker/render-text.js +1 -0
- package/extensions/dm-cliproxy/src/ui-picker/rows.js +1 -0
- package/extensions/dm-cliproxy/src/ui-picker/types.js +0 -0
- package/extensions/dm-cliproxy/src/ui-setup.js +2 -0
- package/extensions/dm-cliproxy/src/ui-usage.js +1 -0
- package/extensions/dm-cliproxy/src/usage-shared-cache.js +1 -0
- package/extensions/dm-subagents/src/extension/doctor.js +10 -10
- package/extensions/dm-subagents/src/extension/fanout-child.js +129 -129
- package/extensions/dm-subagents/src/extension/index.js +179 -179
- package/extensions/dm-subagents/src/extension/rpc.js +5 -5
- package/extensions/dm-subagents/src/extension/schemas.js +1 -1
- package/extensions/dm-subagents/src/extension/tool-description.js +2 -2
- package/extensions/dm-subagents/src/intercom/native-supervisor-channel.js +5 -5
- package/extensions/dm-subagents/src/runs/background/async-execution.js +19 -19
- package/extensions/dm-subagents/src/runs/background/async-job-tracker.js +10 -10
- package/extensions/dm-subagents/src/runs/background/async-resume.js +5 -5
- package/extensions/dm-subagents/src/runs/background/async-status.js +8 -8
- package/extensions/dm-subagents/src/runs/background/fleet-view.js +14 -14
- package/extensions/dm-subagents/src/runs/background/result-watcher.js +5 -5
- package/extensions/dm-subagents/src/runs/background/run-id-resolver.js +3 -3
- package/extensions/dm-subagents/src/runs/background/run-status.js +20 -20
- package/extensions/dm-subagents/src/runs/background/stale-run-reconciler.js +7 -7
- package/extensions/dm-subagents/src/runs/background/subagent-runner.js +38 -38
- package/extensions/dm-subagents/src/runs/background/wait.js +7 -7
- package/extensions/dm-subagents/src/runs/foreground/chain-execution.js +58 -58
- package/extensions/dm-subagents/src/runs/foreground/execution.js +36 -36
- package/extensions/dm-subagents/src/runs/foreground/subagent-executor.js +129 -129
- package/extensions/dm-subagents/src/runs/shared/dm-args.js +1 -1
- package/extensions/dm-subagents/src/runs/shared/nested-events.js +6 -6
- package/extensions/dm-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -13
- package/package.json +1 -1
- package/extensions/dm-9router-ext/package.json +0 -23
- package/extensions/dm-9router-ext/src/index.js +0 -5
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import*as P from"node:fs";import*as
|
|
1
|
+
import*as P from"node:fs";import*as Y$ from"node:path";import{execSync as M1}from"node:child_process";import*as N from"node:fs";import*as S$ from"node:os";import*as A from"node:path";import{fileURLToPath as E1}from"node:url";import*as R from"node:fs";import*as Q$ from"node:os";import*as I from"node:path";import{execSync as f0}from"node:child_process";import*as F from"node:fs";import*as o from"node:os";import*as V from"node:path";var l=null,b0=5000,k0="dm-subagents",h={project:700,"project-settings":650,"project-package":600,user:300,"user-settings":250,"user-package":200,extension:150,builtin:100,unknown:0};function b($,J){let W=V.relative(J,$);return W===""||!W.startsWith("..")&&!V.isAbsolute(W)}function f$($,J){try{return JSON.parse(F.readFileSync($,"utf-8"))}catch(W){if((typeof W==="object"&&W!==null&&"code"in W?W.code:void 0)==="ENOENT")return null;let Q=W instanceof Error?W.message:String(W);throw Error(`Failed to read ${J} '${$}': ${Q}`,{cause:W instanceof Error?W:void 0})}}function P0($){try{return JSON.parse(F.readFileSync($,"utf-8"))}catch{return null}}function j$($,J,W=!1){let Z=V.join($,"package.json"),Q=W?P0(Z):f$(Z,"package manifest");if(!Q||typeof Q!=="object"||Array.isArray(Q))return[];let X=Q.pi;if(!X||typeof X!=="object"||Array.isArray(X))return[];let H=X.skills;if(!Array.isArray(H))return[];return H.filter((K)=>typeof K==="string").map((K)=>({path:V.resolve($,K),source:J}))}var Z$=null;function l$(){if(Z$!==null)return Z$;try{return Z$=f0("npm root -g",{encoding:"utf-8",timeout:5000}).trim(),Z$}catch{return Z$="",null}}function v0($,J){let W=E($),Z=[{path:V.join(W,"npm","node_modules"),source:"project-package"},{path:V.join(J,"npm","node_modules"),source:"user-package"}],Q=l$();if(Q)Z.push({path:Q,source:"user-package"});let X=[];for(let H of Z){if(!F.existsSync(H.path))continue;let K;try{K=F.readdirSync(H.path,{withFileTypes:!0})}catch{continue}for(let q of K){if(q.name.startsWith("."))continue;if(!q.isDirectory()&&!q.isSymbolicLink())continue;if(q.name.startsWith("@")){let G=V.join(H.path,q.name),Y;try{Y=F.readdirSync(G,{withFileTypes:!0})}catch{continue}for(let B of Y){if(B.name.startsWith("."))continue;if(!B.isDirectory()&&!B.isSymbolicLink())continue;let z=V.join(G,B.name);X.push(...j$(z,H.source,!0))}continue}let U=V.join(H.path,q.name);X.push(...j$(U,H.source,!0))}}return X}function h0($,J){let W=[],Z=E($),Q=[{file:V.join(Z,"settings.json"),base:Z,source:"project-settings"},{file:V.join(J,"settings.json"),base:J,source:"user-settings"}];for(let{file:X,base:H,source:K}of Q){let q=f$(X,"skills settings file");if(!q||typeof q!=="object"||Array.isArray(q))continue;let U=q.skills;if(!Array.isArray(U))continue;for(let G of U){if(typeof G!=="string")continue;let Y=G;if(Y.startsWith("~/"))Y=V.join(o.homedir(),Y.slice(2));else if(!V.isAbsolute(Y))Y=V.resolve(H,Y);W.push({path:Y,source:K})}}return W}function x$($){return $.length>0&&!V.isAbsolute($)&&$.split(/[\\/]/).every((J)=>J.length>0&&J!=="."&&J!=="..")}function g0($){let J=$.slice(4).trim();if(!J)return;let Z=J.match(/^(@?[^@]+(?:\/[^@]+)?)(?:@(.+))?$/)?.[1]??J;return x$(Z)?Z:void 0}function m0($){let J=$.indexOf("@"),W=$.indexOf("#"),Z=[J,W].filter((Q)=>Q>=0).sort((Q,X)=>Q-X)[0];return Z===void 0?$:$.slice(0,Z)}function c0($){let J=$.slice(4).trim();if(!J)return;let W="",Z="",Q=J.match(/^git@([^:]+):(.+)$/);if(Q)W=Q[1]??"",Z=Q[2]??"";else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(J))try{let H=new URL(J);W=H.hostname,Z=H.pathname.replace(/^\/+/,"")}catch{return}else{let H=J.indexOf("/");if(H<0)return;W=J.slice(0,H),Z=J.slice(H+1)}let X=m0(Z).replace(/\.git$/,"").replace(/^\/+/,"");if(!W||!x$(W)||!x$(X)||X.split(/[\\/]/).length<2)return;return{host:W,repoPath:X}}function u0($,J){let W=$.trim();if(!W)return;if(W.startsWith("git:")){let Q=c0(W);return Q?V.join(J,"git",Q.host,Q.repoPath):void 0}if(W.startsWith("npm:")){let Q=g0(W);return Q?V.join(J,"npm","node_modules",Q):void 0}let Z=W.startsWith("file:")?W.slice(5):W;if(Z==="~")return o.homedir();if(Z.startsWith("~/"))return V.join(o.homedir(),Z.slice(2));if(V.isAbsolute(Z))return Z;if(Z==="."||Z===".."||Z.startsWith("./")||Z.startsWith("../"))return V.resolve(J,Z);return}function p0($,J){let W=E($),Z=[{file:V.join(W,"settings.json"),base:W,source:"project-package"},{file:V.join(J,"settings.json"),base:J,source:"user-package"}],Q=[];for(let{file:X,base:H,source:K}of Z){let q=f$(X,"skills settings file");if(!q||typeof q!=="object"||Array.isArray(q))continue;let U=q.packages;if(!Array.isArray(U))continue;for(let G of U){let Y=typeof G==="string"?G:typeof G==="object"&&G!==null&&typeof G.source==="string"?G.source:void 0;if(!Y)continue;let B=u0(Y,H);if(!B)continue;Q.push(...j$(B,K))}}return Q}function d0($,J){let W=E($),Z=[{path:V.join(W,"skills"),source:"project"},{path:V.join($,".agents","skills"),source:"project"},{path:V.join(J,"skills"),source:"user"},{path:V.join(o.homedir(),".agents","skills"),source:"user"},...v0($,J),...p0($,J),...j$($,"project-package"),...h0($,J)],Q=new Map;for(let X of Z){let H=V.resolve(X.path),K=Q.get(H);if(!K||(h[X.source]??0)>(h[K.source]??0))Q.set(H,{path:H,source:X.source})}return[...Q.values()]}function n0($,J,W,Z){if(Z)return Z;let Q=V.resolve(E(J)),X=V.resolve(Q,"skills"),H=V.resolve(Q,"npm","node_modules"),K=V.resolve(J,".agents"),q=V.resolve(W,"skills"),U=V.resolve(W,"npm","node_modules"),G=V.resolve(W),Y=V.resolve(o.homedir(),".agents");if(b($,H))return"project-package";if(b($,X)||b($,K))return"project";if(b($,Q))return"project-settings";if(b($,U))return"user-package";if(b($,q)||b($,Y))return"user";if(b($,G))return"user-settings";let B=l$();if(B&&b($,B))return"user-package";return"unknown"}function l0($,J){if(!$)return J;let W=h[$.source]??0,Z=h[J.source]??0;if(Z>W)return J;if(Z<W)return $;return J.order<$.order?J:$}function n$($){try{let W=F.readFileSync($,"utf-8").replace(/\r\n/g,`
|
|
2
2
|
`);if(!W.startsWith("---"))return;let Z=W.indexOf(`
|
|
3
|
-
---`,3);if(Z===-1)return;let X=W.slice(3,Z).trim().match(/^description:\s*(.+)$/m);if(!X)return;return X[1]?.trim().replace(/^['\"]|['\"]$/g,"")}catch{return}}function
|
|
3
|
+
---`,3);if(Z===-1)return;let X=W.slice(3,Z).trim().match(/^description:\s*(.+)$/m);if(!X)return;return X[1]?.trim().replace(/^['\"]|['\"]$/g,"")}catch{return}}function o0($,J,W){let Z=[],Q=new Map,X=new Map,H=0,K=(Y,B,z)=>{let j=V.resolve(B);if(!F.existsSync(j))return;let _=n0(j,$,J,z),O=Q.get(j);if(O!==void 0){let T=Z[O];if(T&&(h[_]??0)>(h[T.source]??0))Z[O]={...T,name:Y,source:_,description:n$(j)};return}Q.set(j,Z.length),Z.push({name:Y,filePath:j,source:_,description:n$(j),order:H++})},q=(Y)=>Y.startsWith(".")||Y==="node_modules",U=(Y,B)=>{let z;try{z=F.realpathSync(Y)}catch{z=V.resolve(Y)}let j=B?h[B]??0:h.unknown,_=X.get(z);if(_!==void 0&&_>=j)return!1;return X.set(z,j),!0},G=(Y,B)=>{if(!U(Y,B))return;let z=V.join(Y,"SKILL.md");if(F.existsSync(z)){K(V.basename(Y),z,B);return}let j;try{j=F.readdirSync(Y,{withFileTypes:!0})}catch{return}for(let _ of j){if(q(_.name))continue;if(!_.isDirectory()&&!_.isSymbolicLink())continue;let O=V.join(Y,_.name),T;try{T=F.statSync(O)}catch{continue}if(T.isDirectory())G(O,B)}};for(let Y of W){if(!F.existsSync(Y.path))continue;let B;try{B=F.statSync(Y.path)}catch{continue}if(B.isFile()){let _=V.basename(Y.path);if(!_.toLowerCase().endsWith(".md"))continue;let O=_.toLowerCase()==="skill.md"?V.basename(V.dirname(Y.path)):V.basename(_,V.extname(_));K(O,Y.path,Y.source);continue}if(!B.isDirectory())continue;let z=V.join(Y.path,"SKILL.md");if(F.existsSync(z)){K(V.basename(Y.path),z,Y.source);continue}U(Y.path,Y.source);let j;try{j=F.readdirSync(Y.path,{withFileTypes:!0})}catch{continue}for(let _ of j){if(_.name.startsWith("."))continue;let O=V.join(Y.path,_.name);if(_.isDirectory()||_.isSymbolicLink()){if(q(_.name))continue;let T;try{T=F.statSync(O)}catch{continue}if(T.isDirectory())G(O,Y.source);continue}if(_.isFile()&&_.name.toLowerCase().endsWith(".md"))K(V.basename(_.name,V.extname(_.name)),O,Y.source)}}return Z}function s0($){let J=Date.now(),W=D();if(l&&l.cwd===$&&l.agentDir===W&&J-l.timestamp<b0)return l.skills;let Z=d0($,W),Q=o0($,W,Z),X=new Map;for(let K of Q){let q=X.get(K.name);X.set(K.name,l0(q,K))}let H=[...X.values()].sort((K,q)=>K.order-q.order);return l={cwd:$,agentDir:W,skills:H,timestamp:J},H}function o$($){return s0($).filter((W)=>W.name!==k0).map((W)=>({name:W.name,source:W.source,description:W.description})).sort((W,Z)=>W.name.localeCompare(Z.name))}import*as s from"node:os";import*as i from"node:path";function A$($){return $.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function i0($){let J=$?.env??process.env,W=$&&Object.hasOwn($,"getuid")?$.getuid:process.getuid?.bind(process);if(typeof W==="function")return`uid-${W()}`;for(let H of["USERNAME","USER","LOGNAME"]){let K=J[H];if(K)return`user-${A$(K)}`}let Z=$&&Object.hasOwn($,"userInfo")?$.userInfo:s.userInfo;try{let H=Z?.().username;if(H)return`user-${A$(H)}`}catch{}let Q=J.USERPROFILE??J.HOME;if(Q)return`home-${A$(Q)}`;let X=$&&Object.hasOwn($,"homedir")?$.homedir:s.homedir;try{let H=X?.();if(H)return`home-${A$(H)}`}catch{}return"shared"}var w=i.join(s.tmpdir(),`dm-subagents-${i0()}`),L$=i.join(w,"async-subagent-results"),_$=i.join(w,"async-subagent-runs"),b$=i.join(w,"chain-runs"),DJ=i.join(w,"artifacts");function r($){return"parallel"in $&&Array.isArray($.parallel)}function c($){return"expand"in $&&"collect"in $&&"parallel"in $&&!Array.isArray($.parallel)}var t0=".dm",e0="@duckmind/dm-coding-agent",i$="DM_SUBAGENTS_PI_CODING_AGENT_PACKAGE_ROOT";function r$($){return typeof $==="string"&&$.trim()?$:void 0}function s$($){if(!$)return;try{let J=JSON.parse(R.readFileSync(I.join($,"package.json"),"utf-8"));if(J.name!==e0)return;return r$(J.piConfig?.configDir)}catch{return}}function $1($=process.argv[1],J=process.env[i$]){let W=s$(J);if(W)return W;if(!$)return;try{let Z=I.dirname(R.realpathSync($));while(Z!==I.dirname(Z)){let Q=s$(Z);if(Q)return Q;Z=I.dirname(Z)}}catch{}return}function J1($,J,W){return($&&typeof $==="object"?r$($.CONFIG_DIR_NAME):void 0)??$1(J,W)??t0}function a$(){return J1()}function E($){return I.join($,a$())}function D(){let $=process.env.DM_CODING_AGENT_DIR;if($==="~")return Q$.homedir();if($?.startsWith("~/"))return I.join(Q$.homedir(),$.slice(2));return $||I.join(Q$.homedir(),a$(),"agent")}var W1=/^[a-z0-9][a-z0-9-]*(?:\.[a-z0-9][a-z0-9-]*)*$/;function Z1($){let J=$?.trim();if(!J)return;return J.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9.-]/g,"").replace(/-+/g,"-").replace(/\.+/g,".").replace(/(?:^[-.]+|[-.]+$)/g,"")}function a($,J="package"){if($===void 0||$===!1||$==="")return{packageName:void 0};if(typeof $!=="string")return{error:`${J} must be a string or false when provided.`};let W=Z1($);if(!W||!W1.test(W))return{error:`${J} is invalid after sanitization.`};return{packageName:W}}function t($,J){let W=J?.trim();return W?`${W}.${$}`:$}var e$=new Set(["name","package","description","tools","model","fallbackModels","thinking","systemPromptMode","inheritProjectContext","inheritSkills","defaultContext","skill","skills","extensions","subagentOnlyExtensions","output","defaultReads","defaultProgress","interactive","maxSubagentDepth","completionGuard","toolBudget","memory"]);function $0($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function O$($){let J={},W=$.replace(/\r\n/g,`
|
|
4
4
|
`);if(!W.startsWith("---"))return{frontmatter:J,body:W};let Z=W.indexOf(`
|
|
5
5
|
---`,3);if(Z===-1)return{frontmatter:J,body:W};let Q=W.slice(4,Z),X=W.slice(Z+4).trim(),H=Q.split(`
|
|
6
|
-
`),K=null,q=null,
|
|
7
|
-
`),O=j.match(/^([ \t]+)/m)?.[1]??"",T=O?j.replace(new RegExp(`^${$0(O)}`,"gm"),"").replace(/^\n/,""):j;J[K]=T,K=null,q=null,
|
|
8
|
-
`),B=U.match(/^([ \t]+)/m)?.[1]??"",z=B?U.replace(new RegExp(`^${$0(B)}`,"gm"),"").replace(/^\n/,""):U;J[K]=z}return{frontmatter:J,body:X}}import{Compile as aJ}from"typebox/compile";class C extends Error{}var Q1=/^[A-Za-z_][A-Za-z0-9_]*$/,X1=/^[A-Za-z_][A-Za-z0-9_]*$/,C$=/\{([A-Za-z_][A-Za-z0-9_]*)(?:\.([^{}]+))?\}/g,H1=new Set(["task","previous","chain_dir","outputs"]),Z0=new Set(["expand","parallel","collect","concurrency","failFast","phase","label","acceptance"]),K1=new Set([...Z0,"effectiveAcceptance","sessionFiles","thinkingOverrides"]),q1=new Set(["from","item","key","maxItems","onEmpty"]),Y1=new Set(["output","path"]),Q0=new Set(["agent","task","phase","label","outputSchema","cwd","output","outputMode","reads","progress","skill","model","toolBudget","acceptance"]),U1=new Set([...Q0,"outputName","structured","inheritProjectContext","inheritSkills","skills","outputPath","maxSubagentDepth","structuredOutput","structuredOutputSchema","tools","extensions","subagentOnlyExtensions","mcpDirectTools","completionGuard","systemPrompt","systemPromptMode","thinking","modelCandidates","sessionFile","effectiveAcceptance","parentSessionId"]),G1=new Set(["as","outputSchema"]);function J0($){return Q1.test($)}function W0($,J){if($==="")return;if(!$.startsWith("/"))throw new C(`${J} must be a JSON Pointer starting with '/'.`);for(let W of $.slice(1).split("/"))if(/~(?![01])/.test(W))throw new C(`${J} contains invalid JSON Pointer escape.`)}function H$($,J,W){if(!$||typeof $!=="object"||Array.isArray($))throw new C(`${W} must be an object.`);for(let Z of Object.keys($))if(!J.has(Z))throw new C(`${W} does not support field '${Z}'.`)}function B1($,J,W){for(let Z of $.matchAll(/\{([^{}]*)\}/g)){let Q=Z[0],X=Z[1];if(X===J||X.startsWith(`${J}.`)){if(!C$.test(Q)||X===`${J}.`||X.includes(".."))throw new C(`Invalid item reference '${Q}' in ${W}.`);C$.lastIndex=0;continue}C$.lastIndex=0;let H=X.match(/^[A-Za-z_][A-Za-z0-9_]*/)?.[0];if(H===J)throw new C(`Invalid item reference '${Q}' in ${W}.`);if(H&&H1.has(H))continue;if(H)throw new C(`Unsupported template reference '${Q}' in ${W}.`)}if(C$.lastIndex=0,$.includes(`{${J}.}`)||new RegExp(`\\{${J}(?:\\.|$)[^}]*$`).test($))throw new C(`Invalid item reference in ${W}.`)}function X0($){return!!$&&typeof $==="object"&&!Array.isArray($)&&(Object.prototype.hasOwnProperty.call($,"expand")||Object.prototype.hasOwnProperty.call($,"collect"))}function H0($,J,W={}){let Z=`Dynamic chain step ${J+1}`;if(H$($,W.allowRunnerFields?K1:Z0,Z),!$.expand||!$.expand.from)throw new C(`${Z} requires expand.from.`);if(H$($.expand,q1,`${Z} expand`),H$($.expand.from,Y1,`${Z} expand.from`),!J0($.expand.from.output))throw new C(`${Z} has invalid expand.from.output '${$.expand.from.output}'.`);if(W0($.expand.from.path,`${Z} expand.from.path`),$.expand.key!==void 0)W0($.expand.key,`${Z} expand.key`);let Q=$.expand.item??"item";if(!X1.test(Q))throw new C(`${Z} has invalid expand.item '${Q}'.`);if($.expand.maxItems===void 0&&W.maxItems===void 0)throw new C(`${Z} requires expand.maxItems or config.chain.dynamicFanout.maxItems.`);if($.expand.maxItems!==void 0&&(!Number.isInteger($.expand.maxItems)||$.expand.maxItems<0))throw new C(`${Z} expand.maxItems must be an integer >= 0.`);if(W.maxItems!==void 0&&(!Number.isInteger(W.maxItems)||W.maxItems<0))throw new C("config.chain.dynamicFanout.maxItems must be an integer >= 0.");if(!$.parallel||Array.isArray($.parallel))throw new C(`${Z} requires a single parallel template object and cannot mix dynamic expand/collect with static parallel arrays.`);if(H$($.parallel,W.allowRunnerFields?U1:Q0,`${Z} parallel`),"expand"in $.parallel)throw new C(`${Z} does not support nested dynamic fanout.`);if(!$.parallel.agent)throw new C(`${Z} parallel.agent is required.`);if(!$.collect?.as||!J0($.collect.as))throw new C(`${Z} requires collect.as with a safe output name.`);H$($.collect,G1,`${Z} collect`);for(let[X,H]of[["parallel.task",$.parallel.task],["parallel.label",$.parallel.label]])if(H)B1(H,Q,`${Z} ${X}`)}var V1=/\{outputs\.([^}]*)\}/g,K0=/^[A-Za-z_][A-Za-z0-9_]*$/;class y extends Error{}function q0($){if(r($))return $.parallel.map((W)=>W.as).filter((W)=>Boolean(W));if(c($))return[$.collect.as];let J=$.as;return J?[J]:[]}function z1($){if(r($))return $.parallel.map((J)=>J.task??"{previous}");if(c($))return[$.parallel.task??"{previous}",$.parallel.label??""].filter(Boolean);return[$.task??"{previous}"]}function P$($,J={}){j1($,J)}function j1($,J={},W={}){let Z=[...W.priorOutputNames??[]],Q=new Set(Z),X=new Set(Z);for(let H=0;H<$.length;H++){let K=(W.startStepIndex??0)+H+1,q=$[H];if(X0(q)){if(!c(q))throw new y(`Dynamic chain step ${K} requires expand, a single parallel template object, and collect; dynamic expand/collect cannot be mixed with static parallel arrays.`);try{H0(q,K-1,J)}catch(G){if(G instanceof C)throw new y(G.message);throw G}if(!Q.has(q.expand.from.output))throw new y(`Dynamic chain step ${K} references unknown output '${q.expand.from.output}'. Named outputs are only available after producing step/group completes.`)}for(let G of q0(q)){if(!K0.test(G))throw new y(`Invalid chain output name '${G}' at step ${K}. Use /^[A-Za-z_][A-Za-z0-9_]*$/.`);if(X.has(G))throw new y(`Duplicate chain output name '${G}'. Each as name must be unique.`);X.add(G)}for(let G of z1(q))for(let U of G.matchAll(V1)){let Y=U[0],B=U[1];if(!K0.test(B))throw new y(`Invalid chain output reference '${Y}' at step ${K}. Use {outputs.name} with /^[A-Za-z_][A-Za-z0-9_]*$/ names.`);if(!Q.has(B))throw new y(`Unknown chain output reference '${Y}' at step ${K}. Named outputs are only available after producing step/group completes.`)}for(let G of q0(q))Q.add(G)}}var Y0=new Set(["auto","none","attested","checked","verified","reviewed"]),U0=new Set(["changed-files","tests-added","commands-run","validation-output","residual-risks","no-staged-files","diff-summary","review-findings","manual-notes"]),A1=new Set(["level","criteria","evidence","verify","review","stopRules","reason"]),L1=new Set(["id","must","evidence","severity"]),_1=new Set(["id","command","timeoutMs","cwd","env","allowFailure"]),O1=new Set(["agent","focus","required"]);function N$($,J="acceptance"){let W=[];if($===void 0)return W;if($===!1)return W;if(typeof $==="string"){if(!Y0.has($))W.push(`${J} has invalid level '${$}'.`);return W}if(!$||typeof $!=="object"||Array.isArray($))return W.push(`${J} must be a string level, false, or an object.`),W;let Z=$;for(let Q of Object.keys(Z))if(!A1.has(Q))W.push(`${J}.${Q} is not supported.`);if(Z.level!==void 0&&(typeof Z.level!=="string"||!Y0.has(Z.level)))W.push(`${J}.level must be one of auto, none, attested, checked, verified, reviewed.`);if(Z.level==="none"&&(typeof Z.reason!=="string"||!Z.reason.trim()))W.push(`${J}.reason is required when level is none.`);if(Z.reason!==void 0&&typeof Z.reason!=="string")W.push(`${J}.reason must be a string.`);if(Z.criteria!==void 0&&!Array.isArray(Z.criteria))W.push(`${J}.criteria must be an array.`);if(Array.isArray(Z.criteria))for(let[Q,X]of Z.criteria.entries()){if(typeof X==="string")continue;let H=`${J}.criteria[${Q}]`;if(!X||typeof X!=="object"||Array.isArray(X)){W.push(`${H} must be a string or an object.`);continue}let K=X;for(let q of Object.keys(K))if(!L1.has(q))W.push(`${H}.${q} is not supported.`);if(typeof K.id!=="string"||!K.id.trim())W.push(`${H}.id is required.`);if(typeof K.must!=="string"||!K.must.trim())W.push(`${H}.must is required.`);if(K.evidence!==void 0&&!Array.isArray(K.evidence))W.push(`${H}.evidence must be an array.`);if(Array.isArray(K.evidence)){for(let[q,G]of K.evidence.entries())if(typeof G!=="string"||!U0.has(G))W.push(`${H}.evidence[${q}] is not a supported evidence kind.`)}if(K.severity!==void 0&&K.severity!=="required"&&K.severity!=="recommended")W.push(`${H}.severity must be required or recommended.`)}if(Array.isArray(Z.evidence)){for(let[Q,X]of Z.evidence.entries())if(typeof X!=="string"||!U0.has(X))W.push(`${J}.evidence[${Q}] is not a supported evidence kind.`)}else if(Z.evidence!==void 0)W.push(`${J}.evidence must be an array.`);if(Z.verify!==void 0&&!Array.isArray(Z.verify))W.push(`${J}.verify must be an array.`);if(Array.isArray(Z.verify))for(let[Q,X]of Z.verify.entries()){if(!X||typeof X!=="object"||Array.isArray(X)){W.push(`${J}.verify[${Q}] must be an object.`);continue}let H=X;for(let K of Object.keys(H))if(!_1.has(K))W.push(`${J}.verify[${Q}].${K} is not supported.`);if(typeof H.id!=="string"||!H.id.trim())W.push(`${J}.verify[${Q}].id is required.`);if(typeof H.command!=="string"||!H.command.trim())W.push(`${J}.verify[${Q}].command is required.`);if(H.timeoutMs!==void 0&&(typeof H.timeoutMs!=="number"||!Number.isInteger(H.timeoutMs)||H.timeoutMs<1))W.push(`${J}.verify[${Q}].timeoutMs must be an integer >= 1.`);if(H.cwd!==void 0&&typeof H.cwd!=="string")W.push(`${J}.verify[${Q}].cwd must be a string.`);if(H.env!==void 0){if(!H.env||typeof H.env!=="object"||Array.isArray(H.env))W.push(`${J}.verify[${Q}].env must be an object.`);else for(let[K,q]of Object.entries(H.env))if(typeof q!=="string")W.push(`${J}.verify[${Q}].env.${K} must be a string.`)}if(H.allowFailure!==void 0&&typeof H.allowFailure!=="boolean")W.push(`${J}.verify[${Q}].allowFailure must be a boolean.`)}if(Z.review!==void 0&&Z.review!==!1)if(!Z.review||typeof Z.review!=="object"||Array.isArray(Z.review))W.push(`${J}.review must be false or an object.`);else{let Q=Z.review;for(let X of Object.keys(Q))if(!O1.has(X))W.push(`${J}.review.${X} is not supported.`);if(Q.agent!==void 0&&typeof Q.agent!=="string")W.push(`${J}.review.agent must be a string.`);if(Q.focus!==void 0&&typeof Q.focus!=="string")W.push(`${J}.review.focus must be a string.`);if(Q.required!==void 0&&typeof Q.required!=="boolean")W.push(`${J}.review.required must be a boolean.`)}if(Z.stopRules!==void 0&&!Array.isArray(Z.stopRules))W.push(`${J}.stopRules must be an array.`);if(Array.isArray(Z.stopRules)){for(let[Q,X]of Z.stopRules.entries())if(typeof X!=="string")W.push(`${J}.stopRules[${Q}] must be a string.`)}return W}var F1=["read","grep","find","ls"];function C1($){if($==="*")return"*";if($===void 0)return[...F1];return[...new Set($.map((J)=>J.trim()).filter(Boolean))]}function T$($,J="toolBudget"){if($===void 0)return{};if(!$||typeof $!=="object"||Array.isArray($))return{error:`${J} must be an object with hard and optional soft/block.`};let W=$;if(typeof W.hard!=="number"||!Number.isInteger(W.hard)||W.hard<1)return{error:`${J}.hard must be an integer >= 1.`};if(W.soft!==void 0&&(typeof W.soft!=="number"||!Number.isInteger(W.soft)||W.soft<1))return{error:`${J}.soft must be an integer >= 1 when provided.`};if(W.soft!==void 0&&W.soft>W.hard)return{error:`${J}.soft must be <= ${J}.hard.`};if(W.block!==void 0&&W.block!=="*"){if(!Array.isArray(W.block))return{error:`${J}.block must be "*" or an array of tool names.`};if(W.block.length===0)return{error:`${J}.block must contain at least one tool name.`};for(let Z of W.block)if(typeof Z!=="string"||!Z.trim())return{error:`${J}.block must contain non-empty tool names.`}}return{budget:{hard:W.hard,...W.soft!==void 0?{soft:W.soft}:{},block:C1(W.block)}}}function N1($,J){let W=J.split(`
|
|
6
|
+
`),K=null,q=null,U=null;for(let G of H){let Y=G.search(/\S|$/),B=G.trim();if(K!==null&&q!==null&&Y>(U??0)){q.push(G);continue}if(K!==null&&q!==null){let j=q.join(`
|
|
7
|
+
`),O=j.match(/^([ \t]+)/m)?.[1]??"",T=O?j.replace(new RegExp(`^${$0(O)}`,"gm"),"").replace(/^\n/,""):j;J[K]=T,K=null,q=null,U=null}let z=G.match(/^([\w-]+):\s*(.*)$/);if(z){let j=z[2].trim();if(j.startsWith('"')&&j.endsWith('"')||j.startsWith("'")&&j.endsWith("'"))j=j.slice(1,-1);if(j==="")K=z[1],q=[],U=Y;else J[z[1]]=j}}if(K!==null&&q!==null){let G=q.join(`
|
|
8
|
+
`),B=G.match(/^([ \t]+)/m)?.[1]??"",z=B?G.replace(new RegExp(`^${$0(B)}`,"gm"),"").replace(/^\n/,""):G;J[K]=z}return{frontmatter:J,body:X}}import{Compile as eJ}from"typebox/compile";class C extends Error{}var X1=/^[A-Za-z_][A-Za-z0-9_]*$/,H1=/^[A-Za-z_][A-Za-z0-9_]*$/,F$=/\{([A-Za-z_][A-Za-z0-9_]*)(?:\.([^{}]+))?\}/g,K1=new Set(["task","previous","chain_dir","outputs"]),Z0=new Set(["expand","parallel","collect","concurrency","failFast","phase","label","acceptance"]),q1=new Set([...Z0,"effectiveAcceptance","sessionFiles","thinkingOverrides"]),Y1=new Set(["from","item","key","maxItems","onEmpty"]),G1=new Set(["output","path"]),Q0=new Set(["agent","task","phase","label","outputSchema","cwd","output","outputMode","reads","progress","skill","model","toolBudget","acceptance"]),U1=new Set([...Q0,"outputName","structured","inheritProjectContext","inheritSkills","skills","outputPath","maxSubagentDepth","structuredOutput","structuredOutputSchema","tools","extensions","subagentOnlyExtensions","mcpDirectTools","completionGuard","systemPrompt","systemPromptMode","thinking","modelCandidates","sessionFile","effectiveAcceptance","parentSessionId"]),B1=new Set(["as","outputSchema"]);function J0($){return X1.test($)}function W0($,J){if($==="")return;if(!$.startsWith("/"))throw new C(`${J} must be a JSON Pointer starting with '/'.`);for(let W of $.slice(1).split("/"))if(/~(?![01])/.test(W))throw new C(`${J} contains invalid JSON Pointer escape.`)}function X$($,J,W){if(!$||typeof $!=="object"||Array.isArray($))throw new C(`${W} must be an object.`);for(let Z of Object.keys($))if(!J.has(Z))throw new C(`${W} does not support field '${Z}'.`)}function V1($,J,W){for(let Z of $.matchAll(/\{([^{}]*)\}/g)){let Q=Z[0],X=Z[1];if(X===J||X.startsWith(`${J}.`)){if(!F$.test(Q)||X===`${J}.`||X.includes(".."))throw new C(`Invalid item reference '${Q}' in ${W}.`);F$.lastIndex=0;continue}F$.lastIndex=0;let H=X.match(/^[A-Za-z_][A-Za-z0-9_]*/)?.[0];if(H===J)throw new C(`Invalid item reference '${Q}' in ${W}.`);if(H&&K1.has(H))continue;if(H)throw new C(`Unsupported template reference '${Q}' in ${W}.`)}if(F$.lastIndex=0,$.includes(`{${J}.}`)||new RegExp(`\\{${J}(?:\\.|$)[^}]*$`).test($))throw new C(`Invalid item reference in ${W}.`)}function X0($){return!!$&&typeof $==="object"&&!Array.isArray($)&&(Object.prototype.hasOwnProperty.call($,"expand")||Object.prototype.hasOwnProperty.call($,"collect"))}function H0($,J,W={}){let Z=`Dynamic chain step ${J+1}`;if(X$($,W.allowRunnerFields?q1:Z0,Z),!$.expand||!$.expand.from)throw new C(`${Z} requires expand.from.`);if(X$($.expand,Y1,`${Z} expand`),X$($.expand.from,G1,`${Z} expand.from`),!J0($.expand.from.output))throw new C(`${Z} has invalid expand.from.output '${$.expand.from.output}'.`);if(W0($.expand.from.path,`${Z} expand.from.path`),$.expand.key!==void 0)W0($.expand.key,`${Z} expand.key`);let Q=$.expand.item??"item";if(!H1.test(Q))throw new C(`${Z} has invalid expand.item '${Q}'.`);if($.expand.maxItems===void 0&&W.maxItems===void 0)throw new C(`${Z} requires expand.maxItems or config.chain.dynamicFanout.maxItems.`);if($.expand.maxItems!==void 0&&(!Number.isInteger($.expand.maxItems)||$.expand.maxItems<0))throw new C(`${Z} expand.maxItems must be an integer >= 0.`);if(W.maxItems!==void 0&&(!Number.isInteger(W.maxItems)||W.maxItems<0))throw new C("config.chain.dynamicFanout.maxItems must be an integer >= 0.");if(!$.parallel||Array.isArray($.parallel))throw new C(`${Z} requires a single parallel template object and cannot mix dynamic expand/collect with static parallel arrays.`);if(X$($.parallel,W.allowRunnerFields?U1:Q0,`${Z} parallel`),"expand"in $.parallel)throw new C(`${Z} does not support nested dynamic fanout.`);if(!$.parallel.agent)throw new C(`${Z} parallel.agent is required.`);if(!$.collect?.as||!J0($.collect.as))throw new C(`${Z} requires collect.as with a safe output name.`);X$($.collect,B1,`${Z} collect`);for(let[X,H]of[["parallel.task",$.parallel.task],["parallel.label",$.parallel.label]])if(H)V1(H,Q,`${Z} ${X}`)}var z1=/\{outputs\.([^}]*)\}/g,K0=/^[A-Za-z_][A-Za-z0-9_]*$/;class y extends Error{}function q0($){if(r($))return $.parallel.map((W)=>W.as).filter((W)=>Boolean(W));if(c($))return[$.collect.as];let J=$.as;return J?[J]:[]}function j1($){if(r($))return $.parallel.map((J)=>J.task??"{previous}");if(c($))return[$.parallel.task??"{previous}",$.parallel.label??""].filter(Boolean);return[$.task??"{previous}"]}function k$($,J={}){A1($,J)}function A1($,J={},W={}){let Z=[...W.priorOutputNames??[]],Q=new Set(Z),X=new Set(Z);for(let H=0;H<$.length;H++){let K=(W.startStepIndex??0)+H+1,q=$[H];if(X0(q)){if(!c(q))throw new y(`Dynamic chain step ${K} requires expand, a single parallel template object, and collect; dynamic expand/collect cannot be mixed with static parallel arrays.`);try{H0(q,K-1,J)}catch(U){if(U instanceof C)throw new y(U.message);throw U}if(!Q.has(q.expand.from.output))throw new y(`Dynamic chain step ${K} references unknown output '${q.expand.from.output}'. Named outputs are only available after producing step/group completes.`)}for(let U of q0(q)){if(!K0.test(U))throw new y(`Invalid chain output name '${U}' at step ${K}. Use /^[A-Za-z_][A-Za-z0-9_]*$/.`);if(X.has(U))throw new y(`Duplicate chain output name '${U}'. Each as name must be unique.`);X.add(U)}for(let U of j1(q))for(let G of U.matchAll(z1)){let Y=G[0],B=G[1];if(!K0.test(B))throw new y(`Invalid chain output reference '${Y}' at step ${K}. Use {outputs.name} with /^[A-Za-z_][A-Za-z0-9_]*$/ names.`);if(!Q.has(B))throw new y(`Unknown chain output reference '${Y}' at step ${K}. Named outputs are only available after producing step/group completes.`)}for(let U of q0(q))Q.add(U)}}var Y0=new Set(["auto","none","attested","checked","verified","reviewed"]),G0=new Set(["changed-files","tests-added","commands-run","validation-output","residual-risks","no-staged-files","diff-summary","review-findings","manual-notes"]),L1=new Set(["level","criteria","evidence","verify","review","stopRules","reason"]),_1=new Set(["id","must","evidence","severity"]),O1=new Set(["id","command","timeoutMs","cwd","env","allowFailure"]),F1=new Set(["agent","focus","required"]);function C$($,J="acceptance"){let W=[];if($===void 0)return W;if($===!1)return W;if(typeof $==="string"){if(!Y0.has($))W.push(`${J} has invalid level '${$}'.`);return W}if(!$||typeof $!=="object"||Array.isArray($))return W.push(`${J} must be a string level, false, or an object.`),W;let Z=$;for(let Q of Object.keys(Z))if(!L1.has(Q))W.push(`${J}.${Q} is not supported.`);if(Z.level!==void 0&&(typeof Z.level!=="string"||!Y0.has(Z.level)))W.push(`${J}.level must be one of auto, none, attested, checked, verified, reviewed.`);if(Z.level==="none"&&(typeof Z.reason!=="string"||!Z.reason.trim()))W.push(`${J}.reason is required when level is none.`);if(Z.reason!==void 0&&typeof Z.reason!=="string")W.push(`${J}.reason must be a string.`);if(Z.criteria!==void 0&&!Array.isArray(Z.criteria))W.push(`${J}.criteria must be an array.`);if(Array.isArray(Z.criteria))for(let[Q,X]of Z.criteria.entries()){if(typeof X==="string")continue;let H=`${J}.criteria[${Q}]`;if(!X||typeof X!=="object"||Array.isArray(X)){W.push(`${H} must be a string or an object.`);continue}let K=X;for(let q of Object.keys(K))if(!_1.has(q))W.push(`${H}.${q} is not supported.`);if(typeof K.id!=="string"||!K.id.trim())W.push(`${H}.id is required.`);if(typeof K.must!=="string"||!K.must.trim())W.push(`${H}.must is required.`);if(K.evidence!==void 0&&!Array.isArray(K.evidence))W.push(`${H}.evidence must be an array.`);if(Array.isArray(K.evidence)){for(let[q,U]of K.evidence.entries())if(typeof U!=="string"||!G0.has(U))W.push(`${H}.evidence[${q}] is not a supported evidence kind.`)}if(K.severity!==void 0&&K.severity!=="required"&&K.severity!=="recommended")W.push(`${H}.severity must be required or recommended.`)}if(Array.isArray(Z.evidence)){for(let[Q,X]of Z.evidence.entries())if(typeof X!=="string"||!G0.has(X))W.push(`${J}.evidence[${Q}] is not a supported evidence kind.`)}else if(Z.evidence!==void 0)W.push(`${J}.evidence must be an array.`);if(Z.verify!==void 0&&!Array.isArray(Z.verify))W.push(`${J}.verify must be an array.`);if(Array.isArray(Z.verify))for(let[Q,X]of Z.verify.entries()){if(!X||typeof X!=="object"||Array.isArray(X)){W.push(`${J}.verify[${Q}] must be an object.`);continue}let H=X;for(let K of Object.keys(H))if(!O1.has(K))W.push(`${J}.verify[${Q}].${K} is not supported.`);if(typeof H.id!=="string"||!H.id.trim())W.push(`${J}.verify[${Q}].id is required.`);if(typeof H.command!=="string"||!H.command.trim())W.push(`${J}.verify[${Q}].command is required.`);if(H.timeoutMs!==void 0&&(typeof H.timeoutMs!=="number"||!Number.isInteger(H.timeoutMs)||H.timeoutMs<1))W.push(`${J}.verify[${Q}].timeoutMs must be an integer >= 1.`);if(H.cwd!==void 0&&typeof H.cwd!=="string")W.push(`${J}.verify[${Q}].cwd must be a string.`);if(H.env!==void 0){if(!H.env||typeof H.env!=="object"||Array.isArray(H.env))W.push(`${J}.verify[${Q}].env must be an object.`);else for(let[K,q]of Object.entries(H.env))if(typeof q!=="string")W.push(`${J}.verify[${Q}].env.${K} must be a string.`)}if(H.allowFailure!==void 0&&typeof H.allowFailure!=="boolean")W.push(`${J}.verify[${Q}].allowFailure must be a boolean.`)}if(Z.review!==void 0&&Z.review!==!1)if(!Z.review||typeof Z.review!=="object"||Array.isArray(Z.review))W.push(`${J}.review must be false or an object.`);else{let Q=Z.review;for(let X of Object.keys(Q))if(!F1.has(X))W.push(`${J}.review.${X} is not supported.`);if(Q.agent!==void 0&&typeof Q.agent!=="string")W.push(`${J}.review.agent must be a string.`);if(Q.focus!==void 0&&typeof Q.focus!=="string")W.push(`${J}.review.focus must be a string.`);if(Q.required!==void 0&&typeof Q.required!=="boolean")W.push(`${J}.review.required must be a boolean.`)}if(Z.stopRules!==void 0&&!Array.isArray(Z.stopRules))W.push(`${J}.stopRules must be an array.`);if(Array.isArray(Z.stopRules)){for(let[Q,X]of Z.stopRules.entries())if(typeof X!=="string")W.push(`${J}.stopRules[${Q}] must be a string.`)}return W}var C1=["read","grep","find","ls"];function N1($){if($==="*")return"*";if($===void 0)return[...C1];return[...new Set($.map((J)=>J.trim()).filter(Boolean))]}function N$($,J="toolBudget"){if($===void 0)return{};if(!$||typeof $!=="object"||Array.isArray($))return{error:`${J} must be an object with hard and optional soft/block.`};let W=$;if(typeof W.hard!=="number"||!Number.isInteger(W.hard)||W.hard<1)return{error:`${J}.hard must be an integer >= 1.`};if(W.soft!==void 0&&(typeof W.soft!=="number"||!Number.isInteger(W.soft)||W.soft<1))return{error:`${J}.soft must be an integer >= 1 when provided.`};if(W.soft!==void 0&&W.soft>W.hard)return{error:`${J}.soft must be <= ${J}.hard.`};if(W.block!==void 0&&W.block!=="*"){if(!Array.isArray(W.block))return{error:`${J}.block must be "*" or an array of tool names.`};if(W.block.length===0)return{error:`${J}.block must contain at least one tool name.`};for(let Z of W.block)if(typeof Z!=="string"||!Z.trim())return{error:`${J}.block must contain non-empty tool names.`}}return{budget:{hard:W.hard,...W.soft!==void 0?{soft:W.soft}:{},block:N1(W.block)}}}function T1($,J){let W=J.split(`
|
|
9
9
|
`),Z=W.findIndex((K)=>K.trim()===""),Q=Z===-1?W:W.slice(0,Z),X=(Z===-1?"":W.slice(Z+1).join(`
|
|
10
|
-
`)).trim(),H={agent:$,task:X};for(let K of Q){let q=K.match(/^([\w-]+):\s*(.*)$/);if(!q)continue;let
|
|
11
|
-
`?1:0,_=B.index+B[0].length+j,O=Y+1<X.length?X[Y+1].index:Q.length,T=Q.slice(_,O).trimEnd();H.push(
|
|
12
|
-
`)){let K=H.match(/^\s*([\w-]+):\s*(.*)$/);if(!K)continue;J.set(K[1],z0(K[2]))}let Q=J.get("scope"),X=J.get("path");if(Q!=="project"&&Q!=="user")return;if(!X)return;return{scope:Q,path:X}}function E1($){return $==="delegate"?"append":"replace"}function S1($){return $==="delegate"}function R1(){return!1}var A0={overrides:{}},I$=new WeakMap;function I1(){return A.join(D(),"chains")}var q$=null;function y1($){try{return JSON.parse(N.readFileSync($,"utf-8"))}catch{return null}}function D1($){try{return JSON.parse(N.readFileSync($,"utf-8"))}catch(J){if((typeof J==="object"&&J!==null&&"code"in J?J.code:void 0)==="ENOENT")return null;throw J}}function c$($){return $.length>0&&!A.isAbsolute($)&&$.split(/[\\/]/).every((J)=>J.length>0&&J!=="."&&J!=="..")}function w1($){let J=$.slice(4).trim();if(!J)return;let Z=J.match(/^(@?[^@]+(?:\/[^@]+)?)(?:@(.+))?$/)?.[1]??J;return c$(Z)?Z:void 0}function f1($){let J=$.indexOf("@"),W=$.indexOf("#"),Z=[J,W].filter((Q)=>Q>=0).sort((Q,X)=>Q-X)[0];return Z===void 0?$:$.slice(0,Z)}function x1($){let J=$.slice(4).trim();if(!J)return;let W="",Z="",Q=J.match(/^git@([^:]+):(.+)$/);if(Q)W=Q[1]??"",Z=Q[2]??"";else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(J))try{let H=new URL(J);W=H.hostname,Z=H.pathname.replace(/^\/+/,"")}catch{return}else{let H=J.indexOf("/");if(H<0)return;W=J.slice(0,H),Z=J.slice(H+1)}let X=f1(Z).replace(/\.git$/,"").replace(/^\/+/,"");if(!W||!c$(W)||!c$(X)||X.split(/[\\/]/).length<2)return;return{host:W,repoPath:X}}function b1($,J){let W=$.trim();if(!W)return;if(W.startsWith("git:")){let Q=x1(W);return Q?A.join(J,"git",Q.host,Q.repoPath):void 0}if(W.startsWith("npm:")){let Q=w1(W);return Q?A.join(J,"npm","node_modules",Q):void 0}let Z=W.startsWith("file:")?W.slice(5):W;if(Z==="~")return R$.homedir();if(Z.startsWith("~/"))return A.join(R$.homedir(),Z.slice(2));if(A.isAbsolute(Z))return Z;if(Z==="."||Z===".."||Z.startsWith("./")||Z.startsWith("../"))return A.resolve(J,Z);return}function k1(){if(q$!==null)return q$;try{return q$=N.realpathSync(T1("npm root -g",{encoding:"utf-8",timeout:5000}).trim()),q$}catch{return q$="",null}}function L0($){if(!Array.isArray($))return[];return $.filter((J)=>typeof J==="string"&&J.trim().length>0)}function P1($){let J=A.join($,"package.json"),W=y1(J);if(!W||typeof W!=="object"||Array.isArray(W))return{agents:[],chains:[]};let Z=[],Q=W["dm-subagents"];if(Q&&typeof Q==="object"&&!Array.isArray(Q))Z.push(Q);let X=W.pi;if(X&&typeof X==="object"&&!Array.isArray(X)){let q=X.subagents;if(q&&typeof q==="object"&&!Array.isArray(q))Z.push(q)}let H=[],K=[];for(let q of Z){for(let G of L0(q.agents))H.push(A.resolve($,G));for(let G of L0(q.chains))K.push(A.resolve($,G))}return{agents:H,chains:K}}function h$($){let J=[];if(!N.existsSync($))return J;let W;try{W=N.readdirSync($,{withFileTypes:!0})}catch{return J}for(let Z of W){if(Z.name.startsWith("."))continue;if(!Z.isDirectory()&&!Z.isSymbolicLink())continue;if(Z.name.startsWith("@")){let Q=A.join($,Z.name),X;try{X=N.readdirSync(Q,{withFileTypes:!0})}catch{continue}for(let H of X){if(H.name.startsWith("."))continue;if(!H.isDirectory()&&!H.isSymbolicLink())continue;J.push(A.join(Q,H.name))}continue}J.push(A.join($,Z.name))}return J}function _0($,J){let W=D1($);if(!W||typeof W!=="object"||Array.isArray(W))return[];let Z=W.packages;if(!Array.isArray(Z))return[];let Q=[];for(let X of Z){let H=typeof X==="string"?X:typeof X==="object"&&X!==null&&typeof X.source==="string"?X.source:void 0;if(!H)continue;let K=b1(H,J);if(K)Q.push(K)}return Q}function v1($,J={includeUser:!0,includeProject:!0}){let W=D(),Z=K$($)??$,Q=[Z];if(J.includeProject){let U=E(Z);Q.push(...h$(A.join(U,"npm","node_modules")),..._0(A.join(U,"settings.json"),U))}if(J.includeUser)Q.push(...h$(A.join(W,"npm","node_modules")),..._0(A.join(W,"settings.json"),W));if(J.includeUser){let U=k1();if(U)Q.push(...h$(U))}let X=new Set,H=new Set,K=new Set,q=[],G=[];for(let U of Q){let Y=A.resolve(U);if(X.has(Y))continue;X.add(Y);let B=P1(Y);for(let z of B.agents){if(H.has(z))continue;H.add(z),q.push(z)}for(let z of B.chains){if(K.has(z))continue;K.add(z),G.push(z)}}return{agents:q,chains:G}}function N0($){let J=[],W=[];for(let Z of $??[])if(Z.startsWith("mcp:"))J.push(Z.slice(4));else W.push(Z);return{...W.length>0?{tools:W}:{},...J.length>0?{mcpDirectTools:J}:{}}}function u$($){return{model:$.model,fallbackModels:$.fallbackModels?[...$.fallbackModels]:void 0,thinking:$.thinking,systemPromptMode:$.systemPromptMode,inheritProjectContext:$.inheritProjectContext,inheritSkills:$.inheritSkills,defaultContext:$.defaultContext,disabled:$.disabled,systemPrompt:$.systemPrompt,skills:$.skills?[...$.skills]:void 0,tools:$.tools?[...$.tools]:void 0,mcpDirectTools:$.mcpDirectTools?[...$.mcpDirectTools]:void 0,subagentOnlyExtensions:$.subagentOnlyExtensions?[...$.subagentOnlyExtensions]:void 0,completionGuard:$.completionGuard,toolBudget:$.toolBudget}}function K$($){let J=$;while(!0){if(Y$(E(J))||Y$(A.join(J,".agents")))return J;let W=A.dirname(J);if(W===J)return null;J=W}}function h1(){return A.join(D(),"settings.json")}function g1($){let J=K$($);return J?A.join(E(J),"settings.json"):null}function m1($){if(!N.existsSync($))return{};let J;try{J=N.readFileSync($,"utf-8")}catch(Z){let Q=Z instanceof Error?Z.message:String(Z);throw Error(`Failed to read settings file '${$}': ${Q}`,{cause:Z})}let W;try{W=JSON.parse(J)}catch(Z){let Q=Z instanceof Error?Z.message:String(Z);throw Error(`Failed to parse settings file '${$}': ${Q}`,{cause:Z})}if(!W||typeof W!=="object"||Array.isArray(W))throw Error(`Settings file '${$}' must contain a JSON object.`);return W}function M$($,J){if($===void 0)return;if($===!1)return!1;if(!Array.isArray($))throw Error(`Builtin override '${J.name}' in '${J.filePath}' has invalid '${J.field}'; expected an array of strings or false.`);let W=[];for(let Z of $){if(typeof Z!=="string")throw Error(`Builtin override '${J.name}' in '${J.filePath}' has invalid '${J.field}'; expected an array of strings or false.`);let Q=Z.trim();if(Q)W.push(Q)}return W}function c1($,J,W){if(!J||typeof J!=="object"||Array.isArray(J))throw Error(`Builtin override '${$}' in '${W}' must be an object.`);let Z=J,Q={};if("model"in Z)if(typeof Z.model==="string"||Z.model===!1)Q.model=Z.model;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'model'; expected a string or false.`);if("thinking"in Z)if(typeof Z.thinking==="string"||Z.thinking===!1)Q.thinking=Z.thinking;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'thinking'; expected a string or false.`);if("systemPromptMode"in Z)if(Z.systemPromptMode==="append"||Z.systemPromptMode==="replace")Q.systemPromptMode=Z.systemPromptMode;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'systemPromptMode'; expected 'append' or 'replace'.`);if("inheritProjectContext"in Z)if(typeof Z.inheritProjectContext==="boolean")Q.inheritProjectContext=Z.inheritProjectContext;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'inheritProjectContext'; expected a boolean.`);if("inheritSkills"in Z)if(typeof Z.inheritSkills==="boolean")Q.inheritSkills=Z.inheritSkills;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'inheritSkills'; expected a boolean.`);if("defaultContext"in Z)if(Z.defaultContext==="fresh"||Z.defaultContext==="fork"||Z.defaultContext===!1)Q.defaultContext=Z.defaultContext;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'defaultContext'; expected 'fresh', 'fork', or false.`);if("disabled"in Z)if(typeof Z.disabled==="boolean")Q.disabled=Z.disabled;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'disabled'; expected a boolean.`);if("completionGuard"in Z)if(typeof Z.completionGuard==="boolean")Q.completionGuard=Z.completionGuard;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'completionGuard'; expected a boolean.`);if("toolBudget"in Z)if(Z.toolBudget===!1)Q.toolBudget=!1;else if(Z.toolBudget&&typeof Z.toolBudget==="object"&&!Array.isArray(Z.toolBudget))Q.toolBudget=Z.toolBudget;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'toolBudget'; expected an object or false.`);if("systemPrompt"in Z)if(typeof Z.systemPrompt==="string")Q.systemPrompt=Z.systemPrompt;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'systemPrompt'; expected a string.`);let X=M$(Z.fallbackModels,{filePath:W,name:$,field:"fallbackModels"});if(X!==void 0)Q.fallbackModels=X;let H=M$(Z.skills,{filePath:W,name:$,field:"skills"});if(H!==void 0)Q.skills=H;let K=M$(Z.tools,{filePath:W,name:$,field:"tools"});if(K!==void 0)Q.tools=K;let q=M$(Z.subagentOnlyExtensions,{filePath:W,name:$,field:"subagentOnlyExtensions"});if(q!==void 0)Q.subagentOnlyExtensions=q;return Object.keys(Q).length>0?Q:void 0}function O0($){if(!$)return A0;let W=m1($).subagents;if(!W||typeof W!=="object"||Array.isArray(W))return A0;let Z=W,Q;if("disableBuiltins"in Z)if(typeof Z.disableBuiltins==="boolean")Q=Z.disableBuiltins;else throw Error(`Subagent settings in '${$}' have invalid 'disableBuiltins'; expected a boolean.`);let X;if("disableThinking"in Z)if(typeof Z.disableThinking==="boolean")X=Z.disableThinking;else throw Error(`Subagent settings in '${$}' have invalid 'disableThinking'; expected a boolean.`);let H;if("defaultModel"in Z)if(typeof Z.defaultModel==="string"&&Z.defaultModel.trim())H=Z.defaultModel.trim();else throw Error(`Subagent settings in '${$}' have invalid 'defaultModel'; expected a non-empty string.`);let K=V0(Z.modelScope,{filePath:$}),q={},G=Z.agentOverrides;if(!G||typeof G!=="object"||Array.isArray(G))return{overrides:q,defaultModel:H,disableBuiltins:Q,disableThinking:X,modelScope:K};for(let[U,Y]of Object.entries(G)){let B=c1(U,Y,$);if(B)q[U]=B}return{overrides:q,defaultModel:H,disableBuiltins:Q,disableThinking:X,modelScope:K}}function u1($,J,W,Z){if(Z&&J.defaultModel!==void 0)return{type:"subagents.defaultModel",scope:"project",path:Z,model:J.defaultModel};return $.defaultModel!==void 0?{type:"subagents.defaultModel",scope:"user",path:W,model:$.defaultModel}:void 0}function E$($,J){if(!J)return $;return $.map((W)=>{if(W.model!==void 0)return W;let Z={...W,model:J.model,modelSource:J},Q=I$.get(W);if(Q)I$.set(Z,Q);return Z})}function S$($,J,W){let Z={...$,override:{...W,base:u$($)}};if(J.model!==void 0)Z.model=J.model===!1?void 0:J.model;if(J.fallbackModels!==void 0)Z.fallbackModels=J.fallbackModels===!1?void 0:[...J.fallbackModels];if(J.thinking!==void 0)Z.thinking=J.thinking===!1?void 0:J.thinking;if(J.systemPromptMode!==void 0)Z.systemPromptMode=J.systemPromptMode;if(J.inheritProjectContext!==void 0)Z.inheritProjectContext=J.inheritProjectContext;if(J.inheritSkills!==void 0)Z.inheritSkills=J.inheritSkills;if(J.defaultContext!==void 0)Z.defaultContext=J.defaultContext===!1?void 0:J.defaultContext;if(J.disabled!==void 0)Z.disabled=J.disabled;if(J.systemPrompt!==void 0)Z.systemPrompt=J.systemPrompt;if(J.skills!==void 0)Z.skills=J.skills===!1?void 0:[...J.skills];if(J.tools!==void 0){let{tools:Q,mcpDirectTools:X}=N0(J.tools===!1?[]:J.tools);Z.tools=Q,Z.mcpDirectTools=X}if(J.subagentOnlyExtensions!==void 0)Z.subagentOnlyExtensions=J.subagentOnlyExtensions===!1?void 0:[...J.subagentOnlyExtensions];if(J.completionGuard!==void 0)Z.completionGuard=J.completionGuard;if(J.toolBudget!==void 0)Z.toolBudget=J.toolBudget===!1?void 0:J.toolBudget;return Z}function d1($,J){if($.thinking===void 0)return $;return{...$,thinking:void 0,override:$.override??{...J,base:u$($)}}}function p1($,J,W,Z,Q){let X=W.disableBuiltins===!0&&Q!==null,H=W.disableBuiltins===void 0&&J.disableBuiltins===!0,K=W.disableThinking!==void 0&&Q!==null,q=K?W.disableThinking===!0:J.disableThinking===!0,G=K?{scope:"project",path:Q}:{scope:"user",path:Z},U=(Y,B)=>{if(!q||B)return Y;return d1(Y,G)};return $.map((Y)=>{let B=W.overrides[Y.name];if(B&&Q)return U(S$(Y,B,{scope:"project",path:Q}),B.thinking!==void 0);if(X&&Q)return U(S$(Y,{disabled:!0},{scope:"project",path:Q}),!1);let z=J.overrides[Y.name];if(z)return U(S$(Y,z,{scope:"user",path:Z}),!K&&z.thinking!==void 0);if(H)return U(S$(Y,{disabled:!0},{scope:"user",path:Z}),!1);return U(Y,!1)})}function F0($,...J){let W=I$.get($);return W?J.some((Z)=>W.has(Z)):!1}function C0($,J,W){let Z,Q=!1,X=()=>{return Z??={...$},Z},H=(K,q,G)=>{if(F0($,...q))return;X()[K]=G,Q=!0};if(J.model!==void 0)H("model",["model"],J.model===!1?void 0:J.model);if(J.fallbackModels!==void 0)H("fallbackModels",["fallbackModels"],J.fallbackModels===!1?void 0:[...J.fallbackModels]);if(J.thinking!==void 0)H("thinking",["thinking"],J.thinking===!1?void 0:J.thinking);if(J.systemPromptMode!==void 0)H("systemPromptMode",["systemPromptMode"],J.systemPromptMode);if(J.inheritProjectContext!==void 0)H("inheritProjectContext",["inheritProjectContext"],J.inheritProjectContext);if(J.inheritSkills!==void 0)H("inheritSkills",["inheritSkills"],J.inheritSkills);if(J.defaultContext!==void 0)H("defaultContext",["defaultContext"],J.defaultContext===!1?void 0:J.defaultContext);if(J.disabled!==void 0&&$.disabled===void 0)X().disabled=J.disabled,Q=!0;if(J.skills!==void 0)H("skills",["skill","skills"],J.skills===!1?void 0:[...J.skills]);if(J.tools!==void 0&&!F0($,"tools")){let{tools:K,mcpDirectTools:q}=N0(J.tools===!1?[]:J.tools),G=X();G.tools=K,G.mcpDirectTools=q,Q=!0}if(J.subagentOnlyExtensions!==void 0)H("subagentOnlyExtensions",["subagentOnlyExtensions"],J.subagentOnlyExtensions===!1?void 0:[...J.subagentOnlyExtensions]);if(J.completionGuard!==void 0)H("completionGuard",["completionGuard"],J.completionGuard);if(J.toolBudget!==void 0)H("toolBudget",["toolBudget"],J.toolBudget===!1?void 0:J.toolBudget);if(!Q||!Z)return $;return Z.override={...W,base:u$($)},Z}function g$($,J,W,Z,Q){return $.map((X)=>{let H=W.overrides[X.name];if(H&&Q)return C0(X,H,{scope:"project",path:Q});let K=J.overrides[X.name];if(K)return C0(X,K,{scope:"user",path:Z});return X})}function d$($,J){let W=[];if(!N.existsSync($))return W;let Z;try{Z=N.readdirSync($,{withFileTypes:!0}).sort((Q,X)=>Q.name.localeCompare(X.name))}catch{return W}for(let Q of Z){let X=A.join($,Q.name);if(Q.isDirectory()){W.push(...d$(X,J));continue}if(!Q.isFile()&&!Q.isSymbolicLink())continue;if(!J(Q.name))continue;W.push(X)}return W}function n1($,J){let Z=A.relative($,J).split(A.sep).map((Q)=>Q.toLowerCase());if(A.basename($).toLowerCase()===".agents")Z.unshift(".agents");return Z.some((Q,X)=>Q===".agents"&&Z[X+1]==="skills")}function e($,J){let W=[];for(let Z of d$($,(Q)=>Q.endsWith(".md")&&!Q.endsWith(".chain.md"))){if(n1($,Z))continue;let Q;try{Q=N.readFileSync(Z,"utf-8")}catch{continue}let{frontmatter:X,body:H}=F$(Q);if(!X.name||!X.description)continue;let K=X.name,q=a(X.package,`Agent '${K}' package`);if(q.error)continue;let G=q.packageName,U=t(K,G),Y=X.tools?.split(",").map((L)=>L.trim()).filter(Boolean),B=[],z=[];if(Y)for(let L of Y)if(L.startsWith("mcp:"))B.push(L.slice(4));else z.push(L);let j=X.defaultReads?.split(",").map((L)=>L.trim()).filter(Boolean),O=(X.skill||X.skills)?.split(",").map((L)=>L.trim()).filter(Boolean),T=X.fallbackModels?.split(",").map((L)=>L.trim()).filter(Boolean),B$=X.systemPromptMode==="replace"?"replace":X.systemPromptMode==="append"?"append":E1(K),w$=X.inheritProjectContext==="true"?!0:X.inheritProjectContext==="false"?!1:S1(K),V$=X.inheritSkills==="true"?!0:X.inheritSkills==="false"?!1:R1(),z$=X.defaultContext==="fork"?"fork":X.defaultContext==="fresh"?"fresh":void 0,p;if(X.extensions!==void 0)p=X.extensions.split(",").map((L)=>L.trim()).filter(Boolean);let W$;if(X.subagentOnlyExtensions!==void 0)W$=X.subagentOnlyExtensions.split(",").map((L)=>L.trim()).filter(Boolean);let n={};for(let[L,v]of Object.entries(X))if(!e$.has(L))n[L]=v;let Z$=Number(X.maxSubagentDepth),j$;if(X.toolBudget!==void 0&&X.toolBudget.trim()){let L=JSON.parse(X.toolBudget);if(!L||typeof L!=="object"||Array.isArray(L))throw Error(`Agent '${K}' has invalid toolBudget frontmatter; expected a JSON object.`);j$=L}let f$=X.completionGuard==="false"?!1:X.completionGuard==="true"?!0:void 0,S={name:U,localName:K,packageName:G,description:X.description,tools:z.length>0?z:void 0,mcpDirectTools:B.length>0?B:void 0,model:X.model,fallbackModels:T&&T.length>0?T:void 0,thinking:X.thinking,systemPromptMode:B$,inheritProjectContext:w$,inheritSkills:V$,defaultContext:z$,systemPrompt:H,source:J,filePath:Z,skills:O&&O.length>0?O:void 0,extensions:p,subagentOnlyExtensions:W$,output:X.output,defaultReads:j&&j.length>0?j:void 0,defaultProgress:X.defaultProgress==="true",interactive:X.interactive==="true",maxSubagentDepth:Number.isInteger(Z$)&&Z$>=0?Z$:void 0,completionGuard:f$,toolBudget:j$,memory:j0(X.memory),extraFields:Object.keys(n).length>0?n:void 0};I$.set(S,new Set(Object.keys(X))),W.push(S)}return W}function m$($,J){let W=new Map,Z=[];for(let Q of d$($,(X)=>X.endsWith(".chain.md")||X.endsWith(".chain.json"))){let X;try{X=N.readFileSync(Q,"utf-8")}catch{continue}try{let H=Q.endsWith(".chain.json")?B0(X,J,Q):G0(X,J,Q),K=W.get(H.name);if(K&&K.filePath.endsWith(".chain.json")&&Q.endsWith(".chain.md"))continue;W.set(H.name,H)}catch(H){Z.push({source:J,filePath:Q,error:H instanceof Error?H.message:String(H)});continue}}return{chains:Array.from(W.values()),diagnostics:Z}}function Y$($){try{return N.statSync($).isDirectory()}catch{return!1}}function l1($){let J=K$($);if(!J)return{readDirs:[],preferredDir:null};let W=A.join(J,".agents"),Z=A.join(E(J),"agents"),Q=[];if(Y$(W))Q.push(W);if(Y$(Z))Q.push(Z);return{readDirs:Q,preferredDir:Z}}function o1($){let J=K$($);if(!J)return{readDirs:[],preferredDir:null};let W=A.join(E(J),"chains");return{readDirs:Y$(W)?[W]:[],preferredDir:W}}var s1=A.resolve(A.dirname(M1(import.meta.url)),"..","..","agents"),i1="DM_SUBAGENT_EXTRA_AGENT_DIRS";function r1(){let $=process.env[i1];if(!$)return[];return $.split(A.delimiter).map((J)=>J.trim()).filter((J)=>J.length>0)}function T0($){let J=A.join(D(),"agents"),W=A.join(R$.homedir(),".agents"),Z=I1(),{readDirs:Q,preferredDir:X}=l1($),{readDirs:H,preferredDir:K}=o1($),q=h1(),G=g1($),U=O0(q),Y=O0(G),B=u1(U,Y,q,G),z=v1($),j=p1(E$(e(s1,"builtin"),B),U,Y,q,G),_=g$(E$([...r1().flatMap((S)=>e(S,"user")),...e(J,"user"),...e(W,"user")],B),U,Y,q,G),O=new Map;for(let S of z.agents)for(let L of e(S,"package"))if(!O.has(L.name))O.set(L.name,L);let T=g$(E$(Array.from(O.values()),B),U,Y,q,G),B$=new Map;for(let S of Q)for(let L of e(S,"project"))B$.set(L.name,L);let w$=g$(E$(Array.from(B$.values()),B),U,Y,q,G),V$=new Map,z$=[],p=new Map;for(let S of z.chains){let L=m$(S,"package");z$.push(...L.diagnostics);for(let v of L.chains)if(!p.has(v.name))p.set(v.name,v)}let W$=[];for(let S of H){let L=m$(S,"project");W$.push(...L.diagnostics);for(let v of L.chains)V$.set(v.name,v)}let n=m$(Z,"user"),Z$=[...Array.from(p.values()),...n.chains,...Array.from(V$.values())],j$=[...z$,...n.diagnostics,...W$],f$=process.env.DM_CODING_AGENT_DIR?J:N.existsSync(W)?W:J;return{builtin:j,package:T,user:_,project:w$,chains:Z$,chainDiagnostics:j$,userDir:f$,projectDir:X,userChainDir:Z,projectChainDir:K,userSettingsPath:q,projectSettingsPath:G}}import*as M from"node:fs";import*as m from"node:path";import{createRequire as p$}from"node:module";import*as $$ from"node:fs";import*as x from"node:path";import{fileURLToPath as t1}from"node:url";import*as k from"node:os";import*as f from"node:path";var P8=f.join(k.homedir(),".config","mcp","mcp.json"),v8={cursor:[f.join(k.homedir(),".cursor","mcp.json")],"claude-code":[f.join(k.homedir(),".claude","mcp.json"),f.join(k.homedir(),".claude.json"),f.join(k.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[f.join(k.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[f.join(k.homedir(),".codex","config.json")],windsurf:[f.join(k.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};function M0($,J){let W=t1($),Z=x.extname(W),Q=[".js",".mjs",".cjs",".ts",".mts",".cts"].includes(Z)?Z:".ts",X=x.dirname(W);while(!$$.existsSync(x.join(X,"package.json"))){let H=x.dirname(X);if(H===X)throw Error(`Unable to resolve dm-subagents package root from ${W}`);X=H}return x.join(X,`${J}${Q}`)}var a8=M0(import.meta.url,x.join("src","runs","shared","subagent-prompt-runtime")),t8=M0(import.meta.url,x.join("src","extension","fanout-child"));import*as J$ from"node:fs";import*as g from"node:path";var e1="@duckmind/dm-coding-agent";function $J($){let J=g.dirname($);while(J!==g.dirname(J)){let W=g.join(J,"package.json");if(J$.existsSync(W)){if(JSON.parse(J$.readFileSync(W,"utf-8")).name===e1)return J}J=g.dirname(J)}return}function E0(){try{let $=process.argv[1];return $?$J(J$.realpathSync($)):void 0}catch{return}}import*as d from"node:path";import*as JJ from"node:fs";import*as u from"node:path";var WJ=[10,25,50,100,200,500,1000,2000,4000],ZJ=new Set(["EACCES","EBUSY","EPERM"]),S0=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,R0=S0?new Int32Array(S0):void 0;function QJ($){if($<=0)return;if(R0)try{Atomics.wait(R0,0,0,$);return}catch{}let J=Date.now()+$;while(Date.now()<J);}function XJ($){let J=$?.code;return typeof J==="string"&&ZJ.has(J)}function HJ($,J,W,Z,Q){for(let X=0;;X++)try{$.renameSync(J,W);return}catch(H){let K=Z[X];if(K===void 0||!XJ(H))throw H;Q(K)}}function KJ($={}){let J=$.fs??JJ,W=$.now??Date.now,Z=$.pid??process.pid,Q=$.random??Math.random,H=$.retryRenameErrors??process.platform==="win32"?$.retryDelaysMs??WJ:[],K=$.wait??QJ;return(q,G)=>{J.mkdirSync(u.dirname(q),{recursive:!0});let U=u.join(u.dirname(q),`.${u.basename(q)}.${Z}.${W()}.${Q().toString(36).slice(2)}.tmp`);try{J.writeFileSync(U,JSON.stringify(G,null,2),"utf-8"),HJ(J,U,q,H,K)}finally{J.rmSync(U,{force:!0})}}}var qJ=KJ();var T2=d.join(w,"nested-subagent-events");var YJ=p$(import.meta.url),y$=E0();function UJ($){if(!M.existsSync($))return;let J=m.dirname($),Z=JSON.parse(M.readFileSync($,"utf-8")).bin,X=[typeof Z==="string"?Z:Z?.jiti??Object.values(Z??{})[0],"lib/jiti-cli.mjs"].filter((H)=>Boolean(H));for(let H of X){let K=m.resolve(J,H);if(M.existsSync(K))return K}return}function GJ(){let $=[()=>YJ.resolve("jiti/package.json"),()=>y$?p$(m.join(y$,"package.json")).resolve("jiti/package.json"):void 0,()=>{if(!process.argv[1])return;let J=M.realpathSync(process.argv[1]);return p$(J).resolve("jiti/package.json")},()=>y$?m.join(y$,"node_modules","jiti","package.json"):void 0];for(let J of $)try{let W=J();if(!W)continue;let Z=UJ(W);if(Z)return Z}catch{}return}var BJ=GJ();function I0(){return BJ!==void 0}var VJ="native:dm-subagents-supervisor-channel";function zJ($){if($==="off"||$==="always"||$==="fork-only")return $;return"always"}function jJ($){if(!$||typeof $!=="object"||Array.isArray($))return{mode:"always",instructionFile:""};return{mode:zJ($.mode),instructionFile:typeof $.instructionFile==="string"?$.instructionFile:""}}function AJ($,J,W){if($==="off")return"bridge mode is off";if($==="fork-only"&&J!=="fork")return"bridge mode is fork-only and context is not fork";if(!W)return"orchestrator target is not available";return}function y0($){let W=jJ($.config).mode,Z=$.orchestratorTarget?.trim(),Q=W!=="off"&&!(W==="fork-only"&&$.context!=="fork"),X=AJ(W,$.context,Z);return{active:X===void 0,mode:W,wantsIntercom:Q,supervisorChannelAvailable:!0,extensionDir:VJ,...Z?{orchestratorTarget:Z}:{},...X?{reason:X}:{}}}var LJ={tempRootDir:w,asyncDir:O$,resultsDir:_$,chainRunsDir:k$},_J={isAsyncAvailable:I0,discoverAgentsAll:T0,discoverAvailableSkills:o$,diagnoseIntercomBridge:y0};function w0($){return $ instanceof Error?`${$.name}: ${$.message}`:String($)}function G$($,J){try{return J()}catch(W){return`- ${$}: failed — ${w0(W)}`}}function D$($,J){try{if(!P.existsSync(J))return`- ${$}: missing (${J})`;if(!P.statSync(J).isDirectory())throw Error(`not a directory: ${J}`);return P.accessSync(J,P.constants.R_OK|P.constants.W_OK),`- ${$}: ok (${J})`}catch(W){return`- ${$}: failed (${J}) — ${w0(W)}`}}function D0($){return`builtin ${$.builtin}, package ${$.package}, user ${$.user}, project ${$.project}`}function OJ($){let J=new Map;for(let Q of $)J.set(Q.source,(J.get(Q.source)??0)+1);let Z=["project","project-settings","project-package","user","user-settings","user-package","extension","builtin","unknown"].map((Q)=>`${Q} ${J.get(Q)??0}`).filter((Q)=>!Q.endsWith(" 0"));return Z.length>0?Z.join(", "):"none"}function FJ($){if($.requestedSessionDir)return U$.resolve($.expandTilde?.($.requestedSessionDir)??$.requestedSessionDir);if($.config.defaultSessionDir)return U$.resolve($.expandTilde?.($.config.defaultSessionDir)??$.config.defaultSessionDir);return"not configured"}function CJ($){let J=$.currentSessionFile??null,W=[G$("configured session dir",()=>`- configured session dir: ${FJ($)}`),`- current session file: ${J??"not available"}`,`- current session dir: ${J?U$.dirname(J):"not available"}`,`- current session id: ${$.currentSessionId??$.state.currentSessionId??"not available"}`];if($.sessionError)W.push(`- session manager: failed — ${$.sessionError}`);return W}function NJ($,J){return[G$("agents/chains",()=>{let W=J.discoverAgentsAll($.cwd),Z={builtin:W.builtin.length,package:W.package?.length??0,user:W.user.length,project:W.project.length},Q=W.chains.reduce((X,H)=>{return X[H.source]+=1,X},{builtin:0,package:0,user:0,project:0});return[`- agents: total ${Z.builtin+Z.package+Z.user+Z.project} (${D0(Z)})`,`- chains: total ${W.chains.length} (${D0(Q)})`].join(`
|
|
13
|
-
`)}),G$("skills",()=>{let W=J.discoverAvailableSkills($.cwd);return`- skills: total ${W.length} (${
|
|
10
|
+
`)).trim(),H={agent:$,task:X};for(let K of Q){let q=K.match(/^([\w-]+):\s*(.*)$/);if(!q)continue;let U=q[1].trim().toLowerCase(),G=q[2].trim();if(U==="output"){if(G==="false")H.output=!1;else if(G)H.output=G;continue}if(U==="phase"){if(G)H.phase=G;continue}if(U==="label"){if(G)H.label=G;continue}if(U==="as"){if(G)H.as=G;continue}if(U==="outputschema"){if(G.startsWith("{")||G.startsWith("["))throw Error("Inline outputSchema values are not supported in .chain.md files; use a schema file path.");if(G)H.outputSchema=G;continue}if(U==="outputmode"){if(G==="inline"||G==="file-only")H.outputMode=G;continue}if(U==="reads"){if(G==="false")H.reads=!1;else{let Y=G.split(",").map((B)=>B.trim()).filter(Boolean);H.reads=Y.length>0?Y:!1}continue}if(U==="model"){if(G)H.model=G;continue}if(U==="skills"){if(G==="false")H.skills=!1;else{let Y=G.split(",").map((B)=>B.trim()).filter(Boolean);H.skills=Y.length>0?Y:!1}continue}if(U==="progress"){if(G==="true")H.progress=!0;else if(G==="false")H.progress=!1;continue}if(U==="toolbudget"){let Y;try{Y=JSON.parse(G)}catch(z){let j=z instanceof Error?z.message:String(z);throw Error(`Invalid toolBudget in .chain.md step '${$}': ${j}`)}let B=N$(Y,`toolBudget for step '${$}'`);if(B.error)throw Error(B.error);H.toolBudget=Y}}return H}function U0($,J,W){let{frontmatter:Z,body:Q}=O$($);if(!Z.name||!Z.description)throw Error("Chain frontmatter must include name and description");let X=[...Q.matchAll(/^##\s+(.+)[^\S\n]*$/gm)],H=[];for(let Y=0;Y<X.length;Y++){let B=X[Y],z=B[1].trim(),j=Q[B.index+B[0].length]===`
|
|
11
|
+
`?1:0,_=B.index+B[0].length+j,O=Y+1<X.length?X[Y+1].index:Q.length,T=Q.slice(_,O).trimEnd();H.push(T1(z,T))}let K=Z.name,q=a(Z.package,`Chain '${K}' package`);if(q.error)throw Error(q.error);let U=q.packageName,G={};for(let[Y,B]of Object.entries(Z)){if(Y==="name"||Y==="package"||Y==="description")continue;G[Y]=B}return{name:t(K,U),localName:K,packageName:U,description:Z.description,source:J,filePath:W,steps:H,extraFields:Object.keys(G).length>0?G:void 0}}function P$($,J){let W=N$($,J);if(W.error)throw Error(W.error)}function B0($,J,W){let Z;try{Z=JSON.parse($)}catch(K){let q=K instanceof Error?K.message:String(K);throw Error(`Invalid JSON chain '${W}': ${q}`)}if(!Z||typeof Z!=="object"||Array.isArray(Z))throw Error(`JSON chain '${W}' must contain an object root.`);let Q=Z;if(typeof Q.name!=="string"||!Q.name.trim())throw Error(`JSON chain '${W}' must include string name.`);if(typeof Q.description!=="string"||!Q.description.trim())throw Error(`JSON chain '${W}' must include string description.`);if(!Array.isArray(Q.chain))throw Error(`JSON chain '${W}' must include array chain.`);for(let K=0;K<Q.chain.length;K++){let q=Q.chain[K];if(!q||typeof q!=="object"||Array.isArray(q))throw Error(`JSON chain '${W}' step ${K+1} must be an object.`);let U=q;if(U.toolBudget!==void 0)P$(U.toolBudget,`step ${K+1} toolBudget`);let G=C$(U.acceptance,`step ${K+1} acceptance`);if(G.length>0)throw Error(`Invalid JSON chain '${W}': ${G.join(" ")}`);let Y=U.parallel;if(Array.isArray(Y))for(let B=0;B<Y.length;B++){let z=Y[B];if(!z||typeof z!=="object"||Array.isArray(z))continue;let j=z;if(j.toolBudget!==void 0)P$(j.toolBudget,`step ${K+1} parallel task ${B+1} toolBudget`);let _=C$(j.acceptance,`step ${K+1} parallel task ${B+1} acceptance`);if(_.length>0)throw Error(`Invalid JSON chain '${W}': ${_.join(" ")}`)}else if(Y&&typeof Y==="object"){let B=Y;if(B.toolBudget!==void 0)P$(B.toolBudget,`step ${K+1} dynamic template toolBudget`);let z=C$(B.acceptance,`step ${K+1} dynamic template acceptance`);if(z.length>0)throw Error(`Invalid JSON chain '${W}': ${z.join(" ")}`)}}try{k$(Q.chain,{maxItems:Number.MAX_SAFE_INTEGER})}catch(K){if(K instanceof y)throw Error(`Invalid JSON chain '${W}': ${K.message}`);throw K}let X=a(typeof Q.package==="string"?Q.package:void 0,`Chain '${Q.name}' package`);if(X.error)throw Error(X.error);let H={};for(let[K,q]of Object.entries(Q)){if(K==="name"||K==="package"||K==="description"||K==="chain")continue;if(typeof q==="string")H[K]=q}return{name:t(Q.name.trim(),X.packageName),localName:Q.name.trim(),packageName:X.packageName,description:Q.description.trim(),source:J,filePath:W,steps:Q.chain,extraFields:Object.keys(H).length>0?H:void 0}}function V0($,J){if($===void 0)return;if(!$||typeof $!=="object"||Array.isArray($))throw Error(`Subagent settings in '${J.filePath}' have invalid 'modelScope'; expected an object.`);let W=$,Z={};if("enforce"in W){if(typeof W.enforce!=="boolean")throw Error(`Subagent settings in '${J.filePath}' have invalid 'modelScope.enforce'; expected a boolean.`);Z.enforce=W.enforce}if("allow"in W){if(!Array.isArray(W.allow))throw Error(`Subagent settings in '${J.filePath}' have invalid 'modelScope.allow'; expected an array of strings.`);let Q=[];for(let X of W.allow){if(typeof X!=="string")throw Error(`Subagent settings in '${J.filePath}' have invalid 'modelScope.allow'; expected an array of strings.`);let H=X.trim();if(H)Q.push(H)}if(Q.length===0)throw Error(`Subagent settings in '${J.filePath}' have invalid 'modelScope.allow'; expected a non-empty array of patterns.`);Z.allow=Q}if(Z.enforce===!0&&(!Z.allow||Z.allow.length===0))throw Error(`Subagent settings in '${J.filePath}' set modelScope.enforce without a non-empty 'allow' list; supply allowed model patterns or disable enforcement.`);return Object.keys(Z).length>0?Z:void 0}function z0($){let J=$.trim();if(J.startsWith('"')&&J.endsWith('"')||J.startsWith("'")&&J.endsWith("'"))return J.slice(1,-1);return J}function j0($){if(!$)return;let J=new Map,Z=$.trim().match(/^\{(.*)\}$/s);if(Z)for(let H of Z[1].split(",")){let K=H.trim().match(/^([\w-]+)\s*:\s*(.*)$/);if(!K)continue;J.set(K[1],z0(K[2]))}else for(let H of $.split(`
|
|
12
|
+
`)){let K=H.match(/^\s*([\w-]+):\s*(.*)$/);if(!K)continue;J.set(K[1],z0(K[2]))}let Q=J.get("scope"),X=J.get("path");if(Q!=="project"&&Q!=="user")return;if(!X)return;return{scope:Q,path:X}}function S1($){return $==="delegate"?"append":"replace"}function R1($){return $==="delegate"}function I1(){return!1}var A0={overrides:{}},R$=new WeakMap;function y1(){return A.join(D(),"chains")}var K$=null;function D1($){try{return JSON.parse(N.readFileSync($,"utf-8"))}catch{return null}}function w1($){try{return JSON.parse(N.readFileSync($,"utf-8"))}catch(J){if((typeof J==="object"&&J!==null&&"code"in J?J.code:void 0)==="ENOENT")return null;throw J}}function m$($){return $.length>0&&!A.isAbsolute($)&&$.split(/[\\/]/).every((J)=>J.length>0&&J!=="."&&J!=="..")}function x1($){let J=$.slice(4).trim();if(!J)return;let Z=J.match(/^(@?[^@]+(?:\/[^@]+)?)(?:@(.+))?$/)?.[1]??J;return m$(Z)?Z:void 0}function f1($){let J=$.indexOf("@"),W=$.indexOf("#"),Z=[J,W].filter((Q)=>Q>=0).sort((Q,X)=>Q-X)[0];return Z===void 0?$:$.slice(0,Z)}function b1($){let J=$.slice(4).trim();if(!J)return;let W="",Z="",Q=J.match(/^git@([^:]+):(.+)$/);if(Q)W=Q[1]??"",Z=Q[2]??"";else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(J))try{let H=new URL(J);W=H.hostname,Z=H.pathname.replace(/^\/+/,"")}catch{return}else{let H=J.indexOf("/");if(H<0)return;W=J.slice(0,H),Z=J.slice(H+1)}let X=f1(Z).replace(/\.git$/,"").replace(/^\/+/,"");if(!W||!m$(W)||!m$(X)||X.split(/[\\/]/).length<2)return;return{host:W,repoPath:X}}function k1($,J){let W=$.trim();if(!W)return;if(W.startsWith("git:")){let Q=b1(W);return Q?A.join(J,"git",Q.host,Q.repoPath):void 0}if(W.startsWith("npm:")){let Q=x1(W);return Q?A.join(J,"npm","node_modules",Q):void 0}let Z=W.startsWith("file:")?W.slice(5):W;if(Z==="~")return S$.homedir();if(Z.startsWith("~/"))return A.join(S$.homedir(),Z.slice(2));if(A.isAbsolute(Z))return Z;if(Z==="."||Z===".."||Z.startsWith("./")||Z.startsWith("../"))return A.resolve(J,Z);return}function P1(){if(K$!==null)return K$;try{return K$=N.realpathSync(M1("npm root -g",{encoding:"utf-8",timeout:5000}).trim()),K$}catch{return K$="",null}}function L0($){if(!Array.isArray($))return[];return $.filter((J)=>typeof J==="string"&&J.trim().length>0)}function v1($){let J=A.join($,"package.json"),W=D1(J);if(!W||typeof W!=="object"||Array.isArray(W))return{agents:[],chains:[]};let Z=[],Q=W["dm-subagents"];if(Q&&typeof Q==="object"&&!Array.isArray(Q))Z.push(Q);let X=W.pi;if(X&&typeof X==="object"&&!Array.isArray(X)){let q=X.subagents;if(q&&typeof q==="object"&&!Array.isArray(q))Z.push(q)}let H=[],K=[];for(let q of Z){for(let U of L0(q.agents))H.push(A.resolve($,U));for(let U of L0(q.chains))K.push(A.resolve($,U))}return{agents:H,chains:K}}function v$($){let J=[];if(!N.existsSync($))return J;let W;try{W=N.readdirSync($,{withFileTypes:!0})}catch{return J}for(let Z of W){if(Z.name.startsWith("."))continue;if(!Z.isDirectory()&&!Z.isSymbolicLink())continue;if(Z.name.startsWith("@")){let Q=A.join($,Z.name),X;try{X=N.readdirSync(Q,{withFileTypes:!0})}catch{continue}for(let H of X){if(H.name.startsWith("."))continue;if(!H.isDirectory()&&!H.isSymbolicLink())continue;J.push(A.join(Q,H.name))}continue}J.push(A.join($,Z.name))}return J}function _0($,J){let W=w1($);if(!W||typeof W!=="object"||Array.isArray(W))return[];let Z=W.packages;if(!Array.isArray(Z))return[];let Q=[];for(let X of Z){let H=typeof X==="string"?X:typeof X==="object"&&X!==null&&typeof X.source==="string"?X.source:void 0;if(!H)continue;let K=k1(H,J);if(K)Q.push(K)}return Q}function h1($,J={includeUser:!0,includeProject:!0}){let W=D(),Z=H$($)??$,Q=[Z];if(J.includeProject){let G=E(Z);Q.push(...v$(A.join(G,"npm","node_modules")),..._0(A.join(G,"settings.json"),G))}if(J.includeUser)Q.push(...v$(A.join(W,"npm","node_modules")),..._0(A.join(W,"settings.json"),W));if(J.includeUser){let G=P1();if(G)Q.push(...v$(G))}let X=new Set,H=new Set,K=new Set,q=[],U=[];for(let G of Q){let Y=A.resolve(G);if(X.has(Y))continue;X.add(Y);let B=v1(Y);for(let z of B.agents){if(H.has(z))continue;H.add(z),q.push(z)}for(let z of B.chains){if(K.has(z))continue;K.add(z),U.push(z)}}return{agents:q,chains:U}}function N0($){let J=[],W=[];for(let Z of $??[])if(Z.startsWith("mcp:"))J.push(Z.slice(4));else W.push(Z);return{...W.length>0?{tools:W}:{},...J.length>0?{mcpDirectTools:J}:{}}}function c$($){return{model:$.model,fallbackModels:$.fallbackModels?[...$.fallbackModels]:void 0,thinking:$.thinking,systemPromptMode:$.systemPromptMode,inheritProjectContext:$.inheritProjectContext,inheritSkills:$.inheritSkills,defaultContext:$.defaultContext,disabled:$.disabled,systemPrompt:$.systemPrompt,skills:$.skills?[...$.skills]:void 0,tools:$.tools?[...$.tools]:void 0,mcpDirectTools:$.mcpDirectTools?[...$.mcpDirectTools]:void 0,subagentOnlyExtensions:$.subagentOnlyExtensions?[...$.subagentOnlyExtensions]:void 0,completionGuard:$.completionGuard,toolBudget:$.toolBudget}}function H$($){let J=$;while(!0){if(q$(E(J))||q$(A.join(J,".agents")))return J;let W=A.dirname(J);if(W===J)return null;J=W}}function g1(){return A.join(D(),"settings.json")}function m1($){let J=H$($);return J?A.join(E(J),"settings.json"):null}function c1($){if(!N.existsSync($))return{};let J;try{J=N.readFileSync($,"utf-8")}catch(Z){let Q=Z instanceof Error?Z.message:String(Z);throw Error(`Failed to read settings file '${$}': ${Q}`,{cause:Z})}let W;try{W=JSON.parse(J)}catch(Z){let Q=Z instanceof Error?Z.message:String(Z);throw Error(`Failed to parse settings file '${$}': ${Q}`,{cause:Z})}if(!W||typeof W!=="object"||Array.isArray(W))throw Error(`Settings file '${$}' must contain a JSON object.`);return W}function T$($,J){if($===void 0)return;if($===!1)return!1;if(!Array.isArray($))throw Error(`Builtin override '${J.name}' in '${J.filePath}' has invalid '${J.field}'; expected an array of strings or false.`);let W=[];for(let Z of $){if(typeof Z!=="string")throw Error(`Builtin override '${J.name}' in '${J.filePath}' has invalid '${J.field}'; expected an array of strings or false.`);let Q=Z.trim();if(Q)W.push(Q)}return W}function u1($,J,W){if(!J||typeof J!=="object"||Array.isArray(J))throw Error(`Builtin override '${$}' in '${W}' must be an object.`);let Z=J,Q={};if("model"in Z)if(typeof Z.model==="string"||Z.model===!1)Q.model=Z.model;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'model'; expected a string or false.`);if("thinking"in Z)if(typeof Z.thinking==="string"||Z.thinking===!1)Q.thinking=Z.thinking;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'thinking'; expected a string or false.`);if("systemPromptMode"in Z)if(Z.systemPromptMode==="append"||Z.systemPromptMode==="replace")Q.systemPromptMode=Z.systemPromptMode;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'systemPromptMode'; expected 'append' or 'replace'.`);if("inheritProjectContext"in Z)if(typeof Z.inheritProjectContext==="boolean")Q.inheritProjectContext=Z.inheritProjectContext;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'inheritProjectContext'; expected a boolean.`);if("inheritSkills"in Z)if(typeof Z.inheritSkills==="boolean")Q.inheritSkills=Z.inheritSkills;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'inheritSkills'; expected a boolean.`);if("defaultContext"in Z)if(Z.defaultContext==="fresh"||Z.defaultContext==="fork"||Z.defaultContext===!1)Q.defaultContext=Z.defaultContext;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'defaultContext'; expected 'fresh', 'fork', or false.`);if("disabled"in Z)if(typeof Z.disabled==="boolean")Q.disabled=Z.disabled;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'disabled'; expected a boolean.`);if("completionGuard"in Z)if(typeof Z.completionGuard==="boolean")Q.completionGuard=Z.completionGuard;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'completionGuard'; expected a boolean.`);if("toolBudget"in Z)if(Z.toolBudget===!1)Q.toolBudget=!1;else if(Z.toolBudget&&typeof Z.toolBudget==="object"&&!Array.isArray(Z.toolBudget))Q.toolBudget=Z.toolBudget;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'toolBudget'; expected an object or false.`);if("systemPrompt"in Z)if(typeof Z.systemPrompt==="string")Q.systemPrompt=Z.systemPrompt;else throw Error(`Builtin override '${$}' in '${W}' has invalid 'systemPrompt'; expected a string.`);let X=T$(Z.fallbackModels,{filePath:W,name:$,field:"fallbackModels"});if(X!==void 0)Q.fallbackModels=X;let H=T$(Z.skills,{filePath:W,name:$,field:"skills"});if(H!==void 0)Q.skills=H;let K=T$(Z.tools,{filePath:W,name:$,field:"tools"});if(K!==void 0)Q.tools=K;let q=T$(Z.subagentOnlyExtensions,{filePath:W,name:$,field:"subagentOnlyExtensions"});if(q!==void 0)Q.subagentOnlyExtensions=q;return Object.keys(Q).length>0?Q:void 0}function O0($){if(!$)return A0;let W=c1($).subagents;if(!W||typeof W!=="object"||Array.isArray(W))return A0;let Z=W,Q;if("disableBuiltins"in Z)if(typeof Z.disableBuiltins==="boolean")Q=Z.disableBuiltins;else throw Error(`Subagent settings in '${$}' have invalid 'disableBuiltins'; expected a boolean.`);let X;if("disableThinking"in Z)if(typeof Z.disableThinking==="boolean")X=Z.disableThinking;else throw Error(`Subagent settings in '${$}' have invalid 'disableThinking'; expected a boolean.`);let H;if("defaultModel"in Z)if(typeof Z.defaultModel==="string"&&Z.defaultModel.trim())H=Z.defaultModel.trim();else throw Error(`Subagent settings in '${$}' have invalid 'defaultModel'; expected a non-empty string.`);let K=V0(Z.modelScope,{filePath:$}),q={},U=Z.agentOverrides;if(!U||typeof U!=="object"||Array.isArray(U))return{overrides:q,defaultModel:H,disableBuiltins:Q,disableThinking:X,modelScope:K};for(let[G,Y]of Object.entries(U)){let B=u1(G,Y,$);if(B)q[G]=B}return{overrides:q,defaultModel:H,disableBuiltins:Q,disableThinking:X,modelScope:K}}function p1($,J,W,Z){if(Z&&J.defaultModel!==void 0)return{type:"subagents.defaultModel",scope:"project",path:Z,model:J.defaultModel};return $.defaultModel!==void 0?{type:"subagents.defaultModel",scope:"user",path:W,model:$.defaultModel}:void 0}function M$($,J){if(!J)return $;return $.map((W)=>{if(W.model!==void 0)return W;let Z={...W,model:J.model,modelSource:J},Q=R$.get(W);if(Q)R$.set(Z,Q);return Z})}function E$($,J,W){let Z={...$,override:{...W,base:c$($)}};if(J.model!==void 0)Z.model=J.model===!1?void 0:J.model;if(J.fallbackModels!==void 0)Z.fallbackModels=J.fallbackModels===!1?void 0:[...J.fallbackModels];if(J.thinking!==void 0)Z.thinking=J.thinking===!1?void 0:J.thinking;if(J.systemPromptMode!==void 0)Z.systemPromptMode=J.systemPromptMode;if(J.inheritProjectContext!==void 0)Z.inheritProjectContext=J.inheritProjectContext;if(J.inheritSkills!==void 0)Z.inheritSkills=J.inheritSkills;if(J.defaultContext!==void 0)Z.defaultContext=J.defaultContext===!1?void 0:J.defaultContext;if(J.disabled!==void 0)Z.disabled=J.disabled;if(J.systemPrompt!==void 0)Z.systemPrompt=J.systemPrompt;if(J.skills!==void 0)Z.skills=J.skills===!1?void 0:[...J.skills];if(J.tools!==void 0){let{tools:Q,mcpDirectTools:X}=N0(J.tools===!1?[]:J.tools);Z.tools=Q,Z.mcpDirectTools=X}if(J.subagentOnlyExtensions!==void 0)Z.subagentOnlyExtensions=J.subagentOnlyExtensions===!1?void 0:[...J.subagentOnlyExtensions];if(J.completionGuard!==void 0)Z.completionGuard=J.completionGuard;if(J.toolBudget!==void 0)Z.toolBudget=J.toolBudget===!1?void 0:J.toolBudget;return Z}function d1($,J){if($.thinking===void 0)return $;return{...$,thinking:void 0,override:$.override??{...J,base:c$($)}}}function n1($,J,W,Z,Q){let X=W.disableBuiltins===!0&&Q!==null,H=W.disableBuiltins===void 0&&J.disableBuiltins===!0,K=W.disableThinking!==void 0&&Q!==null,q=K?W.disableThinking===!0:J.disableThinking===!0,U=K?{scope:"project",path:Q}:{scope:"user",path:Z},G=(Y,B)=>{if(!q||B)return Y;return d1(Y,U)};return $.map((Y)=>{let B=W.overrides[Y.name];if(B&&Q)return G(E$(Y,B,{scope:"project",path:Q}),B.thinking!==void 0);if(X&&Q)return G(E$(Y,{disabled:!0},{scope:"project",path:Q}),!1);let z=J.overrides[Y.name];if(z)return G(E$(Y,z,{scope:"user",path:Z}),!K&&z.thinking!==void 0);if(H)return G(E$(Y,{disabled:!0},{scope:"user",path:Z}),!1);return G(Y,!1)})}function F0($,...J){let W=R$.get($);return W?J.some((Z)=>W.has(Z)):!1}function C0($,J,W){let Z,Q=!1,X=()=>{return Z??={...$},Z},H=(K,q,U)=>{if(F0($,...q))return;X()[K]=U,Q=!0};if(J.model!==void 0)H("model",["model"],J.model===!1?void 0:J.model);if(J.fallbackModels!==void 0)H("fallbackModels",["fallbackModels"],J.fallbackModels===!1?void 0:[...J.fallbackModels]);if(J.thinking!==void 0)H("thinking",["thinking"],J.thinking===!1?void 0:J.thinking);if(J.systemPromptMode!==void 0)H("systemPromptMode",["systemPromptMode"],J.systemPromptMode);if(J.inheritProjectContext!==void 0)H("inheritProjectContext",["inheritProjectContext"],J.inheritProjectContext);if(J.inheritSkills!==void 0)H("inheritSkills",["inheritSkills"],J.inheritSkills);if(J.defaultContext!==void 0)H("defaultContext",["defaultContext"],J.defaultContext===!1?void 0:J.defaultContext);if(J.disabled!==void 0&&$.disabled===void 0)X().disabled=J.disabled,Q=!0;if(J.skills!==void 0)H("skills",["skill","skills"],J.skills===!1?void 0:[...J.skills]);if(J.tools!==void 0&&!F0($,"tools")){let{tools:K,mcpDirectTools:q}=N0(J.tools===!1?[]:J.tools),U=X();U.tools=K,U.mcpDirectTools=q,Q=!0}if(J.subagentOnlyExtensions!==void 0)H("subagentOnlyExtensions",["subagentOnlyExtensions"],J.subagentOnlyExtensions===!1?void 0:[...J.subagentOnlyExtensions]);if(J.completionGuard!==void 0)H("completionGuard",["completionGuard"],J.completionGuard);if(J.toolBudget!==void 0)H("toolBudget",["toolBudget"],J.toolBudget===!1?void 0:J.toolBudget);if(!Q||!Z)return $;return Z.override={...W,base:c$($)},Z}function h$($,J,W,Z,Q){return $.map((X)=>{let H=W.overrides[X.name];if(H&&Q)return C0(X,H,{scope:"project",path:Q});let K=J.overrides[X.name];if(K)return C0(X,K,{scope:"user",path:Z});return X})}function u$($,J){let W=[];if(!N.existsSync($))return W;let Z;try{Z=N.readdirSync($,{withFileTypes:!0}).sort((Q,X)=>Q.name.localeCompare(X.name))}catch{return W}for(let Q of Z){let X=A.join($,Q.name);if(Q.isDirectory()){W.push(...u$(X,J));continue}if(!Q.isFile()&&!Q.isSymbolicLink())continue;if(!J(Q.name))continue;W.push(X)}return W}function l1($,J){let Z=A.relative($,J).split(A.sep).map((Q)=>Q.toLowerCase());if(A.basename($).toLowerCase()===".agents")Z.unshift(".agents");return Z.some((Q,X)=>Q===".agents"&&Z[X+1]==="skills")}function e($,J){let W=[];for(let Z of u$($,(Q)=>Q.endsWith(".md")&&!Q.endsWith(".chain.md"))){if(l1($,Z))continue;let Q;try{Q=N.readFileSync(Z,"utf-8")}catch{continue}let{frontmatter:X,body:H}=O$(Q);if(!X.name||!X.description)continue;let K=X.name,q=a(X.package,`Agent '${K}' package`);if(q.error)continue;let U=q.packageName,G=t(K,U),Y=X.tools?.split(",").map((L)=>L.trim()).filter(Boolean),B=[],z=[];if(Y)for(let L of Y)if(L.startsWith("mcp:"))B.push(L.slice(4));else z.push(L);let j=X.defaultReads?.split(",").map((L)=>L.trim()).filter(Boolean),O=(X.skill||X.skills)?.split(",").map((L)=>L.trim()).filter(Boolean),T=X.fallbackModels?.split(",").map((L)=>L.trim()).filter(Boolean),U$=X.systemPromptMode==="replace"?"replace":X.systemPromptMode==="append"?"append":S1(K),D$=X.inheritProjectContext==="true"?!0:X.inheritProjectContext==="false"?!1:R1(K),B$=X.inheritSkills==="true"?!0:X.inheritSkills==="false"?!1:I1(),V$=X.defaultContext==="fork"?"fork":X.defaultContext==="fresh"?"fresh":void 0,d;if(X.extensions!==void 0)d=X.extensions.split(",").map((L)=>L.trim()).filter(Boolean);let J$;if(X.subagentOnlyExtensions!==void 0)J$=X.subagentOnlyExtensions.split(",").map((L)=>L.trim()).filter(Boolean);let n={};for(let[L,v]of Object.entries(X))if(!e$.has(L))n[L]=v;let W$=Number(X.maxSubagentDepth),z$;if(X.toolBudget!==void 0&&X.toolBudget.trim()){let L=JSON.parse(X.toolBudget);if(!L||typeof L!=="object"||Array.isArray(L))throw Error(`Agent '${K}' has invalid toolBudget frontmatter; expected a JSON object.`);z$=L}let w$=X.completionGuard==="false"?!1:X.completionGuard==="true"?!0:void 0,S={name:G,localName:K,packageName:U,description:X.description,tools:z.length>0?z:void 0,mcpDirectTools:B.length>0?B:void 0,model:X.model,fallbackModels:T&&T.length>0?T:void 0,thinking:X.thinking,systemPromptMode:U$,inheritProjectContext:D$,inheritSkills:B$,defaultContext:V$,systemPrompt:H,source:J,filePath:Z,skills:O&&O.length>0?O:void 0,extensions:d,subagentOnlyExtensions:J$,output:X.output,defaultReads:j&&j.length>0?j:void 0,defaultProgress:X.defaultProgress==="true",interactive:X.interactive==="true",maxSubagentDepth:Number.isInteger(W$)&&W$>=0?W$:void 0,completionGuard:w$,toolBudget:z$,memory:j0(X.memory),extraFields:Object.keys(n).length>0?n:void 0};R$.set(S,new Set(Object.keys(X))),W.push(S)}return W}function g$($,J){let W=new Map,Z=[];for(let Q of u$($,(X)=>X.endsWith(".chain.md")||X.endsWith(".chain.json"))){let X;try{X=N.readFileSync(Q,"utf-8")}catch{continue}try{let H=Q.endsWith(".chain.json")?B0(X,J,Q):U0(X,J,Q),K=W.get(H.name);if(K&&K.filePath.endsWith(".chain.json")&&Q.endsWith(".chain.md"))continue;W.set(H.name,H)}catch(H){Z.push({source:J,filePath:Q,error:H instanceof Error?H.message:String(H)});continue}}return{chains:Array.from(W.values()),diagnostics:Z}}function q$($){try{return N.statSync($).isDirectory()}catch{return!1}}function o1($){let J=H$($);if(!J)return{readDirs:[],preferredDir:null};let W=A.join(J,".agents"),Z=A.join(E(J),"agents"),Q=[];if(q$(W))Q.push(W);if(q$(Z))Q.push(Z);return{readDirs:Q,preferredDir:Z}}function s1($){let J=H$($);if(!J)return{readDirs:[],preferredDir:null};let W=A.join(E(J),"chains");return{readDirs:q$(W)?[W]:[],preferredDir:W}}var i1=A.resolve(A.dirname(E1(import.meta.url)),"..","..","agents"),r1="DM_SUBAGENT_EXTRA_AGENT_DIRS";function a1(){let $=process.env[r1];if(!$)return[];return $.split(A.delimiter).map((J)=>J.trim()).filter((J)=>J.length>0)}function T0($){let J=A.join(D(),"agents"),W=A.join(S$.homedir(),".agents"),Z=y1(),{readDirs:Q,preferredDir:X}=o1($),{readDirs:H,preferredDir:K}=s1($),q=g1(),U=m1($),G=O0(q),Y=O0(U),B=p1(G,Y,q,U),z=h1($),j=n1(M$(e(i1,"builtin"),B),G,Y,q,U),_=h$(M$([...a1().flatMap((S)=>e(S,"user")),...e(J,"user"),...e(W,"user")],B),G,Y,q,U),O=new Map;for(let S of z.agents)for(let L of e(S,"package"))if(!O.has(L.name))O.set(L.name,L);let T=h$(M$(Array.from(O.values()),B),G,Y,q,U),U$=new Map;for(let S of Q)for(let L of e(S,"project"))U$.set(L.name,L);let D$=h$(M$(Array.from(U$.values()),B),G,Y,q,U),B$=new Map,V$=[],d=new Map;for(let S of z.chains){let L=g$(S,"package");V$.push(...L.diagnostics);for(let v of L.chains)if(!d.has(v.name))d.set(v.name,v)}let J$=[];for(let S of H){let L=g$(S,"project");J$.push(...L.diagnostics);for(let v of L.chains)B$.set(v.name,v)}let n=g$(Z,"user"),W$=[...Array.from(d.values()),...n.chains,...Array.from(B$.values())],z$=[...V$,...n.diagnostics,...J$],w$=process.env.DM_CODING_AGENT_DIR?J:N.existsSync(W)?W:J;return{builtin:j,package:T,user:_,project:D$,chains:W$,chainDiagnostics:z$,userDir:w$,projectDir:X,userChainDir:Z,projectChainDir:K,userSettingsPath:q,projectSettingsPath:U}}import*as M from"node:fs";import*as m from"node:path";import{createRequire as d$}from"node:module";import*as f from"node:path";import{fileURLToPath as M0}from"node:url";import*as k from"node:os";import*as x from"node:path";var h8=x.join(k.homedir(),".config","mcp","mcp.json"),g8={cursor:[x.join(k.homedir(),".cursor","mcp.json")],"claude-code":[x.join(k.homedir(),".claude","mcp.json"),x.join(k.homedir(),".claude.json"),x.join(k.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[x.join(k.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[x.join(k.homedir(),".codex","config.json")],windsurf:[x.join(k.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};function p$($,J){let W=M0($),Z=f.extname(W),Q=[".js",".mjs",".cjs",".ts",".mts",".cts"].includes(Z)?Z:".ts";return f.join(f.dirname(W),`${J}${Q}`)}function E0($){return f.basename(M0($)).startsWith("dm-args.")}function e1($=import.meta.url){let J=E0($)?"subagent-prompt-runtime":f.join("..","runs","shared","subagent-prompt-runtime");return p$($,J)}function $J($=import.meta.url){let J=E0($)?f.join("..","..","extension","fanout-child"):"fanout-child";return p$($,J)}var e8=e1(),$2=$J();import*as $$ from"node:fs";import*as g from"node:path";var JJ="@duckmind/dm-coding-agent";function WJ($){let J=g.dirname($);while(J!==g.dirname(J)){let W=g.join(J,"package.json");if($$.existsSync(W)){if(JSON.parse($$.readFileSync(W,"utf-8")).name===JJ)return J}J=g.dirname(J)}return}function S0(){try{let $=process.argv[1];return $?WJ($$.realpathSync($)):void 0}catch{return}}import*as p from"node:path";import*as ZJ from"node:fs";import*as u from"node:path";var QJ=[10,25,50,100,200,500,1000,2000,4000],XJ=new Set(["EACCES","EBUSY","EPERM"]),R0=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,I0=R0?new Int32Array(R0):void 0;function HJ($){if($<=0)return;if(I0)try{Atomics.wait(I0,0,0,$);return}catch{}let J=Date.now()+$;while(Date.now()<J);}function KJ($){let J=$?.code;return typeof J==="string"&&XJ.has(J)}function qJ($,J,W,Z,Q){for(let X=0;;X++)try{$.renameSync(J,W);return}catch(H){let K=Z[X];if(K===void 0||!KJ(H))throw H;Q(K)}}function YJ($={}){let J=$.fs??ZJ,W=$.now??Date.now,Z=$.pid??process.pid,Q=$.random??Math.random,H=$.retryRenameErrors??process.platform==="win32"?$.retryDelaysMs??QJ:[],K=$.wait??HJ;return(q,U)=>{J.mkdirSync(u.dirname(q),{recursive:!0});let G=u.join(u.dirname(q),`.${u.basename(q)}.${Z}.${W()}.${Q().toString(36).slice(2)}.tmp`);try{J.writeFileSync(G,JSON.stringify(U,null,2),"utf-8"),qJ(J,G,q,H,K)}finally{J.rmSync(G,{force:!0})}}}var GJ=YJ();var E2=p.join(w,"nested-subagent-events");var UJ=d$(import.meta.url),I$=S0();function BJ($){if(!M.existsSync($))return;let J=m.dirname($),Z=JSON.parse(M.readFileSync($,"utf-8")).bin,X=[typeof Z==="string"?Z:Z?.jiti??Object.values(Z??{})[0],"lib/jiti-cli.mjs"].filter((H)=>Boolean(H));for(let H of X){let K=m.resolve(J,H);if(M.existsSync(K))return K}return}function VJ(){let $=[()=>UJ.resolve("jiti/package.json"),()=>I$?d$(m.join(I$,"package.json")).resolve("jiti/package.json"):void 0,()=>{if(!process.argv[1])return;let J=M.realpathSync(process.argv[1]);return d$(J).resolve("jiti/package.json")},()=>I$?m.join(I$,"node_modules","jiti","package.json"):void 0];for(let J of $)try{let W=J();if(!W)continue;let Z=BJ(W);if(Z)return Z}catch{}return}var zJ=VJ();function y0(){return zJ!==void 0}var jJ="native:dm-subagents-supervisor-channel";function AJ($){if($==="off"||$==="always"||$==="fork-only")return $;return"always"}function LJ($){if(!$||typeof $!=="object"||Array.isArray($))return{mode:"always",instructionFile:""};return{mode:AJ($.mode),instructionFile:typeof $.instructionFile==="string"?$.instructionFile:""}}function _J($,J,W){if($==="off")return"bridge mode is off";if($==="fork-only"&&J!=="fork")return"bridge mode is fork-only and context is not fork";if(!W)return"orchestrator target is not available";return}function D0($){let W=LJ($.config).mode,Z=$.orchestratorTarget?.trim(),Q=W!=="off"&&!(W==="fork-only"&&$.context!=="fork"),X=_J(W,$.context,Z);return{active:X===void 0,mode:W,wantsIntercom:Q,supervisorChannelAvailable:!0,extensionDir:jJ,...Z?{orchestratorTarget:Z}:{},...X?{reason:X}:{}}}var OJ={tempRootDir:w,asyncDir:_$,resultsDir:L$,chainRunsDir:b$},FJ={isAsyncAvailable:y0,discoverAgentsAll:T0,discoverAvailableSkills:o$,diagnoseIntercomBridge:D0};function x0($){return $ instanceof Error?`${$.name}: ${$.message}`:String($)}function G$($,J){try{return J()}catch(W){return`- ${$}: failed — ${x0(W)}`}}function y$($,J){try{if(!P.existsSync(J))return`- ${$}: missing (${J})`;if(!P.statSync(J).isDirectory())throw Error(`not a directory: ${J}`);return P.accessSync(J,P.constants.R_OK|P.constants.W_OK),`- ${$}: ok (${J})`}catch(W){return`- ${$}: failed (${J}) — ${x0(W)}`}}function w0($){return`builtin ${$.builtin}, package ${$.package}, user ${$.user}, project ${$.project}`}function CJ($){let J=new Map;for(let Q of $)J.set(Q.source,(J.get(Q.source)??0)+1);let Z=["project","project-settings","project-package","user","user-settings","user-package","extension","builtin","unknown"].map((Q)=>`${Q} ${J.get(Q)??0}`).filter((Q)=>!Q.endsWith(" 0"));return Z.length>0?Z.join(", "):"none"}function NJ($){if($.requestedSessionDir)return Y$.resolve($.expandTilde?.($.requestedSessionDir)??$.requestedSessionDir);if($.config.defaultSessionDir)return Y$.resolve($.expandTilde?.($.config.defaultSessionDir)??$.config.defaultSessionDir);return"not configured"}function TJ($){let J=$.currentSessionFile??null,W=[G$("configured session dir",()=>`- configured session dir: ${NJ($)}`),`- current session file: ${J??"not available"}`,`- current session dir: ${J?Y$.dirname(J):"not available"}`,`- current session id: ${$.currentSessionId??$.state.currentSessionId??"not available"}`];if($.sessionError)W.push(`- session manager: failed — ${$.sessionError}`);return W}function MJ($,J){return[G$("agents/chains",()=>{let W=J.discoverAgentsAll($.cwd),Z={builtin:W.builtin.length,package:W.package?.length??0,user:W.user.length,project:W.project.length},Q=W.chains.reduce((X,H)=>{return X[H.source]+=1,X},{builtin:0,package:0,user:0,project:0});return[`- agents: total ${Z.builtin+Z.package+Z.user+Z.project} (${w0(Z)})`,`- chains: total ${W.chains.length} (${w0(Q)})`].join(`
|
|
13
|
+
`)}),G$("skills",()=>{let W=J.discoverAvailableSkills($.cwd);return`- skills: total ${W.length} (${CJ(W)})`})]}function EJ($,J){return[`- bridge: ${$.active?"active":"inactive"}${$.reason?` (${$.reason})`:""}`,`- mode: ${$.mode}; context: ${J??"unspecified"}`,`- orchestrator target: ${$.orchestratorTarget??"not available"}`,`- supervisor channel: ${$.supervisorChannelAvailable?"available":"unavailable"} (${$.extensionDir})`]}function SJ(){let $=[],W=(process.env.DM_SUBAGENT_PARENT_SESSION??"").trim();if(W)$.push(`- parent session: set (${W})`);else $.push("- parent session: not set — ask forwarding from subprocess children will not reach a parent UI");let Z=process.env.DM_SUBAGENT_CHILD==="1";return $.push(`- subagent process: ${Z?"yes (DM_SUBAGENT_CHILD=1)":"no"}`),$}function x9($){let J=$.paths??OJ,W={...FJ,...$.deps};return["Subagents doctor report","","Runtime",`- cwd: ${$.cwd}`,G$("async support",()=>`- async support: ${W.isAsyncAvailable()?"available":"unavailable"}`),...TJ($),"","Filesystem",y$("temp root",J.tempRootDir),y$("async runs",J.asyncDir),y$("results",J.resultsDir),y$("chain runs",J.chainRunsDir),"","Discovery",...MJ($,W),"","Permission system",...SJ(),"","Intercom bridge",...G$("intercom bridge",()=>EJ(W.diagnoseIntercomBridge({config:$.config.intercomBridge,context:$.context,orchestratorTarget:$.orchestratorTarget,cwd:$.cwd}),$.context).join(`
|
|
14
14
|
`)).split(`
|
|
15
15
|
`)].join(`
|
|
16
|
-
`)}export{
|
|
16
|
+
`)}export{x9 as buildDoctorReport};
|