tftsr-devops_investigation/node_modules/@zip.js/zip.js/dist/zip-fs-native.min.js

2 lines
165 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
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:A,String:n,Number:r,BigInt:i,Math:a,Date:s,Map:o,Set:g,Response:l,URL:c,Error:d,Uint8Array:u,Uint16Array:m,Uint32Array:B,DataView:p,Blob:f,Promise:h,TextEncoder:w,TextDecoder:I,document:E,crypto:C,btoa:x,TransformStream:F,ReadableStream:Q,WritableStream:D,CompressionStream:v,DecompressionStream:b,navigator:y,Worker:Y}="undefined"!=typeof globalThis?globalThis:this||self;var S=void 0!==E?E.currentScript:null;const k=4294967295,M=65535,z=255,W=67324752,O=134695760,G=O,U=33639248,T=101010256,R=101075792,K=117853008,N=22,H=21589,L=2048,j=16384,J=2048,Z=1024,P=512,q="/",V=30,X=new s(2107,11,31),_=new s(1980,0,1),$=void 0,ee=1/0,te="undefined",Ae="function";let ne=2;try{typeof y!=te&&y.hardwareConcurrency&&(ne=y.hardwareConcurrency)}catch{}const re={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:ne,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof v!=te&&v,DecompressionStream:typeof b!=te&&b},ie=A.assign({},re);function ae(){return ie}function se(e){return a.max(e.chunkSize,64)}function oe(e){const{baseURI:t,chunkSize:A,maxWorkers:n,terminateWorkerTimeout:r,useCompressionStream:i,useWebWorkers:a,CompressionStream:s,DecompressionStream:o,CompressionStreamZlib:g,DecompressionStreamZlib:l,workerURI:c,wasmURI:d}=e;ge("baseURI",t),ge("wasmURI",d),ge("workerURI",c),ge("chunkSize",A),ge("maxWorkers",n),ge("terminateWorkerTimeout",r),ge("useCompressionStream",i),ge("useWebWorkers",a),ge("CompressionStream",s),ge("DecompressionStream",o),ge("CompressionStreamZlib",g),ge("DecompressionStreamZlib",l)}function ge(e,t){t!==$&&(ie[e]=t)}const le="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ce=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;ce[e]=t}class de{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let A=0,n=0|e.length;n>A;A++)t=t>>>8^ce[255&(t^e[A])];this.crc=t}get(){return~this.crc}}class ue extends F{constructor(){let e;const t=new de;super({transform(e,A){t.append(e),A.enqueue(e)},flush(){const A=new u(4);new p(A.buffer).setUint32(0,t.get()),e.value=A}}),e=this}}function me(e){if(typeof w==te){const t=new u((e=unescape(encodeURIComponent(e))).length);for(let A=0;A<t.length;A++)t[A]=e.charCodeAt(A);return t}return(new w).encode(e)}const Be={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const A=e[e.length-1],n=Be.getPartial(A);return 32===n?e.concat(t):Be._shiftRight(t,n,0|A,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const A=e[t-1];return 32*(t-1)+Be.getPartial(A)},clamp(e,t){if(32*e.length<t)return e;const A=(e=e.slice(0,a.ceil(t/32))).length;return t&=31,A>0&&t&&(e[A-1]=Be.partial(t,e[A-1]&2147483648>>t-1,1)),e},partial:(e,t,A)=>32===e?t:(A?0|t:t<<32-e)+1099511627776*e,getPartial:e=>a.round(e/1099511627776)||32,_shiftRight(e,t,A,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(A),A=0;if(0===t)return n.concat(e);for(let r=0;r<e.length;r++)n.push(A|e[r]>>>t),A=e[r]<<32-t;const r=e.length?e[e.length-1]:0,i=Be.getPartial(r);return n.push(Be.partial(t+i&31,t+i>32?A:n.pop(),1)),n}},pe={bytes:{fromBits(e){const t=Be.bitLength(e)/8,A=new u(t);let n;for(let r=0;t>r;r++)3&r||(n=e[r/4]),A[r]=n>>>24,n<<=8;return A},toBits(e){const t=[];let A,n=0;for(A=0;A<e.length;A++)n=n<<8|e[A],3&~A||(t.push(n),n=0);return 3&A&&t.push(Be.partial(8*(3&A),n)),t}}},fe=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=pe.utf8String.toBits(e));const A=t._buffer=Be.concat(t._buffer