@kodax-ai/kodax 0.7.77 → 0.7.78
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/CHANGELOG.md +176 -4
- package/README.md +200 -64
- package/README_CN.md +153 -49
- package/config-templates/config.example.jsonc +114 -32
- package/dist/chunks/agent-ASP4MS3X.js +2 -0
- package/dist/chunks/argument-completer-JYQ7FX3W.js +2 -0
- package/dist/chunks/{chunk-XSA37BVM.js → chunk-2CFHBKRE.js} +1 -1
- package/dist/chunks/chunk-35PPHOQ2.js +292 -0
- package/dist/chunks/chunk-43QNNDHR.js +29 -0
- package/dist/chunks/chunk-5BNQXXGY.js +1 -0
- package/dist/chunks/chunk-5GO6FH7L.js +458 -0
- package/dist/chunks/{chunk-FSXI4MAV.js → chunk-5NDCSFOP.js} +14 -14
- package/dist/chunks/{chunk-3DD4QEBH.js → chunk-6FOJVETH.js} +10 -10
- package/dist/chunks/chunk-6XM4B6K2.js +48 -0
- package/dist/chunks/chunk-6YZUE6NC.js +240 -0
- package/dist/chunks/{chunk-HORNWBYR.js → chunk-7OEBJGHK.js} +1 -1
- package/dist/chunks/{chunk-OAMKECRG.js → chunk-KQLQYHWU.js} +205 -200
- package/dist/chunks/{chunk-IQT4RPCE.js → chunk-NXO6GWSY.js} +2 -2
- package/dist/chunks/chunk-T2XZTLYE.js +316 -0
- package/dist/chunks/chunk-TQDBTTIM.js +348 -0
- package/dist/chunks/{chunk-FNW2XUL5.js → chunk-UID7BLAB.js} +1 -1
- package/dist/chunks/chunk-VAT2QYXM.js +765 -0
- package/dist/chunks/chunk-YAZQTC2L.js +5 -0
- package/dist/chunks/chunk-YVRYHC4C.js +655 -0
- package/dist/chunks/{chunk-EH7AOMJ7.js → chunk-Z3KFRTSB.js} +1 -1
- package/dist/chunks/compaction-config-BQSSIWK5.js +2 -0
- package/dist/chunks/{construction-bootstrap-RPRL3L7R.js → construction-bootstrap-VQLQGWPY.js} +1 -1
- package/dist/chunks/{dist-FDSOIR35.js → dist-BFT5YIGU.js} +1 -1
- package/dist/chunks/dist-PCFE24YP.js +2 -0
- package/dist/chunks/host-UTFXCYYM.js +2 -0
- package/dist/chunks/run-manager-PJU3WIFJ.js +2 -0
- package/dist/chunks/utils-SID4HW2Q.js +2 -0
- package/dist/index.d.ts +18 -17
- package/dist/index.js +6 -6
- package/dist/kodax_cli.js +1751 -1352
- package/dist/kodax_resume.js +17 -17
- package/dist/runtime-worker.js +1680 -1299
- package/dist/sandbox-workspace-session.js +563 -0
- package/dist/sdk-a2a.d.ts +16 -16
- package/dist/sdk-a2a.js +8 -8
- package/dist/sdk-agent.d.ts +275 -60
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +33 -165
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +2 -2
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +2 -1
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +67 -25
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +194 -147
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.d.ts +93 -0
- package/dist/sdk-sandbox.js +2 -0
- package/dist/sdk-session.d.ts +6 -7
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.d.ts +2 -2
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +15 -15
- package/dist/types-chunks/{bash-prefix-extractor.d-pZdu6qt7.d.ts → bash-prefix-extractor.d-uAe2Oqda.d.ts} +126 -8
- package/dist/types-chunks/{capsule.d-CxCm1KZz.d.ts → capsule.d-BlSv9l3V.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-CJx9RRd3.d.ts → guardrail.d-BRE_ErEj.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-B0PwAZVR.d.ts → guardrail.d-CXDYRgZ3.d.ts} +200 -34
- package/dist/types-chunks/{history-retrieval.d-B__aEN62.d.ts → history-retrieval.d-DtCy7x64.d.ts} +1 -1
- package/dist/types-chunks/{integration-config.d-ojG4swOP.d.ts → integration-config.d-BNowXE8k.d.ts} +23 -8
- package/dist/types-chunks/{public-api.d--fF88JrC.d.ts → public-api.d-B3AohsxN.d.ts} +36 -7
- package/dist/types-chunks/{commands.d-BccESAMV.d.ts → repl.d-Ie_ZXb_U.d.ts} +89 -78
- package/dist/types-chunks/{side-query.d-5JvXhuOZ.d.ts → resolver.d-iAQ9ocLB.d.ts} +3 -66
- package/dist/types-chunks/{run-manager.d-B47hIqnI.d.ts → run-manager.d-D1twIhF9.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-CLWf8Adb.d.ts → sdk-session-DB9KksIx.d.ts} +2 -2
- package/dist/types-chunks/side-query.d-DTuLPcC5.d.ts +77 -0
- package/dist/types-chunks/{types-LanCEDj8.d.ts → types-D3g6XUQr.d.ts} +41 -2
- package/dist/types-chunks/{types.d-RdWRfUEs.d.ts → types.d-BA-Jwpfs.d.ts} +459 -7
- package/dist/types-chunks/{types.d-CODuyyqy.d.ts → types.d-BH0ZkTGf.d.ts} +1 -1
- package/dist/types-chunks/{types.d-DCQVBqVn.d.ts → types.d-BbtGlKZu.d.ts} +25 -3
- package/dist/types-chunks/{types.d-DCsKM8aT.d.ts → types.d-DVDTIfB_.d.ts} +2 -2
- package/dist/types-chunks/{utils.d-CDduqbFw.d.ts → utils.d-CVp6bFl9.d.ts} +22 -6
- package/docs/SDK_EMBEDDER_GUIDE.md +399 -55
- package/package.json +8 -1
- package/dist/chunks/agent-NGSWFE73.js +0 -2
- package/dist/chunks/argument-completer-WGGZPEEO.js +0 -2
- package/dist/chunks/chunk-27QLRH3D.js +0 -5
- package/dist/chunks/chunk-2MQPVY6P.js +0 -770
- package/dist/chunks/chunk-6WAPVAGQ.js +0 -74
- package/dist/chunks/chunk-AOENDSVN.js +0 -448
- package/dist/chunks/chunk-HV2GMZUZ.js +0 -343
- package/dist/chunks/chunk-JS2BHGJP.js +0 -158
- package/dist/chunks/chunk-ON2WG2LG.js +0 -622
- package/dist/chunks/chunk-RUGAAHTF.js +0 -321
- package/dist/chunks/chunk-TGCG7U2W.js +0 -37
- package/dist/chunks/compaction-config-BE7VYWH6.js +0 -2
- package/dist/chunks/dist-ZZBNVTKU.js +0 -2
- package/dist/chunks/host-QAKQVC4A.js +0 -2
- package/dist/chunks/run-manager-N4UFWA2D.js +0 -2
- package/dist/chunks/utils-AUHCI4D5.js +0 -2
- package/dist/types-chunks/center-types.d-BBT122uJ.d.ts +0 -91
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{a as Me}from"./chunk-IQT4RPCE.js";import{a as o}from"./chunk-ONUPGMER.js";import{getEncoding as Tn}from"js-tiktoken";var je=null;function Cn(){return je||(je=Tn("cl100k_base")),je}o(Cn,"getEncoder");function M(t){return t?Cn().encode(t).length:0}o(M,"countTextTokens");function Ln(t){let e=4;if(typeof t.content=="string")e+=M(t.content);else for(let n of t.content)n.type==="text"?e+=M(n.text):n.type==="tool_use"?(e+=M(n.name),e+=M(JSON.stringify(n.input))):n.type==="tool_result"?(e+=4,e+=typeof n.content=="string"?M(n.content):n.content.reduce((r,i)=>r+(i.type==="text"?M(i.text):1500),0)):n.type==="thinking"?e+=M(n.thinking):n.type==="image"&&(e+=1500);return e}o(Ln,"countMessageTokens");var ft=new WeakMap;function es(t){let e=0;for(let n of t){let r=ft.get(n);if(r!==void 0){e+=r;continue}let i=Ln(n);ft.set(n,i),e+=i}return e}o(es,"estimateTokens");function ts(t){return M(t)}o(ts,"countTokens");var ie=[];function os(t){let e={id:Symbol("kodax-diagnostic-sink"),sink:t};ie.push(e);let n=!1;return()=>{if(n)return;n=!0;let r=ie.findIndex(i=>i.id===e.id);r>=0&&ie.splice(r,1)}}o(os,"setKodaXDiagnosticSink");function N(t){let e=Me(t),n=ie.at(-1)?.sink;if(n){try{n(e)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Nn(e)}
|
|
3
|
-
`)}catch{}}o(N,"emitKodaXDiagnostic");function Nn(t){let e=Me(t),n=On(e.detail);return`[${e.source}] ${e.level}: ${e.message}${n?` ${n}`:""}`}o(Nn,"formatKodaXDiagnostic");function On(t){if(t===void 0)return"";if(t instanceof Error)return t.stack??t.message;if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}o(On,"formatDiagnosticDetail");import{mkdirSync as Dn}from"node:fs";import{homedir as Fe}from"node:os";import{isAbsolute as Kn,normalize as Un,resolve as Te,sep as mt}from"node:path";import{join as oe}from"node:path";var Bn=".kodax",zn="KODAX_HOME",Ce;function us(t){Ce=t}o(us,"setAgentConfigHome");function gt(){if(Ce)return Ce;let t=process.env[zn];return t&&t.length>0?t:oe(Fe(),Bn)}o(gt,"getAgentConfigHome");function b(...t){return oe(gt(),...t)}o(b,"getAgentConfigPath");function fs(t,e){let n=o(a=>{let c=Un(Te(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(t),i=n(e),s=i.endsWith(mt)?i:`${i}${mt}`;return r===i||r.startsWith(s)}o(fs,"isPathInsideDirectory");function ms(t,e){let n=t==="~"?Fe():t.startsWith("~/")||t.startsWith("~\\")?oe(Fe(),t.slice(2)):t;return Kn(n)?Te(n):Te(e,n)}o(ms,"resolveExecutionPath");function gs(t){if(typeof t!="string"||!/^[a-z][a-z0-9-]{1,31}$/.test(t))throw new Error(`getAppDataDir: invalid appId ${JSON.stringify(t)}. Must match /^[a-z][a-z0-9-]{1,31}$/ (lowercase kebab, 2\u201332 chars).`);if(t==="kodax"||t.startsWith("kodax-"))throw new Error(`getAppDataDir: appId ${JSON.stringify(t)} is reserved (the 'kodax' / 'kodax-*' prefix is reserved for first-party use).`);let e=oe(gt(),"apps",t);return Dn(e,{recursive:!0}),e}o(gs,"getAppDataDir");import{createHash as yt}from"node:crypto";var ht=["tenantId","workspaceId","userId","agentId","projectId","sessionId"];function se(t,e){return ht.every(n=>e[n]===void 0||e[n]===t[n])}o(se,"matchesMemoryApplicability");function R(t,e){if(e.length===0)throw new Error(`${t} identity must not be empty`);return yt("sha256").update(`${t}\0${e}`).digest("hex")}o(R,"hashMemoryIdentityComponent");function Le(t){let e=ht.filter(n=>t[n]!==void 0).map(n=>`${n}=${t[n]}`).join("\0");return yt("sha256").update(e).digest("hex")}o(Le,"memoryApplicabilityFingerprint");var Ne="f275-v0.7.77.1";import{createHash as Wn}from"node:crypto";import{execSync as Yn}from"node:child_process";import*as k from"node:path";function ae(t){return qn(t).trim().replace(/^ssh:\/\//,"").replace(/^https?:\/\//,"").replace(/^git@/,"").replace(/\.git$/,"").replace(/[:@/\\]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase()}o(ae,"sanitizeProjectKey");function qn(t){let e=t.trim();if(!/^[a-z][a-z0-9+.-]*:\/\//i.test(e))return e;try{let n=new URL(e);return`${n.hostname}${n.port.length>0?`:${n.port}`:""}${n.pathname}`}catch{return e.replace(/^([a-z][a-z0-9+.-]*:\/\/)[^/@]+@/i,"$1").replace(/[?#].*$/,"")}}o(qn,"remoteWithoutCredentials");function ce(t){let e=k.resolve(t).toLowerCase();return Wn("sha256").update(e).digest("hex").slice(0,16)}o(ce,"hashCwd");function de(t){try{let n=Yn("git config --get remote.origin.url",{cwd:t,encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:1e3,windowsHide:!0}).trim();return n.length>0?n:void 0}catch{return}}o(de,"tryGitRemote");function pe(t){let e=de(t),n=e?ae(e):`local-${ce(t)}`;return b("projects",n,"memory")}o(pe,"resolveMemoryRoot");function Hn(t){return k.join(pe(t),"MEMORY.md")}o(Hn,"resolveMemoryEntrypoint");function O(t,e){let n=e==="project"?"projectId":e==="workspace"?"workspaceId":e==="user"?"userId":"agentId",r=t[n];if(r===void 0||r.length===0)throw new Error(`${n} is required for ${e} memory`);return b("memory-scopes",R("tenant",t.tenantId),e,R(e,r))}o(O,"resolveScopedMemoryRoot");function Xn(t){let e=Oe(t),n=Oe(b("memory-scopes"));if(e.startsWith(n+k.sep)){let a=e.slice(n.length+1).split(k.sep);return a.length>=4&&/^[0-9a-f]{64}$/.test(a[0]??"")&&["project","workspace","agent","user"].includes(a[1]??"")&&/^[0-9a-f]{64}$/.test(a[2]??"")}let r=Oe(b("projects"));if(!e.startsWith(r+k.sep))return!1;let s=e.slice(r.length+1).split(k.sep);return s.length>=3&&s[1]==="memory"}o(Xn,"isAutoManagedMemoryFile");function Oe(t){let e=k.resolve(t);return process.platform==="win32"?e.toLowerCase():e}o(Oe,"comparablePath");function Jn(t){let e=k.basename(t,".md").toLowerCase();if(e.startsWith("user_")||e==="user")return"user";if(e.startsWith("feedback_")||e==="feedback")return"feedback";if(e.startsWith("project_")||e==="project")return"project";if(e.startsWith("reference_")||e==="reference")return"reference"}o(Jn,"parseMemoryTypeFromFilename");var Gn=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;function wt(t){if(t==="user"||t==="feedback"||t==="project"||t==="reference")return t}o(wt,"parseMemoryType");function j(t){let e=Gn.exec(t);if(!e)return{frontmatter:{name:void 0,description:void 0,type:void 0},body:t};let n=e[1],r=t.slice(e[0].length).replace(/^\r?\n+/,""),i=Rt(n);return{frontmatter:{name:typeof i.name=="string"?i.name:void 0,description:typeof i.description=="string"?i.description:void 0,type:wt(i.type)},body:r}}o(j,"parseMemoryFile");function Rt(t){let e={},n=t.split(/\r?\n/);for(let r of n){if(!r.trim()||r.trim().startsWith("#"))continue;let i=r.indexOf(":");if(i===-1)continue;let s=r.slice(0,i).trim();if(!/^[A-Za-z_][A-Za-z0-9_-]*$/.test(s))continue;let a=r.slice(i+1).trim(),c=Vn(a);c!==void 0&&(e[s]=c)}return e}o(Rt,"parseScalarFields");function Vn(t){if(t.length!==0){if(t.length>=2){let e=t.charAt(0),n=t.charAt(t.length-1);if(e==='"'&&n==='"'||e==="'"&&n==="'")return t.slice(1,-1)}return t}}o(Vn,"unquote");var Zn=200,Qn=25e3;function er(t){let e=t.trim(),n=e.length===0?[]:e.split(`
|
|
4
|
-
`),r=n.length,i=Buffer.byteLength(e,"utf-8"),s=r>200,a=i>25e3;if(!s&&!a)return{content:e,lineCount:r,byteCount:i,wasLineTruncated:s,wasByteTruncated:a};let c=s?n.slice(0,200).join(`
|
|
5
|
-
`):e;return Buffer.byteLength(c,"utf-8")>25e3&&(c=nr(c,25e3)),{content:c+`
|
|
6
|
-
|
|
7
|
-
`+tr({lineCount:r,byteCount:i,wasLineTruncated:s,wasByteTruncated:a}),lineCount:r,byteCount:i,wasLineTruncated:s,wasByteTruncated:a}}o(er,"truncateEntrypointContent");function tr(t){let{lineCount:e,byteCount:n,wasLineTruncated:r,wasByteTruncated:i}=t;return`> WARNING: MEMORY.md is ${i&&!r?`${De(n)} (limit: ${De(25e3)}) \u2014 index entries are too long`:r&&!i?`${e} lines (limit: 200)`:`${e} lines and ${De(n)}`}. Only part of it was loaded. Keep index entries to one line under ~200 chars; move detail into topic files.`}o(tr,"formatTruncationWarning");function nr(t,e){let n=Buffer.from(t,"utf-8");if(n.length<=e)return t;let r=10,i=-1;for(let s=e-1;s>=0;s--)if(n[s]===r){i=s;break}return i>0?n.subarray(0,i).toString("utf-8"):n.subarray(0,e).toString("utf-8")}o(nr,"sliceToByteCap");function De(t){return t<1e3?`${t} B`:`${(t/1e3).toFixed(1)} KB`}o(De,"formatFileSize");import rr from"path";var X=new Set;function kt(t){let e=t.trim();if(!e)throw new Error("Plugin skill path cannot be empty.");return rr.resolve(e)}o(kt,"normalizePluginSkillPath");function ir(t){let e=kt(t);return X.add(e),()=>{X.delete(e)}}o(ir,"registerPluginSkillPath");function or(t){return X.delete(kt(t))}o(or,"unregisterPluginSkillPath");function Ke(){return Array.from(X.values())}o(Ke,"listPluginSkillPaths");function sr(){X.clear()}o(sr,"clearPluginSkillPaths");import{homedir as ar}from"os";import z from"path";import{fileURLToPath as cr}from"url";import{dirname as dr}from"path";var pr=cr(import.meta.url),lr=dr(pr);function ur(){return process.env.KODAX_BUNDLED==="true"?z.join(z.dirname(process.execPath),"builtin"):z.join(lr,"builtin")}o(ur,"resolveBuiltinPath");function Ue(t){let e=ar();return{projectPaths:t?[z.join(t,".kodax","skills")]:[],userPaths:[z.join(e,".kodax","skills"),z.join(e,".agents","skills")],pluginPaths:Ke(),builtinPath:ur(),learnedPath:b("learned","skills")}}o(Ue,"getDefaultSkillPaths");function Be(t){let e=[];for(let n of t.projectPaths)e.push({path:n,source:"project"});for(let n of t.userPaths)e.push({path:n,source:"user"});for(let n of t.pluginPaths)e.push({path:n,source:"plugin"});return e.push({path:t.builtinPath,source:"builtin"}),t.learnedPath!==void 0&&e.push({path:t.learnedPath,source:"learned"}),e}o(Be,"getSkillPathsFlat");import{readFile as ze,readdir as hr}from"fs/promises";import{join as F,relative as wr}from"path";import St from"yaml";var fr=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];function mr(t){let e=t.split(`
|
|
8
|
-
`),n=[];for(let r of e){let i=r.indexOf(":");if(i>0){let s=r.slice(0,i).trim(),a=r.slice(i+1).trim();if(a.includes(":")&&!a.startsWith('"')&&!a.startsWith("'")&&!a.startsWith("[")&&!a.startsWith("|")&&!a.startsWith(">")){n.push(`${s}: |-`),n.push(` ${a}`);continue}}n.push(r)}return n.join(`
|
|
9
|
-
`)}o(mr,"sanitizeYaml");function bt(t,e={}){let n=t.replace(/^/,"").replace(/\r\n/g,`
|
|
10
|
-
`).replace(/\r/g,`
|
|
11
|
-
`).trimStart();if(!n.startsWith(`---
|
|
12
|
-
`)){if(e.throwOnMissing)throw new Error("Invalid markdown: missing YAML frontmatter");return[null,t]}let r=n.indexOf(`
|
|
13
|
-
---
|
|
14
|
-
`,4);if(r===-1){let c=n.indexOf(`
|
|
15
|
-
---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(e.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,t]}let i=n.slice(4,r),s=n.slice(r+5).trim(),a;try{a=St.parse(i)??{}}catch{a=St.parse(mr(i))??{}}if(a==null||typeof a!="object"||Array.isArray(a)){if(e.throwOnMissing)throw new Error("Invalid markdown: YAML frontmatter must be an object");return[null,s]}return[a,s]}o(bt,"parseYamlFrontmatter");function vt(t){if(typeof t=="string"){let e=t.trim();return e.length>0?e:void 0}if(Array.isArray(t)){let e=t.map(n=>String(n).trim()).filter(n=>n.length>0);return e.length>0?e.join(", "):void 0}}o(vt,"normalizeAllowedToolsString");function gr(t){if(typeof t=="string"){let e=t.trim();return e?{command:e}:void 0}if(t&&typeof t=="object"&&!Array.isArray(t)){let e=t,n=typeof e.command=="string"?e.command.trim():"";if(!n)return;let r=typeof e.matcher=="string"&&e.matcher.trim()?e.matcher.trim():void 0;return{command:n,matcher:r}}}o(gr,"normalizeYamlHookEntry");function yr(t){if(t==null)return;let n=(Array.isArray(t)?t:[t]).map(r=>gr(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}o(yr,"normalizeYamlHookEntryList");function It(t){if(!t||typeof t!="object"||Array.isArray(t))return;let e=t,n={};for(let r of fr){let i=yr(e[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}o(It,"normalizeYamlHookMap");function We(t){let[e,n]=bt(t,{throwOnMissing:!0});if(!e)throw new Error("Invalid SKILL.md: YAML frontmatter must be an object");if(!e.name||typeof e.name!="string")throw new Error('Invalid SKILL.md: missing required "name" field');if(!e.description||typeof e.description!="string")throw new Error('Invalid SKILL.md: missing required "description" field');return{frontmatter:{name:e.name,description:e.description,disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:vt(e["allowed-tools"]),context:e.context==="fork"?"fork":void 0,agent:typeof e.agent=="string"?e.agent:void 0,argumentHint:typeof e["argument-hint"]=="string"?e["argument-hint"]:void 0,model:typeof e.model=="string"?e.model:void 0,hooks:It(e.hooks),license:typeof e.license=="string"?e.license:void 0,compatibility:typeof e.compatibility=="string"?e.compatibility:void 0,metadata:e.metadata&&typeof e.metadata=="object"&&!Array.isArray(e.metadata)?e.metadata:void 0},body:n}}o(We,"parseSkillMarkdown");async function Ye(t,e){let n=F(t,"SKILL.md");try{let r=await ze(n,"utf-8"),{frontmatter:i}=We(r);return{name:i.name,description:i.description,userInvocable:i.userInvocable??!0,argumentHint:i.argumentHint,path:t,source:e,disableModelInvocation:i.disableModelInvocation??!1}}catch(r){return N({source:"agent:skills",level:"error",message:`Failed to load skill metadata from ${t}.`,detail:r}),null}}o(Ye,"loadSkillMetadata");async function qe(t,e){let n=F(t,"SKILL.md");try{let r=await ze(n,"utf-8"),{frontmatter:i,body:s}=We(r),[a,c,d,p,u]=await Promise.all([W(F(t,"scripts")),W(F(t,"references")),W(F(t,"assets")),W(F(t,"templates")),W(F(t,"resources"))]);return{...i,path:t,skillFilePath:n,content:s,rawContent:s,loaded:!0,source:e,...a.length>0&&{scripts:a},...c.length>0&&{references:c},...d.length>0&&{assets:d},...p.length>0&&{templates:p},...u.length>0&&{resources:u}}}catch(r){return N({source:"agent:skills",level:"error",message:`Failed to load skill from ${t}.`,detail:r}),null}}o(qe,"loadFullSkill");async function W(t,e=t){let n=[];try{let r=await hr(t,{withFileTypes:!0});r.sort((i,s)=>i.name.localeCompare(s.name));for(let i of r){let s=F(t,i.name);if(i.isDirectory()){n.push(...await W(s,e));continue}i.isFile()&&n.push({name:i.name,path:s,relativePath:wr(e,s).replace(/\\/g,"/")})}}catch{}return n}o(W,"loadSkillFiles");async function Rr(t){if(t.content)return t.content;let e=await ze(t.path,"utf-8");return t.content=e,e}o(Rr,"loadSkillFileContent");import{readdir as kr,stat as He}from"fs/promises";import{join as le,dirname as xt}from"path";async function ue(t,e){let n=new Map,r=[],s={...Ue(t),...e},a=Be(s);for(let{path:c,source:d}of a)try{let p=await Sr(c,d);for(let u of p)n.has(u.name)||n.set(u.name,u)}catch(p){r.push({path:c,error:p instanceof Error?p.message:String(p)})}return{skills:n,errors:r}}o(ue,"discoverSkills");async function Sr(t,e){let n=[];try{if(!(await He(t)).isDirectory())return n;let i=await kr(t);for(let s of i){let a=le(t,s);try{if((await He(a)).isDirectory()){let d=le(a,"SKILL.md");try{if((await He(d)).isFile()){let u=await Ye(a,e);u&&n.push(u)}}catch{}}}catch{}}}catch{}return n}o(Sr,"scanSkillDirectory");function _t(t,e){let n=[],r=[".kodax/skills"],i=t,s=xt(e);for(;i!==s&&i!=="/"&&i.length>3;){for(let c of r)n.push(le(i,c));let a=xt(i);if(a===i)break;i=a}return n}o(_t,"getNestedSkillPaths");async function br(t,e){let n=_t(t,e),r={projectPaths:[le(e,".kodax","skills"),...n]};return ue(e,r)}o(br,"discoverSkillsWithMonorepo");import{execSync as vr}from"child_process";import Ir from"path";var xr=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","grep","find","awk","sed","head","tail","less","more","wc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);function Et(t){if(!t||!t.trim())return!1;let e=t.trim().replace(/\s+/g," ").toLowerCase();for(let n of xr)if(e===n||e.startsWith(`${n} `)){if(n==="sed"&&e.split(/\s+/).some(s=>s.startsWith("-i")||s==="--in-place"))return!1;if(n==="awk"){let i=e.split(/\s+/);if(i.includes("-f")||i.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"].includes(n)){let i=e.split(/\s+/).slice(1);if(i.length>0&&!i.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}o(Et,"isSingleSafeDynamicContextCommand");function _r(t){if(!t||!t.trim())return!1;let e=t.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(e)||e.includes("\\")&&Ir.sep!=="\\"&&e.replace(/\\ /g,"").includes("\\"))return!1;let r=e.split(/\s*&&\s*/);if(r.length===1)return Et(r[0]);for(let i of r){let s=i?.trim();if(s&&!/^cd\s+/.test(s.toLowerCase())&&!Et(s))return!1}return!0}o(_r,"isSafeDynamicContextCommand");function At(t){let e=[],n="",r=!1,i="";for(let s=0;s<t.length;s++){let a=t[s];r?a===i?r=!1:n+=a:a==='"'||a==="'"?(r=!0,i=a):a===" "?n&&(e.push(n),n=""):n+=a}return n&&e.push(n),e}o(At,"parseArguments");var J=class{static{o(this,"VariableResolver")}context;constructor(e){this.context=e}async resolve(e,n){let r=e,i=At(n);return r=this.resolvePositionalArgs(r,i),r=this.resolveArguments(r,n),r=this.resolveEnvVars(r),r=await this.resolveDynamicContext(r),r}resolvePositionalArgs(e,n){return e.replace(/\$(\d+)(?![a-zA-Z0-9_])/g,(r,i)=>{let s=parseInt(i,10);return n[s]??""})}resolveArguments(e,n){return e.replace(/\$ARGUMENTS/g,n)}resolveEnvVars(e){let n={...this.context.environment,CLAUDE_SESSION_ID:this.context.sessionId??"",KODAX_SESSION_ID:this.context.sessionId??"",KODAX_WORKING_DIR:this.context.workingDirectory};return e.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(r,i)=>n[i]??r)}async resolveDynamicContext(e){let n=/!`([^`]+)`/g,r=[],i;for(;(i=n.exec(e))!==null;)r.push({match:i[0],command:i[1]});if(r.length===0)return e;let s=e;for(let{match:a,command:c}of r)try{let d=await this.executeDynamicCommand(c);s=s.replace(a,d)}catch(d){let p=d instanceof Error?d.message:String(d);s=s.replace(a,`[Error: ${p}]`)}return s}async executeDynamicCommand(e){if(this.context.disableDynamicContext)throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in this environment.");if(this.context.executeDynamicContext){let n=await this.context.executeDynamicContext(e,this.context.workingDirectory);return typeof n=="string"?n.trim():""}if(!_r(e))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return vr(e,{cwd:this.context.workingDirectory,encoding:"utf-8",timeout:5e3,maxBuffer:1048576,windowsHide:!0}).trim()}catch(n){throw n instanceof Error?new Error(`Command failed: ${n.message}`):n}}};function Er(t){return new J(t)}o(Er,"createResolver");async function D(t,e,n){return new J(n).resolve(t,e)}o(D,"resolveSkillContent");var fe=class{static{o(this,"SkillRegistry")}skillsByName=new Map;fullSkillsByName=new Map;projectRoot;customPaths;constructor(e,n){this.projectRoot=e,this.customPaths=n}async discover(){let e=await ue(this.projectRoot,this.customPaths);this.skillsByName.clear();for(let[n,r]of e.skills)this.skillsByName.set(n,r);if(e.errors.length>0)for(let{path:n,error:r}of e.errors)N({source:"agent:skills",level:"warn",message:`Error scanning ${n}.`,detail:r})}get skills(){return this.skillsByName}get(e){return this.skillsByName.get(e)}async loadFull(e){let n=this.fullSkillsByName.get(e);if(n)return n;let r=this.skillsByName.get(e);if(!r)throw new Error(`Skill not found: ${e}`);let i=await qe(r.path,r.source);if(!i)throw new Error(`Failed to load skill: ${e}`);return this.fullSkillsByName.set(e,i),i}async invoke(e,n,r){try{let i=await this.loadFull(e);return i.disableModelInvocation?{success:!1,content:"",error:`Skill "${e}" has model invocation disabled`}:{success:!0,content:await D(i.content,n,r)}}catch(i){return{success:!1,content:"",error:i instanceof Error?i.message:String(i)}}}async reload(){this.skillsByName.clear(),this.fullSkillsByName.clear(),await this.discover()}list(){return Array.from(this.skillsByName.values())}listUserInvocable(){return this.list().filter(e=>e.userInvocable)}getSystemPromptSnippet(){let e=this.list().filter(r=>!r.disableModelInvocation);if(e.length===0)return"";let n=["## Available Skills","","When users ask you to perform tasks, check if any of the available skills below match the request. Skills provide specialized capabilities and step-by-step instructions for specific workflows.","",'When users reference a "slash command" or "/<something>" (e.g. "/feature-list-tracker", "/skill:foo"), they are referring to a skill. Invoke it via the `skill` tool with the skill name.',"","**BLOCKING REQUIREMENT**: When a skill matches the user's request, you MUST invoke it via the `skill` tool BEFORE generating any other response about the task. Loading the skill is not optional and not something to defer \u2014 it is the FIRST action you take.","","NEVER mention a skill without actually calling the `skill` tool. Do not guess at skill names \u2014 only use skills listed below. Do NOT call `read` on a `SKILL.md` path to load a skill \u2014 that is the legacy path and bypasses the resolver.",""];for(let r of e){let i=r.argumentHint?` ${r.argumentHint}`:"";n.push(`- ${r.name}:${i} ${r.description}`)}return n.push(""),n.join(`
|
|
16
|
-
`)}has(e){return this.skillsByName.has(e)}get size(){return this.skillsByName.size}},Y=null,Pt;function me(t,e){return Y&&t!==void 0&&Pt!==t&&(Y=null),Y||(Y=new fe(t,e),Pt=t),Y}o(me,"getSkillRegistry");async function Xe(t,e){let n=me(t,e);return await n.discover(),n}o(Xe,"initializeSkillRegistry");function Ar(){Y=null}o(Ar,"resetSkillRegistry");var G=class{static{o(this,"SkillExecutor")}context;constructor(e){this.context=e}async execute(e,n,r){let i=me();if(!i.has(e))return{success:!1,content:"",error:`Skill not found: ${e}`};try{let s=await i.loadFull(e),a=r?.mode??(s.context==="fork"?"fork":"inline"),c=await D(s.content,n,this.context);return a==="fork"?this.executeFork(s,c,r):this.executeInline(s,c,r)}catch(s){return{success:!1,content:"",error:s instanceof Error?s.message:String(s)}}}async executeInline(e,n,r){let i=this.buildPrompt(e,n);if(r?.onExecute)try{return{success:!0,content:await r.onExecute(i,e)}}catch(s){return{success:!1,content:"",error:s instanceof Error?s.message:String(s)}}return{success:!0,content:i}}async executeFork(e,n,r){return{success:!0,content:this.buildPrompt(e,n),artifacts:[{type:"text",name:"fork-config",content:JSON.stringify({agent:r?.agent??e.agent??"general-purpose",model:r?.model??e.model??"haiku",allowedTools:r?.allowedTools??this.parseAllowedTools(e.allowedTools)})}]}}buildPrompt(e,n){let r=[];return r.push(`[Using Skill: ${e.name}]`),r.push(""),e.allowedTools&&(r.push(`**Allowed Tools**: ${e.allowedTools}`),r.push("")),r.push(n),r.join(`
|
|
17
|
-
`)}parseAllowedTools(e){return e?e.split(",").map(n=>n.trim()).filter(Boolean):[]}};function Pr(t){return new G(t)}o(Pr,"createExecutor");async function $r(t,e,n,r){return new G(n).execute(t,e,r)}o($r,"executeSkill");function $t(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}o($t,"escapeXml");var Je=120;function ge(t){return t.replace(/\\/g,"/")}o(ge,"formatDisplayPath");function Mr(t){return[...(t.references??[]).map(e=>({folder:"references",file:e})),...(t.scripts??[]).map(e=>({folder:"scripts",file:e})),...(t.assets??[]).map(e=>({folder:"assets",file:e})),...(t.templates??[]).map(e=>({folder:"templates",file:e})),...(t.resources??[]).map(e=>({folder:"resources",file:e}))]}o(Mr,"collectSupportFiles");function jr(t){let e=Mr(t);if(e.length===0)return[];let n=[["references",t.references],["scripts",t.scripts],["assets",t.assets],["templates",t.templates],["resources",t.resources]],r=["Skill support files are rooted at the skill root above. When the skill references `references/...`, `assets/...`, `scripts/...`, `templates/...`, or `resources/...`, read it from this skill root.","","Support roots:"];for(let[i,s]of n)s?.length&&r.push(`- ${i}/: ${ge(`${t.path}/${i}`)} (${s.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:s}of e.slice(0,Je))r.push(`- ${i}/${s.relativePath}: ${ge(s.path)}`);return e.length>Je&&r.push(`- ... ${e.length-Je} more files under ${ge(t.path)}`),r}o(jr,"buildSupportFileContext");function Fr(t,e,n){let r=[];r.push(`<skill name="${$t(t.name)}" location="${$t(t.path)}">`),r.push(""),r.push(`Skill root: ${ge(t.path)}`),t.source==="builtin"?r.push("This is a built-in KodaX skill."):t.source==="project"?r.push("This is a project-defined skill. Project work paths are relative to the project root; skill support files are relative to the skill root above."):t.source==="user"&&r.push("This is a user-defined skill."),r.push("");let i=jr(t);return i.length>0&&(r.push(...i),r.push("")),r.push(e),n.trim()&&(r.push(""),r.push(`User provided arguments: ${n}`)),r.push(""),r.push("</skill>"),r.join(`
|
|
18
|
-
`)}o(Fr,"buildSkillBlock");async function Tr(t,e,n){let r=await D(t.content,e,n);return{content:Fr(t,r,e),disableModelInvocation:t.disableModelInvocation??!1,skill:t}}o(Tr,"expandSkillForLLM");function Cr(t,e){let n=`Skill activated: ${t}`;return e.trim()&&(n+=` with arguments: ${e}`),n}o(Cr,"formatSkillActivationMessage");import{randomUUID as Lr}from"node:crypto";import{mkdir as Mt,open as Nr,readFile as Ge,rename as Or,rm as he,stat as Dr,writeFile as Kr}from"fs/promises";import{basename as Ur,dirname as jt,join as Br}from"path";var Ft=1;function v(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}o(v,"isRecord");function zr(t){return t==="pending"||t==="approved"||t==="rejected"}o(zr,"isReviewStatus");function Tt(t){return t==="foreground_user"||t==="assistant_tool"||t==="background_learning"}o(Tt,"isSkillWriteOrigin");function S(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}o(S,"isStringArray");function ye(t){return v(t)&&Object.values(t).every(e=>typeof e=="string")}o(ye,"isStringRecord");function Wr(t){return t==="record_usage"||t==="create"||t==="patch"||t==="archive"||t==="quarantine"||t==="delete"||t==="consolidate"||t==="direct_mutation"}o(Wr,"isSkillGovernanceAction");function Yr(t){return t==="save_from_run"||t==="revise_capsule"||t==="add_skill_reference"||t==="report_only"}o(Yr,"isWorkflowSuggestedAction");function qr(t){return t==="low"||t==="medium"||t==="high"}o(qr,"isLearningRisk");function Hr(t){return t==="user"||t==="feedback"||t==="project"||t==="reference"||t==="semantic_memory"}o(Hr,"isMemoryKind");function Xr(t){return t==="foreground_user"||t==="assistant_tool"||t==="background_learning"||t==="external_provider"}o(Xr,"isMemoryWriteOrigin");function Jr(t){return t==="primary"||t==="subagent"||t==="workflow_child"||t==="cron"||t==="flush"||t==="compression"}o(Jr,"isMemoryExecutionContext");function Gr(t){return v(t)&&S(t.workflowCapsules)&&S(t.savedWorkflows)&&S(t.constructedAgents)&&S(t.promptReferences)&&(t.action==="none"||t.action==="rewrite_proposal"||t.action==="block_until_manual_review")}o(Gr,"isConsumerImpact");function Vr(t){return v(t)&&Xr(t.writeOrigin)&&Jr(t.executionContext)&&typeof t.sessionId=="string"&&(t.parentSessionId===void 0||typeof t.parentSessionId=="string")&&(t.platform===void 0||typeof t.platform=="string")&&(t.sourceTool===void 0||typeof t.sourceTool=="string")&&S(t.sourceRefs)&&typeof t.completedTurn=="boolean"&&(t.claimKind===void 0||Zr(t.claimKind))&&(t.claimKey===void 0||typeof t.claimKey=="string")&&(t.actionSignature===void 0||typeof t.actionSignature=="string")&&(t.persistenceKind===void 0||t.persistenceKind==="create"||t.persistenceKind==="evidence_update"||t.persistenceKind==="condition_refinement")&&(t.targetRefId===void 0||typeof t.targetRefId=="string")&&(t.targetStorageUri===void 0||typeof t.targetStorageUri=="string")&&(t.preconditions===void 0||typeof t.preconditions=="string")&&(t.applicability===void 0||Qr(t.applicability))&&(t.requestedLifecycle===void 0||t.requestedLifecycle==="active"||t.requestedLifecycle==="provisional")&&(t.episodeOutcome===void 0||t.episodeOutcome==="succeeded"||t.episodeOutcome==="failed")&&(t.verifiedEvidence===void 0||typeof t.verifiedEvidence=="boolean")&&(t.evidenceProjectId===void 0||typeof t.evidenceProjectId=="string")}o(Vr,"isMemoryMetadata");function Zr(t){return t==="fact"||t==="policy"||t==="preference"||t==="procedure"||t==="episode"}o(Zr,"isMemoryClaimKind");function Qr(t){return!v(t)||typeof t.tenantId!="string"?!1:["workspaceId","userId","agentId","projectId","sessionId"].every(e=>t[e]===void 0||typeof t[e]=="string")}o(Qr,"isMemoryApplicability");function ei(t){if(!v(t))return!1;let e=t.destination;return typeof t.proposalId!="string"||!Tt(t.origin)?!1:e==="skill_patch"||e==="skill_create"?t.userLabel==="method_guide"&&typeof t.skillName=="string"&&typeof t.whyDurable=="string"&&typeof t.trigger=="string"&&typeof t.changeSummary=="string"&&S(t.sourceTraceIds)&&typeof t.confidence=="number":e==="workflow_handoff"?t.userLabel==="runnable_workflow"&&S(t.evidenceRunIds)&&S(t.sourceTraceIds)&&Yr(t.suggestedAction)&&typeof t.whyWorkflowNotSkill=="string"&&S(t.requiredWorkflowEvidence)&&qr(t.risk)&&Gr(t.consumerImpact)&&t.appliedByF224===!1:e==="memdir_handoff"?t.userLabel==="context_note"&&Hr(t.memoryKind)&&typeof t.body=="string"&&Vr(t.metadata):e==="reasoning_handoff"?t.userLabel==="reasoning_report"&&typeof t.title=="string"&&typeof t.body=="string"&&S(t.sourceTraceIds):!1}o(ei,"isReviewableProposal");function ti(t){return v(t)?t.kind==="write"?typeof t.relativePath=="string"&&typeof t.content=="string":t.kind==="delete"?typeof t.relativePath=="string":!1:!1}o(ti,"isSkillMutationChange");function ni(t){if(!v(t)||t.kind!=="skill"||typeof t.skillRoot!="string"||t.skillRoot.length===0||!Array.isArray(t.changes)||!t.changes.every(ti))return!1;let e=t.governance;return!(!v(e)||!Wr(e.action)||e.source!=="project"&&e.source!=="user"&&e.source!=="plugin"&&e.source!=="builtin"&&e.source!=="external"||e.ownership!=="system"&&e.ownership!=="human"&&e.ownership!=="background_created"||!Tt(e.origin)||e.pinned!==void 0&&typeof e.pinned!="boolean"||t.snapshotRoot!==void 0&&typeof t.snapshotRoot!="string")}o(ni,"isStoredLearningApplyPlan");function ri(t,e,n){if(!v(t)){n.push(`proposal entry ${e} is not an object`);return}let r=t.proposalId,i=t.status,s=t.proposal,a=t.applyPlan,c=t.createdAt,d=t.updatedAt,p=t.appliedAt,u=t.appliedChangedPaths,f=t.appliedSnapshotPath,l=t.approvedBy,y=t.approvedAt,g=t.approvalPolicyId,_=t.approvalPolicyReason,P=t.approvalExpectedFingerprints,$=t.approvalResultingFingerprints,B=t.rejectedReason;if(typeof r!="string"||r.length===0){n.push(`proposal entry ${e} has no proposalId`);return}if(!zr(i)){n.push(`proposal entry ${r} has invalid status`);return}if(!ei(s)){n.push(`proposal entry ${r} has invalid proposal payload`);return}if(s.proposalId!==r){n.push(`proposal entry ${r} has mismatched proposal payload id`);return}if(typeof c!="string"||typeof d!="string"){n.push(`proposal entry ${r} has invalid timestamps`);return}if(a!==void 0&&!ni(a)){n.push(`proposal entry ${r} has invalid apply plan`);return}if(p!==void 0&&typeof p!="string"){n.push(`proposal entry ${r} has invalid appliedAt`);return}if(u!==void 0&&!S(u)){n.push(`proposal entry ${r} has invalid applied changed paths`);return}if(l!==void 0&&l!=="user"&&l!=="host"){n.push(`proposal entry ${r} has invalid approvedBy`);return}if(y!==void 0&&typeof y!="string"){n.push(`proposal entry ${r} has invalid approvedAt`);return}if(g!==void 0&&typeof g!="string"){n.push(`proposal entry ${r} has invalid approvalPolicyId`);return}if(_!==void 0&&typeof _!="string"){n.push(`proposal entry ${r} has invalid approvalPolicyReason`);return}if(P!==void 0&&!ye(P)){n.push(`proposal entry ${r} has invalid approvalExpectedFingerprints`);return}if($!==void 0&&!ye($)){n.push(`proposal entry ${r} has invalid approvalResultingFingerprints`);return}if(f!==void 0&&typeof f!="string"){n.push(`proposal entry ${r} has invalid applied snapshot path`);return}return{proposalId:r,status:i,proposal:s,...a!==void 0?{applyPlan:a}:{},createdAt:c,updatedAt:d,...typeof p=="string"?{appliedAt:p}:{},...S(u)?{appliedChangedPaths:u}:{},...l==="user"||l==="host"?{approvedBy:l}:{},...typeof y=="string"?{approvedAt:y}:{},...typeof g=="string"?{approvalPolicyId:g}:{},...typeof _=="string"?{approvalPolicyReason:_}:{},...ye(P)?{approvalExpectedFingerprints:P}:{},...ye($)?{approvalResultingFingerprints:$}:{},...typeof f=="string"?{appliedSnapshotPath:f}:{},...typeof B=="string"?{rejectedReason:B}:{}}}o(ri,"parseStoredProposal");function ii(t){let e;try{e=JSON.parse(t)}catch(s){let a=s instanceof Error?s.message:String(s);return{proposals:[],warnings:[`learning proposal store is not valid JSON: ${a}`]}}if(!v(e))return{proposals:[],warnings:["learning proposal store root is not an object"]};if(e.version!==Ft)return{proposals:[],warnings:["learning proposal store version is unsupported"]};if(!Array.isArray(e.proposals))return{proposals:[],warnings:["learning proposal store has no proposals array"]};let n=[];return{proposals:e.proposals.map((s,a)=>ri(s,a,n)).filter(s=>s!==void 0),warnings:n}}o(ii,"parseStoreDocument");async function Ct(t,e){let n={version:Ft,proposals:e},r=jt(t);await Mt(r,{recursive:!0});let i=Br(r,`.${Ur(t)}.kodax-${process.pid}-${Date.now().toString(36)}.tmp`);try{await Kr(i,`${JSON.stringify(n,null,2)}
|
|
19
|
-
`,"utf8"),await Or(i,t)}catch(s){throw await he(i,{force:!0}),s}}o(Ct,"writeStoreDocument");async function E(t){let e;try{e=await Ge(t,"utf8")}catch(n){if(n.code==="ENOENT")return{proposals:[],warnings:[]};throw n}return ii(e)}o(E,"readLearningProposalStore");async function Lt(t,e,n={}){return Ot(t,async()=>{let r=await E(t);if(r.warnings.length>0)throw new Error(`refusing to write corrupt learning proposal store: ${r.warnings.join("; ")}`);let s=(n.now??(()=>new Date().toISOString()))(),a=r.proposals.find(p=>p.proposalId===e.proposalId),c=a?{...a,proposal:e,...n.applyPlan!==void 0?{applyPlan:n.applyPlan}:{},updatedAt:s}:{proposalId:e.proposalId,status:"pending",proposal:e,...n.applyPlan!==void 0?{applyPlan:n.applyPlan}:{},createdAt:s,updatedAt:s},d=a?r.proposals.map(p=>p.proposalId===e.proposalId?c:p):[...r.proposals,c];return await Ct(t,d),c})}o(Lt,"upsertLearningProposal");function Nt(t){let e=de(t),n=e?ae(e):`local-${ce(t)}`;return b("projects",n,"learning","proposals.json")}o(Nt,"resolveLearningProposalStore");async function we(t,e,n,r={}){return Ot(t,async()=>{let i=await E(t);if(i.warnings.length>0)throw new Error(`refusing to write corrupt learning proposal store: ${i.warnings.join("; ")}`);let s=i.proposals.find(d=>d.proposalId===e);if(!s)throw new Error(`learning proposal not found: ${e}`);let a=r.now??(()=>new Date().toISOString()),c={...s,status:n,updatedAt:a(),...n==="approved"&&r.appliedAt!==void 0?{appliedAt:r.appliedAt}:{},...n==="approved"&&r.appliedChangedPaths!==void 0?{appliedChangedPaths:r.appliedChangedPaths}:{},...n==="approved"&&r.appliedSnapshotPath!==void 0?{appliedSnapshotPath:r.appliedSnapshotPath}:{},...n==="approved"&&r.approvedBy!==void 0?{approvedBy:r.approvedBy}:{},...n==="approved"&&r.approvedAt!==void 0?{approvedAt:r.approvedAt}:{},...n==="approved"&&r.approvalPolicyId!==void 0?{approvalPolicyId:r.approvalPolicyId}:{},...n==="approved"&&r.approvalPolicyReason!==void 0?{approvalPolicyReason:r.approvalPolicyReason}:{},...n==="approved"&&r.approvalExpectedFingerprints!==void 0?{approvalExpectedFingerprints:r.approvalExpectedFingerprints}:{},...n==="approved"&&r.approvalResultingFingerprints!==void 0?{approvalResultingFingerprints:r.approvalResultingFingerprints}:{},...n==="rejected"&&r.rejectedReason!==void 0?{rejectedReason:r.rejectedReason}:{rejectedReason:void 0}};return await Ct(t,i.proposals.map(d=>d.proposalId===e?c:d)),c})}o(we,"updateLearningProposalStatus");async function Ot(t,e){let n=`${t}.lock`;await Mt(jt(t),{recursive:!0});let r=await oi(n);try{return await e()}finally{try{await r.handle.close()}finally{await ai(n,r.token)}}}o(Ot,"withStoreWriteLock");async function oi(t){let e=Date.now()+5e3;for(;;)try{let n=await Nr(t,"wx"),r=Lr();try{return await n.writeFile(`${process.pid} ${r}
|
|
20
|
-
`,"utf8"),{handle:n,token:r}}catch(i){throw await n.close(),await he(t,{force:!0}),i}}catch(n){if(!K(n,"EEXIST"))throw n;if(await si(t)){await he(t,{force:!0});continue}if(Date.now()>=e)throw new Error(`learning proposal store lock timed out: ${t}`);await new Promise(r=>setTimeout(r,10))}}o(oi,"acquireStoreWriteLock");async function si(t){try{if(Date.now()-(await Dr(t)).mtimeMs<=3e4)return!1;let e=Dt(await Ge(t,"utf8"));return e!==void 0&&!ci(e.pid)}catch(e){if(K(e,"ENOENT")||K(e,"EPERM")||K(e,"EACCES")||K(e,"EBUSY"))return!1;throw e}}o(si,"isStaleStoreLock");async function ai(t,e){try{Dt(await Ge(t,"utf8"))?.token===e&&await he(t,{force:!0})}catch(n){if(!K(n,"ENOENT"))throw n}}o(ai,"releaseStoreWriteLock");function Dt(t){let e=/^(\d+)(?: ([0-9a-f-]+))?\s*$/i.exec(t);if(e===null)return;let n=Number(e[1]);if(!(!Number.isSafeInteger(n)||n<=0))return e[2]===void 0?{pid:n}:{pid:n,token:e[2]}}o(Dt,"parseLockOwner");function ci(t){try{return process.kill(t,0),!0}catch(e){return!K(e,"ESRCH")}}o(ci,"isProcessAlive");function K(t,e){return v(t)&&t.code===e}o(K,"isFileError");var Kt=/(?:-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----|authorization:\s*bearer\b|\b(?:api[_\s-]?key|password|secret|token)\b\s*(?:[:=]|->|=>))/i,di=/\b(?:api[_\s-]?key|password|secret|token)\b\s+(?:(?:actually|currently|now|presently|really)\s+)?(?:is|was|equals?)\s+(.+)/i,pi=/\b(?:api[_\s-]?key|password|secret|token)\b\s+(?:(?:used|stored|configured|set|issued|deployed|assigned|shared|provided|required)\b(?:\s+(?:by|for|in|on|at|with|from|to)\b)?|(?:for|in|on|at)\b)(?:\s+[\p{L}\p{N}._-]+){0,3}\s+(?:is|was|equals?)\s+(.+)/iu,li=new Set(["active","disabled","empty","expired","invalid","masked","missing","redacted","revoked","rotated","rotated today","rotated yesterday","the configured environment value","the expected environment value","the stored environment value","not available","not configured","not present","not set","unavailable","unknown","unset","valid"]),ui=/\b(?:ignore|disregard|override)\s+(?:(?:all|any|the|these|those)\s+)?(?:(?:previous|prior|earlier|above|system|developer)\s+){0,3}(?:instructions?|prompts?|rules?|directives?|guidelines?)\b/i,fi=/\bforget\s+(?:(?:all|any|the)\s+)?(?:above\b|everything\s+(?:above|before)\b|(?:(?:previous|prior|earlier|system|developer)\s+){0,3}(?:instructions?|prompts?|rules?|directives?|guidelines?)\b)/i,mi=/\byou\s+are\s+now\s+(?:in\s+)?(?:system|developer|assistant|tool)\s+mode\b/i,gi=/<\/?(?:system|developer|assistant|tool|prompt)(?=[\s/>])/i,yi=/(?:->|=>|[→⇒➔➜➝⟶⟹↦])/g,hi=/["'`*_~“”‘’«»‹›()[\]{}]+/g,Bt=/<\/?[^<>]*>/g;function zt(t){return t.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g,"").replace(new RegExp("\\p{Cf}","gu"),"").replace(Bt," ").replace(/[<>]/g,"").replace(/\s+/g," ").trim()}o(zt,"compactMemoryClaim");function Ze(t){return t.normalize("NFKC").replace(new RegExp("\\p{Cf}","gu"),"").replace(yi," = ")}o(Ze,"memoryClaimStructuralView");function Ut(t,e){return zt(Ze(t).replace(Bt,e).replace(hi,e))}o(Ut,"memoryClaimForDetection");function Wt(t){return[Ut(t," "),Ut(t,"")]}o(Wt,"memoryClaimDetectionViews");function wi(t){let n=(di.exec(t)??pi.exec(t))?.[1]?.replace(/^["'`]+|[.!?'"`]+$/g,"").trim();return!(n===void 0||n.length===0||li.has(n.toLowerCase()))}o(wi,"containsSentenceCredential");function Ri(t){return Kt.test(Ze(t))||Wt(t).some(e=>Kt.test(e)||wi(e))}o(Ri,"isRestrictedMemoryContent");function Ve(t){return Ri(t)||gi.test(Ze(t))||Wt(t).some(e=>ui.test(e)||fi.test(e)||mi.test(e))}o(Ve,"containsUnsafeMemoryClaim");function Re(t,e=512){let n=zt(t);if(n.length===0)return;let r=n.slice(0,Math.max(1,e));return Ve(t)||Ve(n)||Ve(r)?void 0:r}o(Re,"sanitizePromptSafeMemoryClaim");import{createHash as Ti}from"node:crypto";import{readdir as kn,readFile as Ci,rename as Li,rm as Sn,writeFile as Ni,mkdir as Oi}from"node:fs/promises";import{basename as A,dirname as nn,join as h,relative as Di,resolve as rt,sep as Ki}from"node:path";import{createHmac as ki,randomBytes as Si,randomUUID as Qe}from"node:crypto";import{mkdir as et,open as bi,readFile as q,rename as Yt,rm as H,stat as vi,writeFile as tt}from"node:fs/promises";import I from"node:path";async function qt(t,e){let n=await Qt(t);return Object.keys(n.entries).length===0?e.lifecycle:n.entries[await Zt(t,e.id)]?.lifecycle??e.lifecycle}o(qt,"resolveManagedLifecycle");async function Ht(t,e,n){await Ii(t,e.id,"archived",n)}o(Ht,"archiveManagedMemoryRef");async function Xt(t,e,n){let r=e.storageUri;if(r===void 0||!ji(t,r))throw new Error("memory ref is not stored under the managed memory root");await Gt(t,async()=>{await H(r,{force:!0}),await Pi(t,I.basename(r)),await Jt(t,e.id,"forgotten",n)})}o(Xt,"forgetManagedMemoryRef");async function Ii(t,e,n,r){await Gt(t,async()=>{await Jt(t,e,n,r)})}o(Ii,"updateLifecycle");async function Jt(t,e,n,r){let i=await Qt(t),s=await Zt(t,e);await Mi(t,{version:1,entries:{...i.entries,[s]:{lifecycle:n,updatedAt:r}}})}o(Jt,"updateLifecycleUnlocked");async function Gt(t,e){let n=I.join(t,".governance","lifecycle.lock");await et(I.dirname(n),{recursive:!0});let r=await xi(n);try{await e()}finally{try{await r.handle.close()}finally{await Ei(n,r.token)}}}o(Gt,"withLifecycleLock");async function xi(t){let e=Date.now()+5e3;for(;;)try{let n=await bi(t,"wx"),r=Qe();try{return await n.writeFile(`${process.pid} ${r}
|
|
21
|
-
`,"utf8"),{handle:n,token:r}}catch(i){throw await n.close(),await H(t,{force:!0}),i}}catch(n){if(!tn(n)&&!Fi(n))throw n;if(await _i(t)){await H(t,{force:!0});continue}if(Date.now()>=e)throw new Error(`memory lifecycle lock timed out: ${t}`);await new Promise(r=>setTimeout(r,10))}}o(xi,"acquireLifecycleLock");async function _i(t){try{if(Date.now()-(await vi(t)).mtimeMs<=3e4)return!1;let e=Vt(await q(t,"utf8"));return e!==void 0&&!Ai(e.pid)}catch(e){if(V(e)||T(e)&&["EPERM","EACCES","EBUSY"].includes(String(e.code)))return!1;throw e}}o(_i,"isStaleLifecycleLock");async function Ei(t,e){try{Vt(await q(t,"utf8"))?.token===e&&await H(t,{force:!0})}catch(n){if(!V(n))throw n}}o(Ei,"releaseLifecycleLock");function Vt(t){let e=/^(\d+)(?: ([0-9a-f-]+))?\s*$/i.exec(t);if(e===null)return;let n=Number(e[1]);if(!(!Number.isSafeInteger(n)||n<=0))return e[2]===void 0?{pid:n}:{pid:n,token:e[2]}}o(Vt,"parseLockOwner");function Ai(t){try{return process.kill(t,0),!0}catch(e){return!(T(e)&&e.code==="ESRCH")}}o(Ai,"isProcessAlive");async function Pi(t,e){let n=I.join(t,"MEMORY.md"),r=`${n}.${Qe()}.tmp`;try{let s=(await q(n,"utf8")).split(/\r?\n/).filter(a=>!a.includes(`(${e})`)).join(`
|
|
22
|
-
`);await tt(r,s.endsWith(`
|
|
23
|
-
`)||s.length===0?s:`${s}
|
|
24
|
-
`,"utf8"),await Yt(r,n)}catch(i){if(await H(r,{force:!0}),!V(i))throw i}}o(Pi,"removeIndexLine");async function Zt(t,e){return ki("sha256",await $i(t)).update(e).digest("hex")}o(Zt,"tombstoneKey");async function $i(t){let e=I.join(t,".governance","tombstone.key");try{return await q(e)}catch(r){if(!V(r))throw r}await et(I.dirname(e),{recursive:!0});let n=Si(32);try{return await tt(e,n,{flag:"wx"}),n}catch(r){if(!tn(r))throw r;return q(e)}}o($i,"readOrCreateKey");async function Qt(t){try{let e=JSON.parse(await q(en(t),"utf8"));if(!T(e)||e.version!==1||!T(e.entries))throw new Error("invalid memory lifecycle state");let n={};for(let[r,i]of Object.entries(e.entries)){if(!/^[0-9a-f]{64}$/.test(r)||!T(i))throw new Error("invalid memory lifecycle entry");if(i.lifecycle!=="archived"&&i.lifecycle!=="forgotten"||typeof i.updatedAt!="string")throw new Error("invalid memory lifecycle entry");n[r]={lifecycle:i.lifecycle,updatedAt:i.updatedAt}}return{version:1,entries:n}}catch(e){if(V(e))return{version:1,entries:{}};throw e}}o(Qt,"readLifecycleState");async function Mi(t,e){let n=en(t);await et(I.dirname(n),{recursive:!0});let r=`${n}.${Qe()}.tmp`;try{await tt(r,`${JSON.stringify(e,null,2)}
|
|
25
|
-
`,"utf8"),await Yt(r,n)}catch(i){throw await H(r,{force:!0}),i}}o(Mi,"writeState");function en(t){return I.join(t,".governance","lifecycle.json")}o(en,"statePath");function ji(t,e){let n=I.resolve(t);return I.resolve(e).startsWith(`${n}${I.sep}`)}o(ji,"isWithin");function T(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}o(T,"isRecord");function V(t){return T(t)&&t.code==="ENOENT"}o(V,"isMissing");function tn(t){return T(t)&&t.code==="EEXIST"}o(tn,"isAlreadyExists");function Fi(t){return T(t)?t.code==="EBUSY"?!0:process.platform==="win32"&&(t.code==="EPERM"||t.code==="EACCES"):!1}o(Fi,"isTransientLockContention");var ee="missing",bn=1,Ui=1440*60*1e3,Bi=2,zi=200;function Wi(t){return new ve(t)}o(Wi,"createMemoryControlPlane");var ve=class{static{o(this,"MemoryControlPlane")}cwd;learningStorePath;memoryRoot;now;onEvent;projectDocs;extraRefs;sessionId;sessionLineage;artifactLedger;discoverSkills;memoryReviewer;identity;applicability;scopedRoots;constructor(e){this.cwd=e.cwd,this.learningStorePath=e.learningStorePath??Nt(e.cwd),this.identity=e.identity,this.applicability=e.identity?.projectId!==void 0?{tenantId:e.identity.tenantId,projectId:e.identity.projectId}:void 0,this.memoryRoot=e.memoryRoot??(e.identity?.projectId!==void 0?O(e.identity,"project"):pe(e.cwd)),this.scopedRoots=e.memoryRoot!==void 0||e.identity===void 0?[]:qi(e.identity),this.now=e.now??(()=>new Date().toISOString()),this.onEvent=e.onEvent,this.projectDocs=e.projectDocs??Yi(e.cwd),this.extraRefs=e.extraRefs??[],this.sessionId=e.sessionId??"current",this.sessionLineage=e.sessionLineage,this.artifactLedger=e.artifactLedger??[],this.discoverSkills=e.discoverSkills??!0,this.memoryReviewer=e.memoryReviewer}async listInbox(){let e=await E(this.learningStorePath);if(e.warnings.length>0)return[];let n=[];for(let r of e.proposals){if(r.status!=="pending")continue;let i=await this.projectLearningProposal(r);i!==void 0&&n.push(i)}return n}async showProposal(e){let n=await E(this.learningStorePath);if(n.warnings.length>0)return;let r=n.proposals.find(i=>Z(i.proposalId)===e);return r===void 0?void 0:this.projectLearningProposal(r)}async approveProposal(e,n){let r=await this.showProposal(e);if(r===void 0)return x(e,"memory proposal not found");if(n===void 0)return x(e,"approval requires fingerprints from a shown proposal preview");let i={proposalId:r.id,approvedBy:"user",approvedAt:this.now(),expectedFingerprints:n},a=await this.adapterForProposal(r).applyProposal(r,i);return a.applied&&this.emit({type:"proposal.approved",proposalId:e}),a}async rejectProposal(e,n){let r=st(e);if(r===void 0)return{proposalId:e,rejected:!1,skippedReason:`invalid memory proposal id: ${e}`,warnings:[]};let i=await this.showProposal(e);if(i===void 0)return{proposalId:e,rejected:!1,skippedReason:"memory proposal not found",warnings:[]};await we(this.learningStorePath,r,"rejected",n!==void 0&&n.trim().length>0?{rejectedReason:n}:{}),this.emit({type:"proposal.rejected",proposalId:e});let s=n?.trim(),a,c=[];if(s!==void 0&&s.length>0)try{a=await this.reviewMemoryFeedback({trigger:"proposal_rejected",userFeedback:s,sourceRefs:i.sourceRefs.map(d=>d.id),candidateRefIds:[...i.targetRefs.map(d=>d.id),...i.sourceRefs.map(d=>d.id)]}),c=a.warnings}catch(d){c=[`memory feedback review failed: ${hn(d)}`]}return{proposalId:e,rejected:!0,...a!==void 0?{review:a}:{},warnings:c}}async listRefs(e={}){let n=[];n.push(...await this.listLearningRefs());for(let r of this.memdirAdapters())n.push(...await r.listRefs(e));return n.push(...this.listSessionTraceRefs()),n.push(...this.listArtifactLedgerRefs()),n.push(...await this.listProjectDocRefs()),n.push(...await this.listSkillRefs()),n.push(...this.extraRefs),n.filter(r=>dt(r,e))}async readRef(e){return e.kind==="learning_proposal"||e.kind==="reasoning_report"?this.readLearningRef(e):e.kind==="memdir"?this.memdirAdapter().readRef(e):e.kind==="session_trace"?this.readSessionTraceRef(e):e.kind==="artifact_ledger"?this.readArtifactLedgerRef(e):ct(e,this.now)}async archiveRef(e){let n=(await this.listRefs()).find(r=>r.id===e);return n?.kind!=="memdir"?Rn(e,"archive"):(await Ht(this.memoryRootForRef(n),n,this.now()),{refId:e,operation:"archive",acknowledged:!0,residualSourceRefs:n.sourceRefs,warnings:[]})}async forgetRef(e){return this.removeManagedRef(e,"forget")}async purgeRef(e){return this.removeManagedRef(e,"purge")}async removeManagedRef(e,n){let r=(await this.listRefs()).find(i=>i.id===e);return r?.kind!=="memdir"?Rn(e,n):(await Xt(this.memoryRootForRef(r),r,this.now()),{refId:e,operation:n,acknowledged:!0,residualSourceRefs:r.sourceRefs,warnings:n==="purge"&&r.sourceRefs.length>0?["source carriers follow their independent retention lifecycle"]:[]})}async runCurator(e={}){let n=await this.listRefs({includePrivate:e.includePrivate,includeSensitive:e.includeSensitive}),r=this.buildGovernanceReport(n);return this.emit({type:"curator.completed",reportId:r.reportId}),r}async maybeRunAutoCurator(e={}){if(e.enabled===!1)return{ran:!1,skippedReason:"disabled"};let n=this.now(),r=Math.max(0,e.intervalMs??Ui),i=Math.max(1,e.minRefs??Bi),s=so(this.memoryRoot),a=await po(s),c=a?.lastCheckedAt??a?.lastRunAt,d=c===void 0?void 0:dn(c,r);if(d!==void 0&&mo(d,n)>0)return{ran:!1,skippedReason:"not_due",nextEligibleAt:d};let p=(await this.listRefs({includePrivate:e.includePrivate,includeSensitive:e.includeSensitive})).filter(go);if(p.length<i)return{ran:!1,skippedReason:"insufficient_refs"};let u=this.buildGovernanceReport(p),f=ao(this.memoryRoot,u);return await xe(f,`${JSON.stringify(u,null,2)}
|
|
26
|
-
`),await co(this.memoryRoot,zi),await lo(s,{version:bn,lastCheckedAt:n,lastRunAt:n,lastInventoryFingerprint:m(pn(p)),lastReportPath:f}),this.emit({type:"curator.completed",reportId:u.reportId}),{ran:!0,report:u,reportPath:f,nextEligibleAt:dn(n,r)}}async buildMemoryPack(e){let n=this.now(),r=mn(e),i=m(r);if(e.ignoreMemory===!0||To(e.task))return{generatedAt:n,taskFingerprint:i,memoryRevision:m("suppressed"),candidates:[],promptHints:[],hints:[],omitted:["memory intentionally suppressed by request"],traceMetadata:{selectedRefIds:[],omittedRefIds:[],taskFingerprint:i,suppressed:!0}};let a=(await this.listRefs({includePrivate:e.includePrivate,includeSensitive:e.includeSensitive})).filter(l=>xo(l,e)).sort((l,y)=>gn(y,e)-gn(l,e)||Se(y,r)-Se(l,r)||l.id.localeCompare(y.id)),c=Math.max(0,e.maxCandidates??12),d=Math.min(c,Math.max(0,e.maxHints??5)),p=a.slice(0,c),u=await this.buildPackHints(p,{...e,includeSnippets:!1}),f=await this.buildPackHints(p.slice(0,d),e);return this.emit({type:"pack.selected",refIds:f.map(l=>l.ref.id)}),{generatedAt:n,taskFingerprint:i,memoryRevision:m(pn(a)),candidates:u,promptHints:f,hints:f,omitted:a.slice(c).map(l=>l.id),traceMetadata:{selectedRefIds:f.map(l=>l.ref.id),omittedRefIds:a.slice(c).map(l=>l.id),taskFingerprint:i,suppressed:!1}}}async reviewMemoryFeedback(e){let n=this.now(),r=e.sourceRefs??[],i=await this.selectReviewCandidateRefs(e),s={trigger:e.trigger,userFeedback:e.userFeedback??e.episodeDigest?.summary??"",...e.task!==void 0?{task:e.task}:{},sourceRefs:r,candidateRefs:i.candidateRefs,warnings:i.warnings};if(this.memoryReviewer===void 0){let d={trigger:e.trigger,createdAt:n,sourceRefs:r,candidateRefs:i.candidateRefs,actions:[],warnings:[...i.warnings,"memory reviewer unavailable; semantic memory review was not run"],...e.episodeDigest!==void 0?{episodeDigest:e.episodeDigest}:{}};return this.emit({type:"review.completed",trigger:e.trigger,actionCount:0}),d}let a=await this.memoryReviewer(s),c=e.episodeDigest===void 0?a:{...a,episodeDigest:e.episodeDigest};return this.emit({type:"review.completed",trigger:e.trigger,actionCount:c.actions.length}),c}async persistReviewPlan(e){return(await this.persistReviewPlanWithDecisions(e)).proposalIds}async persistReviewPlanWithDecisions(e){let n=[],r=[],i=await this.listRefs({includePrivate:!0}),s=(await E(this.learningStorePath)).proposals;for(let a=0;a<e.actions.length;a+=1){let c=e.actions[a],d=await this.consultReviewAction(e,c,a,i);if(d.kind==="conflict"||d.kind==="no_action"||d.kind==="reject"||d.kind==="quarantine"){r.push(d);continue}let p=d.existingRefId===void 0?void 0:i.find(P=>P.id===d.existingRefId),u=d.kind==="evidence_update"&&p!==void 0?$o((await this.readRef(p)).body):c.proposedBody?.trim();if(u===void 0||u.length===0){r.push({actionIndex:a,kind:"reject",reason:"memory proposal body is empty",...d.existingRefId!==void 0?{existingRefId:d.existingRefId}:{}});continue}let f=`memory-review-${m([e.trigger,...e.sourceRefs,d.kind,d.existingRefId??"",c.summary,u].join("\0")).slice(0,24)}`,l=e.episodeDigest,y=jo([...p?.sourceRefs??[],...l?.evidenceRefs??e.sourceRefs]),g=this.resolveReviewMemoryPlacement(e,c,p,s),_={destination:"memdir_handoff",proposalId:f,origin:"background_learning",userLabel:"context_note",memoryKind:g.memoryKind,body:u,metadata:{writeOrigin:"background_learning",executionContext:"primary",sessionId:l?.sessionId??"memory-review",sourceRefs:y,completedTurn:!0,persistenceKind:d.kind,...c.claimKind!==void 0?{claimKind:c.claimKind}:{},...c.claimKey!==void 0?{claimKey:c.claimKey}:{},...c.actionSignature!==void 0?{actionSignature:c.actionSignature}:{},...c.preconditions!==void 0?{preconditions:c.preconditions}:{},...g.applicability!==void 0?{applicability:g.applicability}:{},requestedLifecycle:g.requestedLifecycle,...l!==void 0?{episodeOutcome:l.outcome,verifiedEvidence:ot(l),...this.identity?.projectId!==void 0?{evidenceProjectId:this.identity.projectId}:{}}:{},...p!==void 0?{targetRefId:p.id,...p.storageUri!==void 0?{targetStorageUri:p.storageUri}:{}}:{}}};await Lt(this.learningStorePath,_,{now:this.now}),n.push(f),r.push({...d,proposalId:f}),this.emit({type:"proposal.created",proposalId:Z(f)})}return{proposalIds:n,decisions:r}}resolveReviewMemoryPlacement(e,n,r,i){if(n.claimKind==="preference"&&(e.trigger==="explicit_remember"||e.trigger==="user_correction")&&this.identity?.userId!==void 0)return{memoryKind:"user",applicability:{tenantId:this.identity.tenantId,userId:this.identity.userId},requestedLifecycle:"active"};if(n.claimKind!=="procedure"||n.claimKey===void 0||this.identity===void 0)return this.projectPlacement(n.claimKind);let s=e.episodeDigest,a=s!==void 0&&ot(s),c=Po(n.claimKey,i,a&&s?.outcome==="succeeded"?this.identity.projectId:void 0,a&&s?.outcome==="failed");if(!(r?.scope==="agent"||c.projects.size>=2))return this.projectPlacement("procedure");let p=c.successes>=3&&c.projects.size>=2&&!c.hasCounterexample;return{memoryKind:"semantic_memory",applicability:{tenantId:this.identity.tenantId,agentId:this.identity.agentId},requestedLifecycle:p?"active":"provisional"}}projectPlacement(e){return this.identity?.projectId===void 0?{memoryKind:"project",requestedLifecycle:"active"}:{memoryKind:"project",applicability:{tenantId:this.identity.tenantId,...e==="procedure"?{agentId:this.identity.agentId}:{},projectId:this.identity.projectId},requestedLifecycle:"active"}}async reviewEpisode(e,n){let r=await this.reviewMemoryFeedback({trigger:"episode_completed",episodeDigest:e,userFeedback:e.summary,task:e.objective,sourceRefs:e.evidenceRefs});if(wn(n))return Oo(r,"episode review timed out");let i=await this.persistReviewPlanWithDecisions(r),s=i.proposalIds,a=[],c=[...r.warnings];for(let d of i.decisions){if(wn(n)){c.push("episode review timed out before governed apply");break}let p=d.proposalId;if(p===void 0)continue;let u=r.actions[d.actionIndex];if(u===void 0||!Eo(u,e))continue;let f=await this.applyHostEligibleProposal(Z(p),`${Ne}:episode-promotion`,"verified low-risk episode memory");f.applied?a.push(p):f.skippedReason!==void 0&&c.push(f.skippedReason)}return{plan:r,proposalIds:s,appliedProposalIds:a,decisions:i.decisions,warnings:c}}async consultReviewAction(e,n,r,i){if(n.action==="conflict_report"||n.relationship==="conflict")return{actionIndex:r,kind:"conflict",reason:"review reported an unresolved contradiction"};if(n.action==="quarantine"||Mo(n.proposedBody??""))return{actionIndex:r,kind:"quarantine",reason:"memory content is restricted or explicitly quarantined"};if(n.action!=="write_memdir"&&n.action!=="patch_memdir"||n.proposedBody===void 0||n.proposedBody.trim().length===0)return{actionIndex:r,kind:"reject",reason:"review action is not a supported durable-memory mutation"};let s=Ao(n,e,i);if(s===void 0)return n.action==="patch_memdir"?{actionIndex:r,kind:"reject",reason:"patch target is missing or governance-incompatible"}:{actionIndex:r,kind:"create",reason:"no compatible governed claim exists"};if(s.lifecycle==="quarantined")return{actionIndex:r,kind:"quarantine",existingRefId:s.id,reason:"compatible claim is quarantined"};if(s.lifecycle==="archived"||s.authority==="proposal_only")return{actionIndex:r,kind:"reject",existingRefId:s.id,reason:"compatible claim is not eligible for governed update"};let a=await this.readRef(s),c=n.relationship==="same_claim"||un(a.body)===un(n.proposedBody),p=(e.episodeDigest?.evidenceRefs??e.sourceRefs).some(u=>!s.sourceRefs.includes(u));return c&&!p?{actionIndex:r,kind:"no_action",existingRefId:s.id,reason:"compatible claim and evidence already exist"}:{actionIndex:r,kind:c&&n.relationship!=="condition_refinement"?"evidence_update":"condition_refinement",existingRefId:s.id,reason:c?"compatible claim has new independent evidence":"compatible claim receives a reviewed condition refinement"}}async applyHostEligibleProposal(e,n,r){let i=await this.showProposal(e);if(i===void 0)return x(e,"memory proposal not found");let s=await this.adapterForProposal(i).applyProposal(i,{proposalId:i.id,approvedBy:"host",approvedAt:this.now(),expectedFingerprints:i.expectedFingerprints,policyId:n,policyReason:r});return s.applied&&this.emit({type:"proposal.approved",proposalId:e}),s}async projectLearningProposal(e){if(e.proposal.destination==="memdir_handoff")return this.projectMemdirHandoff(e,e.proposal);if(e.proposal.destination==="reasoning_handoff")return this.projectReasoningHandoff(e,e.proposal)}async projectMemdirHandoff(e,n){let r=this.memoryRootForHandoff(n),i=this.scopedRoots.find(f=>f.root===r),s=Gi(r,n,e.proposalId),a=await Vi(s.targetPath,n,e,i),c=await Zi(s.entrypointPath,i),d=be(e),p={[a.id]:a.bodyFingerprint??ee,[c.id]:c.bodyFingerprint??ee},u={summary:`${n.metadata.persistenceKind==="evidence_update"||n.metadata.persistenceKind==="condition_refinement"?"Update":"Write"} ${n.memoryKind} memory from learning proposal ${e.proposalId}.`,changedRefs:[a,c],changedPaths:[s.targetPath,s.entrypointPath],beforeFingerprints:p,afterFingerprints:{[a.id]:m(s.content)},diff:s.content,warnings:[]};return{id:Z(e.proposalId),action:n.metadata.persistenceKind==="evidence_update"||n.metadata.persistenceKind==="condition_refinement"?"patch_memdir":"write_memdir",targetRefs:[a,c],sourceRefs:[d],expectedFingerprints:p,rationale:`F224 classified this as ${n.memoryKind} memory.`,risk:"medium",preview:u,requiresApproval:!0,createdAt:e.createdAt}}projectReasoningHandoff(e,n){let r=on(e),i=be(e),s={summary:`Record reasoning report handoff: ${n.title}`,changedRefs:[],changedPaths:[],beforeFingerprints:{[r.id]:r.bodyFingerprint??m(n.body)},warnings:["No stable reasoning-strategy carrier exists yet; approval records the handoff only."]};return{id:Z(e.proposalId),action:"no_op",targetRefs:[r],sourceRefs:[i],expectedFingerprints:s.beforeFingerprints,rationale:"Reasoning handoff stays as a report until a stable carrier exists.",risk:"low",preview:s,requiresApproval:!0,createdAt:e.createdAt}}async listLearningRefs(){let e=await E(this.learningStorePath);if(e.warnings.length>0)return[];let n=[];for(let r of e.proposals)(r.proposal.destination==="memdir_handoff"||r.proposal.destination==="reasoning_handoff")&&n.push(be(r)),r.proposal.destination==="reasoning_handoff"&&n.push(on(r));return n}async readLearningRef(e){let n=e.kind==="reasoning_report"?e.id.replace(/^reasoning_report:/,""):e.id.replace(/^learning_proposal:/,""),r=await E(this.learningStorePath),i=r.proposals.find(a=>a.proposalId===n);if(i===void 0)return{ref:e,body:"",bodyFingerprint:m(""),readAt:this.now(),warnings:[`learning proposal not found: ${n}`]};let s=at(i);return{ref:{...e,bodyFingerprint:m(s)},body:s,bodyFingerprint:m(s),readAt:this.now(),warnings:r.warnings}}async listProjectDocRefs(){let e=[];for(let n of this.projectDocs){let r=await C(n);r.exists&&e.push({kind:"project_doc",id:`project_doc:${Di(this.cwd,n).replace(/\\/g,"/")}`,scope:"project",title:A(n),owner:"project",lifecycle:"readonly",authority:"read_only",visibility:"prompt_safe",sourceRefs:[],relatedRefs:[],bodyFingerprint:m(r.content),storageUri:n})}return e}listSessionTraceRefs(){return this.sessionLineage===void 0?[]:this.sessionLineage.entries.map(e=>Hi(this.sessionId,e))}listArtifactLedgerRefs(){return this.artifactLedger.map(e=>Xi(this.sessionId,e))}readSessionTraceRef(e){let n=sn(e.id,"session_trace",this.sessionId),r=this.sessionLineage?.entries.find(s=>s.id===n),i=r===void 0?"":_e(r);return{ref:{...e,bodyFingerprint:m(i)},body:i,bodyFingerprint:m(i),readAt:this.now(),warnings:r===void 0?[`session trace entry not found: ${e.id}`]:[]}}readArtifactLedgerRef(e){let n=sn(e.id,"artifact_ledger",this.sessionId),r=this.artifactLedger.find(s=>s.id===n),i=r===void 0?"":_e(r);return{ref:{...e,bodyFingerprint:m(i)},body:i,bodyFingerprint:m(i),readAt:this.now(),warnings:r===void 0?[`artifact ledger entry not found: ${e.id}`]:[]}}async listSkillRefs(){if(!this.discoverSkills)return[];let e;try{e=(await Xe(this.cwd)).list()}catch{return[]}return e.map(n=>({kind:"skill",id:`skill:${n.name}`,scope:n.source==="builtin"?"builtin":n.source==="user"?"user":"project",title:n.name,owner:n.source==="builtin"?"kodax":n.source==="user"?"user":"project",lifecycle:n.source==="builtin"?"readonly":"active",authority:"read_only",visibility:"prompt_safe",sourceRefs:[],relatedRefs:[],storageUri:h(n.path,"SKILL.md")}))}async buildPackHints(e,n){let r=[];for(let i of e){let s=n.includeSnippets===!0?await this.readRef(i):void 0,a=Re(i.title??i.id,240)??i.id,c=s===void 0||s.body.trim().length===0?void 0:n.purpose==="deliberate_query"||n.purpose==="intervention"?Lo(s.body):yn(s.body),d=c===void 0?void 0:Re(c,512);r.push({ref:i,hook:a,reason:Co(i,mn(n)),...d!==void 0&&s!==void 0?{bodySnippet:d,bodyFingerprint:s.bodyFingerprint}:i.bodyFingerprint!==void 0?{bodyFingerprint:i.bodyFingerprint}:{}})}return r}async selectReviewCandidateRefs(e){let n=Math.max(0,e.maxRefs??6);if(n===0)return{candidateRefs:[],warnings:[]};let r=await this.listRefs({includePrivate:e.includePrivate,includeSensitive:e.includeSensitive}),i=[],s=e.candidateRefIds!==void 0&&e.candidateRefIds.length>0?Fo(r,e.candidateRefIds,n,i):r.filter(_o).sort((c,d)=>Se(d,fn(e))-Se(c,fn(e))).slice(0,n),a=[];for(let c of s)a.push(await this.readReviewCandidateRef(c));return{candidateRefs:a,warnings:i}}async readReviewCandidateRef(e){try{let n=await this.readRef(e);return{ref:n.ref,...n.body.trim().length>0?{bodySnippet:yn(n.body)}:{},bodyFingerprint:n.bodyFingerprint,warnings:n.warnings}}catch(n){return{ref:e,...e.bodyFingerprint!==void 0?{bodyFingerprint:e.bodyFingerprint}:{},warnings:[`failed to read memory ref: ${hn(n)}`]}}}adapterForProposal(e){return e.action==="write_memdir"||e.action==="patch_memdir"?this.memdirAdapter():new it(this.learningStorePath,this.now)}memdirAdapter(){return this.memdirAdapters()[0]??new Q(this.memoryRoot,this.learningStorePath,this.now)}memdirAdapters(){return this.scopedRoots.length===0?[new Q(this.memoryRoot,this.learningStorePath,this.now,this.applicability,"project")]:this.scopedRoots.map(e=>new Q(e.root,this.learningStorePath,this.now,e.applicability,e.scope))}memoryRootForHandoff(e){let n=e.memoryKind==="user"?"user":e.memoryKind==="semantic_memory"?"agent":"project";return this.scopedRoots.find(r=>r.scope===n)?.root??this.memoryRoot}memoryRootForRef(e){let n=e.storageUri===void 0?void 0:rt(e.storageUri);return this.scopedRoots.find(r=>n?.startsWith(`${rt(r.root)}${Ki}`))?.root??this.memoryRoot}emit(e){this.onEvent?.(e)}buildGovernanceReport(e){let n=this.now(),r=wo(e);return{reportId:`memory-governance:${m(`${n}:${r.length}`).slice(0,12)}`,generatedAt:n,findings:r.length>0?r:[{kind:"no_op",severity:"info",refIds:[],summary:"No memory governance findings.",suggestedAction:"no_op"}],warnings:[]}}},it=class{static{o(this,"LearningHandoffAdapter")}learningStorePath;now;kind="learning_proposal";constructor(e,n){this.learningStorePath=e,this.now=n}async listRefs(e={}){let n=await E(this.learningStorePath);return n.warnings.length>0?[]:n.proposals.filter(r=>r.proposal.destination==="memdir_handoff"||r.proposal.destination==="reasoning_handoff").map(be).filter(r=>dt(r,e))}async readRef(e){return ct(e,this.now)}async previewProposal(e){return e.preview}async applyProposal(e,n){let r=st(e.id);if(r===void 0)return x(e.id,"invalid memory proposal id");if(!No(e.expectedFingerprints,n.expectedFingerprints))return x(e.id,"approval fingerprints do not match proposal preview");let i=await we(this.learningStorePath,r,"approved",{appliedChangedPaths:[],approvedBy:n.approvedBy,approvedAt:n.approvedAt,approvalPolicyId:n.policyId,approvalPolicyReason:n.policyReason,approvalExpectedFingerprints:n.expectedFingerprints,approvalResultingFingerprints:n.expectedFingerprints,now:this.now});return{proposalId:e.id,applied:!0,changedRefs:e.targetRefs,changedPaths:[],warnings:i.status==="approved"?[]:["proposal status did not become approved"]}}},Q=class{static{o(this,"MemdirMemoryAdapter")}memoryRoot;learningStorePath;now;applicability;scope;kind="memdir";constructor(e,n,r,i,s="project"){this.memoryRoot=e,this.learningStorePath=n,this.now=r,this.applicability=i,this.scope=s}async listRefs(e={}){let n=[],r=this.applicability===void 0?void 0:await E(this.learningStorePath),i;try{i=await kn(this.memoryRoot,{withFileTypes:!0})}catch(s){if(pt(s))return[];throw s}for(let s of i){if(!s.isFile()||!s.name.endsWith(".md")||s.name==="MEMORY.md")continue;let a=h(this.memoryRoot,s.name),c=await C(a);if(!c.exists)continue;let d=Qi(a,c.content),p=await qt(this.memoryRoot,d);if(p==="forgotten")continue;let u=p===d.lifecycle?d:{...d,lifecycle:p};if(this.applicability===void 0){n.push(u);continue}let f=Ie(u,this.scope,this.applicability),l=eo(r?.proposals??[],f,c.content),y=l?.proposal.destination==="memdir_handoff"?l.proposal.metadata:void 0,g=y?.applicability===void 0?f:Ie(u,this.scope,y.applicability);n.push(l===void 0?{...f,lifecycle:"provisional",authority:"proposal_only"}:{...g,lifecycle:g.lifecycle==="archived"?"archived":y?.requestedLifecycle??"active",sourceRefs:l.proposal.destination==="memdir_handoff"?l.proposal.metadata.sourceRefs:g.sourceRefs,...l.proposal.destination==="memdir_handoff"&&l.proposal.metadata.claimKind!==void 0?{claimKind:l.proposal.metadata.claimKind}:{},...l.proposal.destination==="memdir_handoff"&&l.proposal.metadata.claimKey!==void 0?{claimKey:l.proposal.metadata.claimKey}:{},...l.proposal.destination==="memdir_handoff"&&l.proposal.metadata.actionSignature!==void 0?{actionSignature:l.proposal.metadata.actionSignature}:{},applyReceiptRef:`learning_proposal:${l.proposalId}`,expectedFingerprint:l.approvalExpectedFingerprints?.[g.id],resultingFingerprint:l.approvalResultingFingerprints?.[g.id]})}return n.filter(s=>dt(s,e))}async readRef(e){return ct(e,this.now)}async previewProposal(e){return e.preview}async applyProposal(e,n){let r=st(e.id);if(r===void 0)return x(e.id,"invalid memory proposal id");let i=e.targetRefs.find(L=>L.kind==="memdir"&&L.storageUri!==void 0),s=e.targetRefs.find(L=>L.storageUri!==void 0&&A(L.storageUri)==="MEMORY.md");if(i?.storageUri===void 0||s?.storageUri===void 0)return x(e.id,"memory proposal has no memdir target");let a=n.expectedFingerprints[i.id],c=n.expectedFingerprints[s.id];if(a===void 0||c===void 0)return x(e.id,"approval fingerprints do not cover proposal preview");let p=[i,s].find(L=>Io(L));if(p!==void 0)return x(e.id,`${p.id} is not mutable by memory governance`);let u=await C(i.storageUri),f=await C(s.storageUri),l=e.preview.diff??"",y=ro(i.storageUri,l),g=u.exists&&u.content===l,_=io(f.content,i.storageUri,y),P=f.exists&&f.content===_;if(rn(u)!==a&&!g)return x(e.id,"target memory changed after preview");if(rn(f)!==c&&!g&&!P)return x(e.id,"MEMORY.md changed after preview");let $=[],B=[];return g?B.push("target memory already matched proposal content; completing approval"):(await xe(i.storageUri,l),$.push(i.storageUri)),P?B.push("MEMORY.md already contained the proposal index line; completing approval"):(await xe(s.storageUri,_),$.push(s.storageUri)),await we(this.learningStorePath,r,"approved",{appliedAt:this.now(),appliedChangedPaths:[i.storageUri,s.storageUri],approvedBy:n.approvedBy,approvedAt:n.approvedAt,approvalPolicyId:n.policyId,approvalPolicyReason:n.policyReason,approvalExpectedFingerprints:n.expectedFingerprints,approvalResultingFingerprints:{[i.id]:m(l),[s.id]:m(_)},now:this.now}),{proposalId:e.id,applied:!0,changedRefs:e.targetRefs,changedPaths:$,warnings:B}}};function Yi(t){return["README.md","AGENTS.md",h("docs","PRD.md"),h("docs","ADR.md"),h("docs","HLD.md"),h("docs","DD.md"),h("docs","FEATURE_LIST.md")].map(e=>rt(t,e))}o(Yi,"defaultProjectDocs");function qi(t){let e=[];return t.projectId!==void 0&&e.push({root:O(t,"project"),scope:"project",applicability:{tenantId:t.tenantId,projectId:t.projectId}}),t.workspaceId!==void 0&&e.push({root:O(t,"workspace"),scope:"workspace",applicability:{tenantId:t.tenantId,workspaceId:t.workspaceId}}),e.push({root:O(t,"agent"),scope:"agent",applicability:{tenantId:t.tenantId,agentId:t.agentId}}),t.userId!==void 0&&e.push({root:O(t,"user"),scope:"user",applicability:{tenantId:t.tenantId,userId:t.userId}}),e}o(qi,"buildScopedRoots");function Z(t){return`memory:${t}`}o(Z,"memoryProposalId");function st(t){return t.startsWith("memory:")?t.slice(7):void 0}o(st,"parseMemoryProposalId");function m(t){return`sha256:${Ti("sha256").update(t).digest("hex")}`}o(m,"fingerprint");function rn(t){return t.exists?m(t.content):ee}o(rn,"fingerprintOrMissing");function vn(t){return t.status==="pending"?"pending":t.status==="approved"?"trusted":"archived"}o(vn,"lifecycleFromStatus");function be(t){let e=at(t);return{kind:"learning_proposal",id:`learning_proposal:${t.proposalId}`,scope:"project",title:Ji(t),owner:"project",lifecycle:vn(t),authority:"proposal_only",visibility:"prompt_safe",sourceRefs:In(t),relatedRefs:[],bodyFingerprint:m(e),createdAt:t.createdAt,updatedAt:t.updatedAt}}o(be,"learningRefFromEntry");function on(t){let e=t.proposal.destination==="reasoning_handoff"?t.proposal.title:t.proposalId,n=at(t);return{kind:"reasoning_report",id:`reasoning_report:${t.proposalId}`,scope:"project",title:e,owner:"project",lifecycle:vn(t),authority:"proposal_only",visibility:"prompt_safe",sourceRefs:In(t),relatedRefs:[`learning_proposal:${t.proposalId}`],bodyFingerprint:m(n),createdAt:t.createdAt,updatedAt:t.updatedAt}}o(on,"reasoningRefFromEntry");function Hi(t,e){let n=_e(e);return{kind:"session_trace",id:`session_trace:${t}:${e.id}`,scope:"session",title:`Session ${e.type}: ${e.id}`,owner:"project",lifecycle:"provisional",authority:"read_only",visibility:"private",sourceRefs:[],relatedRefs:e.parentId===null?[]:[`session_trace:${t}:${e.parentId}`],version:"2",bodyFingerprint:m(n),createdAt:e.timestamp,updatedAt:e.timestamp}}o(Hi,"sessionTraceRefFromEntry");function Xi(t,e){let n=_e(e);return{kind:"artifact_ledger",id:`artifact_ledger:${t}:${e.id}`,scope:"session",title:e.summary??e.displayTarget??e.target,owner:"project",lifecycle:"provisional",authority:"read_only",visibility:"prompt_safe",sourceRefs:e.sessionEntryId===void 0?[]:[`session_trace:${t}:${e.sessionEntryId}`],relatedRefs:[],bodyFingerprint:m(n),createdAt:e.timestamp,updatedAt:e.timestamp}}o(Xi,"artifactLedgerRefFromEntry");function sn(t,e,n){let r=`${e}:${n}:`;return t.startsWith(r)?t.slice(r.length):""}o(sn,"parseScopedMemoryRefId");function Ji(t){let e=t.proposal;return e.destination==="memdir_handoff"?`${e.memoryKind} memory handoff`:e.destination==="reasoning_handoff"?e.title:e.proposalId}o(Ji,"learningTitle");function In(t){let e=t.proposal;return e.destination==="memdir_handoff"?e.metadata.sourceRefs:e.destination==="reasoning_handoff"?e.sourceTraceIds:[]}o(In,"learningSourceRefs");function at(t){let e=t.proposal;return e.destination==="memdir_handoff"||e.destination==="reasoning_handoff"?e.body:JSON.stringify(e,null,2)}o(at,"learningBody");function Gi(t,e,n){let r=to(e.memoryKind),i=xn(e.body,`${e.memoryKind} memory`),s=no(e.body)||i,a=e.metadata.targetStorageUri===void 0?`${r}_${an(i)}_${an(n)}.md`:A(e.metadata.targetStorageUri),c=e.metadata.targetStorageUri??h(t,a),d=["---",`name: ${cn(i)}`,`description: ${cn(s)}`,`type: ${r}`,"---","",e.body.trim(),""].join(`
|
|
27
|
-
`);return{targetPath:c,entrypointPath:h(t,"MEMORY.md"),content:d,indexLine:`- [${i}](${a}) - ${s}`}}o(Gi,"buildMemdirWritePlan");async function Vi(t,e,n,r){let i=await C(t),s={kind:"memdir",id:`memdir:${A(t)}`,scope:e.memoryKind==="user"?"user":"project",title:xn(e.body,`${e.memoryKind} memory`),owner:e.memoryKind==="user"?"user":"project",lifecycle:i.exists?"active":"pending",authority:"approved_write",visibility:"prompt_safe",sourceRefs:[`learning_proposal:${n.proposalId}`,...e.metadata.sourceRefs],relatedRefs:[],...e.metadata.claimKind!==void 0?{claimKind:e.metadata.claimKind}:{},...e.metadata.claimKey!==void 0?{claimKey:e.metadata.claimKey}:{},...e.metadata.actionSignature!==void 0?{actionSignature:e.metadata.actionSignature}:{},bodyFingerprint:i.exists?m(i.content):ee,storageUri:t,createdAt:n.createdAt,updatedAt:n.updatedAt};return r===void 0?s:Ie(s,r.scope,e.metadata.applicability??r.applicability)}o(Vi,"buildMemdirTargetRef");async function Zi(t,e){let n=await C(t),r={kind:"memdir",id:"memdir:MEMORY.md",scope:"project",title:"MEMORY.md",owner:"project",lifecycle:n.exists?"active":"pending",authority:"approved_write",visibility:"prompt_safe",sourceRefs:[],relatedRefs:[],bodyFingerprint:n.exists?m(n.content):ee,storageUri:t};return e===void 0?r:Ie(r,e.scope,e.applicability)}o(Zi,"buildEntrypointRef");function Qi(t,e){let n=j(e),r=A(t),i=n.frontmatter.type;return{kind:"memdir",id:`memdir:${r}`,scope:i==="user"?"user":"project",title:n.frontmatter.name??r,owner:i==="user"?"user":"project",lifecycle:"active",authority:r==="MEMORY.md"?"read_only":"approved_write",visibility:"prompt_safe",sourceRefs:[],relatedRefs:[],bodyFingerprint:m(e),storageUri:t}}o(Qi,"memdirRefFromFile");function Ie(t,e,n){let r=Le(n),i=t.storageUri===void 0?t.id:A(t.storageUri);return{...t,id:`memdir:${e}:${r}:${i}`,scope:e,scopeId:r,applicability:n}}o(Ie,"decorateScopedRef");function eo(t,e,n){if(e.storageUri===void 0)return;let r=e.storageUri,i=m(n);for(let s=t.length-1;s>=0;s-=1){let a=t[s];if(a.status==="approved"&&a.appliedChangedPaths?.includes(r)===!0&&Object.values(a.approvalResultingFingerprints??{}).includes(i))return a}}o(eo,"findApplyReceipt");function to(t){return t==="user"||t==="feedback"||t==="project"||t==="reference"?t:"project"}o(to,"memoryTypeForHandoff");function xn(t,e){let n=t.split(/\r?\n/).map(r=>r.trim()).find(r=>r.length>0);return n===void 0?e:n.replace(/^#+\s*/,"").slice(0,80)||e}o(xn,"titleFromBody");function no(t){let e=t.replace(/\s+/g," ").trim();if(e.length===0)return;let n=e.search(/[.!?。!?]/);return(n>=0?e.slice(0,n+1):e).slice(0,160)}o(no,"firstSentence");function an(t){let e=t.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,48);return e.length>0?e:"memory"}o(an,"slugify");function cn(t){return JSON.stringify(t.replace(/\r?\n/g," "))}o(cn,"quoteScalar");function ro(t,e){let n=j(e),r=n.frontmatter.name??A(t,".md"),i=n.frontmatter.description??r;return`- [${r}](${A(t)}) - ${i}`}o(ro,"indexLineFromContent");function io(t,e,n){let r=t.trimEnd();if(oo(r,n))return`${r}
|
|
28
|
-
`;let i=A(e).replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=new RegExp(`^.*\\(${i}\\).*$`,"m");return s.test(r)?`${r.replace(s,n)}
|
|
29
|
-
`:r.length>0?`${n}
|
|
30
|
-
${r}
|
|
31
|
-
`:`${n}
|
|
32
|
-
`}o(io,"upsertIndexLine");function oo(t,e){return t.trimEnd().split(/\r?\n/).includes(e)}o(oo,"indexContainsLine");async function C(t){try{return{exists:!0,content:await Ci(t,"utf8")}}catch(e){if(pt(e))return{exists:!1,content:""};throw e}}o(C,"readTextIfExists");async function xe(t,e){await Oi(nn(t),{recursive:!0});let n=h(nn(t),`.${A(t)}.kodax-${process.pid}-${Date.now().toString(36)}.tmp`);try{await Ni(n,e,"utf8"),await Li(n,t)}catch(r){throw await Sn(n,{force:!0}),r}}o(xe,"writeFileAtomic");function so(t){return h(t,".governance","auto-curate-state.json")}o(so,"autoCuratorStatePath");function ao(t,e){let n=ln(e.generatedAt),r=ln(e.reportId);return h(t,".governance","reports",`${n}-${r}.json`)}o(ao,"autoCuratorReportPath");async function co(t,e){if(e<=0)return;let n=h(t,".governance","reports"),r;try{r=await kn(n,{withFileTypes:!0})}catch(s){if(pt(s))return;throw s}let i=r.filter(s=>s.isFile()&&s.name.endsWith(".json")).map(s=>s.name).sort((s,a)=>a.localeCompare(s));for(let s of i.slice(e))await Sn(h(n,s),{force:!0})}o(co,"pruneAutoCuratorReports");async function po(t){let e=await C(t);if(e.exists)try{let n=JSON.parse(e.content);return uo(n)?n:void 0}catch{return}}o(po,"readAutoCuratorState");async function lo(t,e){await xe(t,`${JSON.stringify(e,null,2)}
|
|
33
|
-
`)}o(lo,"writeAutoCuratorState");function uo(t){return fo(t)?t.version===bn&&ke(t.lastCheckedAt)&&ke(t.lastRunAt)&&ke(t.lastInventoryFingerprint)&&ke(t.lastReportPath):!1}o(uo,"isAutoCuratorState");function fo(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}o(fo,"isReadonlyRecord");function ke(t){return t===void 0||typeof t=="string"}o(ke,"optionalStringField");function dn(t,e){let n=Date.parse(t),r=Number.isFinite(n)?n:Date.now();return new Date(r+e).toISOString()}o(dn,"addMs");function mo(t,e){let n=Date.parse(t),r=Date.parse(e);return!Number.isFinite(n)||!Number.isFinite(r)?0:n-r}o(mo,"compareIso");function go(t){return t.kind==="memdir"||t.kind==="learning_proposal"||t.kind==="reasoning_report"}o(go,"isAutoCuratorCandidate");function pn(t){return t.map(e=>[e.id,e.kind,e.scope,e.lifecycle,e.authority,e.visibility,e.bodyFingerprint??"",e.storageUri??"",e.updatedAt??"",e.title??""].join(" ")).sort().join(`
|
|
34
|
-
`)}o(pn,"memoryInventoryPayload");function ln(t){let e=t.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"");return e.length>0?e:"report"}o(ln,"sanitizePathSegment");async function ct(t,e){if(t.storageUri===void 0)return{ref:t,body:"",bodyFingerprint:m(""),readAt:e(),warnings:["memory ref has no storageUri"]};let n=await C(t.storageUri);if(!n.exists)return{ref:t,body:"",bodyFingerprint:m(""),readAt:e(),warnings:[`memory ref storage does not exist: ${t.storageUri}`]};let r=t.kind==="memdir"?j(n.content):void 0;return{ref:{...t,bodyFingerprint:m(n.content)},body:n.content,bodyFingerprint:m(n.content),...r!==void 0?{frontmatter:yo(r.frontmatter)}:{},readAt:e(),warnings:[]}}o(ct,"readStorageBackedRef");function yo(t){let e={};return t.name!==void 0&&(e.name=t.name),t.description!==void 0&&(e.description=t.description),t.type!==void 0&&(e.type=t.type),e}o(yo,"frontmatterRecord");function dt(t,e){return!(e.kinds!==void 0&&!e.kinds.includes(t.kind)||e.scopes!==void 0&&!e.scopes.includes(t.scope)||e.lifecycles!==void 0&&!e.lifecycles.includes(t.lifecycle)||t.visibility==="private"&&e.includePrivate!==!0||t.visibility==="sensitive"&&e.includeSensitive!==!0||e.query!==void 0&&!ho(t,e.query))}o(dt,"matchesFilter");function ho(t,e){let n=e.trim().toLowerCase();return n.length===0?!0:[t.id,t.title??"",t.kind,t.scope,t.owner,...t.sourceRefs,...t.relatedRefs].some(r=>r.toLowerCase().includes(n))}o(ho,"refMatchesQuery");function wo(t){let e=[];e.push(...Ro(t)),e.push(...ko(t)),e.push(...So(t));for(let n of t)n.lifecycle==="stale"&&e.push({kind:"stale",severity:"warning",refIds:[n.id],summary:`${n.id} is stale and excluded from normal memory packs.`,suggestedAction:"archive"}),n.lifecycle==="quarantined"&&e.push({kind:"quarantined",severity:"warning",refIds:[n.id],summary:`${n.id} is quarantined and requires manual review.`,suggestedAction:"conflict_report"});return e}o(wo,"buildGovernanceFindings");function Ro(t){let e=new Map;for(let n of t){if(n.bodyFingerprint===void 0||n.lifecycle==="archived")continue;let r=e.get(n.bodyFingerprint)??[];r.push(n.id),e.set(n.bodyFingerprint,r)}return Array.from(e.entries()).filter(([,n])=>n.length>1).map(([n,r])=>({kind:"duplicate",severity:"warning",refIds:r,summary:`Multiple refs share ${n}.`,suggestedAction:"conflict_report"}))}o(Ro,"duplicateFingerprintFindings");function ko(t){let e=new Map;for(let n of t){let r=bo(n.title);if(r===void 0||n.bodyFingerprint===void 0||n.lifecycle==="archived")continue;let i=e.get(r)??[];i.push(n),e.set(r,i)}return Array.from(e.entries()).flatMap(([n,r])=>{let i=new Set(r.map(s=>s.bodyFingerprint));return r.length<2||i.size<=1?[]:[{kind:"conflict",severity:"warning",refIds:r.map(s=>s.id),summary:`Multiple refs use the title "${n}" with different fingerprints.`,suggestedAction:"conflict_report"}]})}o(ko,"conflictTitleFindings");function So(t){let e=new Set(t.map(n=>n.id));return t.flatMap(n=>{let r=n.relatedRefs.filter(i=>vo(i)&&!e.has(i));return r.length===0?[]:[{kind:"orphaned",severity:"warning",refIds:[n.id,...r],summary:`${n.id} points to missing memory ref(s): ${r.join(", ")}.`,suggestedAction:"conflict_report"}]})}o(So,"orphanedRefFindings");function bo(t){let e=t?.trim().toLowerCase().replace(/\s+/g," ");return e!==void 0&&e.length>0?e:void 0}o(bo,"normalizeConflictTitle");function vo(t){return/^(learning_proposal|reasoning_report|memdir|session_trace|artifact_ledger|skill|project_doc|self_manual|workflow_run|working_context):/.test(t)}o(vo,"isMemoryControlledRefId");function Io(t){return t.authority==="read_only"||t.scope==="builtin"||t.pinned===!0}o(Io,"isProtectedFromMutation");function xo(t,e){return t.applicability!==void 0&&(e.identity===void 0||!se(e.identity,t.applicability))||t.visibility==="private"&&e.includePrivate!==!0||t.visibility==="sensitive"&&e.includeSensitive!==!0||t.authority==="proposal_only"?!1:t.lifecycle==="trusted"||t.lifecycle==="active"||t.lifecycle==="readonly"}o(xo,"isPackEligible");function _o(t){return t.kind!=="memdir"&&t.kind!=="learning_proposal"&&t.kind!=="reasoning_report"?!1:t.lifecycle!=="archived"&&t.lifecycle!=="quarantined"}o(_o,"isReviewCandidateEligible");function Eo(t,e){if(t.confidence!=="high"||t.risk!=="low"||e.visibility!=="prompt_safe"||e.evidenceRefs.length===0||!ot(e)||t.claimKind==="procedure"&&e.outcome!=="succeeded")return!1;let n=t.proposedBody??"";return n.length===0?!1:!/(?:api[_-]?key|authorization:\s*bearer|private key|password|secret|token\s*[:=])/i.test(n)}o(Eo,"isEligibleEpisodePromotion");function Ao(t,e,n){let r=new Set(t.targetRefIds),i=n.find(a=>r.has(a.id));if(i!==void 0)return nt(i,t)?i:void 0;if(r.size>0)return;if(t.claimKey!==void 0){let a=n.find(c=>c.claimKey===t.claimKey&&nt(c,t));if(a!==void 0)return a}let s=new Set(e.candidateRefs.map(a=>a.ref.id));return n.find(a=>s.has(a.id)&&nt(a,t))}o(Ao,"findCompatibleReviewRef");function nt(t,e){return!(t.kind!=="memdir"||t.visibility!=="prompt_safe"||e.claimKind!==void 0&&t.claimKind!==void 0&&t.claimKind!==e.claimKind)}o(nt,"isGovernanceCompatibleReviewRef");function un(t){return j(t).body.replace(/\s+/g," ").trim().toLowerCase()}o(un,"normalizeClaimBody");function Po(t,e,n,r){let i=n===void 0?0:1,s=r,a=new Set;n!==void 0&&a.add(n);for(let c of e){if(c.status==="rejected"||c.proposal.destination!=="memdir_handoff")continue;let d=c.proposal.metadata;if(d.claimKind!=="procedure"||d.claimKey!==t||d.verifiedEvidence!==!0)continue;let p=d.evidenceProjectId??d.applicability?.projectId;d.episodeOutcome==="succeeded"?(i+=1,p!==void 0&&a.add(p)):d.episodeOutcome==="failed"&&(s=!0)}return{successes:i,projects:a,hasCounterexample:s}}o(Po,"procedurePromotionHistory");function ot(t){return t.evidence?.some(e=>(e.grade==="authoritative"||e.grade==="verified")&&(e.source==="user"||e.source==="host"||e.source==="environment"))===!0}o(ot,"hasVerifiedDigestEvidence");function $o(t){return j(t).body.trim()}o($o,"extractClaimBody");function Mo(t){return/(?:api[_-]?key|authorization:\s*bearer|private key|password|secret|token\s*[:=])/i.test(t)||/(?:ignore|disregard|override)\s+(?:all\s+)?(?:previous|prior|system|developer)\s+instructions?/i.test(t)||/<\/?(?:system|developer|assistant|tool|prompt)(?:\s|>)/i.test(t)}o(Mo,"isRestrictedMemoryBody");function jo(t){return[...new Set(t)]}o(jo,"uniqueStrings");function Fo(t,e,n,r){let i=new Map(t.map(a=>[a.id,a])),s=[];for(let a of e.slice(0,n)){let c=i.get(a);c===void 0?r.push(`memory review candidate not found: ${a}`):s.push(c)}return s}o(Fo,"selectRefsById");function fn(t){return[t.task,t.userFeedback].filter(e=>e!==void 0&&e.trim().length>0).join(`
|
|
35
|
-
`)}o(fn,"reviewTask");function To(t){return/\b(ignore|do not use|don't use|without)\s+(project\s+)?memory\b/i.test(t)}o(To,"shouldIgnoreMemory");function mn(t){return[t.task,t.decisionIntent,t.actionSignature].filter(e=>e!==void 0&&e.trim().length>0).join(`
|
|
36
|
-
`)}o(mn,"memoryPackRankingText");function Se(t,e){let n=e.toLowerCase(),r=t.title?.toLowerCase()??"",i=0;t.pinned===!0&&(i+=50),t.scope==="project"&&(i+=20),t.scope==="user"&&(i+=10),(t.lifecycle==="trusted"||t.lifecycle==="readonly")&&(i+=10),r.length>0&&n.includes(r)&&(i+=30);for(let s of r.split(/[^a-z0-9]+/).filter(a=>a.length>=3))n.includes(s)&&(i+=3);return i}o(Se,"scoreRef");function gn(t,e){return e.actionSignature!==void 0&&t.actionSignature!==void 0&&t.actionSignature===e.actionSignature?2:e.decisionIntent!==void 0&&t.claimKey!==void 0&&t.claimKey===e.decisionIntent?1:0}o(gn,"structuredMatchScore");function Co(t,e){let n=t.title??t.id;return e.toLowerCase().includes(n.toLowerCase())?"Exact task/title overlap.":`${t.scope} ${t.kind} is eligible for deterministic recall.`}o(Co,"packReason");function yn(t){return t.replace(/\s+/g," ").trim().slice(0,240)}o(yn,"firstSnippet");function Lo(t){return j(t).body.replace(/```[\s\S]*?```/g," ").replace(/<\/?[^>]+>/g," ").replace(/^\s{0,3}(?:#{1,6}|[-*+]\s+|>\s*)/gm,"").replace(/[`*_~]/g,"").replace(/\s+/g," ").trim().slice(0,512)}o(Lo,"promptSafeClaimSnippet");function hn(t){return t instanceof Error?t.message:String(t)}o(hn,"errorMessage");function _e(t){return JSON.stringify(t,null,2)}o(_e,"stringifyJson");function No(t,e){let n=Object.keys(t).sort(),r=Object.keys(e).sort();return n.length!==r.length?!1:n.every((i,s)=>i===r[s]&&t[i]===e[i])}o(No,"fingerprintsMatch");function x(t,e){return{proposalId:t,applied:!1,changedRefs:[],changedPaths:[],skippedReason:e,warnings:[]}}o(x,"skippedApply");function wn(t){return t?.aborted===!0}o(wn,"isAborted");function Oo(t,e){return{plan:t,proposalIds:[],appliedProposalIds:[],decisions:[],warnings:[...t.warnings,e]}}o(Oo,"cancelledEpisodeReview");function Rn(t,e){return{refId:t,operation:e,acknowledged:!1,residualSourceRefs:[],warnings:["managed memory ref not found"]}}o(Rn,"lifecycleNotFound");function pt(t){return typeof t=="object"&&t!==null&&"code"in t&&t.code==="ENOENT"}o(pt,"isMissingFile");import{randomUUID as En}from"node:crypto";import{mkdir as An,readFile as Do,readdir as Pn,rename as $n,rm as U,stat as Ko,writeFile as Uo}from"node:fs/promises";import w from"node:path";var Bo=5*6e4;async function zo(t,e){if(e.sessionId!==t.sessionId)throw new Error("outcome digest session does not match review-inbox owner");let n={version:1,reviewKey:e.reviewKey,digest:e,ownerSessionRef:t.sessionId,ownerAgentHash:R("agent",t.agentId),...t.projectId!==void 0?{ownerProjectHash:R("project",t.projectId)}:{},createdAt:e.createdAt},r=Ae(t,e.reviewKey);return await $e(r,n),{path:r,entry:n}}o(zo,"persistPendingEpisodeReview");async function Mn(t){let e=Fn(t.tenantId),n=t.agentId===void 0?void 0:R("agent",t.agentId),r=t.projectId===void 0?void 0:R("project",t.projectId),i=await Jo(e),s=[];for(let a of i){await Xo(e,a);let c=w.join(e,a,"pending");for(let d of await lt(c)){let p=await ut(w.join(c,d));p!==void 0&&(n!==void 0&&p.ownerAgentHash!==n||r!==void 0&&p.ownerProjectHash!==r||s.push(p))}}return s.sort((a,c)=>a.createdAt.localeCompare(c.createdAt)||a.reviewKey.localeCompare(c.reviewKey))}o(Mn,"listPendingEpisodeReviews");async function Wo(t,e,n){let r=await jn(t,e,n);return await U(Ae(t,e),{force:!0}),{acknowledged:!0,receiptPath:r}}o(Wo,"completeEpisodeReview");async function Yo(t,e){let n=w.join(Ee(t),"pending"),r=0;for(let i of await lt(n)){let s=w.join(n,i),a=await ut(s);a!==void 0&&a.digest.sequence>e&&(await U(s,{force:!0}),r+=1)}return r}o(Yo,"rewindPendingEpisodeReviews");async function qo(t,e){let n=await Mn({tenantId:t.tenantId,agentId:t.agentId,...t.projectId!==void 0?{projectId:t.projectId}:{}}),r=t.projectId===void 0?n.filter(a=>a.ownerProjectHash===void 0):n,i=Math.max(1,Math.min(8,e.maxEntries??8)),s={reviewed:0,discarded:0,deferred:n.length-r.length,failed:0,failures:[]};for(let a of r.slice(0,i)){let c={...t,sessionId:a.ownerSessionRef},d=await Ho(c,a.reviewKey);if(d!==void 0)try{let p=await e.revalidate(a);if(p==="defer"){await _n(c,a,d),s.deferred+=1;continue}if(p==="discard"){await U(d,{force:!0}),s.discarded+=1;continue}let u=await e.review(a);await jn(c,a.reviewKey,u),await U(d,{force:!0}),s.reviewed+=1}catch(p){await _n(c,a,d),s.failed+=1,s.failures.push({reviewKey:a.reviewKey,error:p instanceof Error?p.message:String(p)})}}return s.deferred+=Math.max(0,r.length-i),s}o(qo,"drainPendingEpisodeReviews");async function Ho(t,e){let n=w.join(Ee(t),"processing");await An(n,{recursive:!0});let r=w.join(n,`${Pe(e)}.${En()}.json`);try{return await $n(Ae(t,e),r),r}catch(i){if(re(i))return;throw i}}o(Ho,"claimPendingReview");async function _n(t,e,n){await $e(Ae(t,e.reviewKey),e),await U(n,{force:!0})}o(_n,"restoreClaim");async function Xo(t,e){let n=w.join(t,e),r=w.join(n,"processing");for(let i of await lt(r)){let s=w.join(r,i);try{if(Date.now()-(await Ko(s)).mtimeMs<=Bo)continue;let a=await ut(s);if(a===void 0)continue;await $e(w.join(n,"pending",`${Pe(a.reviewKey)}.json`),a),await U(s,{force:!0})}catch(a){if(!re(a))throw a}}}o(Xo,"recoverStaleClaims");async function jn(t,e,n){let r={version:1,reviewKey:e,proposalIds:[...n],completedAt:new Date().toISOString()},i=w.join(Ee(t),"receipts",`${Pe(e)}.json`);return await $e(i,r),i}o(jn,"writeEpisodeReviewReceipt");function Fn(t){return b("memory-review-inbox",R("tenant",t))}o(Fn,"tenantInboxRoot");function Ee(t){return w.join(Fn(t.tenantId),R("session",t.sessionId))}o(Ee,"sessionInboxRoot");function Ae(t,e){return w.join(Ee(t),"pending",`${Pe(e)}.json`)}o(Ae,"pendingPath");function Pe(t){return R("review",t)}o(Pe,"safeKey");async function $e(t,e){await An(w.dirname(t),{recursive:!0});let n=`${t}.${En()}.tmp`;try{await Uo(n,`${JSON.stringify(e,null,2)}
|
|
37
|
-
`,"utf8"),await $n(n,t)}catch(r){throw await U(n,{force:!0}),r}}o($e,"writeJsonAtomic");async function Jo(t){try{return(await Pn(t,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>e.name)}catch(e){if(re(e))return[];throw e}}o(Jo,"readDirectories");async function lt(t){try{return(await Pn(t,{withFileTypes:!0})).filter(e=>e.isFile()&&e.name.endsWith(".json")).map(e=>e.name)}catch(e){if(re(e))return[];throw e}}o(lt,"readJsonFiles");async function ut(t){try{let e=JSON.parse(await Do(t,"utf8"));return!ne(e)||e.version!==1||typeof e.reviewKey!="string"?te(t,"invalid envelope"):typeof e.ownerSessionRef!="string"||typeof e.ownerAgentHash!="string"?te(t,"invalid owner"):e.ownerProjectHash!==void 0&&typeof e.ownerProjectHash!="string"?te(t,"invalid project owner"):typeof e.createdAt!="string"||!Go(e.digest)?te(t,"invalid digest"):e}catch(e){if(re(e))return;if(e instanceof SyntaxError)return te(t,"invalid JSON");throw e}}o(ut,"readPending");function te(t,e){N({source:"memory.review-inbox",level:"warn",message:"Invalid pending episode review was skipped.",detail:{filePath:t,reason:e}})}o(te,"invalidPending");function Go(t){return ne(t)?typeof t.id=="string"&&typeof t.reviewKey=="string"&&typeof t.sessionId=="string"&&typeof t.branchId=="string"&&Number.isSafeInteger(t.sequence)&&typeof t.objective=="string"&&typeof t.approach=="string"&&(t.outcome==="succeeded"||t.outcome==="failed")&&typeof t.summary=="string"&&(t.actionSignature===void 0||typeof t.actionSignature=="string")&&(t.preconditions===void 0||typeof t.preconditions=="string")&&(t.lesson===void 0||typeof t.lesson=="string")&&Array.isArray(t.evidenceRefs)&&t.evidenceRefs.every(e=>typeof e=="string")&&(t.evidence===void 0||Array.isArray(t.evidence)&&t.evidence.every(Vo))&&(t.memoryInfluence===void 0||Array.isArray(t.memoryInfluence)&&t.memoryInfluence.every(Zo))&&(t.visibility==="prompt_safe"||t.visibility==="private"||t.visibility==="sensitive")&&typeof t.createdAt=="string":!1}o(Go,"isOutcomeDigest");function Vo(t){return ne(t)&&typeof t.ref=="string"&&(t.grade==="authoritative"||t.grade==="verified"||t.grade==="corroborated"||t.grade==="observed"||t.grade==="inferred")&&(t.source==="user"||t.source==="host"||t.source==="tool"||t.source==="environment"||t.source==="agent")&&typeof t.observedAt=="string"}o(Vo,"isOutcomeEvidence");function Zo(t){return ne(t)&&typeof t.decisionReceiptRef=="string"&&(t.grade==="direct"||t.grade==="supporting"||t.grade==="exposed"||t.grade==="unknown")}o(Zo,"isMemoryInfluence");function ne(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}o(ne,"isRecord");function re(t){return ne(t)&&t.code==="ENOENT"}o(re,"isMissing");export{es as a,ts as b,os as c,N as d,Nn as e,us as f,gt as g,b as h,fs as i,ms as j,gs as k,se as l,R as m,Le as n,Ne as o,ae as p,ce as q,de as r,pe as s,Hn as t,O as u,Xn as v,Jn as w,wt as x,j as y,Rt as z,Zn as A,Qn as B,er as C,ir as D,or as E,Ke as F,sr as G,Ue as H,Be as I,bt as J,vt as K,It as L,We as M,Ye as N,qe as O,Rr as P,ue as Q,_t as R,br as S,At as T,J as U,Er as V,D as W,fe as X,me as Y,Xe as Z,Ar as _,G as $,Pr as aa,$r as ba,Tr as ca,Cr as da,E as ea,Lt as fa,Nt as ga,we as ha,Ri as ia,Re as ja,Wi as ka,ve as la,zo as ma,Mn as na,Wo as oa,Yo as pa,qo as qa};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{a}from"./chunk-HORNWBYR.js";import"./chunk-2MQPVY6P.js";import"./chunk-TGCG7U2W.js";import"./chunk-XSA37BVM.js";import"./chunk-IQT4RPCE.js";import"./chunk-ONUPGMER.js";export{a as loadCompactionConfig};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{$ as Yh,A as xh,Aa as xi,B as yh,Ba as yi,C as zh,Ca as zi,D as Ah,Da as Ai,E as Bh,Ea as Bi,F as Ch,Fa as Ci,G as Dh,Ga as Di,H as Eh,Ha as Ei,I as Fh,Ia as Fi,J as Gh,Ja as Gi,K as Hh,Ka as Hi,L as Ih,La as Ii,M as Jh,Ma as Ji,N as Kh,Na as Ki,O as Lh,Oa as Li,P as Mh,Pa as Mi,Q as Nh,R as Oh,S as Ph,T as Qh,U as Rh,V as Sh,W as Th,X as Uh,Y as Vh,Z as Wh,_ as Xh,a as Lb,aa as Zh,b as Mb,ba as _h,c as Nb,ca as $h,d as ah,da as ai,e as bh,ea as bi,f as ch,fa as ci,g as dh,ga as di,h as eh,ha as ei,i as fh,ia as fi,j as gh,ja as gi,k as hh,ka as hi,l as ih,la as ii,m as jh,ma as ji,n as kh,na as ki,o as lh,oa as li,p as mh,pa as mi,q as nh,qa as ni,r as oh,ra as oi,s as ph,sa as pi,t as qh,ta as qi,u as rh,ua as ri,v as sh,va as si,w as th,wa as ti,x as uh,xa as ui,y as vh,ya as vi,z as wh,za as wi}from"./chunk-AOENDSVN.js";import{a as dg,b as eg,c as fg,d as gg,e as hg,f as ig,g as jg,h as kg,i as lg,j as Wg}from"./chunk-FNW2XUL5.js";import{A as Mg,B as Ng,C as Og,D as Pg,E as Qg,F as Rg,G as Sg,H as Tg,I as Ug,J as Vg,a as mg,b as ng,c as og,d as pg,e as qg,f as rg,g as sg,h as tg,i as ug,j as vg,k as wg,l as xg,m as yg,n as zg,o as Ag,p as Bg,q as Cg,r as Dg,s as Eg,t as Fg,u as Gg,v as Hg,w as Ig,x as Jg,y as Kg,z as Lg}from"./chunk-3DD4QEBH.js";import{A as wf,B as xf,C as yf,D as zf,E as Af,F as Bf,G as Cf,Ga as Xg,H as Df,Ha as Yg,K as Ef,L as Ff,M as Gf,N as Hf,O as If,Oa as Zg,P as Jf,Pa as _g,Q as Kf,Ra as $g,V as Lf,W as Mf,X as Nf,Y as Of,Z as Pf,a as $,b as Ob,ba as Qf,c as Pb,ca as Rf,d as df,da as Sf,e as ef,ea as Tf,f as ff,g as gf,h as hf,ha as Uf,i as jf,k as nf,l as of,m as pf,n as qf,o as rf,p as sf,q as tf,v as uf,w as vf}from"./chunk-HV2GMZUZ.js";import{a as cg}from"./chunk-EH7AOMJ7.js";import{$ as kc,$a as ad,$b as Rd,$c as Me,A as ac,Aa as Ec,Ab as vd,Ac as qe,B as bc,Ba as Fc,Bb as wd,Bc as re,Ca as Gc,Cb as xd,Cc as se,Da as Hc,Db as yd,Dc as te,Ea as Ic,Eb as zd,Ec as ue,Fa as Jc,Fb as Ad,Fc as ve,Ga as Kc,Gc as we,Hc as xe,I as cc,Ib as Bd,Ic as ye,Id as Vf,J as dc,Ja as Lc,Jc as ze,Jd as Wf,K as ec,Ka as Mc,Kc as Ae,Kd as Xf,L as fc,La as Nc,Lc as Be,Ld as Yf,M as gc,Ma as Oc,Mb as Cd,Mc as Ce,Md as Zf,N as hc,Na as Pc,Nb as Dd,Nc as De,Nd as _f,Oa as Qc,Ob as Ed,Oc as Ee,Pa as Rc,Pb as Fd,Qb as Gd,Ra as Sc,Rb as Hd,Sa as Tc,Sb as Id,Ta as Uc,Tb as Jd,Ua as Vc,Ub as Kd,Uc as Fe,Va as Wc,Vb as Ld,Vc as Ge,Vd as $f,Wa as Xc,Wb as Md,Wc as He,Wd as ag,Xa as Yc,Xb as Nd,Xc as Ie,Xd as bg,Ya as Zc,Yb as Od,Yc as Je,Z as ic,Za as _c,Zb as Pd,Zc as Ke,_ as jc,_a as $c,_b as Qd,_c as Le,a as aa,aa as lc,ab as bd,ac as Sd,ad as Ne,b as ba,ba as mc,bb as cd,bc as Td,bd as Oe,c as Kb,cb as dd,cc as Ud,cd as Pe,db as ed,dc as Vd,dd as Qe,eb as fd,ec as Wd,ed as Re,fb as gd,fc as Xd,fd as Se,ga as nc,gb as hd,gc as Yd,gd as Te,hb as id,hc as Zd,hd as Ue,i as Qb,ia as oc,ib as jd,ic as _d,id as Ve,j as Rb,jb as kd,jc as $d,jd as We,ka as pc,kb as ld,kc as ae,la as qc,lc as be,ld as Xe,ma as rc,mc as ce,md as Ye,na as sc,nc as de,nd as Ze,oa as tc,ob as md,oc as ee,od as _e,pb as nd,pc as fe,pd as $e,q as Sb,qa as uc,qb as od,qc as ge,qd as af,r as Tb,ra as vc,rb as pd,rc as he,rd as bf,s as Ub,sa as wc,sc as ie,sd as cf,t as Vb,ta as xc,tc as je,td as kf,u as Wb,ua as yc,uc as ke,ud as lf,v as Xb,va as zc,vb as qd,vc as le,vd as mf,w as Yb,wa as Ac,wb as rd,wc as me,x as Zb,xa as Bc,xb as sd,xc as ne,y as _b,ya as Cc,yb as td,yc as oe,z as $b,za as Dc,zb as ud,zc as pe}from"./chunk-OAMKECRG.js";import"./chunk-27QLRH3D.js";import{Aa as G,Ba as H,C as h,Ca as I,D as i,Da as J,E as j,Ea as K,F as k,Fa as L,G as l,Ga as M,H as m,Ha as N,Ia as O,Ja as P,Ka as Q,La as R,Ma as S,Oa as T,Pa as U,Qa as V,Ra as W,Ta as X,Ua as Y,V as n,Va as Z,Ya as _,d as a,da as o,e as b,ea as p,f as c,ka as q,la as r,m as d,ma as s,n as e,na as t,oa as u,pa as v,qa as w,ra as x,sa as y,ta as z,ua as A,v as f,va as B,w as g,wa as C,xa as D,ya as E,za as F}from"./chunk-FSXI4MAV.js";import{$b as Wa,Cc as tb,Dc as ub,Gc as vb,Hc as wb,a as ca,ac as Xa,b as da,bc as Ya,c as ea,cc as Za,d as fa,dc as _a,e as ga,ec as $a,f as ha,fc as ab,gc as bb,h as ia,hc as cb,i as ja,ic as db,id as xb,j as ka,jc as eb,jd as yb,kc as fb,kd as zb,lc as gb,ld as Ab,mc as hb,md as Bb,nc as ib,nd as Cb,oc as jb,od as Db,pc as kb,q as na,qa as ra,qb as Ua,qc as lb,r as oa,rb as Va,rc as mb,rd as Eb,s as pa,sc as nb,sd as Fb,t as qa,ta as sa,tc as ob,td as Gb,uc as pb,ud as Hb,vd as Ib,wc as qb,wd as Jb,xc as rb,yc as sb}from"./chunk-2MQPVY6P.js";import{a as la,b as ma,f as ta,g as ua,h as va,k as wa}from"./chunk-TGCG7U2W.js";import{A as Oa,B as Pa,C as Qa,D as Ra,E as Sa,F as Ta,d as xa,k as ya,l as za,m as Aa,n as Ba,o as Ca,p as Da,q as Ea,r as Fa,s as Ga,t as Ha,u as Ia,v as Ja,w as Ka,x as La,y as Ma,z as Na}from"./chunk-XSA37BVM.js";import"./chunk-IQT4RPCE.js";import"./chunk-ONUPGMER.js";export{yf as ALWAYS_RESIDENT_TOOL_NAMES,ei as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,fi as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,zi as BASH_POLICY_SPEC,oh as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,ki as BREAKER_ERROR_THRESHOLD,li as BREAKER_WINDOW_MS,xg as BUILTIN_WORKFLOWS,Rb as CANCELLED_TOOL_RESULT_MESSAGE,Qb as CANCELLED_TOOL_RESULT_PREFIX,Th as CODING_AGENT_MARKER,gh as CODING_INVARIANTS,Xg as CODING_SUMMARY_PROMPT,Yg as CODING_UPDATE_SUMMARY_PROMPT,Rd as CapabilityDeniedError,ih as Client,$f as CodingActorSession,Ae as CombinedExtensionRuntime,Sd as ConstructionManifestError,Zh as DEFAULT_CLASSIFIER_TIMEOUT_MS,Zg as DEFAULT_CODING_AGENT_NAME,Ih as DEFAULT_DANGEROUS_PATTERNS,Pd as DEFAULT_HANDLER_TIMEOUT_MS,Ef as DEFAULT_RESILIENCE_CONFIG,Hh as DEFAULT_SAFE_PATTERNS,ae as DEFAULT_SELF_MODIFY_BUDGET,vi as DEFAULT_SPECULATIVE_WINDOW_MS,Tb as DEFAULT_TOOL_OUTPUT_MAX_BYTES,Sb as DEFAULT_TOOL_OUTPUT_MAX_LINES,eg as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,qa as DefaultSummaryCompaction,Qh as EMIT_VERDICT_TOOL_NAME,Ob as ErrorCategory,pg as FINDING_VERIFICATION_OUTPUT_SCHEMA,hd as GENERATOR_AGENT_NAME,za as ImageResizeError,ja as KODAX_API_MIN_INTERVAL,s as KODAX_DEFAULT_PROVIDER,da as KODAX_DEFAULT_TIMEOUT,Qa as KODAX_FILE_MEDIA_TYPES,ea as KODAX_HARD_TIMEOUT,Oa as KODAX_IMAGE_MEDIA_TYPES,ha as KODAX_MAX_INCOMPLETE_RETRIES,fa as KODAX_MAX_RETRIES,ca as KODAX_MAX_TOKENS,r as KODAX_PROVIDERS,q as KODAX_PROVIDER_SNAPSHOTS,f as KODAX_REASONING_MODE_SEQUENCE,ga as KODAX_RETRY_BASE_DELAY,g as KODAX_STABLE_EFFORT_INTENTS,ia as KODAX_STAGGER_DELAY,Fe as KODAX_TOOLS,dc as KODAX_UNDERLYING_CAPABILITY_TOPICS,Pa as KODAX_VIDEO_MEDIA_TYPES,o as KodaXAnthropicCompatProvider,n as KodaXBaseProvider,ih as KodaXClient,a as KodaXError,ze as KodaXExtensionRuntime,ya as KodaXMediaError,p as KodaXOpenAICompatProvider,b as KodaXProviderError,c as KodaXRateLimitError,Mb as KodaXSessionError,Nb as KodaXTerminalError,Lb as KodaXToolError,qb as LINEAGE_ENTRY_TYPES,Xf as LSP_SERVERS,sb as LineageCompaction,rb as LineageExtension,Yf as LspService,ec as MANUAL_REGISTRY,cc as MANUAL_TOPIC_IDS,Fa as MAX_DIMENSION,Eh as MEMORY_INTERVENTION_SELECTOR_PROMPT,Fh as MEMORY_INTERVENTION_SELECTOR_SHA256,bb as McpAuthRequiredError,nb as McpCapabilityProvider,ab as McpExpiredSessionError,ob as McpManager,mb as McpServerRuntime,Ka as PASTE_TMP_DIR_ENV,La as PASTE_TMP_TTL_MS,gd as PLANNER_AGENT_NAME,ka as PROMISE_PATTERN,ef as PROMPT_SECTION_REGISTRY,Sh as PROTOCOL_EMITTER_TOOLS,Kf as ProviderRecoveryCoordinator,Ub as READ_DEFAULT_LIMIT,Wb as READ_MAX_LINE_CHARS,Vb as READ_PREFLIGHT_SIZE_BYTES,ve as REPO_EXPLORER_AGENT_NAME,we as REPO_EXPLORER_TOOL_NAMES,sa as Runner,og as SCOPED_REVIEW_OUTPUT_SCHEMA,fd as SCOUT_AGENT_NAME,Ji as SCOUT_THEN_AUTHOR_PROMPT_LINES,of as SELF_KNOWLEDGE_ROUTING_RULE,df as SYSTEM_PROMPT,Og as SYSTEM_WORKFLOW_LIMITS,If as StableBoundaryTracker,Ga as TARGET_RAW_SIZE_BYTES,kd as TASK_ENGINE_ROLE_AGENTS,Uh as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,Ci as TRACING_ENV,id as WORKER_AGENT_NAME,dg as WORKFLOW_GENERATION_SYSTEM_PROMPT,he as _resetRuntimeForTesting,ke as activate,xa as actorQueueId,zc as analyzeChangedScope,_d as appendAuditEntry,Cb as appendSessionLineageLabel,vd as applyAccountingDelta,sg as applyFindingVerification,Db as applySessionCompaction,oc as applyToolResultGuardrail,Jb as archiveOldIslands,Li as authorWorkflowViaWorker,ji as autoModeDenialShouldFallback,si as bashSignalCollector,Di as bootstrapTracing,ch as boundedRevise,oi as breakerShouldFallback,dh as budgetCeiling,Pg as buildApprovalSummary,yd as buildBlockedGoal,pf as buildCapabilityContextSections,Wh as buildClassifierPrompt,zd as buildCompleteGoal,ud as buildCreatedGoal,Rf as buildFallbackRoutingDecision,sh as buildGoalRuntimeBinding,lb as buildInitializeCapabilities,Xd as buildLlmReviewPrompt,gc as buildManualToolDescription,xh as buildMcpReverseCapabilities,wd as buildPausedGoal,tf as buildPromptMessageContent,jf as buildPromptSnapshot,Lf as buildProviderCapabilitySnapshot,Sf as buildProviderPolicyHintsForDecision,Mf as buildProviderPolicyPromptNotes,yc as buildRepoIntelligenceContext,Lc as buildRepoIntelligenceIndex,vc as buildRepoOverview,xd as buildResumedGoal,vg as buildScopedReviewFinalPrompt,tg as buildScopedReviewPrimaryPrompt,ug as buildScopedReviewVerificationPrompt,Ki as buildScoutThenAuthorPrompt,nf as buildSelfKnowledgeRoutingRule,Hb as buildSessionTree,rf as buildSystemPrompt,qf as buildSystemPromptSnapshot,af as buildToolResultBudget,bf as buildToolResultBudgetFromUsage,Cd as buildToolSearchIndex,Lg as buildWorkflowCostReport,ig as buildWorkflowGenerationSkillContext,hg as buildWorkflowGenerationUserPrompt,ri as checkAbsoluteDeny,sf as checkIncompleteToolCalls,Uf as checkPromiseSignal,cf as clampToolResultPolicyToBudget,Qg as clampWorkflowLimits,_h as classify,Kh as classifyBashCommand,Pb as classifyError,uc as classifyFileCategory,Gf as classifyResilienceError,Ye as cleanupExpiredToolOutputs,Va as cleanupIncompleteToolCalls,Ze as cleanupUnreferencedToolOutputs,T as clearRuntimeModelProviders,Kb as clearShellExecutionEnvironmentCache,ui as collectAllSignals,Be as combineExtensionRuntimes,Mh as computeInputSignature,$h as computeRulesFingerprint,ge as configureRuntime,Cf as consumeCompactionCooldown,_c as convertCapabilityReadResult,Zc as convertProviderSearchResults,Ib as countActiveLineageMessages,ma as countTokens,na as createAgent,gi as createAutoModeDenialTracker,yi as createAutoModeToolGuardrail,Jh as createBashClassifierConfig,Bi as createBashPrefixExtractor,Ne as createBuiltinToolDefinition,mi as createCircuitBreaker,Gh as createCodingMemoryInterventionRunner,mg as createCodingWorkflowBackend,Af as createCompactionAntiThrashState,Td as createCtxProxy,F as createCustomProvider,_g as createDefaultCodingAgent,Lh as createDenialTracker,Ce as createExtensionRuntime,bg as createExternalActorTurnExecutor,Da as createFileArtifactFromPath,oa as createHandoff,Ca as createImageArtifactFromPath,pa as createInMemorySession,Ah as createKodaXTaskRunner,ag as createLocalCodingActorControl,Xa as createMcpCapabilityId,pb as createMcpManager,cb as createMcpTransport,ff as createPromptSection,Tf as createReasoningPlan,Ng as createRunGraphWriter,xf as createRuntimeContextBudgetSnapshot,ah as createSessionControl,xb as createSessionLineage,Vh as createToolResultTruncationGuardrail,Ea as createVideoArtifactFromPath,Fi as createWorkflowLifecycleController,Ii as createWorkflowPatternTemplateModule,Ug as createWorkflowRunManager,kh as decideWorkflowInvocation,Kd as dedupeExtensionPathsByEntrypoint,Wa as defaultMcpCacheDir,Qd as defaultPolicy,Gg as deleteSavedWorkflow,fe as disableSelfModify,gb as discoverAuthorizationServerMetadata,Od as discoverDefaultExtensions,Nd as discoverExtensionsInDirectory,Md as discoverExtensionsInDirectoryDetailed,ue as discoverMarkdownAgents,hb as discoverOAuthEndpoints,fb as discoverProtectedResourceMetadata,Ag as discoverSavedWorkflows,nd as drainPendingSwaps,j as effortToLegacyReasoningMode,Rh as emitVerdict,Sg as emitWorkflowAgentDigest,Ta as enqueueWithArtifacts,xe as ensureBuiltinRepoExplorerAgent,la as estimateTokens,wf as estimateToolSchemaTokens,Nf as evaluateProviderPolicy,Ld as excludeExtensionPathsByEntrypoint,Fd as exec,Xe as executeTool,vb as extractArtifactLedger,Ai as extractCommandPrefix,vf as extractComparableUserMessageText,Yc as extractHtmlTitle,eb as extractInsufficientScope,uf as extractPromptComparableText,db as extractResourceMetadataUrl,ub as extractTitleFromMessages,ti as fileSignalCollector,ad as finalizeRetrievalResult,qe as findByVersion,Eb as findPreviousUserEntryId,Gb as forkSessionLineage,mf as formatAgentsForPrompt,Ch as formatParallelDispatchResult,Xb as formatSize,tb as generateSessionId,kg as generateWorkflow,lg as generateWorkflowFromOptions,Ee as getActiveExtensionRuntime,ua as getAgentConfigHome,va as getAgentConfigPath,Pe as getAllRegisteredTools,wa as getAppDataDir,W as getAvailableProviderNames,Me as getBuiltinRegisteredToolDefinition,Le as getBuiltinToolDefinition,yg as getBuiltinWorkflow,N as getCustomModelCapabilities,H as getCustomProvider,K as getCustomProviderList,M as getCustomProviderModelDescriptors,L as getCustomProviderModels,J as getCustomProviderNames,Id as getDefaultExtensionDirectory,Zf as getDefaultLspService,Vg as getDefaultWorkflowRunManager,Ph as getDenialContext,Qc as getImpactEstimate,kf as getKodaxGlobalDir,$a as getMcpCachePaths,C as getModelCapabilities,Ra as getModelInputCapabilities,Nc as getModuleContext,Pc as getProcessContext,t as getProvider,x as getProviderConfiguredCapabilityProfile,w as getProviderConfiguredReasoningCapability,y as getProviderList,v as getProviderModel,B as getProviderModelDescriptors,z as getProviderModels,Je as getRegisteredToolDefinition,Mc as getRepoIntelligenceIndex,wc as getRepoOverview,Rc as getRepoRoutingSignals,Ue as getRequiredToolParams,Q as getRuntimeModelProvider,S as getRuntimeModelProviderNames,yb as getSessionLineagePath,zb as getSessionMessagesFromLineage,Oc as getSymbolContext,He as getTool,Ie as getToolDefinition,Ke as getToolRegistrations,nc as getToolResultPolicy,Hi as getWorkflowPatternTemplate,rd as goalTokenDelta,jh as hasExplicitNaturalLanguageWorkflowIntent,md as hasPendingSwap,Aa as inferImageMediaType,Qf as inferTaskType,Ba as inferVideoMediaType,lc as inspectEditFailure,Kc as inspectRepoIntelligenceRuntime,I as isCustomProviderName,Oh as isDeniedRecently,V as isKnownProvider,Bh as isParallelDispatchDirective,u as isProviderConfigured,A as isProviderName,R as isRuntimeModelProviderName,Hf as isSessionRecoveryCandidateError,Hd as isSupportedExtensionModulePath,Re as isToolFileMutation,Te as isToolMutation,Se as isToolNetworkRead,Qe as isToolPlanModeAllowed,Ad as isValidTokenBudget,Vf as languageIdForPath,re as listAll,Z as listAllModelCapabilities,ne as listArtifacts,D as listBuiltinModelCapabilities,Oe as listBuiltinToolDefinitions,zg as listBuiltinWorkflows,od as listCodingDispatchableAgents,pe as listConstructed,O as listCustomProviderModelCapabilities,We as listToolDefinitions,Ve as listTools,Gi as listWorkflowPatternTemplates,lf as loadAgentsFiles,se as loadAgentsFromMarkdown,di as loadAutoRules,Ig as loadGeneratedWorkflowFromRun,Ud as loadHandler,te as loadMarkdownAgentScope,Dg as loadSavedWorkflow,Cg as loadSavedWorkflowCapsule,kb as loadValidToken,qd as makeDisabledGoalToolsContext,i as mapLegacyReasoningModeToEffortIntent,$e as maybeRunReferenceAwareToolOutputGc,_e as maybeRunToolOutputGc,wh as mcpRootsFromWorkspace,wb as mergeArtifactLedger,rg as mergeScopedReviewResults,$ as normalizeKodaXAgentMode,Ya as normalizeMcpCapabilityId,Ha as normalizePastedImage,h as normalizeReasoningEffortValue,qg as normalizeScopedReviewResult,aa as normalizeShellExecutionContract,Bg as normalizeWorkflowModule,gf as orderPromptSections,ng as parallelInvestigation,ci as parseAutoRules,Xh as parseClassifierOutput,kc as parseEditToolError,Yd as parseLlmReviewVerdict,Za as parseMcpCapabilityId,pi as parseModelSpec,k as parseReasoningEffortEnv,e as parseTimeoutSecEnvMs,Ed as parseToolSearchQuery,jg as parseWorkflowGeneration,jb as performOAuthLogin,Ma as persistImageAsBlock,ac as persistToolOutput,zf as planToolExposure,Kg as preflightWorkflowCapsule,Sc as prewarmRepoIntelligenceCaches,cg as providerResilienceConfigFromTimeouts,Na as prunePasteTmpDir,Ja as readAndNormalizeClipboardImage,oe as readArtifact,$d as readAuditEntries,be as readBudget,Ia as readClipboardImage,ee as readDisableState,wi as readSpeculativeWindowFromEnv,ai as readTrustState,Pf as reasoningModeToDepth,Jf as reconstructMessagesWithToolGuard,ii as recordAutoModeAllow,hi as recordAutoModeBlock,mh as recordBlockerAttempt,ni as recordBreakerError,Df as recordCompactionSavings,Nh as recordDenial,hh as registerCodingInvariants,uh as registerConfiguredMcpCapabilityProvider,G as registerCustomProviders,P as registerModelProvider,ib as registerOAuthClient,yh as registerOfficialSandboxExtension,ra as registerPresetDispatcher,Ge as registerTool,le as rehydrateActiveArtifacts,ce as remainingSelfModifyBudget,Fg as renameSavedWorkflow,Ac as renderChangedScope,Hc as renderImpactEstimate,Ec as renderModuleContext,Gc as renderProcessContext,hf as renderPromptSections,xc as renderRepoOverview,$c as renderRetrievalResult,Fc as renderSymbolContext,vh as replaceConfiguredMcpCapabilityProvider,Hg as replaceSavedWorkflow,Wf as reportLspDiagnostics,nh as resetBlockerCounter,de as resetBudget,qi as resolveClassifierModel,pd as resolveCodingDispatchableAgent,ld as resolveConstructedAgent,Jd as resolveExtensionEntrypoint,fc as resolveKodaXManual,Y as resolveModelCapabilities,U as resolveProvider,X as resolveProviderModelDescriptors,l as resolveReasoningEffort,m as resolveReasoningEffortForModelSwitch,Of as resolveReasoningMode,Jc as resolveRepoIntelligenceMode,Ic as resolveRepoIntelligenceRuntimeConfig,Ff as resolveResilienceConfig,Ab as resolveSessionLineageTarget,Bd as resolveToolBridgeTarget,eh as resolveToolCapability,$b as resolveToolOutputDir,_ as resolveWireEffort,fg as resolveWorkflowGenerationTimeoutMs,Ei as resolveWorkflowIdentity,me as revoke,Fb as rewindSessionLineage,ye as rollbackSelfModify,Vd as runAstRules,$g as runKodaX,Zd as runLlmReview,th as runManagedTask,zh as runOrchestration,Tg as runWorkflowFromOptions,Rg as runWorkflowModule,Mg as safeWorkflowArtifactName,Eg as saveGeneratedWorkflow,Jg as saveGeneratedWorkflowFromRun,wg as scopedReview,_a as searchMcpCatalog,Dd as searchToolIndex,De as setActiveExtensionRuntime,ta as setAgentConfigHome,Bb as setSessionLineageActiveEntry,ba as shellExecutionContractFingerprint,td as shouldFlipBudgetLimited,Bf as shouldSkipLlmCompaction,_f as shutdownDefaultLspService,xi as speculativeRace,ie as stage,bh as startKodaX,Wg as startManagedWorkflow,Yh as stripAssistantText,Xc as stripHtmlToText,je as testArtifact,d as timeoutSecToMs,tc as toolAskUserQuestion,pc as toolBash,Dc as toolChangedDiff,Cc as toolChangedScope,dd as toolCodeSearch,jc as toolEdit,qc as toolGlob,rc as toolGrep,Wc as toolImpactEstimate,mc as toolInsertAfterAnchor,Tc as toolModuleContext,fh as toolPermission,Vc as toolProcessContext,bc as toolRead,Bc as toolRepoOverview,ed as toolSemanticLookup,Uc as toolSymbolContext,sc as toolUndo,cd as toolWebFetch,bd as toolWebSearch,ic as toolWrite,Yb as truncateHead,_b as truncateLine,Zb as truncateTail,bi as trustProjectRules,sd as turnWallTimeDelta,Ua as validateAndFixToolHistory,E as validateCustomProviderConfig,gg as validateGeneratedWorkflowSource,Sa as validateInputArtifactsForModel,Dh as validateSubtaskIndependence,Wd as validateToolSchemaForProvider,rh as verifyGoalCompletion,Gd as webhook,ph as withGoalBeforeNextTurn,qh as withGoalStopHook,hc as withManualToolBranding,jd as workerAgent,lh as workflowStartOutcomeConsumesTurn,Mi as writeReviewPackets};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{j as a}from"./chunk-FNW2XUL5.js";import"./chunk-3DD4QEBH.js";import"./chunk-EH7AOMJ7.js";import"./chunk-OAMKECRG.js";import"./chunk-27QLRH3D.js";import"./chunk-FSXI4MAV.js";import"./chunk-2MQPVY6P.js";import"./chunk-TGCG7U2W.js";import"./chunk-XSA37BVM.js";import"./chunk-IQT4RPCE.js";import"./chunk-ONUPGMER.js";export{a as startManagedWorkflow};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{I as a,J as b}from"./chunk-3DD4QEBH.js";import"./chunk-OAMKECRG.js";import"./chunk-27QLRH3D.js";import"./chunk-FSXI4MAV.js";import"./chunk-2MQPVY6P.js";import"./chunk-TGCG7U2W.js";import"./chunk-XSA37BVM.js";import"./chunk-IQT4RPCE.js";import"./chunk-ONUPGMER.js";export{a as createWorkflowRunManager,b as getDefaultWorkflowRunManager};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{$ as R,A as q,B as r,C as s,D as t,E as u,F as v,G as w,H as x,I as y,J as z,K as A,L as B,M as C,N as D,O as E,P as F,Q as G,R as H,S as I,T as J,U as K,V as L,W as M,X as N,Y as O,Z as P,_ as Q,aa as S,b as a,ba as T,c as b,ca as U,m as c,n as d,o as e,p as f,q as g,r as h,s as i,t as j,u as k,v as l,w as m,x as n,y as o,z as p}from"./chunk-JS2BHGJP.js";import"./chunk-AOENDSVN.js";import"./chunk-FNW2XUL5.js";import"./chunk-3DD4QEBH.js";import"./chunk-HV2GMZUZ.js";import"./chunk-EH7AOMJ7.js";import"./chunk-OAMKECRG.js";import"./chunk-27QLRH3D.js";import"./chunk-FSXI4MAV.js";import"./chunk-2MQPVY6P.js";import"./chunk-TGCG7U2W.js";import"./chunk-XSA37BVM.js";import"./chunk-IQT4RPCE.js";import"./chunk-ONUPGMER.js";export{a as CONFIG_TEMPLATES,H as KODAX_CONFIG_ENV_BINDINGS,e as KODAX_CONFIG_FILE,c as KODAX_DIR,D as KODAX_EXAMPLE_CONFIG_FILE,E as KODAX_INTEGRATION_EXAMPLE_FILES,d as KODAX_SESSIONS_DIR,k as KODAX_VERSION,f as PREVIEW_MAX_LENGTH,I as applyConfigEnvironment,r as describeProviderCapabilitySummary,y as describeReasoningCapabilityControl,z as describeReasoningExecution,G as ensureExampleConfigFile,F as ensureExampleConfigFiles,S as formatProviderCapabilityDetailLines,R as formatProviderSourceKind,s as formatReasoningCapabilityShort,t as formatReasoningEffortForDisplay,w as formatReasoningEffortStatusLabel,b as getConfigTemplate,Q as getGitRoot,m as getProviderAvailableModels,o as getProviderCapabilityProfile,p as getProviderCapabilitySnapshot,T as getProviderCommonPolicyScenarios,A as getProviderList,l as getProviderModel,q as getProviderPolicyDecision,n as getProviderReasoningCapability,v as getProviderReasoningEffortCycle,u as getProviderReasoningEffortOptions,j as getVersion,g as hydrateProcessEnvFromShell,B as isProviderConfigured,C as loadConfig,J as prepareRuntimeConfig,U as rateLimitedCall,i as registerConfiguredCustomProviders,h as resetShellEnvironmentHydrationForTesting,L as resolveInitialEffortOverride,P as resolvePermissionModeEffort,x as resolveProviderReasoningRuntimeEffort,O as resolveRuntimeEffortSelection,N as resolveRuntimeModelSelection,M as resolveRuntimeProviderSelection,K as saveConfig};
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
type LearnedCapabilityCarrier = 'skill' | 'extension' | 'workflow_handoff';
|
|
2
|
-
type LearnedCapabilityLifecycle = 'opportunity' | 'drafting' | 'ready' | 'testing' | 'active_learned' | 'promoted_user' | 'quarantined' | 'archived' | 'rejected';
|
|
3
|
-
type LearningEventKind = 'opportunity' | 'drafting' | 'ready' | 'testing' | 'activated' | 'promoted' | 'attention' | 'archived' | 'rejected';
|
|
4
|
-
type LearningAction = 'review' | 'trust' | 'reject' | 'disable' | 'rollback' | 'archive' | 'restore' | 'promote';
|
|
5
|
-
interface LearnedCapabilitySource {
|
|
6
|
-
readonly kind: 'learning_controller' | 'f224_proposal';
|
|
7
|
-
readonly proposalId?: string;
|
|
8
|
-
}
|
|
9
|
-
interface LearnedCapabilityRecord {
|
|
10
|
-
readonly schemaVersion: 1;
|
|
11
|
-
readonly capabilityId: string;
|
|
12
|
-
readonly displayName: string;
|
|
13
|
-
readonly slug: string;
|
|
14
|
-
readonly carrier: LearnedCapabilityCarrier;
|
|
15
|
-
readonly lifecycle: LearnedCapabilityLifecycle;
|
|
16
|
-
readonly revision: number;
|
|
17
|
-
readonly createdAt: string;
|
|
18
|
-
readonly updatedAt: string;
|
|
19
|
-
readonly source: LearnedCapabilitySource;
|
|
20
|
-
/** The control action that produced this revision, when it is not implied by lifecycle. */
|
|
21
|
-
readonly lastAction?: LearningAction;
|
|
22
|
-
readonly artifactPath?: string;
|
|
23
|
-
readonly previousGoodRevision?: number;
|
|
24
|
-
readonly previousLifecycle?: LearnedCapabilityLifecycle;
|
|
25
|
-
readonly diagnostics?: readonly string[];
|
|
26
|
-
}
|
|
27
|
-
interface LearningEvent {
|
|
28
|
-
readonly schemaVersion: 1;
|
|
29
|
-
readonly sequence: number;
|
|
30
|
-
readonly eventId: string;
|
|
31
|
-
readonly capabilityId: string;
|
|
32
|
-
readonly capabilityRevision: number;
|
|
33
|
-
readonly kind: LearningEventKind;
|
|
34
|
-
readonly lifecycle: LearnedCapabilityLifecycle;
|
|
35
|
-
readonly displayName: string;
|
|
36
|
-
readonly slug: string;
|
|
37
|
-
readonly carrier: LearnedCapabilityCarrier;
|
|
38
|
-
readonly createdAt: string;
|
|
39
|
-
}
|
|
40
|
-
type LearningNotificationState = 'unread' | 'seen' | 'acknowledged' | 'snoozed';
|
|
41
|
-
interface LearningClientEventState {
|
|
42
|
-
readonly state: LearningNotificationState;
|
|
43
|
-
readonly capabilityRevision: number;
|
|
44
|
-
readonly updatedAt: string;
|
|
45
|
-
readonly snoozedUntil?: string;
|
|
46
|
-
}
|
|
47
|
-
interface LearningClientRecord {
|
|
48
|
-
readonly schemaVersion: 1;
|
|
49
|
-
readonly clientIdentity: string;
|
|
50
|
-
readonly events: Readonly<Record<string, LearningClientEventState>>;
|
|
51
|
-
}
|
|
52
|
-
interface LearningSurfaceSnapshot {
|
|
53
|
-
readonly ready: number;
|
|
54
|
-
readonly newlyActive: number;
|
|
55
|
-
readonly attention: number;
|
|
56
|
-
readonly active: number;
|
|
57
|
-
readonly revision: number;
|
|
58
|
-
}
|
|
59
|
-
interface LearningQuery {
|
|
60
|
-
readonly search?: string;
|
|
61
|
-
readonly carrier?: LearnedCapabilityCarrier;
|
|
62
|
-
readonly lifecycle?: LearnedCapabilityLifecycle;
|
|
63
|
-
readonly limit?: number;
|
|
64
|
-
readonly cursor?: string;
|
|
65
|
-
}
|
|
66
|
-
interface LearningPage {
|
|
67
|
-
readonly items: readonly LearnedCapabilityRecord[];
|
|
68
|
-
readonly nextCursor?: string;
|
|
69
|
-
readonly revision: number;
|
|
70
|
-
}
|
|
71
|
-
interface LearningSubscribeOptions {
|
|
72
|
-
readonly afterRevision?: number;
|
|
73
|
-
}
|
|
74
|
-
interface LearningActionDriver {
|
|
75
|
-
readonly carrier: LearnedCapabilityCarrier;
|
|
76
|
-
readonly actions: readonly LearningAction[];
|
|
77
|
-
execute(action: LearningAction, capability: LearnedCapabilityRecord): Promise<LearnedCapabilityRecord>;
|
|
78
|
-
}
|
|
79
|
-
type LearningCapabilityErrorCode = 'ambiguous_name' | 'action_failed' | 'capability_not_found' | 'invalid_record' | 'invalid_transition' | 'store_integrity_error' | 'unsupported_action';
|
|
80
|
-
declare class LearningCapabilityError extends Error {
|
|
81
|
-
readonly code: LearningCapabilityErrorCode;
|
|
82
|
-
constructor(code: LearningCapabilityErrorCode, message: string);
|
|
83
|
-
}
|
|
84
|
-
declare function canTransitionLearnedCapability(from: LearnedCapabilityLifecycle, to: LearnedCapabilityLifecycle): boolean;
|
|
85
|
-
declare function assertLearnedCapabilityTransition(from: LearnedCapabilityLifecycle, to: LearnedCapabilityLifecycle): void;
|
|
86
|
-
declare function slugifyLearnedCapabilityName(displayName: string): string;
|
|
87
|
-
declare function learningEventKindForLifecycle(lifecycle: LearnedCapabilityLifecycle): LearningEventKind;
|
|
88
|
-
declare function learningEventIdFor(record: LearnedCapabilityRecord): string;
|
|
89
|
-
|
|
90
|
-
export { LearningCapabilityError as f, assertLearnedCapabilityTransition as q, canTransitionLearnedCapability as r, learningEventIdFor as s, learningEventKindForLifecycle as t, slugifyLearnedCapabilityName as u };
|
|
91
|
-
export type { LearnedCapabilityCarrier as L, LearnedCapabilityLifecycle as a, LearnedCapabilityRecord as b, LearnedCapabilitySource as c, LearningAction as d, LearningActionDriver as e, LearningCapabilityErrorCode as g, LearningClientEventState as h, LearningClientRecord as i, LearningEvent as j, LearningEventKind as k, LearningNotificationState as l, LearningPage as m, LearningQuery as n, LearningSubscribeOptions as o, LearningSurfaceSnapshot as p };
|