diff --git a/apps/cli/src/app.tsx b/apps/cli/src/App.tsx similarity index 96% rename from apps/cli/src/app.tsx rename to apps/cli/src/App.tsx index 8fe6bfd..1d38ec2 100644 --- a/apps/cli/src/app.tsx +++ b/apps/cli/src/App.tsx @@ -18,9 +18,9 @@ import Spinner from "ink-spinner"; import { omit } from "radash"; import stripAnsi from "strip-ansi"; -import { Sidebar } from "./components/sidebar"; +import { Sidebar } from "./components/Sidebar"; import { TitleText } from "./components/TitleText"; -import { useStdoutDimensions } from "./use-stdout-dimensions"; +import { useStdoutDimensions } from "./hooks/use-stdout-dimensions"; const getLatestPlanGraph = (events: SerializeableBumpgenEvent[]) => { const planGraphs = events @@ -182,10 +182,12 @@ const App = (props: { language: SupportedLanguage; pkg: string; version: string; + port: number; + token?: string; }) => { const { exit } = useApp(); - const { model, language, pkg, version } = props; + const { model, language, pkg, version, token, port } = props; const [columns, rows] = useStdoutDimensions(); @@ -245,11 +247,13 @@ const App = (props: { pkg, version, "-i", - "3000", "-l", language, "-m", model, + "-p", + port.toString(), + ...(token ? ["-t", token] : []), ], { shell: true, diff --git a/apps/cli/src/common/bold.tsx b/apps/cli/src/components/Bold.tsx similarity index 100% rename from apps/cli/src/common/bold.tsx rename to apps/cli/src/components/Bold.tsx diff --git a/apps/cli/src/components/sidebar.tsx b/apps/cli/src/components/Sidebar.tsx similarity index 98% rename from apps/cli/src/components/sidebar.tsx rename to apps/cli/src/components/Sidebar.tsx index ddce5f3..6bb974d 100644 --- a/apps/cli/src/components/sidebar.tsx +++ b/apps/cli/src/components/Sidebar.tsx @@ -5,8 +5,8 @@ import spinners from "cli-spinners"; import { Box, measureElement, Text } from "ink"; import ms from "ms"; -import { Bold } from "../common/bold"; -import { useStdoutDimensions } from "../use-stdout-dimensions"; +import { useStdoutDimensions } from "../hooks/use-stdout-dimensions"; +import { Bold } from "./Bold"; import { Task } from "./task-list"; const ExecutionHistory = (props: { diff --git a/apps/cli/src/components/TitleText.tsx b/apps/cli/src/components/TitleText.tsx index c3e51a7..2f2c9a4 100644 --- a/apps/cli/src/components/TitleText.tsx +++ b/apps/cli/src/components/TitleText.tsx @@ -3,7 +3,7 @@ import React, { useEffect, useRef, useState } from "react"; import { Box, measureElement, Text } from "ink"; import BigText from "ink-big-text"; -import { useStdoutDimensions } from "../use-stdout-dimensions"; +import { useStdoutDimensions } from "../hooks/use-stdout-dimensions"; export const TitleText = ( props: Omit & { diff --git a/apps/cli/src/components/task-list/index.tsx b/apps/cli/src/components/task-list/index.ts similarity index 100% rename from apps/cli/src/components/task-list/index.tsx rename to apps/cli/src/components/task-list/index.ts diff --git a/apps/cli/src/use-stdout-dimensions.tsx b/apps/cli/src/hooks/use-stdout-dimensions.ts similarity index 100% rename from apps/cli/src/use-stdout-dimensions.tsx rename to apps/cli/src/hooks/use-stdout-dimensions.ts diff --git a/apps/cli/src/index.tsx b/apps/cli/src/index.tsx index d11e224..f49b3c5 100644 --- a/apps/cli/src/index.tsx +++ b/apps/cli/src/index.tsx @@ -12,7 +12,7 @@ import { SupportedModels, } from "@xeol/bumpgen-core"; -import App from "./app"; +import App from "./App"; const command = program .name("bumpgen") @@ -30,11 +30,21 @@ const command = program .choices(SupportedModels) .default("gpt-4-turbo-preview" as const), ) + .option( + "-t, --token ", + "LLM token (can also be set via the LLM_API_KEY environment variable)", + ) + .option( + "-p, --port ", + "port to run the IPC server on (default: 3000)", + parseInt, + 3000, + ) .option("-s, --simple", "simple mode") - .option("-i, --ipc ", "run in ipc mode", parseInt) + .option("-i, --ipc", "run in ipc mode") .parse(); -const { model, language, ipc, simple } = command.opts(); +const { model, language, port, ipc, simple, token } = command.opts(); let [pkg, version] = command.processedArgs; @@ -79,7 +89,7 @@ if (!pkg) { } const bumpgen = makeBumpgen({ - llmApiKey: process.env.LLM_API_KEY ?? "", + llmApiKey: token ?? process.env.LLM_API_KEY ?? "", model, packageToUpgrade: { packageName: pkg, @@ -106,7 +116,7 @@ if (simple) { }, body: JSON.stringify(event), }; - await fetch(`http://localhost:${ipc}/data`, options); + await fetch(`http://localhost:${port}/data`, options); } catch (error) { console.log("error", serializeError(error)); process.exit(1); @@ -117,7 +127,14 @@ if (simple) { } } else { const app = render( - , + , ); await app.waitUntilExit(); }