diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 52c5114f1e3..0153ae2449b 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -32,5 +32,5 @@ "tailwindcss": "^4.0.0", "vite-plus": "catalog:" }, - "productName": "TritonAI Code" + "productName": "TritonAI Harness" } diff --git a/apps/desktop/scripts/electron-launcher.mjs b/apps/desktop/scripts/electron-launcher.mjs index 9fe3fa23135..1bda7c846fe 100644 --- a/apps/desktop/scripts/electron-launcher.mjs +++ b/apps/desktop/scripts/electron-launcher.mjs @@ -1,4 +1,4 @@ -// This file mostly exists because we want dev mode to say "TritonAI Code (Dev)" instead of "electron" +// This file mostly exists because we want dev mode to say "TritonAI Harness (Dev)" instead of "electron" import { spawnSync } from "node:child_process"; import { @@ -26,7 +26,7 @@ const repoRoot = resolve(desktopDir, "..", ".."); const devBundleIdSuffix = basename(repoRoot) .toLowerCase() .replaceAll(/[^a-z0-9]+/g, ""); -export const APP_DISPLAY_NAME = isDevelopment ? "TritonAI Code (Dev)" : "TritonAI Code"; +export const APP_DISPLAY_NAME = isDevelopment ? "TritonAI Harness (Dev)" : "TritonAI Harness"; export const APP_BUNDLE_ID = isDevelopment ? `edu.ucsd.ai.tritonai-code.dev.${devBundleIdSuffix || "local"}` : "edu.ucsd.ai.tritonai-code"; diff --git a/apps/desktop/src/app/DesktopApp.ts b/apps/desktop/src/app/DesktopApp.ts index 69167e75bb5..41cca978623 100644 --- a/apps/desktop/src/app/DesktopApp.ts +++ b/apps/desktop/src/app/DesktopApp.ts @@ -120,7 +120,7 @@ const handleFatalStartupError = Effect.fn("desktop.startup.handleFatalStartupErr const wasQuitting = yield* Ref.getAndSet(state.quitting, true); if (!wasQuitting) { yield* electronDialog.showErrorBox( - "TritonAI Code failed to start", + "TritonAI Harness failed to start", `Stage: ${stage}\n${message}${detail}`, ); } diff --git a/apps/desktop/src/app/DesktopAppIdentity.test.ts b/apps/desktop/src/app/DesktopAppIdentity.test.ts index 661ccb4000e..9cd4239c6e4 100644 --- a/apps/desktop/src/app/DesktopAppIdentity.test.ts +++ b/apps/desktop/src/app/DesktopAppIdentity.test.ts @@ -179,8 +179,8 @@ describe("DesktopAppIdentity", () => { const identity = yield* DesktopAppIdentity.DesktopAppIdentity; yield* identity.configure; - assert.deepEqual(calls.setName, ["TritonAI Code"]); - assert.equal(calls.setAboutPanelOptions[0]?.applicationName, "TritonAI Code"); + assert.deepEqual(calls.setName, ["TritonAI Harness"]); + assert.equal(calls.setAboutPanelOptions[0]?.applicationName, "TritonAI Harness"); assert.equal(calls.setAboutPanelOptions[0]?.applicationVersion, "1.2.3"); assert.equal(calls.setAboutPanelOptions[0]?.version, "0123456789ab"); assert.deepEqual(calls.setDockIcon, ["/icon.png"]); diff --git a/apps/desktop/src/app/DesktopEnvironment.ts b/apps/desktop/src/app/DesktopEnvironment.ts index 969707c8e15..d67837f52ab 100644 --- a/apps/desktop/src/app/DesktopEnvironment.ts +++ b/apps/desktop/src/app/DesktopEnvironment.ts @@ -81,7 +81,7 @@ export class DesktopEnvironment extends Context.Service< DesktopEnvironmentShape >()("@t3tools/desktop/app/DesktopEnvironment") {} -const APP_BASE_NAME = "TritonAI Code"; +const APP_BASE_NAME = "TritonAI Harness"; function resolveDesktopAppStageLabel(input: { readonly isDevelopment: boolean; diff --git a/apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts b/apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts index e55896b0a86..c5cbe7fd394 100644 --- a/apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts +++ b/apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts @@ -16,7 +16,8 @@ import * as IpcChannels from "../ipc/channels.ts"; import * as ElectronWindow from "../electron/ElectronWindow.ts"; const DEFAULT_SSH_PASSWORD_PROMPT_TIMEOUT_MS = 3 * 60 * 1000; -const WINDOW_UNAVAILABLE_MESSAGE = "TritonAI Code window is not available for SSH authentication."; +const WINDOW_UNAVAILABLE_MESSAGE = + "TritonAI Harness window is not available for SSH authentication."; type DesktopSshPasswordPromptResolutionInput = typeof DesktopSshPasswordPromptResolutionInputSchema.Type; diff --git a/apps/desktop/src/window/DesktopApplicationMenu.ts b/apps/desktop/src/window/DesktopApplicationMenu.ts index 2a070146b71..733888de804 100644 --- a/apps/desktop/src/window/DesktopApplicationMenu.ts +++ b/apps/desktop/src/window/DesktopApplicationMenu.ts @@ -53,7 +53,7 @@ const checkForUpdatesFromMenu: Effect.Effect< yield* electronDialog.showMessageBox({ type: "info", title: "You're up to date!", - message: `TritonAI Code ${updateState.currentVersion} is currently the newest version available.`, + message: `TritonAI Harness ${updateState.currentVersion} is currently the newest version available.`, buttons: ["OK"], }); } else if (updateState.status === "error") { diff --git a/apps/server/src/bin.ts b/apps/server/src/bin.ts index 9203c2c4d1f..bd000b9a4e4 100644 --- a/apps/server/src/bin.ts +++ b/apps/server/src/bin.ts @@ -40,7 +40,7 @@ const connectUnavailableCommand = Command.make("connect").pipe( export const makeCli = ({ cloudEnabled = hasCloudPublicConfig } = {}) => Command.make("t3", { ...sharedServerCommandFlags }).pipe( - Command.withDescription("Run the TritonAI Code server."), + Command.withDescription("Run the TritonAI Harness server."), Command.withHandler((flags) => runServerCommand(flags)), Command.withSubcommands([ startCommand, diff --git a/apps/server/src/cli/server.ts b/apps/server/src/cli/server.ts index 7a567794307..f671481a8a2 100644 --- a/apps/server/src/cli/server.ts +++ b/apps/server/src/cli/server.ts @@ -19,13 +19,13 @@ export const runServerCommand = ( }); export const startCommand = Command.make("start", { ...sharedServerCommandFlags }).pipe( - Command.withDescription("Run the TritonAI Code server."), + Command.withDescription("Run the TritonAI Harness server."), Command.withHandler((flags) => runServerCommand(flags)), ); export const serveCommand = Command.make("serve", { ...sharedServerCommandFlags }).pipe( Command.withDescription( - "Run the TritonAI Code server without opening a browser and print headless pairing details.", + "Run the TritonAI Harness server without opening a browser and print headless pairing details.", ), Command.withHandler((flags) => runServerCommand(flags, { diff --git a/apps/server/src/mcp/McpHttpServer.ts b/apps/server/src/mcp/McpHttpServer.ts index 6cde2017a9e..95b2520fd5b 100644 --- a/apps/server/src/mcp/McpHttpServer.ts +++ b/apps/server/src/mcp/McpHttpServer.ts @@ -180,7 +180,7 @@ export const PreviewToolkitRegistrationLive = Layer.mergeAll( ); const McpTransportLive = McpServer.layerHttp({ - name: "T3 Code", + name: "TritonAI Harness", version: packageJson.version, path: "/mcp", }).pipe(Layer.provide(McpAuthMiddlewareLive)); diff --git a/apps/server/src/provider/CodexDeveloperInstructions.ts b/apps/server/src/provider/CodexDeveloperInstructions.ts index b46a4ce1ba3..5f8e8f69369 100644 --- a/apps/server/src/provider/CodexDeveloperInstructions.ts +++ b/apps/server/src/provider/CodexDeveloperInstructions.ts @@ -1,8 +1,8 @@ const T3_CODE_BROWSER_TOOL_INSTRUCTIONS = ` -## T3 Code collaborative browser +## TritonAI Harness collaborative browser -You are running inside T3 Code. The \`t3-code\` MCP server is the product-native collaborative browser shared with the user. When it exposes \`preview_*\` tools, prefer those tools for browser navigation, inspection, interaction, screenshots, and recordings. +You are running inside TritonAI Harness. The \`t3-code\` MCP server is the product-native collaborative browser shared with the user. When it exposes \`preview_*\` tools, prefer those tools for browser navigation, inspection, interaction, screenshots, and recordings. For browser work, first call \`preview_status\`. If no automation-capable preview is attached, call \`preview_open\` before concluding that the browser is unavailable. Then use \`preview_navigate\`, \`preview_snapshot\`, and the focused interaction tools. Prefer snapshot-provided locators over coordinates. diff --git a/apps/server/src/provider/Layers/ClaudeProvider.ts b/apps/server/src/provider/Layers/ClaudeProvider.ts index 84744dddd39..e7674453015 100644 --- a/apps/server/src/provider/Layers/ClaudeProvider.ts +++ b/apps/server/src/provider/Layers/ClaudeProvider.ts @@ -648,7 +648,7 @@ export const checkClaudeProviderStatus = Effect.fn("checkClaudeProviderStatus")( version: null, status: "warning", auth: { status: "unknown" }, - message: "Claude is disabled in TritonAI Code settings.", + message: "Claude is disabled in TritonAI Harness settings.", }, }); } @@ -802,7 +802,7 @@ export const makePendingClaudeProvider = ( version: null, status: "warning", auth: { status: "unknown" }, - message: "Claude is disabled in TritonAI Code settings.", + message: "Claude is disabled in TritonAI Harness settings.", }, }); } diff --git a/apps/server/src/provider/Layers/CodexProvider.ts b/apps/server/src/provider/Layers/CodexProvider.ts index dced7f81be4..57b1e43491b 100644 --- a/apps/server/src/provider/Layers/CodexProvider.ts +++ b/apps/server/src/provider/Layers/CodexProvider.ts @@ -274,7 +274,7 @@ export function buildCodexInitializeParams(): CodexSchema.V1InitializeParams { return { clientInfo: { name: "t3code_desktop", - title: "TritonAI Code Desktop", + title: "TritonAI Harness Desktop", version: packageJson.version, }, capabilities: { @@ -331,7 +331,7 @@ const probeCodexAppServerProvider = Effect.fn("probeCodexAppServerProvider")(fun const initialize = yield* client.request("initialize", { clientInfo: { name: "t3code_desktop", - title: "TritonAI Code Desktop", + title: "TritonAI Harness Desktop", version: "0.1.0", }, capabilities: { @@ -407,7 +407,7 @@ const makePendingCodexProvider = ( version: null, status: "warning", auth: { status: "unknown" }, - message: "Codex is disabled in TritonAI Code settings.", + message: "Codex is disabled in TritonAI Harness settings.", }, }); } @@ -492,7 +492,7 @@ export const checkCodexProviderStatus = Effect.fn("checkCodexProviderStatus")(fu version: null, status: "warning", auth: { status: "unknown" }, - message: "Codex is disabled in TritonAI Code settings.", + message: "Codex is disabled in TritonAI Harness settings.", }, }); } diff --git a/apps/server/src/provider/Layers/CursorProvider.ts b/apps/server/src/provider/Layers/CursorProvider.ts index 71993483486..54da3e6d0b3 100644 --- a/apps/server/src/provider/Layers/CursorProvider.ts +++ b/apps/server/src/provider/Layers/CursorProvider.ts @@ -85,7 +85,7 @@ export function buildInitialCursorProviderSnapshot( version: null, status: "warning", auth: { status: "unknown" }, - message: "Cursor is disabled in TritonAI Code settings.", + message: "Cursor is disabled in TritonAI Harness settings.", }, }); } @@ -990,7 +990,7 @@ export const checkCursorProviderStatus = Effect.fn("checkCursorProviderStatus")( version: null, status: "warning", auth: { status: "unknown" }, - message: "Cursor is disabled in TritonAI Code settings.", + message: "Cursor is disabled in TritonAI Harness settings.", }, }); } diff --git a/apps/server/src/provider/Layers/GrokProvider.ts b/apps/server/src/provider/Layers/GrokProvider.ts index 35611398b4b..41e3a3d59bf 100644 --- a/apps/server/src/provider/Layers/GrokProvider.ts +++ b/apps/server/src/provider/Layers/GrokProvider.ts @@ -73,7 +73,7 @@ export function buildInitialGrokProviderSnapshot( version: null, status: "warning", auth: { status: "unknown" }, - message: "Grok is disabled in T3 Code settings.", + message: "Grok is disabled in TritonAI Harness settings.", }, }); } @@ -183,7 +183,7 @@ export const checkGrokProviderStatus = Effect.fn("checkGrokProviderStatus")(func version: null, status: "warning", auth: { status: "unknown" }, - message: "Grok is disabled in T3 Code settings.", + message: "Grok is disabled in TritonAI Harness settings.", }, }); } diff --git a/apps/server/src/provider/Layers/OpenCodeAdapter.ts b/apps/server/src/provider/Layers/OpenCodeAdapter.ts index 838c821e570..0ebe639616c 100644 --- a/apps/server/src/provider/Layers/OpenCodeAdapter.ts +++ b/apps/server/src/provider/Layers/OpenCodeAdapter.ts @@ -1132,7 +1132,7 @@ export function makeOpenCodeAdapter( ) : yield* runOpenCodeSdk("session.create", () => client.session.create({ - title: `TritonAI Code ${input.threadId}`, + title: `TritonAI Harness ${input.threadId}`, permission: buildOpenCodePermissionRules(input.runtimeMode), }), ); diff --git a/apps/server/src/provider/Layers/OpenCodeExternalSessionSync.test.ts b/apps/server/src/provider/Layers/OpenCodeExternalSessionSync.test.ts index 3e26e7bbe9d..3be4c5da096 100644 --- a/apps/server/src/provider/Layers/OpenCodeExternalSessionSync.test.ts +++ b/apps/server/src/provider/Layers/OpenCodeExternalSessionSync.test.ts @@ -222,7 +222,12 @@ describe("OpenCodeExternalSessionSync", () => { makeSession({ sessionId: "session-t3-owned", directory: KNOWN_PROJECT_ROOT, - title: `TritonAI Code ${ThreadId.make("existing-t3-thread")}`, + title: `TritonAI Harness ${ThreadId.make("existing-t3-thread")}`, + }), + makeSession({ + sessionId: "session-t3-owned-legacy", + directory: KNOWN_PROJECT_ROOT, + title: `TritonAI Code ${ThreadId.make("existing-legacy-t3-thread")}`, }), ]; const harness = makeHarnessLayer(sessions); @@ -231,9 +236,9 @@ describe("OpenCodeExternalSessionSync", () => { const sync = yield* OpenCodeExternalSessionSync; const result = yield* sync.syncOnce; expect(result).toMatchObject({ - discoveredCount: 4, + discoveredCount: 5, importedCount: 2, - skippedCount: 2, + skippedCount: 3, failedInstanceCount: 0, }); diff --git a/apps/server/src/provider/Layers/OpenCodeExternalSessionSync.ts b/apps/server/src/provider/Layers/OpenCodeExternalSessionSync.ts index f2c2d5ca9be..299ed6a0618 100644 --- a/apps/server/src/provider/Layers/OpenCodeExternalSessionSync.ts +++ b/apps/server/src/provider/Layers/OpenCodeExternalSessionSync.ts @@ -37,7 +37,7 @@ import { } from "../Services/OpenCodeExternalSessionSync.ts"; const OPENCODE_PROVIDER = ProviderDriverKind.make("opencode"); -const T3_OWNED_SESSION_TITLE_PREFIX = "TritonAI Code "; +const T3_OWNED_SESSION_TITLE_PREFIXES = ["TritonAI Harness ", "TritonAI Code "] as const; const DEFAULT_SYNC_INTERVAL_MS = 60_000; const DEFAULT_SESSION_LIST_LIMIT = 200; @@ -109,7 +109,7 @@ export function matchOpenCodeSessionToProject( } export function isT3OwnedOpenCodeSession(session: OpenCodeExternalSessionSummary): boolean { - return session.title.startsWith(T3_OWNED_SESSION_TITLE_PREFIX); + return T3_OWNED_SESSION_TITLE_PREFIXES.some((prefix) => session.title.startsWith(prefix)); } export function externalThreadIdForOpenCodeSession(input: { diff --git a/apps/server/src/provider/Layers/OpenCodeProvider.ts b/apps/server/src/provider/Layers/OpenCodeProvider.ts index fc83653f711..8d7aa4a62c2 100644 --- a/apps/server/src/provider/Layers/OpenCodeProvider.ts +++ b/apps/server/src/provider/Layers/OpenCodeProvider.ts @@ -418,8 +418,8 @@ export const makePendingOpenCodeProvider = ( auth: { status: "unknown" }, message: openCodeSettings.serverUrl.trim().length > 0 - ? "OpenCode is disabled in TritonAI Code settings. A server URL is configured." - : "OpenCode is disabled in TritonAI Code settings.", + ? "OpenCode is disabled in TritonAI Harness settings. A server URL is configured." + : "OpenCode is disabled in TritonAI Harness settings.", }, }), openCodeSettings, @@ -495,8 +495,8 @@ export const checkOpenCodeProviderStatus = Effect.fn("checkOpenCodeProviderStatu status: "warning", auth: { status: "unknown" }, message: isExternalServer - ? "OpenCode is disabled in TritonAI Code settings. A server URL is configured." - : "OpenCode is disabled in TritonAI Code settings.", + ? "OpenCode is disabled in TritonAI Harness settings. A server URL is configured." + : "OpenCode is disabled in TritonAI Harness settings.", }, }), openCodeSettings, @@ -532,7 +532,7 @@ export const checkOpenCodeProviderStatus = Effect.fn("checkOpenCodeProviderStatu [ "Unable to determine OpenCode version from `opencode --version` output.", commandDetail ? `Output: ${commandDetail}` : null, - `TritonAI Code requires OpenCode v${MINIMUM_OPENCODE_VERSION} or newer.`, + `TritonAI Harness requires OpenCode v${MINIMUM_OPENCODE_VERSION} or newer.`, ] .filter(Boolean) .join(" "), diff --git a/apps/server/src/provider/Layers/ProviderRegistry.test.ts b/apps/server/src/provider/Layers/ProviderRegistry.test.ts index 422bf8205d1..2f9d3ab7eb2 100644 --- a/apps/server/src/provider/Layers/ProviderRegistry.test.ts +++ b/apps/server/src/provider/Layers/ProviderRegistry.test.ts @@ -1609,7 +1609,7 @@ it.layer(Layer.mergeAll(NodeServices.layer, ServerSettingsService.layerTest(), T assert.strictEqual(cursorProvider?.status, "disabled"); assert.strictEqual( cursorProvider?.message, - "Cursor is disabled in TritonAI Code settings.", + "Cursor is disabled in TritonAI Harness settings.", ); assert.strictEqual(cursorSpawned, false); }).pipe(Effect.provide(runtimeServices)); @@ -1624,7 +1624,7 @@ it.layer(Layer.mergeAll(NodeServices.layer, ServerSettingsService.layerTest(), T assert.strictEqual(status.enabled, false); assert.strictEqual(status.status, "disabled"); assert.strictEqual(status.installed, false); - assert.strictEqual(status.message, "Codex is disabled in TritonAI Code settings."); + assert.strictEqual(status.message, "Codex is disabled in TritonAI Harness settings."); }), ); }); diff --git a/apps/server/src/provider/Layers/ProviderService.ts b/apps/server/src/provider/Layers/ProviderService.ts index c71fb3c9d2c..d034a883b38 100644 --- a/apps/server/src/provider/Layers/ProviderService.ts +++ b/apps/server/src/provider/Layers/ProviderService.ts @@ -556,7 +556,7 @@ const makeProviderService = Effect.fn("makeProviderService")(function* ( if (!instanceInfo.enabled) { return yield* toValidationError( "ProviderService.startSession", - `Provider instance '${resolvedInstanceId}' is disabled in TritonAI Code settings.`, + `Provider instance '${resolvedInstanceId}' is disabled in TritonAI Harness settings.`, ); } const persistedBinding = Option.getOrUndefined(yield* directory.getBinding(threadId)); diff --git a/apps/server/src/provider/providerMaintenanceRunner.ts b/apps/server/src/provider/providerMaintenanceRunner.ts index d59a1093b96..c1b9e1b29a1 100644 --- a/apps/server/src/provider/providerMaintenanceRunner.ts +++ b/apps/server/src/provider/providerMaintenanceRunner.ts @@ -361,9 +361,9 @@ export const make = Effect.fn("ProviderMaintenanceRunner.make")(function* () { startedAt, finishedAt, message: couldNotVerify - ? "Update command completed, but TritonAI Code could not verify the provider version." + ? "Update command completed, but TritonAI Harness could not verify the provider version." : stillOutdated - ? "Update command completed, but TritonAI Code still detects an outdated provider version." + ? "Update command completed, but TritonAI Harness still detects an outdated provider version." : "Provider updated.", output: commandOutput(result), }), diff --git a/apps/server/src/provider/providerStatusCache.test.ts b/apps/server/src/provider/providerStatusCache.test.ts index b4376542f27..fd83c31dec8 100644 --- a/apps/server/src/provider/providerStatusCache.test.ts +++ b/apps/server/src/provider/providerStatusCache.test.ts @@ -159,7 +159,7 @@ it.layer(NodeServices.layer)("providerStatusCache", (it) => { version: null, status: "disabled", auth: { status: "unknown" }, - message: "Codex is disabled in TritonAI Code settings.", + message: "Codex is disabled in TritonAI Harness settings.", }); assert.deepStrictEqual( diff --git a/apps/server/src/serverRuntimeStartup.ts b/apps/server/src/serverRuntimeStartup.ts index 9732c3a1ebd..5e40e94edfb 100644 --- a/apps/server/src/serverRuntimeStartup.ts +++ b/apps/server/src/serverRuntimeStartup.ts @@ -452,7 +452,7 @@ export const makeServerRuntimeStartup = Effect.gen(function* () { const startupBrowserTarget = yield* resolveStartupBrowserTarget; if (serverConfig.mode !== "desktop") { yield* Effect.logInfo( - "Authentication required. Open TritonAI Code using the pairing URL.", + "Authentication required. Open TritonAI Harness using the pairing URL.", ).pipe(Effect.annotateLogs({ pairingUrl: startupBrowserTarget })); } yield* runStartupPhase("browser.open", maybeOpenBrowser(startupBrowserTarget)); diff --git a/apps/server/src/startupAccess.ts b/apps/server/src/startupAccess.ts index 1357f70ef13..09e1a319c87 100644 --- a/apps/server/src/startupAccess.ts +++ b/apps/server/src/startupAccess.ts @@ -121,7 +121,7 @@ export const renderTerminalQrCode = (value: string, margin = 2): string => { export const formatHeadlessServeOutput = (accessInfo: HeadlessServeAccessInfo): string => [ - "TritonAI Code server is ready.", + "TritonAI Harness server is ready.", `Connection string: ${accessInfo.connectionString}`, `Token: ${accessInfo.token}`, `Pairing URL: ${accessInfo.pairingUrl}`, diff --git a/apps/server/src/textGeneration/OpenCodeTextGeneration.ts b/apps/server/src/textGeneration/OpenCodeTextGeneration.ts index db0a148f43b..dc78fc31136 100644 --- a/apps/server/src/textGeneration/OpenCodeTextGeneration.ts +++ b/apps/server/src/textGeneration/OpenCodeTextGeneration.ts @@ -260,7 +260,7 @@ export const makeOpenCodeTextGeneration = Effect.fn("makeOpenCodeTextGeneration" : {}), }); const session = await client.session.create({ - title: `TritonAI Code ${input.operation}`, + title: `TritonAI Harness ${input.operation}`, permission: [{ permission: "*", pattern: "*", action: "deny" }], }); if (!session.data) { diff --git a/apps/server/src/vcs/GitVcsDriver.ts b/apps/server/src/vcs/GitVcsDriver.ts index 418c753daf2..39617ecc679 100644 --- a/apps/server/src/vcs/GitVcsDriver.ts +++ b/apps/server/src/vcs/GitVcsDriver.ts @@ -627,9 +627,9 @@ export const makeVcsDriverShape = Effect.fn("makeGitVcsDriverShape")(function* ( const commitEnv: NodeJS.ProcessEnv = { ...process.env, GIT_INDEX_FILE: tempIndexPath, - GIT_AUTHOR_NAME: "TritonAI Code", + GIT_AUTHOR_NAME: "TritonAI Harness", GIT_AUTHOR_EMAIL: "t3code@users.noreply.github.com", - GIT_COMMITTER_NAME: "TritonAI Code", + GIT_COMMITTER_NAME: "TritonAI Harness", GIT_COMMITTER_EMAIL: "t3code@users.noreply.github.com", }; diff --git a/apps/web/index.html b/apps/web/index.html index 876a0f3c4af..5c053148a18 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -92,13 +92,13 @@ object-fit: contain; } - TritonAI Code + TritonAI Harness
-
- +
+
diff --git a/apps/web/src/branding.test.ts b/apps/web/src/branding.test.ts index 1ae8bd50b78..f3989757f20 100644 --- a/apps/web/src/branding.test.ts +++ b/apps/web/src/branding.test.ts @@ -20,9 +20,9 @@ describe("branding", () => { value: { desktopBridge: { getAppBranding: () => ({ - baseName: "TritonAI Code", + baseName: "TritonAI Harness", stageLabel: "Nightly", - displayName: "TritonAI Code (Nightly)", + displayName: "TritonAI Harness (Nightly)", }), }, }, @@ -30,9 +30,9 @@ describe("branding", () => { const branding = await import("./branding"); - expect(branding.APP_BASE_NAME).toBe("TritonAI Code"); + expect(branding.APP_BASE_NAME).toBe("TritonAI Harness"); expect(branding.APP_STAGE_LABEL).toBe("Nightly"); - expect(branding.APP_DISPLAY_NAME).toBe("TritonAI Code (Nightly)"); + expect(branding.APP_DISPLAY_NAME).toBe("TritonAI Harness (Nightly)"); }); it("normalizes hosted app channel metadata", async () => { @@ -43,7 +43,7 @@ describe("branding", () => { expect(branding.HOSTED_APP_CHANNEL).toBe("nightly"); expect(branding.HOSTED_APP_CHANNEL_LABEL).toBe("Nightly"); expect(branding.APP_STAGE_LABEL).toBe("Nightly"); - expect(branding.APP_DISPLAY_NAME).toBe("TritonAI Code (Nightly)"); + expect(branding.APP_DISPLAY_NAME).toBe("TritonAI Harness (Nightly)"); }); it("ignores unknown hosted app channels", async () => { diff --git a/apps/web/src/branding.ts b/apps/web/src/branding.ts index ce428339c51..efa40757739 100644 --- a/apps/web/src/branding.ts +++ b/apps/web/src/branding.ts @@ -15,7 +15,7 @@ export const HOSTED_APP_CHANNEL = hostedAppChannel === "latest" || hostedAppChannel === "nightly" ? hostedAppChannel : null; export const HOSTED_APP_CHANNEL_LABEL = HOSTED_APP_CHANNEL === "nightly" ? "Nightly" : HOSTED_APP_CHANNEL === "latest" ? "Latest" : null; -export const APP_BASE_NAME = injectedDesktopAppBranding?.baseName ?? "TritonAI Code"; +export const APP_BASE_NAME = injectedDesktopAppBranding?.baseName ?? "TritonAI Harness"; export const APP_STAGE_LABEL = injectedDesktopAppBranding?.stageLabel ?? HOSTED_APP_CHANNEL_LABEL ?? diff --git a/apps/web/src/cloud/linkEnvironment.ts b/apps/web/src/cloud/linkEnvironment.ts index cdc127566e6..f2af06e602b 100644 --- a/apps/web/src/cloud/linkEnvironment.ts +++ b/apps/web/src/cloud/linkEnvironment.ts @@ -84,7 +84,7 @@ function ensureRelayClientAvailable( if (status.status === "available") return; if (status.status === "unsupported") { return yield* new CloudEnvironmentLinkError({ - message: `T3 Code cannot install the relay client automatically on ${status.platform}-${status.arch}.`, + message: `TritonAI Harness cannot install the relay client automatically on ${status.platform}-${status.arch}.`, }); } @@ -106,7 +106,7 @@ function ensureRelayClientAvailable( return yield* new CloudEnvironmentLinkError({ message: installed.status === "unsupported" - ? `T3 Code cannot install the relay client automatically on ${installed.platform}-${installed.arch}.` + ? `TritonAI Harness cannot install the relay client automatically on ${installed.platform}-${installed.arch}.` : "The relay client is still unavailable after installation.", }); } diff --git a/apps/web/src/components/RightPanelTabs.tsx b/apps/web/src/components/RightPanelTabs.tsx index ead306f7c90..0df1a21706a 100644 --- a/apps/web/src/components/RightPanelTabs.tsx +++ b/apps/web/src/components/RightPanelTabs.tsx @@ -50,7 +50,7 @@ interface RightPanelTabsProps { } const SURFACE_DISABLED_REASONS = { - browser: "Browser previews are only available in the T3 Code desktop app.", + browser: "Browser previews are only available in the TritonAI Harness desktop app.", files: "Files are only available when a project is open.", diff: "Diff is only available for server threads in Git repositories.", } as const; diff --git a/apps/web/src/components/Sidebar.tsx b/apps/web/src/components/Sidebar.tsx index e5ea133e23a..0fc96124df3 100644 --- a/apps/web/src/components/Sidebar.tsx +++ b/apps/web/src/components/Sidebar.tsx @@ -2681,7 +2681,7 @@ const SidebarChromeHeader = memo(function SidebarChromeHeader({ TritonAI - Code + Harness } diff --git a/apps/web/src/components/SplashScreen.tsx b/apps/web/src/components/SplashScreen.tsx index d2021347f7d..fc10ddd18de 100644 --- a/apps/web/src/components/SplashScreen.tsx +++ b/apps/web/src/components/SplashScreen.tsx @@ -3,9 +3,13 @@ export function SplashScreen() {
- TritonAI Code + TritonAI Harness
); diff --git a/apps/web/src/components/clerk/DesktopClerkSignIn.tsx b/apps/web/src/components/clerk/DesktopClerkSignIn.tsx index dc8b432e1c7..d7e606f30a3 100644 --- a/apps/web/src/components/clerk/DesktopClerkSignIn.tsx +++ b/apps/web/src/components/clerk/DesktopClerkSignIn.tsx @@ -51,7 +51,7 @@ export function DesktopClerkSignInCard({ } > {oauthOptions.length === 0 ? ( diff --git a/apps/web/src/components/cloud/RelayClientInstallDialog.tsx b/apps/web/src/components/cloud/RelayClientInstallDialog.tsx index 78282f65915..0f9ea7ae956 100644 --- a/apps/web/src/components/cloud/RelayClientInstallDialog.tsx +++ b/apps/web/src/components/cloud/RelayClientInstallDialog.tsx @@ -69,8 +69,8 @@ export function RelayClientInstallDialog() { {isInstalling - ? "T3 Code is preparing this environment for secure access through T3 Connect." - : "T3 Code needs the relay client to make this environment available through T3 Connect."} + ? "TritonAI Harness is preparing this environment for secure access through T3 Connect." + : "TritonAI Harness needs the relay client to make this environment available through T3 Connect."} @@ -91,14 +91,14 @@ export function RelayClientInstallDialog() { value={activeStepIndex + 1} />

- Keep T3 Code open while the relay client is installed. + Keep TritonAI Harness open while the relay client is installed.

) : (

Managed relay client

- T3 Code will download and install version{" "} + TritonAI Harness will download and install version{" "} {view.status === "confirming" ? view.version : ""} locally.

diff --git a/apps/web/src/components/desktop/SshPasswordPromptDialog.tsx b/apps/web/src/components/desktop/SshPasswordPromptDialog.tsx index 4b413a67cd4..a62853e9680 100644 --- a/apps/web/src/components/desktop/SshPasswordPromptDialog.tsx +++ b/apps/web/src/components/desktop/SshPasswordPromptDialog.tsx @@ -161,7 +161,7 @@ export function SshPasswordPromptDialog() { T3 needs your SSH password to connect to{" "} {target ? {target} : "the remote host"}. The password is passed to the - local SSH process for this connection attempt and is not saved by TritonAI Code. + local SSH process for this connection attempt and is not saved by TritonAI Harness. diff --git a/apps/web/src/components/desktopUpdate.logic.test.ts b/apps/web/src/components/desktopUpdate.logic.test.ts index 5ad031f49bb..0692c21cf7d 100644 --- a/apps/web/src/components/desktopUpdate.logic.test.ts +++ b/apps/web/src/components/desktopUpdate.logic.test.ts @@ -213,7 +213,7 @@ describe("desktop update UI helpers", () => { availableVersion: "1.1.0", downloadedVersion: "1.1.1", }), - ).toContain("Install update 1.1.1 and restart TritonAI Code?"); + ).toContain("Install update 1.1.1 and restart TritonAI Harness?"); }); it("falls back to generic install confirmation copy when no version is available", () => { @@ -222,7 +222,7 @@ describe("desktop update UI helpers", () => { availableVersion: null, downloadedVersion: null, }), - ).toContain("Install update and restart TritonAI Code?"); + ).toContain("Install update and restart TritonAI Harness?"); }); }); diff --git a/apps/web/src/components/desktopUpdate.logic.ts b/apps/web/src/components/desktopUpdate.logic.ts index ccaab1ce5d4..5e0b98fbe59 100644 --- a/apps/web/src/components/desktopUpdate.logic.ts +++ b/apps/web/src/components/desktopUpdate.logic.ts @@ -44,12 +44,12 @@ export function getArm64IntelBuildWarningDescription(state: DesktopUpdateState): const action = resolveDesktopUpdateButtonAction(state); if (action === "download") { - return "This Mac has Apple Silicon, but TritonAI Code is still running the Intel build under Rosetta. Download the available update to switch to the native Apple Silicon build."; + return "This Mac has Apple Silicon, but TritonAI Harness is still running the Intel build under Rosetta. Download the available update to switch to the native Apple Silicon build."; } if (action === "install") { - return "This Mac has Apple Silicon, but TritonAI Code is still running the Intel build under Rosetta. Restart to install the downloaded Apple Silicon build."; + return "This Mac has Apple Silicon, but TritonAI Harness is still running the Intel build under Rosetta. Restart to install the downloaded Apple Silicon build."; } - return "This Mac has Apple Silicon, but TritonAI Code is still running the Intel build under Rosetta. The next app update will replace it with the native Apple Silicon build."; + return "This Mac has Apple Silicon, but TritonAI Harness is still running the Intel build under Rosetta. The next app update will replace it with the native Apple Silicon build."; } export function getDesktopUpdateButtonTooltip(state: DesktopUpdateState): string { @@ -80,7 +80,7 @@ export function getDesktopUpdateInstallConfirmationMessage( state: Pick, ): string { const version = state.downloadedVersion ?? state.availableVersion; - return `Install update${version ? ` ${version}` : ""} and restart TritonAI Code?\n\nAny running tasks will be interrupted. Make sure you're ready before continuing.`; + return `Install update${version ? ` ${version}` : ""} and restart TritonAI Harness?\n\nAny running tasks will be interrupted. Make sure you're ready before continuing.`; } export function getDesktopUpdateActionError(result: DesktopUpdateActionResult): string | null { diff --git a/apps/web/src/components/preview/PreviewPanel.tsx b/apps/web/src/components/preview/PreviewPanel.tsx index 92db1c2cd9b..a40ae64cf1d 100644 --- a/apps/web/src/components/preview/PreviewPanel.tsx +++ b/apps/web/src/components/preview/PreviewPanel.tsx @@ -21,7 +21,7 @@ export function PreviewPanel({ mode, threadRef, tabId, configuredUrls, visible }

- Preview is only available in the T3 Code desktop app. + Preview is only available in the TritonAI Harness desktop app.

diff --git a/apps/web/src/components/settings/ConnectionsSettings.tsx b/apps/web/src/components/settings/ConnectionsSettings.tsx index 13698b0e9f0..a66681aefb2 100644 --- a/apps/web/src/components/settings/ConnectionsSettings.tsx +++ b/apps/web/src/components/settings/ConnectionsSettings.tsx @@ -3035,8 +3035,8 @@ export function ConnectionsSettings() { {pendingDesktopServerExposureMode === "network-accessible" - ? "TritonAI Code will restart to expose this environment over the network." - : "TritonAI Code will restart and limit this environment back to this machine."} + ? "TritonAI Harness will restart to expose this environment over the network." + : "TritonAI Harness will restart and limit this environment back to this machine."} @@ -3080,7 +3080,7 @@ export function ConnectionsSettings() { Disable Tailscale HTTPS? - TritonAI Code will restart the local backend without Tailscale Serve. + TritonAI Harness will restart the local backend without Tailscale Serve. @@ -3118,8 +3118,8 @@ export function ConnectionsSettings() { Set up Tailscale HTTPS? - TritonAI Code will restart the local backend with Tailscale Serve enabled and ask - Tailscale to proxy HTTPS traffic to this backend. + TritonAI Harness will restart the local backend with Tailscale Serve enabled and + ask Tailscale to proxy HTTPS traffic to this backend. diff --git a/apps/web/src/components/settings/KeybindingsSettings.tsx b/apps/web/src/components/settings/KeybindingsSettings.tsx index f80a2e96896..67498c8de83 100644 --- a/apps/web/src/components/settings/KeybindingsSettings.tsx +++ b/apps/web/src/components/settings/KeybindingsSettings.tsx @@ -246,8 +246,8 @@ function UnknownWhenVariableWarning({ } /> - TritonAI Code does not recognize this condition yet. It can still be saved, but it may not - match unless the runtime provides it. + TritonAI Harness does not recognize this condition yet. It can still be saved, but it may + not match unless the runtime provides it. ); @@ -1238,8 +1238,8 @@ export function KeybindingsSettingsPanel() {

- Some shortcuts may be claimed by the browser before TritonAI Code sees them. Use the - desktop app for better keybinding support. + Some shortcuts may be claimed by the browser before TritonAI Harness sees them. Use + the desktop app for better keybinding support.

) : null} diff --git a/apps/web/src/components/settings/SettingsPanels.browser.tsx b/apps/web/src/components/settings/SettingsPanels.browser.tsx index 208749f2264..e8a20e47c12 100644 --- a/apps/web/src/components/settings/SettingsPanels.browser.tsx +++ b/apps/web/src/components/settings/SettingsPanels.browser.tsx @@ -1073,7 +1073,9 @@ describe("GeneralSettingsPanel observability", () => { await expect.element(page.getByText("Enable network access?")).toBeInTheDocument(); await expect .element( - page.getByText("TritonAI Code will restart to expose this environment over the network."), + page.getByText( + "TritonAI Harness will restart to expose this environment over the network.", + ), ) .toBeInTheDocument(); await page.getByRole("button", { name: "Restart and enable", exact: true }).click(); diff --git a/apps/web/src/components/settings/SettingsPanels.tsx b/apps/web/src/components/settings/SettingsPanels.tsx index 547da97c3a4..0ad0f7841f4 100644 --- a/apps/web/src/components/settings/SettingsPanels.tsx +++ b/apps/web/src/components/settings/SettingsPanels.tsx @@ -536,7 +536,7 @@ export function GeneralSettingsPanel() { setTheme(DEFAULT_THEME)} /> diff --git a/apps/web/src/components/settings/providerStatus.ts b/apps/web/src/components/settings/providerStatus.ts index 57a604da09f..f5a7eb8cab2 100644 --- a/apps/web/src/components/settings/providerStatus.ts +++ b/apps/web/src/components/settings/providerStatus.ts @@ -40,7 +40,7 @@ export function getProviderSummary(provider: ServerProvider | undefined) { headline: "Disabled", detail: provider.message ?? - "This provider is installed but disabled for new sessions in TritonAI Code.", + "This provider is installed but disabled for new sessions in TritonAI Harness.", }; } if (!provider.installed) { diff --git a/apps/web/src/firstRunOnboarding.test.ts b/apps/web/src/firstRunOnboarding.test.ts index 07d6f2a458b..25ed361f4ab 100644 --- a/apps/web/src/firstRunOnboarding.test.ts +++ b/apps/web/src/firstRunOnboarding.test.ts @@ -13,9 +13,9 @@ import { } from "./firstRunOnboarding"; describe("firstRunOnboarding", () => { - it("is scoped to the TritonAI Code brand", () => { - expect(isTritonAiCodeBrand("TritonAI Code")).toBe(true); - expect(isTritonAiCodeBrand("T3 Code")).toBe(false); + it("is scoped to the TritonAI Harness brand", () => { + expect(isTritonAiCodeBrand("TritonAI Harness")).toBe(true); + expect(isTritonAiCodeBrand("TritonAI Code")).toBe(false); }); it("uses the installer-created TritonAI home workspace", () => { diff --git a/apps/web/src/routes/_chat.tsx b/apps/web/src/routes/_chat.tsx index f28c80f0128..f8ad2303b1e 100644 --- a/apps/web/src/routes/_chat.tsx +++ b/apps/web/src/routes/_chat.tsx @@ -102,7 +102,7 @@ function ChatRouteGlobalShortcuts() { stackedThreadToast({ type: "info", title: "Preview is desktop-only", - description: "Open T3 Code in the desktop app to use the in-app preview.", + description: "Open TritonAI Harness in the desktop app to use the in-app preview.", }), ); return; diff --git a/apps/web/src/tritonAiWorkspace.ts b/apps/web/src/tritonAiWorkspace.ts index 42907fe917a..c59a94eb76d 100644 --- a/apps/web/src/tritonAiWorkspace.ts +++ b/apps/web/src/tritonAiWorkspace.ts @@ -1,9 +1,9 @@ -export const TRITONAI_FIRST_RUN_PROMPT = "How does TritonAI Code work, and how can it help me?"; +export const TRITONAI_FIRST_RUN_PROMPT = "How does TritonAI Harness work, and how can it help me?"; export const TRITONAI_FIRST_RUN_WORKSPACE = "~/TritonAI"; export const TRITONAI_CHATS_WORKSPACE = "~/.agents/ucsd/state/tritonai-code/chats"; export const TRITONAI_CHATS_PROJECT_TITLE = "Chats"; -const TRITONAI_APP_BASE_NAME = "TritonAI Code"; +const TRITONAI_APP_BASE_NAME = "TritonAI Harness"; export function isTritonAiCodeBrand(appBaseName: string): boolean { return appBaseName.trim() === TRITONAI_APP_BASE_NAME; diff --git a/apps/web/src/versionSkew.test.ts b/apps/web/src/versionSkew.test.ts index 9cea141f50f..045057becf4 100644 --- a/apps/web/src/versionSkew.test.ts +++ b/apps/web/src/versionSkew.test.ts @@ -20,7 +20,7 @@ describe("versionSkew", () => { expect(resolveVersionMismatch("9.9.9")).toEqual({ clientVersion: APP_VERSION, serverVersion: "9.9.9", - hint: "Version mismatch. Try syncing the client and server to the same TritonAI Code version.", + hint: "Version mismatch. Try syncing the client and server to the same TritonAI Harness version.", }); }); @@ -72,7 +72,7 @@ describe("versionSkew", () => { const mismatch = resolveVersionMismatch("9.9.9"); expect(appendVersionMismatchHint("Socket closed.", mismatch)).toBe( - "Socket closed. Hint: Version mismatch. Try syncing the client and server to the same TritonAI Code version.", + "Socket closed. Hint: Version mismatch. Try syncing the client and server to the same TritonAI Harness version.", ); }); }); diff --git a/apps/web/src/versionSkew.ts b/apps/web/src/versionSkew.ts index d2d9c10c473..9d055a596ae 100644 --- a/apps/web/src/versionSkew.ts +++ b/apps/web/src/versionSkew.ts @@ -39,7 +39,7 @@ export function resolveVersionMismatch( return { clientVersion: normalizedClientVersion, serverVersion: normalizedServerVersion, - hint: "Version mismatch. Try syncing the client and server to the same TritonAI Code version.", + hint: "Version mismatch. Try syncing the client and server to the same TritonAI Harness version.", }; } diff --git a/packages/contracts/src/relay.ts b/packages/contracts/src/relay.ts index 5c8cc1ad001..88012461872 100644 --- a/packages/contracts/src/relay.ts +++ b/packages/contracts/src/relay.ts @@ -1006,7 +1006,7 @@ export const RelayApi = HttpApi.make("RelayApi") RelayDpopClientGroup, RelayServerGroup, ) - .annotate(OpenApi.Title, "T3 Code Relay API") + .annotate(OpenApi.Title, "TritonAI Harness Relay API") .annotate(OpenApi.Version, "1.0.0") .annotate( OpenApi.Description, diff --git a/packages/contracts/src/settings.ts b/packages/contracts/src/settings.ts index 2f03b23cb4d..f3d7206a183 100644 --- a/packages/contracts/src/settings.ts +++ b/packages/contracts/src/settings.ts @@ -348,7 +348,7 @@ export const OpenCodeSettings = makeProviderSettingsSchema( Schema.withDecodingDefault(Effect.succeed("")), Schema.annotateKey({ title: "Server URL", - description: "Leave blank to let TritonAI Code spawn the server when needed.", + description: "Leave blank to let TritonAI Harness spawn the server when needed.", providerSettingsForm: { placeholder: "http://127.0.0.1:4096", clearWhenEmpty: "omit", diff --git a/packages/ssh/src/auth.ts b/packages/ssh/src/auth.ts index 180689e10df..d7f73d82891 100644 --- a/packages/ssh/src/auth.ts +++ b/packages/ssh/src/auth.ts @@ -72,14 +72,14 @@ function joinSshAskpassPath( } export const ASKPASS_POSIX_SCRIPT = `#!/bin/sh -# Invoked by ssh via SSH_ASKPASS when TritonAI Code re-runs ssh with a cached password +# Invoked by ssh via SSH_ASKPASS when TritonAI Harness re-runs ssh with a cached password # from the renderer's in-app prompt. We never expose a native dialog here - if # T3_SSH_AUTH_SECRET is missing, that's a caller bug and we fail loudly. if [ "\${T3_SSH_AUTH_SECRET+x}" = "x" ]; then printf "%s\\n" "$T3_SSH_AUTH_SECRET" exit 0 fi -printf 'TritonAI Code ssh-askpass invoked without T3_SSH_AUTH_SECRET.\\n' >&2 +printf 'TritonAI Harness ssh-askpass invoked without T3_SSH_AUTH_SECRET.\\n' >&2 exit 1 `; @@ -87,7 +87,7 @@ export const ASKPASS_WINDOWS_LAUNCHER_SCRIPT = `@echo off\r powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0ssh-askpass.ps1" %*\r `; -export const ASKPASS_WINDOWS_SCRIPT = `# Invoked by ssh via SSH_ASKPASS (through ssh-askpass.cmd) when TritonAI Code re-runs\r +export const ASKPASS_WINDOWS_SCRIPT = `# Invoked by ssh via SSH_ASKPASS (through ssh-askpass.cmd) when TritonAI Harness re-runs\r # ssh with a cached password from the renderer's in-app prompt. We never expose\r # a native dialog here - if T3_SSH_AUTH_SECRET is missing, that's a caller bug\r # and we fail loudly.\r @@ -95,7 +95,7 @@ if ($null -ne $env:T3_SSH_AUTH_SECRET) {\r [Console]::Out.WriteLine($env:T3_SSH_AUTH_SECRET)\r exit 0\r }\r -[Console]::Error.WriteLine("TritonAI Code ssh-askpass invoked without T3_SSH_AUTH_SECRET.")\r +[Console]::Error.WriteLine("TritonAI Harness ssh-askpass invoked without T3_SSH_AUTH_SECRET.")\r exit 1\r `; diff --git a/scripts/build-desktop-artifact.test.ts b/scripts/build-desktop-artifact.test.ts index 5008a9a32bd..12ba6fe0262 100644 --- a/scripts/build-desktop-artifact.test.ts +++ b/scripts/build-desktop-artifact.test.ts @@ -30,10 +30,10 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => { }); it("switches desktop packaging product names to nightly for nightly builds", () => { - assert.equal(resolveDesktopProductName("0.0.17"), "TritonAI Code"); + assert.equal(resolveDesktopProductName("0.0.17"), "TritonAI Harness"); assert.equal( resolveDesktopProductName("0.0.17-nightly.20260413.42"), - "TritonAI Code (Nightly)", + "TritonAI Harness (Nightly)", ); }); diff --git a/scripts/build-desktop-artifact.ts b/scripts/build-desktop-artifact.ts index 691d1e9b611..b04c5e5e4c9 100644 --- a/scripts/build-desktop-artifact.ts +++ b/scripts/build-desktop-artifact.ts @@ -738,8 +738,8 @@ export function resolveMockUpdateServerUrl(mockUpdateServerPort: number | undefi export function resolveDesktopProductName(version: string): string { return resolveDesktopUpdateChannel(version) === "nightly" - ? "TritonAI Code (Nightly)" - : (desktopPackageJson.productName ?? "TritonAI Code"); + ? "TritonAI Harness (Nightly)" + : (desktopPackageJson.productName ?? "TritonAI Harness"); } const createBuildConfig = Effect.fn("createBuildConfig")(function* ( @@ -753,7 +753,7 @@ const createBuildConfig = Effect.fn("createBuildConfig")(function* ( const buildConfig: Record = { appId: TRITONAI_DESKTOP_APP_ID, productName: resolveDesktopProductName(version), - artifactName: "T3-Code-${version}-${arch}.${ext}", + artifactName: "TritonAI-Harness-${version}-${arch}.${ext}", asarUnpack: [...DESKTOP_ASAR_UNPACK], directories: { buildResources: "apps/desktop/resources", @@ -779,7 +779,7 @@ const createBuildConfig = Effect.fn("createBuildConfig")(function* ( category: "public.app-category.developer-tools", protocols: [ { - name: "TritonAI Code", + name: "TritonAI Harness", schemes: ["t3code"], }, ], @@ -976,7 +976,7 @@ const buildDesktopArtifact = Effect.fn("buildDesktopArtifact")(function* ( t3codeCommitHash: commitHash, private: true, packageManager: rootPackageJson.packageManager, - description: "TritonAI Code desktop build", + description: "TritonAI Harness desktop build", author: "T3 Tools", main: "apps/desktop/dist-electron/main.cjs", build: yield* createBuildConfig( @@ -1168,7 +1168,7 @@ const buildDesktopArtifactCli = Command.make("build-desktop-artifact", { Flag.optional, ), }).pipe( - Command.withDescription("Build a desktop artifact for TritonAI Code."), + Command.withDescription("Build a desktop artifact for TritonAI Harness."), Command.withHandler((input) => Effect.flatMap(resolveBuildOptions(input), buildDesktopArtifact)), ); diff --git a/scripts/dev-runner.ts b/scripts/dev-runner.ts index d26281f3ceb..8b138a94dc6 100644 --- a/scripts/dev-runner.ts +++ b/scripts/dev-runner.ts @@ -490,7 +490,9 @@ const devRunnerCli = Command.make("dev-runner", { Argument.withDescription("Development mode to run."), ), t3Home: Flag.string("home-dir").pipe( - Flag.withDescription("Base directory for all TritonAI Code data (equivalent to T3CODE_HOME)."), + Flag.withDescription( + "Base directory for all TritonAI Harness data (equivalent to T3CODE_HOME).", + ), Flag.withFallbackConfig(optionalStringConfig("T3CODE_HOME")), ), noBrowser: Flag.boolean("no-browser").pipe(