@testmuai/kane-cli 0.6.2 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChatSurface-VXYU6KFW.js +8 -0
- package/dist/{ChromeProfilePicker-XXNZLSCC.js → ChromeProfilePicker-QWTM7DK6.js} +1 -1
- package/dist/{CliFeedbackPrompt-FJF5INQO.js → CliFeedbackPrompt-6NVWMONO.js} +1 -1
- package/dist/{CliUploadProgress-5E3CCYPZ.js → CliUploadProgress-2YRQLECI.js} +1 -1
- package/dist/{ConfigView-TGVOKOUZ.js → ConfigView-I4R5M7BO.js} +1 -1
- package/dist/EvidenceViewOffer-54GEARRX.js +2 -0
- package/dist/{FolderPicker-T4JB4NNW.js → FolderPicker-5VWBYTAK.js} +1 -1
- package/dist/{HelpView-PSHKI7DD.js → HelpView-OJZW4XWX.js} +1 -1
- package/dist/{InfoBox-PXWJ6BIX.js → InfoBox-TGELGCBR.js} +1 -1
- package/dist/{LinksBox-IUOYRXYO.js → LinksBox-B5EBRY26.js} +1 -1
- package/dist/{ProfilesView-UK5XX5WP.js → ProfilesView-3SJRIBHQ.js} +1 -1
- package/dist/{ProjectPicker-3FE7UFXL.js → ProjectPicker-72HKMBEY.js} +1 -1
- package/dist/{SaveSessionPrompt-P7NF5FDA.js → SaveSessionPrompt-CK5SGNRO.js} +1 -1
- package/dist/SingleShotApp-AJBIWW74.js +2 -0
- package/dist/{SummaryBox-WVR4U3NN.js → SummaryBox-ABB7ST26.js} +1 -1
- package/dist/TestMdRunView-5PMLLLFT.js +2 -0
- package/dist/{WhoamiView-QVXJAVTC.js → WhoamiView-OF354UGC.js} +1 -1
- package/dist/bind-BWILBZGR.js +6 -0
- package/dist/{bridge-I6N3YPXI.js → bridge-LNDJS3HH.js} +1 -1
- package/dist/{changelog-HPSX3L7T.js → changelog-BWCEZQ23.js} +1 -1
- package/dist/{chat-committer-GHDZY5XF.js → chat-committer-ADJJTDUT.js} +1 -1
- package/dist/chat-controller-VAC57IEV.js +3 -0
- package/dist/{chunk-M6DX4ENH.js → chunk-2K4XOHVK.js} +1 -1
- package/dist/{chunk-KHDUQ33H.js → chunk-2PQXEEVY.js} +1 -1
- package/dist/{chunk-NNZV5RCE.js → chunk-3C5GMAM4.js} +1 -1
- package/dist/{chunk-VL2UA23Z.js → chunk-3HEPW6SN.js} +1 -1
- package/dist/{chunk-BKGJGPDN.js → chunk-3WJJ43MT.js} +1 -1
- package/dist/{chunk-4G4HPMR2.js → chunk-4MUHS3UL.js} +1 -1
- package/dist/{chunk-DEYHK6ZC.js → chunk-5CTMOJG4.js} +1 -1
- package/dist/{chunk-6UNTIXFW.js → chunk-5KSB5MOF.js} +1 -1
- package/dist/chunk-5YPBPZUR.js +2 -0
- package/dist/chunk-64LC36AF.js +2 -0
- package/dist/{chunk-HR7AGYV2.js → chunk-64QURIT6.js} +1 -1
- package/dist/{chunk-6XKJH5ZE.js → chunk-652FEDL4.js} +2 -2
- package/dist/{chunk-Z56AWGVY.js → chunk-6AYUSR7X.js} +1 -1
- package/dist/{chunk-VJUIW2ES.js → chunk-6GTOYTCQ.js} +1 -1
- package/dist/chunk-6LRKYF67.js +14 -0
- package/dist/{chunk-AE6SS34N.js → chunk-74RUSHIB.js} +1 -1
- package/dist/chunk-ACEODVSC.js +14 -0
- package/dist/{chunk-44QUA6GV.js → chunk-ADOXYGZE.js} +1 -1
- package/dist/chunk-ANIVHX3P.js +5 -0
- package/dist/{chunk-K2MKBBI4.js → chunk-AXABTFCD.js} +1 -1
- package/dist/{chunk-5ON7QQZO.js → chunk-BNN6ZDJW.js} +10 -10
- package/dist/{chunk-L4AUCQVO.js → chunk-BOO7YXAV.js} +1 -1
- package/dist/{chunk-OZODSY6H.js → chunk-BYUARJE7.js} +1 -1
- package/dist/{chunk-FYOCF7DY.js → chunk-CJJXT5DO.js} +1 -1
- package/dist/{chunk-S6GRW5ZA.js → chunk-CLTANA4L.js} +2 -2
- package/dist/{chunk-NEZ4G7XR.js → chunk-CT2I5KUM.js} +1 -1
- package/dist/{chunk-ZGH7T32S.js → chunk-CY5NDMO7.js} +1 -1
- package/dist/{chunk-YIOWO6WS.js → chunk-DNOBOZPO.js} +1 -1
- package/dist/chunk-DXK55KGR.js +9 -0
- package/dist/{chunk-IDDVO4UV.js → chunk-E3BO7OVR.js} +1 -1
- package/dist/chunk-EHN5HTUD.js +147 -0
- package/dist/{chunk-RGEAEAZB.js → chunk-FJTWJ243.js} +1 -1
- package/dist/{chunk-FOZVXYVG.js → chunk-FV4LLU3T.js} +1 -1
- package/dist/{chunk-CE664P73.js → chunk-GBBVP2JW.js} +1 -1
- package/dist/{chunk-AD46OCZ4.js → chunk-GRB66C5S.js} +1 -1
- package/dist/{chunk-22A2ECA2.js → chunk-GYW7LVVL.js} +1 -1
- package/dist/{chunk-QIE62H3J.js → chunk-HJGUEZLW.js} +1 -1
- package/dist/{chunk-XN7PPLFS.js → chunk-HNE4TDOZ.js} +1 -1
- package/dist/{chunk-2U5DZUC7.js → chunk-I2JUBAPU.js} +1 -1
- package/dist/chunk-IJPFAWBH.js +5 -0
- package/dist/{chunk-TJRBV2V2.js → chunk-IOTJZTHX.js} +3 -3
- package/dist/{chunk-OZM4UU5F.js → chunk-IRRGSC7B.js} +1 -1
- package/dist/{chunk-Z4K4AYEI.js → chunk-IXVR66NS.js} +1 -1
- package/dist/chunk-K5JGCJ2K.js +6 -0
- package/dist/{chunk-D5T4ARTB.js → chunk-MCQXRJGH.js} +1 -1
- package/dist/{chunk-DCYTRYR2.js → chunk-MK2G7VIF.js} +1 -1
- package/dist/{chunk-35SRW4KA.js → chunk-MVF4KRHA.js} +1 -1
- package/dist/{chunk-KGFISJFM.js → chunk-O66EU5UV.js} +1 -1
- package/dist/{chunk-LV5VRSPI.js → chunk-OB6CKLEL.js} +1 -1
- package/dist/{chunk-HUD7SPUF.js → chunk-OLXOZJ7X.js} +1 -1
- package/dist/{chunk-U3JB76QP.js → chunk-PICCLJSO.js} +1 -1
- package/dist/{chunk-PJSCM6JX.js → chunk-POI6DCP6.js} +1 -1
- package/dist/{chunk-D5DEWIAU.js → chunk-PYB2EXRE.js} +2 -2
- package/dist/{chunk-YSK535OI.js → chunk-QNNBNIR7.js} +3 -3
- package/dist/{chunk-B2CIHKXG.js → chunk-QZI43UNV.js} +1 -1
- package/dist/chunk-RE3BZVGE.js +3 -0
- package/dist/{chunk-LMJTY32X.js → chunk-RHNKYNNZ.js} +1 -1
- package/dist/{chunk-ZKYYZ5NO.js → chunk-RN4OSVTG.js} +2 -2
- package/dist/chunk-SJ2KQKOV.js +3 -0
- package/dist/{chunk-FU3OQXFH.js → chunk-STH6I3UB.js} +1 -1
- package/dist/{chunk-N62EM6JX.js → chunk-UZSG54OY.js} +1 -1
- package/dist/{chunk-EK2B2LZK.js → chunk-W36P7S5W.js} +1 -1
- package/dist/{chunk-Q6TVDG3X.js → chunk-WE57PD6K.js} +1 -1
- package/dist/{chunk-52VLJKIN.js → chunk-WFEGGQJ4.js} +1 -1
- package/dist/chunk-WIA7TPK3.js +2 -0
- package/dist/{chunk-LZKUF23A.js → chunk-WT3SMSY5.js} +1 -1
- package/dist/{chunk-KRFGAVYU.js → chunk-XUJ5EPVW.js} +1 -1
- package/dist/{chunk-4PIMEZJW.js → chunk-YI4XULHR.js} +3 -3
- package/dist/{chunk-MHQ6A2QZ.js → chunk-YMSN25DX.js} +1 -1
- package/dist/{chunk-B2PZAB7J.js → chunk-ZG2V2ODK.js} +1 -1
- package/dist/{chunk-GN3SZXZ5.js → chunk-ZQP3MCZW.js} +1 -1
- package/dist/{chunk-GIRXJOJI.js → chunk-ZZLR3O5A.js} +1 -1
- package/dist/{config-KD62VH3R.js → config-OJF53CHL.js} +1 -1
- package/dist/{cover-cmd-Y5L4O4Q3.js → cover-cmd-K3LCXHAQ.js} +1 -1
- package/dist/{credentials-NQNJR4E4.js → credentials-NLJHSVBY.js} +1 -1
- package/dist/descriptor-EHK3DRCZ.js +2 -0
- package/dist/{evidence-FFOI2H3N.js → evidence-UPOFW3XC.js} +1 -1
- package/dist/evolve-cmd-MVALOB3G.js +2 -0
- package/dist/explain-VFIZTHFN.js +2 -0
- package/dist/{explain-cmd-RIDEMDMY.js → explain-cmd-KV5YUXKB.js} +1 -1
- package/dist/{explain-cmd-55WRDIMW.js → explain-cmd-U367SD4N.js} +1 -1
- package/dist/{extract-bind-6UMILP4U.js → extract-bind-SSTKQGTV.js} +2 -2
- package/dist/{extract-cmd-MZR7PHGA.js → extract-cmd-GO4UV7ER.js} +2 -2
- package/dist/{gaps-cmd-P2DRK6FW.js → gaps-cmd-DTVDIOED.js} +1 -1
- package/dist/{gate-FACZRGOC.js → gate-B6C6KLFA.js} +1 -1
- package/dist/{generate-headless-XOBQS6RU.js → generate-headless-2HYMSVN5.js} +2 -2
- package/dist/{headless-io-GXHKDPHB.js → headless-io-PWW6YKH2.js} +1 -1
- package/dist/index.js +43 -43
- package/dist/ingest-C5ANIN7S.js +2 -0
- package/dist/ingest-cmd-LLC5CDQ5.js +3 -0
- package/dist/interactive-bind-Q5TQFQ6N.js +7 -0
- package/dist/{lifecycle-cmd-55NZL3UO.js → lifecycle-cmd-BXE5IMFN.js} +1 -1
- package/dist/{list-cmd-JB2ABACD.js → list-cmd-KBWPYJMV.js} +1 -1
- package/dist/{list-commands-PDTISP6T.js → list-commands-6WDXAECV.js} +1 -1
- package/dist/{logical-ids-ATVR6PF2.js → logical-ids-3Y6RX5C2.js} +1 -1
- package/dist/login-flow-XQMJFC4H.js +2 -0
- package/dist/{maintenance-cmd-E3HEEVQW.js → maintenance-cmd-VS3APIUN.js} +1 -1
- package/dist/{persist-recorded-session-5UNUINWF.js → persist-recorded-session-KHIMN4A3.js} +1 -1
- package/dist/pipeline-2HRAWT5U.js +2 -0
- package/dist/readmodel-XOGOELUP.js +2 -0
- package/dist/reconcile-cmd-DH4VV6PG.js +2 -0
- package/dist/{recording-banner-IWY3GS6N.js → recording-banner-SADVYNEP.js} +1 -1
- package/dist/{require-project-folder-PFIDA5ZH.js → require-project-folder-LP7V26IU.js} +1 -1
- package/dist/{revert-3TKLOYQA.js → revert-AQQ2VHRM.js} +1 -1
- package/dist/{review-cmd-RXPPC5GK.js → review-cmd-4WZUUOE4.js} +1 -1
- package/dist/run-RT2VMPTQ.js +2 -0
- package/dist/run-XAZMT7WO.js +2 -0
- package/dist/{run-test-md-7GONSVAM.js → run-test-md-ATB2HZRG.js} +2 -2
- package/dist/{skill-installer-YZP5DWWZ.js → skill-installer-DE2LSSKU.js} +1 -1
- package/dist/{spawner-YDYCSTZD.js → spawner-GOTVIFR5.js} +1 -1
- package/dist/tcg-generate-7PUXJ5R4.js +2 -0
- package/dist/{testmd-actions-7RNW76DN.js → testmd-actions-RYQHBX4K.js} +1 -1
- package/dist/token-refresh-F5KRV7ER.js +2 -0
- package/dist/{validate-basic-IQY5CRLP.js → validate-basic-6BQ2L7TT.js} +1 -1
- package/dist/{version-check-U5UBPVX4.js → version-check-YW3FUWDH.js} +1 -1
- package/dist/{view-cmd-QE2FS3GB.js → view-cmd-FRMQF76B.js} +1 -1
- package/dist/walk-session-O4TMVORI.js +2 -0
- package/package.json +7 -7
- package/dist/ChatSurface-HGP5EHZM.js +0 -9
- package/dist/EvidenceViewOffer-7O3RNBEE.js +0 -2
- package/dist/SingleShotApp-UIDA54GB.js +0 -2
- package/dist/TestMdRunView-OH4Y6YD6.js +0 -2
- package/dist/archive-committer-3NI773TP.js +0 -2
- package/dist/bind-SRZYTS4Q.js +0 -6
- package/dist/chat-controller-VKGECDTU.js +0 -3
- package/dist/chunk-DM2GL24Z.js +0 -3
- package/dist/chunk-FTD3B7QA.js +0 -2
- package/dist/chunk-GIGD4M7V.js +0 -5
- package/dist/chunk-HW7Z5S2M.js +0 -14
- package/dist/chunk-I2S6KNZW.js +0 -2
- package/dist/chunk-IACKIGPX.js +0 -2
- package/dist/chunk-NFOBDHZK.js +0 -147
- package/dist/chunk-WM5QHLAP.js +0 -9
- package/dist/chunk-X4QL2DAD.js +0 -5
- package/dist/chunk-YANCBRER.js +0 -3
- package/dist/descriptor-SL5A7RQE.js +0 -2
- package/dist/distill-cmd-EYCCCFL3.js +0 -2
- package/dist/evolve-cmd-PHQ6FHRI.js +0 -2
- package/dist/explain-JIXUWEFJ.js +0 -2
- package/dist/ingest-4CGBXC2L.js +0 -2
- package/dist/ingest-cmd-X7BWGIN7.js +0 -3
- package/dist/interactive-bind-5FWW3S53.js +0 -7
- package/dist/login-flow-IXPJHTL2.js +0 -2
- package/dist/pipeline-F4WTOZ3Y.js +0 -2
- package/dist/readmodel-MPTENJ2R.js +0 -2
- package/dist/reconcile-cmd-MNMWAZF3.js +0 -8
- package/dist/run-V2WMNHFK.js +0 -2
- package/dist/signals-cmd-LXHZQLXZ.js +0 -2
- package/dist/tcg-generate-ZRKSX2KC.js +0 -2
- package/dist/token-refresh-DH2L2IPP.js +0 -2
package/dist/chunk-WM5QHLAP.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as z}from"./chunk-I2S6KNZW.js";import{b as H,d as Q}from"./chunk-DM2GL24Z.js";import{d as j}from"./chunk-JFAFKHDX.js";import{a as G}from"./chunk-YKTYVJBN.js";import{d as U}from"./chunk-KHDUQ33H.js";import{a as B}from"./chunk-D5T4ARTB.js";import{a as I,c as O}from"./chunk-QIE62H3J.js";import{randomBytes as Ze}from"crypto";function X(t,e){let n=Math.min(t.length,e.length),s=0,r=0,a=0;for(let o=0;o<n;o++)s+=t[o]*e[o],r+=t[o]*t[o],a+=e[o]*e[o];return r===0||a===0?0:s/(Math.sqrt(r)*Math.sqrt(a))}function K(t,e,n){return n*t+(1-n)*e}var J=.7;import{readFileSync as xe,writeFileSync as Ae,renameSync as ve,mkdirSync as ke}from"fs";import{dirname as Se,join as W}from"path";function Ee(t){return W(t,"embeddings")}function Re(t){let e=t.indexOf(":");return e>=0?t.slice(e+1):t}function Y(t,e,n){let s=Re(n);return W(Ee(t),e,s.slice(0,2),`${s.slice(2)}.f32`)}function Z(t,e,n){try{let s=xe(Y(t,e,n)),r=new Float32Array(Math.floor(s.length/4));for(let a=0;a<r.length;a++)r[a]=s.readFloatLE(a*4);return r}catch{return null}}function q(t,e,n,s){try{let r=Y(t,e,n);ke(Se(r),{recursive:!0});let a=Buffer.alloc(s.length*4);for(let d=0;d<s.length;d++)a.writeFloatLE(s[d],d*4);let o=`${r}.tmp`;Ae(o,a),ve(o,r)}catch(r){process.stderr.write(`[embed] Failed to cache vector: ${r instanceof Error?r.message:String(r)}
|
|
3
|
-
`)}}var $e=["get_node","get_edges","find_by_provenance","match_by_type","stale_nodes","search_similar"],Ce=["source_read","source_grep"],Me=[...$e,...Ce],re=50,N=200,se=10,ie=50,ee=20,Te=200,De=50;function D(t,e,n){let s=typeof t=="number"&&Number.isFinite(t)?Math.floor(t):e;return Math.max(1,Math.min(s,n))}function k(t,e){let n=t[e];if(typeof n!="string"||n.length===0)throw new y(`param "${e}" must be a non-empty string`);return n}function v(t,e){let n=t[e];if(n==null)return null;if(typeof n!="string")throw new y(`param "${e}" must be a string when present`);return n}var y=class extends Error{};function P(t,e){let n=t.getNode(e);return n?{cid:e,label:n.label,content:n.content,trust:t.trust.get(e)??null,freshness:t.stale(e)}:null}function te(t){return new Set(t.toLowerCase().replace(/[^\p{L}\p{N}]+/gu," ").split(" ").filter(Boolean))}function oe(t,...e){let n=te(t);if(n.size===0)return 0;let s=t.trim().toLowerCase(),r=0;for(let a of e){let o=te(a);if(o.size===0)continue;let d=0;for(let c of n)o.has(c)&&d++;let u=n.size+o.size-d,m=u===0?0:d/u;s&&a.toLowerCase().includes(s)&&(m=Math.max(m,.9)),r=Math.max(r,m)}return r}function Fe(t,e){let n=k(e,"cid"),s=v(e,"type"),r=v(e,"direction")??"both";if(!["out","in","both"].includes(r))throw new y('param "direction" must be out|in|both');let a=D(e.limit,re,N),o=[];return(r==="out"||r==="both")&&o.push(...t.edgesFrom(n)),(r==="in"||r==="both")&&o.push(...t.edgesInto(n)),o.filter(d=>s==null||d.type===s).slice(0,a)}function Le(t,e){let n=k(e,"source_id"),s=t.heads.get(n)??null,r=[];for(let a of t.nodeLabel.keys()){let o=t.derivesInto(a).filter(u=>u.props.source_id===n).map(u=>({source_cid:u.props.source_cid,anchor:u.props.anchor??null}));if(o.length===0)continue;let d=P(t,a);if(d&&(r.push({...d,pins:o,pinned_to_head:s!=null&&o.some(u=>u.source_cid===s)}),r.length>=N))break}return r}function Ge(t,e){let n=k(e,"label"),s=v(e,"trust"),r=v(e,"freshness"),a=D(e.limit,re,N),o=[];for(let{cid:d}of t.byLabel(n)){let u=P(t,d);if(u&&!(s!=null&&u.trust!==s)&&!(r!=null&&u.freshness!==r)&&(o.push(u),o.length>=a))break}return o}function Ne(t){return t.staleList().map(({cid:e,state:n})=>{let s=t.getNode(e);return{cid:e,state:n,label:s?.label??null,title:s?.content.title??null}})}function Pe(t,e){let n=k(e,"text"),s=v(e,"label")??"usecase",r=D(e.k,se,ie),a=[];for(let{cid:o,content:d}of t.byLabel(s)){let u=String(d.title??""),m=String(d.summary??""),c=oe(n,u,m);c<=0||a.push({cid:o,title:u,summary:m,score:Math.round(c*1e3)/1e3,trust:t.trust.get(o)??null,freshness:t.stale(o)})}return a.sort((o,d)=>d.score-o.score||o.cid.localeCompare(d.cid)),a.slice(0,r)}function ae(t,e,n){let s=t.heads.get(n);if(typeof s!="string"){let o=[...t.heads.keys()].sort().join(", ");throw new y(`unknown source_id "${n}" \u2014 known: ${o||"(none)"}`)}if(t.mediaOf(s).format==="image")throw new y(`source "${n}" is an image \u2014 no line window (cite img#whole)`);let r=t.getNode(s)?.content?.blob,a=typeof r=="string"?U(e,r):null;if(a==null)throw new y(`source "${n}" blob is missing from the store`);return{head:s,lines:a.toString("utf8").replace(/\n$/,"").split(`
|
|
4
|
-
`)}}function Ve(t,e,n){return t.slice(e-1,n).map((s,r)=>`${String(e+r).padStart(4,"0")}| ${s}`).join(`
|
|
5
|
-
`)}function Ie(t,e,n){let s=k(e,"source_id"),r=v(e,"anchor"),a=e.line_range;if(r!=null&&a!=null)throw new y("give anchor OR line_range, not both");let{head:o,lines:d}=ae(t,n,s),u=d.length,m,c;if(r!=null){let f=/^L(\d+)-L(\d+)$/.exec(r);if(!f)throw new y(`anchor "${r}" is not L<a>-L<b>`);let h=Number(f[1]),b=Number(f[2]);if(h<1||b<h||b>u)throw new y(`anchor "${r}" does not resolve (source has ${u} lines)`);m=Math.max(1,h-ee),c=Math.min(u,b+ee)}else if(a!=null){if(!Array.isArray(a)||a.length!==2||!a.every(b=>Number.isInteger(b)))throw new y('param "line_range" must be [from_line, to_line]');let[f,h]=a;if(f<1||h<f)throw new y('param "line_range" must be 1-based with from \u2264 to');if(f>u)throw new y(`line_range starts past the end (source has ${u} lines)`);m=f,c=Math.min(h,u)}else m=1,c=u;return c=Math.min(c,m+Te-1),{window:Ve(d,m,c),from_line:m,to_line:c,source_cid:o}}function Oe(t,e,n){let s=k(e,"pattern"),r=v(e,"source_id"),a;try{a=new RegExp(s,"u")}catch(m){throw new y(`invalid pattern: ${m instanceof Error?m.message:String(m)}`)}let o=r!=null?[r]:[...t.heads.keys()].sort(),d=[],u=!1;e:for(let m of o){if(r==null){let f=t.heads.get(m);if(typeof f!="string"||t.mediaOf(f).format==="image")continue}let{lines:c}=ae(t,n,m);for(let f=0;f<c.length;f++)if(a.test(c[f])){if(d.length>=De){u=!0;break e}d.push({source_id:m,line:f+1,text:c[f]})}}return{matches:d,truncated:u}}function Be(t,e,n,s){try{switch(e){case"get_node":return{ok:!0,result:P(t,k(n,"cid"))};case"get_edges":return{ok:!0,result:Fe(t,n)};case"find_by_provenance":return{ok:!0,result:Le(t,n)};case"match_by_type":return{ok:!0,result:Ge(t,n)};case"stale_nodes":return{ok:!0,result:Ne(t)};case"search_similar":return{ok:!0,result:Pe(t,n)};case"source_read":case"source_grep":{if(s==null)throw new y("source text unavailable (no context store)");return{ok:!0,result:(e==="source_read"?Ie:Oe)(t,n,s)}}default:return{ok:!1,error:`unknown method: ${e} \u2014 available: ${Me.join(", ")}`}}}catch(r){return r instanceof y?{ok:!1,error:`${e}: ${r.message}`}:{ok:!1,error:`${e}: graph read failed: ${r instanceof Error?r.message:String(r)}`}}}var ne="assurance.sim";function Ue(t){return[t.title,t.summary,t.description].filter(Boolean).join(`
|
|
6
|
-
`)}async function je(t,e,n){let s=k(e,"text"),r=v(e,"label")??"usecase",a=D(e.k,se,ie),o=[];for(let{cid:u,content:m}of t.byLabel(r)){if(t.superseded.has(u))continue;let c=String(m.title??""),f=String(m.summary??""),h=String(m.description??"");o.push({cid:u,title:c,summary:f,description:h,lex:oe(s,c,f,h)})}let d=u=>{let m=[];for(let c of o){let f=u(c);f.score<=0||m.push({cid:c.cid,title:c.title,summary:c.summary,score:Math.round(f.score*1e3)/1e3,trust:t.trust.get(c.cid)??null,freshness:t.stale(c.cid),...f.dense!==void 0?{dense_score:Math.round(f.dense*1e3)/1e3,lexical_score:Math.round(c.lex*1e3)/1e3}:{}})}return m.sort((c,f)=>f.score-c.score||c.cid.localeCompare(f.cid)),m.slice(0,a)};try{let u=n.readVector??Z,m=n.writeVector??q,c=n.alpha??J,{alias:f}=await n.resolveAlias(ne),h=new Map,b=[],R=[];for(let _ of o){let x=u(n.contextDir,f,_.cid);x?h.set(_.cid,x):(b.push(_.cid),R.push(Ue(_)))}let{vectors:S}=await n.embed(ne,[s,...R]),$=Float32Array.from(S[0]);for(let _=0;_<b.length;_++){let x=Float32Array.from(S[_+1]);h.set(b[_],x),m(n.contextDir,f,b[_],x)}return d(_=>{let x=h.get(_.cid),w=x?X($,x):0;return{score:K(w,_.lex,c),dense:w}})}catch{return d(u=>({score:u.lex}))}}async function ce(t,e,n,s){if(e==="search_similar"&&s)try{return{ok:!0,result:await je(t,n,s)}}catch(r){return r instanceof y?{ok:!1,error:`${e}: ${r.message}`}:{ok:!1,error:`${e}: graph read failed: ${r instanceof Error?r.message:String(r)}`}}return Be(t,e,n,s?.contextDir)}import{readFileSync as He,writeFileSync as Qe,renameSync as ze,mkdirSync as Xe}from"fs";import{dirname as Ke,join as Je}from"path";var V=1,We=720*60*1e3;function F(t){return Je(O,"embeddings",`alias-${t}.json`)}function le(t,e=Date.now()){return t!==null&&e-t.fetchedAt<We}function ue(t){try{let e=JSON.parse(He(t,"utf-8"));return e.wrapperVersion!==V||typeof e.purposes!="object"||e.purposes===null?null:{wrapperVersion:V,writtenByVersion:String(e.writtenByVersion??""),purposes:e.purposes}}catch{return null}}function de(t,e,n=F(t)){let r=ue(n)?.purposes?.[e];return!r||typeof r.alias!="string"||typeof r.dims!="number"||typeof r.fetchedAt!="number"?null:{alias:r.alias,dims:r.dims,fetchedAt:r.fetchedAt}}function me(t,e,n,s=F(t)){try{Xe(Ke(s),{recursive:!0});let a=ue(s)?.purposes??{};a[e]={alias:n.alias,dims:n.dims,fetchedAt:Date.now()};let o={wrapperVersion:V,writtenByVersion:I,purposes:a},d=`${s}.tmp`;Qe(d,JSON.stringify(o,null,2)+`
|
|
7
|
-
`),ze(d,s)}catch(r){process.stderr.write(`[embed] Failed to save alias cache: ${r instanceof Error?r.message:String(r)}
|
|
8
|
-
`)}}function Ye(t){return t.TESTMUAI_ENV==="stage"?"stage":"prod"}function fe(t){let e=t.env??process.env,n=t.auth?.TESTMUAI_BASIC_AUTH||e.TESTMUAI_BASIC_AUTH;if(n)return{authorization:`Basic ${n}`};let s=t.auth?.TESTMUAI_API_KEY||e.TESTMUAI_API_KEY;return s?{authorization:`Bearer ${s}`}:{}}async function ge(t,e={}){let n=e.env??process.env,s=Ye(n),r=e.aliasCacheFile??F(s),a=e.now??Date.now,o=de(s,t,r);if(le(o,a()))return{alias:o.alias,dims:o.dims};let u=`${G(n)}/assurance/embed/alias?purpose=${encodeURIComponent(t)}`,m=await(e.fetchImpl??fetch)(u,{method:"GET",headers:fe(e)});if(!m.ok)throw new Error(`embed alias resolve failed: ${m.status}`);let c=await m.json();return me(s,t,{alias:c.alias,dims:c.dims},r),{alias:c.alias,dims:c.dims}}async function pe(t,e,n={}){let s=n.env??process.env,r=G(s),a=await(n.fetchImpl??fetch)(`${r}/assurance/embed`,{method:"POST",headers:{...fe(n),"content-type":"application/json"},body:JSON.stringify({purpose:t,input:e})});if(!a.ok)throw new Error(`embed failed: ${a.status}`);return await a.json()}var qe=2,he=10,et=2;function _e(t,e,n){return t.map(s=>{let r=e.find(a=>a.id===s.id);return r&&r.selected_index!=null&&r.selected_index>=0&&r.selected_index<s.options.length?{id:s.id,resolution:"answered",selected_index:r.selected_index,free_text:null}:r&&r.free_text!=null&&s.allow_free_text?{id:s.id,resolution:"answered",selected_index:-1,free_text:r.free_text}:n.explicitAcceptDefaults?{id:s.id,resolution:"assumed-default",selected_index:s.recommended_index,flagged:!0}:{id:s.id,resolution:"deferred",selected_index:null}})}async function At(t,e,n,s,r=()=>{},a){let o=(i,l)=>r(i,l,t.session_id),d=(process.env.ASSURANCE_LOG_LEVEL??"info").toLowerCase()==="debug",u={contextDir:e.contextDir,resolveAlias:i=>ge(i,{env:process.env,auth:e.auth}),embed:(i,l)=>pe(i,l,{env:process.env,auth:e.auth})},m=0,c=e.agent(t,{auth:e.auth,onWarn:i=>{o("warn",i),e.out(i)},onStderr:i=>o("agent_stderr",i)}),f=null,h=null,b;e.chat?.attachSender?.(i=>c.send(i)),e.initialMessage&&(c.send({type:"user_message",message_id:`msg-${t.session_id}-${Ze(3).toString("hex")}`,text:e.initialMessage}),o("user_message_sent",{chars:e.initialMessage.length,...d?{text:e.initialMessage}:{}}),e.emit?.({type:"message_sent",sid:t.session_id,chars:e.initialMessage.length}),e.chat?.note(`delivered your message to the agent: "${e.initialMessage}"`));let R,S=0,$=0,_=0,x,w=H(),C=e.progress??e.out;try{for await(let i of c.events){try{e.chat?.onAgentEvent(i)}catch(l){o("chat_mirror_error",{event_type:i.type,message:l instanceof Error?l.message:String(l)})}if(i.type==="reasoning_delta"?(m+=i.text.length,process.env.KANE_TRACE_REASONING&&o("reasoning_delta",i.text)):o(i.type,i),i.type==="reasoning_done"&&o("reasoning_chars",m),i.type==="progress")C(`\u2026 ${i.stage}${i.n?` #${i.n}`:""}`),e.emit?.({type:"agent_activity",kind:"progress",label:`${i.stage}${i.n?` #${i.n}`:""}`});else if(i.type==="reasoning_delta"||i.type==="reasoning_done"||i.type==="tool_activity"||i.type==="decision_activity"){e.onStreamEvent?.(i);let l=w;if(w=Q(w,i),w===l)continue;i.type==="reasoning_delta"?w.liveThinking===i.text&&C("\u2237 thinking\u2026"):i.type==="reasoning_done"?i.present&&(C(`thought for ${(i.took_ms/1e3).toFixed(1)}s`),e.emit?.({type:"agent_activity",kind:"thinking_done",label:`thought for ${(i.took_ms/1e3).toFixed(1)}s`})):i.type==="tool_activity"?i.status!=="done"&&(C(w.activity[w.activity.length-1].label),e.emit?.({type:"agent_activity",kind:"tool",label:w.activity[w.activity.length-1].label})):(C(`\xB7 ${w.activity[w.activity.length-1].label}`),e.emit?.({type:"agent_activity",kind:"decision",label:w.activity[w.activity.length-1].label}))}else if(i.type==="usage")x=i.total_credits,e.emit?.({type:"usage",credits:i.credits,total_credits:i.total_credits});else if(i.type==="graph_query"){let l=await ce(e.graphSlot?.current??s,i.method,i.params??{},u),A=l.ok?{type:"graph_result",id:i.id,ok:!0,result:l.result}:{type:"graph_result",id:i.id,ok:!1,error:l.error};o("graph_result",d?{id:i.id,method:i.method,ok:l.ok,result:l.ok?l.result:l.error}:{id:i.id,method:i.method,ok:l.ok}),c.send(A)}else if(i.type==="session_paused")b=i;else if(i.type==="ask_user"){i.text&&(e.chat?e.chat.ledger({kind:"agent",text:i.text}):e.out(i.text));let l=t.mode;if(l!=="interactive"){let g=i.questions.filter(p=>p.risk==="high");if(l==="ci"&&g.length>0){R=g,c.kill();break}if(l==="agent"&&g.length>0){o("pause_requested",{high:g.map(p=>p.id)}),c.send({type:"pause"});continue}let E=_e(i.questions,[],{explicitAcceptDefaults:!0});S+=E.length;for(let p of E)o("assumed_default",{id:p.id,resolution:p.resolution}),e.emit?.({type:"assumed_default",id:p.id,selected_index:p.selected_index,risk:i.questions.find(T=>T.id===p.id)?.risk});let M={type:"user_response",answers:E.map(p=>({id:p.id,selected_index:p.resolution==="deferred"?null:p.selected_index,free_text:null}))};c.send(M);continue}let A=await e.ask(i.questions),ye=_e(i.questions,A,{explicitAcceptDefaults:!1}),we={type:"user_response",answers:i.questions.map(g=>{let E=A.find(p=>p.id===g.id);if(E?.free_text!=null){let p=n.get(g.id)??0;if(!g.allow_free_text||p>=qe){let T=g.options[g.recommended_index]?.label??"recommended option";if(S+=1,e.emit?.({type:"assumed_default",id:g.id,selected_index:g.recommended_index,risk:g.risk}),e.chat?.noteCoercion)e.chat.noteCoercion(g,T);else{let L=g.text.replace(/\?+\s*$/,""),be=L.length<=36?L:`${L.slice(0,33)}\u2026`;e.out(`note: couldn't use a typed answer for "${be}" \u2014 kept the recommended option (${T})`)}return{id:g.id,selected_index:g.recommended_index,free_text:null}}return n.set(g.id,p+1),{id:g.id,selected_index:null,free_text:E.free_text}}let M=ye.find(p=>p.id===g.id);return M.resolution==="deferred"?{id:g.id,selected_index:null,free_text:null}:{id:g.id,selected_index:M.selected_index,free_text:null}})};c.send(we)}else if(i.type==="chat_ops"&&!e.chat){let l=i.chat_ops??i,A=Array.isArray(l.ops)?l.ops.length:0;if(A===0)l.text&&e.out(l.text),c.send({type:"session_complete"}),o("headless_zero_op_chat_turn_complete",{chars:l.text?.length??0});else if(_<et)_+=1,c.send({type:"user_message",message_id:`nochat-${t.session_id}-${_}`,text:"[auto-repair] chat ops are unavailable in this mode \u2014 commit through finalize_design, or finish if nothing remains."}),o("headless_chat_ops_nudge",{n:_,ops:A});else{h="agent kept sending chat ops in a mode with no chat plane",e.out("error: agent kept sending chat ops in a mode with no chat plane \u2014 closing the session"),o("headless_chat_ops_terminal",{ops:A}),c.kill();break}}else if(i.type===(a.terminalEventType??"proposal")){let l=await a.onProposalEvent(i[i.type]);if(f=l.proposal,l.error&&(h=l.error),l.receipt)e.emit?.(l.receipt.event),t.mode!=="interactive"?($+=1,l.sessionComplete||$>=he?(l.sessionComplete||(e.out(`warning: ${he} commits without completion \u2014 closing the session (runaway guard)`),o("receipt_runaway_cap",{commits:$})),c.send({type:"session_complete"}),o("session_complete_sent",{commit_n:l.receipt.event.commit_n,runaway:!l.sessionComplete})):(c.send({type:"user_message",message_id:`receipt-${t.session_id}-${String(l.receipt.event.commit_n??0)}`,text:l.receipt.text}),o("receipt_sent",{commit_n:l.receipt.event.commit_n,chars:l.receipt.text.length}))):e.chat?.holdReceipt&&(e.chat.holdReceipt(l.receipt.text),o("receipt_held",{commit_n:l.receipt.event.commit_n}));else if(l.error&&t.mode!=="interactive"){e.out("error: commit failed with no repair channel \u2014 closing the session"),o("headless_commit_error_terminal",{error:l.error}),c.kill();break}}else if(i.type==="error"){h=i.message;let l=i.failed_proposal;l&&o("failed_proposal",l)}}}finally{c.kill()}return{proposal:f,error:h,paused:b,highRisk:R,...S>0?{assumedDefaults:S}:{},...x!==void 0?{creditsTotal:x}:{}}}var tt={kind:"system",id:"distiller"};function Rt(t,e=n=>process.stderr.write(n+`
|
|
9
|
-
`)){try{let n=B(t),{watermark:s}=j(t),r=z({contextDir:t,graph:n,watermark:s,by:tt});if(r.errors){let a=r.errors.map(o=>`${o.code}: ${o.detail}`).join("; ");return e(`warning: style-note distill skipped \u2014 ${a}`),{minted:0,error:a}}return{minted:r.minted,error:null}}catch(n){let s=n instanceof Error?n.message:String(n);return e(`warning: style-note distill skipped \u2014 ${s}`),{minted:0,error:s}}}export{ce as a,ge as b,pe as c,qe as d,_e as e,At as f,Rt as g};
|
package/dist/chunk-X4QL2DAD.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as D}from"./chunk-NNZV5RCE.js";import{a as p,b as U,d as G}from"./chunk-AD46OCZ4.js";import{a as _}from"./chunk-JFAFKHDX.js";import{a as x}from"./chunk-QPZRHAYK.js";import{d as w}from"./chunk-KHDUQ33H.js";import{a as O,b as C}from"./chunk-D5T4ARTB.js";import{d as f,e as m}from"./chunk-IACKIGPX.js";var y=(e,t)=>e.nameOf.get(t)??t;function B(e,t){let n=[];for(let{cid:o}of e.byLabel(f.SCENARIO))e.superseded.has(o)||e.edgesFrom(o).some(s=>s.type===m.BELONGS_TO&&e.tipOf(s.dst)===t)&&n.push(o);return n}function P(e,t){let n=[],o=[],s=[],c=B(e,t),i=new Set(c);for(let r of c){let d=e.getNode(r)?.content??{};n.push({ref:y(e,r),title:String(d.title??""),case_type:String(d.case_type??""),intent:String(d.intent??"")});for(let u of e.edgesInto(r)){if(u.type!==m.AUTOMATES||e.superseded.has(u.src))continue;let g=e.getNode(u.src)?.content??{},a=e.edgesFrom(u.src).filter(l=>l.type===m.VERIFIES&&!e.superseded.has(l.dst)).map(l=>y(e,l.dst));o.push({ref:y(e,u.src),title:String(g.title??""),check:g.check,verifies:a})}}for(let{cid:r}of e.byLabel(f.AC)){if(e.superseded.has(r))continue;let d=e.edgesFrom(r).find(l=>l.type===m.SCOPED_TO);if(!d)continue;let u=e.tipOf(d.dst);if(!(u===t||i.has(u)))continue;let a=e.getNode(r)?.content??{};s.push({ref:y(e,r),text:String(a.text??""),kind:String(a.kind??""),scope:u===t?"use-case":y(e,u)})}return{scenarios:n,tests:o,acs:s}}function A(e,t,n){let o=t.getNode(n)?.content.blob;if(typeof o!="string")return null;let s=w(e,o);return s===null?null:s.toString("utf8")}function M(e,t){let n=t.split(`
|
|
3
|
-
`).map(s=>s.replace(/^\d+\| /,"")),o=[];for(let s of e.split(`
|
|
4
|
-
`)){let c=s.trim();if(c.length===0)continue;let i=n.find(r=>r.includes(c));i!==void 0&&!o.includes(i.trim())&&o.push(i.trim())}return o.length>0?o.join(`
|
|
5
|
-
`):{removed:!0}}function j(e,t,n,o){if(o!==void 0&&o.trim().length>0)return{kind:"user-directive",text:o.trim()};let s=[n,...P(t,n).acs.map(r=>t.resolve(r.ref)?.cid??"")].filter(Boolean),c=[],i=new Set;for(let r of s){let d=new Map;for(let u of t.derivesInto(r))d.set(String(u.props.source_id),u);for(let[u,g]of d){let a=t.heads.get(u);if(a==null||a===g.props.source_cid)continue;let l=String(g.props.anchor),h=`${u}\0${l}`;if(i.has(h)||l==="img#whole")continue;i.add(h);let b=A(e,t,String(g.props.source_cid)),E=b===null?null:x(b,l);if(E===null)continue;let T=A(e,t,a);c.push({source_id:u,anchor:l,old_anchor_text:E,new_anchor_text:T===null?{removed:!0}:M(E,T)})}}return{kind:"source-change",changes:c}}function L(e,t,n,o){let s=P(t,n);if(s.scenarios.length===0&&s.tests.length===0&&s.acs.length===0)return;let c=j(e,t,n,o);if(!(c.kind==="source-change"&&c.changes.length===0))return{prior_design:s,change_delta:c}}var $=new Set([f.USECASE,f.SCENARIO,f.AC,f.TEST]);function v(e,t){return!e.superseded.has(t)&&e.trust.get(t)!=="archived"}function S(e,t,n){let o=e.edgesFrom(t).find(s=>s.type===n);return o?e.tipOf(o.dst):null}function k(e,t,n){if(n===f.USECASE)return t;if(n===f.SCENARIO)return S(e,t,m.BELONGS_TO);if(n===f.AC){let o=S(e,t,m.SCOPED_TO);return o?e.nodeLabel.get(o)===f.USECASE?o:S(e,o,m.BELONGS_TO):null}if(n===f.TEST){let o=S(e,t,m.AUTOMATES);return o?S(e,o,m.BELONGS_TO):null}return null}function F(e,t){let n=e.nameOf.get(t);if(n)return n;for(let[o,s]of e.names)if(e.tipOf(s)===t)return o;return t}function N(e,t){return{ucTip:t,display:F(e,t),seamRef:e.nameOf.get(t)??t}}function V(e,t){let n=e.resolve(t);if(!n)return{ok:!1,message:`unknown ref '${t}' \u2014 no test/scenario/ac/use-case by that id or cid`};let o=n.tip,s=e.nodeLabel.get(o);if(!s||!$.has(s))return{ok:!1,message:`'${t}' is a ${s??"missing node"} \u2014 evolve takes a test, scenario, acceptance criterion, or use-case`};let c=k(e,o,s);return!c||e.nodeLabel.get(c)!==f.USECASE?{ok:!1,message:`cannot resolve '${t}' to a parent use-case \u2014 its ${s} chain is broken`}:e.superseded.has(c)?{ok:!1,message:`use-case ${F(e,c)} was removed \u2014 nothing to evolve`}:{ok:!0,target:N(e,c)}}function R(e,t){let n=[];for(let{cid:s}of e.byLabel(f.SCENARIO)){if(!v(e,s)||!e.edgesFrom(s).some(i=>i.type===m.BELONGS_TO&&e.tipOf(i.dst)===t))continue;let c=e.edgesInto(s).filter(i=>i.type===m.AUTOMATES&&v(e,i.src));if(c.length===0)n.push({scenario:s,test:null});else for(let i of c)n.push({scenario:s,test:i.src})}let o=new Map;for(let{cid:s}of e.byLabel(f.AC)){if(!v(e,s)||k(e,s,f.AC)!==t)continue;let c=e.edgesInto(s).filter(i=>i.type===m.VERIFIES&&v(e,i.src)).map(i=>i.src).sort();o.set(s,c)}return{pairs:n,verifies:o}}function q(e,t){let n=i=>`${i.scenario}\0${i.test??""}`,o=new Set(e.pairs.map(n)),s=new Set(t.pairs.map(n)),c=[];for(let[i,r]of e.verifies){let d=t.verifies.get(i);d&&(r.length===d.length&&r.every((u,g)=>u===d[g])||c.push({ac:i,before:r,after:d}))}return{superseded:e.pairs.filter(i=>!s.has(n(i))),minted:t.pairs.filter(i=>!o.has(n(i))),retained:t.pairs.filter(i=>o.has(n(i))),moves:c}}function Y(e,t,n,o,s){let c=r=>t.nameOf.get(r)??r,i=r=>` - ${c(r.scenario)} \xB7 ${r.test?c(r.test):"(no test)"}`;e.out(`evolved: use-case ${n} \u2014 design record ${o.before} \u2192 ${o.after}`),e.out(`superseded: ${s.superseded.length} pair(s)`);for(let r of s.superseded)e.out(i(r));e.out(`minted: ${s.minted.length} pair(s)`);for(let r of s.minted)e.out(i(r));e.out(`retained: ${s.retained.length} pair(s)`);for(let r of s.retained)e.out(i(r));if(s.moves.length===0)e.out("verifies moves: none");else{e.out("verifies moves:");for(let r of s.moves){let d=u=>u.length>0?u.map(c).join(" + "):"(none)";e.out(` - ${c(r.ac)}: ${d(r.before)} \u2192 ${d(r.after)}`)}}}async function I(e,t,n,o,s,c){let i=O(e),r=D(i,t.ucTip);if(!r)return c==="batch"?(o.out(`note: ${t.display} has no design output \u2014 nothing to evolve; run kane-cli design tests --use-case ${t.display} first`),{code:0,outcome:"no-design"}):(p(o,`nothing to evolve \u2014 run kane-cli design tests --use-case ${t.display} first (no design output)`),{code:2,outcome:"no-design"});let d=R(i,t.ucTip),u=`evolve re-designs the parent use-case ${t.display}; ${d.pairs.length} pair(s) affected`;if(n.yes)o.out(u);else if(!await o.confirm(`${u} \u2014 proceed?`))return o.out(c==="batch"?`skipped ${t.display}`:"declined \u2014 nothing evolved"),{code:0,outcome:"declined"};let g=L(e,i,t.ucTip,n.because),a=await s(t.seamRef,{yes:!!n.yes,...n.because?{because:n.because}:{},...g!==void 0?{changeDelta:g.change_delta,priorDesign:g.prior_design}:{}});if(a===3)return o.out(`design session for ${t.display} paused \u2014 resume with \`kane-cli design tests --resume\`, then re-run evolve for the diff`),{code:a,outcome:"paused"};if(a!==0)return p(o,`design run for ${t.display} ended with exit code ${a} \u2014 no diff to report`),{code:a,outcome:"failed"};let l=O(e),h=l.tipOf(t.ucTip),b=D(l,h)?.seq;return Y(o,l,t.display,{before:r.seq,after:b??"?"},q(d,R(l,h))),{code:0,outcome:"evolved"}}function H(e){let t=new Map,n=0;for(let{cid:s,state:c}of e.staleList()){if(c==="superseded")continue;let i=e.nodeLabel.get(s);if(!i||!$.has(i)||!v(e,s)||!C(e,s))continue;let r=k(e,s,i);!r||e.nodeLabel.get(r)!==f.USECASE||e.superseded.has(r)||(n++,t.has(r)||t.set(r,N(e,r)))}return{targets:[...t.values()].sort((s,c)=>s.display<c.display?-1:s.display>c.display?1:0),staleCount:n}}function z(e,t){for(let{cid:n,state:o}of e.staleList()){if(o==="superseded")continue;let s=e.nodeLabel.get(n);if(!(!s||!$.has(s)||!v(e,n))&&C(e,n)&&k(e,n,s)===t)return!0}return!1}async function J(e,t,n,o={},s=process.cwd()){if(e&&t.fromStale)return p(n,"pass a <ref> OR --from-stale, not both"),2;if(!e&&!t.fromStale)return p(n,"evolve needs a <ref> or --from-stale"),2;let c=U(s,n);if(!c)return 2;let i=o.runDesignForUc??K;n.out(`evolving ${e??"stale use-cases"}: reading the graph\u2026`);let r=O(c),d,u=null;if(e){let a=V(r,e);if(!a.ok)return p(n,a.message),2;if(!t.because&&D(r,a.target.ucTip)&&!z(r,a.target.ucTip))return p(n,`nothing changed underneath ${e} \u2014 its sources and requirements are current; use --because "<reason>" to re-design anyway`),2;d=[a.target]}else{let{targets:a,staleCount:l}=H(r);if(a.length===0)return n.out("nothing stale \u2014 nothing to evolve"),0;u=`from-stale: ${l} stale node(s) \u2192 ${a.length} use-case(s)`,d=a}if(!t.yes&&!n.isTTY)return p(n,"refusing to evolve without --yes (no TTY to confirm)"),2;if(u&&n.out(u),e){let a=await I(c,d[0],t,n,i,"single");return a.outcome==="evolved"&&t.because&&_(c,{ts:new Date().toISOString(),command:"evolve",id:e,verdict:"gap-resolved-evolve",polarity:"preference",by:{kind:"human",id:process.env.USER??"operator"},target:e,reason:t.because}),a.code}let g=0;for(let a of d){let{code:l}=await I(c,a,t,n,i,"batch");l!==0&&g===0&&(g=l)}return g}var K=async(e,t)=>{let{designTestsCommand:n}=await import("./bind-SRZYTS4Q.js");return n({useCase:e,force:!0,...t.yes?{mode:"override"}:{},...t.because?{because:t.because}:{},...t.changeDelta!==void 0?{changeDelta:t.changeDelta}:{},...t.priorDesign!==void 0?{priorDesign:t.priorDesign}:{}})};async function ie(e,t){return J(e,t,G(),{})}export{V as a,I as b,J as c,K as d,ie as e};
|
package/dist/chunk-YANCBRER.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as k,c as I}from"./chunk-KHDUQ33H.js";import{a as E}from"./chunk-D5T4ARTB.js";import{a as h,c as w}from"./chunk-GIRXJOJI.js";import{g as S}from"./chunk-B2PZAB7J.js";import{a as x,d as y,f as b}from"./chunk-IACKIGPX.js";import{existsSync as B,mkdirSync as C,readFileSync as $,writeFileSync as F}from"fs";import{basename as P,extname as N,join as U}from"path";var A=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;function v(e){return typeof e=="string"&&e!=="."&&e!==".."&&A.test(e)}function f(e){if(!v(e))throw new Error(`unsafe logical_id: ${JSON.stringify(e)} \u2014 must match ${String(A)} (no path separators)`)}import{extname as M}from"path";var L=[{kind:"text",media_type:"text/plain",extensions:[".txt"],cite:"verbatim",maxBytes:2e6},{kind:"markdown",media_type:"text/markdown",extensions:[".md",".markdown"],cite:"verbatim",maxBytes:2e6},{kind:"image",media_type:"image/png",extensions:[".png"],cite:"anchor-only",maxBytes:5e6},{kind:"image",media_type:"image/jpeg",extensions:[".jpg",".jpeg"],cite:"anchor-only",maxBytes:5e6},{kind:"image",media_type:"image/webp",extensions:[".webp"],cite:"anchor-only",maxBytes:5e6}];function O(e){let t=M(e).toLowerCase(),n=L.find(r=>r.extensions.includes(t));return n?{ok:!0,media:n}:{ok:!1,code:"UNSUPPORTED_MEDIA",allowlist:L.flatMap(r=>r.extensions)}}function j(e){let n=P(e,N(e)).toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^[^a-z0-9]+/,"");return f(n),n}function z(e){let t=U(e,"meta.json");B(t)||(C(e,{recursive:!0}),F(t,JSON.stringify({schema:x,canonicalizer:"v1"},null,2)+`
|
|
3
|
-
`))}async function ee(e){let{contextDir:t,filePath:n,asId:r,confirmSameSource:_}=e;z(t);let d=$(n),i=O(n);if(!i.ok)throw new Error(`UNSUPPORTED_MEDIA: ${N(n)} \u2014 supported: ${i.allowlist.join(" ")}`);if(d.byteLength>i.media.maxBytes)throw new Error(`FILE_TOO_LARGE: ${d.byteLength} bytes > ${i.media.maxBytes} cap for ${i.media.media_type}`);let s=k(d),o;r!==void 0?(f(r),o=r):o=j(n);let c=E(t),a=c.heads.get(o),D=a!=null?c.getNode(a)?.content:void 0;if(a!=null&&D?.blob===s)return{status:"unchanged",source_id:o,cid:a,blob:s};if(a==null){for(let[g,p]of c.heads.entries())if(!(g===o||p==null)&&c.getNode(p)?.content.blob===s){if(_&&await _(g))return{status:"unchanged",source_id:g,cid:p,blob:s};break}}I(t,d);let m=w(o,s),l=b("source",m);if(l.length>0)throw new Error(`source node fails ${l[0].code}: ${l[0].detail}`);let u=h("source",m);return S(t,{ts:new Date().toISOString(),proposal_id:null,nodes:[{cid:u,label:y.SOURCE,content:m}],edges:[],review:[],supersessions:[],media:{[o]:{format:i.media.kind,media_type:i.media.media_type,anchors_supported:i.media.cite==="verbatim"?["L-L"]:[]}},source_head_moves:{[o]:u}}),{status:a!=null?"versioned":"created",source_id:o,cid:u,blob:s}}export{O as a,j as b,ee as c};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as i,b as l,d as a}from"./chunk-AD46OCZ4.js";import{a as d}from"./chunk-I2S6KNZW.js";import{d as m}from"./chunk-JFAFKHDX.js";import"./chunk-ZKYYZ5NO.js";import"./chunk-BC7UVJJB.js";import{a as s}from"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-UR6MHSHU.js";async function f(r,c=process.cwd()){let e=l(c,r);if(!e)return 2;try{r.out("distilling style notes from run signals\u2026");let t=s(e),{watermark:u}=m(e),n=d({contextDir:e,graph:t,watermark:u,by:{kind:"human",id:"owner"}});return n.errors?(i(r,`distill failed: ${n.errors.map(o=>`${o.code}: ${o.detail}`).join("; ")}`),1):(r.out(n.minted>0?`distilled: ${n.minted} new style note(s)`:"nothing new \u2014 style notes already reflect the signal ledger"),0)}catch(t){return i(r,`distill failed: ${t instanceof Error?t.message:String(t)}`),1}}async function w(){return f(a())}export{w as distillCommand,f as runDistillCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b,c,d,e}from"./chunk-X4QL2DAD.js";import"./chunk-NNZV5RCE.js";import"./chunk-AD46OCZ4.js";import"./chunk-JFAFKHDX.js";import"./chunk-QPZRHAYK.js";import"./chunk-ZKYYZ5NO.js";import"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-UR6MHSHU.js";export{e as evolveCommand,b as evolveOneUc,d as liveRunDesignForUc,a as resolveParentUc,c as runEvolveCommand};
|
package/dist/explain-JIXUWEFJ.js
DELETED
package/dist/ingest-4CGBXC2L.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as a,c as b}from"./chunk-YANCBRER.js";import"./chunk-KHDUQ33H.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-UR6MHSHU.js";export{b as ingestFile,a as slugFromFilename};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{c as l}from"./chunk-YANCBRER.js";import{c as f}from"./chunk-ZKYYZ5NO.js";import{a as d}from"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import{a as u}from"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-UR6MHSHU.js";async function g(i,a,t,o=process.cwd()){let s=d(o);for(let n of i){let e;try{e=await l({contextDir:s,filePath:n,asId:a.as,confirmSameSource:t.isTTY?r=>t.confirm(`identical bytes already ingested as ${r} \u2014 treat as the same source?`):void 0})}catch(r){return t.out(`error: ${n}: ${r instanceof Error?r.message:String(r)}`),1}if(t.out(`${e.status} ${e.source_id} source ${e.cid} blob ${e.blob}`),!t.isTTY&&e.status==="created"){let r=u(s);for(let[c,m]of r.heads.entries())if(!(c===e.source_id||m==null)&&r.getNode(m)?.content.blob===e.blob){t.out(`hint: identical bytes already ingested as ${c} \u2014 merged later via review`);break}}}return 0}async function $(i,a){let{createInterface:t}=await import("readline/promises");return g(i,a,{out:o=>process.stdout.write(o+`
|
|
3
|
-
`),isTTY:f(),confirm:async o=>{let s=t({input:process.stdin,output:process.stdout});try{let n=await s.question(`${o} [Y/n] `);return!/^n(o)?$/i.test(n.trim())}finally{s.close()}}})}export{$ as ingestCommand,g as runIngestCommand};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as y}from"./chunk-5ON7QQZO.js";import"./chunk-KHU7C6EE.js";import"./chunk-NNZV5RCE.js";import"./chunk-WM5QHLAP.js";import"./chunk-I2S6KNZW.js";import"./chunk-FXPPQL4D.js";import"./chunk-DM2GL24Z.js";import"./chunk-6PS65QFF.js";import"./chunk-JFAFKHDX.js";import"./chunk-FTD3B7QA.js";import"./chunk-QPZRHAYK.js";import"./chunk-VJUIW2ES.js";import"./chunk-YKTYVJBN.js";import"./chunk-Z56AWGVY.js";import"./chunk-427OQS2N.js";import{c as k}from"./chunk-ZKYYZ5NO.js";import"./chunk-RGEAEAZB.js";import{a as v}from"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import"./chunk-L5LI2JF4.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-QIE62H3J.js";import"./chunk-UR6MHSHU.js";async function j(t){let[{render:u},o,{QuestionBatchPrompt:p}]=await Promise.all([import("./build-JIKYOZUH.js"),import("./react-QWOAB3TB.js"),import("./ui-JEJGTURD.js")]),i=o.default??o;return new Promise(e=>{let m=u(i.createElement(p,{questions:t,onSubmit:a=>{m.unmount(),e(a)}}))})}async function q(t){let[{resolveAgentAuthEnv:u},{runAgent:o},{preflightTurn:p}]=await Promise.all([import("./spawner-YDYCSTZD.js"),import("./bridge-I6N3YPXI.js"),import("./turn-preflight-JGYT7LXP.js")]),i=await u(),e=v(process.cwd()),{baseUrlAdvisory:m}=await import("./turn-preflight-JGYT7LXP.js"),a=m();a&&process.stderr.write(a+`
|
|
3
|
-
`);let d=await p(i);if(!d.ok)return process.stderr.write((d.message??"error: turn-endpoint preflight failed")+`
|
|
4
|
-
`),2;let T=async()=>d;if(t.plan)return y(t,{contextDir:e,agent:o,preflightTurn:T,ask:j,out:r=>process.stdout.write(r+`
|
|
5
|
-
`),progress:r=>process.stderr.write(r+`
|
|
6
|
-
`),isTTY:k(),auth:i});if(!t.resume){let[{openGraph:r},{designGate:s}]=await Promise.all([import("./readmodel-MPTENJ2R.js"),import("./gate-FACZRGOC.js")]),w=s(r(e),t.useCase,!!t.force);if(!w.ok)return process.stderr.write(`design: ${w.message}
|
|
7
|
-
`),w.code}let[{render:C},b,{ScrollbackProvider:A},{ChatSurface:D},{ScrollbackTap:E},{makeChatController:R},{setInkExit:S},G]=await Promise.all([import("./build-JIKYOZUH.js"),import("./react-QWOAB3TB.js"),import("./scrollback-JLPJR25X.js"),import("./ChatSurface-HGP5EHZM.js"),import("./ScrollbackTap-Q3IOKNMS.js"),import("./chat-controller-VKGECDTU.js"),import("./exit-manager-VCSIUYBR.js"),Promise.all([import("./chat-committer-GHDZY5XF.js"),import("./descriptor-SL5A7RQE.js"),import("./explain-JIXUWEFJ.js"),import("./readmodel-MPTENJ2R.js")])]),[{commitChatTurn:I},{topologyDescriptor:O},{explain:Q},{openGraph:x}]=G,f=b.default??b,n=R({commitChatTurn:I,descriptor:O("design"),contextDir:e,refreshGraph:()=>x(e),graph:x(e),explain:Q,by:{kind:"human",id:"owner"}}),g={current:null},P=0,h=null,c=!1,Y=()=>{if(P+=1,P>=2){try{l.unmount()}catch{}process.exit(130)}n.requestPause(),h=setTimeout(()=>{c||(c=!0,(async()=>{n.ledger({kind:"interrupted",detail:"the agent did not confirm the pause within 5s"}),await g.current?.flush();try{l.unmount()}catch{}process.exit(130)})())},5e3)},l=C(f.createElement(A,null,f.createElement(E,{into:g}),f.createElement(D,{controller:n,verb:"design",onCtrlC:Y})),{exitOnCtrlC:!1});S(()=>l.unmount()),n.ledger({kind:"banner",text:`kane-cli design \xB7 ${t.useCase??t.resume??""}`});try{let r=y(t,{contextDir:e,agent:o,preflightTurn:T,ask:s=>n.ask(s),out:s=>n.note(s),progress:()=>{},isTTY:k(),auth:i,chat:n});return r.finally(()=>{c=!0}),await r}finally{c=!0,h&&clearTimeout(h),await g.current?.flush();try{l.unmount()}catch{}}}export{q as bindDesignInteractive};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-DEYHK6ZC.js";import"./chunk-4G4HPMR2.js";import"./chunk-RFHMDQXZ.js";import"./chunk-RZ4F3BHX.js";import"./chunk-YIOWO6WS.js";import"./chunk-L4AUCQVO.js";import"./chunk-QIE62H3J.js";import"./chunk-UR6MHSHU.js";export{a as LoginFlow};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b,c}from"./chunk-GIGD4M7V.js";import"./chunk-2YQ6TW77.js";import"./chunk-WAOCHXJ5.js";import"./chunk-YSK535OI.js";import"./chunk-FYOCF7DY.js";import"./chunk-RGEAEAZB.js";import"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import"./chunk-NFOBDHZK.js";import"./chunk-L5LI2JF4.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-YIOWO6WS.js";import"./chunk-QIE62H3J.js";import"./chunk-UR6MHSHU.js";export{c as UploadPipeline,b as packPresignEntry,a as readPackForUpload};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b}from"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-UR6MHSHU.js";export{a as openGraph,b as staleForEvolve};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as re}from"./chunk-CE664P73.js";import{a as te,b as j,d as B}from"./chunk-X4QL2DAD.js";import"./chunk-NNZV5RCE.js";import{a as R,b as ee,d as ne}from"./chunk-AD46OCZ4.js";import{a as X,b as M}from"./chunk-YANCBRER.js";import{a as Z}from"./chunk-JFAFKHDX.js";import{a as Q}from"./chunk-QPZRHAYK.js";import"./chunk-ZKYYZ5NO.js";import"./chunk-BC7UVJJB.js";import{d as z}from"./chunk-KHDUQ33H.js";import{a as E}from"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import{e as G}from"./chunk-B2PZAB7J.js";import{d as v,e as P,g as H}from"./chunk-IACKIGPX.js";import"./chunk-UR6MHSHU.js";import{existsSync as Ae,lstatSync as Le,readdirSync as Te,statSync as Ie}from"fs";import{basename as J,join as Ne,relative as Fe,resolve as ye}from"path";var oe="this release plans changes only \u2014 blast-radius impact and drift meaning-checks are not measured, and REMOVE rows are never executed automatically",Re="suite untouched; graph updated";function W(e,t){return!e.superseded.has(t)&&e.trust.get(t)!=="archived"}function O(e,t){return e.nameOf.get(t)??t}function A(e){return String(e).slice(0,19)}function C(e,t,r){let n=e.edgesFrom(t).find(o=>o.type===r);return n?e.tipOf(n.dst):null}function se(e,t){let r=e.nodeLabel.get(t);if(r===v.USECASE)return t;if(r===v.SCENARIO)return C(e,t,P.BELONGS_TO);if(r===v.AC){let n=C(e,t,P.SCOPED_TO);return n?e.nodeLabel.get(n)===v.USECASE?n:C(e,n,P.BELONGS_TO):null}if(r===v.TEST){let n=C(e,t,P.AUTOMATES);return n?C(e,n,P.BELONGS_TO):null}return null}function ie(e,t){let r=[],n=new Map;for(let o of e.derivesInto(t))n.set(String(o.props.source_id),o);for(let[o,c]of n){let s=e.heads.get(o);if(s==null){r.push(`DERIVES pin ${o} @ ${A(c.props.source_cid)} \u2014 source retired`);continue}if(s!==c.props.source_cid){let d=e.convChains.get(o)?.chain;if(d&&d.includes(String(c.props.source_cid)))continue;r.push(`DERIVES pin ${o} @ ${A(c.props.source_cid)} \u2014 source head moved to ${A(s)}`)}}for(let o of e.edgesFrom(t))H(o.type)?.pin?.comparesTo==="dst_tip"&&e.superseded.has(o.dst)&&r.push(`${o.type} pin \u2192 ${O(e,o.dst)} \u2014 target superseded`);return r.join("; ")||"structural pin broken"}var ke=new Set([v.USECASE,v.SCENARIO,v.AC,v.TEST]);function F(e,t){return e.ref<t.ref?-1:e.ref>t.ref?1:0}function ae(e,t,r){let n=t.getNode(r)?.content.blob;if(typeof n!="string")return null;let o=z(e,n);return o===null?null:o.toString("utf8")}function Se(e,t,r,n,o){let c=r.props.quote;if(typeof c=="string"&&c.length>0)return n.includes(c);let s=String(r.props.source_cid);o.has(s)||o.set(s,ae(e,t,s));let d=o.get(s);if(d===null)return!1;let i=Q(d,String(r.props.anchor));return i===null?!1:i.split(`
|
|
3
|
-
`).some(g=>g.trim().length>0&&n.includes(g.trim()))}function Ee(e,t,r){let n=e.getNode(t)?.content??{},o=e.getNode(r)?.content??{},s=[...new Set([...Object.keys(n),...Object.keys(o)])].sort().filter(d=>JSON.stringify(n[d])!==JSON.stringify(o[d]));return s.length>0?`updated: ${s.join(", ")}`:"updated"}function be(e,t,r,n,o,c){let s=[];for(let[p,u]of r.superseded)u===null||p===u||t.superseded.has(p)||r.nodeLabel.get(p)===v.USECASE&&s.push({kind:"MODIFIED",ref:O(r,p),old_cid:p,new_cid:u,summary:Ee(r,p,u)});let d=c.map(p=>({kind:"ADDED",ref:O(r,p),cid:p})),i=[],g=ae(e,r,o),f=new Map;for(let{cid:p}of r.byLabel(v.USECASE)){if(!W(r,p))continue;let u=r.derivesInto(p),m=u.filter(a=>String(a.props.source_id)===n);m.length===0||m.some(a=>a.props.source_cid===o)||g!==null&&m.some(a=>String(a.props.anchor)!=="img#whole"&&Se(e,r,a,g,f))||u.some(a=>{let l=String(a.props.source_id);if(l===n)return!1;let $=r.heads.get(l);return $!=null})||i.push({kind:"DROPPED",ref:O(r,p),cid:p,why:`evidence decayed: no quote from ${n} relocates into @${A(o)}, no other live source, no fresh evidence this run`})}let h=(p,u)=>p.ref<u.ref?-1:p.ref>u.ref?1:0;return[...s.sort(h),...d.sort(h),...i.sort(h)]}async function ce(e,t,r){let n=E(e),o=n.heads.get(t)??null,c=new Set(n.staleList().filter(a=>a.state==="stale").map(a=>a.cid)),s=await r.reingest(t);if(s.status==="unchanged")return{source_id:t,changed:!1,head:{status:s.status,before:o,after:s.cid},note:`nothing to reconcile \u2014 ${t} is unchanged`,skipped_arms:oe,changeset:[],rows:[]};let d=await r.reextract(t),i=E(e),g=d.minted.map(a=>{let l=O(i,a);return{kind:"ADD",ref:l,reason:`new use-case extracted from ${t}`,provenance:`extraction commit \u2014 DERIVES ${t} @ ${A(s.cid)}`,action:`kane-cli design tests --use-case ${l}`}}),f=i.staleList().filter(a=>a.state==="stale"&&!c.has(a.cid)&&W(i,a.cid)).map(a=>a.cid),h=f.map(a=>{let l=O(i,a),$=ke.has(i.nodeLabel.get(a)??"");return{kind:"ENHANCE",ref:l,reason:"stale (structural)",provenance:ie(i,a),action:$?`kane-cli maintain evolve ${l}`:`kane-cli design explain ${l}`}}),p=new Set;for(let a of[...d.minted,...d.matched])p.add(i.tipOf(a));for(let a of f){let l=se(i,i.tipOf(a));l&&i.nodeLabel.get(l)===v.USECASE&&p.add(i.tipOf(l))}let u=[];for(let a of await re(i,"design")){if(a.kind!=="no-verifies")continue;let l=i.resolve(a.ref);if(!l)continue;let $=se(i,l.tip);!$||!p.has(i.tipOf($))||u.push({kind:"ADD",ref:a.ref,reason:a.why,provenance:`gaps engine (design) \u2014 uncovered AC of touched use-case ${O(i,$)}`,action:a.ready_command})}let m=[];for(let{cid:a}of i.byLabel(v.USECASE))W(i,a)&&i.stale(a)==="orphaned"&&m.push({kind:"REMOVE",ref:O(i,a),reason:"orphaned \u2014 no live source evidences this use-case",provenance:ie(i,a),action:"plan-only \u2014 REMOVE is not executed in this release"});let w=new Set,b=[...g.sort(F),...u.sort(F),...h.sort(F),...m.sort(F)].filter(a=>{let l=`${a.kind}\0${a.ref}`;return w.has(l)?!1:(w.add(l),!0)});return{source_id:t,changed:!0,head:{status:s.status,before:o,after:s.cid},note:Re,skipped_arms:oe,changeset:be(e,n,i,t,s.cid,d.minted),rows:b}}function de(e,t){return async r=>{let{ingestFile:n}=await import("./ingest-4CGBXC2L.js"),o=await n({contextDir:e,filePath:t,asId:r});return{status:o.status,cid:o.cid}}}function le(e){return async t=>{let[{runExtract:r},{resolveAgentAuthEnv:n},{runAgent:o},{preflightTurn:c}]=await Promise.all([import("./run-V2WMNHFK.js"),import("./spawner-YDYCSTZD.js"),import("./bridge-I6N3YPXI.js"),import("./turn-preflight-JGYT7LXP.js")]),s=await n(),d=new Set(E(e).byLabel(v.USECASE).map(m=>m.cid)),i=0,g=await r({mode:"override"},{contextDir:e,agent:o,preflightTurn:()=>c(s),ask:async()=>[],review:async m=>new Map(m.map(w=>[w.temp_ref,{resolution:w.matches_existing&&w.changed?"edited":"skipped"}])),confirmStale:async()=>!1,out:m=>process.stderr.write(m+`
|
|
4
|
-
`),progress:m=>process.stderr.write(m+`
|
|
5
|
-
`),emit:m=>{m.type==="commit"&&typeof m.assumed=="number"&&(i+=m.assumed)},isTTY:!1,auth:s});if(g!==0)throw new Error(`reconcile: re-extract of ${t} failed (exit ${g})`);let f=E(e),h=f.heads.get(t),p=[],u=[];if(typeof h=="string"){let m=new Set;for(let w of f.edgesFrom(h))w.type!==P.DERIVES||f.nodeLabel.get(w.dst)!==v.USECASE||m.has(w.dst)||(m.add(w.dst),(d.has(w.dst)?u:p).push(w.dst))}return{minted:p,matched:u,defaultsTaken:i}}}import{closeSync as Oe,existsSync as Pe,mkdirSync as pe,openSync as De,readFileSync as V,readdirSync as _e,renameSync as xe,rmSync as ue,writeFileSync as fe}from"fs";import{join as L}from"path";var D=class extends Error{constructor(r,n){super(`${r}: ${n}`);this.code=r}},K=e=>L(e,"reconcile","plans");function ge(e,t){let r=`${e}.tmp-${process.pid}`;fe(r,t,{mode:384}),xe(r,e)}function me(e,t){let r=K(e);pe(r,{recursive:!0});let n=L(r,`${t.created}-${t.source_id}.json`);return ge(n,JSON.stringify(t,null,2)+`
|
|
6
|
-
`),n}function Y(e,t){let r=t;if(r===void 0){let s=K(e),d=[];try{d=_e(s).filter(i=>i.endsWith(".json")).sort()}catch{}if(d.length===0)return{error:`no stored plans under ${s} \u2014 run reconcile --plan first`};r=L(s,d[d.length-1])}if(!Pe(r))return{error:`no such plan file: ${r}`};let n;try{n=V(r,"utf8")}catch(s){return{error:`cannot read plan ${r}: ${s instanceof Error?s.message:String(s)}`}}let o;try{o=JSON.parse(n)}catch(s){return{error:`corrupted plan ${r}: ${s instanceof Error?s.message:String(s)}`}}let c=o?.version;return c!==1?{error:`unsupported plan version ${String(c)} in ${r} (expected 1)`}:Array.isArray(o.rows)?{plan:o,path:r}:{error:`not a reconcile plan \u2014 ${r} has no rows[] (hand-edited?)`}}function q(e,t,r){let n;try{n=JSON.parse(V(e,"utf8"))}catch(c){throw new D("PLAN_UNREADABLE",`${e}: ${c instanceof Error?c.message:String(c)}`)}let o=n.rows?.[t];if(!o)throw new D("ROW_MISSING",`${e} has no row ${t}`);if(o.applied)throw new D("ROW_ALREADY_APPLIED",`row ${t} of ${e} was already applied (${o.applied.outcome} at ${o.applied.at})`);o.applied={at:new Date().toISOString(),outcome:r},ge(e,JSON.stringify(n,null,2)+`
|
|
7
|
-
`)}function he(e){let t=K(e);pe(t,{recursive:!0});let r=L(t,".walk-lock");for(let n=0;n<2;n++)try{let o=De(r,"wx");return fe(o,`${process.pid}
|
|
8
|
-
`),Oe(o),()=>{try{ue(r)}catch{}}}catch(o){if(o.code!=="EEXIST")throw o;let c=NaN;try{c=parseInt(V(r,"utf8").trim(),10)}catch{}if(Number.isFinite(c)&&Ce(c))throw new D("WALK_LOCKED",`another reconcile walk is running (pid ${c}) \u2014 remove ${r} if that process is gone`);try{ue(r)}catch{}}throw new D("WALK_LOCKED",`could not take the walk lock at ${L(t,".walk-lock")}`)}function Ce(e){try{return process.kill(e,0),!0}catch{return!1}}function Ue(e,t){let r=[],n=o=>{let c;try{c=Te(o).sort()}catch{return}for(let s of c){if(s.startsWith(".")||s==="node_modules")continue;let d=Ne(o,s),i;try{i=Le(d)}catch{continue}if(i.isDirectory()){n(d);continue}if(!(!i.isFile()||!X(d).ok))try{M(d)===t&&r.push(d)}catch{}}};return n(e),r}function Ge(e,t,r){let n=E(e);if(n.heads.has(r)){if(n.heads.get(r)==null)return{error:`source '${r}' is retired \u2014 pass the file path to --from to re-ingest it`};let c=Ue(t,r);if(c.length===1)return{sourceId:r,filePath:c[0]};if(c.length===0)return{error:`cannot find a file backing source '${r}' under ${t} \u2014 pass the file path to --from instead`};let s=c.map(d=>Fe(t,d)).join(", ");return{error:`source '${r}' is backed by ${c.length} candidate files (${s}) \u2014 pass the file path to --from instead`}}let o=ye(t,r);if(Ae(o)&&Ie(o).isFile())try{return{sourceId:M(o),filePath:o}}catch(c){return{error:c instanceof Error?c.message:String(c)}}return{error:`--from '${r}' is neither a known source-id nor a file path`}}function x(e){return e==null?"(none)":e.slice(0,19)}function Me(e,t,r){if(e.out(`reconcile ${t.source_id}: head ${t.head.status} \u2014 ${x(t.head.before)} \u2192 ${x(t.head.after)}`),e.out(`note: ${t.note}`),e.out(`skipped arms: ${t.skipped_arms}`),t.changed&&e.out(`extract ran in override mode; ${r?.defaultsTaken??0} default(s) auto-taken; matched-but-changed proposals auto-committed as edits`),t.changed){let n=t.changeset??[];e.out(`changeset: ${n.length} item(s)`);for(let o of n)o.kind==="MODIFIED"?e.out(` [MODIFIED] ${o.ref} \u2014 ${o.summary} (${x(o.old_cid)} \u2192 ${x(o.new_cid)})`):o.kind==="ADDED"?e.out(` [ADDED] ${o.ref}`):e.out(` [DROPPED] ${o.ref} \u2014 ${o.why}`)}e.out(`plan: ${t.rows.length} row(s)`);for(let n of t.rows)e.out(` [${n.kind}] ${n.ref} \u2014 ${n.reason}`),e.out(` provenance: ${n.provenance}`),e.out(` action: ${n.action}`)}async function we(e,t){let r=e.ask,n=t?"[r]etire / [s]kip / [d]efer":"[a]pprove / [e]dit / [s]kip / [d]efer";for(;;){let o=(await r(`${n}? `)).trim().toLowerCase();if(!t&&(o==="a"||o==="approve"))return{v:"approve"};if(o==="s"||o==="skip")return{v:"skip"};if(o==="d"||o==="defer")return{v:"defer"};if(t&&(o==="r"||o==="retire"))return{v:"retire"};if(!t&&(o==="e"||o==="edit")){let c=(await r("steering (one line): ")).trim();if(c.length>0)return{v:"edit",steering:c};e.out("empty steering \u2014 pick a verdict again");continue}e.out(`unrecognized '${o}' \u2014 ${n}`)}}async function T(e,t,r,n,o,c,s=[]){let d;try{d=he(e)}catch(i){return R(n,i instanceof Error?i.message:String(i)),1}try{return await je(e,t,r,n,o,c,s)}finally{d()}}var $e={kind:"human",id:process.env.USER??"operator"};function _(e,t,r,n){Z(e,{ts:new Date().toISOString(),command:"reconcile-walk",id:t,verdict:r,polarity:"preference",by:$e,target:t,...n!==void 0?{reason:n}:{}})}async function je(e,t,r,n,o,c,s=[]){let d=0,i=0,g=0,f=0,h=0,p=0,u=0,m=!r;if(m&&!n.ask)return R(n,"the interactive walk needs a prompt channel \u2014 pass --yes or run in a TTY"),2;let w=new Set;for(let[a,l]of t.entries()){if(l.applied){n.out(`skipped ${l.ref} \u2014 already applied (${l.applied.outcome} at ${l.applied.at})`),i++;continue}let $=y=>{try{c?.(a,y)}catch(U){R(n,`could not record applied state for ${l.ref}: ${U instanceof Error?U.message:String(U)}`)}};if(l.kind==="REMOVE"){n.out(`REMOVE ${l.ref} \u2014 plan-only in this release (not executed)`),f++;continue}let I=E(e),N=te(I,l.ref);if(!N.ok){n.out(`skipped ${l.ref} \u2014 ${N.message}`),i++;continue}let k=N.target;if(w.has(k.ucTip)){n.out(`skipped ${l.ref} \u2014 use-case ${k.display} already handled in this walk`),i++;continue}let S={v:"approve"};if(m&&(n.out(`[${l.kind}] ${l.ref} \u2014 ${l.reason}`),n.out(` provenance: ${l.provenance}`),n.out(` action: ${l.action}`),S=await we(n,!1)),S.v==="skip"){n.out(`skipped ${l.ref}`),$("skipped"),_(e,l.ref,"gap-dismissed"),i++;continue}if(S.v==="defer"){n.out(`deferred ${l.ref} \u2014 the plan artifact keeps it`),g++;continue}if(S.v==="edit"){let y=await j(e,k,{yes:!0,because:S.steering},n,o,"batch");y.outcome==="evolved"?(w.add(k.ucTip),d++,$("approved"),_(e,l.ref,"gap-resolved-evolve",S.steering)):y.outcome==="paused"?(p++,u===0&&(u=y.code)):y.outcome==="failed"?(h++,u===0&&(u=y.code)):i++;continue}if(l.kind==="ADD"){let y=await o(k.seamRef,{yes:r});if(y===3){n.out(`design session for ${k.display} paused \u2014 resume with "kane-cli design tests --resume"; this row lands when that session completes`),p++,u===0&&(u=3);continue}if(y!==0){R(n,`design run for ${k.display} ended with exit code ${y}`),h++,u===0&&(u=y);continue}w.add(k.ucTip),d++,$("approved"),_(e,l.ref,"gap-resolved-create")}else{let y=await j(e,k,{yes:!0},n,o,"batch");y.outcome==="evolved"?(w.add(k.ucTip),d++,$("approved"),_(e,l.ref,"gap-resolved-evolve")):y.outcome==="paused"?(p++,u===0&&(u=y.code)):y.outcome==="failed"?(h++,u===0&&(u=y.code)):i++}}let b=0;for(let a of s){if(a.kind!=="DROPPED")continue;if(n.out(`[DROPPED] ${a.ref} \u2014 ${a.why}`),!m){n.out(" plan-only \u2014 retire is interactive-only (never under --yes)"),f++;continue}let l=E(e),$=l.resolve(a.ref);if($&&l.superseded.has(l.tipOf($.cid))){n.out(" already retired \u2014 nothing to do"),i++;continue}let I=await we(n,!0);if(I.v==="skip"){n.out(`skipped ${a.ref}`),_(e,a.ref,"gap-dismissed"),i++;continue}if(I.v==="defer"){n.out(`deferred ${a.ref} \u2014 the plan artifact keeps it`),g++;continue}if(!await n.confirm(`retire ${a.ref}? ${a.why} \u2014 tombstones the node (restore: kane-cli context revert)`)){n.out(`skipped ${a.ref}`),i++;continue}let{commitArchive:k}=await import("./archive-committer-3NI773TP.js"),S=k(e,E(e),{ref:a.ref,reason:`reconcile retire: ${a.why}`,by:$e});if(S.errors){R(n,`retire ${a.ref} failed: ${S.errors.map(y=>`${y.code}: ${y.detail}`).join("; ")}`),h++,u===0&&(u=1);continue}n.out(`retired ${a.ref} \u2014 tombstone committed (record ${S.record.seq})`),_(e,a.ref,"gap-resolved-archive",a.why),b++}return n.out(`reconcile walk: ${d} applied, ${i} skipped, ${g} deferred, ${f} plan-only`+(b>0?`, ${b} retired`:"")+(h>0?`, ${h} failed`:"")+(p>0?`, ${p} paused`:"")),u}async function ve(e,t,r,n,o){let c=o.seams??{reingest:de(e,r),reextract:le(e)},s=null,d={reingest:c.reingest,reextract:async g=>s=await c.reextract(g)},i;try{n.out(`reconciling ${t}: re-reading the source and comparing against the graph\u2026`),i=await(o.buildPlan??ce)(e,t,d)}catch(g){return R(n,`reconcile failed: ${g instanceof Error?g.message:String(g)}`),null}return Me(n,i,s),i}async function Be(e,t,r,n,o){let c=Y(e,t);if("error"in c)return R(n,c.error),2;let{plan:s,path:d}=c;if(t===void 0&&!r&&n.isTTY&&!await n.confirm(`apply plan ${J(d)} for ${s.source_id} (created ${s.created})?`))return n.out(`not applying ${J(d)}`),0;let i=o.runDesignForUc??B,g=G(e);if(g===s.head_pin)return n.out(`applying stored plan ${J(d)} for ${s.source_id} (${s.rows.length} row(s))`),T(e,s.rows,r,n,i,(h,p)=>q(d,h,p),s.changeset??[]);n.out(`graph moved since this plan (${x(s.head_pin)} \u2192 ${x(g)}) \u2014 recomputing`);let f=await ve(e,s.source_id,s.backing_path,n,o);return f?f.changed?T(e,f.rows,r,n,i,void 0,f.changeset):0:1}async function We(e,t,r={},n=process.cwd()){let o=e.apply!==void 0&&e.apply!==!1,c=typeof e.apply=="string"?e.apply:void 0;if(e.plan&&o)return R(t,"pass --plan OR --apply, not both"),2;if(!e.from&&!o)return R(t,"reconcile needs --from <source-id|path>"),2;if(e.from&&c!==void 0)return R(t,"pass --from OR --apply <path>, not both \u2014 a stored plan names its own source"),2;let s=ee(n,t);if(!s)return 2;let d=!!e.yes;if(o&&!d&&!t.isTTY)return R(t,"refusing to apply without --yes (no TTY to confirm)"),2;let i=!e.plan&&!o;if(i&&e.from&&!d&&!t.isTTY)return R(t,"refusing to walk without --yes (no TTY) \u2014 use --plan for a preview"),2;if(o&&!e.from)return Be(s,c===void 0?void 0:ye(n,c),d,t,r);let g=Ge(s,n,e.from);if("error"in g)return R(t,g.error),2;let f=await ve(s,g.sourceId,g.filePath,t,r);if(!f)return 1;let h=r.runDesignForUc??B;if(o)return f.changed?T(s,f.rows,d,t,h,void 0,f.changeset):0;if(!f.changed)return 0;let p=G(s),u=null;if(p!=null?u=me(s,{version:1,source_id:f.source_id,backing_path:g.filePath,head_pin:p,created:new Date().toISOString().replace(/[:.]/g,"-"),skipped_arms:f.skipped_arms,note:f.note,changeset:f.changeset,rows:f.rows}):R(t,"no chain head after extract \u2014 plan not stored"),!i)return u&&t.out(`plan stored: ${u}`),0;if(u){t.out(`plan stored: ${u}`);let m=u;return T(s,Ve(s,m)??f.rows,d,t,h,(w,b)=>q(m,w,b),f.changeset)}return T(s,f.rows,d,t,h,void 0,f.changeset)}function Ve(e,t){let r=Y(e,t);return"error"in r?null:r.plan.rows}async function pn(e){return We(e,ne(),{})}export{pn as reconcileCommand,Ge as resolveFromArg,We as runReconcileCommand};
|
package/dist/run-V2WMNHFK.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as b,b as c,c as d}from"./chunk-HW7Z5S2M.js";import{e as a}from"./chunk-WM5QHLAP.js";import"./chunk-I2S6KNZW.js";import"./chunk-FXPPQL4D.js";import"./chunk-DM2GL24Z.js";import"./chunk-6PS65QFF.js";import"./chunk-JFAFKHDX.js";import"./chunk-FTD3B7QA.js";import"./chunk-QPZRHAYK.js";import"./chunk-VJUIW2ES.js";import"./chunk-YKTYVJBN.js";import"./chunk-Z56AWGVY.js";import"./chunk-427OQS2N.js";import"./chunk-KHDUQ33H.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-QIE62H3J.js";import"./chunk-UR6MHSHU.js";export{c as dedupPreFlags,a as resolveAnswers,d as runExtract,b as sessionSourceRef};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as a,d}from"./chunk-AD46OCZ4.js";import{d as s}from"./chunk-JFAFKHDX.js";import"./chunk-ZKYYZ5NO.js";import"./chunk-BC7UVJJB.js";import"./chunk-UR6MHSHU.js";var u=new Set(["preference","mistake","correction"]);async function c(r,e,m=process.cwd()){if(r.kind!==void 0&&!u.has(r.kind))return(e.err??e.out)(`error: unknown kind ${r.kind} \u2014 one of: preference | mistake | correction`),2;let i=a(m,e);if(!i)return 2;let{signals:o}=s(i),t=r.kind?o.filter(n=>n.polarity===r.kind):o;if(r.show!==void 0){let n=Number(r.show);return!Number.isInteger(n)||n<0||n>=t.length?((e.err??e.out)(`error: --show ${r.show} out of range (0..${t.length-1})`),2):(e.out(JSON.stringify(t[n],null,2)),0)}if(r.json)return e.out(JSON.stringify(t)),0;if(t.length===0)return e.out("(no signals)"),0;e.out("when \xB7 command \xB7 verdict \xB7 polarity \xB7 target");for(let n of t)e.out(`${n.ts} \xB7 ${n.command} \xB7 ${n.verdict} \xB7 ${n.polarity} \xB7 ${n.target??n.id}`);return 0}async function l(r){return c(r,d())}export{c as runSignalsCommand,l as signalsCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{d as a}from"./chunk-TJRBV2V2.js";import"./chunk-3MSXQU2C.js";import"./chunk-LZKUF23A.js";import"./chunk-XN7PPLFS.js";import"./chunk-KGFISJFM.js";import"./chunk-4PIMEZJW.js";import"./chunk-GIGD4M7V.js";import"./chunk-S6GRW5ZA.js";import"./chunk-D5DEWIAU.js";import"./chunk-OZODSY6H.js";import"./chunk-2YQ6TW77.js";import"./chunk-Q6TVDG3X.js";import"./chunk-LMJTY32X.js";import"./chunk-RKWJG3WW.js";import"./chunk-VL2UA23Z.js";import"./chunk-LV5VRSPI.js";import"./chunk-2U5DZUC7.js";import"./chunk-DCYTRYR2.js";import"./chunk-44QUA6GV.js";import"./chunk-IDDVO4UV.js";import"./chunk-EK2B2LZK.js";import"./chunk-N62EM6JX.js";import"./chunk-M6DX4ENH.js";import"./chunk-5Y2G4NC7.js";import"./chunk-GN3SZXZ5.js";import"./chunk-52VLJKIN.js";import"./chunk-C5UNZ6ZY.js";import"./chunk-S3DAAAE5.js";import"./chunk-35SRW4KA.js";import"./chunk-DEYHK6ZC.js";import"./chunk-4G4HPMR2.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-K2MKBBI4.js";import"./chunk-RFHMDQXZ.js";import"./chunk-YSK535OI.js";import"./chunk-FYOCF7DY.js";import"./chunk-RGEAEAZB.js";import"./chunk-BC7UVJJB.js";import"./chunk-KHDUQ33H.js";import"./chunk-NFOBDHZK.js";import"./chunk-L5LI2JF4.js";import"./chunk-D5T4ARTB.js";import"./chunk-AE6SS34N.js";import"./chunk-GIRXJOJI.js";import"./chunk-B2PZAB7J.js";import"./chunk-IACKIGPX.js";import"./chunk-BKGJGPDN.js";import"./chunk-MHQ6A2QZ.js";import"./chunk-FU3OQXFH.js";import"./chunk-YCCUBQY4.js";import"./chunk-U3JB76QP.js";import"./chunk-M5JQXOCE.js";import"./chunk-HR7AGYV2.js";import"./chunk-2WVKOZ6W.js";import"./chunk-NLCCBXXV.js";import"./chunk-RZ4F3BHX.js";import"./chunk-YIOWO6WS.js";import"./chunk-VE3SUJMA.js";import"./chunk-E47GFYXA.js";import"./chunk-L4AUCQVO.js";import"./chunk-PJSCM6JX.js";import"./chunk-OZM4UU5F.js";import{a as o}from"./chunk-DFS4RMVP.js";import"./chunk-Z4K4AYEI.js";import"./chunk-KRFGAVYU.js";import"./chunk-QIE62H3J.js";import{a as t}from"./chunk-HCBYKLMW.js";import{c as n}from"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import{e as r}from"./chunk-UR6MHSHU.js";var e=r(t(),1);async function p(i){let c=i.scenarioLimit!==void 0||i.perScenarioLimit!==void 0?{scenarioLimit:i.scenarioLimit,perScenarioLimit:i.perScenarioLimit}:void 0,{waitUntilExit:m}=n((0,e.jsx)(o,{children:(0,e.jsx)(a,{initialChatMode:"generate",initialObjective:i.objective,initialGenerateLimits:c})}),{exitOnCtrlC:!1});await m()}export{p as runGenerate};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a}from"./chunk-35SRW4KA.js";import"./chunk-4G4HPMR2.js";import"./chunk-RZ4F3BHX.js";import"./chunk-YIOWO6WS.js";import"./chunk-QIE62H3J.js";import"./chunk-UR6MHSHU.js";export{a as refreshOAuthToken};
|