Some checks failed
Test / rust-fmt-check (pull_request) Failing after 0s
Test / rust-clippy (pull_request) Failing after 1s
Test / rust-tests (pull_request) Failing after 0s
Test / frontend-typecheck (pull_request) Failing after 16s
Test / frontend-tests (pull_request) Failing after 18s
PR Review Automation / review (pull_request) Failing after 4m13s
Complete backport of all features from apollo_nxt-trcaa repository: - Three-tier shell execution safety system (Tier 1: auto, Tier 2: approve, Tier 3: deny) - Ollama function calling with tool use support - AI provider tool calling auto-detection - kubectl binary bundling and management - kubeconfig upload and context management - Shell approval modal with real-time UI - MCP protocol HTTP transport with custom headers - Enhanced security audit logging - Comprehensive test coverage (275+ tests) - Updated CI/CD workflows for Gitea Actions - Complete documentation (ADRs, wiki, release notes) Sanitization applied to all files: - Removed all MSI, Motorola, VNXT, Vesta references - Replaced internal infrastructure references with TFTSR equivalents - Updated all URLs and API endpoints - Sanitized commit history references in documentation Technical changes: - New modules: shell/classifier, shell/executor, shell/kubectl, shell/kubeconfig - Enhanced AI providers: ollama.rs, openai.rs with function calling - New Tauri commands: shell execution, kubeconfig management, tool calling detection - Database migrations: shell_execution_audit table - Frontend: ShellApprovalModal, ShellExecution, KubeconfigManager pages - CI/CD: kubectl bundling, multi-platform builds, Gitea Actions integration Version: 1.0.8 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
76 lines
1.7 KiB
TypeScript
76 lines
1.7 KiB
TypeScript
import { join } from "path";
|
|
import { spawn } from "child_process";
|
|
import type { Options } from "@wdio/types";
|
|
|
|
// Path to the tauri-driver binary
|
|
const tauriDriver = join(
|
|
__dirname,
|
|
"../../node_modules",
|
|
".bin",
|
|
"tauri-driver"
|
|
);
|
|
|
|
// Path to the compiled TRCAA binary
|
|
const getBinaryPath = () => {
|
|
const envPath = process.env.TAURI_BINARY_PATH;
|
|
if (envPath) return envPath;
|
|
|
|
const platform = process.platform;
|
|
if (platform === "win32") {
|
|
return join(__dirname, "../../src-tauri/target/release/trcaa.exe");
|
|
}
|
|
return join(__dirname, "../../src-tauri/target/release/trcaa");
|
|
};
|
|
|
|
let driverProcess: ReturnType<typeof spawn> | null = null;
|
|
|
|
export const config: Options.Testrunner = {
|
|
hostname: "localhost",
|
|
port: 4444,
|
|
path: "/",
|
|
specs: ["./specs/**/*.spec.ts"],
|
|
exclude: [],
|
|
maxInstances: 1,
|
|
capabilities: [
|
|
{
|
|
maxInstances: 1,
|
|
browserName: "",
|
|
"tauri:options": {
|
|
application: getBinaryPath(),
|
|
},
|
|
acceptInsecureCerts: true,
|
|
},
|
|
],
|
|
logLevel: "info",
|
|
bail: 0,
|
|
waitforTimeout: 10000,
|
|
connectionRetryTimeout: 120000,
|
|
connectionRetryCount: 3,
|
|
|
|
services: [
|
|
{
|
|
onPrepare: async () => {
|
|
// Start tauri-driver before tests
|
|
driverProcess = spawn(tauriDriver, [], {
|
|
stdio: [null, process.stdout, process.stderr],
|
|
env: process.env,
|
|
});
|
|
// Wait for driver to be ready
|
|
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
},
|
|
onComplete: async () => {
|
|
if (driverProcess) {
|
|
driverProcess.kill();
|
|
}
|
|
},
|
|
},
|
|
],
|
|
|
|
framework: "mocha",
|
|
reporters: ["spec"],
|
|
mochaOpts: {
|
|
ui: "bdd",
|
|
timeout: 60000,
|
|
},
|
|
};
|