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
{
"name" : "tftsr" ,
"version" : "0.1.0" ,
"lockfileVersion" : 3 ,
"requires" : true ,
"packages" : {
"" : {
"name" : "tftsr" ,
"version" : "0.1.0" ,
"dependencies" : {
"@tauri-apps/api" : "^2" ,
"@tauri-apps/plugin-dialog" : "^2" ,
"@tauri-apps/plugin-fs" : "^2" ,
"@tauri-apps/plugin-stronghold" : "^2" ,
"class-variance-authority" : "^0.7" ,
"clsx" : "^2" ,
"lucide-react" : "latest" ,
"react" : "^18" ,
"react-diff-viewer-continued" : "^3" ,
"react-dom" : "^18" ,
"react-markdown" : "^9" ,
"react-router-dom" : "^6" ,
"remark-gfm" : "^4" ,
"tailwindcss" : "^3" ,
"zustand" : "^4"
} ,
"devDependencies" : {
"@tauri-apps/cli" : "^2" ,
2026-04-03 13:05:58 +00:00
"@testing-library/jest-dom" : "^6.9.1" ,
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
"@testing-library/react" : "^16" ,
"@testing-library/user-event" : "^14" ,
"@types/react" : "^18" ,
"@types/react-dom" : "^18" ,
"@vitejs/plugin-react" : "^4" ,
"@vitest/coverage-v8" : "^2" ,
"@wdio/cli" : "^9" ,
"@wdio/mocha-framework" : "^9" ,
"autoprefixer" : "^10" ,
"jsdom" : "^26" ,
"postcss" : "^8" ,
"typescript" : "^5" ,
"vite" : "^6" ,
"vitest" : "^2" ,
"webdriverio" : "^9"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/@adobe/css-tools" : {
"version" : "4.4.4" ,
"resolved" : "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz" ,
"integrity" : "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==" ,
"dev" : true ,
"license" : "MIT"
} ,
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
"node_modules/@alloc/quick-lru" : {
"version" : "5.2.0" ,
"resolved" : "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" ,
"integrity" : "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/@ampproject/remapping" : {
"version" : "2.3.0" ,
"resolved" : "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" ,
"integrity" : "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"@jridgewell/gen-mapping" : "^0.3.5" ,
"@jridgewell/trace-mapping" : "^0.3.24"
} ,
"engines" : {
"node" : ">=6.0.0"
}
} ,
"node_modules/@asamuzakjp/css-color" : {
"version" : "3.2.0" ,
"resolved" : "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz" ,
"integrity" : "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@csstools/css-calc" : "^2.1.3" ,
"@csstools/css-color-parser" : "^3.0.9" ,
"@csstools/css-parser-algorithms" : "^3.0.4" ,
"@csstools/css-tokenizer" : "^3.0.3" ,
"lru-cache" : "^10.4.3"
}
} ,
"node_modules/@asamuzakjp/css-color/node_modules/lru-cache" : {
"version" : "10.4.3" ,
"resolved" : "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" ,
"integrity" : "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/@babel/code-frame" : {
"version" : "7.29.0" ,
"resolved" : "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz" ,
"integrity" : "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/helper-validator-identifier" : "^7.28.5" ,
"js-tokens" : "^4.0.0" ,
"picocolors" : "^1.1.1"
} ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/compat-data" : {
"version" : "7.29.0" ,
"resolved" : "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz" ,
"integrity" : "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/core" : {
"version" : "7.29.0" ,
"resolved" : "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz" ,
"integrity" : "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/code-frame" : "^7.29.0" ,
"@babel/generator" : "^7.29.0" ,
"@babel/helper-compilation-targets" : "^7.28.6" ,
"@babel/helper-module-transforms" : "^7.28.6" ,
"@babel/helpers" : "^7.28.6" ,
"@babel/parser" : "^7.29.0" ,
"@babel/template" : "^7.28.6" ,
"@babel/traverse" : "^7.29.0" ,
"@babel/types" : "^7.29.0" ,
"@jridgewell/remapping" : "^2.3.5" ,
"convert-source-map" : "^2.0.0" ,
"debug" : "^4.1.0" ,
"gensync" : "^1.0.0-beta.2" ,
"json5" : "^2.2.3" ,
"semver" : "^6.3.1"
} ,
"engines" : {
"node" : ">=6.9.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/babel"
}
} ,
"node_modules/@babel/generator" : {
"version" : "7.29.1" ,
"resolved" : "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz" ,
"integrity" : "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/parser" : "^7.29.0" ,
"@babel/types" : "^7.29.0" ,
"@jridgewell/gen-mapping" : "^0.3.12" ,
"@jridgewell/trace-mapping" : "^0.3.28" ,
"jsesc" : "^3.0.2"
} ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/helper-compilation-targets" : {
"version" : "7.28.6" ,
"resolved" : "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz" ,
"integrity" : "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/compat-data" : "^7.28.6" ,
"@babel/helper-validator-option" : "^7.27.1" ,
"browserslist" : "^4.24.0" ,
"lru-cache" : "^5.1.1" ,
"semver" : "^6.3.1"
} ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/helper-globals" : {
"version" : "7.28.0" ,
"resolved" : "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz" ,
"integrity" : "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/helper-module-imports" : {
"version" : "7.28.6" ,
"resolved" : "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz" ,
"integrity" : "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/traverse" : "^7.28.6" ,
"@babel/types" : "^7.28.6"
} ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/helper-module-transforms" : {
"version" : "7.28.6" ,
"resolved" : "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz" ,
"integrity" : "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/helper-module-imports" : "^7.28.6" ,
"@babel/helper-validator-identifier" : "^7.28.5" ,
"@babel/traverse" : "^7.28.6"
} ,
"engines" : {
"node" : ">=6.9.0"
} ,
"peerDependencies" : {
"@babel/core" : "^7.0.0"
}
} ,
"node_modules/@babel/helper-plugin-utils" : {
"version" : "7.28.6" ,
"resolved" : "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz" ,
"integrity" : "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/helper-string-parser" : {
"version" : "7.27.1" ,
"resolved" : "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" ,
"integrity" : "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/helper-validator-identifier" : {
"version" : "7.28.5" ,
"resolved" : "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" ,
"integrity" : "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/helper-validator-option" : {
"version" : "7.27.1" ,
"resolved" : "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" ,
"integrity" : "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/helpers" : {
"version" : "7.28.6" ,
"resolved" : "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz" ,
"integrity" : "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/template" : "^7.28.6" ,
"@babel/types" : "^7.28.6"
} ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/parser" : {
"version" : "7.29.0" ,
"resolved" : "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz" ,
"integrity" : "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/types" : "^7.29.0"
} ,
"bin" : {
"parser" : "bin/babel-parser.js"
} ,
"engines" : {
"node" : ">=6.0.0"
}
} ,
"node_modules/@babel/plugin-transform-react-jsx-self" : {
"version" : "7.27.1" ,
"resolved" : "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz" ,
"integrity" : "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/helper-plugin-utils" : "^7.27.1"
} ,
"engines" : {
"node" : ">=6.9.0"
} ,
"peerDependencies" : {
"@babel/core" : "^7.0.0-0"
}
} ,
"node_modules/@babel/plugin-transform-react-jsx-source" : {
"version" : "7.27.1" ,
"resolved" : "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz" ,
"integrity" : "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/helper-plugin-utils" : "^7.27.1"
} ,
"engines" : {
"node" : ">=6.9.0"
} ,
"peerDependencies" : {
"@babel/core" : "^7.0.0-0"
}
} ,
"node_modules/@babel/runtime" : {
"version" : "7.28.6" ,
"resolved" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz" ,
"integrity" : "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/template" : {
"version" : "7.28.6" ,
"resolved" : "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz" ,
"integrity" : "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/code-frame" : "^7.28.6" ,
"@babel/parser" : "^7.28.6" ,
"@babel/types" : "^7.28.6"
} ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/traverse" : {
"version" : "7.29.0" ,
"resolved" : "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz" ,
"integrity" : "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/code-frame" : "^7.29.0" ,
"@babel/generator" : "^7.29.0" ,
"@babel/helper-globals" : "^7.28.0" ,
"@babel/parser" : "^7.29.0" ,
"@babel/template" : "^7.28.6" ,
"@babel/types" : "^7.29.0" ,
"debug" : "^4.3.1"
} ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@babel/types" : {
"version" : "7.29.0" ,
"resolved" : "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz" ,
"integrity" : "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/helper-string-parser" : "^7.27.1" ,
"@babel/helper-validator-identifier" : "^7.28.5"
} ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/@bcoe/v8-coverage" : {
"version" : "0.2.3" ,
"resolved" : "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" ,
"integrity" : "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/@csstools/color-helpers" : {
"version" : "5.1.0" ,
"resolved" : "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz" ,
"integrity" : "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/csstools"
} ,
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/csstools"
}
] ,
"license" : "MIT-0" ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@csstools/css-calc" : {
"version" : "2.1.4" ,
"resolved" : "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz" ,
"integrity" : "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/csstools"
} ,
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/csstools"
}
] ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@csstools/css-parser-algorithms" : "^3.0.5" ,
"@csstools/css-tokenizer" : "^3.0.4"
}
} ,
"node_modules/@csstools/css-color-parser" : {
"version" : "3.1.0" ,
"resolved" : "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz" ,
"integrity" : "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/csstools"
} ,
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/csstools"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"@csstools/color-helpers" : "^5.1.0" ,
"@csstools/css-calc" : "^2.1.4"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@csstools/css-parser-algorithms" : "^3.0.5" ,
"@csstools/css-tokenizer" : "^3.0.4"
}
} ,
"node_modules/@csstools/css-parser-algorithms" : {
"version" : "3.0.5" ,
"resolved" : "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz" ,
"integrity" : "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/csstools"
} ,
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/csstools"
}
] ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@csstools/css-tokenizer" : "^3.0.4"
}
} ,
"node_modules/@csstools/css-tokenizer" : {
"version" : "3.0.4" ,
"resolved" : "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz" ,
"integrity" : "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/csstools"
} ,
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/csstools"
}
] ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@emotion/babel-plugin" : {
"version" : "11.13.5" ,
"resolved" : "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz" ,
"integrity" : "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/helper-module-imports" : "^7.16.7" ,
"@babel/runtime" : "^7.18.3" ,
"@emotion/hash" : "^0.9.2" ,
"@emotion/memoize" : "^0.9.0" ,
"@emotion/serialize" : "^1.3.3" ,
"babel-plugin-macros" : "^3.1.0" ,
"convert-source-map" : "^1.5.0" ,
"escape-string-regexp" : "^4.0.0" ,
"find-root" : "^1.1.0" ,
"source-map" : "^0.5.7" ,
"stylis" : "4.2.0"
}
} ,
"node_modules/@emotion/babel-plugin/node_modules/convert-source-map" : {
"version" : "1.9.0" ,
"resolved" : "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" ,
"integrity" : "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" ,
"license" : "MIT"
} ,
"node_modules/@emotion/babel-plugin/node_modules/source-map" : {
"version" : "0.5.7" ,
"resolved" : "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" ,
"integrity" : "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" ,
"license" : "BSD-3-Clause" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/@emotion/cache" : {
"version" : "11.14.0" ,
"resolved" : "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz" ,
"integrity" : "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==" ,
"license" : "MIT" ,
"dependencies" : {
"@emotion/memoize" : "^0.9.0" ,
"@emotion/sheet" : "^1.4.0" ,
"@emotion/utils" : "^1.4.2" ,
"@emotion/weak-memoize" : "^0.4.0" ,
"stylis" : "4.2.0"
}
} ,
"node_modules/@emotion/css" : {
"version" : "11.13.5" ,
"resolved" : "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz" ,
"integrity" : "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==" ,
"license" : "MIT" ,
"dependencies" : {
"@emotion/babel-plugin" : "^11.13.5" ,
"@emotion/cache" : "^11.13.5" ,
"@emotion/serialize" : "^1.3.3" ,
"@emotion/sheet" : "^1.4.0" ,
"@emotion/utils" : "^1.4.2"
}
} ,
"node_modules/@emotion/hash" : {
"version" : "0.9.2" ,
"resolved" : "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz" ,
"integrity" : "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==" ,
"license" : "MIT"
} ,
"node_modules/@emotion/memoize" : {
"version" : "0.9.0" ,
"resolved" : "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz" ,
"integrity" : "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" ,
"license" : "MIT"
} ,
"node_modules/@emotion/serialize" : {
"version" : "1.3.3" ,
"resolved" : "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz" ,
"integrity" : "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==" ,
"license" : "MIT" ,
"dependencies" : {
"@emotion/hash" : "^0.9.2" ,
"@emotion/memoize" : "^0.9.0" ,
"@emotion/unitless" : "^0.10.0" ,
"@emotion/utils" : "^1.4.2" ,
"csstype" : "^3.0.2"
}
} ,
"node_modules/@emotion/sheet" : {
"version" : "1.4.0" ,
"resolved" : "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz" ,
"integrity" : "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" ,
"license" : "MIT"
} ,
"node_modules/@emotion/unitless" : {
"version" : "0.10.0" ,
"resolved" : "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz" ,
"integrity" : "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" ,
"license" : "MIT"
} ,
"node_modules/@emotion/utils" : {
"version" : "1.4.2" ,
"resolved" : "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz" ,
"integrity" : "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==" ,
"license" : "MIT"
} ,
"node_modules/@emotion/weak-memoize" : {
"version" : "0.4.0" ,
"resolved" : "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz" ,
"integrity" : "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" ,
"license" : "MIT"
} ,
"node_modules/@esbuild/aix-ppc64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz" ,
"integrity" : "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"aix"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/android-arm" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz" ,
"integrity" : "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/android-arm64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz" ,
"integrity" : "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/android-x64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz" ,
"integrity" : "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/darwin-arm64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz" ,
"integrity" : "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/darwin-x64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz" ,
"integrity" : "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/freebsd-arm64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz" ,
"integrity" : "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/freebsd-x64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz" ,
"integrity" : "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-arm" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz" ,
"integrity" : "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-arm64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz" ,
"integrity" : "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-ia32" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz" ,
"integrity" : "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-loong64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz" ,
"integrity" : "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==" ,
"cpu" : [
"loong64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-mips64el" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz" ,
"integrity" : "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==" ,
"cpu" : [
"mips64el"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-ppc64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz" ,
"integrity" : "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-riscv64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz" ,
"integrity" : "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==" ,
"cpu" : [
"riscv64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-s390x" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz" ,
"integrity" : "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==" ,
"cpu" : [
"s390x"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/linux-x64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz" ,
"integrity" : "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/netbsd-arm64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz" ,
"integrity" : "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"netbsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/netbsd-x64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz" ,
"integrity" : "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"netbsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/openbsd-arm64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz" ,
"integrity" : "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openbsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/openbsd-x64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz" ,
"integrity" : "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openbsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/openharmony-arm64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz" ,
"integrity" : "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openharmony"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/sunos-x64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz" ,
"integrity" : "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"sunos"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/win32-arm64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz" ,
"integrity" : "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/win32-ia32" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz" ,
"integrity" : "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@esbuild/win32-x64" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz" ,
"integrity" : "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@inquirer/ansi" : {
"version" : "1.0.2" ,
"resolved" : "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz" ,
"integrity" : "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@inquirer/checkbox" : {
"version" : "4.3.2" ,
"resolved" : "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz" ,
"integrity" : "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/ansi" : "^1.0.2" ,
"@inquirer/core" : "^10.3.2" ,
"@inquirer/figures" : "^1.0.15" ,
"@inquirer/type" : "^3.0.10" ,
"yoctocolors-cjs" : "^2.1.3"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/confirm" : {
"version" : "5.1.21" ,
"resolved" : "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz" ,
"integrity" : "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/core" : "^10.3.2" ,
"@inquirer/type" : "^3.0.10"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/core" : {
"version" : "10.3.2" ,
"resolved" : "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz" ,
"integrity" : "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/ansi" : "^1.0.2" ,
"@inquirer/figures" : "^1.0.15" ,
"@inquirer/type" : "^3.0.10" ,
"cli-width" : "^4.1.0" ,
"mute-stream" : "^2.0.0" ,
"signal-exit" : "^4.1.0" ,
"wrap-ansi" : "^6.2.0" ,
"yoctocolors-cjs" : "^2.1.3"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/editor" : {
"version" : "4.2.23" ,
"resolved" : "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz" ,
"integrity" : "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/core" : "^10.3.2" ,
"@inquirer/external-editor" : "^1.0.3" ,
"@inquirer/type" : "^3.0.10"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/expand" : {
"version" : "4.0.23" ,
"resolved" : "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz" ,
"integrity" : "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/core" : "^10.3.2" ,
"@inquirer/type" : "^3.0.10" ,
"yoctocolors-cjs" : "^2.1.3"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/external-editor" : {
"version" : "1.0.3" ,
"resolved" : "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz" ,
"integrity" : "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"chardet" : "^2.1.1" ,
"iconv-lite" : "^0.7.0"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/figures" : {
"version" : "1.0.15" ,
"resolved" : "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz" ,
"integrity" : "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@inquirer/input" : {
"version" : "4.3.1" ,
"resolved" : "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz" ,
"integrity" : "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/core" : "^10.3.2" ,
"@inquirer/type" : "^3.0.10"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/number" : {
"version" : "3.0.23" ,
"resolved" : "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz" ,
"integrity" : "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/core" : "^10.3.2" ,
"@inquirer/type" : "^3.0.10"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/password" : {
"version" : "4.0.23" ,
"resolved" : "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz" ,
"integrity" : "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/ansi" : "^1.0.2" ,
"@inquirer/core" : "^10.3.2" ,
"@inquirer/type" : "^3.0.10"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/prompts" : {
"version" : "7.10.1" ,
"resolved" : "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz" ,
"integrity" : "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/checkbox" : "^4.3.2" ,
"@inquirer/confirm" : "^5.1.21" ,
"@inquirer/editor" : "^4.2.23" ,
"@inquirer/expand" : "^4.0.23" ,
"@inquirer/input" : "^4.3.1" ,
"@inquirer/number" : "^3.0.23" ,
"@inquirer/password" : "^4.0.23" ,
"@inquirer/rawlist" : "^4.1.11" ,
"@inquirer/search" : "^3.2.2" ,
"@inquirer/select" : "^4.4.2"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/rawlist" : {
"version" : "4.1.11" ,
"resolved" : "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz" ,
"integrity" : "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/core" : "^10.3.2" ,
"@inquirer/type" : "^3.0.10" ,
"yoctocolors-cjs" : "^2.1.3"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/search" : {
"version" : "3.2.2" ,
"resolved" : "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz" ,
"integrity" : "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/core" : "^10.3.2" ,
"@inquirer/figures" : "^1.0.15" ,
"@inquirer/type" : "^3.0.10" ,
"yoctocolors-cjs" : "^2.1.3"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/select" : {
"version" : "4.4.2" ,
"resolved" : "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz" ,
"integrity" : "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/ansi" : "^1.0.2" ,
"@inquirer/core" : "^10.3.2" ,
"@inquirer/figures" : "^1.0.15" ,
"@inquirer/type" : "^3.0.10" ,
"yoctocolors-cjs" : "^2.1.3"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@inquirer/type" : {
"version" : "3.0.10" ,
"resolved" : "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz" ,
"integrity" : "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/@isaacs/cliui" : {
"version" : "8.0.2" ,
"resolved" : "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" ,
"integrity" : "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"string-width" : "^5.1.2" ,
"string-width-cjs" : "npm:string-width@^4.2.0" ,
"strip-ansi" : "^7.0.1" ,
"strip-ansi-cjs" : "npm:strip-ansi@^6.0.1" ,
"wrap-ansi" : "^8.1.0" ,
"wrap-ansi-cjs" : "npm:wrap-ansi@^7.0.0"
} ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/@isaacs/cliui/node_modules/ansi-styles" : {
"version" : "6.2.3" ,
"resolved" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz" ,
"integrity" : "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/chalk/ansi-styles?sponsor=1"
}
} ,
"node_modules/@isaacs/cliui/node_modules/wrap-ansi" : {
"version" : "8.1.0" ,
"resolved" : "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" ,
"integrity" : "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-styles" : "^6.1.0" ,
"string-width" : "^5.0.1" ,
"strip-ansi" : "^7.0.1"
} ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/chalk/wrap-ansi?sponsor=1"
}
} ,
"node_modules/@istanbuljs/schema" : {
"version" : "0.1.3" ,
"resolved" : "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" ,
"integrity" : "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/@jest/diff-sequences" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz" ,
"integrity" : "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/@jest/expect-utils" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz" ,
"integrity" : "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@jest/get-type" : "30.1.0"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/@jest/get-type" : {
"version" : "30.1.0" ,
"resolved" : "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz" ,
"integrity" : "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/@jest/pattern" : {
"version" : "30.0.1" ,
"resolved" : "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz" ,
"integrity" : "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@types/node" : "*" ,
"jest-regex-util" : "30.0.1"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/@jest/schemas" : {
"version" : "30.0.5" ,
"resolved" : "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz" ,
"integrity" : "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@sinclair/typebox" : "^0.34.0"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/@jest/types" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz" ,
"integrity" : "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@jest/pattern" : "30.0.1" ,
"@jest/schemas" : "30.0.5" ,
"@types/istanbul-lib-coverage" : "^2.0.6" ,
"@types/istanbul-reports" : "^3.0.4" ,
"@types/node" : "*" ,
"@types/yargs" : "^17.0.33" ,
"chalk" : "^4.1.2"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/@jest/types/node_modules/chalk" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" ,
"integrity" : "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"ansi-styles" : "^4.1.0" ,
"supports-color" : "^7.1.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/chalk?sponsor=1"
}
} ,
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
"node_modules/@jridgewell/gen-mapping" : {
"version" : "0.3.13" ,
"resolved" : "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" ,
"integrity" : "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==" ,
"license" : "MIT" ,
"dependencies" : {
"@jridgewell/sourcemap-codec" : "^1.5.0" ,
"@jridgewell/trace-mapping" : "^0.3.24"
}
} ,
"node_modules/@jridgewell/remapping" : {
"version" : "2.3.5" ,
"resolved" : "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz" ,
"integrity" : "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@jridgewell/gen-mapping" : "^0.3.5" ,
"@jridgewell/trace-mapping" : "^0.3.24"
}
} ,
"node_modules/@jridgewell/resolve-uri" : {
"version" : "3.1.2" ,
"resolved" : "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" ,
"integrity" : "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.0.0"
}
} ,
"node_modules/@jridgewell/sourcemap-codec" : {
"version" : "1.5.5" ,
"resolved" : "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" ,
"integrity" : "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" ,
"license" : "MIT"
} ,
"node_modules/@jridgewell/trace-mapping" : {
"version" : "0.3.31" ,
"resolved" : "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" ,
"integrity" : "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==" ,
"license" : "MIT" ,
"dependencies" : {
"@jridgewell/resolve-uri" : "^3.1.0" ,
"@jridgewell/sourcemap-codec" : "^1.4.14"
}
} ,
"node_modules/@nodelib/fs.scandir" : {
"version" : "2.1.5" ,
"resolved" : "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" ,
"integrity" : "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" ,
"license" : "MIT" ,
"dependencies" : {
"@nodelib/fs.stat" : "2.0.5" ,
"run-parallel" : "^1.1.9"
} ,
"engines" : {
"node" : ">= 8"
}
} ,
"node_modules/@nodelib/fs.stat" : {
"version" : "2.0.5" ,
"resolved" : "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" ,
"integrity" : "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 8"
}
} ,
"node_modules/@nodelib/fs.walk" : {
"version" : "1.2.8" ,
"resolved" : "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" ,
"integrity" : "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" ,
"license" : "MIT" ,
"dependencies" : {
"@nodelib/fs.scandir" : "2.1.5" ,
"fastq" : "^1.6.0"
} ,
"engines" : {
"node" : ">= 8"
}
} ,
"node_modules/@pkgjs/parseargs" : {
"version" : "0.11.0" ,
"resolved" : "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" ,
"integrity" : "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==" ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"engines" : {
"node" : ">=14"
}
} ,
"node_modules/@promptbook/utils" : {
"version" : "0.69.5" ,
"resolved" : "https://registry.npmjs.org/@promptbook/utils/-/utils-0.69.5.tgz" ,
"integrity" : "sha512-xm5Ti/Hp3o4xHrsK9Yy3MS6KbDxYbq485hDsFvxqaNA7equHLPdo8H8faTitTeb14QCDfLW4iwCxdVYu5sn6YQ==" ,
"dev" : true ,
"funding" : [
{
"type" : "individual" ,
"url" : "https://buymeacoffee.com/hejny"
} ,
{
"type" : "github" ,
"url" : "https://github.com/webgptorg/promptbook/blob/main/README.md#%EF%B8%8F-contributing"
}
] ,
"license" : "CC-BY-4.0" ,
"dependencies" : {
"spacetrim" : "0.11.59"
}
} ,
"node_modules/@puppeteer/browsers" : {
"version" : "2.13.0" ,
"resolved" : "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz" ,
"integrity" : "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"debug" : "^4.4.3" ,
"extract-zip" : "^2.0.1" ,
"progress" : "^2.0.3" ,
"proxy-agent" : "^6.5.0" ,
"semver" : "^7.7.4" ,
"tar-fs" : "^3.1.1" ,
"yargs" : "^17.7.2"
} ,
"bin" : {
"browsers" : "lib/cjs/main-cli.js"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@puppeteer/browsers/node_modules/semver" : {
"version" : "7.7.4" ,
"resolved" : "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz" ,
"integrity" : "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" ,
"dev" : true ,
"license" : "ISC" ,
"bin" : {
"semver" : "bin/semver.js"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/@remix-run/router" : {
"version" : "1.23.2" ,
"resolved" : "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz" ,
"integrity" : "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=14.0.0"
}
} ,
"node_modules/@rolldown/pluginutils" : {
"version" : "1.0.0-beta.27" ,
"resolved" : "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz" ,
"integrity" : "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/@rollup/rollup-android-arm-eabi" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz" ,
"integrity" : "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
]
} ,
"node_modules/@rollup/rollup-android-arm64" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz" ,
"integrity" : "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
]
} ,
"node_modules/@rollup/rollup-darwin-arm64" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz" ,
"integrity" : "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
]
} ,
"node_modules/@rollup/rollup-darwin-x64" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz" ,
"integrity" : "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
]
} ,
"node_modules/@rollup/rollup-freebsd-arm64" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz" ,
"integrity" : "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
]
} ,
"node_modules/@rollup/rollup-freebsd-x64" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz" ,
"integrity" : "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
]
} ,
"node_modules/@rollup/rollup-linux-arm-gnueabihf" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz" ,
"integrity" : "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-arm-musleabihf" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz" ,
"integrity" : "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-arm64-gnu" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz" ,
"integrity" : "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-arm64-musl" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz" ,
"integrity" : "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-loong64-gnu" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz" ,
"integrity" : "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==" ,
"cpu" : [
"loong64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-loong64-musl" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz" ,
"integrity" : "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==" ,
"cpu" : [
"loong64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-ppc64-gnu" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz" ,
"integrity" : "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-ppc64-musl" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz" ,
"integrity" : "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-riscv64-gnu" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz" ,
"integrity" : "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==" ,
"cpu" : [
"riscv64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-riscv64-musl" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz" ,
"integrity" : "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==" ,
"cpu" : [
"riscv64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-s390x-gnu" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz" ,
"integrity" : "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==" ,
"cpu" : [
"s390x"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-x64-gnu" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz" ,
"integrity" : "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-linux-x64-musl" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz" ,
"integrity" : "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
]
} ,
"node_modules/@rollup/rollup-openbsd-x64" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz" ,
"integrity" : "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openbsd"
]
} ,
"node_modules/@rollup/rollup-openharmony-arm64" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz" ,
"integrity" : "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openharmony"
]
} ,
"node_modules/@rollup/rollup-win32-arm64-msvc" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz" ,
"integrity" : "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
]
} ,
"node_modules/@rollup/rollup-win32-ia32-msvc" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz" ,
"integrity" : "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
]
} ,
"node_modules/@rollup/rollup-win32-x64-gnu" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz" ,
"integrity" : "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
]
} ,
"node_modules/@rollup/rollup-win32-x64-msvc" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz" ,
"integrity" : "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
]
} ,
"node_modules/@sec-ant/readable-stream" : {
"version" : "0.4.1" ,
"resolved" : "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz" ,
"integrity" : "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==" ,
"dev" : true ,
"license" : "MIT"
} ,
2026-04-03 13:05:58 +00:00
"node_modules/@sinclair/typebox" : {
"version" : "0.34.49" ,
"resolved" : "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz" ,
"integrity" : "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
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
"node_modules/@sindresorhus/merge-streams" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz" ,
"integrity" : "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/@tauri-apps/api" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/api/-/api-2.10.1.tgz" ,
"integrity" : "sha512-hKL/jWf293UDSUN09rR69hrToyIXBb8CjGaWC7gfinvnQrBVvnLr08FeFi38gxtugAVyVcTa5/FD/Xnkb1siBw==" ,
"license" : "Apache-2.0 OR MIT" ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/tauri"
}
} ,
"node_modules/@tauri-apps/cli" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.10.1.tgz" ,
"integrity" : "sha512-jQNGF/5quwORdZSSLtTluyKQ+o6SMa/AUICfhf4egCGFdMHqWssApVgYSbg+jmrZoc8e1DscNvjTnXtlHLS11g==" ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"bin" : {
"tauri" : "tauri.js"
} ,
"engines" : {
"node" : ">= 10"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/tauri"
} ,
"optionalDependencies" : {
"@tauri-apps/cli-darwin-arm64" : "2.10.1" ,
"@tauri-apps/cli-darwin-x64" : "2.10.1" ,
"@tauri-apps/cli-linux-arm-gnueabihf" : "2.10.1" ,
"@tauri-apps/cli-linux-arm64-gnu" : "2.10.1" ,
"@tauri-apps/cli-linux-arm64-musl" : "2.10.1" ,
"@tauri-apps/cli-linux-riscv64-gnu" : "2.10.1" ,
"@tauri-apps/cli-linux-x64-gnu" : "2.10.1" ,
"@tauri-apps/cli-linux-x64-musl" : "2.10.1" ,
"@tauri-apps/cli-win32-arm64-msvc" : "2.10.1" ,
"@tauri-apps/cli-win32-ia32-msvc" : "2.10.1" ,
"@tauri-apps/cli-win32-x64-msvc" : "2.10.1"
}
} ,
"node_modules/@tauri-apps/cli-darwin-arm64" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.10.1.tgz" ,
"integrity" : "sha512-Z2OjCXiZ+fbYZy7PmP3WRnOpM9+Fy+oonKDEmUE6MwN4IGaYqgceTjwHucc/kEEYZos5GICve35f7ZiizgqEnQ==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-darwin-x64" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.10.1.tgz" ,
"integrity" : "sha512-V/irQVvjPMGOTQqNj55PnQPVuH4VJP8vZCN7ajnj+ZS8Kom1tEM2hR3qbbIRoS3dBKs5mbG8yg1WC+97dq17Pw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-linux-arm-gnueabihf" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.10.1.tgz" ,
"integrity" : "sha512-Hyzwsb4VnCWKGfTw+wSt15Z2pLw2f0JdFBfq2vHBOBhvg7oi6uhKiF87hmbXOBXUZaGkyRDkCHsdzJcIfoJC2w==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-linux-arm64-gnu" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.10.1.tgz" ,
"integrity" : "sha512-OyOYs2t5GkBIvyWjA1+h4CZxTcdz1OZPCWAPz5DYEfB0cnWHERTnQ/SLayQzncrT0kwRoSfSz9KxenkyJoTelA==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-linux-arm64-musl" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.10.1.tgz" ,
"integrity" : "sha512-MIj78PDDGjkg3NqGptDOGgfXks7SYJwhiMh8SBoZS+vfdz7yP5jN18bNaLnDhsVIPARcAhE1TlsZe/8Yxo2zqg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-linux-riscv64-gnu" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.10.1.tgz" ,
"integrity" : "sha512-X0lvOVUg8PCVaoEtEAnpxmnkwlE1gcMDTqfhbefICKDnOTJ5Est3qL0SrWxizDackIOKBcvtpejrSiVpuJI1kw==" ,
"cpu" : [
"riscv64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-linux-x64-gnu" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.10.1.tgz" ,
"integrity" : "sha512-2/12bEzsJS9fAKybxgicCDFxYD1WEI9kO+tlDwX5znWG2GwMBaiWcmhGlZ8fi+DMe9CXlcVarMTYc0L3REIRxw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-linux-x64-musl" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.10.1.tgz" ,
"integrity" : "sha512-Y8J0ZzswPz50UcGOFuXGEMrxbjwKSPgXftx5qnkuMs2rmwQB5ssvLb6tn54wDSYxe7S6vlLob9vt0VKuNOaCIQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-win32-arm64-msvc" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.10.1.tgz" ,
"integrity" : "sha512-iSt5B86jHYAPJa/IlYw++SXtFPGnWtFJriHn7X0NFBVunF6zu9+/zOn8OgqIWSl8RgzhLGXQEEtGBdR4wzpVgg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-win32-ia32-msvc" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.10.1.tgz" ,
"integrity" : "sha512-gXyxgEzsFegmnWywYU5pEBURkcFN/Oo45EAwvZrHMh+zUSEAvO5E8TXsgPADYm31d1u7OQU3O3HsYfVBf2moHw==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/cli-win32-x64-msvc" : {
"version" : "2.10.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.10.1.tgz" ,
"integrity" : "sha512-6Cn7YpPFwzChy0ERz6djKEmUehWrYlM+xTaNzGPgZocw3BD7OfwfWHKVWxXzdjEW2KfKkHddfdxK1XXTYqBRLg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "Apache-2.0 OR MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">= 10"
}
} ,
"node_modules/@tauri-apps/plugin-dialog" : {
"version" : "2.6.0" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.6.0.tgz" ,
"integrity" : "sha512-q4Uq3eY87TdcYzXACiYSPhmpBA76shgmQswGkSVio4C82Sz2W4iehe9TnKYwbq7weHiL88Yw19XZm7v28+Micg==" ,
"license" : "MIT OR Apache-2.0" ,
"dependencies" : {
"@tauri-apps/api" : "^2.8.0"
}
} ,
"node_modules/@tauri-apps/plugin-fs" : {
"version" : "2.4.5" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/plugin-fs/-/plugin-fs-2.4.5.tgz" ,
"integrity" : "sha512-dVxWWGE6VrOxC7/jlhyE+ON/Cc2REJlM35R3PJX3UvFw2XwYhLGQVAIyrehenDdKjotipjYEVc4YjOl3qq90fA==" ,
"license" : "MIT OR Apache-2.0" ,
"dependencies" : {
"@tauri-apps/api" : "^2.8.0"
}
} ,
"node_modules/@tauri-apps/plugin-stronghold" : {
"version" : "2.3.1" ,
"resolved" : "https://registry.npmjs.org/@tauri-apps/plugin-stronghold/-/plugin-stronghold-2.3.1.tgz" ,
"integrity" : "sha512-zFbD1Apk/VFdWaoGaoKcouRrZnzLFiNY9b1KDeBaN47sMaMHRYIa+ZDhvbzMOyH314+OHCQBXfe8I/ph59Lp9g==" ,
"license" : "MIT OR Apache-2.0" ,
"dependencies" : {
"@tauri-apps/api" : "^2.8.0"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/@testing-library/dom" : {
"version" : "10.4.1" ,
"resolved" : "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz" ,
"integrity" : "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@babel/code-frame" : "^7.10.4" ,
"@babel/runtime" : "^7.12.5" ,
"@types/aria-query" : "^5.0.1" ,
"aria-query" : "5.3.0" ,
"dom-accessibility-api" : "^0.5.9" ,
"lz-string" : "^1.5.0" ,
"picocolors" : "1.1.1" ,
"pretty-format" : "^27.0.2"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/@testing-library/dom/node_modules/aria-query" : {
"version" : "5.3.0" ,
"resolved" : "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz" ,
"integrity" : "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"peer" : true ,
"dependencies" : {
"dequal" : "^2.0.3"
}
} ,
"node_modules/@testing-library/jest-dom" : {
"version" : "6.9.1" ,
"resolved" : "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz" ,
"integrity" : "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@adobe/css-tools" : "^4.4.0" ,
"aria-query" : "^5.0.0" ,
"css.escape" : "^1.5.1" ,
"dom-accessibility-api" : "^0.6.3" ,
"picocolors" : "^1.1.1" ,
"redent" : "^3.0.0"
} ,
"engines" : {
"node" : ">=14" ,
"npm" : ">=6" ,
"yarn" : ">=1"
}
} ,
"node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api" : {
"version" : "0.6.3" ,
"resolved" : "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz" ,
"integrity" : "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==" ,
"dev" : true ,
"license" : "MIT"
} ,
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
"node_modules/@testing-library/react" : {
"version" : "16.3.2" ,
"resolved" : "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz" ,
"integrity" : "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/runtime" : "^7.12.5"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@testing-library/dom" : "^10.0.0" ,
"@types/react" : "^18.0.0 || ^19.0.0" ,
"@types/react-dom" : "^18.0.0 || ^19.0.0" ,
"react" : "^18.0.0 || ^19.0.0" ,
"react-dom" : "^18.0.0 || ^19.0.0"
} ,
"peerDependenciesMeta" : {
"@types/react" : {
"optional" : true
} ,
"@types/react-dom" : {
"optional" : true
}
}
} ,
"node_modules/@testing-library/user-event" : {
"version" : "14.6.1" ,
"resolved" : "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz" ,
"integrity" : "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12" ,
"npm" : ">=6"
} ,
"peerDependencies" : {
"@testing-library/dom" : ">=7.21.4"
}
} ,
"node_modules/@tootallnate/quickjs-emscripten" : {
"version" : "0.23.0" ,
"resolved" : "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz" ,
"integrity" : "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" ,
"dev" : true ,
"license" : "MIT"
} ,
2026-04-03 13:05:58 +00:00
"node_modules/@types/aria-query" : {
"version" : "5.0.4" ,
"resolved" : "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz" ,
"integrity" : "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
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
"node_modules/@types/babel__core" : {
"version" : "7.20.5" ,
"resolved" : "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" ,
"integrity" : "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/parser" : "^7.20.7" ,
"@babel/types" : "^7.20.7" ,
"@types/babel__generator" : "*" ,
"@types/babel__template" : "*" ,
"@types/babel__traverse" : "*"
}
} ,
"node_modules/@types/babel__generator" : {
"version" : "7.27.0" ,
"resolved" : "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz" ,
"integrity" : "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/types" : "^7.0.0"
}
} ,
"node_modules/@types/babel__template" : {
"version" : "7.4.4" ,
"resolved" : "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" ,
"integrity" : "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/parser" : "^7.1.0" ,
"@babel/types" : "^7.0.0"
}
} ,
"node_modules/@types/babel__traverse" : {
"version" : "7.28.0" ,
"resolved" : "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz" ,
"integrity" : "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/types" : "^7.28.2"
}
} ,
"node_modules/@types/debug" : {
"version" : "4.1.12" ,
"resolved" : "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" ,
"integrity" : "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/ms" : "*"
}
} ,
"node_modules/@types/estree" : {
"version" : "1.0.8" ,
"resolved" : "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" ,
"integrity" : "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" ,
"license" : "MIT"
} ,
"node_modules/@types/estree-jsx" : {
"version" : "1.0.5" ,
"resolved" : "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz" ,
"integrity" : "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/estree" : "*"
}
} ,
"node_modules/@types/hast" : {
"version" : "3.0.4" ,
"resolved" : "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" ,
"integrity" : "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "*"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/@types/istanbul-lib-coverage" : {
"version" : "2.0.6" ,
"resolved" : "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" ,
"integrity" : "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
"node_modules/@types/istanbul-lib-report" : {
"version" : "3.0.3" ,
"resolved" : "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" ,
"integrity" : "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@types/istanbul-lib-coverage" : "*"
}
} ,
"node_modules/@types/istanbul-reports" : {
"version" : "3.0.4" ,
"resolved" : "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" ,
"integrity" : "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@types/istanbul-lib-report" : "*"
}
} ,
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
"node_modules/@types/mdast" : {
"version" : "4.0.4" ,
"resolved" : "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz" ,
"integrity" : "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "*"
}
} ,
"node_modules/@types/mocha" : {
"version" : "10.0.10" ,
"resolved" : "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz" ,
"integrity" : "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/@types/ms" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz" ,
"integrity" : "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" ,
"license" : "MIT"
} ,
"node_modules/@types/node" : {
"version" : "20.19.37" ,
"resolved" : "https://registry.npmjs.org/@types/node/-/node-20.19.37.tgz" ,
"integrity" : "sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"undici-types" : "~6.21.0"
}
} ,
"node_modules/@types/normalize-package-data" : {
"version" : "2.4.4" ,
"resolved" : "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz" ,
"integrity" : "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/@types/parse-json" : {
"version" : "4.0.2" ,
"resolved" : "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz" ,
"integrity" : "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" ,
"license" : "MIT"
} ,
"node_modules/@types/prop-types" : {
"version" : "15.7.15" ,
"resolved" : "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz" ,
"integrity" : "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==" ,
"license" : "MIT"
} ,
"node_modules/@types/react" : {
"version" : "18.3.28" ,
"resolved" : "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz" ,
"integrity" : "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/prop-types" : "*" ,
"csstype" : "^3.2.2"
}
} ,
"node_modules/@types/react-dom" : {
"version" : "18.3.7" ,
"resolved" : "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz" ,
"integrity" : "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peerDependencies" : {
"@types/react" : "^18.0.0"
}
} ,
"node_modules/@types/sinonjs__fake-timers" : {
"version" : "8.1.5" ,
"resolved" : "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz" ,
"integrity" : "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
2026-04-03 13:05:58 +00:00
"node_modules/@types/stack-utils" : {
"version" : "2.0.3" ,
"resolved" : "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" ,
"integrity" : "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
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
"node_modules/@types/unist" : {
"version" : "3.0.3" ,
"resolved" : "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz" ,
"integrity" : "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" ,
"license" : "MIT"
} ,
"node_modules/@types/which" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/@types/which/-/which-2.0.2.tgz" ,
"integrity" : "sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/@types/ws" : {
"version" : "8.18.1" ,
"resolved" : "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz" ,
"integrity" : "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/node" : "*"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/@types/yargs" : {
"version" : "17.0.35" ,
"resolved" : "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz" ,
"integrity" : "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@types/yargs-parser" : "*"
}
} ,
"node_modules/@types/yargs-parser" : {
"version" : "21.0.3" ,
"resolved" : "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" ,
"integrity" : "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
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
"node_modules/@types/yauzl" : {
"version" : "2.10.3" ,
"resolved" : "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz" ,
"integrity" : "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==" ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"dependencies" : {
"@types/node" : "*"
}
} ,
"node_modules/@ungap/structured-clone" : {
"version" : "1.3.0" ,
"resolved" : "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" ,
"integrity" : "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" ,
"license" : "ISC"
} ,
"node_modules/@vitejs/plugin-react" : {
"version" : "4.7.0" ,
"resolved" : "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz" ,
"integrity" : "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/core" : "^7.28.0" ,
"@babel/plugin-transform-react-jsx-self" : "^7.27.1" ,
"@babel/plugin-transform-react-jsx-source" : "^7.27.1" ,
"@rolldown/pluginutils" : "1.0.0-beta.27" ,
"@types/babel__core" : "^7.20.5" ,
"react-refresh" : "^0.17.0"
} ,
"engines" : {
"node" : "^14.18.0 || >=16.0.0"
} ,
"peerDependencies" : {
"vite" : "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
}
} ,
"node_modules/@vitest/coverage-v8" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.9.tgz" ,
"integrity" : "sha512-Z2cOr0ksM00MpEfyVE8KXIYPEcBFxdbLSs56L8PO0QQMxt/6bDj45uQfxoc96v05KW3clk7vvgP0qfDit9DmfQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@ampproject/remapping" : "^2.3.0" ,
"@bcoe/v8-coverage" : "^0.2.3" ,
"debug" : "^4.3.7" ,
"istanbul-lib-coverage" : "^3.2.2" ,
"istanbul-lib-report" : "^3.0.1" ,
"istanbul-lib-source-maps" : "^5.0.6" ,
"istanbul-reports" : "^3.1.7" ,
"magic-string" : "^0.30.12" ,
"magicast" : "^0.3.5" ,
"std-env" : "^3.8.0" ,
"test-exclude" : "^7.0.1" ,
"tinyrainbow" : "^1.2.0"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
} ,
"peerDependencies" : {
"@vitest/browser" : "2.1.9" ,
"vitest" : "2.1.9"
} ,
"peerDependenciesMeta" : {
"@vitest/browser" : {
"optional" : true
}
}
} ,
"node_modules/@vitest/expect" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz" ,
"integrity" : "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@vitest/spy" : "2.1.9" ,
"@vitest/utils" : "2.1.9" ,
"chai" : "^5.1.2" ,
"tinyrainbow" : "^1.2.0"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/@vitest/mocker" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz" ,
"integrity" : "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@vitest/spy" : "2.1.9" ,
"estree-walker" : "^3.0.3" ,
"magic-string" : "^0.30.12"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
} ,
"peerDependencies" : {
"msw" : "^2.4.9" ,
"vite" : "^5.0.0"
} ,
"peerDependenciesMeta" : {
"msw" : {
"optional" : true
} ,
"vite" : {
"optional" : true
}
}
} ,
"node_modules/@vitest/pretty-format" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz" ,
"integrity" : "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"tinyrainbow" : "^1.2.0"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/@vitest/runner" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz" ,
"integrity" : "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@vitest/utils" : "2.1.9" ,
"pathe" : "^1.1.2"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/@vitest/snapshot" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz" ,
"integrity" : "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@vitest/pretty-format" : "2.1.9" ,
"magic-string" : "^0.30.12" ,
"pathe" : "^1.1.2"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/@vitest/spy" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz" ,
"integrity" : "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"tinyspy" : "^3.0.2"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/@vitest/utils" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz" ,
"integrity" : "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@vitest/pretty-format" : "2.1.9" ,
"loupe" : "^3.1.2" ,
"tinyrainbow" : "^1.2.0"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/@wdio/cli" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/@wdio/cli/-/cli-9.25.0.tgz" ,
"integrity" : "sha512-7m6Au8U0Fz+/n6vlchxHd5ogYESjz2XEYVnmcqnDapCAUo570Ilb86Muz69AFrBiZ6D+xkesQTwlWOdNRjIY1w==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@vitest/snapshot" : "^2.1.1" ,
"@wdio/config" : "9.25.0" ,
"@wdio/globals" : "9.23.0" ,
"@wdio/logger" : "9.18.0" ,
"@wdio/protocols" : "9.25.0" ,
"@wdio/types" : "9.25.0" ,
"@wdio/utils" : "9.25.0" ,
"async-exit-hook" : "^2.0.1" ,
"chalk" : "^5.4.1" ,
"chokidar" : "^4.0.0" ,
"create-wdio" : "9.25.0" ,
"dotenv" : "^17.2.0" ,
"import-meta-resolve" : "^4.0.0" ,
"lodash.flattendeep" : "^4.4.0" ,
"lodash.pickby" : "^4.6.0" ,
"lodash.union" : "^4.6.0" ,
"read-pkg-up" : "^10.0.0" ,
"tsx" : "^4.7.2" ,
"webdriverio" : "9.25.0" ,
"yargs" : "^17.7.2"
} ,
"bin" : {
"wdio" : "bin/wdio.js"
} ,
"engines" : {
"node" : ">=18.20.0"
}
} ,
"node_modules/@wdio/config" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/@wdio/config/-/config-9.25.0.tgz" ,
"integrity" : "sha512-EWa7l1rrbSNthCRDpdBw7ESAa1/jAjSsWCGkaVAO0HMOGlQjzvYI6gNi4KUeymnurDZ2IPr0jr+f9We6AWi6QA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@wdio/logger" : "9.18.0" ,
"@wdio/types" : "9.25.0" ,
"@wdio/utils" : "9.25.0" ,
"deepmerge-ts" : "^7.0.3" ,
"glob" : "^10.2.2" ,
"import-meta-resolve" : "^4.0.0" ,
"jiti" : "^2.6.1"
} ,
"engines" : {
"node" : ">=18.20.0"
}
} ,
"node_modules/@wdio/globals" : {
"version" : "9.23.0" ,
"resolved" : "https://registry.npmjs.org/@wdio/globals/-/globals-9.23.0.tgz" ,
"integrity" : "sha512-OmwPKV8c5ecLqo+EkytN7oUeYfNmRI4uOXGIR1ybP7AK5Zz+l9R0dGfoadEuwi1aZXAL0vwuhtq3p0OL3dfqHQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18.20.0"
} ,
"peerDependencies" : {
"expect-webdriverio" : "^5.3.4" ,
"webdriverio" : "^9.0.0"
} ,
"peerDependenciesMeta" : {
"expect-webdriverio" : {
"optional" : false
} ,
"webdriverio" : {
"optional" : false
}
}
} ,
"node_modules/@wdio/logger" : {
"version" : "9.18.0" ,
"resolved" : "https://registry.npmjs.org/@wdio/logger/-/logger-9.18.0.tgz" ,
"integrity" : "sha512-HdzDrRs+ywAqbXGKqe1i/bLtCv47plz4TvsHFH3j729OooT5VH38ctFn5aLXgECmiAKDkmH/A6kOq2Zh5DIxww==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"chalk" : "^5.1.2" ,
"loglevel" : "^1.6.0" ,
"loglevel-plugin-prefix" : "^0.8.4" ,
"safe-regex2" : "^5.0.0" ,
"strip-ansi" : "^7.1.0"
} ,
"engines" : {
"node" : ">=18.20.0"
}
} ,
"node_modules/@wdio/mocha-framework" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-9.25.0.tgz" ,
"integrity" : "sha512-30qPP7w0UGG49LB3nAMxVf9Q9GA8q/NeDPHjBsXCjpSnO0AswtjFktb91hkqQqssrlGMQV+QyQuBD+kMxkhrDQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/mocha" : "^10.0.6" ,
"@types/node" : "^20.11.28" ,
"@wdio/logger" : "9.18.0" ,
"@wdio/types" : "9.25.0" ,
"@wdio/utils" : "9.25.0" ,
"mocha" : "^10.3.0"
} ,
"engines" : {
"node" : ">=18.20.0"
}
} ,
"node_modules/@wdio/protocols" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/@wdio/protocols/-/protocols-9.25.0.tgz" ,
"integrity" : "sha512-PErbZqdpFmE69bRuku3OR34Ro2xuZNNLXYFOcJnjXJVzf5+ApDyGHYrMlvhtrrSy9/55LUybk851ppjS+3RoDA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/@wdio/repl" : {
"version" : "9.16.2" ,
"resolved" : "https://registry.npmjs.org/@wdio/repl/-/repl-9.16.2.tgz" ,
"integrity" : "sha512-FLTF0VL6+o5BSTCO7yLSXocm3kUnu31zYwzdsz4n9s5YWt83sCtzGZlZpt7TaTzb3jVUfxuHNQDTb8UMkCu0lQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/node" : "^20.1.0"
} ,
"engines" : {
"node" : ">=18.20.0"
}
} ,
"node_modules/@wdio/types" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/@wdio/types/-/types-9.25.0.tgz" ,
"integrity" : "sha512-ovSEcUBLz6gVDIsBZYKQXz8EGU37jS8sqbmlOe5+jB4XbsTBCyTLjQK/rO7LWQAKJcs0vBq+Pd+VrlsFtA7tTQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/node" : "^20.1.0"
} ,
"engines" : {
"node" : ">=18.20.0"
}
} ,
"node_modules/@wdio/utils" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/@wdio/utils/-/utils-9.25.0.tgz" ,
"integrity" : "sha512-w/ej8gZkc2tZr8L91ATyA1AWrbPDYDOvblQ7r+zt1uPRobuA4H98GME7Zm7i3FIP695BvV4G35Gcs5NssZW1pw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@puppeteer/browsers" : "^2.2.0" ,
"@wdio/logger" : "9.18.0" ,
"@wdio/types" : "9.25.0" ,
"decamelize" : "^6.0.0" ,
"deepmerge-ts" : "^7.0.3" ,
"edgedriver" : "^6.1.2" ,
"geckodriver" : "^6.1.0" ,
"get-port" : "^7.0.0" ,
"import-meta-resolve" : "^4.0.0" ,
"locate-app" : "^2.2.24" ,
"mitt" : "^3.0.1" ,
"safaridriver" : "^1.0.0" ,
"split2" : "^4.2.0" ,
"wait-port" : "^1.1.0"
} ,
"engines" : {
"node" : ">=18.20.0"
}
} ,
"node_modules/@zip.js/zip.js" : {
"version" : "2.8.23" ,
"resolved" : "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.23.tgz" ,
"integrity" : "sha512-RB+RLnxPJFPrGvQ9rgO+4JOcsob6lD32OcF0QE0yg24oeW9q8KnTTNlugcDaIveEcCbclobJcZP+fLQ++sH0bw==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"engines" : {
"bun" : ">=0.7.0" ,
"deno" : ">=1.0.0" ,
"node" : ">=18.0.0"
}
} ,
"node_modules/abort-controller" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" ,
"integrity" : "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"event-target-shim" : "^5.0.0"
} ,
"engines" : {
"node" : ">=6.5"
}
} ,
"node_modules/agent-base" : {
"version" : "7.1.4" ,
"resolved" : "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz" ,
"integrity" : "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/ansi-colors" : {
"version" : "4.1.3" ,
"resolved" : "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" ,
"integrity" : "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/ansi-regex" : {
"version" : "6.2.2" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz" ,
"integrity" : "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/chalk/ansi-regex?sponsor=1"
}
} ,
"node_modules/ansi-styles" : {
"version" : "4.3.0" ,
"resolved" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" ,
"integrity" : "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"color-convert" : "^2.0.1"
} ,
"engines" : {
"node" : ">=8"
} ,
"funding" : {
"url" : "https://github.com/chalk/ansi-styles?sponsor=1"
}
} ,
"node_modules/any-promise" : {
"version" : "1.3.0" ,
"resolved" : "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" ,
"integrity" : "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" ,
"license" : "MIT"
} ,
"node_modules/anymatch" : {
"version" : "3.1.3" ,
"resolved" : "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" ,
"integrity" : "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==" ,
"license" : "ISC" ,
"dependencies" : {
"normalize-path" : "^3.0.0" ,
"picomatch" : "^2.0.4"
} ,
"engines" : {
"node" : ">= 8"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/anymatch/node_modules/picomatch" : {
"version" : "2.3.2" ,
"resolved" : "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz" ,
"integrity" : "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8.6"
} ,
"funding" : {
"url" : "https://github.com/sponsors/jonschlinkert"
}
} ,
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
"node_modules/archiver" : {
"version" : "7.0.1" ,
"resolved" : "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz" ,
"integrity" : "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"archiver-utils" : "^5.0.2" ,
"async" : "^3.2.4" ,
"buffer-crc32" : "^1.0.0" ,
"readable-stream" : "^4.0.0" ,
"readdir-glob" : "^1.1.2" ,
"tar-stream" : "^3.0.0" ,
"zip-stream" : "^6.0.1"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/archiver-utils" : {
"version" : "5.0.2" ,
"resolved" : "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz" ,
"integrity" : "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"glob" : "^10.0.0" ,
"graceful-fs" : "^4.2.0" ,
"is-stream" : "^2.0.1" ,
"lazystream" : "^1.0.0" ,
"lodash" : "^4.17.15" ,
"normalize-path" : "^3.0.0" ,
"readable-stream" : "^4.0.0"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/archiver-utils/node_modules/is-stream" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" ,
"integrity" : "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/arg" : {
"version" : "5.0.2" ,
"resolved" : "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" ,
"integrity" : "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" ,
"license" : "MIT"
} ,
"node_modules/argparse" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" ,
"integrity" : "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" ,
"dev" : true ,
"license" : "Python-2.0"
} ,
"node_modules/aria-query" : {
"version" : "5.3.2" ,
"resolved" : "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz" ,
"integrity" : "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"engines" : {
"node" : ">= 0.4"
}
} ,
"node_modules/assertion-error" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz" ,
"integrity" : "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/ast-types" : {
"version" : "0.13.4" ,
"resolved" : "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" ,
"integrity" : "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"tslib" : "^2.0.1"
} ,
"engines" : {
"node" : ">=4"
}
} ,
"node_modules/async" : {
"version" : "3.2.6" ,
"resolved" : "https://registry.npmjs.org/async/-/async-3.2.6.tgz" ,
"integrity" : "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/async-exit-hook" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz" ,
"integrity" : "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.12.0"
}
} ,
"node_modules/autoprefixer" : {
"version" : "10.4.27" ,
"resolved" : "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz" ,
"integrity" : "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==" ,
"dev" : true ,
"funding" : [
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/postcss/"
} ,
{
"type" : "tidelift" ,
"url" : "https://tidelift.com/funding/github/npm/autoprefixer"
} ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"browserslist" : "^4.28.1" ,
"caniuse-lite" : "^1.0.30001774" ,
"fraction.js" : "^5.3.4" ,
"picocolors" : "^1.1.1" ,
"postcss-value-parser" : "^4.2.0"
} ,
"bin" : {
"autoprefixer" : "bin/autoprefixer"
} ,
"engines" : {
"node" : "^10 || ^12 || >=14"
} ,
"peerDependencies" : {
"postcss" : "^8.1.0"
}
} ,
"node_modules/b4a" : {
"version" : "1.8.0" ,
"resolved" : "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz" ,
"integrity" : "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"peerDependencies" : {
"react-native-b4a" : "*"
} ,
"peerDependenciesMeta" : {
"react-native-b4a" : {
"optional" : true
}
}
} ,
"node_modules/babel-plugin-macros" : {
"version" : "3.1.0" ,
"resolved" : "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz" ,
"integrity" : "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/runtime" : "^7.12.5" ,
"cosmiconfig" : "^7.0.0" ,
"resolve" : "^1.19.0"
} ,
"engines" : {
"node" : ">=10" ,
"npm" : ">=6"
}
} ,
"node_modules/bail" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" ,
"integrity" : "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/balanced-match" : {
"version" : "1.0.2" ,
"resolved" : "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" ,
"integrity" : "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/bare-events" : {
"version" : "2.8.2" ,
"resolved" : "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz" ,
"integrity" : "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"peerDependencies" : {
"bare-abort-controller" : "*"
} ,
"peerDependenciesMeta" : {
"bare-abort-controller" : {
"optional" : true
}
}
} ,
"node_modules/bare-fs" : {
"version" : "4.5.5" ,
"resolved" : "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.5.tgz" ,
"integrity" : "sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"bare-events" : "^2.5.4" ,
"bare-path" : "^3.0.0" ,
"bare-stream" : "^2.6.4" ,
"bare-url" : "^2.2.2" ,
"fast-fifo" : "^1.3.2"
} ,
"engines" : {
"bare" : ">=1.16.0"
} ,
"peerDependencies" : {
"bare-buffer" : "*"
} ,
"peerDependenciesMeta" : {
"bare-buffer" : {
"optional" : true
}
}
} ,
"node_modules/bare-os" : {
"version" : "3.8.0" ,
"resolved" : "https://registry.npmjs.org/bare-os/-/bare-os-3.8.0.tgz" ,
"integrity" : "sha512-Dc9/SlwfxkXIGYhvMQNUtKaXCaGkZYGcd1vuNUUADVqzu4/vQfvnMkYYOUnt2VwQ2AqKr/8qAVFRtwETljgeFg==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"engines" : {
"bare" : ">=1.14.0"
}
} ,
"node_modules/bare-path" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz" ,
"integrity" : "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"bare-os" : "^3.0.1"
}
} ,
"node_modules/bare-stream" : {
"version" : "2.8.1" ,
"resolved" : "https://registry.npmjs.org/bare-stream/-/bare-stream-2.8.1.tgz" ,
"integrity" : "sha512-bSeR8RfvbRwDpD7HWZvn8M3uYNDrk7m9DQjYOFkENZlXW8Ju/MPaqUPQq5LqJ3kyjEm07siTaAQ7wBKCU59oHg==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"streamx" : "^2.21.0" ,
"teex" : "^1.0.1"
} ,
"peerDependencies" : {
"bare-buffer" : "*" ,
"bare-events" : "*"
} ,
"peerDependenciesMeta" : {
"bare-buffer" : {
"optional" : true
} ,
"bare-events" : {
"optional" : true
}
}
} ,
"node_modules/bare-url" : {
"version" : "2.3.2" ,
"resolved" : "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz" ,
"integrity" : "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"bare-path" : "^3.0.0"
}
} ,
"node_modules/base64-js" : {
"version" : "1.5.1" ,
"resolved" : "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" ,
"integrity" : "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/feross"
} ,
{
"type" : "patreon" ,
"url" : "https://www.patreon.com/feross"
} ,
{
"type" : "consulting" ,
"url" : "https://feross.org/support"
}
] ,
"license" : "MIT"
} ,
"node_modules/baseline-browser-mapping" : {
"version" : "2.10.8" ,
"resolved" : "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.8.tgz" ,
"integrity" : "sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"bin" : {
"baseline-browser-mapping" : "dist/cli.cjs"
} ,
"engines" : {
"node" : ">=6.0.0"
}
} ,
"node_modules/basic-ftp" : {
"version" : "5.2.0" ,
"resolved" : "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz" ,
"integrity" : "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10.0.0"
}
} ,
"node_modules/binary-extensions" : {
"version" : "2.3.0" ,
"resolved" : "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" ,
"integrity" : "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/boolbase" : {
"version" : "1.0.0" ,
"resolved" : "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" ,
"integrity" : "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/brace-expansion" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz" ,
"integrity" : "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"balanced-match" : "^1.0.0"
}
} ,
"node_modules/braces" : {
"version" : "3.0.3" ,
"resolved" : "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" ,
"integrity" : "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==" ,
"license" : "MIT" ,
"dependencies" : {
"fill-range" : "^7.1.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/browser-stdout" : {
"version" : "1.3.1" ,
"resolved" : "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" ,
"integrity" : "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/browserslist" : {
"version" : "4.28.1" ,
"resolved" : "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz" ,
"integrity" : "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==" ,
"dev" : true ,
"funding" : [
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/browserslist"
} ,
{
"type" : "tidelift" ,
"url" : "https://tidelift.com/funding/github/npm/browserslist"
} ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"baseline-browser-mapping" : "^2.9.0" ,
"caniuse-lite" : "^1.0.30001759" ,
"electron-to-chromium" : "^1.5.263" ,
"node-releases" : "^2.0.27" ,
"update-browserslist-db" : "^1.2.0"
} ,
"bin" : {
"browserslist" : "cli.js"
} ,
"engines" : {
"node" : "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
} ,
"node_modules/buffer" : {
"version" : "6.0.3" ,
"resolved" : "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" ,
"integrity" : "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/feross"
} ,
{
"type" : "patreon" ,
"url" : "https://www.patreon.com/feross"
} ,
{
"type" : "consulting" ,
"url" : "https://feross.org/support"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"base64-js" : "^1.3.1" ,
"ieee754" : "^1.2.1"
}
} ,
"node_modules/buffer-crc32" : {
"version" : "1.0.0" ,
"resolved" : "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz" ,
"integrity" : "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8.0.0"
}
} ,
"node_modules/cac" : {
"version" : "6.7.14" ,
"resolved" : "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz" ,
"integrity" : "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/callsites" : {
"version" : "3.1.0" ,
"resolved" : "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" ,
"integrity" : "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/camelcase" : {
"version" : "6.3.0" ,
"resolved" : "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" ,
"integrity" : "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/camelcase-css" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" ,
"integrity" : "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 6"
}
} ,
"node_modules/caniuse-lite" : {
"version" : "1.0.30001779" ,
"resolved" : "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001779.tgz" ,
"integrity" : "sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==" ,
"dev" : true ,
"funding" : [
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/browserslist"
} ,
{
"type" : "tidelift" ,
"url" : "https://tidelift.com/funding/github/npm/caniuse-lite"
} ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "CC-BY-4.0"
} ,
"node_modules/ccount" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" ,
"integrity" : "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/chai" : {
"version" : "5.3.3" ,
"resolved" : "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz" ,
"integrity" : "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"assertion-error" : "^2.0.1" ,
"check-error" : "^2.1.1" ,
"deep-eql" : "^5.0.1" ,
"loupe" : "^3.1.0" ,
"pathval" : "^2.0.0"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/chalk" : {
"version" : "5.6.2" ,
"resolved" : "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz" ,
"integrity" : "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "^12.17.0 || ^14.13 || >=16.0.0"
} ,
"funding" : {
"url" : "https://github.com/chalk/chalk?sponsor=1"
}
} ,
"node_modules/character-entities" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" ,
"integrity" : "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/character-entities-html4" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" ,
"integrity" : "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/character-entities-legacy" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" ,
"integrity" : "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/character-reference-invalid" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" ,
"integrity" : "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/chardet" : {
"version" : "2.1.1" ,
"resolved" : "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz" ,
"integrity" : "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/check-error" : {
"version" : "2.1.3" ,
"resolved" : "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz" ,
"integrity" : "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 16"
}
} ,
"node_modules/cheerio" : {
"version" : "1.2.0" ,
"resolved" : "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz" ,
"integrity" : "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"cheerio-select" : "^2.1.0" ,
"dom-serializer" : "^2.0.0" ,
"domhandler" : "^5.0.3" ,
"domutils" : "^3.2.2" ,
"encoding-sniffer" : "^0.2.1" ,
"htmlparser2" : "^10.1.0" ,
"parse5" : "^7.3.0" ,
"parse5-htmlparser2-tree-adapter" : "^7.1.0" ,
"parse5-parser-stream" : "^7.1.2" ,
"undici" : "^7.19.0" ,
"whatwg-mimetype" : "^4.0.0"
} ,
"engines" : {
"node" : ">=20.18.1"
} ,
"funding" : {
"url" : "https://github.com/cheeriojs/cheerio?sponsor=1"
}
} ,
"node_modules/cheerio-select" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" ,
"integrity" : "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"boolbase" : "^1.0.0" ,
"css-select" : "^5.1.0" ,
"css-what" : "^6.1.0" ,
"domelementtype" : "^2.3.0" ,
"domhandler" : "^5.0.3" ,
"domutils" : "^3.0.1"
} ,
"funding" : {
"url" : "https://github.com/sponsors/fb55"
}
} ,
"node_modules/chokidar" : {
"version" : "4.0.3" ,
"resolved" : "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz" ,
"integrity" : "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"readdirp" : "^4.0.1"
} ,
"engines" : {
"node" : ">= 14.16.0"
} ,
"funding" : {
"url" : "https://paulmillr.com/funding/"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/ci-info" : {
"version" : "4.4.0" ,
"resolved" : "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz" ,
"integrity" : "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/sibiraj-s"
}
] ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : ">=8"
}
} ,
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
"node_modules/class-variance-authority" : {
"version" : "0.7.1" ,
"resolved" : "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz" ,
"integrity" : "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==" ,
"license" : "Apache-2.0" ,
"dependencies" : {
"clsx" : "^2.1.1"
} ,
"funding" : {
"url" : "https://polar.sh/cva"
}
} ,
"node_modules/classnames" : {
"version" : "2.5.1" ,
"resolved" : "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" ,
"integrity" : "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" ,
"license" : "MIT"
} ,
"node_modules/cli-width" : {
"version" : "4.1.0" ,
"resolved" : "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz" ,
"integrity" : "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : ">= 12"
}
} ,
"node_modules/cliui" : {
"version" : "8.0.1" ,
"resolved" : "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" ,
"integrity" : "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"string-width" : "^4.2.0" ,
"strip-ansi" : "^6.0.1" ,
"wrap-ansi" : "^7.0.0"
} ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/cliui/node_modules/ansi-regex" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" ,
"integrity" : "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/cliui/node_modules/emoji-regex" : {
"version" : "8.0.0" ,
"resolved" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" ,
"integrity" : "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/cliui/node_modules/string-width" : {
"version" : "4.2.3" ,
"resolved" : "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" ,
"integrity" : "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"emoji-regex" : "^8.0.0" ,
"is-fullwidth-code-point" : "^3.0.0" ,
"strip-ansi" : "^6.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/cliui/node_modules/strip-ansi" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" ,
"integrity" : "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-regex" : "^5.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/cliui/node_modules/wrap-ansi" : {
"version" : "7.0.0" ,
"resolved" : "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" ,
"integrity" : "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-styles" : "^4.0.0" ,
"string-width" : "^4.1.0" ,
"strip-ansi" : "^6.0.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/wrap-ansi?sponsor=1"
}
} ,
"node_modules/clsx" : {
"version" : "2.1.1" ,
"resolved" : "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" ,
"integrity" : "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/color-convert" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" ,
"integrity" : "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"color-name" : "~1.1.4"
} ,
"engines" : {
"node" : ">=7.0.0"
}
} ,
"node_modules/color-name" : {
"version" : "1.1.4" ,
"resolved" : "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" ,
"integrity" : "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/comma-separated-tokens" : {
"version" : "2.0.3" ,
"resolved" : "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" ,
"integrity" : "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/commander" : {
"version" : "14.0.3" ,
"resolved" : "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz" ,
"integrity" : "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=20"
}
} ,
"node_modules/compress-commons" : {
"version" : "6.0.2" ,
"resolved" : "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz" ,
"integrity" : "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"crc-32" : "^1.2.0" ,
"crc32-stream" : "^6.0.0" ,
"is-stream" : "^2.0.1" ,
"normalize-path" : "^3.0.0" ,
"readable-stream" : "^4.0.0"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/compress-commons/node_modules/is-stream" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" ,
"integrity" : "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/concat-map" : {
"version" : "0.0.1" ,
"resolved" : "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" ,
"integrity" : "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/convert-source-map" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" ,
"integrity" : "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/core-util-is" : {
"version" : "1.0.3" ,
"resolved" : "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" ,
"integrity" : "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/cosmiconfig" : {
"version" : "7.1.0" ,
"resolved" : "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz" ,
"integrity" : "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/parse-json" : "^4.0.0" ,
"import-fresh" : "^3.2.1" ,
"parse-json" : "^5.0.0" ,
"path-type" : "^4.0.0" ,
"yaml" : "^1.10.0"
} ,
"engines" : {
"node" : ">=10"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/cosmiconfig/node_modules/yaml" : {
"version" : "1.10.3" ,
"resolved" : "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz" ,
"integrity" : "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==" ,
"license" : "ISC" ,
"engines" : {
"node" : ">= 6"
}
} ,
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
"node_modules/crc-32" : {
"version" : "1.2.2" ,
"resolved" : "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" ,
"integrity" : "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"bin" : {
"crc32" : "bin/crc32.njs"
} ,
"engines" : {
"node" : ">=0.8"
}
} ,
"node_modules/crc32-stream" : {
"version" : "6.0.0" ,
"resolved" : "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz" ,
"integrity" : "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"crc-32" : "^1.2.0" ,
"readable-stream" : "^4.0.0"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/create-wdio" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/create-wdio/-/create-wdio-9.25.0.tgz" ,
"integrity" : "sha512-ZnkJVDx3HB7UNH2t1kxK1VoNWQAQhLYyTjSEdpcFTHoj/QUrzS7K9nW99Q6WT0mgsedbtl86VMq4IXfy6f8Jrw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"chalk" : "^5.3.0" ,
"commander" : "^14.0.0" ,
"cross-spawn" : "^7.0.3" ,
"ejs" : "^3.1.10" ,
"execa" : "^9.6.0" ,
"import-meta-resolve" : "^4.1.0" ,
"inquirer" : "^12.7.0" ,
"normalize-package-data" : "^7.0.0" ,
"read-pkg-up" : "^10.1.0" ,
"recursive-readdir" : "^2.2.3" ,
"semver" : "^7.6.3" ,
"type-fest" : "^4.41.0" ,
"yargs" : "^17.7.2"
} ,
"bin" : {
"create-wdio" : "bin/wdio.js"
} ,
"engines" : {
"node" : ">=12.0.0"
}
} ,
"node_modules/create-wdio/node_modules/semver" : {
"version" : "7.7.4" ,
"resolved" : "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz" ,
"integrity" : "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" ,
"dev" : true ,
"license" : "ISC" ,
"bin" : {
"semver" : "bin/semver.js"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/cross-spawn" : {
"version" : "7.0.6" ,
"resolved" : "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" ,
"integrity" : "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"path-key" : "^3.1.0" ,
"shebang-command" : "^2.0.0" ,
"which" : "^2.0.1"
} ,
"engines" : {
"node" : ">= 8"
}
} ,
"node_modules/css-select" : {
"version" : "5.2.2" ,
"resolved" : "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" ,
"integrity" : "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"boolbase" : "^1.0.0" ,
"css-what" : "^6.1.0" ,
"domhandler" : "^5.0.2" ,
"domutils" : "^3.0.1" ,
"nth-check" : "^2.0.1"
} ,
"funding" : {
"url" : "https://github.com/sponsors/fb55"
}
} ,
"node_modules/css-shorthand-properties" : {
"version" : "1.1.2" ,
"resolved" : "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.1.2.tgz" ,
"integrity" : "sha512-C2AugXIpRGQTxaCW0N7n5jD/p5irUmCrwl03TrnMFBHDbdq44CFWR2zO7rK9xPN4Eo3pUxC4vQzQgbIpzrD1PQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/css-value" : {
"version" : "0.0.1" ,
"resolved" : "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz" ,
"integrity" : "sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==" ,
"dev" : true
} ,
"node_modules/css-what" : {
"version" : "6.2.2" ,
"resolved" : "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz" ,
"integrity" : "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"engines" : {
"node" : ">= 6"
} ,
"funding" : {
"url" : "https://github.com/sponsors/fb55"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/css.escape" : {
"version" : "1.5.1" ,
"resolved" : "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz" ,
"integrity" : "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" ,
"dev" : true ,
"license" : "MIT"
} ,
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
"node_modules/cssesc" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" ,
"integrity" : "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" ,
"license" : "MIT" ,
"bin" : {
"cssesc" : "bin/cssesc"
} ,
"engines" : {
"node" : ">=4"
}
} ,
"node_modules/cssstyle" : {
"version" : "4.6.0" ,
"resolved" : "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz" ,
"integrity" : "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@asamuzakjp/css-color" : "^3.2.0" ,
"rrweb-cssom" : "^0.8.0"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/csstype" : {
"version" : "3.2.3" ,
"resolved" : "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" ,
"integrity" : "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" ,
"license" : "MIT"
} ,
"node_modules/data-uri-to-buffer" : {
"version" : "6.0.2" ,
"resolved" : "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz" ,
"integrity" : "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/data-urls" : {
"version" : "5.0.0" ,
"resolved" : "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz" ,
"integrity" : "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"whatwg-mimetype" : "^4.0.0" ,
"whatwg-url" : "^14.0.0"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/debug" : {
"version" : "4.4.3" ,
"resolved" : "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" ,
"integrity" : "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==" ,
"license" : "MIT" ,
"dependencies" : {
"ms" : "^2.1.3"
} ,
"engines" : {
"node" : ">=6.0"
} ,
"peerDependenciesMeta" : {
"supports-color" : {
"optional" : true
}
}
} ,
"node_modules/decamelize" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/decamelize/-/decamelize-6.0.1.tgz" ,
"integrity" : "sha512-G7Cqgaelq68XHJNGlZ7lrNQyhZGsFqpwtGFexqUv4IQdjKoSYF7ipZ9UuTJZUSQXFj/XaoBLuEVIVqr8EJngEQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "^12.20.0 || ^14.13.1 || >=16.0.0"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/decimal.js" : {
"version" : "10.6.0" ,
"resolved" : "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz" ,
"integrity" : "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/decode-named-character-reference" : {
"version" : "1.3.0" ,
"resolved" : "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz" ,
"integrity" : "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==" ,
"license" : "MIT" ,
"dependencies" : {
"character-entities" : "^2.0.0"
} ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/deep-eql" : {
"version" : "5.0.2" ,
"resolved" : "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz" ,
"integrity" : "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/deepmerge-ts" : {
"version" : "7.1.5" ,
"resolved" : "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz" ,
"integrity" : "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"engines" : {
"node" : ">=16.0.0"
}
} ,
"node_modules/degenerator" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz" ,
"integrity" : "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ast-types" : "^0.13.4" ,
"escodegen" : "^2.1.0" ,
"esprima" : "^4.0.1"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/dequal" : {
"version" : "2.0.3" ,
"resolved" : "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" ,
"integrity" : "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/devlop" : {
"version" : "1.1.0" ,
"resolved" : "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" ,
"integrity" : "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==" ,
"license" : "MIT" ,
"dependencies" : {
"dequal" : "^2.0.0"
} ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/didyoumean" : {
"version" : "1.2.2" ,
"resolved" : "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" ,
"integrity" : "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" ,
"license" : "Apache-2.0"
} ,
"node_modules/diff" : {
"version" : "5.2.2" ,
"resolved" : "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz" ,
"integrity" : "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==" ,
"license" : "BSD-3-Clause" ,
"engines" : {
"node" : ">=0.3.1"
}
} ,
"node_modules/dlv" : {
"version" : "1.1.3" ,
"resolved" : "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" ,
"integrity" : "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" ,
"license" : "MIT"
} ,
2026-04-03 13:05:58 +00:00
"node_modules/dom-accessibility-api" : {
"version" : "0.5.16" ,
"resolved" : "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz" ,
"integrity" : "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
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
"node_modules/dom-serializer" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" ,
"integrity" : "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"domelementtype" : "^2.3.0" ,
"domhandler" : "^5.0.2" ,
"entities" : "^4.2.0"
} ,
"funding" : {
"url" : "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
} ,
"node_modules/dom-serializer/node_modules/entities" : {
"version" : "4.5.0" ,
"resolved" : "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" ,
"integrity" : "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"engines" : {
"node" : ">=0.12"
} ,
"funding" : {
"url" : "https://github.com/fb55/entities?sponsor=1"
}
} ,
"node_modules/domelementtype" : {
"version" : "2.3.0" ,
"resolved" : "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" ,
"integrity" : "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/fb55"
}
] ,
"license" : "BSD-2-Clause"
} ,
"node_modules/domhandler" : {
"version" : "5.0.3" ,
"resolved" : "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" ,
"integrity" : "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"domelementtype" : "^2.3.0"
} ,
"engines" : {
"node" : ">= 4"
} ,
"funding" : {
"url" : "https://github.com/fb55/domhandler?sponsor=1"
}
} ,
"node_modules/domutils" : {
"version" : "3.2.2" ,
"resolved" : "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" ,
"integrity" : "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"dom-serializer" : "^2.0.0" ,
"domelementtype" : "^2.3.0" ,
"domhandler" : "^5.0.3"
} ,
"funding" : {
"url" : "https://github.com/fb55/domutils?sponsor=1"
}
} ,
"node_modules/dotenv" : {
"version" : "17.3.1" ,
"resolved" : "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz" ,
"integrity" : "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://dotenvx.com"
}
} ,
"node_modules/eastasianwidth" : {
"version" : "0.2.0" ,
"resolved" : "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" ,
"integrity" : "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/edge-paths" : {
"version" : "3.0.5" ,
"resolved" : "https://registry.npmjs.org/edge-paths/-/edge-paths-3.0.5.tgz" ,
"integrity" : "sha512-sB7vSrDnFa4ezWQk9nZ/n0FdpdUuC6R1EOrlU3DL+bovcNFK28rqu2emmAUjujYEJTWIgQGqgVVWUZXMnc8iWg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/which" : "^2.0.1" ,
"which" : "^2.0.2"
} ,
"engines" : {
"node" : ">=14.0.0"
} ,
"funding" : {
"url" : "https://github.com/sponsors/shirshak55"
}
} ,
"node_modules/edgedriver" : {
"version" : "6.3.0" ,
"resolved" : "https://registry.npmjs.org/edgedriver/-/edgedriver-6.3.0.tgz" ,
"integrity" : "sha512-ggEQL+oEyIcM4nP2QC3AtCQ04o4kDNefRM3hja0odvlPSnsaxiruMxEZ93v3gDCKWYW6BXUr51PPradb+3nffw==" ,
"dev" : true ,
"hasInstallScript" : true ,
"license" : "MIT" ,
"dependencies" : {
"@wdio/logger" : "^9.18.0" ,
"@zip.js/zip.js" : "^2.8.11" ,
"decamelize" : "^6.0.1" ,
"edge-paths" : "^3.0.5" ,
"fast-xml-parser" : "^5.3.3" ,
"http-proxy-agent" : "^7.0.2" ,
"https-proxy-agent" : "^7.0.6" ,
"which" : "^6.0.0"
} ,
"bin" : {
"edgedriver" : "bin/edgedriver.js"
} ,
"engines" : {
"node" : ">=20.0.0"
}
} ,
"node_modules/edgedriver/node_modules/isexe" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz" ,
"integrity" : "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==" ,
"dev" : true ,
"license" : "BlueOak-1.0.0" ,
"engines" : {
"node" : ">=20"
}
} ,
"node_modules/edgedriver/node_modules/which" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/which/-/which-6.0.1.tgz" ,
"integrity" : "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"isexe" : "^4.0.0"
} ,
"bin" : {
"node-which" : "bin/which.js"
} ,
"engines" : {
"node" : "^20.17.0 || >=22.9.0"
}
} ,
"node_modules/ejs" : {
"version" : "3.1.10" ,
"resolved" : "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz" ,
"integrity" : "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"jake" : "^10.8.5"
} ,
"bin" : {
"ejs" : "bin/cli.js"
} ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/electron-to-chromium" : {
"version" : "1.5.313" ,
"resolved" : "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.313.tgz" ,
"integrity" : "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/emoji-regex" : {
"version" : "9.2.2" ,
"resolved" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" ,
"integrity" : "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/encoding-sniffer" : {
"version" : "0.2.1" ,
"resolved" : "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz" ,
"integrity" : "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"iconv-lite" : "^0.6.3" ,
"whatwg-encoding" : "^3.1.1"
} ,
"funding" : {
"url" : "https://github.com/fb55/encoding-sniffer?sponsor=1"
}
} ,
"node_modules/encoding-sniffer/node_modules/iconv-lite" : {
"version" : "0.6.3" ,
"resolved" : "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" ,
"integrity" : "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"safer-buffer" : ">= 2.1.2 < 3.0.0"
} ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/end-of-stream" : {
"version" : "1.4.5" ,
"resolved" : "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz" ,
"integrity" : "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"once" : "^1.4.0"
}
} ,
"node_modules/entities" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz" ,
"integrity" : "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"engines" : {
"node" : ">=0.12"
} ,
"funding" : {
"url" : "https://github.com/fb55/entities?sponsor=1"
}
} ,
"node_modules/error-ex" : {
"version" : "1.3.4" ,
"resolved" : "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz" ,
"integrity" : "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==" ,
"license" : "MIT" ,
"dependencies" : {
"is-arrayish" : "^0.2.1"
}
} ,
"node_modules/es-module-lexer" : {
"version" : "1.7.0" ,
"resolved" : "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz" ,
"integrity" : "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/esbuild" : {
"version" : "0.27.4" ,
"resolved" : "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz" ,
"integrity" : "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==" ,
2026-04-03 13:05:58 +00:00
"devOptional" : true ,
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
"hasInstallScript" : true ,
"license" : "MIT" ,
"bin" : {
"esbuild" : "bin/esbuild"
} ,
"engines" : {
"node" : ">=18"
} ,
"optionalDependencies" : {
"@esbuild/aix-ppc64" : "0.27.4" ,
"@esbuild/android-arm" : "0.27.4" ,
"@esbuild/android-arm64" : "0.27.4" ,
"@esbuild/android-x64" : "0.27.4" ,
"@esbuild/darwin-arm64" : "0.27.4" ,
"@esbuild/darwin-x64" : "0.27.4" ,
"@esbuild/freebsd-arm64" : "0.27.4" ,
"@esbuild/freebsd-x64" : "0.27.4" ,
"@esbuild/linux-arm" : "0.27.4" ,
"@esbuild/linux-arm64" : "0.27.4" ,
"@esbuild/linux-ia32" : "0.27.4" ,
"@esbuild/linux-loong64" : "0.27.4" ,
"@esbuild/linux-mips64el" : "0.27.4" ,
"@esbuild/linux-ppc64" : "0.27.4" ,
"@esbuild/linux-riscv64" : "0.27.4" ,
"@esbuild/linux-s390x" : "0.27.4" ,
"@esbuild/linux-x64" : "0.27.4" ,
"@esbuild/netbsd-arm64" : "0.27.4" ,
"@esbuild/netbsd-x64" : "0.27.4" ,
"@esbuild/openbsd-arm64" : "0.27.4" ,
"@esbuild/openbsd-x64" : "0.27.4" ,
"@esbuild/openharmony-arm64" : "0.27.4" ,
"@esbuild/sunos-x64" : "0.27.4" ,
"@esbuild/win32-arm64" : "0.27.4" ,
"@esbuild/win32-ia32" : "0.27.4" ,
"@esbuild/win32-x64" : "0.27.4"
}
} ,
"node_modules/escalade" : {
"version" : "3.2.0" ,
"resolved" : "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" ,
"integrity" : "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/escape-string-regexp" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" ,
"integrity" : "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/escodegen" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" ,
"integrity" : "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"esprima" : "^4.0.1" ,
"estraverse" : "^5.2.0" ,
"esutils" : "^2.0.2"
} ,
"bin" : {
"escodegen" : "bin/escodegen.js" ,
"esgenerate" : "bin/esgenerate.js"
} ,
"engines" : {
"node" : ">=6.0"
} ,
"optionalDependencies" : {
"source-map" : "~0.6.1"
}
} ,
"node_modules/esprima" : {
"version" : "4.0.1" ,
"resolved" : "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" ,
"integrity" : "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"bin" : {
"esparse" : "bin/esparse.js" ,
"esvalidate" : "bin/esvalidate.js"
} ,
"engines" : {
"node" : ">=4"
}
} ,
"node_modules/estraverse" : {
"version" : "5.3.0" ,
"resolved" : "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" ,
"integrity" : "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"engines" : {
"node" : ">=4.0"
}
} ,
"node_modules/estree-util-is-identifier-name" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz" ,
"integrity" : "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==" ,
"license" : "MIT" ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/estree-walker" : {
"version" : "3.0.3" ,
"resolved" : "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" ,
"integrity" : "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/estree" : "^1.0.0"
}
} ,
"node_modules/esutils" : {
"version" : "2.0.3" ,
"resolved" : "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" ,
"integrity" : "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/event-target-shim" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" ,
"integrity" : "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/events" : {
"version" : "3.3.0" ,
"resolved" : "https://registry.npmjs.org/events/-/events-3.3.0.tgz" ,
"integrity" : "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.8.x"
}
} ,
"node_modules/events-universal" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz" ,
"integrity" : "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"bare-events" : "^2.7.0"
}
} ,
"node_modules/execa" : {
"version" : "9.6.1" ,
"resolved" : "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz" ,
"integrity" : "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@sindresorhus/merge-streams" : "^4.0.0" ,
"cross-spawn" : "^7.0.6" ,
"figures" : "^6.1.0" ,
"get-stream" : "^9.0.0" ,
"human-signals" : "^8.0.1" ,
"is-plain-obj" : "^4.1.0" ,
"is-stream" : "^4.0.1" ,
"npm-run-path" : "^6.0.0" ,
"pretty-ms" : "^9.2.0" ,
"signal-exit" : "^4.1.0" ,
"strip-final-newline" : "^4.0.0" ,
"yoctocolors" : "^2.1.1"
} ,
"engines" : {
"node" : "^18.19.0 || >=20.5.0"
} ,
"funding" : {
"url" : "https://github.com/sindresorhus/execa?sponsor=1"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/expect" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz" ,
"integrity" : "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@jest/expect-utils" : "30.3.0" ,
"@jest/get-type" : "30.1.0" ,
"jest-matcher-utils" : "30.3.0" ,
"jest-message-util" : "30.3.0" ,
"jest-mock" : "30.3.0" ,
"jest-util" : "30.3.0"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
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
"node_modules/expect-type" : {
"version" : "1.3.0" ,
"resolved" : "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz" ,
"integrity" : "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"engines" : {
"node" : ">=12.0.0"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/expect-webdriverio" : {
"version" : "5.6.5" ,
"resolved" : "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-5.6.5.tgz" ,
"integrity" : "sha512-5ot+Apo0bEvMD/nqzWymQpgyWnOdu0kVpmahLx5T7NzUc6RyifucZ24Gsfr6F6C8yRGBhmoFh7ZeY+W9kteEBQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@vitest/snapshot" : "^4.0.16" ,
"deep-eql" : "^5.0.2" ,
"expect" : "^30.2.0" ,
"jest-matcher-utils" : "^30.2.0"
} ,
"engines" : {
"node" : ">=20"
} ,
"peerDependencies" : {
"@wdio/globals" : "^9.0.0" ,
"@wdio/logger" : "^9.0.0" ,
"webdriverio" : "^9.0.0"
} ,
"peerDependenciesMeta" : {
"@wdio/globals" : {
"optional" : false
} ,
"@wdio/logger" : {
"optional" : false
} ,
"webdriverio" : {
"optional" : false
}
}
} ,
"node_modules/expect-webdriverio/node_modules/@vitest/pretty-format" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz" ,
"integrity" : "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"tinyrainbow" : "^3.1.0"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/expect-webdriverio/node_modules/@vitest/snapshot" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz" ,
"integrity" : "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@vitest/pretty-format" : "4.1.2" ,
"@vitest/utils" : "4.1.2" ,
"magic-string" : "^0.30.21" ,
"pathe" : "^2.0.3"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/expect-webdriverio/node_modules/@vitest/utils" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz" ,
"integrity" : "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@vitest/pretty-format" : "4.1.2" ,
"convert-source-map" : "^2.0.0" ,
"tinyrainbow" : "^3.1.0"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/expect-webdriverio/node_modules/pathe" : {
"version" : "2.0.3" ,
"resolved" : "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz" ,
"integrity" : "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
"node_modules/expect-webdriverio/node_modules/tinyrainbow" : {
"version" : "3.1.0" ,
"resolved" : "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz" ,
"integrity" : "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : ">=14.0.0"
}
} ,
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
"node_modules/extend" : {
"version" : "3.0.2" ,
"resolved" : "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" ,
"integrity" : "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" ,
"license" : "MIT"
} ,
"node_modules/extract-zip" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" ,
"integrity" : "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"debug" : "^4.1.1" ,
"get-stream" : "^5.1.0" ,
"yauzl" : "^2.10.0"
} ,
"bin" : {
"extract-zip" : "cli.js"
} ,
"engines" : {
"node" : ">= 10.17.0"
} ,
"optionalDependencies" : {
"@types/yauzl" : "^2.9.1"
}
} ,
"node_modules/extract-zip/node_modules/get-stream" : {
"version" : "5.2.0" ,
"resolved" : "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" ,
"integrity" : "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"pump" : "^3.0.0"
} ,
"engines" : {
"node" : ">=8"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/fast-deep-equal" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz" ,
"integrity" : "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/fast-fifo" : {
"version" : "1.3.2" ,
"resolved" : "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" ,
"integrity" : "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/fast-glob" : {
"version" : "3.3.3" ,
"resolved" : "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" ,
"integrity" : "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==" ,
"license" : "MIT" ,
"dependencies" : {
"@nodelib/fs.stat" : "^2.0.2" ,
"@nodelib/fs.walk" : "^1.2.3" ,
"glob-parent" : "^5.1.2" ,
"merge2" : "^1.3.0" ,
"micromatch" : "^4.0.8"
} ,
"engines" : {
"node" : ">=8.6.0"
}
} ,
"node_modules/fast-glob/node_modules/glob-parent" : {
"version" : "5.1.2" ,
"resolved" : "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" ,
"integrity" : "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" ,
"license" : "ISC" ,
"dependencies" : {
"is-glob" : "^4.0.1"
} ,
"engines" : {
"node" : ">= 6"
}
} ,
"node_modules/fast-xml-builder" : {
"version" : "1.1.3" ,
"resolved" : "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.3.tgz" ,
"integrity" : "sha512-1o60KoFw2+LWKQu3IdcfcFlGTW4dpqEWmjhYec6H82AYZU2TVBXep6tMl8Z1Y+wM+ZrzCwe3BZ9Vyd9N2rIvmg==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/NaturalIntelligence"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"path-expression-matcher" : "^1.1.3"
}
} ,
"node_modules/fast-xml-parser" : {
"version" : "5.5.5" ,
"resolved" : "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.5.tgz" ,
"integrity" : "sha512-NLY+V5NNbdmiEszx9n14mZBseJTC50bRq1VHsaxOmR72JDuZt+5J1Co+dC/4JPnyq+WrIHNM69r0sqf7BMb3Mg==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/NaturalIntelligence"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"fast-xml-builder" : "^1.1.3" ,
"path-expression-matcher" : "^1.1.3" ,
"strnum" : "^2.1.2"
} ,
"bin" : {
"fxparser" : "src/cli/cli.js"
}
} ,
"node_modules/fastq" : {
"version" : "1.20.1" ,
"resolved" : "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz" ,
"integrity" : "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==" ,
"license" : "ISC" ,
"dependencies" : {
"reusify" : "^1.0.4"
}
} ,
"node_modules/fd-slicer" : {
"version" : "1.1.0" ,
"resolved" : "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" ,
"integrity" : "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"pend" : "~1.2.0"
}
} ,
"node_modules/fdir" : {
"version" : "6.5.0" ,
"resolved" : "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" ,
"integrity" : "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12.0.0"
} ,
"peerDependencies" : {
"picomatch" : "^3 || ^4"
} ,
"peerDependenciesMeta" : {
"picomatch" : {
"optional" : true
}
}
} ,
"node_modules/figures" : {
"version" : "6.1.0" ,
"resolved" : "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz" ,
"integrity" : "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"is-unicode-supported" : "^2.0.0"
} ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/filelist" : {
"version" : "1.0.6" ,
"resolved" : "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz" ,
"integrity" : "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"minimatch" : "^5.0.1"
}
} ,
"node_modules/filelist/node_modules/minimatch" : {
"version" : "5.1.9" ,
"resolved" : "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz" ,
"integrity" : "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"brace-expansion" : "^2.0.1"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/fill-range" : {
"version" : "7.1.1" ,
"resolved" : "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" ,
"integrity" : "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==" ,
"license" : "MIT" ,
"dependencies" : {
"to-regex-range" : "^5.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/find-root" : {
"version" : "1.1.0" ,
"resolved" : "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" ,
"integrity" : "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" ,
"license" : "MIT"
} ,
"node_modules/find-up" : {
"version" : "5.0.0" ,
"resolved" : "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" ,
"integrity" : "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"locate-path" : "^6.0.0" ,
"path-exists" : "^4.0.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/flat" : {
"version" : "5.0.2" ,
"resolved" : "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" ,
"integrity" : "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"bin" : {
"flat" : "cli.js"
}
} ,
"node_modules/foreground-child" : {
"version" : "3.3.1" ,
"resolved" : "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz" ,
"integrity" : "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"cross-spawn" : "^7.0.6" ,
"signal-exit" : "^4.0.1"
} ,
"engines" : {
"node" : ">=14"
} ,
"funding" : {
"url" : "https://github.com/sponsors/isaacs"
}
} ,
"node_modules/fraction.js" : {
"version" : "5.3.4" ,
"resolved" : "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz" ,
"integrity" : "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "*"
} ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/rawify"
}
} ,
"node_modules/fs.realpath" : {
"version" : "1.0.0" ,
"resolved" : "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" ,
"integrity" : "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/fsevents" : {
"version" : "2.3.3" ,
"resolved" : "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" ,
"integrity" : "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==" ,
"hasInstallScript" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : "^8.16.0 || ^10.6.0 || >=11.0.0"
}
} ,
"node_modules/function-bind" : {
"version" : "1.1.2" ,
"resolved" : "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" ,
"integrity" : "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" ,
"license" : "MIT" ,
"funding" : {
"url" : "https://github.com/sponsors/ljharb"
}
} ,
"node_modules/geckodriver" : {
"version" : "6.1.0" ,
"resolved" : "https://registry.npmjs.org/geckodriver/-/geckodriver-6.1.0.tgz" ,
"integrity" : "sha512-ZRXLa4ZaYTTgUO4Eefw+RsQCleugU2QLb1ME7qTYxxuRj51yAhfnXaItXNs5/vUzfIaDHuZ+YnSF005hfp07nQ==" ,
"dev" : true ,
"hasInstallScript" : true ,
"license" : "MIT" ,
"dependencies" : {
"@wdio/logger" : "^9.18.0" ,
"@zip.js/zip.js" : "^2.8.11" ,
"decamelize" : "^6.0.1" ,
"http-proxy-agent" : "^7.0.2" ,
"https-proxy-agent" : "^7.0.6" ,
"modern-tar" : "^0.7.2"
} ,
"bin" : {
"geckodriver" : "bin/geckodriver.js"
} ,
"engines" : {
"node" : ">=20.0.0"
}
} ,
"node_modules/gensync" : {
"version" : "1.0.0-beta.2" ,
"resolved" : "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" ,
"integrity" : "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6.9.0"
}
} ,
"node_modules/get-caller-file" : {
"version" : "2.0.5" ,
"resolved" : "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" ,
"integrity" : "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : "6.* || 8.* || >= 10.*"
}
} ,
"node_modules/get-port" : {
"version" : "7.1.0" ,
"resolved" : "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz" ,
"integrity" : "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=16"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/get-stream" : {
"version" : "9.0.1" ,
"resolved" : "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz" ,
"integrity" : "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@sec-ant/readable-stream" : "^0.4.1" ,
"is-stream" : "^4.0.1"
} ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/get-tsconfig" : {
"version" : "4.13.6" ,
"resolved" : "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz" ,
"integrity" : "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==" ,
2026-04-03 13:05:58 +00:00
"devOptional" : true ,
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
"license" : "MIT" ,
"dependencies" : {
"resolve-pkg-maps" : "^1.0.0"
} ,
"funding" : {
"url" : "https://github.com/privatenumber/get-tsconfig?sponsor=1"
}
} ,
"node_modules/get-uri" : {
"version" : "6.0.5" ,
"resolved" : "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz" ,
"integrity" : "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"basic-ftp" : "^5.0.2" ,
"data-uri-to-buffer" : "^6.0.2" ,
"debug" : "^4.3.4"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/glob" : {
"version" : "10.5.0" ,
"resolved" : "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz" ,
"integrity" : "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==" ,
"deprecated" : "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"foreground-child" : "^3.1.0" ,
"jackspeak" : "^3.1.2" ,
"minimatch" : "^9.0.4" ,
"minipass" : "^7.1.2" ,
"package-json-from-dist" : "^1.0.0" ,
"path-scurry" : "^1.11.1"
} ,
"bin" : {
"glob" : "dist/esm/bin.mjs"
} ,
"funding" : {
"url" : "https://github.com/sponsors/isaacs"
}
} ,
"node_modules/glob-parent" : {
"version" : "6.0.2" ,
"resolved" : "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" ,
"integrity" : "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" ,
"license" : "ISC" ,
"dependencies" : {
"is-glob" : "^4.0.3"
} ,
"engines" : {
"node" : ">=10.13.0"
}
} ,
"node_modules/graceful-fs" : {
"version" : "4.2.11" ,
"resolved" : "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" ,
"integrity" : "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/grapheme-splitter" : {
"version" : "1.0.4" ,
"resolved" : "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" ,
"integrity" : "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/has-flag" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" ,
"integrity" : "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/hasown" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" ,
"integrity" : "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==" ,
"license" : "MIT" ,
"dependencies" : {
"function-bind" : "^1.1.2"
} ,
"engines" : {
"node" : ">= 0.4"
}
} ,
"node_modules/hast-util-to-jsx-runtime" : {
"version" : "2.3.6" ,
"resolved" : "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz" ,
"integrity" : "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/estree" : "^1.0.0" ,
"@types/hast" : "^3.0.0" ,
"@types/unist" : "^3.0.0" ,
"comma-separated-tokens" : "^2.0.0" ,
"devlop" : "^1.0.0" ,
"estree-util-is-identifier-name" : "^3.0.0" ,
"hast-util-whitespace" : "^3.0.0" ,
"mdast-util-mdx-expression" : "^2.0.0" ,
"mdast-util-mdx-jsx" : "^3.0.0" ,
"mdast-util-mdxjs-esm" : "^2.0.0" ,
"property-information" : "^7.0.0" ,
"space-separated-tokens" : "^2.0.0" ,
"style-to-js" : "^1.0.0" ,
"unist-util-position" : "^5.0.0" ,
"vfile-message" : "^4.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/hast-util-whitespace" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz" ,
"integrity" : "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/hast" : "^3.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/he" : {
"version" : "1.2.0" ,
"resolved" : "https://registry.npmjs.org/he/-/he-1.2.0.tgz" ,
"integrity" : "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" ,
"dev" : true ,
"license" : "MIT" ,
"bin" : {
"he" : "bin/he"
}
} ,
"node_modules/hosted-git-info" : {
"version" : "8.1.0" ,
"resolved" : "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz" ,
"integrity" : "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"lru-cache" : "^10.0.1"
} ,
"engines" : {
"node" : "^18.17.0 || >=20.5.0"
}
} ,
"node_modules/hosted-git-info/node_modules/lru-cache" : {
"version" : "10.4.3" ,
"resolved" : "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" ,
"integrity" : "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/html-encoding-sniffer" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz" ,
"integrity" : "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"whatwg-encoding" : "^3.1.1"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/html-escaper" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" ,
"integrity" : "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/html-url-attributes" : {
"version" : "3.0.1" ,
"resolved" : "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz" ,
"integrity" : "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==" ,
"license" : "MIT" ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/htmlfy" : {
"version" : "0.8.1" ,
"resolved" : "https://registry.npmjs.org/htmlfy/-/htmlfy-0.8.1.tgz" ,
"integrity" : "sha512-xWROBw9+MEGwxpotll0h672KCaLrKKiCYzsyN8ZgL9cQbVumFnyvsk2JqiB9ELAV1GLj1GG/jxZUjV9OZZi/yQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/htmlparser2" : {
"version" : "10.1.0" ,
"resolved" : "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz" ,
"integrity" : "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==" ,
"dev" : true ,
"funding" : [
"https://github.com/fb55/htmlparser2?sponsor=1" ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/fb55"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"domelementtype" : "^2.3.0" ,
"domhandler" : "^5.0.3" ,
"domutils" : "^3.2.2" ,
"entities" : "^7.0.1"
}
} ,
"node_modules/htmlparser2/node_modules/entities" : {
"version" : "7.0.1" ,
"resolved" : "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz" ,
"integrity" : "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"engines" : {
"node" : ">=0.12"
} ,
"funding" : {
"url" : "https://github.com/fb55/entities?sponsor=1"
}
} ,
"node_modules/http-proxy-agent" : {
"version" : "7.0.2" ,
"resolved" : "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" ,
"integrity" : "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"agent-base" : "^7.1.0" ,
"debug" : "^4.3.4"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/https-proxy-agent" : {
"version" : "7.0.6" ,
"resolved" : "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" ,
"integrity" : "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"agent-base" : "^7.1.2" ,
"debug" : "4"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/human-signals" : {
"version" : "8.0.1" ,
"resolved" : "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz" ,
"integrity" : "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"engines" : {
"node" : ">=18.18.0"
}
} ,
"node_modules/iconv-lite" : {
"version" : "0.7.2" ,
"resolved" : "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz" ,
"integrity" : "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"safer-buffer" : ">= 2.1.2 < 3.0.0"
} ,
"engines" : {
"node" : ">=0.10.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/express"
}
} ,
"node_modules/ieee754" : {
"version" : "1.2.1" ,
"resolved" : "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" ,
"integrity" : "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/feross"
} ,
{
"type" : "patreon" ,
"url" : "https://www.patreon.com/feross"
} ,
{
"type" : "consulting" ,
"url" : "https://feross.org/support"
}
] ,
"license" : "BSD-3-Clause"
} ,
"node_modules/immediate" : {
"version" : "3.0.6" ,
"resolved" : "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" ,
"integrity" : "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/import-fresh" : {
"version" : "3.3.1" ,
"resolved" : "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz" ,
"integrity" : "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==" ,
"license" : "MIT" ,
"dependencies" : {
"parent-module" : "^1.0.0" ,
"resolve-from" : "^4.0.0"
} ,
"engines" : {
"node" : ">=6"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/import-meta-resolve" : {
"version" : "4.2.0" ,
"resolved" : "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz" ,
"integrity" : "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==" ,
"dev" : true ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/indent-string" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" ,
"integrity" : "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
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
"node_modules/inflight" : {
"version" : "1.0.6" ,
"resolved" : "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" ,
"integrity" : "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" ,
"deprecated" : "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful." ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"once" : "^1.3.0" ,
"wrappy" : "1"
}
} ,
"node_modules/inherits" : {
"version" : "2.0.4" ,
"resolved" : "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" ,
"integrity" : "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/inline-style-parser" : {
"version" : "0.2.7" ,
"resolved" : "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz" ,
"integrity" : "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==" ,
"license" : "MIT"
} ,
"node_modules/inquirer" : {
"version" : "12.11.1" ,
"resolved" : "https://registry.npmjs.org/inquirer/-/inquirer-12.11.1.tgz" ,
"integrity" : "sha512-9VF7mrY+3OmsAfjH3yKz/pLbJ5z22E23hENKw3/LNSaA/sAt3v49bDRY+Ygct1xwuKT+U+cBfTzjCPySna69Qw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@inquirer/ansi" : "^1.0.2" ,
"@inquirer/core" : "^10.3.2" ,
"@inquirer/prompts" : "^7.10.1" ,
"@inquirer/type" : "^3.0.10" ,
"mute-stream" : "^2.0.0" ,
"run-async" : "^4.0.6" ,
"rxjs" : "^7.8.2"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"@types/node" : ">=18"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
}
}
} ,
"node_modules/ip-address" : {
"version" : "10.1.0" ,
"resolved" : "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz" ,
"integrity" : "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 12"
}
} ,
"node_modules/is-alphabetical" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" ,
"integrity" : "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/is-alphanumerical" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" ,
"integrity" : "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==" ,
"license" : "MIT" ,
"dependencies" : {
"is-alphabetical" : "^2.0.0" ,
"is-decimal" : "^2.0.0"
} ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/is-arrayish" : {
"version" : "0.2.1" ,
"resolved" : "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" ,
"integrity" : "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" ,
"license" : "MIT"
} ,
"node_modules/is-binary-path" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" ,
"integrity" : "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" ,
"license" : "MIT" ,
"dependencies" : {
"binary-extensions" : "^2.0.0"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/is-core-module" : {
"version" : "2.16.1" ,
"resolved" : "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz" ,
"integrity" : "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==" ,
"license" : "MIT" ,
"dependencies" : {
"hasown" : "^2.0.2"
} ,
"engines" : {
"node" : ">= 0.4"
} ,
"funding" : {
"url" : "https://github.com/sponsors/ljharb"
}
} ,
"node_modules/is-decimal" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" ,
"integrity" : "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/is-extglob" : {
"version" : "2.1.1" ,
"resolved" : "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" ,
"integrity" : "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/is-fullwidth-code-point" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" ,
"integrity" : "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/is-glob" : {
"version" : "4.0.3" ,
"resolved" : "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" ,
"integrity" : "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" ,
"license" : "MIT" ,
"dependencies" : {
"is-extglob" : "^2.1.1"
} ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/is-hexadecimal" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" ,
"integrity" : "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/is-number" : {
"version" : "7.0.0" ,
"resolved" : "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" ,
"integrity" : "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.12.0"
}
} ,
"node_modules/is-plain-obj" : {
"version" : "4.1.0" ,
"resolved" : "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" ,
"integrity" : "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/is-potential-custom-element-name" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" ,
"integrity" : "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/is-stream" : {
"version" : "4.0.1" ,
"resolved" : "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz" ,
"integrity" : "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/is-unicode-supported" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz" ,
"integrity" : "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
2026-04-03 13:05:58 +00:00
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/isarray" : {
"version" : "1.0.0" ,
"resolved" : "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" ,
"integrity" : "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/isexe" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" ,
"integrity" : "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/istanbul-lib-coverage" : {
"version" : "3.2.2" ,
"resolved" : "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" ,
"integrity" : "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/istanbul-lib-report" : {
"version" : "3.0.1" ,
"resolved" : "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" ,
"integrity" : "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"dependencies" : {
"istanbul-lib-coverage" : "^3.0.0" ,
"make-dir" : "^4.0.0" ,
"supports-color" : "^7.1.0"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/istanbul-lib-source-maps" : {
"version" : "5.0.6" ,
"resolved" : "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz" ,
"integrity" : "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"dependencies" : {
"@jridgewell/trace-mapping" : "^0.3.23" ,
"debug" : "^4.1.1" ,
"istanbul-lib-coverage" : "^3.0.0"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/istanbul-reports" : {
"version" : "3.2.0" ,
"resolved" : "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz" ,
"integrity" : "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"dependencies" : {
"html-escaper" : "^2.0.0" ,
"istanbul-lib-report" : "^3.0.0"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/jackspeak" : {
"version" : "3.4.3" ,
"resolved" : "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" ,
"integrity" : "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==" ,
"dev" : true ,
"license" : "BlueOak-1.0.0" ,
"dependencies" : {
"@isaacs/cliui" : "^8.0.2"
} ,
"funding" : {
"url" : "https://github.com/sponsors/isaacs"
} ,
"optionalDependencies" : {
"@pkgjs/parseargs" : "^0.11.0"
}
} ,
"node_modules/jake" : {
"version" : "10.9.4" ,
"resolved" : "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz" ,
"integrity" : "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"async" : "^3.2.6" ,
"filelist" : "^1.0.4" ,
"picocolors" : "^1.1.1"
} ,
"bin" : {
"jake" : "bin/cli.js"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/jest-diff" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz" ,
"integrity" : "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@jest/diff-sequences" : "30.3.0" ,
"@jest/get-type" : "30.1.0" ,
"chalk" : "^4.1.2" ,
"pretty-format" : "30.3.0"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/jest-diff/node_modules/chalk" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" ,
"integrity" : "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"ansi-styles" : "^4.1.0" ,
"supports-color" : "^7.1.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/chalk?sponsor=1"
}
} ,
"node_modules/jest-diff/node_modules/pretty-format" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz" ,
"integrity" : "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@jest/schemas" : "30.0.5" ,
"ansi-styles" : "^5.2.0" ,
"react-is" : "^18.3.1"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles" : {
"version" : "5.2.0" ,
"resolved" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" ,
"integrity" : "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/ansi-styles?sponsor=1"
}
} ,
"node_modules/jest-diff/node_modules/react-is" : {
"version" : "18.3.1" ,
"resolved" : "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" ,
"integrity" : "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
"node_modules/jest-matcher-utils" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz" ,
"integrity" : "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@jest/get-type" : "30.1.0" ,
"chalk" : "^4.1.2" ,
"jest-diff" : "30.3.0" ,
"pretty-format" : "30.3.0"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/jest-matcher-utils/node_modules/chalk" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" ,
"integrity" : "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"ansi-styles" : "^4.1.0" ,
"supports-color" : "^7.1.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/chalk?sponsor=1"
}
} ,
"node_modules/jest-matcher-utils/node_modules/pretty-format" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz" ,
"integrity" : "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@jest/schemas" : "30.0.5" ,
"ansi-styles" : "^5.2.0" ,
"react-is" : "^18.3.1"
} ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles" : {
"version" : "5.2.0" ,
"resolved" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" ,
"integrity" : "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : ">=10"
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
} ,
"funding" : {
2026-04-03 13:05:58 +00:00
"url" : "https://github.com/chalk/ansi-styles?sponsor=1"
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
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/jest-matcher-utils/node_modules/react-is" : {
"version" : "18.3.1" ,
"resolved" : "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" ,
"integrity" : "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" ,
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
"dev" : true ,
2026-04-03 13:05:58 +00:00
"license" : "MIT" ,
"peer" : true
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
} ,
2026-04-03 13:05:58 +00:00
"node_modules/jest-message-util" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz" ,
"integrity" : "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==" ,
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
"dev" : true ,
2026-04-03 13:05:58 +00:00
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"@babel/code-frame" : "^7.27.1" ,
"@jest/types" : "30.3.0" ,
"@types/stack-utils" : "^2.0.3" ,
"chalk" : "^4.1.2" ,
"graceful-fs" : "^4.2.11" ,
"picomatch" : "^4.0.3" ,
"pretty-format" : "30.3.0" ,
"slash" : "^3.0.0" ,
"stack-utils" : "^2.0.6"
} ,
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
"engines" : {
2026-04-03 13:05:58 +00:00
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
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
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/jest-message-util/node_modules/chalk" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" ,
"integrity" : "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" ,
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
"dev" : true ,
2026-04-03 13:05:58 +00:00
"license" : "MIT" ,
"peer" : true ,
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
"dependencies" : {
2026-04-03 13:05:58 +00:00
"ansi-styles" : "^4.1.0" ,
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
"supports-color" : "^7.1.0"
} ,
"engines" : {
"node" : ">=10"
2026-04-03 13:05:58 +00:00
} ,
"funding" : {
"url" : "https://github.com/chalk/chalk?sponsor=1"
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
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/jest-message-util/node_modules/pretty-format" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz" ,
"integrity" : "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==" ,
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
"dev" : true ,
2026-04-03 13:05:58 +00:00
"license" : "MIT" ,
"peer" : true ,
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
"dependencies" : {
2026-04-03 13:05:58 +00:00
"@jest/schemas" : "30.0.5" ,
"ansi-styles" : "^5.2.0" ,
"react-is" : "^18.3.1"
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
} ,
2026-04-03 13:05:58 +00:00
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles" : {
"version" : "5.2.0" ,
"resolved" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" ,
"integrity" : "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
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
"engines" : {
"node" : ">=10"
2026-04-03 13:05:58 +00:00
} ,
"funding" : {
"url" : "https://github.com/chalk/ansi-styles?sponsor=1"
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
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/jest-message-util/node_modules/react-is" : {
"version" : "18.3.1" ,
"resolved" : "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" ,
"integrity" : "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" ,
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
"dev" : true ,
2026-04-03 13:05:58 +00:00
"license" : "MIT" ,
"peer" : true
} ,
"node_modules/jest-mock" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz" ,
"integrity" : "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
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
"dependencies" : {
2026-04-03 13:05:58 +00:00
"@jest/types" : "30.3.0" ,
"@types/node" : "*" ,
"jest-util" : "30.3.0"
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
} ,
"engines" : {
2026-04-03 13:05:58 +00:00
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
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
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/jest-regex-util" : {
"version" : "30.0.1" ,
"resolved" : "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz" ,
"integrity" : "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==" ,
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
"dev" : true ,
2026-04-03 13:05:58 +00:00
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
} ,
"node_modules/jest-util" : {
"version" : "30.3.0" ,
"resolved" : "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz" ,
"integrity" : "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
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
"dependencies" : {
2026-04-03 13:05:58 +00:00
"@jest/types" : "30.3.0" ,
"@types/node" : "*" ,
"chalk" : "^4.1.2" ,
"ci-info" : "^4.2.0" ,
"graceful-fs" : "^4.2.11" ,
"picomatch" : "^4.0.3"
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
} ,
2026-04-03 13:05:58 +00:00
"engines" : {
"node" : "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
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
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/jest-util/node_modules/chalk" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" ,
"integrity" : "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" ,
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
"dev" : true ,
2026-04-03 13:05:58 +00:00
"license" : "MIT" ,
"peer" : true ,
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
"dependencies" : {
2026-04-03 13:05:58 +00:00
"ansi-styles" : "^4.1.0" ,
"supports-color" : "^7.1.0"
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
} ,
"engines" : {
"node" : ">=10"
2026-04-03 13:05:58 +00:00
} ,
"funding" : {
"url" : "https://github.com/chalk/chalk?sponsor=1"
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
}
} ,
"node_modules/jiti" : {
"version" : "2.6.1" ,
"resolved" : "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" ,
"integrity" : "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==" ,
2026-04-03 13:05:58 +00:00
"devOptional" : true ,
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
"license" : "MIT" ,
"bin" : {
"jiti" : "lib/jiti-cli.mjs"
}
} ,
"node_modules/js-tokens" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" ,
"integrity" : "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" ,
"license" : "MIT"
} ,
"node_modules/js-yaml" : {
"version" : "4.1.1" ,
"resolved" : "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz" ,
"integrity" : "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"argparse" : "^2.0.1"
} ,
"bin" : {
"js-yaml" : "bin/js-yaml.js"
}
} ,
"node_modules/jsdom" : {
"version" : "26.1.0" ,
"resolved" : "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz" ,
"integrity" : "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"cssstyle" : "^4.2.1" ,
"data-urls" : "^5.0.0" ,
"decimal.js" : "^10.5.0" ,
"html-encoding-sniffer" : "^4.0.0" ,
"http-proxy-agent" : "^7.0.2" ,
"https-proxy-agent" : "^7.0.6" ,
"is-potential-custom-element-name" : "^1.0.1" ,
"nwsapi" : "^2.2.16" ,
"parse5" : "^7.2.1" ,
"rrweb-cssom" : "^0.8.0" ,
"saxes" : "^6.0.0" ,
"symbol-tree" : "^3.2.4" ,
"tough-cookie" : "^5.1.1" ,
"w3c-xmlserializer" : "^5.0.0" ,
"webidl-conversions" : "^7.0.0" ,
"whatwg-encoding" : "^3.1.1" ,
"whatwg-mimetype" : "^4.0.0" ,
"whatwg-url" : "^14.1.1" ,
"ws" : "^8.18.0" ,
"xml-name-validator" : "^5.0.0"
} ,
"engines" : {
"node" : ">=18"
} ,
"peerDependencies" : {
"canvas" : "^3.0.0"
} ,
"peerDependenciesMeta" : {
"canvas" : {
"optional" : true
}
}
} ,
"node_modules/jsesc" : {
"version" : "3.1.0" ,
"resolved" : "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" ,
"integrity" : "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" ,
"license" : "MIT" ,
"bin" : {
"jsesc" : "bin/jsesc"
} ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/json-parse-even-better-errors" : {
"version" : "2.3.1" ,
"resolved" : "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" ,
"integrity" : "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" ,
"license" : "MIT"
} ,
"node_modules/json5" : {
"version" : "2.2.3" ,
"resolved" : "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" ,
"integrity" : "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" ,
"dev" : true ,
"license" : "MIT" ,
"bin" : {
"json5" : "lib/cli.js"
} ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/jszip" : {
"version" : "3.10.1" ,
"resolved" : "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz" ,
"integrity" : "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==" ,
"dev" : true ,
"license" : "(MIT OR GPL-3.0-or-later)" ,
"dependencies" : {
"lie" : "~3.3.0" ,
"pako" : "~1.0.2" ,
"readable-stream" : "~2.3.6" ,
"setimmediate" : "^1.0.5"
}
} ,
"node_modules/jszip/node_modules/readable-stream" : {
"version" : "2.3.8" ,
"resolved" : "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" ,
"integrity" : "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"core-util-is" : "~1.0.0" ,
"inherits" : "~2.0.3" ,
"isarray" : "~1.0.0" ,
"process-nextick-args" : "~2.0.0" ,
"safe-buffer" : "~5.1.1" ,
"string_decoder" : "~1.1.1" ,
"util-deprecate" : "~1.0.1"
}
} ,
"node_modules/jszip/node_modules/safe-buffer" : {
"version" : "5.1.2" ,
"resolved" : "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" ,
"integrity" : "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/jszip/node_modules/string_decoder" : {
"version" : "1.1.1" ,
"resolved" : "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" ,
"integrity" : "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"safe-buffer" : "~5.1.0"
}
} ,
"node_modules/lazystream" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz" ,
"integrity" : "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"readable-stream" : "^2.0.5"
} ,
"engines" : {
"node" : ">= 0.6.3"
}
} ,
"node_modules/lazystream/node_modules/readable-stream" : {
"version" : "2.3.8" ,
"resolved" : "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" ,
"integrity" : "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"core-util-is" : "~1.0.0" ,
"inherits" : "~2.0.3" ,
"isarray" : "~1.0.0" ,
"process-nextick-args" : "~2.0.0" ,
"safe-buffer" : "~5.1.1" ,
"string_decoder" : "~1.1.1" ,
"util-deprecate" : "~1.0.1"
}
} ,
"node_modules/lazystream/node_modules/safe-buffer" : {
"version" : "5.1.2" ,
"resolved" : "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" ,
"integrity" : "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/lazystream/node_modules/string_decoder" : {
"version" : "1.1.1" ,
"resolved" : "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" ,
"integrity" : "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"safe-buffer" : "~5.1.0"
}
} ,
"node_modules/lie" : {
"version" : "3.3.0" ,
"resolved" : "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" ,
"integrity" : "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"immediate" : "~3.0.5"
}
} ,
"node_modules/lilconfig" : {
"version" : "3.1.3" ,
"resolved" : "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz" ,
"integrity" : "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=14"
} ,
"funding" : {
"url" : "https://github.com/sponsors/antonk52"
}
} ,
"node_modules/lines-and-columns" : {
"version" : "1.2.4" ,
"resolved" : "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" ,
"integrity" : "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" ,
"license" : "MIT"
} ,
"node_modules/locate-app" : {
"version" : "2.5.0" ,
"resolved" : "https://registry.npmjs.org/locate-app/-/locate-app-2.5.0.tgz" ,
"integrity" : "sha512-xIqbzPMBYArJRmPGUZD9CzV9wOqmVtQnaAn3wrj3s6WYW0bQvPI7x+sPYUGmDTYMHefVK//zc6HEYZ1qnxIK+Q==" ,
"dev" : true ,
"funding" : [
{
"type" : "individual" ,
"url" : "https://buymeacoffee.com/hejny"
} ,
{
"type" : "github" ,
"url" : "https://github.com/hejny/locate-app/blob/main/README.md#%EF%B8%8F-contributing"
}
] ,
"license" : "Apache-2.0" ,
"dependencies" : {
"@promptbook/utils" : "0.69.5" ,
"type-fest" : "4.26.0" ,
"userhome" : "1.0.1"
}
} ,
"node_modules/locate-app/node_modules/type-fest" : {
"version" : "4.26.0" ,
"resolved" : "https://registry.npmjs.org/type-fest/-/type-fest-4.26.0.tgz" ,
"integrity" : "sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==" ,
"dev" : true ,
"license" : "(MIT OR CC0-1.0)" ,
"engines" : {
"node" : ">=16"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/locate-path" : {
"version" : "6.0.0" ,
"resolved" : "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" ,
"integrity" : "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"p-locate" : "^5.0.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/lodash" : {
"version" : "4.17.23" ,
"resolved" : "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz" ,
"integrity" : "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/lodash.clonedeep" : {
"version" : "4.5.0" ,
"resolved" : "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" ,
"integrity" : "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/lodash.flattendeep" : {
"version" : "4.4.0" ,
"resolved" : "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz" ,
"integrity" : "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/lodash.pickby" : {
"version" : "4.6.0" ,
"resolved" : "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz" ,
"integrity" : "sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/lodash.union" : {
"version" : "4.6.0" ,
"resolved" : "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz" ,
"integrity" : "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/lodash.zip" : {
"version" : "4.2.0" ,
"resolved" : "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz" ,
"integrity" : "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/log-symbols" : {
"version" : "4.1.0" ,
"resolved" : "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" ,
"integrity" : "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"chalk" : "^4.1.0" ,
"is-unicode-supported" : "^0.1.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/log-symbols/node_modules/chalk" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" ,
"integrity" : "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-styles" : "^4.1.0" ,
"supports-color" : "^7.1.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/chalk?sponsor=1"
}
} ,
"node_modules/log-symbols/node_modules/is-unicode-supported" : {
"version" : "0.1.0" ,
"resolved" : "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" ,
"integrity" : "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/loglevel" : {
"version" : "1.9.2" ,
"resolved" : "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz" ,
"integrity" : "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 0.6.0"
} ,
"funding" : {
"type" : "tidelift" ,
"url" : "https://tidelift.com/funding/github/npm/loglevel"
}
} ,
"node_modules/loglevel-plugin-prefix" : {
"version" : "0.8.4" ,
"resolved" : "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz" ,
"integrity" : "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/longest-streak" : {
"version" : "3.1.0" ,
"resolved" : "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" ,
"integrity" : "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/loose-envify" : {
"version" : "1.4.0" ,
"resolved" : "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" ,
"integrity" : "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" ,
"license" : "MIT" ,
"dependencies" : {
"js-tokens" : "^3.0.0 || ^4.0.0"
} ,
"bin" : {
"loose-envify" : "cli.js"
}
} ,
"node_modules/loupe" : {
"version" : "3.2.1" ,
"resolved" : "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz" ,
"integrity" : "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/lru-cache" : {
"version" : "5.1.1" ,
"resolved" : "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" ,
"integrity" : "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"yallist" : "^3.0.2"
}
} ,
"node_modules/lucide-react" : {
"version" : "0.577.0" ,
"resolved" : "https://registry.npmjs.org/lucide-react/-/lucide-react-0.577.0.tgz" ,
"integrity" : "sha512-4LjoFv2eEPwYDPg/CUdBJQSDfPyzXCRrVW1X7jrx/trgxnxkHFjnVZINbzvzxjN70dxychOfg+FTYwBiS3pQ5A==" ,
"license" : "ISC" ,
"peerDependencies" : {
"react" : "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/lz-string" : {
"version" : "1.5.0" ,
"resolved" : "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz" ,
"integrity" : "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"bin" : {
"lz-string" : "bin/bin.js"
}
} ,
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
"node_modules/magic-string" : {
"version" : "0.30.21" ,
"resolved" : "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz" ,
"integrity" : "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@jridgewell/sourcemap-codec" : "^1.5.5"
}
} ,
"node_modules/magicast" : {
"version" : "0.3.5" ,
"resolved" : "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz" ,
"integrity" : "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/parser" : "^7.25.4" ,
"@babel/types" : "^7.25.4" ,
"source-map-js" : "^1.2.0"
}
} ,
"node_modules/make-dir" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" ,
"integrity" : "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"semver" : "^7.5.3"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/make-dir/node_modules/semver" : {
"version" : "7.7.4" ,
"resolved" : "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz" ,
"integrity" : "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" ,
"dev" : true ,
"license" : "ISC" ,
"bin" : {
"semver" : "bin/semver.js"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/markdown-table" : {
"version" : "3.0.4" ,
"resolved" : "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz" ,
"integrity" : "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/mdast-util-find-and-replace" : {
"version" : "3.0.2" ,
"resolved" : "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz" ,
"integrity" : "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"escape-string-regexp" : "^5.0.0" ,
"unist-util-is" : "^6.0.0" ,
"unist-util-visit-parents" : "^6.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp" : {
"version" : "5.0.0" ,
"resolved" : "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" ,
"integrity" : "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/mdast-util-from-markdown" : {
"version" : "2.0.3" ,
"resolved" : "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz" ,
"integrity" : "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"@types/unist" : "^3.0.0" ,
"decode-named-character-reference" : "^1.0.0" ,
"devlop" : "^1.0.0" ,
"mdast-util-to-string" : "^4.0.0" ,
"micromark" : "^4.0.0" ,
"micromark-util-decode-numeric-character-reference" : "^2.0.0" ,
"micromark-util-decode-string" : "^2.0.0" ,
"micromark-util-normalize-identifier" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0" ,
"unist-util-stringify-position" : "^4.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-gfm" : {
"version" : "3.1.0" ,
"resolved" : "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz" ,
"integrity" : "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==" ,
"license" : "MIT" ,
"dependencies" : {
"mdast-util-from-markdown" : "^2.0.0" ,
"mdast-util-gfm-autolink-literal" : "^2.0.0" ,
"mdast-util-gfm-footnote" : "^2.0.0" ,
"mdast-util-gfm-strikethrough" : "^2.0.0" ,
"mdast-util-gfm-table" : "^2.0.0" ,
"mdast-util-gfm-task-list-item" : "^2.0.0" ,
"mdast-util-to-markdown" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-gfm-autolink-literal" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz" ,
"integrity" : "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"ccount" : "^2.0.0" ,
"devlop" : "^1.0.0" ,
"mdast-util-find-and-replace" : "^3.0.0" ,
"micromark-util-character" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-gfm-footnote" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz" ,
"integrity" : "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"devlop" : "^1.1.0" ,
"mdast-util-from-markdown" : "^2.0.0" ,
"mdast-util-to-markdown" : "^2.0.0" ,
"micromark-util-normalize-identifier" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-gfm-strikethrough" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz" ,
"integrity" : "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"mdast-util-from-markdown" : "^2.0.0" ,
"mdast-util-to-markdown" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-gfm-table" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz" ,
"integrity" : "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"devlop" : "^1.0.0" ,
"markdown-table" : "^3.0.0" ,
"mdast-util-from-markdown" : "^2.0.0" ,
"mdast-util-to-markdown" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-gfm-task-list-item" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz" ,
"integrity" : "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"devlop" : "^1.0.0" ,
"mdast-util-from-markdown" : "^2.0.0" ,
"mdast-util-to-markdown" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-mdx-expression" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz" ,
"integrity" : "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/estree-jsx" : "^1.0.0" ,
"@types/hast" : "^3.0.0" ,
"@types/mdast" : "^4.0.0" ,
"devlop" : "^1.0.0" ,
"mdast-util-from-markdown" : "^2.0.0" ,
"mdast-util-to-markdown" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-mdx-jsx" : {
"version" : "3.2.0" ,
"resolved" : "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz" ,
"integrity" : "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/estree-jsx" : "^1.0.0" ,
"@types/hast" : "^3.0.0" ,
"@types/mdast" : "^4.0.0" ,
"@types/unist" : "^3.0.0" ,
"ccount" : "^2.0.0" ,
"devlop" : "^1.1.0" ,
"mdast-util-from-markdown" : "^2.0.0" ,
"mdast-util-to-markdown" : "^2.0.0" ,
"parse-entities" : "^4.0.0" ,
"stringify-entities" : "^4.0.0" ,
"unist-util-stringify-position" : "^4.0.0" ,
"vfile-message" : "^4.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-mdxjs-esm" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz" ,
"integrity" : "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/estree-jsx" : "^1.0.0" ,
"@types/hast" : "^3.0.0" ,
"@types/mdast" : "^4.0.0" ,
"devlop" : "^1.0.0" ,
"mdast-util-from-markdown" : "^2.0.0" ,
"mdast-util-to-markdown" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-phrasing" : {
"version" : "4.1.0" ,
"resolved" : "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz" ,
"integrity" : "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"unist-util-is" : "^6.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-to-hast" : {
"version" : "13.2.1" ,
"resolved" : "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz" ,
"integrity" : "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/hast" : "^3.0.0" ,
"@types/mdast" : "^4.0.0" ,
"@ungap/structured-clone" : "^1.0.0" ,
"devlop" : "^1.0.0" ,
"micromark-util-sanitize-uri" : "^2.0.0" ,
"trim-lines" : "^3.0.0" ,
"unist-util-position" : "^5.0.0" ,
"unist-util-visit" : "^5.0.0" ,
"vfile" : "^6.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-to-markdown" : {
"version" : "2.1.2" ,
"resolved" : "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz" ,
"integrity" : "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"@types/unist" : "^3.0.0" ,
"longest-streak" : "^3.0.0" ,
"mdast-util-phrasing" : "^4.0.0" ,
"mdast-util-to-string" : "^4.0.0" ,
"micromark-util-classify-character" : "^2.0.0" ,
"micromark-util-decode-string" : "^2.0.0" ,
"unist-util-visit" : "^5.0.0" ,
"zwitch" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/mdast-util-to-string" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz" ,
"integrity" : "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/memoize-one" : {
"version" : "6.0.0" ,
"resolved" : "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz" ,
"integrity" : "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" ,
"license" : "MIT"
} ,
"node_modules/merge2" : {
"version" : "1.4.1" ,
"resolved" : "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" ,
"integrity" : "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 8"
}
} ,
"node_modules/micromark" : {
"version" : "4.0.2" ,
"resolved" : "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz" ,
"integrity" : "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"@types/debug" : "^4.0.0" ,
"debug" : "^4.0.0" ,
"decode-named-character-reference" : "^1.0.0" ,
"devlop" : "^1.0.0" ,
"micromark-core-commonmark" : "^2.0.0" ,
"micromark-factory-space" : "^2.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-chunked" : "^2.0.0" ,
"micromark-util-combine-extensions" : "^2.0.0" ,
"micromark-util-decode-numeric-character-reference" : "^2.0.0" ,
"micromark-util-encode" : "^2.0.0" ,
"micromark-util-normalize-identifier" : "^2.0.0" ,
"micromark-util-resolve-all" : "^2.0.0" ,
"micromark-util-sanitize-uri" : "^2.0.0" ,
"micromark-util-subtokenize" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-core-commonmark" : {
"version" : "2.0.3" ,
"resolved" : "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz" ,
"integrity" : "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"decode-named-character-reference" : "^1.0.0" ,
"devlop" : "^1.0.0" ,
"micromark-factory-destination" : "^2.0.0" ,
"micromark-factory-label" : "^2.0.0" ,
"micromark-factory-space" : "^2.0.0" ,
"micromark-factory-title" : "^2.0.0" ,
"micromark-factory-whitespace" : "^2.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-chunked" : "^2.0.0" ,
"micromark-util-classify-character" : "^2.0.0" ,
"micromark-util-html-tag-name" : "^2.0.0" ,
"micromark-util-normalize-identifier" : "^2.0.0" ,
"micromark-util-resolve-all" : "^2.0.0" ,
"micromark-util-subtokenize" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-extension-gfm" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz" ,
"integrity" : "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==" ,
"license" : "MIT" ,
"dependencies" : {
"micromark-extension-gfm-autolink-literal" : "^2.0.0" ,
"micromark-extension-gfm-footnote" : "^2.0.0" ,
"micromark-extension-gfm-strikethrough" : "^2.0.0" ,
"micromark-extension-gfm-table" : "^2.0.0" ,
"micromark-extension-gfm-tagfilter" : "^2.0.0" ,
"micromark-extension-gfm-task-list-item" : "^2.0.0" ,
"micromark-util-combine-extensions" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/micromark-extension-gfm-autolink-literal" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz" ,
"integrity" : "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==" ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-character" : "^2.0.0" ,
"micromark-util-sanitize-uri" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/micromark-extension-gfm-footnote" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz" ,
"integrity" : "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==" ,
"license" : "MIT" ,
"dependencies" : {
"devlop" : "^1.0.0" ,
"micromark-core-commonmark" : "^2.0.0" ,
"micromark-factory-space" : "^2.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-normalize-identifier" : "^2.0.0" ,
"micromark-util-sanitize-uri" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/micromark-extension-gfm-strikethrough" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz" ,
"integrity" : "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==" ,
"license" : "MIT" ,
"dependencies" : {
"devlop" : "^1.0.0" ,
"micromark-util-chunked" : "^2.0.0" ,
"micromark-util-classify-character" : "^2.0.0" ,
"micromark-util-resolve-all" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/micromark-extension-gfm-table" : {
"version" : "2.1.1" ,
"resolved" : "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz" ,
"integrity" : "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==" ,
"license" : "MIT" ,
"dependencies" : {
"devlop" : "^1.0.0" ,
"micromark-factory-space" : "^2.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/micromark-extension-gfm-tagfilter" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz" ,
"integrity" : "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==" ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-types" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/micromark-extension-gfm-task-list-item" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz" ,
"integrity" : "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==" ,
"license" : "MIT" ,
"dependencies" : {
"devlop" : "^1.0.0" ,
"micromark-factory-space" : "^2.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/micromark-factory-destination" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz" ,
"integrity" : "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-character" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-factory-label" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz" ,
"integrity" : "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"devlop" : "^1.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-factory-space" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz" ,
"integrity" : "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-character" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-factory-title" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz" ,
"integrity" : "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-factory-space" : "^2.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-factory-whitespace" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz" ,
"integrity" : "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-factory-space" : "^2.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-util-character" : {
"version" : "2.1.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz" ,
"integrity" : "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-util-chunked" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz" ,
"integrity" : "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-symbol" : "^2.0.0"
}
} ,
"node_modules/micromark-util-classify-character" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz" ,
"integrity" : "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-character" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-util-combine-extensions" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz" ,
"integrity" : "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-chunked" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-util-decode-numeric-character-reference" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz" ,
"integrity" : "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-symbol" : "^2.0.0"
}
} ,
"node_modules/micromark-util-decode-string" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz" ,
"integrity" : "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"decode-named-character-reference" : "^1.0.0" ,
"micromark-util-character" : "^2.0.0" ,
"micromark-util-decode-numeric-character-reference" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0"
}
} ,
"node_modules/micromark-util-encode" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz" ,
"integrity" : "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT"
} ,
"node_modules/micromark-util-html-tag-name" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz" ,
"integrity" : "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT"
} ,
"node_modules/micromark-util-normalize-identifier" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz" ,
"integrity" : "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-symbol" : "^2.0.0"
}
} ,
"node_modules/micromark-util-resolve-all" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz" ,
"integrity" : "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-util-sanitize-uri" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz" ,
"integrity" : "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"micromark-util-character" : "^2.0.0" ,
"micromark-util-encode" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0"
}
} ,
"node_modules/micromark-util-subtokenize" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz" ,
"integrity" : "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"devlop" : "^1.0.0" ,
"micromark-util-chunked" : "^2.0.0" ,
"micromark-util-symbol" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0"
}
} ,
"node_modules/micromark-util-symbol" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz" ,
"integrity" : "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT"
} ,
"node_modules/micromark-util-types" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz" ,
"integrity" : "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==" ,
"funding" : [
{
"type" : "GitHub Sponsors" ,
"url" : "https://github.com/sponsors/unifiedjs"
} ,
{
"type" : "OpenCollective" ,
"url" : "https://opencollective.com/unified"
}
] ,
"license" : "MIT"
} ,
"node_modules/micromatch" : {
"version" : "4.0.8" ,
"resolved" : "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" ,
"integrity" : "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==" ,
"license" : "MIT" ,
"dependencies" : {
"braces" : "^3.0.3" ,
"picomatch" : "^2.3.1"
} ,
"engines" : {
"node" : ">=8.6"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/micromatch/node_modules/picomatch" : {
"version" : "2.3.2" ,
"resolved" : "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz" ,
"integrity" : "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8.6"
} ,
"funding" : {
"url" : "https://github.com/sponsors/jonschlinkert"
}
} ,
"node_modules/min-indent" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" ,
"integrity" : "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=4"
}
} ,
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
"node_modules/minimatch" : {
"version" : "9.0.9" ,
"resolved" : "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz" ,
"integrity" : "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"brace-expansion" : "^2.0.2"
} ,
"engines" : {
"node" : ">=16 || 14 >=14.17"
} ,
"funding" : {
"url" : "https://github.com/sponsors/isaacs"
}
} ,
"node_modules/minipass" : {
"version" : "7.1.3" ,
"resolved" : "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz" ,
"integrity" : "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==" ,
"dev" : true ,
"license" : "BlueOak-1.0.0" ,
"engines" : {
"node" : ">=16 || 14 >=14.17"
}
} ,
"node_modules/mitt" : {
"version" : "3.0.1" ,
"resolved" : "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz" ,
"integrity" : "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/mocha" : {
"version" : "10.8.2" ,
"resolved" : "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz" ,
"integrity" : "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-colors" : "^4.1.3" ,
"browser-stdout" : "^1.3.1" ,
"chokidar" : "^3.5.3" ,
"debug" : "^4.3.5" ,
"diff" : "^5.2.0" ,
"escape-string-regexp" : "^4.0.0" ,
"find-up" : "^5.0.0" ,
"glob" : "^8.1.0" ,
"he" : "^1.2.0" ,
"js-yaml" : "^4.1.0" ,
"log-symbols" : "^4.1.0" ,
"minimatch" : "^5.1.6" ,
"ms" : "^2.1.3" ,
"serialize-javascript" : "^6.0.2" ,
"strip-json-comments" : "^3.1.1" ,
"supports-color" : "^8.1.1" ,
"workerpool" : "^6.5.1" ,
"yargs" : "^16.2.0" ,
"yargs-parser" : "^20.2.9" ,
"yargs-unparser" : "^2.0.0"
} ,
"bin" : {
"_mocha" : "bin/_mocha" ,
"mocha" : "bin/mocha.js"
} ,
"engines" : {
"node" : ">= 14.0.0"
}
} ,
"node_modules/mocha/node_modules/ansi-regex" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" ,
"integrity" : "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/mocha/node_modules/chokidar" : {
"version" : "3.6.0" ,
"resolved" : "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" ,
"integrity" : "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"anymatch" : "~3.1.2" ,
"braces" : "~3.0.2" ,
"glob-parent" : "~5.1.2" ,
"is-binary-path" : "~2.1.0" ,
"is-glob" : "~4.0.1" ,
"normalize-path" : "~3.0.0" ,
"readdirp" : "~3.6.0"
} ,
"engines" : {
"node" : ">= 8.10.0"
} ,
"funding" : {
"url" : "https://paulmillr.com/funding/"
} ,
"optionalDependencies" : {
"fsevents" : "~2.3.2"
}
} ,
"node_modules/mocha/node_modules/cliui" : {
"version" : "7.0.4" ,
"resolved" : "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" ,
"integrity" : "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"string-width" : "^4.2.0" ,
"strip-ansi" : "^6.0.0" ,
"wrap-ansi" : "^7.0.0"
}
} ,
"node_modules/mocha/node_modules/emoji-regex" : {
"version" : "8.0.0" ,
"resolved" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" ,
"integrity" : "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/mocha/node_modules/glob" : {
"version" : "8.1.0" ,
"resolved" : "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" ,
"integrity" : "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==" ,
"deprecated" : "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"fs.realpath" : "^1.0.0" ,
"inflight" : "^1.0.4" ,
"inherits" : "2" ,
"minimatch" : "^5.0.1" ,
"once" : "^1.3.0"
} ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/sponsors/isaacs"
}
} ,
"node_modules/mocha/node_modules/glob-parent" : {
"version" : "5.1.2" ,
"resolved" : "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" ,
"integrity" : "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"is-glob" : "^4.0.1"
} ,
"engines" : {
"node" : ">= 6"
}
} ,
"node_modules/mocha/node_modules/minimatch" : {
"version" : "5.1.9" ,
"resolved" : "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz" ,
"integrity" : "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"brace-expansion" : "^2.0.1"
} ,
"engines" : {
"node" : ">=10"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/mocha/node_modules/picomatch" : {
"version" : "2.3.2" ,
"resolved" : "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz" ,
"integrity" : "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8.6"
} ,
"funding" : {
"url" : "https://github.com/sponsors/jonschlinkert"
}
} ,
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
"node_modules/mocha/node_modules/readdirp" : {
"version" : "3.6.0" ,
"resolved" : "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" ,
"integrity" : "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"picomatch" : "^2.2.1"
} ,
"engines" : {
"node" : ">=8.10.0"
}
} ,
"node_modules/mocha/node_modules/string-width" : {
"version" : "4.2.3" ,
"resolved" : "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" ,
"integrity" : "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"emoji-regex" : "^8.0.0" ,
"is-fullwidth-code-point" : "^3.0.0" ,
"strip-ansi" : "^6.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/mocha/node_modules/strip-ansi" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" ,
"integrity" : "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-regex" : "^5.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/mocha/node_modules/supports-color" : {
"version" : "8.1.1" ,
"resolved" : "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" ,
"integrity" : "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"has-flag" : "^4.0.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/supports-color?sponsor=1"
}
} ,
"node_modules/mocha/node_modules/wrap-ansi" : {
"version" : "7.0.0" ,
"resolved" : "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" ,
"integrity" : "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-styles" : "^4.0.0" ,
"string-width" : "^4.1.0" ,
"strip-ansi" : "^6.0.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/wrap-ansi?sponsor=1"
}
} ,
"node_modules/mocha/node_modules/yargs" : {
"version" : "16.2.0" ,
"resolved" : "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" ,
"integrity" : "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"cliui" : "^7.0.2" ,
"escalade" : "^3.1.1" ,
"get-caller-file" : "^2.0.5" ,
"require-directory" : "^2.1.1" ,
"string-width" : "^4.2.0" ,
"y18n" : "^5.0.5" ,
"yargs-parser" : "^20.2.2"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/modern-tar" : {
"version" : "0.7.5" ,
"resolved" : "https://registry.npmjs.org/modern-tar/-/modern-tar-0.7.5.tgz" ,
"integrity" : "sha512-YTefgdpKKFgoTDbEUqXqgUJct2OG6/4hs4XWLsxcHkDLj/x/V8WmKIRppPnXP5feQ7d1vuYWSp3qKkxfwaFaxA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18.0.0"
}
} ,
"node_modules/ms" : {
"version" : "2.1.3" ,
"resolved" : "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" ,
"integrity" : "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" ,
"license" : "MIT"
} ,
"node_modules/mute-stream" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz" ,
"integrity" : "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : "^18.17.0 || >=20.5.0"
}
} ,
"node_modules/mz" : {
"version" : "2.7.0" ,
"resolved" : "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" ,
"integrity" : "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==" ,
"license" : "MIT" ,
"dependencies" : {
"any-promise" : "^1.0.0" ,
"object-assign" : "^4.0.1" ,
"thenify-all" : "^1.0.0"
}
} ,
"node_modules/nanoid" : {
"version" : "3.3.11" ,
"resolved" : "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" ,
"integrity" : "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "MIT" ,
"bin" : {
"nanoid" : "bin/nanoid.cjs"
} ,
"engines" : {
"node" : "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
} ,
"node_modules/netmask" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" ,
"integrity" : "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 0.4.0"
}
} ,
"node_modules/node-releases" : {
"version" : "2.0.36" ,
"resolved" : "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz" ,
"integrity" : "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/normalize-package-data" : {
"version" : "7.0.1" ,
"resolved" : "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.1.tgz" ,
"integrity" : "sha512-linxNAT6M0ebEYZOx2tO6vBEFsVgnPpv+AVjk0wJHfaUIbq31Jm3T6vvZaarnOeWDh8ShnwXuaAyM7WT3RzErA==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"hosted-git-info" : "^8.0.0" ,
"semver" : "^7.3.5" ,
"validate-npm-package-license" : "^3.0.4"
} ,
"engines" : {
"node" : "^18.17.0 || >=20.5.0"
}
} ,
"node_modules/normalize-package-data/node_modules/semver" : {
"version" : "7.7.4" ,
"resolved" : "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz" ,
"integrity" : "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" ,
"dev" : true ,
"license" : "ISC" ,
"bin" : {
"semver" : "bin/semver.js"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/normalize-path" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" ,
"integrity" : "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/npm-run-path" : {
"version" : "6.0.0" ,
"resolved" : "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz" ,
"integrity" : "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"path-key" : "^4.0.0" ,
"unicorn-magic" : "^0.3.0"
} ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/npm-run-path/node_modules/path-key" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" ,
"integrity" : "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/nth-check" : {
"version" : "2.1.1" ,
"resolved" : "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" ,
"integrity" : "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"boolbase" : "^1.0.0"
} ,
"funding" : {
"url" : "https://github.com/fb55/nth-check?sponsor=1"
}
} ,
"node_modules/nwsapi" : {
"version" : "2.2.23" ,
"resolved" : "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz" ,
"integrity" : "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/object-assign" : {
"version" : "4.1.1" ,
"resolved" : "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" ,
"integrity" : "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/object-hash" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" ,
"integrity" : "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 6"
}
} ,
"node_modules/once" : {
"version" : "1.4.0" ,
"resolved" : "https://registry.npmjs.org/once/-/once-1.4.0.tgz" ,
"integrity" : "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"wrappy" : "1"
}
} ,
"node_modules/p-limit" : {
"version" : "3.1.0" ,
"resolved" : "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" ,
"integrity" : "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"yocto-queue" : "^0.1.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/p-locate" : {
"version" : "5.0.0" ,
"resolved" : "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" ,
"integrity" : "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"p-limit" : "^3.0.2"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/pac-proxy-agent" : {
"version" : "7.2.0" ,
"resolved" : "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz" ,
"integrity" : "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@tootallnate/quickjs-emscripten" : "^0.23.0" ,
"agent-base" : "^7.1.2" ,
"debug" : "^4.3.4" ,
"get-uri" : "^6.0.1" ,
"http-proxy-agent" : "^7.0.0" ,
"https-proxy-agent" : "^7.0.6" ,
"pac-resolver" : "^7.0.1" ,
"socks-proxy-agent" : "^8.0.5"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/pac-resolver" : {
"version" : "7.0.1" ,
"resolved" : "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz" ,
"integrity" : "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"degenerator" : "^5.0.0" ,
"netmask" : "^2.0.2"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/package-json-from-dist" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz" ,
"integrity" : "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" ,
"dev" : true ,
"license" : "BlueOak-1.0.0"
} ,
"node_modules/pako" : {
"version" : "1.0.11" ,
"resolved" : "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" ,
"integrity" : "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" ,
"dev" : true ,
"license" : "(MIT AND Zlib)"
} ,
"node_modules/parent-module" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" ,
"integrity" : "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" ,
"license" : "MIT" ,
"dependencies" : {
"callsites" : "^3.0.0"
} ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/parse-entities" : {
"version" : "4.0.2" ,
"resolved" : "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz" ,
"integrity" : "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^2.0.0" ,
"character-entities-legacy" : "^3.0.0" ,
"character-reference-invalid" : "^2.0.0" ,
"decode-named-character-reference" : "^1.0.0" ,
"is-alphanumerical" : "^2.0.0" ,
"is-decimal" : "^2.0.0" ,
"is-hexadecimal" : "^2.0.0"
} ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/parse-entities/node_modules/@types/unist" : {
"version" : "2.0.11" ,
"resolved" : "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" ,
"integrity" : "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" ,
"license" : "MIT"
} ,
"node_modules/parse-json" : {
"version" : "5.2.0" ,
"resolved" : "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" ,
"integrity" : "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" ,
"license" : "MIT" ,
"dependencies" : {
"@babel/code-frame" : "^7.0.0" ,
"error-ex" : "^1.3.1" ,
"json-parse-even-better-errors" : "^2.3.0" ,
"lines-and-columns" : "^1.1.6"
} ,
"engines" : {
"node" : ">=8"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/parse-ms" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz" ,
"integrity" : "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/parse5" : {
"version" : "7.3.0" ,
"resolved" : "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz" ,
"integrity" : "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"entities" : "^6.0.0"
} ,
"funding" : {
"url" : "https://github.com/inikulin/parse5?sponsor=1"
}
} ,
"node_modules/parse5-htmlparser2-tree-adapter" : {
"version" : "7.1.0" ,
"resolved" : "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz" ,
"integrity" : "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"domhandler" : "^5.0.3" ,
"parse5" : "^7.0.0"
} ,
"funding" : {
"url" : "https://github.com/inikulin/parse5?sponsor=1"
}
} ,
"node_modules/parse5-parser-stream" : {
"version" : "7.1.2" ,
"resolved" : "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz" ,
"integrity" : "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"parse5" : "^7.0.0"
} ,
"funding" : {
"url" : "https://github.com/inikulin/parse5?sponsor=1"
}
} ,
"node_modules/path-exists" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" ,
"integrity" : "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/path-expression-matcher" : {
"version" : "1.1.3" ,
"resolved" : "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.1.3.tgz" ,
"integrity" : "sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/NaturalIntelligence"
}
] ,
"license" : "MIT" ,
"engines" : {
"node" : ">=14.0.0"
}
} ,
"node_modules/path-key" : {
"version" : "3.1.1" ,
"resolved" : "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" ,
"integrity" : "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/path-parse" : {
"version" : "1.0.7" ,
"resolved" : "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" ,
"integrity" : "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" ,
"license" : "MIT"
} ,
"node_modules/path-scurry" : {
"version" : "1.11.1" ,
"resolved" : "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" ,
"integrity" : "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==" ,
"dev" : true ,
"license" : "BlueOak-1.0.0" ,
"dependencies" : {
"lru-cache" : "^10.2.0" ,
"minipass" : "^5.0.0 || ^6.0.2 || ^7.0.0"
} ,
"engines" : {
"node" : ">=16 || 14 >=14.18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/isaacs"
}
} ,
"node_modules/path-scurry/node_modules/lru-cache" : {
"version" : "10.4.3" ,
"resolved" : "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" ,
"integrity" : "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/path-type" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" ,
"integrity" : "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/pathe" : {
"version" : "1.1.2" ,
"resolved" : "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz" ,
"integrity" : "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/pathval" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz" ,
"integrity" : "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 14.16"
}
} ,
"node_modules/pend" : {
"version" : "1.2.0" ,
"resolved" : "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" ,
"integrity" : "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/picocolors" : {
"version" : "1.1.1" ,
"resolved" : "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" ,
"integrity" : "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" ,
"license" : "ISC"
} ,
"node_modules/picomatch" : {
2026-04-03 13:05:58 +00:00
"version" : "4.0.4" ,
"resolved" : "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz" ,
"integrity" : "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==" ,
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
"license" : "MIT" ,
"engines" : {
2026-04-03 13:05:58 +00:00
"node" : ">=12"
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
} ,
"funding" : {
"url" : "https://github.com/sponsors/jonschlinkert"
}
} ,
"node_modules/pify" : {
"version" : "2.3.0" ,
"resolved" : "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" ,
"integrity" : "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/pirates" : {
"version" : "4.0.7" ,
"resolved" : "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz" ,
"integrity" : "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 6"
}
} ,
"node_modules/postcss" : {
"version" : "8.5.8" ,
"resolved" : "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz" ,
"integrity" : "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==" ,
"funding" : [
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/postcss/"
} ,
{
"type" : "tidelift" ,
"url" : "https://tidelift.com/funding/github/npm/postcss"
} ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"nanoid" : "^3.3.11" ,
"picocolors" : "^1.1.1" ,
"source-map-js" : "^1.2.1"
} ,
"engines" : {
"node" : "^10 || ^12 || >=14"
}
} ,
"node_modules/postcss-import" : {
"version" : "15.1.0" ,
"resolved" : "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" ,
"integrity" : "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==" ,
"license" : "MIT" ,
"dependencies" : {
"postcss-value-parser" : "^4.0.0" ,
"read-cache" : "^1.0.0" ,
"resolve" : "^1.1.7"
} ,
"engines" : {
"node" : ">=14.0.0"
} ,
"peerDependencies" : {
"postcss" : "^8.0.0"
}
} ,
"node_modules/postcss-js" : {
"version" : "4.1.0" ,
"resolved" : "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz" ,
"integrity" : "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==" ,
"funding" : [
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/postcss/"
} ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"camelcase-css" : "^2.0.1"
} ,
"engines" : {
"node" : "^12 || ^14 || >= 16"
} ,
"peerDependencies" : {
"postcss" : "^8.4.21"
}
} ,
"node_modules/postcss-load-config" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz" ,
"integrity" : "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==" ,
"funding" : [
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/postcss/"
} ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"lilconfig" : "^3.1.1"
} ,
"engines" : {
"node" : ">= 18"
} ,
"peerDependencies" : {
"jiti" : ">=1.21.0" ,
"postcss" : ">=8.0.9" ,
"tsx" : "^4.8.1" ,
"yaml" : "^2.4.2"
} ,
"peerDependenciesMeta" : {
"jiti" : {
"optional" : true
} ,
"postcss" : {
"optional" : true
} ,
"tsx" : {
"optional" : true
} ,
"yaml" : {
"optional" : true
}
}
} ,
"node_modules/postcss-nested" : {
"version" : "6.2.0" ,
"resolved" : "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz" ,
"integrity" : "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==" ,
"funding" : [
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/postcss/"
} ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"postcss-selector-parser" : "^6.1.1"
} ,
"engines" : {
"node" : ">=12.0"
} ,
"peerDependencies" : {
"postcss" : "^8.2.14"
}
} ,
"node_modules/postcss-selector-parser" : {
"version" : "6.1.2" ,
"resolved" : "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz" ,
"integrity" : "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==" ,
"license" : "MIT" ,
"dependencies" : {
"cssesc" : "^3.0.0" ,
"util-deprecate" : "^1.0.2"
} ,
"engines" : {
"node" : ">=4"
}
} ,
"node_modules/postcss-value-parser" : {
"version" : "4.2.0" ,
"resolved" : "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" ,
"integrity" : "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" ,
"license" : "MIT"
} ,
2026-04-03 13:05:58 +00:00
"node_modules/pretty-format" : {
"version" : "27.5.1" ,
"resolved" : "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" ,
"integrity" : "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"ansi-regex" : "^5.0.1" ,
"ansi-styles" : "^5.0.0" ,
"react-is" : "^17.0.1"
} ,
"engines" : {
"node" : "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
} ,
"node_modules/pretty-format/node_modules/ansi-regex" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" ,
"integrity" : "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/pretty-format/node_modules/ansi-styles" : {
"version" : "5.2.0" ,
"resolved" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" ,
"integrity" : "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/ansi-styles?sponsor=1"
}
} ,
"node_modules/pretty-format/node_modules/react-is" : {
"version" : "17.0.2" ,
"resolved" : "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" ,
"integrity" : "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true
} ,
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
"node_modules/pretty-ms" : {
"version" : "9.3.0" ,
"resolved" : "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz" ,
"integrity" : "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"parse-ms" : "^4.0.0"
} ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/process" : {
"version" : "0.11.10" ,
"resolved" : "https://registry.npmjs.org/process/-/process-0.11.10.tgz" ,
"integrity" : "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 0.6.0"
}
} ,
"node_modules/process-nextick-args" : {
"version" : "2.0.1" ,
"resolved" : "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" ,
"integrity" : "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/progress" : {
"version" : "2.0.3" ,
"resolved" : "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" ,
"integrity" : "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.4.0"
}
} ,
"node_modules/prop-types" : {
"version" : "15.8.1" ,
"resolved" : "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" ,
"integrity" : "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" ,
"license" : "MIT" ,
"dependencies" : {
"loose-envify" : "^1.4.0" ,
"object-assign" : "^4.1.1" ,
"react-is" : "^16.13.1"
}
} ,
"node_modules/property-information" : {
"version" : "7.1.0" ,
"resolved" : "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz" ,
"integrity" : "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/proxy-agent" : {
"version" : "6.5.0" ,
"resolved" : "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz" ,
"integrity" : "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"agent-base" : "^7.1.2" ,
"debug" : "^4.3.4" ,
"http-proxy-agent" : "^7.0.1" ,
"https-proxy-agent" : "^7.0.6" ,
"lru-cache" : "^7.14.1" ,
"pac-proxy-agent" : "^7.1.0" ,
"proxy-from-env" : "^1.1.0" ,
"socks-proxy-agent" : "^8.0.5"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/proxy-agent/node_modules/lru-cache" : {
"version" : "7.18.3" ,
"resolved" : "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" ,
"integrity" : "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/proxy-from-env" : {
"version" : "1.1.0" ,
"resolved" : "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" ,
"integrity" : "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/pump" : {
"version" : "3.0.4" ,
"resolved" : "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz" ,
"integrity" : "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"end-of-stream" : "^1.1.0" ,
"once" : "^1.3.1"
}
} ,
"node_modules/punycode" : {
"version" : "2.3.1" ,
"resolved" : "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" ,
"integrity" : "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=6"
}
} ,
"node_modules/query-selector-shadow-dom" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.1.tgz" ,
"integrity" : "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/queue-microtask" : {
"version" : "1.2.3" ,
"resolved" : "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" ,
"integrity" : "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/feross"
} ,
{
"type" : "patreon" ,
"url" : "https://www.patreon.com/feross"
} ,
{
"type" : "consulting" ,
"url" : "https://feross.org/support"
}
] ,
"license" : "MIT"
} ,
"node_modules/randombytes" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" ,
"integrity" : "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"safe-buffer" : "^5.1.0"
}
} ,
"node_modules/react" : {
"version" : "18.3.1" ,
"resolved" : "https://registry.npmjs.org/react/-/react-18.3.1.tgz" ,
"integrity" : "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==" ,
"license" : "MIT" ,
"dependencies" : {
"loose-envify" : "^1.1.0"
} ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/react-diff-viewer-continued" : {
"version" : "3.4.0" ,
"resolved" : "https://registry.npmjs.org/react-diff-viewer-continued/-/react-diff-viewer-continued-3.4.0.tgz" ,
"integrity" : "sha512-kMZmUyb3Pv5L9vUtCfIGYsdOHs8mUojblGy1U1Sm0D7FhAOEsH9QhnngEIRo5hXWIPNGupNRJls1TJ6Eqx84eg==" ,
"license" : "MIT" ,
"dependencies" : {
"@emotion/css" : "^11.11.2" ,
"classnames" : "^2.3.2" ,
"diff" : "^5.1.0" ,
"memoize-one" : "^6.0.0" ,
"prop-types" : "^15.8.1"
} ,
"engines" : {
"node" : ">= 8"
} ,
"peerDependencies" : {
"react" : "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" ,
"react-dom" : "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
}
} ,
"node_modules/react-dom" : {
"version" : "18.3.1" ,
"resolved" : "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" ,
"integrity" : "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==" ,
"license" : "MIT" ,
"dependencies" : {
"loose-envify" : "^1.1.0" ,
"scheduler" : "^0.23.2"
} ,
"peerDependencies" : {
"react" : "^18.3.1"
}
} ,
"node_modules/react-is" : {
"version" : "16.13.1" ,
"resolved" : "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" ,
"integrity" : "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" ,
"license" : "MIT"
} ,
"node_modules/react-markdown" : {
"version" : "9.1.0" ,
"resolved" : "https://registry.npmjs.org/react-markdown/-/react-markdown-9.1.0.tgz" ,
"integrity" : "sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/hast" : "^3.0.0" ,
"@types/mdast" : "^4.0.0" ,
"devlop" : "^1.0.0" ,
"hast-util-to-jsx-runtime" : "^2.0.0" ,
"html-url-attributes" : "^3.0.0" ,
"mdast-util-to-hast" : "^13.0.0" ,
"remark-parse" : "^11.0.0" ,
"remark-rehype" : "^11.0.0" ,
"unified" : "^11.0.0" ,
"unist-util-visit" : "^5.0.0" ,
"vfile" : "^6.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
} ,
"peerDependencies" : {
"@types/react" : ">=18" ,
"react" : ">=18"
}
} ,
"node_modules/react-refresh" : {
"version" : "0.17.0" ,
"resolved" : "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz" ,
"integrity" : "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/react-router" : {
"version" : "6.30.3" ,
"resolved" : "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz" ,
"integrity" : "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==" ,
"license" : "MIT" ,
"dependencies" : {
"@remix-run/router" : "1.23.2"
} ,
"engines" : {
"node" : ">=14.0.0"
} ,
"peerDependencies" : {
"react" : ">=16.8"
}
} ,
"node_modules/react-router-dom" : {
"version" : "6.30.3" ,
"resolved" : "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz" ,
"integrity" : "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==" ,
"license" : "MIT" ,
"dependencies" : {
"@remix-run/router" : "1.23.2" ,
"react-router" : "6.30.3"
} ,
"engines" : {
"node" : ">=14.0.0"
} ,
"peerDependencies" : {
"react" : ">=16.8" ,
"react-dom" : ">=16.8"
}
} ,
"node_modules/read-cache" : {
"version" : "1.0.0" ,
"resolved" : "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" ,
"integrity" : "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==" ,
"license" : "MIT" ,
"dependencies" : {
"pify" : "^2.3.0"
}
} ,
"node_modules/read-pkg" : {
"version" : "8.1.0" ,
"resolved" : "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz" ,
"integrity" : "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/normalize-package-data" : "^2.4.1" ,
"normalize-package-data" : "^6.0.0" ,
"parse-json" : "^7.0.0" ,
"type-fest" : "^4.2.0"
} ,
"engines" : {
"node" : ">=16"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg-up" : {
"version" : "10.1.0" ,
"resolved" : "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz" ,
"integrity" : "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"find-up" : "^6.3.0" ,
"read-pkg" : "^8.1.0" ,
"type-fest" : "^4.2.0"
} ,
"engines" : {
"node" : ">=16"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg-up/node_modules/find-up" : {
"version" : "6.3.0" ,
"resolved" : "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz" ,
"integrity" : "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"locate-path" : "^7.1.0" ,
"path-exists" : "^5.0.0"
} ,
"engines" : {
"node" : "^12.20.0 || ^14.13.1 || >=16.0.0"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg-up/node_modules/locate-path" : {
"version" : "7.2.0" ,
"resolved" : "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz" ,
"integrity" : "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"p-locate" : "^6.0.0"
} ,
"engines" : {
"node" : "^12.20.0 || ^14.13.1 || >=16.0.0"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg-up/node_modules/p-limit" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" ,
"integrity" : "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"yocto-queue" : "^1.0.0"
} ,
"engines" : {
"node" : "^12.20.0 || ^14.13.1 || >=16.0.0"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg-up/node_modules/p-locate" : {
"version" : "6.0.0" ,
"resolved" : "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz" ,
"integrity" : "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"p-limit" : "^4.0.0"
} ,
"engines" : {
"node" : "^12.20.0 || ^14.13.1 || >=16.0.0"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg-up/node_modules/path-exists" : {
"version" : "5.0.0" ,
"resolved" : "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz" ,
"integrity" : "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "^12.20.0 || ^14.13.1 || >=16.0.0"
}
} ,
"node_modules/read-pkg-up/node_modules/yocto-queue" : {
"version" : "1.2.2" ,
"resolved" : "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz" ,
"integrity" : "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=12.20"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg/node_modules/hosted-git-info" : {
"version" : "7.0.2" ,
"resolved" : "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz" ,
"integrity" : "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"lru-cache" : "^10.0.1"
} ,
"engines" : {
"node" : "^16.14.0 || >=18.0.0"
}
} ,
"node_modules/read-pkg/node_modules/json-parse-even-better-errors" : {
"version" : "3.0.2" ,
"resolved" : "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz" ,
"integrity" : "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "^14.17.0 || ^16.13.0 || >=18.0.0"
}
} ,
"node_modules/read-pkg/node_modules/lines-and-columns" : {
"version" : "2.0.4" ,
"resolved" : "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz" ,
"integrity" : "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "^12.20.0 || ^14.13.1 || >=16.0.0"
}
} ,
"node_modules/read-pkg/node_modules/lru-cache" : {
"version" : "10.4.3" ,
"resolved" : "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" ,
"integrity" : "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/read-pkg/node_modules/normalize-package-data" : {
"version" : "6.0.2" ,
"resolved" : "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz" ,
"integrity" : "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"dependencies" : {
"hosted-git-info" : "^7.0.0" ,
"semver" : "^7.3.5" ,
"validate-npm-package-license" : "^3.0.4"
} ,
"engines" : {
"node" : "^16.14.0 || >=18.0.0"
}
} ,
"node_modules/read-pkg/node_modules/parse-json" : {
"version" : "7.1.1" ,
"resolved" : "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz" ,
"integrity" : "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@babel/code-frame" : "^7.21.4" ,
"error-ex" : "^1.3.2" ,
"json-parse-even-better-errors" : "^3.0.0" ,
"lines-and-columns" : "^2.0.3" ,
"type-fest" : "^3.8.0"
} ,
"engines" : {
"node" : ">=16"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg/node_modules/parse-json/node_modules/type-fest" : {
"version" : "3.13.1" ,
"resolved" : "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz" ,
"integrity" : "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" ,
"dev" : true ,
"license" : "(MIT OR CC0-1.0)" ,
"engines" : {
"node" : ">=14.16"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/read-pkg/node_modules/semver" : {
"version" : "7.7.4" ,
"resolved" : "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz" ,
"integrity" : "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" ,
"dev" : true ,
"license" : "ISC" ,
"bin" : {
"semver" : "bin/semver.js"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/readable-stream" : {
"version" : "4.7.0" ,
"resolved" : "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz" ,
"integrity" : "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"abort-controller" : "^3.0.0" ,
"buffer" : "^6.0.3" ,
"events" : "^3.3.0" ,
"process" : "^0.11.10" ,
"string_decoder" : "^1.3.0"
} ,
"engines" : {
"node" : "^12.22.0 || ^14.17.0 || >=16.0.0"
}
} ,
"node_modules/readdir-glob" : {
"version" : "1.1.3" ,
"resolved" : "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz" ,
"integrity" : "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"minimatch" : "^5.1.0"
}
} ,
"node_modules/readdir-glob/node_modules/minimatch" : {
"version" : "5.1.9" ,
"resolved" : "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz" ,
"integrity" : "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"brace-expansion" : "^2.0.1"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/readdirp" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz" ,
"integrity" : "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 14.18.0"
} ,
"funding" : {
"type" : "individual" ,
"url" : "https://paulmillr.com/funding/"
}
} ,
"node_modules/recursive-readdir" : {
"version" : "2.2.3" ,
"resolved" : "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz" ,
"integrity" : "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"minimatch" : "^3.0.5"
} ,
"engines" : {
"node" : ">=6.0.0"
}
} ,
"node_modules/recursive-readdir/node_modules/brace-expansion" : {
"version" : "1.1.12" ,
"resolved" : "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz" ,
"integrity" : "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"balanced-match" : "^1.0.0" ,
"concat-map" : "0.0.1"
}
} ,
"node_modules/recursive-readdir/node_modules/minimatch" : {
"version" : "3.1.5" ,
"resolved" : "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz" ,
"integrity" : "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"brace-expansion" : "^1.1.7"
} ,
"engines" : {
"node" : "*"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/redent" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" ,
"integrity" : "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"indent-string" : "^4.0.0" ,
"strip-indent" : "^3.0.0"
} ,
"engines" : {
"node" : ">=8"
}
} ,
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
"node_modules/remark-gfm" : {
"version" : "4.0.1" ,
"resolved" : "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz" ,
"integrity" : "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"mdast-util-gfm" : "^3.0.0" ,
"micromark-extension-gfm" : "^3.0.0" ,
"remark-parse" : "^11.0.0" ,
"remark-stringify" : "^11.0.0" ,
"unified" : "^11.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/remark-parse" : {
"version" : "11.0.0" ,
"resolved" : "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz" ,
"integrity" : "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"mdast-util-from-markdown" : "^2.0.0" ,
"micromark-util-types" : "^2.0.0" ,
"unified" : "^11.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/remark-rehype" : {
"version" : "11.1.2" ,
"resolved" : "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz" ,
"integrity" : "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/hast" : "^3.0.0" ,
"@types/mdast" : "^4.0.0" ,
"mdast-util-to-hast" : "^13.0.0" ,
"unified" : "^11.0.0" ,
"vfile" : "^6.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/remark-stringify" : {
"version" : "11.0.0" ,
"resolved" : "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz" ,
"integrity" : "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/mdast" : "^4.0.0" ,
"mdast-util-to-markdown" : "^2.0.0" ,
"unified" : "^11.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/require-directory" : {
"version" : "2.1.1" ,
"resolved" : "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" ,
"integrity" : "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/resolve" : {
"version" : "1.22.11" ,
"resolved" : "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz" ,
"integrity" : "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==" ,
"license" : "MIT" ,
"dependencies" : {
"is-core-module" : "^2.16.1" ,
"path-parse" : "^1.0.7" ,
"supports-preserve-symlinks-flag" : "^1.0.0"
} ,
"bin" : {
"resolve" : "bin/resolve"
} ,
"engines" : {
"node" : ">= 0.4"
} ,
"funding" : {
"url" : "https://github.com/sponsors/ljharb"
}
} ,
"node_modules/resolve-from" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" ,
"integrity" : "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=4"
}
} ,
"node_modules/resolve-pkg-maps" : {
"version" : "1.0.0" ,
"resolved" : "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" ,
"integrity" : "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==" ,
2026-04-03 13:05:58 +00:00
"devOptional" : true ,
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
"license" : "MIT" ,
"funding" : {
"url" : "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
} ,
"node_modules/resq" : {
"version" : "1.11.0" ,
"resolved" : "https://registry.npmjs.org/resq/-/resq-1.11.0.tgz" ,
"integrity" : "sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"fast-deep-equal" : "^2.0.1"
}
} ,
"node_modules/ret" : {
"version" : "0.5.0" ,
"resolved" : "https://registry.npmjs.org/ret/-/ret-0.5.0.tgz" ,
"integrity" : "sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/reusify" : {
"version" : "1.1.0" ,
"resolved" : "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz" ,
"integrity" : "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==" ,
"license" : "MIT" ,
"engines" : {
"iojs" : ">=1.0.0" ,
"node" : ">=0.10.0"
}
} ,
"node_modules/rgb2hex" : {
"version" : "0.2.5" ,
"resolved" : "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.5.tgz" ,
"integrity" : "sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/rollup" : {
"version" : "4.59.0" ,
"resolved" : "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz" ,
"integrity" : "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/estree" : "1.0.8"
} ,
"bin" : {
"rollup" : "dist/bin/rollup"
} ,
"engines" : {
"node" : ">=18.0.0" ,
"npm" : ">=8.0.0"
} ,
"optionalDependencies" : {
"@rollup/rollup-android-arm-eabi" : "4.59.0" ,
"@rollup/rollup-android-arm64" : "4.59.0" ,
"@rollup/rollup-darwin-arm64" : "4.59.0" ,
"@rollup/rollup-darwin-x64" : "4.59.0" ,
"@rollup/rollup-freebsd-arm64" : "4.59.0" ,
"@rollup/rollup-freebsd-x64" : "4.59.0" ,
"@rollup/rollup-linux-arm-gnueabihf" : "4.59.0" ,
"@rollup/rollup-linux-arm-musleabihf" : "4.59.0" ,
"@rollup/rollup-linux-arm64-gnu" : "4.59.0" ,
"@rollup/rollup-linux-arm64-musl" : "4.59.0" ,
"@rollup/rollup-linux-loong64-gnu" : "4.59.0" ,
"@rollup/rollup-linux-loong64-musl" : "4.59.0" ,
"@rollup/rollup-linux-ppc64-gnu" : "4.59.0" ,
"@rollup/rollup-linux-ppc64-musl" : "4.59.0" ,
"@rollup/rollup-linux-riscv64-gnu" : "4.59.0" ,
"@rollup/rollup-linux-riscv64-musl" : "4.59.0" ,
"@rollup/rollup-linux-s390x-gnu" : "4.59.0" ,
"@rollup/rollup-linux-x64-gnu" : "4.59.0" ,
"@rollup/rollup-linux-x64-musl" : "4.59.0" ,
"@rollup/rollup-openbsd-x64" : "4.59.0" ,
"@rollup/rollup-openharmony-arm64" : "4.59.0" ,
"@rollup/rollup-win32-arm64-msvc" : "4.59.0" ,
"@rollup/rollup-win32-ia32-msvc" : "4.59.0" ,
"@rollup/rollup-win32-x64-gnu" : "4.59.0" ,
"@rollup/rollup-win32-x64-msvc" : "4.59.0" ,
"fsevents" : "~2.3.2"
}
} ,
"node_modules/rrweb-cssom" : {
"version" : "0.8.0" ,
"resolved" : "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz" ,
"integrity" : "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/run-async" : {
"version" : "4.0.6" ,
"resolved" : "https://registry.npmjs.org/run-async/-/run-async-4.0.6.tgz" ,
"integrity" : "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=0.12.0"
}
} ,
"node_modules/run-parallel" : {
"version" : "1.2.0" ,
"resolved" : "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" ,
"integrity" : "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/feross"
} ,
{
"type" : "patreon" ,
"url" : "https://www.patreon.com/feross"
} ,
{
"type" : "consulting" ,
"url" : "https://feross.org/support"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"queue-microtask" : "^1.2.2"
}
} ,
"node_modules/rxjs" : {
"version" : "7.8.2" ,
"resolved" : "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz" ,
"integrity" : "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"tslib" : "^2.1.0"
}
} ,
"node_modules/safaridriver" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/safaridriver/-/safaridriver-1.0.1.tgz" ,
"integrity" : "sha512-jkg4434cYgtrIF2AeY/X0Wmd2W73cK5qIEFE3hDrrQenJH/2SDJIXGvPAigfvQTcE9+H31zkiNHbUqcihEiMRA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18.0.0"
}
} ,
"node_modules/safe-buffer" : {
"version" : "5.2.1" ,
"resolved" : "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" ,
"integrity" : "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/feross"
} ,
{
"type" : "patreon" ,
"url" : "https://www.patreon.com/feross"
} ,
{
"type" : "consulting" ,
"url" : "https://feross.org/support"
}
] ,
"license" : "MIT"
} ,
"node_modules/safe-regex2" : {
"version" : "5.1.0" ,
"resolved" : "https://registry.npmjs.org/safe-regex2/-/safe-regex2-5.1.0.tgz" ,
"integrity" : "sha512-pNHAuBW7TrcleFHsxBr5QMi/Iyp0ENjUKz7GCcX1UO7cMh+NmVK6HxQckNL1tJp1XAJVjG6B8OKIPqodqj9rtw==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/fastify"
} ,
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/fastify"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"ret" : "~0.5.0"
} ,
"bin" : {
"safe-regex2" : "bin/safe-regex2.js"
}
} ,
"node_modules/safer-buffer" : {
"version" : "2.1.2" ,
"resolved" : "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" ,
"integrity" : "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/saxes" : {
"version" : "6.0.0" ,
"resolved" : "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz" ,
"integrity" : "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"xmlchars" : "^2.2.0"
} ,
"engines" : {
"node" : ">=v12.22.7"
}
} ,
"node_modules/scheduler" : {
"version" : "0.23.2" ,
"resolved" : "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" ,
"integrity" : "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==" ,
"license" : "MIT" ,
"dependencies" : {
"loose-envify" : "^1.1.0"
}
} ,
"node_modules/semver" : {
"version" : "6.3.1" ,
"resolved" : "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" ,
"integrity" : "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" ,
"dev" : true ,
"license" : "ISC" ,
"bin" : {
"semver" : "bin/semver.js"
}
} ,
"node_modules/serialize-error" : {
"version" : "12.0.0" ,
"resolved" : "https://registry.npmjs.org/serialize-error/-/serialize-error-12.0.0.tgz" ,
"integrity" : "sha512-ZYkZLAvKTKQXWuh5XpBw7CdbSzagarX39WyZ2H07CDLC5/KfsRGlIXV8d4+tfqX1M7916mRqR1QfNHSij+c9Pw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"type-fest" : "^4.31.0"
} ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/serialize-javascript" : {
"version" : "6.0.2" ,
"resolved" : "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" ,
"integrity" : "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"dependencies" : {
"randombytes" : "^2.1.0"
}
} ,
"node_modules/setimmediate" : {
"version" : "1.0.5" ,
"resolved" : "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" ,
"integrity" : "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/shebang-command" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" ,
"integrity" : "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"shebang-regex" : "^3.0.0"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/shebang-regex" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" ,
"integrity" : "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/siginfo" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz" ,
"integrity" : "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/signal-exit" : {
"version" : "4.1.0" ,
"resolved" : "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" ,
"integrity" : "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : ">=14"
} ,
"funding" : {
"url" : "https://github.com/sponsors/isaacs"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/slash" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" ,
"integrity" : "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : ">=8"
}
} ,
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
"node_modules/smart-buffer" : {
"version" : "4.2.0" ,
"resolved" : "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" ,
"integrity" : "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 6.0.0" ,
"npm" : ">= 3.0.0"
}
} ,
"node_modules/socks" : {
"version" : "2.8.7" ,
"resolved" : "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz" ,
"integrity" : "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ip-address" : "^10.0.1" ,
"smart-buffer" : "^4.2.0"
} ,
"engines" : {
"node" : ">= 10.0.0" ,
"npm" : ">= 3.0.0"
}
} ,
"node_modules/socks-proxy-agent" : {
"version" : "8.0.5" ,
"resolved" : "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz" ,
"integrity" : "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"agent-base" : "^7.1.2" ,
"debug" : "^4.3.4" ,
"socks" : "^2.8.3"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/source-map" : {
"version" : "0.6.1" ,
"resolved" : "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" ,
"integrity" : "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"optional" : true ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/source-map-js" : {
"version" : "1.2.1" ,
"resolved" : "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" ,
"integrity" : "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" ,
"license" : "BSD-3-Clause" ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/space-separated-tokens" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" ,
"integrity" : "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/spacetrim" : {
"version" : "0.11.59" ,
"resolved" : "https://registry.npmjs.org/spacetrim/-/spacetrim-0.11.59.tgz" ,
"integrity" : "sha512-lLYsktklSRKprreOm7NXReW8YiX2VBjbgmXYEziOoGf/qsJqAEACaDvoTtUOycwjpaSh+bT8eu0KrJn7UNxiCg==" ,
"dev" : true ,
"funding" : [
{
"type" : "individual" ,
"url" : "https://buymeacoffee.com/hejny"
} ,
{
"type" : "github" ,
"url" : "https://github.com/hejny/spacetrim/blob/main/README.md#%EF%B8%8F-contributing"
}
] ,
"license" : "Apache-2.0"
} ,
"node_modules/spdx-correct" : {
"version" : "3.2.0" ,
"resolved" : "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" ,
"integrity" : "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"spdx-expression-parse" : "^3.0.0" ,
"spdx-license-ids" : "^3.0.0"
}
} ,
"node_modules/spdx-exceptions" : {
"version" : "2.5.0" ,
"resolved" : "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz" ,
"integrity" : "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" ,
"dev" : true ,
"license" : "CC-BY-3.0"
} ,
"node_modules/spdx-expression-parse" : {
"version" : "3.0.1" ,
"resolved" : "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" ,
"integrity" : "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"spdx-exceptions" : "^2.1.0" ,
"spdx-license-ids" : "^3.0.0"
}
} ,
"node_modules/spdx-license-ids" : {
"version" : "3.0.23" ,
"resolved" : "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz" ,
"integrity" : "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==" ,
"dev" : true ,
"license" : "CC0-1.0"
} ,
"node_modules/split2" : {
"version" : "4.2.0" ,
"resolved" : "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" ,
"integrity" : "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : ">= 10.x"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/stack-utils" : {
"version" : "2.0.6" ,
"resolved" : "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" ,
"integrity" : "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"dependencies" : {
"escape-string-regexp" : "^2.0.0"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/stack-utils/node_modules/escape-string-regexp" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" ,
"integrity" : "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" ,
"dev" : true ,
"license" : "MIT" ,
"peer" : true ,
"engines" : {
"node" : ">=8"
}
} ,
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
"node_modules/stackback" : {
"version" : "0.0.2" ,
"resolved" : "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz" ,
"integrity" : "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/std-env" : {
"version" : "3.10.0" ,
"resolved" : "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz" ,
"integrity" : "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/streamx" : {
"version" : "2.23.0" ,
"resolved" : "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz" ,
"integrity" : "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"events-universal" : "^1.0.0" ,
"fast-fifo" : "^1.3.2" ,
"text-decoder" : "^1.1.0"
}
} ,
"node_modules/string_decoder" : {
"version" : "1.3.0" ,
"resolved" : "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" ,
"integrity" : "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"safe-buffer" : "~5.2.0"
}
} ,
"node_modules/string-width" : {
"version" : "5.1.2" ,
"resolved" : "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" ,
"integrity" : "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"eastasianwidth" : "^0.2.0" ,
"emoji-regex" : "^9.2.2" ,
"strip-ansi" : "^7.0.1"
} ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/string-width-cjs" : {
"name" : "string-width" ,
"version" : "4.2.3" ,
"resolved" : "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" ,
"integrity" : "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"emoji-regex" : "^8.0.0" ,
"is-fullwidth-code-point" : "^3.0.0" ,
"strip-ansi" : "^6.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/string-width-cjs/node_modules/ansi-regex" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" ,
"integrity" : "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/string-width-cjs/node_modules/emoji-regex" : {
"version" : "8.0.0" ,
"resolved" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" ,
"integrity" : "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/string-width-cjs/node_modules/strip-ansi" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" ,
"integrity" : "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-regex" : "^5.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/stringify-entities" : {
"version" : "4.0.4" ,
"resolved" : "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" ,
"integrity" : "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==" ,
"license" : "MIT" ,
"dependencies" : {
"character-entities-html4" : "^2.0.0" ,
"character-entities-legacy" : "^3.0.0"
} ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/strip-ansi" : {
"version" : "7.2.0" ,
"resolved" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz" ,
"integrity" : "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-regex" : "^6.2.2"
} ,
"engines" : {
"node" : ">=12"
} ,
"funding" : {
"url" : "https://github.com/chalk/strip-ansi?sponsor=1"
}
} ,
"node_modules/strip-ansi-cjs" : {
"name" : "strip-ansi" ,
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" ,
"integrity" : "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-regex" : "^5.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/strip-ansi-cjs/node_modules/ansi-regex" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" ,
"integrity" : "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/strip-final-newline" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz" ,
"integrity" : "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/strip-indent" : {
"version" : "3.0.0" ,
"resolved" : "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" ,
"integrity" : "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"min-indent" : "^1.0.0"
} ,
"engines" : {
"node" : ">=8"
}
} ,
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
"node_modules/strip-json-comments" : {
"version" : "3.1.1" ,
"resolved" : "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" ,
"integrity" : "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/strnum" : {
"version" : "2.2.0" ,
"resolved" : "https://registry.npmjs.org/strnum/-/strnum-2.2.0.tgz" ,
"integrity" : "sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg==" ,
"dev" : true ,
"funding" : [
{
"type" : "github" ,
"url" : "https://github.com/sponsors/NaturalIntelligence"
}
] ,
"license" : "MIT"
} ,
"node_modules/style-to-js" : {
"version" : "1.1.21" ,
"resolved" : "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz" ,
"integrity" : "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==" ,
"license" : "MIT" ,
"dependencies" : {
"style-to-object" : "1.0.14"
}
} ,
"node_modules/style-to-object" : {
"version" : "1.0.14" ,
"resolved" : "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz" ,
"integrity" : "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==" ,
"license" : "MIT" ,
"dependencies" : {
"inline-style-parser" : "0.2.7"
}
} ,
"node_modules/stylis" : {
"version" : "4.2.0" ,
"resolved" : "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz" ,
"integrity" : "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" ,
"license" : "MIT"
} ,
"node_modules/sucrase" : {
"version" : "3.35.1" ,
"resolved" : "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz" ,
"integrity" : "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==" ,
"license" : "MIT" ,
"dependencies" : {
"@jridgewell/gen-mapping" : "^0.3.2" ,
"commander" : "^4.0.0" ,
"lines-and-columns" : "^1.1.6" ,
"mz" : "^2.7.0" ,
"pirates" : "^4.0.1" ,
"tinyglobby" : "^0.2.11" ,
"ts-interface-checker" : "^0.1.9"
} ,
"bin" : {
"sucrase" : "bin/sucrase" ,
"sucrase-node" : "bin/sucrase-node"
} ,
"engines" : {
"node" : ">=16 || 14 >=14.17"
}
} ,
"node_modules/sucrase/node_modules/commander" : {
"version" : "4.1.1" ,
"resolved" : "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" ,
"integrity" : "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 6"
}
} ,
"node_modules/supports-color" : {
"version" : "7.2.0" ,
"resolved" : "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" ,
"integrity" : "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"has-flag" : "^4.0.0"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/supports-preserve-symlinks-flag" : {
"version" : "1.0.0" ,
"resolved" : "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" ,
"integrity" : "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 0.4"
} ,
"funding" : {
"url" : "https://github.com/sponsors/ljharb"
}
} ,
"node_modules/symbol-tree" : {
"version" : "3.2.4" ,
"resolved" : "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" ,
"integrity" : "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/tailwindcss" : {
"version" : "3.4.19" ,
"resolved" : "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz" ,
"integrity" : "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@alloc/quick-lru" : "^5.2.0" ,
"arg" : "^5.0.2" ,
"chokidar" : "^3.6.0" ,
"didyoumean" : "^1.2.2" ,
"dlv" : "^1.1.3" ,
"fast-glob" : "^3.3.2" ,
"glob-parent" : "^6.0.2" ,
"is-glob" : "^4.0.3" ,
"jiti" : "^1.21.7" ,
"lilconfig" : "^3.1.3" ,
"micromatch" : "^4.0.8" ,
"normalize-path" : "^3.0.0" ,
"object-hash" : "^3.0.0" ,
"picocolors" : "^1.1.1" ,
"postcss" : "^8.4.47" ,
"postcss-import" : "^15.1.0" ,
"postcss-js" : "^4.0.1" ,
"postcss-load-config" : "^4.0.2 || ^5.0 || ^6.0" ,
"postcss-nested" : "^6.2.0" ,
"postcss-selector-parser" : "^6.1.2" ,
"resolve" : "^1.22.8" ,
"sucrase" : "^3.35.0"
} ,
"bin" : {
"tailwind" : "lib/cli.js" ,
"tailwindcss" : "lib/cli.js"
} ,
"engines" : {
"node" : ">=14.0.0"
}
} ,
"node_modules/tailwindcss/node_modules/chokidar" : {
"version" : "3.6.0" ,
"resolved" : "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" ,
"integrity" : "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==" ,
"license" : "MIT" ,
"dependencies" : {
"anymatch" : "~3.1.2" ,
"braces" : "~3.0.2" ,
"glob-parent" : "~5.1.2" ,
"is-binary-path" : "~2.1.0" ,
"is-glob" : "~4.0.1" ,
"normalize-path" : "~3.0.0" ,
"readdirp" : "~3.6.0"
} ,
"engines" : {
"node" : ">= 8.10.0"
} ,
"funding" : {
"url" : "https://paulmillr.com/funding/"
} ,
"optionalDependencies" : {
"fsevents" : "~2.3.2"
}
} ,
"node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent" : {
"version" : "5.1.2" ,
"resolved" : "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" ,
"integrity" : "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" ,
"license" : "ISC" ,
"dependencies" : {
"is-glob" : "^4.0.1"
} ,
"engines" : {
"node" : ">= 6"
}
} ,
"node_modules/tailwindcss/node_modules/jiti" : {
"version" : "1.21.7" ,
"resolved" : "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz" ,
"integrity" : "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==" ,
"license" : "MIT" ,
"bin" : {
"jiti" : "bin/jiti.js"
}
} ,
2026-04-03 13:05:58 +00:00
"node_modules/tailwindcss/node_modules/picomatch" : {
"version" : "2.3.2" ,
"resolved" : "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz" ,
"integrity" : "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==" ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8.6"
} ,
"funding" : {
"url" : "https://github.com/sponsors/jonschlinkert"
}
} ,
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
"node_modules/tailwindcss/node_modules/readdirp" : {
"version" : "3.6.0" ,
"resolved" : "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" ,
"integrity" : "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" ,
"license" : "MIT" ,
"dependencies" : {
"picomatch" : "^2.2.1"
} ,
"engines" : {
"node" : ">=8.10.0"
}
} ,
"node_modules/tar-fs" : {
"version" : "3.1.2" ,
"resolved" : "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz" ,
"integrity" : "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"pump" : "^3.0.0" ,
"tar-stream" : "^3.1.5"
} ,
"optionalDependencies" : {
"bare-fs" : "^4.0.1" ,
"bare-path" : "^3.0.0"
}
} ,
"node_modules/tar-stream" : {
"version" : "3.1.8" ,
"resolved" : "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz" ,
"integrity" : "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"b4a" : "^1.6.4" ,
"bare-fs" : "^4.5.5" ,
"fast-fifo" : "^1.2.0" ,
"streamx" : "^2.15.0"
}
} ,
"node_modules/teex" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz" ,
"integrity" : "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"streamx" : "^2.12.5"
}
} ,
"node_modules/test-exclude" : {
"version" : "7.0.2" ,
"resolved" : "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz" ,
"integrity" : "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"@istanbuljs/schema" : "^0.1.2" ,
"glob" : "^10.4.1" ,
"minimatch" : "^10.2.2"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/test-exclude/node_modules/balanced-match" : {
"version" : "4.0.4" ,
"resolved" : "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz" ,
"integrity" : "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "18 || 20 || >=22"
}
} ,
"node_modules/test-exclude/node_modules/brace-expansion" : {
"version" : "5.0.4" ,
"resolved" : "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz" ,
"integrity" : "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"balanced-match" : "^4.0.2"
} ,
"engines" : {
"node" : "18 || 20 || >=22"
}
} ,
"node_modules/test-exclude/node_modules/minimatch" : {
"version" : "10.2.4" ,
"resolved" : "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz" ,
"integrity" : "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==" ,
"dev" : true ,
"license" : "BlueOak-1.0.0" ,
"dependencies" : {
"brace-expansion" : "^5.0.2"
} ,
"engines" : {
"node" : "18 || 20 || >=22"
} ,
"funding" : {
"url" : "https://github.com/sponsors/isaacs"
}
} ,
"node_modules/text-decoder" : {
"version" : "1.2.7" ,
"resolved" : "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz" ,
"integrity" : "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"b4a" : "^1.6.4"
}
} ,
"node_modules/thenify" : {
"version" : "3.3.1" ,
"resolved" : "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" ,
"integrity" : "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==" ,
"license" : "MIT" ,
"dependencies" : {
"any-promise" : "^1.0.0"
}
} ,
"node_modules/thenify-all" : {
"version" : "1.6.0" ,
"resolved" : "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" ,
"integrity" : "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==" ,
"license" : "MIT" ,
"dependencies" : {
"thenify" : ">= 3.1.0 < 4"
} ,
"engines" : {
"node" : ">=0.8"
}
} ,
"node_modules/tinybench" : {
"version" : "2.9.0" ,
"resolved" : "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz" ,
"integrity" : "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/tinyexec" : {
"version" : "0.3.2" ,
"resolved" : "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz" ,
"integrity" : "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/tinyglobby" : {
"version" : "0.2.15" ,
"resolved" : "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" ,
"integrity" : "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==" ,
"license" : "MIT" ,
"dependencies" : {
"fdir" : "^6.5.0" ,
"picomatch" : "^4.0.3"
} ,
"engines" : {
"node" : ">=12.0.0"
} ,
"funding" : {
"url" : "https://github.com/sponsors/SuperchupuDev"
}
} ,
"node_modules/tinypool" : {
"version" : "1.1.1" ,
"resolved" : "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz" ,
"integrity" : "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "^18.0.0 || >=20.0.0"
}
} ,
"node_modules/tinyrainbow" : {
"version" : "1.2.0" ,
"resolved" : "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz" ,
"integrity" : "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=14.0.0"
}
} ,
"node_modules/tinyspy" : {
"version" : "3.0.2" ,
"resolved" : "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz" ,
"integrity" : "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=14.0.0"
}
} ,
"node_modules/tldts" : {
"version" : "6.1.86" ,
"resolved" : "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz" ,
"integrity" : "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"tldts-core" : "^6.1.86"
} ,
"bin" : {
"tldts" : "bin/cli.js"
}
} ,
"node_modules/tldts-core" : {
"version" : "6.1.86" ,
"resolved" : "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz" ,
"integrity" : "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/to-regex-range" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" ,
"integrity" : "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" ,
"license" : "MIT" ,
"dependencies" : {
"is-number" : "^7.0.0"
} ,
"engines" : {
"node" : ">=8.0"
}
} ,
"node_modules/tough-cookie" : {
"version" : "5.1.2" ,
"resolved" : "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz" ,
"integrity" : "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==" ,
"dev" : true ,
"license" : "BSD-3-Clause" ,
"dependencies" : {
"tldts" : "^6.1.32"
} ,
"engines" : {
"node" : ">=16"
}
} ,
"node_modules/tr46" : {
"version" : "5.1.1" ,
"resolved" : "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz" ,
"integrity" : "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"punycode" : "^2.3.1"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/trim-lines" : {
"version" : "3.0.1" ,
"resolved" : "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" ,
"integrity" : "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/trough" : {
"version" : "2.2.0" ,
"resolved" : "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" ,
"integrity" : "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
} ,
"node_modules/ts-interface-checker" : {
"version" : "0.1.13" ,
"resolved" : "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" ,
"integrity" : "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" ,
"license" : "Apache-2.0"
} ,
"node_modules/tslib" : {
"version" : "2.8.1" ,
"resolved" : "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" ,
"integrity" : "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" ,
"dev" : true ,
"license" : "0BSD"
} ,
"node_modules/tsx" : {
"version" : "4.21.0" ,
"resolved" : "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz" ,
"integrity" : "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==" ,
2026-04-03 13:05:58 +00:00
"devOptional" : true ,
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
"license" : "MIT" ,
"dependencies" : {
"esbuild" : "~0.27.0" ,
"get-tsconfig" : "^4.7.5"
} ,
"bin" : {
"tsx" : "dist/cli.mjs"
} ,
"engines" : {
"node" : ">=18.0.0"
} ,
"optionalDependencies" : {
"fsevents" : "~2.3.3"
}
} ,
"node_modules/type-fest" : {
"version" : "4.41.0" ,
"resolved" : "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz" ,
"integrity" : "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==" ,
"dev" : true ,
"license" : "(MIT OR CC0-1.0)" ,
"engines" : {
"node" : ">=16"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/typescript" : {
"version" : "5.9.3" ,
"resolved" : "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" ,
"integrity" : "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"bin" : {
"tsc" : "bin/tsc" ,
"tsserver" : "bin/tsserver"
} ,
"engines" : {
"node" : ">=14.17"
}
} ,
"node_modules/undici" : {
"version" : "7.24.3" ,
"resolved" : "https://registry.npmjs.org/undici/-/undici-7.24.3.tgz" ,
"integrity" : "sha512-eJdUmK/Wrx2d+mnWWmwwLRyA7OQCkLap60sk3dOK4ViZR7DKwwptwuIvFBg2HaiP9ESaEdhtpSymQPvytpmkCA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=20.18.1"
}
} ,
"node_modules/undici-types" : {
"version" : "6.21.0" ,
"resolved" : "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz" ,
"integrity" : "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/unicorn-magic" : {
"version" : "0.3.0" ,
"resolved" : "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz" ,
"integrity" : "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/unified" : {
"version" : "11.0.5" ,
"resolved" : "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz" ,
"integrity" : "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^3.0.0" ,
"bail" : "^2.0.0" ,
"devlop" : "^1.0.0" ,
"extend" : "^3.0.0" ,
"is-plain-obj" : "^4.0.0" ,
"trough" : "^2.0.0" ,
"vfile" : "^6.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/unist-util-is" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz" ,
"integrity" : "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^3.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/unist-util-position" : {
"version" : "5.0.0" ,
"resolved" : "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz" ,
"integrity" : "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^3.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/unist-util-stringify-position" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz" ,
"integrity" : "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^3.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/unist-util-visit" : {
"version" : "5.1.0" ,
"resolved" : "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz" ,
"integrity" : "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^3.0.0" ,
"unist-util-is" : "^6.0.0" ,
"unist-util-visit-parents" : "^6.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/unist-util-visit-parents" : {
"version" : "6.0.2" ,
"resolved" : "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz" ,
"integrity" : "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^3.0.0" ,
"unist-util-is" : "^6.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/update-browserslist-db" : {
"version" : "1.2.3" ,
"resolved" : "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz" ,
"integrity" : "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==" ,
"dev" : true ,
"funding" : [
{
"type" : "opencollective" ,
"url" : "https://opencollective.com/browserslist"
} ,
{
"type" : "tidelift" ,
"url" : "https://tidelift.com/funding/github/npm/browserslist"
} ,
{
"type" : "github" ,
"url" : "https://github.com/sponsors/ai"
}
] ,
"license" : "MIT" ,
"dependencies" : {
"escalade" : "^3.2.0" ,
"picocolors" : "^1.1.1"
} ,
"bin" : {
"update-browserslist-db" : "cli.js"
} ,
"peerDependencies" : {
"browserslist" : ">= 4.21.0"
}
} ,
"node_modules/urlpattern-polyfill" : {
"version" : "10.1.0" ,
"resolved" : "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz" ,
"integrity" : "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/use-sync-external-store" : {
"version" : "1.6.0" ,
"resolved" : "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz" ,
"integrity" : "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==" ,
"license" : "MIT" ,
"peerDependencies" : {
"react" : "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
} ,
"node_modules/userhome" : {
"version" : "1.0.1" ,
"resolved" : "https://registry.npmjs.org/userhome/-/userhome-1.0.1.tgz" ,
"integrity" : "sha512-5cnLm4gseXjAclKowC4IjByaGsjtAoV6PrOQOljplNB54ReUYJP8HdAFq2muHinSDAh09PPX/uXDPfdxRHvuSA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">= 0.8.0"
}
} ,
"node_modules/util-deprecate" : {
"version" : "1.0.2" ,
"resolved" : "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" ,
"integrity" : "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" ,
"license" : "MIT"
} ,
"node_modules/validate-npm-package-license" : {
"version" : "3.0.4" ,
"resolved" : "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" ,
"integrity" : "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"dependencies" : {
"spdx-correct" : "^3.0.0" ,
"spdx-expression-parse" : "^3.0.0"
}
} ,
"node_modules/vfile" : {
"version" : "6.0.3" ,
"resolved" : "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz" ,
"integrity" : "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^3.0.0" ,
"vfile-message" : "^4.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/vfile-message" : {
"version" : "4.0.3" ,
"resolved" : "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz" ,
"integrity" : "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==" ,
"license" : "MIT" ,
"dependencies" : {
"@types/unist" : "^3.0.0" ,
"unist-util-stringify-position" : "^4.0.0"
} ,
"funding" : {
"type" : "opencollective" ,
"url" : "https://opencollective.com/unified"
}
} ,
"node_modules/vite" : {
"version" : "6.4.1" ,
"resolved" : "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz" ,
"integrity" : "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"esbuild" : "^0.25.0" ,
"fdir" : "^6.4.4" ,
"picomatch" : "^4.0.2" ,
"postcss" : "^8.5.3" ,
"rollup" : "^4.34.9" ,
"tinyglobby" : "^0.2.13"
} ,
"bin" : {
"vite" : "bin/vite.js"
} ,
"engines" : {
"node" : "^18.0.0 || ^20.0.0 || >=22.0.0"
} ,
"funding" : {
"url" : "https://github.com/vitejs/vite?sponsor=1"
} ,
"optionalDependencies" : {
"fsevents" : "~2.3.3"
} ,
"peerDependencies" : {
"@types/node" : "^18.0.0 || ^20.0.0 || >=22.0.0" ,
"jiti" : ">=1.21.0" ,
"less" : "*" ,
"lightningcss" : "^1.21.0" ,
"sass" : "*" ,
"sass-embedded" : "*" ,
"stylus" : "*" ,
"sugarss" : "*" ,
"terser" : "^5.16.0" ,
"tsx" : "^4.8.1" ,
"yaml" : "^2.4.2"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
} ,
"jiti" : {
"optional" : true
} ,
"less" : {
"optional" : true
} ,
"lightningcss" : {
"optional" : true
} ,
"sass" : {
"optional" : true
} ,
"sass-embedded" : {
"optional" : true
} ,
"stylus" : {
"optional" : true
} ,
"sugarss" : {
"optional" : true
} ,
"terser" : {
"optional" : true
} ,
"tsx" : {
"optional" : true
} ,
"yaml" : {
"optional" : true
}
}
} ,
"node_modules/vite-node" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz" ,
"integrity" : "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"cac" : "^6.7.14" ,
"debug" : "^4.3.7" ,
"es-module-lexer" : "^1.5.4" ,
"pathe" : "^1.1.2" ,
"vite" : "^5.0.0"
} ,
"bin" : {
"vite-node" : "vite-node.mjs"
} ,
"engines" : {
"node" : "^18.0.0 || >=20.0.0"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/aix-ppc64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz" ,
"integrity" : "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"aix"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/android-arm" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz" ,
"integrity" : "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/android-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz" ,
"integrity" : "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/android-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz" ,
"integrity" : "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/darwin-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz" ,
"integrity" : "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/darwin-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz" ,
"integrity" : "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/freebsd-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz" ,
"integrity" : "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/freebsd-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz" ,
"integrity" : "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-arm" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz" ,
"integrity" : "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz" ,
"integrity" : "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-ia32" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz" ,
"integrity" : "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-loong64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz" ,
"integrity" : "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==" ,
"cpu" : [
"loong64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-mips64el" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz" ,
"integrity" : "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==" ,
"cpu" : [
"mips64el"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-ppc64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz" ,
"integrity" : "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-riscv64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz" ,
"integrity" : "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==" ,
"cpu" : [
"riscv64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-s390x" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz" ,
"integrity" : "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==" ,
"cpu" : [
"s390x"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/linux-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz" ,
"integrity" : "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/netbsd-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz" ,
"integrity" : "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"netbsd"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/openbsd-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz" ,
"integrity" : "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openbsd"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/sunos-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz" ,
"integrity" : "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"sunos"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/win32-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz" ,
"integrity" : "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/win32-ia32" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz" ,
"integrity" : "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/@esbuild/win32-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz" ,
"integrity" : "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vite-node/node_modules/esbuild" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz" ,
"integrity" : "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==" ,
"dev" : true ,
"hasInstallScript" : true ,
"license" : "MIT" ,
"bin" : {
"esbuild" : "bin/esbuild"
} ,
"engines" : {
"node" : ">=12"
} ,
"optionalDependencies" : {
"@esbuild/aix-ppc64" : "0.21.5" ,
"@esbuild/android-arm" : "0.21.5" ,
"@esbuild/android-arm64" : "0.21.5" ,
"@esbuild/android-x64" : "0.21.5" ,
"@esbuild/darwin-arm64" : "0.21.5" ,
"@esbuild/darwin-x64" : "0.21.5" ,
"@esbuild/freebsd-arm64" : "0.21.5" ,
"@esbuild/freebsd-x64" : "0.21.5" ,
"@esbuild/linux-arm" : "0.21.5" ,
"@esbuild/linux-arm64" : "0.21.5" ,
"@esbuild/linux-ia32" : "0.21.5" ,
"@esbuild/linux-loong64" : "0.21.5" ,
"@esbuild/linux-mips64el" : "0.21.5" ,
"@esbuild/linux-ppc64" : "0.21.5" ,
"@esbuild/linux-riscv64" : "0.21.5" ,
"@esbuild/linux-s390x" : "0.21.5" ,
"@esbuild/linux-x64" : "0.21.5" ,
"@esbuild/netbsd-x64" : "0.21.5" ,
"@esbuild/openbsd-x64" : "0.21.5" ,
"@esbuild/sunos-x64" : "0.21.5" ,
"@esbuild/win32-arm64" : "0.21.5" ,
"@esbuild/win32-ia32" : "0.21.5" ,
"@esbuild/win32-x64" : "0.21.5"
}
} ,
"node_modules/vite-node/node_modules/vite" : {
"version" : "5.4.21" ,
"resolved" : "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz" ,
"integrity" : "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"esbuild" : "^0.21.3" ,
"postcss" : "^8.4.43" ,
"rollup" : "^4.20.0"
} ,
"bin" : {
"vite" : "bin/vite.js"
} ,
"engines" : {
"node" : "^18.0.0 || >=20.0.0"
} ,
"funding" : {
"url" : "https://github.com/vitejs/vite?sponsor=1"
} ,
"optionalDependencies" : {
"fsevents" : "~2.3.3"
} ,
"peerDependencies" : {
"@types/node" : "^18.0.0 || >=20.0.0" ,
"less" : "*" ,
"lightningcss" : "^1.21.0" ,
"sass" : "*" ,
"sass-embedded" : "*" ,
"stylus" : "*" ,
"sugarss" : "*" ,
"terser" : "^5.4.0"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
} ,
"less" : {
"optional" : true
} ,
"lightningcss" : {
"optional" : true
} ,
"sass" : {
"optional" : true
} ,
"sass-embedded" : {
"optional" : true
} ,
"stylus" : {
"optional" : true
} ,
"sugarss" : {
"optional" : true
} ,
"terser" : {
"optional" : true
}
}
} ,
"node_modules/vite/node_modules/@esbuild/aix-ppc64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz" ,
"integrity" : "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"aix"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/android-arm" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz" ,
"integrity" : "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/android-arm64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz" ,
"integrity" : "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/android-x64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz" ,
"integrity" : "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/darwin-arm64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz" ,
"integrity" : "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/darwin-x64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz" ,
"integrity" : "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/freebsd-arm64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz" ,
"integrity" : "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/freebsd-x64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz" ,
"integrity" : "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-arm" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz" ,
"integrity" : "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-arm64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz" ,
"integrity" : "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-ia32" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz" ,
"integrity" : "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-loong64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz" ,
"integrity" : "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==" ,
"cpu" : [
"loong64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-mips64el" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz" ,
"integrity" : "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==" ,
"cpu" : [
"mips64el"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-ppc64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz" ,
"integrity" : "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-riscv64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz" ,
"integrity" : "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==" ,
"cpu" : [
"riscv64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-s390x" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz" ,
"integrity" : "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==" ,
"cpu" : [
"s390x"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/linux-x64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz" ,
"integrity" : "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/netbsd-arm64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz" ,
"integrity" : "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"netbsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/netbsd-x64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz" ,
"integrity" : "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"netbsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/openbsd-arm64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz" ,
"integrity" : "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openbsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/openbsd-x64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz" ,
"integrity" : "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openbsd"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/openharmony-arm64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz" ,
"integrity" : "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openharmony"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/sunos-x64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz" ,
"integrity" : "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"sunos"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/win32-arm64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz" ,
"integrity" : "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/win32-ia32" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz" ,
"integrity" : "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/@esbuild/win32-x64" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz" ,
"integrity" : "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/vite/node_modules/esbuild" : {
"version" : "0.25.12" ,
"resolved" : "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz" ,
"integrity" : "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==" ,
"dev" : true ,
"hasInstallScript" : true ,
"license" : "MIT" ,
"bin" : {
"esbuild" : "bin/esbuild"
} ,
"engines" : {
"node" : ">=18"
} ,
"optionalDependencies" : {
"@esbuild/aix-ppc64" : "0.25.12" ,
"@esbuild/android-arm" : "0.25.12" ,
"@esbuild/android-arm64" : "0.25.12" ,
"@esbuild/android-x64" : "0.25.12" ,
"@esbuild/darwin-arm64" : "0.25.12" ,
"@esbuild/darwin-x64" : "0.25.12" ,
"@esbuild/freebsd-arm64" : "0.25.12" ,
"@esbuild/freebsd-x64" : "0.25.12" ,
"@esbuild/linux-arm" : "0.25.12" ,
"@esbuild/linux-arm64" : "0.25.12" ,
"@esbuild/linux-ia32" : "0.25.12" ,
"@esbuild/linux-loong64" : "0.25.12" ,
"@esbuild/linux-mips64el" : "0.25.12" ,
"@esbuild/linux-ppc64" : "0.25.12" ,
"@esbuild/linux-riscv64" : "0.25.12" ,
"@esbuild/linux-s390x" : "0.25.12" ,
"@esbuild/linux-x64" : "0.25.12" ,
"@esbuild/netbsd-arm64" : "0.25.12" ,
"@esbuild/netbsd-x64" : "0.25.12" ,
"@esbuild/openbsd-arm64" : "0.25.12" ,
"@esbuild/openbsd-x64" : "0.25.12" ,
"@esbuild/openharmony-arm64" : "0.25.12" ,
"@esbuild/sunos-x64" : "0.25.12" ,
"@esbuild/win32-arm64" : "0.25.12" ,
"@esbuild/win32-ia32" : "0.25.12" ,
"@esbuild/win32-x64" : "0.25.12"
}
} ,
"node_modules/vitest" : {
"version" : "2.1.9" ,
"resolved" : "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz" ,
"integrity" : "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@vitest/expect" : "2.1.9" ,
"@vitest/mocker" : "2.1.9" ,
"@vitest/pretty-format" : "^2.1.9" ,
"@vitest/runner" : "2.1.9" ,
"@vitest/snapshot" : "2.1.9" ,
"@vitest/spy" : "2.1.9" ,
"@vitest/utils" : "2.1.9" ,
"chai" : "^5.1.2" ,
"debug" : "^4.3.7" ,
"expect-type" : "^1.1.0" ,
"magic-string" : "^0.30.12" ,
"pathe" : "^1.1.2" ,
"std-env" : "^3.8.0" ,
"tinybench" : "^2.9.0" ,
"tinyexec" : "^0.3.1" ,
"tinypool" : "^1.0.1" ,
"tinyrainbow" : "^1.2.0" ,
"vite" : "^5.0.0" ,
"vite-node" : "2.1.9" ,
"why-is-node-running" : "^2.3.0"
} ,
"bin" : {
"vitest" : "vitest.mjs"
} ,
"engines" : {
"node" : "^18.0.0 || >=20.0.0"
} ,
"funding" : {
"url" : "https://opencollective.com/vitest"
} ,
"peerDependencies" : {
"@edge-runtime/vm" : "*" ,
"@types/node" : "^18.0.0 || >=20.0.0" ,
"@vitest/browser" : "2.1.9" ,
"@vitest/ui" : "2.1.9" ,
"happy-dom" : "*" ,
"jsdom" : "*"
} ,
"peerDependenciesMeta" : {
"@edge-runtime/vm" : {
"optional" : true
} ,
"@types/node" : {
"optional" : true
} ,
"@vitest/browser" : {
"optional" : true
} ,
"@vitest/ui" : {
"optional" : true
} ,
"happy-dom" : {
"optional" : true
} ,
"jsdom" : {
"optional" : true
}
}
} ,
"node_modules/vitest/node_modules/@esbuild/aix-ppc64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz" ,
"integrity" : "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"aix"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/android-arm" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz" ,
"integrity" : "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/android-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz" ,
"integrity" : "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/android-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz" ,
"integrity" : "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"android"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/darwin-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz" ,
"integrity" : "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/darwin-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz" ,
"integrity" : "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"darwin"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/freebsd-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz" ,
"integrity" : "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/freebsd-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz" ,
"integrity" : "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"freebsd"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-arm" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz" ,
"integrity" : "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==" ,
"cpu" : [
"arm"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz" ,
"integrity" : "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-ia32" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz" ,
"integrity" : "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-loong64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz" ,
"integrity" : "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==" ,
"cpu" : [
"loong64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-mips64el" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz" ,
"integrity" : "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==" ,
"cpu" : [
"mips64el"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-ppc64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz" ,
"integrity" : "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==" ,
"cpu" : [
"ppc64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-riscv64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz" ,
"integrity" : "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==" ,
"cpu" : [
"riscv64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-s390x" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz" ,
"integrity" : "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==" ,
"cpu" : [
"s390x"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/linux-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz" ,
"integrity" : "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"linux"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/netbsd-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz" ,
"integrity" : "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"netbsd"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/openbsd-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz" ,
"integrity" : "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"openbsd"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/sunos-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz" ,
"integrity" : "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"sunos"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/win32-arm64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz" ,
"integrity" : "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==" ,
"cpu" : [
"arm64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/win32-ia32" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz" ,
"integrity" : "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==" ,
"cpu" : [
"ia32"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/@esbuild/win32-x64" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz" ,
"integrity" : "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==" ,
"cpu" : [
"x64"
] ,
"dev" : true ,
"license" : "MIT" ,
"optional" : true ,
"os" : [
"win32"
] ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/vitest/node_modules/esbuild" : {
"version" : "0.21.5" ,
"resolved" : "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz" ,
"integrity" : "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==" ,
"dev" : true ,
"hasInstallScript" : true ,
"license" : "MIT" ,
"bin" : {
"esbuild" : "bin/esbuild"
} ,
"engines" : {
"node" : ">=12"
} ,
"optionalDependencies" : {
"@esbuild/aix-ppc64" : "0.21.5" ,
"@esbuild/android-arm" : "0.21.5" ,
"@esbuild/android-arm64" : "0.21.5" ,
"@esbuild/android-x64" : "0.21.5" ,
"@esbuild/darwin-arm64" : "0.21.5" ,
"@esbuild/darwin-x64" : "0.21.5" ,
"@esbuild/freebsd-arm64" : "0.21.5" ,
"@esbuild/freebsd-x64" : "0.21.5" ,
"@esbuild/linux-arm" : "0.21.5" ,
"@esbuild/linux-arm64" : "0.21.5" ,
"@esbuild/linux-ia32" : "0.21.5" ,
"@esbuild/linux-loong64" : "0.21.5" ,
"@esbuild/linux-mips64el" : "0.21.5" ,
"@esbuild/linux-ppc64" : "0.21.5" ,
"@esbuild/linux-riscv64" : "0.21.5" ,
"@esbuild/linux-s390x" : "0.21.5" ,
"@esbuild/linux-x64" : "0.21.5" ,
"@esbuild/netbsd-x64" : "0.21.5" ,
"@esbuild/openbsd-x64" : "0.21.5" ,
"@esbuild/sunos-x64" : "0.21.5" ,
"@esbuild/win32-arm64" : "0.21.5" ,
"@esbuild/win32-ia32" : "0.21.5" ,
"@esbuild/win32-x64" : "0.21.5"
}
} ,
"node_modules/vitest/node_modules/vite" : {
"version" : "5.4.21" ,
"resolved" : "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz" ,
"integrity" : "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"esbuild" : "^0.21.3" ,
"postcss" : "^8.4.43" ,
"rollup" : "^4.20.0"
} ,
"bin" : {
"vite" : "bin/vite.js"
} ,
"engines" : {
"node" : "^18.0.0 || >=20.0.0"
} ,
"funding" : {
"url" : "https://github.com/vitejs/vite?sponsor=1"
} ,
"optionalDependencies" : {
"fsevents" : "~2.3.3"
} ,
"peerDependencies" : {
"@types/node" : "^18.0.0 || >=20.0.0" ,
"less" : "*" ,
"lightningcss" : "^1.21.0" ,
"sass" : "*" ,
"sass-embedded" : "*" ,
"stylus" : "*" ,
"sugarss" : "*" ,
"terser" : "^5.4.0"
} ,
"peerDependenciesMeta" : {
"@types/node" : {
"optional" : true
} ,
"less" : {
"optional" : true
} ,
"lightningcss" : {
"optional" : true
} ,
"sass" : {
"optional" : true
} ,
"sass-embedded" : {
"optional" : true
} ,
"stylus" : {
"optional" : true
} ,
"sugarss" : {
"optional" : true
} ,
"terser" : {
"optional" : true
}
}
} ,
"node_modules/w3c-xmlserializer" : {
"version" : "5.0.0" ,
"resolved" : "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz" ,
"integrity" : "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"xml-name-validator" : "^5.0.0"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/wait-port" : {
"version" : "1.1.0" ,
"resolved" : "https://registry.npmjs.org/wait-port/-/wait-port-1.1.0.tgz" ,
"integrity" : "sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"chalk" : "^4.1.2" ,
"commander" : "^9.3.0" ,
"debug" : "^4.3.4"
} ,
"bin" : {
"wait-port" : "bin/wait-port.js"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/wait-port/node_modules/chalk" : {
"version" : "4.1.2" ,
"resolved" : "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" ,
"integrity" : "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-styles" : "^4.1.0" ,
"supports-color" : "^7.1.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/chalk?sponsor=1"
}
} ,
"node_modules/wait-port/node_modules/commander" : {
"version" : "9.5.0" ,
"resolved" : "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" ,
"integrity" : "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "^12.20.0 || >=14"
}
} ,
"node_modules/webdriver" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/webdriver/-/webdriver-9.25.0.tgz" ,
"integrity" : "sha512-XnABKdrp83zX3xVltmX0OcFzn8zOzWGtZQxIUKY0+INB0g9Nnnfu7G75W0G+0y4nyb3zH8mavGzDBiXctdEd3Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/node" : "^20.1.0" ,
"@types/ws" : "^8.5.3" ,
"@wdio/config" : "9.25.0" ,
"@wdio/logger" : "9.18.0" ,
"@wdio/protocols" : "9.25.0" ,
"@wdio/types" : "9.25.0" ,
"@wdio/utils" : "9.25.0" ,
"deepmerge-ts" : "^7.0.3" ,
"https-proxy-agent" : "^7.0.6" ,
"undici" : "^6.21.3" ,
"ws" : "^8.8.0"
} ,
"engines" : {
"node" : ">=18.20.0"
}
} ,
"node_modules/webdriver/node_modules/undici" : {
"version" : "6.24.1" ,
"resolved" : "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz" ,
"integrity" : "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18.17"
}
} ,
"node_modules/webdriverio" : {
"version" : "9.25.0" ,
"resolved" : "https://registry.npmjs.org/webdriverio/-/webdriverio-9.25.0.tgz" ,
"integrity" : "sha512-ualC/LtWGjL5rwGAbUUzURKqKoHJG2/qecEppcS9k4n1IX3MlbzGXuL/qpXiRbs/h4981HpRbZAKBxRYqwUe3g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"@types/node" : "^20.11.30" ,
"@types/sinonjs__fake-timers" : "^8.1.5" ,
"@wdio/config" : "9.25.0" ,
"@wdio/logger" : "9.18.0" ,
"@wdio/protocols" : "9.25.0" ,
"@wdio/repl" : "9.16.2" ,
"@wdio/types" : "9.25.0" ,
"@wdio/utils" : "9.25.0" ,
"archiver" : "^7.0.1" ,
"aria-query" : "^5.3.0" ,
"cheerio" : "^1.0.0-rc.12" ,
"css-shorthand-properties" : "^1.1.1" ,
"css-value" : "^0.0.1" ,
"grapheme-splitter" : "^1.0.4" ,
"htmlfy" : "^0.8.1" ,
"is-plain-obj" : "^4.1.0" ,
"jszip" : "^3.10.1" ,
"lodash.clonedeep" : "^4.5.0" ,
"lodash.zip" : "^4.2.0" ,
"query-selector-shadow-dom" : "^1.0.1" ,
"resq" : "^1.11.0" ,
"rgb2hex" : "0.2.5" ,
"serialize-error" : "^12.0.0" ,
"urlpattern-polyfill" : "^10.0.0" ,
"webdriver" : "9.25.0"
} ,
"engines" : {
"node" : ">=18.20.0"
} ,
"peerDependencies" : {
"puppeteer-core" : ">=22.x || <=24.x"
} ,
"peerDependenciesMeta" : {
"puppeteer-core" : {
"optional" : true
}
}
} ,
"node_modules/webidl-conversions" : {
"version" : "7.0.0" ,
"resolved" : "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" ,
"integrity" : "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" ,
"dev" : true ,
"license" : "BSD-2-Clause" ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/whatwg-encoding" : {
"version" : "3.1.1" ,
"resolved" : "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz" ,
"integrity" : "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==" ,
"deprecated" : "Use @exodus/bytes instead for a more spec-conformant and faster implementation" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"iconv-lite" : "0.6.3"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/whatwg-encoding/node_modules/iconv-lite" : {
"version" : "0.6.3" ,
"resolved" : "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" ,
"integrity" : "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"safer-buffer" : ">= 2.1.2 < 3.0.0"
} ,
"engines" : {
"node" : ">=0.10.0"
}
} ,
"node_modules/whatwg-mimetype" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz" ,
"integrity" : "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/whatwg-url" : {
"version" : "14.2.0" ,
"resolved" : "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz" ,
"integrity" : "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"tr46" : "^5.1.0" ,
"webidl-conversions" : "^7.0.0"
} ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/which" : {
"version" : "2.0.2" ,
"resolved" : "https://registry.npmjs.org/which/-/which-2.0.2.tgz" ,
"integrity" : "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" ,
"dev" : true ,
"license" : "ISC" ,
"dependencies" : {
"isexe" : "^2.0.0"
} ,
"bin" : {
"node-which" : "bin/node-which"
} ,
"engines" : {
"node" : ">= 8"
}
} ,
"node_modules/why-is-node-running" : {
"version" : "2.3.0" ,
"resolved" : "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz" ,
"integrity" : "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"siginfo" : "^2.0.0" ,
"stackback" : "0.0.2"
} ,
"bin" : {
"why-is-node-running" : "cli.js"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/workerpool" : {
"version" : "6.5.1" ,
"resolved" : "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz" ,
"integrity" : "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==" ,
"dev" : true ,
"license" : "Apache-2.0"
} ,
"node_modules/wrap-ansi" : {
"version" : "6.2.0" ,
"resolved" : "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" ,
"integrity" : "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-styles" : "^4.0.0" ,
"string-width" : "^4.1.0" ,
"strip-ansi" : "^6.0.0"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/wrap-ansi-cjs" : {
"name" : "wrap-ansi" ,
"version" : "7.0.0" ,
"resolved" : "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" ,
"integrity" : "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-styles" : "^4.0.0" ,
"string-width" : "^4.1.0" ,
"strip-ansi" : "^6.0.0"
} ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/chalk/wrap-ansi?sponsor=1"
}
} ,
"node_modules/wrap-ansi-cjs/node_modules/ansi-regex" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" ,
"integrity" : "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/wrap-ansi-cjs/node_modules/emoji-regex" : {
"version" : "8.0.0" ,
"resolved" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" ,
"integrity" : "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/wrap-ansi-cjs/node_modules/string-width" : {
"version" : "4.2.3" ,
"resolved" : "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" ,
"integrity" : "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"emoji-regex" : "^8.0.0" ,
"is-fullwidth-code-point" : "^3.0.0" ,
"strip-ansi" : "^6.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/wrap-ansi-cjs/node_modules/strip-ansi" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" ,
"integrity" : "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-regex" : "^5.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/wrap-ansi/node_modules/ansi-regex" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" ,
"integrity" : "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/wrap-ansi/node_modules/emoji-regex" : {
"version" : "8.0.0" ,
"resolved" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" ,
"integrity" : "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/wrap-ansi/node_modules/string-width" : {
"version" : "4.2.3" ,
"resolved" : "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" ,
"integrity" : "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"emoji-regex" : "^8.0.0" ,
"is-fullwidth-code-point" : "^3.0.0" ,
"strip-ansi" : "^6.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/wrap-ansi/node_modules/strip-ansi" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" ,
"integrity" : "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-regex" : "^5.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/wrappy" : {
"version" : "1.0.2" ,
"resolved" : "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" ,
"integrity" : "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/ws" : {
"version" : "8.19.0" ,
"resolved" : "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz" ,
"integrity" : "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10.0.0"
} ,
"peerDependencies" : {
"bufferutil" : "^4.0.1" ,
"utf-8-validate" : ">=5.0.2"
} ,
"peerDependenciesMeta" : {
"bufferutil" : {
"optional" : true
} ,
"utf-8-validate" : {
"optional" : true
}
}
} ,
"node_modules/xml-name-validator" : {
"version" : "5.0.0" ,
"resolved" : "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz" ,
"integrity" : "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==" ,
"dev" : true ,
"license" : "Apache-2.0" ,
"engines" : {
"node" : ">=18"
}
} ,
"node_modules/xmlchars" : {
"version" : "2.2.0" ,
"resolved" : "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" ,
"integrity" : "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/y18n" : {
"version" : "5.0.8" ,
"resolved" : "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" ,
"integrity" : "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/yallist" : {
"version" : "3.1.1" ,
"resolved" : "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" ,
"integrity" : "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" ,
"dev" : true ,
"license" : "ISC"
} ,
"node_modules/yaml" : {
2026-04-03 13:05:58 +00:00
"version" : "2.8.3" ,
"resolved" : "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz" ,
"integrity" : "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==" ,
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
"license" : "ISC" ,
2026-04-03 13:05:58 +00:00
"optional" : true ,
"peer" : true ,
"bin" : {
"yaml" : "bin.mjs"
} ,
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
"engines" : {
2026-04-03 13:05:58 +00:00
"node" : ">= 14.6"
} ,
"funding" : {
"url" : "https://github.com/sponsors/eemeli"
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
}
} ,
"node_modules/yargs" : {
"version" : "17.7.2" ,
"resolved" : "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" ,
"integrity" : "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"cliui" : "^8.0.1" ,
"escalade" : "^3.1.1" ,
"get-caller-file" : "^2.0.5" ,
"require-directory" : "^2.1.1" ,
"string-width" : "^4.2.3" ,
"y18n" : "^5.0.5" ,
"yargs-parser" : "^21.1.1"
} ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/yargs-parser" : {
"version" : "20.2.9" ,
"resolved" : "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" ,
"integrity" : "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/yargs-unparser" : {
"version" : "2.0.0" ,
"resolved" : "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" ,
"integrity" : "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"camelcase" : "^6.0.0" ,
"decamelize" : "^4.0.0" ,
"flat" : "^5.0.2" ,
"is-plain-obj" : "^2.1.0"
} ,
"engines" : {
"node" : ">=10"
}
} ,
"node_modules/yargs-unparser/node_modules/decamelize" : {
"version" : "4.0.0" ,
"resolved" : "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" ,
"integrity" : "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/yargs-unparser/node_modules/is-plain-obj" : {
"version" : "2.1.0" ,
"resolved" : "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" ,
"integrity" : "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/yargs/node_modules/ansi-regex" : {
"version" : "5.0.1" ,
"resolved" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" ,
"integrity" : "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/yargs/node_modules/emoji-regex" : {
"version" : "8.0.0" ,
"resolved" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" ,
"integrity" : "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" ,
"dev" : true ,
"license" : "MIT"
} ,
"node_modules/yargs/node_modules/string-width" : {
"version" : "4.2.3" ,
"resolved" : "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" ,
"integrity" : "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"emoji-regex" : "^8.0.0" ,
"is-fullwidth-code-point" : "^3.0.0" ,
"strip-ansi" : "^6.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/yargs/node_modules/strip-ansi" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" ,
"integrity" : "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"ansi-regex" : "^5.0.1"
} ,
"engines" : {
"node" : ">=8"
}
} ,
"node_modules/yargs/node_modules/yargs-parser" : {
"version" : "21.1.1" ,
"resolved" : "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" ,
"integrity" : "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" ,
"dev" : true ,
"license" : "ISC" ,
"engines" : {
"node" : ">=12"
}
} ,
"node_modules/yauzl" : {
"version" : "2.10.0" ,
"resolved" : "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" ,
"integrity" : "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"buffer-crc32" : "~0.2.3" ,
"fd-slicer" : "~1.1.0"
}
} ,
"node_modules/yauzl/node_modules/buffer-crc32" : {
"version" : "0.2.13" ,
"resolved" : "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" ,
"integrity" : "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : "*"
}
} ,
"node_modules/yocto-queue" : {
"version" : "0.1.0" ,
"resolved" : "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" ,
"integrity" : "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=10"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/yoctocolors" : {
"version" : "2.1.2" ,
"resolved" : "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz" ,
"integrity" : "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/yoctocolors-cjs" : {
"version" : "2.1.3" ,
"resolved" : "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz" ,
"integrity" : "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==" ,
"dev" : true ,
"license" : "MIT" ,
"engines" : {
"node" : ">=18"
} ,
"funding" : {
"url" : "https://github.com/sponsors/sindresorhus"
}
} ,
"node_modules/zip-stream" : {
"version" : "6.0.1" ,
"resolved" : "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz" ,
"integrity" : "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==" ,
"dev" : true ,
"license" : "MIT" ,
"dependencies" : {
"archiver-utils" : "^5.0.0" ,
"compress-commons" : "^6.0.2" ,
"readable-stream" : "^4.0.0"
} ,
"engines" : {
"node" : ">= 14"
}
} ,
"node_modules/zustand" : {
"version" : "4.5.7" ,
"resolved" : "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz" ,
"integrity" : "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==" ,
"license" : "MIT" ,
"dependencies" : {
"use-sync-external-store" : "^1.2.2"
} ,
"engines" : {
"node" : ">=12.7.0"
} ,
"peerDependencies" : {
"@types/react" : ">=16.8" ,
"immer" : ">=9.0.6" ,
"react" : ">=16.8"
} ,
"peerDependenciesMeta" : {
"@types/react" : {
"optional" : true
} ,
"immer" : {
"optional" : true
} ,
"react" : {
"optional" : true
}
}
} ,
"node_modules/zwitch" : {
"version" : "2.0.4" ,
"resolved" : "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" ,
"integrity" : "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==" ,
"license" : "MIT" ,
"funding" : {
"type" : "github" ,
"url" : "https://github.com/sponsors/wooorm"
}
}
}
}