tftsr-devops_investigation/node_modules/socks/typings/common/constants.d.ts
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

152 lines
4.6 KiB
TypeScript

/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { Duplex } from 'stream';
import { Socket, SocketConnectOpts } from 'net';
declare const DEFAULT_TIMEOUT = 30000;
type SocksProxyType = 4 | 5;
declare const ERRORS: {
InvalidSocksCommand: string;
InvalidSocksCommandForOperation: string;
InvalidSocksCommandChain: string;
InvalidSocksClientOptionsDestination: string;
InvalidSocksClientOptionsExistingSocket: string;
InvalidSocksClientOptionsProxy: string;
InvalidSocksClientOptionsTimeout: string;
InvalidSocksClientOptionsProxiesLength: string;
InvalidSocksClientOptionsCustomAuthRange: string;
InvalidSocksClientOptionsCustomAuthOptions: string;
NegotiationError: string;
SocketClosed: string;
ProxyConnectionTimedOut: string;
InternalError: string;
InvalidSocks4HandshakeResponse: string;
Socks4ProxyRejectedConnection: string;
InvalidSocks4IncomingConnectionResponse: string;
Socks4ProxyRejectedIncomingBoundConnection: string;
InvalidSocks5InitialHandshakeResponse: string;
InvalidSocks5IntiailHandshakeSocksVersion: string;
InvalidSocks5InitialHandshakeNoAcceptedAuthType: string;
InvalidSocks5InitialHandshakeUnknownAuthType: string;
Socks5AuthenticationFailed: string;
InvalidSocks5FinalHandshake: string;
InvalidSocks5FinalHandshakeRejected: string;
InvalidSocks5IncomingConnectionResponse: string;
Socks5ProxyRejectedIncomingBoundConnection: string;
};
declare const SOCKS_INCOMING_PACKET_SIZES: {
Socks5InitialHandshakeResponse: number;
Socks5UserPassAuthenticationResponse: number;
Socks5ResponseHeader: number;
Socks5ResponseIPv4: number;
Socks5ResponseIPv6: number;
Socks5ResponseHostname: (hostNameLength: number) => number;
Socks4Response: number;
};
type SocksCommandOption = 'connect' | 'bind' | 'associate';
declare enum SocksCommand {
connect = 1,
bind = 2,
associate = 3
}
declare enum Socks4Response {
Granted = 90,
Failed = 91,
Rejected = 92,
RejectedIdent = 93
}
declare enum Socks5Auth {
NoAuth = 0,
GSSApi = 1,
UserPass = 2
}
declare const SOCKS5_CUSTOM_AUTH_START = 128;
declare const SOCKS5_CUSTOM_AUTH_END = 254;
declare const SOCKS5_NO_ACCEPTABLE_AUTH = 255;
declare enum Socks5Response {
Granted = 0,
Failure = 1,
NotAllowed = 2,
NetworkUnreachable = 3,
HostUnreachable = 4,
ConnectionRefused = 5,
TTLExpired = 6,
CommandNotSupported = 7,
AddressNotSupported = 8
}
declare enum Socks5HostType {
IPv4 = 1,
Hostname = 3,
IPv6 = 4
}
declare enum SocksClientState {
Created = 0,
Connecting = 1,
Connected = 2,
SentInitialHandshake = 3,
ReceivedInitialHandshakeResponse = 4,
SentAuthentication = 5,
ReceivedAuthenticationResponse = 6,
SentFinalHandshake = 7,
ReceivedFinalResponse = 8,
BoundWaitingForConnection = 9,
Established = 10,
Disconnected = 11,
Error = 99
}
/**
* Represents a SocksProxy
*/
interface SocksProxy {
ipaddress?: string;
host?: string;
port: number;
type: SocksProxyType;
userId?: string;
password?: string;
custom_auth_method?: number;
custom_auth_request_handler?: () => Promise<Buffer>;
custom_auth_response_size?: number;
custom_auth_response_handler?: (data: Buffer) => Promise<boolean>;
}
/**
* Represents a remote host
*/
interface SocksRemoteHost {
host: string;
port: number;
}
/**
* SocksClient connection options.
*/
interface SocksClientOptions {
command: SocksCommandOption;
destination: SocksRemoteHost;
proxy: SocksProxy;
timeout?: number;
existing_socket?: Duplex;
set_tcp_nodelay?: boolean;
socket_options?: SocketConnectOpts;
}
/**
* SocksClient chain connection options.
*/
interface SocksClientChainOptions {
command: 'connect';
destination: SocksRemoteHost;
proxies: SocksProxy[];
timeout?: number;
randomizeChain?: false;
}
interface SocksClientEstablishedEvent {
socket: Socket;
remoteHost?: SocksRemoteHost;
}
type SocksClientBoundEvent = SocksClientEstablishedEvent;
interface SocksUDPFrameDetails {
frameNumber?: number;
remoteHost: SocksRemoteHost;
data: Buffer;
}
export { DEFAULT_TIMEOUT, ERRORS, SocksProxyType, SocksCommand, Socks4Response, Socks5Auth, Socks5HostType, Socks5Response, SocksClientState, SocksProxy, SocksRemoteHost, SocksCommandOption, SocksClientOptions, SocksClientChainOptions, SocksClientEstablishedEvent, SocksClientBoundEvent, SocksUDPFrameDetails, SOCKS_INCOMING_PACKET_SIZES, SOCKS5_CUSTOM_AUTH_START, SOCKS5_CUSTOM_AUTH_END, SOCKS5_NO_ACCEPTABLE_AUTH, };