tftsr-devops_investigation/node_modules/@zip.js/zip.js/dist/zip-legacy.min.js

2 lines
99 KiB
JavaScript
Raw Normal View History

feat: initial implementation of TFTSR IT Triage & RCA application Implements Phases 1-8 of the TFTSR implementation plan. Rust backend (Tauri 2.x, src-tauri/): - Multi-provider AI: OpenAI-compatible, Anthropic, Gemini, Mistral, Ollama - PII detection engine: 11 regex patterns with overlap resolution - SQLCipher AES-256 encrypted database with 10 versioned migrations - 28 Tauri IPC commands for triage, analysis, document, and system ops - Ollama: hardware probe, model recommendations, pull/delete with events - RCA and blameless post-mortem Markdown document generators - PDF export via printpdf - Audit log: SHA-256 hash of every external data send - Integration stubs for Confluence, ServiceNow, Azure DevOps (v0.2) Frontend (React 18 + TypeScript + Vite, src/): - 9 pages: full triage workflow NewIssue→LogUpload→Triage→Resolution→RCA→Postmortem→History+Settings - 7 components: ChatWindow, TriageProgress, PiiDiffViewer, DocEditor, HardwareReport, ModelSelector, UI primitives - 3 Zustand stores: session, settings (persisted), history - Type-safe tauriCommands.ts matching Rust backend types exactly - 8 IT domain system prompts (Linux, Windows, Network, K8s, DB, Virt, HW, Obs) DevOps: - .woodpecker/test.yml: rustfmt, clippy, cargo test, tsc, vitest on every push - .woodpecker/release.yml: linux/amd64 + linux/arm64 builds, Gogs release upload Verified: - cargo check: zero errors - tsc --noEmit: zero errors - vitest run: 13/13 unit tests passing Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 03:36:25 +00:00
((A,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((A="undefined"!=typeof globalThis?globalThis:A||self).zip={})})(this,function(A){"use strict";const{Array:e,Object:t,String:g,Number:i,BigInt:s,Math:r,Date:o,Map:a,Set:n,Response:B,URL:c,Error:I,Uint8Array:E,Uint16Array:l,Uint32Array:C,DataView:w,Blob:d,Promise:h,TextEncoder:u,TextDecoder:F,document:Q,crypto:Y,btoa:D,TransformStream:p,ReadableStream:m,WritableStream:f,CompressionStream:S,DecompressionStream:y,navigator:M,Worker:W}="undefined"!=typeof globalThis?globalThis:this||self;var b=void 0!==Q?Q.currentScript:null;const G=4294967295,U=65535,O=255,K=67324752,T=134695760,z=T,R=33639248,x=101010256,N=101075792,L=117853008,k=22,H=21589,J=2048,P=16384,V=2048,j=1024,Z=512,X="/",q=30,v=new o(2107,11,31),_=new o(1980,0,1),$=void 0,AA=1/0,eA="undefined",tA="function";let gA=2;try{typeof M!=eA&&M.hardwareConcurrency&&(gA=M.hardwareConcurrency)}catch{}const iA={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:gA,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof S!=eA&&S,DecompressionStream:typeof y!=eA&&y},sA=t.assign({},iA);function rA(){return sA}function oA(A){return r.max(A.chunkSize,64)}function aA(A){const{baseURI:e,chunkSize:t,maxWorkers:g,terminateWorkerTimeout:i,useCompressionStream:s,useWebWorkers:r,CompressionStream:o,DecompressionStream:a,CompressionStreamZlib:n,DecompressionStreamZlib:B,workerURI:c,wasmURI:I}=A;nA("baseURI",e),nA("wasmURI",I),nA("workerURI",c),nA("chunkSize",t),nA("maxWorkers",g),nA("terminateWorkerTimeout",i),nA("useCompressionStream",s),nA("useWebWorkers",r),nA("CompressionStream",o),nA("DecompressionStream",a),nA("CompressionStreamZlib",n),nA("DecompressionStreamZlib",B)}function nA(A,e){e!==$&&(sA[A]=e)}const BA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",cA=[];for(let A=0;256>A;A++){let e=A;for(let A=0;8>A;A++)1&e?e=e>>>1^3988292384:e>>>=1;cA[A]=e}class IA{constructor(A){this.crc=A||-1}append(A){let e=0|this.crc;for(let t=0,g=0|A.length;g>t;t++)e=e>>>8^cA[255&(e^A[t])];this.crc=e}get(){return~this.crc}}class EA extends p{constructor(){let A;const e=new IA;super({transform(A,t){e.append(A),t.enqueue(A)},flush(){const t=new E(4);new w(t.buffer).setUint32(0,e.get()),A.value=t}}),A=this}}function lA(A){if(typeof u==eA){const e=new E((A=unescape(encodeURIComponent(A))).length);for(let t=0;t<e.length;t++)e[t]=A.charCodeAt(t);return e}return(new u).encode(A)}const CA={concat(A,e){if(0===A.length||0===e.length)return A.concat(e);const t=A[A.length-1],g=CA.getPartial(t);return 32===g?A.concat(e):CA._shiftRight(e,g,0|t,A.slice(0,A.length-1))},bitLength(A){const e=A.length;if(0===e)return 0;const t=A[e-1];return 32*(e-1)+CA.getPartial(t)},clamp(A,e){if(32*A.length<e)return A;const t=(A=A.slice(0,r.ceil(e/32))).length;return e&=31,t>0&&e&&(A[t-1]=CA.partial(e,A[t-1]&2147483648>>e-1,1)),A},partial:(A,e,t)=>32===A?e:(t?0|e:e<<32-A)+1099511627776*A,getPartial:A=>r.round(A/1099511627776)||32,_shiftRight(A,e,t,g){for(void 0===g&&(g=[]);e>=32;e-=32)g.push(t),t=0;if(0===e)return g.concat(A);for(let i=0;i<A.length;i++)g.push(t|A[i]>>>e),t=A[i]<<32-e;const i=A.length?A[A.length-1]:0,s=CA.getPartial(i);return g.push(CA.partial(e+s&31,e+s>32?t:g.pop(),1)),g}},wA={bytes:{fromBits(A){const e=CA.bitLength(A)/8,t=new E(e);let g;for(let i=0;e>i;i++)3&i||(g=A[i/4]),t[i]=g>>>24,g<<=8;return t},toBits(A){const e=[];let t,g=0;for(t=0;t<A.length;t++)g=g<<8|A[t],3&~t||(e.push(g),g=0);return 3&t&&e.push(CA.partial(8*(3&t),g)),e}}},dA=class{constructor(A){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],A?(e._h=A._h.slice(0),e._buffer=A._buffer.slice(0),e._length=A._length):e.reset()}reset(){const A=this;return A._h=A._init.slice(0),A._buffer=[],A._length=0,A}update(A){const e=this;"string"==typeof A&&(A=wA.utf8String.toBits(A));const t=e._buffer=CA.concat(e._buffer