tftsr-devops_investigation/node_modules/vfile-message
Shaun Arman 8839075805 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-14 22:36:25 -05:00
..
lib feat: initial implementation of TFTSR IT Triage & RCA application 2026-03-14 22:36:25 -05:00
index.d.ts feat: initial implementation of TFTSR IT Triage & RCA application 2026-03-14 22:36:25 -05:00
index.js feat: initial implementation of TFTSR IT Triage & RCA application 2026-03-14 22:36:25 -05:00
license feat: initial implementation of TFTSR IT Triage & RCA application 2026-03-14 22:36:25 -05:00
package.json feat: initial implementation of TFTSR IT Triage & RCA application 2026-03-14 22:36:25 -05:00
readme.md feat: initial implementation of TFTSR IT Triage & RCA application 2026-03-14 22:36:25 -05:00

vfile-message

Build Coverage Downloads Size

Create vfile messages.

Contents

What is this?

This package provides a (lint) message format.

When should I use this?

In most cases, you can use file.message from VFile itself, but in some cases you might not have a file, and still want to emit warnings or errors, in which case this can be used directly.

Install

This package is ESM only. In Node.js (version 16+), install with npm:

npm install vfile-message

In Deno with esm.sh:

import {VFileMessage} from 'https://esm.sh/vfile-message@4'

In browsers with esm.sh:

<script type="module">
  import {VFileMessage} from 'https://esm.sh/vfile-message@4?bundle'
</script>

Use

import {VFileMessage} from 'vfile-message'

const message = new VFileMessage(
  'Unexpected unknown word `braavo`, did you mean `bravo`?',
  {place: {column: 8, line: 1}, ruleId: 'typo', source: 'spell'}
)

console.log(message)

Yields:

[1:8: Unexpected unknown word `braavo`, did you mean `bravo`?] {
  reason: 'Unexpected unknown word `braavo`, did you mean `bravo`?',
  line: 1,
  column: 8,
  ancestors: undefined,
  cause: undefined,
  fatal: undefined,
  place: {line: 1, column: 8},
  ruleId: 'typo',
  source: 'spell'
}

API

This package exports the identifier VFileMessage. There is no default export. It exports the additional TypeScript type Options.

VFileMessage(reason[, options])

Create a message for reason.

🪦 Note: also has obsolete signatures.

Parameters
  • reason (string) — reason for message (should use markdown)
  • options (Options, optional) — configuration.
Extends

Error.

Returns

Instance of VFileMessage.

Fields
  • ancestors (Array<Node> or undefined) — stack of (inclusive) ancestor nodes surrounding the message
  • cause (Error or undefined) — original error cause of the message
  • column (number or undefined) — starting column of message
  • fatal (boolean or undefined) — state of problem; true: error, file not usable; false: warning, change may be needed; undefined: info, change likely not needed
  • line (number or undefined) — starting line of message
  • place (Point, Position or undefined) — place of message
  • reason (string) — reason for message (should use markdown)
  • ruleId (string or undefined, example: 'my-rule') — category of message
  • source (string or undefined, example: 'my-package') — namespace of message

Options

Configuration (TypeScript type).

Fields
  • ancestors (Array<Node>, optional) — stack of (inclusive) ancestor nodes surrounding the message
  • cause (Error, optional) — original error cause of the message
  • place (Point or Position, optional) — place of message
  • ruleId (string, optional, example: 'my-rule') — category of message
  • source (string, optional, , example: 'my-package') — namespace of who sent the message

Well-known

Its OK to store custom data directly on the VFileMessage, some of those are handled by utilities. The following fields are documented and typed here.

Fields
  • actual (string, optional) — specify the source value thats being reported, which is deemed incorrect
  • expected (Array<string>, optional) — suggest acceptable values that can be used instead of actual
  • url (string, optional) — link to docs for the message (this must be an absolute URL that can be passed as x to new URL(x))
  • note (string, optional) — long form description of the message (you should use markdown)

Compatibility

Projects maintained by the unified collective are compatible with maintained versions of Node.js.

When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, vfile-message@^4, compatible with Node.js 16.

Contribute

See contributing.md in vfile/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MIT © Titus Wormer