@testmuai/kane-cli 0.8.2 → 0.8.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/bin/kane-cli.cjs +1 -1
- package/bin/resolve-runtime.cjs +8 -0
- package/dist/{ChatSurface-B3ULYDYC.js → ChatSurface-H26E7DM6.js} +1 -1
- package/dist/{ChromeProfilePicker-T77E7ZSC.js → ChromeProfilePicker-USUPENU2.js} +1 -1
- package/dist/{CliFeedbackPrompt-FQ2XV5DZ.js → CliFeedbackPrompt-ZIAZ2M2U.js} +1 -1
- package/dist/{CliUploadProgress-TZ55LONO.js → CliUploadProgress-LEOJTXHT.js} +1 -1
- package/dist/{ConfigView-WWQMH36G.js → ConfigView-JBIQPG7O.js} +1 -1
- package/dist/EvidenceViewOffer-IWQ6Q2CI.js +2 -0
- package/dist/FolderPicker-G4DT3OEZ.js +2 -0
- package/dist/{HelpView-XXPCPJNF.js → HelpView-I27LWSL5.js} +1 -1
- package/dist/{InfoBox-SHBRHQX5.js → InfoBox-ORHNXPET.js} +1 -1
- package/dist/{LinksBox-ENNF7TDJ.js → LinksBox-6SKDUB5T.js} +1 -1
- package/dist/{ProfilesView-CNF2FXF3.js → ProfilesView-Y5GTLDJY.js} +1 -1
- package/dist/{ProjectPicker-PVPLS642.js → ProjectPicker-WDCMKWNQ.js} +1 -1
- package/dist/{SaveSessionPrompt-4QP4GNGO.js → SaveSessionPrompt-I4KLFESC.js} +1 -1
- package/dist/SingleShotApp-Y77CNTSO.js +2 -0
- package/dist/{SummaryBox-HYNINDNN.js → SummaryBox-QWKW5FHK.js} +1 -1
- package/dist/TestMdRunView-PPM6LD3I.js +2 -0
- package/dist/TestrunEvidenceTable-ENJJ2GIW.js +2 -0
- package/dist/{WhoamiView-NN2HOK6H.js → WhoamiView-H6M536AY.js} +1 -1
- package/dist/{app-download-5UJMXPF3.js → app-download-PSRQWDVW.js} +1 -1
- package/dist/{auth-QKBTOWQX.js → auth-JVH2EHK2.js} +1 -1
- package/dist/binary-YTQJP2FG.js +2 -0
- package/dist/{bind-LVGP5KHO.js → bind-OUXCFLSE.js} +2 -2
- package/dist/{bootstrap-RUJBMB2P.js → bootstrap-3NEI7O6I.js} +1 -1
- package/dist/bridge-AFQTFWCU.js +2 -0
- package/dist/{changelog-HBPBPR2O.js → changelog-WDKG4WCV.js} +1 -1
- package/dist/chunk-2HT3RYKJ.js +2 -0
- package/dist/chunk-2PH43Z3P.js +69 -0
- package/dist/{chunk-NXFAEDHV.js → chunk-35L2QXWP.js} +2 -2
- package/dist/{chunk-JEDLXUO5.js → chunk-3JLWPEQW.js} +1 -1
- package/dist/{chunk-ZI6UIJUN.js → chunk-4CHO7SAT.js} +1 -1
- package/dist/{chunk-NHBYZCSX.js → chunk-52GWEKFD.js} +1 -1
- package/dist/chunk-55NSNWM5.js +26 -0
- package/dist/{chunk-CJJXT5DO.js → chunk-5GUD3CIH.js} +1 -1
- package/dist/{chunk-UODLRQQ4.js → chunk-5HYXTFGB.js} +1 -1
- package/dist/{chunk-AN2ZPHCE.js → chunk-62WYSEAT.js} +1 -1
- package/dist/{chunk-AJQT4IWZ.js → chunk-66RJPH73.js} +1 -1
- package/dist/chunk-6CR2HTIM.js +7 -0
- package/dist/{chunk-WOEQDUJ6.js → chunk-7HPEHQHH.js} +1 -1
- package/dist/chunk-7HXZZ3VA.js +19 -0
- package/dist/{chunk-LDCLZR2U.js → chunk-7LP4X25A.js} +1 -1
- package/dist/{chunk-U5GHOGLM.js → chunk-7VTYRTEJ.js} +1 -1
- package/dist/{chunk-J7KT44IC.js → chunk-A3PGLDQY.js} +1 -1
- package/dist/{chunk-R4UCBA5R.js → chunk-A4XJUWAQ.js} +1 -1
- package/dist/{chunk-O3AHFP3K.js → chunk-A6TJUSOS.js} +1 -1
- package/dist/{chunk-5SNT2MK5.js → chunk-BCCWICSS.js} +1 -1
- package/dist/{chunk-HRZOFTV7.js → chunk-BDUCWZYO.js} +1 -1
- package/dist/{chunk-LVCY5IYI.js → chunk-BGMI5PH4.js} +1 -1
- package/dist/chunk-BSCMUMSV.js +10 -0
- package/dist/{chunk-MTIC65NK.js → chunk-BWSL2KQQ.js} +1 -1
- package/dist/{chunk-GUVM6SZF.js → chunk-BXRZGISN.js} +1 -1
- package/dist/{chunk-VK3NU742.js → chunk-DEZ7CXGM.js} +1 -1
- package/dist/{chunk-HFFPPCZO.js → chunk-DWWAIXVZ.js} +2 -2
- package/dist/{chunk-6N726QLP.js → chunk-DXJKMZEC.js} +29 -23
- package/dist/{chunk-NRUD56FY.js → chunk-DYGUHGZ6.js} +1 -1
- package/dist/{chunk-4U4OSOA4.js → chunk-DZJQNL66.js} +1 -1
- package/dist/{chunk-RUCSRS4C.js → chunk-EQSE6NIB.js} +1 -1
- package/dist/{chunk-OJTCIZDK.js → chunk-GJED4QGF.js} +1 -1
- package/dist/chunk-GSYJUHRK.js +2 -0
- package/dist/{chunk-BKVDAZEJ.js → chunk-HHHNQW5Z.js} +1 -1
- package/dist/{chunk-YSSYT5F5.js → chunk-HXSEA7JS.js} +1 -1
- package/dist/chunk-IXTFWIQ6.js +2 -0
- package/dist/{chunk-7S3JZ6FQ.js → chunk-J27JJWMT.js} +1 -1
- package/dist/{chunk-IUEEFGEW.js → chunk-JCILRPOM.js} +2 -2
- package/dist/chunk-JR46A564.js +2 -0
- package/dist/{chunk-JHKM7W5X.js → chunk-JRADU3PO.js} +1 -1
- package/dist/{chunk-LVN6VHFN.js → chunk-JT7I6OST.js} +1 -1
- package/dist/{chunk-2TYCUPCN.js → chunk-KAMJ7U4M.js} +1 -1
- package/dist/{chunk-BSYX225I.js → chunk-KUYJ6FEN.js} +1 -1
- package/dist/{chunk-3NHO5R4P.js → chunk-L4EDLDLZ.js} +3 -3
- package/dist/{chunk-JJN76EXE.js → chunk-L77ZOU4N.js} +1 -1
- package/dist/{chunk-YCLG3T5E.js → chunk-N5JHMCRU.js} +1 -1
- package/dist/{chunk-ATGRRKEV.js → chunk-N7N222VC.js} +2 -2
- package/dist/chunk-NDAAY2RL.js +2 -0
- package/dist/{chunk-OOEPLMKA.js → chunk-NEAMQMYH.js} +1 -1
- package/dist/chunk-NEHX45NQ.js +15 -0
- package/dist/{chunk-KKRNTSLL.js → chunk-OSB32HJE.js} +1 -1
- package/dist/chunk-OVLCJ2VX.js +37 -0
- package/dist/{chunk-6IA6QMPH.js → chunk-P7YZ3PU3.js} +1 -1
- package/dist/{chunk-7F2ZV46B.js → chunk-PH22FRN5.js} +1 -1
- package/dist/{chunk-WVCH66YH.js → chunk-PQWSHTSH.js} +1 -1
- package/dist/{chunk-IZ2FJYHG.js → chunk-PRLTUEKP.js} +1 -1
- package/dist/{chunk-2ZZDNPFN.js → chunk-PSWB3BWQ.js} +1 -1
- package/dist/{chunk-I7RQS65W.js → chunk-PWFZZWYU.js} +1 -1
- package/dist/{chunk-IV76ZXCY.js → chunk-QBF5FJVL.js} +1 -1
- package/dist/{chunk-YHYTCENI.js → chunk-QDIZQ3ZF.js} +1 -1
- package/dist/{chunk-JGOZUAMC.js → chunk-QWDFFEEJ.js} +1 -1
- package/dist/{chunk-RN4PKQFR.js → chunk-RN3YHD4S.js} +1 -1
- package/dist/{chunk-CAMO26QU.js → chunk-SFXQFUM6.js} +1 -1
- package/dist/{chunk-4J6DQFPC.js → chunk-SIH6JG7S.js} +3 -3
- package/dist/{chunk-HWH3UYD6.js → chunk-TXH2KG7U.js} +1 -1
- package/dist/{chunk-NXXJ56QA.js → chunk-TYI4MLFJ.js} +1 -1
- package/dist/{chunk-FNS2EAA5.js → chunk-U55NUF4E.js} +2 -2
- package/dist/chunk-ULGZPRKU.js +2 -0
- package/dist/{chunk-BRIEBB2U.js → chunk-UOMRMCMI.js} +1 -1
- package/dist/{chunk-WV27D55O.js → chunk-UONRTWLU.js} +1 -1
- package/dist/{chunk-VPRNGWIY.js → chunk-UTIGOLON.js} +1 -1
- package/dist/chunk-V444REBC.js +11 -0
- package/dist/chunk-VBCIDWSK.js +2 -0
- package/dist/{chunk-YTDSQAYN.js → chunk-VYYTENPY.js} +1 -1
- package/dist/{chunk-L5LI2JF4.js → chunk-VZ7KXRXB.js} +11 -11
- package/dist/{chunk-2E3ZWGIK.js → chunk-W75AVBFG.js} +5 -5
- package/dist/chunk-X2FM67OM.js +4 -0
- package/dist/{chunk-PXCMEI73.js → chunk-XHNPNYJP.js} +1 -1
- package/dist/{chunk-OAVPM6YJ.js → chunk-YB73T7QH.js} +1 -1
- package/dist/{chunk-ZEDAPY7M.js → chunk-YBX2SQ5R.js} +1 -1
- package/dist/{chunk-5NIYYD7O.js → chunk-ZI6W65E3.js} +1 -1
- package/dist/{chunk-4II6VDXG.js → chunk-ZK57J37M.js} +1 -1
- package/dist/{chunk-KHU7C6EE.js → chunk-ZKSN2SJ7.js} +1 -1
- package/dist/{chunk-ZPDM6FO7.js → chunk-ZSXDZI56.js} +2 -2
- package/dist/{config-RLDXM5ZH.js → config-SFM45WCV.js} +1 -1
- package/dist/cover-cmd-7JILZJUK.js +3 -0
- package/dist/{credentials-CALNKQMN.js → credentials-3CENDBPH.js} +1 -1
- package/dist/{deps-bundle-GVHIMZ5E.js → deps-bundle-P37ZJDXC.js} +1 -1
- package/dist/{deps-resolve-T6P4EACP.js → deps-resolve-VSICFRWU.js} +1 -1
- package/dist/dispatch-HDGQAEWN.js +2 -0
- package/dist/doctor-CPMWU5TL.js +2 -0
- package/dist/evidence-ABYJOIV2.js +2 -0
- package/dist/evidence-presentation-XF23B7F2.js +2 -0
- package/dist/{evolve-cmd-JGCFTXWA.js → evolve-cmd-MROTNJIV.js} +1 -1
- package/dist/{explain-cmd-3GEKR7O5.js → explain-cmd-2TKO7GRW.js} +1 -1
- package/dist/{extract-bind-EXW32RUY.js → extract-bind-LBZMEDUK.js} +2 -2
- package/dist/{extract-cmd-7IOLJJCL.js → extract-cmd-K4KBPMB7.js} +1 -1
- package/dist/{gaps-cmd-WPCJPLGB.js → gaps-cmd-3ZX3PZF4.js} +1 -1
- package/dist/{generate-headless-U4GTG234.js → generate-headless-EBMWSLTR.js} +2 -2
- package/dist/index.js +147 -85
- package/dist/{ingest-EX72IEQT.js → ingest-4447MYLF.js} +1 -1
- package/dist/ingest-cmd-ULEWNGCI.js +2 -0
- package/dist/install-YDH2CORO.js +2 -0
- package/dist/{interactive-bind-Y65XV4Y5.js → interactive-bind-IYAJN45L.js} +3 -3
- package/dist/{list-commands-3EROWJWV.js → list-commands-YPBJNGCE.js} +1 -1
- package/dist/login-flow-W5SAB7NN.js +2 -0
- package/dist/{mobile-prompts-TP3ODM5M.js → mobile-prompts-LHUYRSV7.js} +1 -1
- package/dist/{persist-recorded-session-EHYT3PVN.js → persist-recorded-session-KCXYXSQG.js} +1 -1
- package/dist/pipeline-ELIXCTFZ.js +2 -0
- package/dist/prepare-target-OU2DQXSW.js +2 -0
- package/dist/reconcile-cmd-TSQDYEUT.js +2 -0
- package/dist/{reconcile-deps-6KTJHBMJ.js → reconcile-deps-ETMGIQNM.js} +2 -2
- package/dist/{reconcile-engine-O7QEZVX6.js → reconcile-engine-TLFTAOTZ.js} +1 -1
- package/dist/{recording-banner-BWWFOJCR.js → recording-banner-ACOLKL4K.js} +1 -1
- package/dist/{registry-KXEDLM6X.js → registry-3Q6PNWCK.js} +1 -1
- package/dist/{require-project-folder-CXDRRWEQ.js → require-project-folder-5KWTJAXN.js} +1 -1
- package/dist/resolve-run-intent-L2I7G55O.js +2 -0
- package/dist/{resolver-FTU5KO7H.js → resolver-NRU6HGTL.js} +1 -1
- package/dist/run-RHLRZCV5.js +2 -0
- package/dist/{run-CMFBSYWF.js → run-T53Z5TCY.js} +1 -1
- package/dist/{run-test-md-7HGOZJSU.js → run-test-md-JYDYT3XF.js} +2 -2
- package/dist/{skill-installer-QNUDLGPD.js → skill-installer-NWF53JAB.js} +1 -1
- package/dist/{spawner-DQZRJIE6.js → spawner-LKYUMXSO.js} +1 -1
- package/dist/tcg-generate-2PHA7VNL.js +2 -0
- package/dist/{testmd-actions-IFRW7NGG.js → testmd-actions-CRRUXYOP.js} +1 -1
- package/dist/token-refresh-XKXPM6H3.js +2 -0
- package/dist/{types-6E2HTDKJ.js → types-VYEOJ6U2.js} +1 -1
- package/dist/{validate-basic-3CNUDDH7.js → validate-basic-X2XPEBFD.js} +1 -1
- package/dist/{verdicts-NYCSBWUC.js → verdicts-J2SDU4MW.js} +1 -1
- package/dist/{version-check-7TSAVA6V.js → version-check-DAWGRSJ5.js} +1 -1
- package/dist/{walk-session-AINBHZKB.js → walk-session-D6TCM33V.js} +1 -1
- package/dist/{with-telemetry-3DL7ZEZL.js → with-telemetry-RXLIXUMR.js} +1 -1
- package/package.json +12 -12
- package/dist/EvidenceViewOffer-L5FVBQNK.js +0 -2
- package/dist/FolderPicker-6Z3CYSHF.js +0 -2
- package/dist/SingleShotApp-M3HNSUMZ.js +0 -2
- package/dist/TestMdRunView-ISOVQ7YP.js +0 -2
- package/dist/bridge-QDPBIIOW.js +0 -2
- package/dist/chunk-2KH2JUGL.js +0 -13
- package/dist/chunk-3654GK6O.js +0 -66
- package/dist/chunk-ECZMYPLJ.js +0 -19
- package/dist/chunk-GNIFMQNK.js +0 -10
- package/dist/chunk-IOD3HQVW.js +0 -11
- package/dist/chunk-JUVQQP42.js +0 -2
- package/dist/chunk-W4B5LOEX.js +0 -4
- package/dist/chunk-WQPQNL4S.js +0 -2
- package/dist/chunk-YGMC3FGJ.js +0 -26
- package/dist/cover-cmd-HDZZWJXG.js +0 -3
- package/dist/dispatch-ECUEAMXS.js +0 -2
- package/dist/doctor-SIBHJVGC.js +0 -2
- package/dist/evidence-ZVQHPELX.js +0 -2
- package/dist/ingest-cmd-YYNAKI2U.js +0 -2
- package/dist/login-flow-TRINUSBB.js +0 -2
- package/dist/pipeline-5GOS2KV2.js +0 -2
- package/dist/prepare-target-BUEOZVJV.js +0 -2
- package/dist/reconcile-cmd-TY3MWZL3.js +0 -2
- package/dist/resolve-run-intent-PZXEQTHC.js +0 -7
- package/dist/run-WKHPVWUN.js +0 -2
- package/dist/tcg-generate-XKSTMCOG.js +0 -2
- package/dist/token-refresh-FP6JFLXB.js +0 -2
- /package/dist/{lifecycle-cmd-HO5VL7AM.js → lifecycle-cmd-O2324GN6.js} +0 -0
package/dist/chunk-IOD3HQVW.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{e as M,f as R,h as j,i as y}from"./chunk-ZPDM6FO7.js";import{v as k}from"./chunk-TH47OOBV.js";import{existsSync as A,mkdirSync as W,readdirSync as B,readFileSync as N,renameSync as E,writeFileSync as G}from"fs";import{join as p}from"path";var P=/^@import\s+(\S+)\s*$/;function O(e,n){let s=e.resolve(n),l=s?String(e.getNode(s.tip)?.content.title??""):"";return l&&k(l,()=>!1)||n}function D(e){return p(e,".testmuai","tests")}function L(e){let n=new Map;if(!A(e))return n;for(let s of B(e)){if(!s.endsWith("_test.md"))continue;let l=p(e,s);try{let r=y(N(l,"utf8"))?.id;r&&n.set(r,[...n.get(r)??[],l])}catch{}}return n}function q(e,n){let s=`${e}.tmp-mint`;G(s,n),E(s,e)}function U(e){let{graph:n,cids:s,cwd:l}=e,r=D(l),w=[],d=[],m=L(r),$=new Set,b=(t,f)=>{let c=m.get(t);if(c&&c.length>1)return d.push({id:t,reason:`two files claim assurance.id ${t}: ${c.join(" \xB7 ")} \u2014 resolve the duplicate first`}),null;if($.has(t))return I(t);if(f.includes(t))return I(t)??`${O(n,t)}_test.md`;let S=n.resolve(t),v=S?n.getNode(S.tip):void 0,x=v?.content.test_md_blob,F=v?.content.definitionId;if(!x||!F)return d.push({id:t,reason:`${t} has no test definition in the graph`}),null;let h=x.split(`
|
|
3
|
-
`).map(o=>{let i=P.exec(o.trim());if(!i)return o;let u=i[1];if(!n.resolve(u))return o;let _=b(u,[...f,t]);if(!_)throw new g(`dependency ${u} could not be minted/located`);return`@import ./${_}`}).join(`
|
|
4
|
-
`),T=`---
|
|
5
|
-
assurance:
|
|
6
|
-
id: ${t}
|
|
7
|
-
base: ${F}
|
|
8
|
-
---
|
|
9
|
-
${h.endsWith(`
|
|
10
|
-
`)?h:h+`
|
|
11
|
-
`}`,a=c?.[0];if(a){let o=N(a,"utf8"),i=y(o)?.base,u=M(R(o,j(r,n)));if(!i||u!==i)return d.push({id:t,reason:`${a} was edited since the engine last wrote it \u2014 keeping yours (reconcile via a run or maintain)`}),null}else{let o=O(n,t),i=p(r,`${o}_test.md`);for(let u=2;A(i);u++)i=p(r,`${o}-${u}_test.md`);a=i}return W(r,{recursive:!0}),q(a,T),$.add(t),m.set(t,[a]),w.push({id:t,path:a}),a.split("/").pop()},I=t=>m.get(t)?.[0]?.split("/").pop()??null;for(let t of s){let f=n.nameOf.get(t);if(!f){d.push({id:t,reason:"minted test has no logical id"});continue}try{b(f,[])}catch(c){if(c instanceof g)d.push({id:f,reason:c.message});else throw c}}return{wrote:w,refused:d}}var g=class extends Error{};export{D as a,L as b,U as c};
|
package/dist/chunk-JUVQQP42.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{O,Q as S}from"./chunk-2KH2JUGL.js";import{c as L}from"./chunk-RFHMDQXZ.js";import{m as P,n as R}from"./chunk-56PAQAX5.js";import{y as s}from"./chunk-7F2ZV46B.js";import{a as y}from"./chunk-HCBYKLMW.js";import{a as E,b as o,i as h}from"./chunk-C44QQJR4.js";import{a as B}from"./chunk-6YGTRKDT.js";import{e as d}from"./chunk-UR6MHSHU.js";var n=d(B(),1);import{basename as D}from"path";var r=d(y(),1),U="evidence-view-server";function Q({packPath:m,viewerBase:w,onDone:V,openUrl:k}){let[t,a]=(0,n.useState)("ask"),[g,b]=(0,n.useState)(null),[l,p]=(0,n.useState)(null),f=(0,n.useRef)(null),u=(0,n.useRef)(!1),x=async()=>{let e=f.current;f.current=null,e&&(R(U),await e.close())},v=()=>{u.current||(u.current=!0,V())};return h((e,i)=>{u.current||(t==="ask"?e==="y"||e==="Y"?a("starting"):(e==="n"||e==="N"||i.return||i.escape)&&v():t==="serving"&&(e==="q"||e==="Q"||i.escape)&&x().then(v))}),(0,n.useEffect)(()=>{if(t!=="starting")return;let e=!1;return(async()=>{try{let i=D(m),c=await O({packs:new Map([[i,m]]),allowedOrigins:[new URL(w).origin]});if(e){await c.close();return}f.current=c,P(U,()=>{c.close()});let T=S(c.urlFor(i),w);b(T);try{await(k??(q=>L(q)))(T)}catch{p("could not open browser \u2014 open the URL manually")}a("serving")}catch(i){p(`evidence view failed \u2014 ${i.message}`),a("failed")}})(),()=>{e=!0}},[t]),(0,n.useEffect)(()=>{if(t!=="failed")return;let e=setTimeout(v,0);return()=>clearTimeout(e)},[t]),(0,n.useEffect)(()=>()=>{x()},[]),t==="ask"?(0,r.jsxs)(o,{children:["View evidence in browser? ",(0,r.jsx)(o,{color:s.dim,children:"(y/N)"})]}):t==="serving"||t==="starting"?(0,r.jsxs)(E,{flexDirection:"column",children:[g?(0,r.jsxs)(o,{children:["viewer ",(0,r.jsx)(o,{color:s.orange,children:g})]}):(0,r.jsx)(o,{color:s.dim,children:"starting\u2026"}),l?(0,r.jsx)(o,{color:"yellow",children:l}):null,t==="serving"?(0,r.jsx)(o,{color:s.dim,children:"Press q when done"}):null]}):l?(0,r.jsx)(o,{color:"yellow",children:l}):null}export{Q as a};
|
package/dist/chunk-W4B5LOEX.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as U}from"./chunk-DNNZ353O.js";import{a as G}from"./chunk-Q2F5QB2W.js";import{b as B,c as b}from"./chunk-NVGBE2DR.js";import{A as T}from"./chunk-TH47OOBV.js";import{a as L,c as F}from"./chunk-CUM23TLF.js";import{b as P,i as j}from"./chunk-DUAXZYAD.js";import{a as R,d as $,f as D}from"./chunk-WXHQYYD5.js";import{existsSync as ie,mkdirSync as oe,readFileSync as re,writeFileSync as se}from"fs";import{basename as C,extname as H,join as ae}from"path";var K=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;function q(e){return typeof e=="string"&&e!=="."&&e!==".."&&K.test(e)}function k(e){if(!q(e))throw new Error(`unsafe logical_id: ${JSON.stringify(e)} \u2014 must match ${String(K)} (no path separators)`)}import{extname as W}from"path";var Q={kind:"jira",media_type:"application/x-kane-jira-envelope",extensions:[],cite:"verbatim",maxBytes:2e6},ee={kind:"confluence",media_type:"application/x-kane-confluence-envelope",extensions:[],cite:"verbatim",maxBytes:2e6},z=[{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},{kind:"text",media_type:"application/json",extensions:[".json"],cite:"verbatim",maxBytes:2e6},{kind:"text",media_type:"application/yaml",extensions:[".yaml",".yml"],cite:"verbatim",maxBytes:2e6},{kind:"text",media_type:"application/toml",extensions:[".toml"],cite:"verbatim",maxBytes:2e6},{kind:"text",media_type:"application/xml",extensions:[".xml"],cite:"verbatim",maxBytes:2e6},{kind:"text",media_type:"text/plain",extensions:[".log"],cite:"verbatim",maxBytes:2e6},{kind:"pdf",media_type:"application/pdf",extensions:[".pdf"],cite:"verbatim",maxBytes:25e6,sniff:e=>e.subarray(0,5).toString("latin1")==="%PDF-"},{kind:"docx",media_type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extensions:[".docx"],cite:"verbatim",maxBytes:25e6,sniff:e=>e.length>=4&&e[0]===80&&e[1]===75&&e[2]===3&&e[3]===4,sniffFail:e=>e.length>=8&&e.subarray(0,8).equals(te)?"DOCX_ENCRYPTED_OR_LEGACY: password-protected Office file (or a legacy .doc renamed .docx) \u2014 remove the password / save as .docx and re-ingest":void 0},Q,ee],te=Buffer.from([208,207,17,224,161,177,26,225]),S={pdf:"pdf",docx:"docx",jira:"jira",confluence:"confluence"},pe=new Set(Object.keys(S));function J(e){let n=W(e).toLowerCase(),t=z.find(i=>i.extensions.includes(n));return t?{ok:!0,media:t}:{ok:!1,code:"UNSUPPORTED_MEDIA",allowlist:z.flatMap(i=>i.extensions)}}function v(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function de(e,n,t){return G({source_id:e,source_cid:"sha256:".padEnd(71,"0"),doc_kind:n,numbered_text:U(t)})}var Y=2e3;function ce(e){let t=C(e,H(e)).toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^[^a-z0-9]+/,"");return k(t),t}function ke(e){let n=/^(.*?)[-_.]?v?\d+$/.exec(e);if(!n)return null;let t=(n[1]??"").replace(/[-_.]+$/,"");return t.length>0&&t!==e?t:null}function X(e){let n=ae(e,"meta.json");ie(n)||(oe(e,{recursive:!0}),se(n,JSON.stringify({schema:R,canonicalizer:"v1"},null,2)+`
|
|
3
|
-
`))}async function Se(e){let{contextDir:n,filePath:t,asId:i,confirmSameSource:y,converters:h}=e;X(n);let o=re(t),s=J(t);if(!s.ok)throw new Error(`${C(t)} is a file type kane can't ingest (${H(t)||"no extension"}) \u2014 supported: ${s.allowlist.join(" ")} [UNSUPPORTED_MEDIA]`);if(o.byteLength>s.media.maxBytes)throw new Error(`${C(t)} is too large \u2014 ${v(o.byteLength)}, the limit for ${s.media.media_type} is ${v(s.media.maxBytes)} [FILE_TOO_LARGE]`);if(s.media.sniff&&!s.media.sniff(o)){let m=s.media.sniffFail?.(o);throw new Error(m??`MEDIA_SNIFF_MISMATCH: ${t} does not look like ${s.media.media_type}`)}let l;return i!==void 0?(k(i),l=i):l=ce(t),le({contextDir:n,bytes:o,media:s.media,sourceId:l,label:t,confirmSameSource:y,converters:h})}async function le(e){let{contextDir:n,bytes:t,media:i,confirmSameSource:y,converters:h}=e,o=e.sourceId,s=e.label??o;if(X(n),t.byteLength>i.maxBytes)throw new Error(`the content is too large \u2014 ${v(t.byteLength)}, the limit for ${i.media_type} is ${v(i.maxBytes)} [FILE_TOO_LARGE]`);let l=[],m=S[i.kind];if(i.cite==="verbatim"&&!m){try{new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{throw new Error(`ENCODING_UNSUPPORTED: ${s} is not valid UTF-8 \u2014 re-save it as UTF-8 and re-ingest`)}t.toString("utf8").split(`
|
|
4
|
-
`).some(p=>p.length>Y)&&l.push(`long line detected (> ${Y} chars) \u2014 anchors lose granularity; consider pretty-printing before ingest`)}let f=B(t),_=new Map,c=null,M=!1;for(let p=0;;p++){let x=T(n),u=x.heads.get(o),Z=u!=null?x.getNode(u)?.content:void 0;if(u!=null&&Z?.blob===f)return{status:"unchanged",source_id:o,cid:u,blob:f};if(u==null){for(let[r,g]of x.heads.entries())if(!(r===o||g==null)&&x.getNode(g)?.content.blob===f){let a;if(_.has(r)?a=_.get(r):p===0&&y?(a=await y(r),_.set(r,a)):(a=!1,_.set(r,a),p>0&&l.push(`same bytes already ingested as '${r}' \u2014 minted under '${o}' anyway (the twin appeared mid-commit; not prompted)`)),a)return{status:"unchanged",source_id:r,cid:g,blob:f};break}}if(c===null){let r={},g,a=null,O=null;if(m){let A=h?.[m];if(!A)throw new Error(`${m.toUpperCase()}_CONVERTER_MISSING: ${m} ingestion requires the converter \u2014 the command layer wires it`);let d=await A(t);a=Buffer.from(d.projection,"utf8");let N=de(o,i.kind,a);if(N>4e5)throw new Error(`PROJECTION_TOO_LARGE: serialized source payload ${N} bytes > ${4e5} \u2014 split the document and re-ingest`);r={text_blob:B(a),...d.inventory.length>0?{images:d.inventory}:{},converter:d.converter},O=d.blobs,g={kind:i.kind,...d.pages!==void 0?{pages:d.pages}:{},delivered:d.delivered.length,omitted:d.inventory.length-d.delivered.length}}c={derived:r,composite:g,projBytes:a,derivedBlobs:O}}if(!M){if(b(n,t),c.projBytes!==null&&b(n,c.projBytes),c.derivedBlobs!==null)for(let[,r]of c.derivedBlobs)b(n,r);M=!0}let w=F(o,f),E=D("source",w);if(E.length>0)throw new Error(`source node fails ${E[0].code}: ${E[0].detail}`);let I=L("source",w);try{j(n,{ts:new Date().toISOString(),proposal_id:null,nodes:[{cid:I,label:$.SOURCE,content:w}],edges:[],review:[],supersessions:[],media:{[o]:{format:i.kind,media_type:i.media_type,anchors_supported:m?["L-L","img#ref"]:i.cite==="verbatim"?["L-L"]:[],...c.derived}},...e.eventIds&&e.eventIds.length>0?{event_ids:e.eventIds}:{},source_head_moves:{[o]:I}},{expectPrev:x.latestHash})}catch(r){if(r instanceof P&&p<3)continue;throw r}return{status:u!=null?"versioned":"created",source_id:o,cid:I,blob:f,...l.length?{warnings:l}:{},...c.composite?{composite:c.composite}:{}}}}export{k as a,Q as b,ee as c,pe as d,J as e,de as f,ce as g,ke as h,Se as i,le as j};
|
package/dist/chunk-WQPQNL4S.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as f}from"./chunk-4U4OSOA4.js";import{c as g}from"./chunk-UD7KKHPW.js";import{existsSync as u}from"fs";import{dirname as p,resolve as c}from"path";import{fileURLToPath as A}from"url";var d=p(A(import.meta.url));function E(){return[c(d,".."),c(d,"../../..")]}function _(t){return{"darwin-arm64":"kane-cli-darwin-arm64","darwin-x64":"kane-cli-darwin-x64","linux-x64":"kane-cli-linux-x64","linux-arm64":"kane-cli-linux-arm64","win32-x64":"kane-cli-win-x64"}[t]??null}function x(t){return{"darwin-arm64":"kane-cli-assurance-darwin-arm64","darwin-x64":"kane-cli-assurance-darwin-x64","linux-x64":"kane-cli-assurance-linux-x64","linux-arm64":"kane-cli-assurance-linux-arm64","win32-x64":"kane-cli-assurance-win-x64"}[t]??null}function I(){let t=_(`${process.platform}-${process.arch}`),e=x(`${process.platform}-${process.arch}`),a=process.platform==="win32"?"assurance-agent.exe":"assurance-agent";for(let s of E()){for(let n of e?["@testmuai","@lambdatestincprivate"]:[]){let r=c(s,"node_modules",n,e,"bin",a);if(u(r))return{cmd:r,args:[],tier:"platform"}}for(let n of t?["@testmuai","@lambdatestincprivate"]:[]){let r=c(s,"node_modules",n,t,"bin",a);if(u(r))return{cmd:r,args:[],tier:"platform"}}let i=c(s,"../assurance-agent/dist",a);if(u(i))return{cmd:i,args:[],tier:"sibling"};let o=c(s,"../assurance-agent/main.py");if(u(o)){let n=c(s,"../assurance-agent/.venv/bin/python");return{cmd:u(n)?n:"python3",args:[o],tier:"dev-python"}}}return null}function U(t,e={}){return{...process.env,...e,...f(),TESTMUAI_SOURCE:"kane-cli",TESTMUAI_SESSION_ID:t,ASSURANCE_LOG_LEVEL:process.env.ASSURANCE_LOG_LEVEL??"info"}}async function P(){if(process.env.TESTMUAI_API_KEY||process.env.TESTMUAI_BASIC_AUTH)return{};try{let{CredentialsManager:t}=await import("./credentials-CALNKQMN.js"),e=process.env.TESTMUAI_ENV==="stage"?"stage":"prod",a=new t,s=a.getActiveProfile()??"default",i={TESTMUAI_ENV:e},o=a.loadBasicAuth(s,e);if(o)return i.TESTMUAI_BASIC_AUTH=Buffer.from(`${o.username}:${o.access_key}`,"utf8").toString("base64"),i;let n=a.loadCredentials(s,e);if(n){try{let{refreshOAuthToken:l}=await import("./token-refresh-FP6JFLXB.js");await l({creds:a,profile:s,env:e,credentials:n})}catch{}let r=a.loadCredentials(s,e)??n;if(typeof r.access_token=="string"){let l=await h(e,r.access_token);return l?(i.TESTMUAI_BASIC_AUTH=l,i):(i.TESTMUAI_API_KEY=r.access_token,i)}}return{}}catch{return{}}}var T=8e3;function m(){return g("warn: session auth may expire during long runs \u2014 if that happens, run `kane-cli login` and retry","AUTH_EXCHANGE_FAILED"),null}async function h(t,e){try{let[{getEnvironment:a},{ControllerClient:s}]=await Promise.all([import("./config-RLDXM5ZH.js"),import("./controller-client-OB4WD2C4.js")]),i=new s(a(t).controllerBaseUrl,e),o;try{let n=await Promise.race([i.getTmsCredentials().catch(()=>null),new Promise(r=>{o=setTimeout(()=>r(null),T)})]);if(typeof n?.username!="string"||!n.username||typeof n.access_key!="string"||!n.access_key)return m();try{let[{refreshIdentitySnapshot:r},{telemetryEnvName:l}]=await Promise.all([import("./identity-ADZ4PAJF.js"),import("./bootstrap-RUJBMB2P.js")]);await r(l(),n)}catch{}return Buffer.from(`${n.username}:${n.access_key}`,"utf8").toString("base64")}finally{clearTimeout(o)}}catch{return m()}}export{_ as a,x as b,I as c,U as d,P as e};
|