tftsr-devops_investigation/node_modules/inquirer/dist/esm/index.js

68 lines
1.7 KiB
JavaScript
Raw Normal View History

feat: initial implementation of TFTSR IT Triage & RCA application Implements Phases 1-8 of the TFTSR implementation plan. Rust backend (Tauri 2.x, src-tauri/): - Multi-provider AI: OpenAI-compatible, Anthropic, Gemini, Mistral, Ollama - PII detection engine: 11 regex patterns with overlap resolution - SQLCipher AES-256 encrypted database with 10 versioned migrations - 28 Tauri IPC commands for triage, analysis, document, and system ops - Ollama: hardware probe, model recommendations, pull/delete with events - RCA and blameless post-mortem Markdown document generators - PDF export via printpdf - Audit log: SHA-256 hash of every external data send - Integration stubs for Confluence, ServiceNow, Azure DevOps (v0.2) Frontend (React 18 + TypeScript + Vite, src/): - 9 pages: full triage workflow NewIssue→LogUpload→Triage→Resolution→RCA→Postmortem→History+Settings - 7 components: ChatWindow, TriageProgress, PiiDiffViewer, DocEditor, HardwareReport, ModelSelector, UI primitives - 3 Zustand stores: session, settings (persisted), history - Type-safe tauriCommands.ts matching Rust backend types exactly - 8 IT domain system prompts (Linux, Windows, Network, K8s, DB, Virt, HW, Obs) DevOps: - .woodpecker/test.yml: rustfmt, clippy, cargo test, tsc, vitest on every push - .woodpecker/release.yml: linux/amd64 + linux/arm64 builds, Gogs release upload Verified: - cargo check: zero errors - tsc --noEmit: zero errors - vitest run: 13/13 unit tests passing Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 03:36:25 +00:00
/**
* Inquirer.js
* A collection of common interactive command line user interfaces.
*/
import { input, select, number, confirm, rawlist, expand, checkbox, password, editor, search, Separator, } from '@inquirer/prompts';
import PromptsRunner from "./ui/prompt.js";
const builtInPrompts = {
input,
select,
/** @deprecated `list` is now named `select` */
list: select,
number,
confirm,
rawlist,
expand,
checkbox,
password,
editor,
search,
};
/**
* Create a new self-contained prompt module.
*/
export function createPromptModule(opt) {
function promptModule(questions, answers) {
const runner = new PromptsRunner(promptModule.prompts, opt);
const promptPromise = runner.run(questions, answers);
return Object.assign(promptPromise, { ui: runner });
}
promptModule.prompts = { ...builtInPrompts };
/**
* Register a prompt type
*/
promptModule.registerPrompt = function (name, prompt) {
promptModule.prompts[name] = prompt;
return this;
};
/**
* Register the defaults provider prompts
*/
promptModule.restoreDefaultPrompts = function () {
promptModule.prompts = { ...builtInPrompts };
};
return promptModule;
}
/**
* Public CLI helper interface
*/
const prompt = createPromptModule();
// Expose helper functions on the top level for easiest usage by common users
function registerPrompt(name, newPrompt) {
prompt.registerPrompt(name, newPrompt);
}
function restoreDefaultPrompts() {
prompt.restoreDefaultPrompts();
}
const inquirer = {
prompt,
ui: {
Prompt: PromptsRunner,
},
createPromptModule,
registerPrompt,
restoreDefaultPrompts,
Separator,
};
export default inquirer;