Update copy (#1935)
Updated copy --------- Co-authored-by: pap-openai <pap@openai.com>
This commit is contained in:
@@ -854,7 +854,7 @@ export default function TerminalChatInput({
|
|||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<Text dimColor>
|
<Text dimColor>
|
||||||
ctrl+c to exit | "/" to see commands | enter to send
|
Ctrl+C to exit | "/" to see commands | Enter to send
|
||||||
{contextLeftPercent > 25 && (
|
{contextLeftPercent > 25 && (
|
||||||
<>
|
<>
|
||||||
{" — "}
|
{" — "}
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ export default function HelpOverlay({
|
|||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Box paddingX={1}>
|
<Box paddingX={1}>
|
||||||
<Text dimColor>esc or q to close</Text>
|
<Text dimColor>Esc or q to close</Text>
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ export function WaitingForAuth(): JSX.Element {
|
|||||||
<Spinner type="ball" />
|
<Spinner type="ball" />
|
||||||
<Text>
|
<Text>
|
||||||
{" "}
|
{" "}
|
||||||
Waiting for authentication… <Text dimColor>ctrl + c to quit</Text>
|
Waiting for authentication… <Text dimColor>Ctrl + C to quit</Text>
|
||||||
</Text>
|
</Text>
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ use crate::bottom_pane::textarea::TextAreaState;
|
|||||||
use codex_file_search::FileMatch;
|
use codex_file_search::FileMatch;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
||||||
const BASE_PLACEHOLDER_TEXT: &str = "...";
|
const BASE_PLACEHOLDER_TEXT: &str = "Ask Codex to do anything";
|
||||||
/// If the pasted content exceeds this number of characters, replace it with a
|
/// If the pasted content exceeds this number of characters, replace it with a
|
||||||
/// placeholder in the UI.
|
/// placeholder in the UI.
|
||||||
const LARGE_PASTE_CHAR_THRESHOLD: usize = 1000;
|
const LARGE_PASTE_CHAR_THRESHOLD: usize = 1000;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
source: tui/src/bottom_pane/chat_composer.rs
|
source: tui/src/bottom_pane/chat_composer.rs
|
||||||
expression: terminal.backend()
|
expression: terminal.backend()
|
||||||
---
|
---
|
||||||
"▌ ... "
|
"▌ Ask Codex to do anything "
|
||||||
"▌ "
|
"▌ "
|
||||||
"▌ "
|
"▌ "
|
||||||
"▌ "
|
"▌ "
|
||||||
|
|||||||
@@ -196,12 +196,11 @@ impl HistoryCell {
|
|||||||
Span::raw(format!(" {cwd_str}")).dim(),
|
Span::raw(format!(" {cwd_str}")).dim(),
|
||||||
]),
|
]),
|
||||||
Line::from("".dim()),
|
Line::from("".dim()),
|
||||||
Line::from(" Try one of the following commands to get started:".dim()),
|
Line::from(" To get started, describe a task or try one of these commands:".dim()),
|
||||||
Line::from("".dim()),
|
Line::from("".dim()),
|
||||||
Line::from(format!(" 1. /init - {}", SlashCommand::Init.description()).dim()),
|
Line::from(format!(" /init - {}", SlashCommand::Init.description()).dim()),
|
||||||
Line::from(format!(" 2. /status - {}", SlashCommand::Status.description()).dim()),
|
Line::from(format!(" /status - {}", SlashCommand::Status.description()).dim()),
|
||||||
Line::from(format!(" 3. /compact - {}", SlashCommand::Compact.description()).dim()),
|
Line::from(format!(" /diff - {}", SlashCommand::Diff.description()).dim()),
|
||||||
Line::from(format!(" 4. /new - {}", SlashCommand::New.description()).dim()),
|
|
||||||
Line::from("".dim()),
|
Line::from("".dim()),
|
||||||
];
|
];
|
||||||
HistoryCell::WelcomeMessage {
|
HistoryCell::WelcomeMessage {
|
||||||
|
|||||||
@@ -104,7 +104,14 @@ impl AuthModeWidget {
|
|||||||
Line::from(vec![
|
Line::from(vec![
|
||||||
Span::raw("> "),
|
Span::raw("> "),
|
||||||
Span::styled(
|
Span::styled(
|
||||||
"Sign in with your ChatGPT account?",
|
"Sign in with ChatGPT to use Codex as part of your paid plan",
|
||||||
|
Style::default().add_modifier(Modifier::BOLD),
|
||||||
|
),
|
||||||
|
]),
|
||||||
|
Line::from(vec![
|
||||||
|
Span::raw(" "),
|
||||||
|
Span::styled(
|
||||||
|
"or connect an API key for usage-based billing",
|
||||||
Style::default().add_modifier(Modifier::BOLD),
|
Style::default().add_modifier(Modifier::BOLD),
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
@@ -145,18 +152,18 @@ impl AuthModeWidget {
|
|||||||
lines.extend(create_mode_item(
|
lines.extend(create_mode_item(
|
||||||
0,
|
0,
|
||||||
AuthMode::ChatGPT,
|
AuthMode::ChatGPT,
|
||||||
"Sign in with ChatGPT or create a new account",
|
"Sign in with ChatGPT",
|
||||||
"Leverages your plan, starting at $20 a month for Plus",
|
"Usage included with Plus, Pro, and Team plans",
|
||||||
));
|
));
|
||||||
lines.extend(create_mode_item(
|
lines.extend(create_mode_item(
|
||||||
1,
|
1,
|
||||||
AuthMode::ApiKey,
|
AuthMode::ApiKey,
|
||||||
"Provide your own API key",
|
"Provide your own API key",
|
||||||
"Pay only for what you use",
|
"Pay for what you use",
|
||||||
));
|
));
|
||||||
lines.push(Line::from(""));
|
lines.push(Line::from(""));
|
||||||
lines.push(
|
lines.push(
|
||||||
Line::from("Press Enter to continue")
|
Line::from(" Press Enter to continue")
|
||||||
.style(Style::default().add_modifier(Modifier::DIM)),
|
.style(Style::default().add_modifier(Modifier::DIM)),
|
||||||
);
|
);
|
||||||
if let Some(err) = &self.error {
|
if let Some(err) = &self.error {
|
||||||
@@ -179,8 +186,7 @@ impl AuthModeWidget {
|
|||||||
let lines = vec![
|
let lines = vec![
|
||||||
Line::from(spans),
|
Line::from(spans),
|
||||||
Line::from(""),
|
Line::from(""),
|
||||||
Line::from(" Press Escape to cancel")
|
Line::from(" Press Esc to cancel").style(Style::default().add_modifier(Modifier::DIM)),
|
||||||
.style(Style::default().add_modifier(Modifier::DIM)),
|
|
||||||
];
|
];
|
||||||
Paragraph::new(lines)
|
Paragraph::new(lines)
|
||||||
.wrap(Wrap { trim: false })
|
.wrap(Wrap { trim: false })
|
||||||
@@ -194,17 +200,30 @@ impl AuthModeWidget {
|
|||||||
Line::from(""),
|
Line::from(""),
|
||||||
Line::from("> Before you start:"),
|
Line::from("> Before you start:"),
|
||||||
Line::from(""),
|
Line::from(""),
|
||||||
Line::from(" Codex can make mistakes"),
|
Line::from(" Decide how much autonomy you want to grant Codex"),
|
||||||
Line::from(" Check important info")
|
Line::from(vec![
|
||||||
.style(Style::default().add_modifier(Modifier::DIM)),
|
Span::raw(" For more details see the "),
|
||||||
|
Span::styled(
|
||||||
|
"\u{1b}]8;;https://github.com/openai/codex\u{7}Codex docs\u{1b}]8;;\u{7}",
|
||||||
|
Style::default().add_modifier(Modifier::UNDERLINED),
|
||||||
|
),
|
||||||
|
])
|
||||||
|
.style(Style::default().add_modifier(Modifier::DIM)),
|
||||||
Line::from(""),
|
Line::from(""),
|
||||||
Line::from(" Due to prompt injection risks, only use it with code you trust"),
|
Line::from(" Codex can make mistakes")
|
||||||
Line::from(" For more details see https://github.com/openai/codex")
|
.style(Style::default().fg(Color::White)),
|
||||||
|
Line::from(" Review the code it writes and commands it runs")
|
||||||
.style(Style::default().add_modifier(Modifier::DIM)),
|
.style(Style::default().add_modifier(Modifier::DIM)),
|
||||||
Line::from(""),
|
Line::from(""),
|
||||||
Line::from(" Powered by your ChatGPT account"),
|
Line::from(" Powered by your ChatGPT account"),
|
||||||
Line::from(" Uses your plan's rate limits and training data preferences")
|
Line::from(vec![
|
||||||
.style(Style::default().add_modifier(Modifier::DIM)),
|
Span::raw(" Uses your plan's rate limits and "),
|
||||||
|
Span::styled(
|
||||||
|
"\u{1b}]8;;https://chatgpt.com/#settings\u{7}training data preferences\u{1b}]8;;\u{7}",
|
||||||
|
Style::default().add_modifier(Modifier::UNDERLINED),
|
||||||
|
),
|
||||||
|
])
|
||||||
|
.style(Style::default().add_modifier(Modifier::DIM)),
|
||||||
Line::from(""),
|
Line::from(""),
|
||||||
Line::from(" Press Enter to continue").style(Style::default().fg(LIGHT_BLUE)),
|
Line::from(" Press Enter to continue").style(Style::default().fg(LIGHT_BLUE)),
|
||||||
];
|
];
|
||||||
@@ -236,7 +255,10 @@ impl AuthModeWidget {
|
|||||||
|
|
||||||
fn render_env_var_missing(&self, area: Rect, buf: &mut Buffer) {
|
fn render_env_var_missing(&self, area: Rect, buf: &mut Buffer) {
|
||||||
let lines = vec![
|
let lines = vec![
|
||||||
Line::from("✘ OPENAI_API_KEY not found").style(Style::default().fg(Color::Red)),
|
Line::from(
|
||||||
|
" To use Codex with the OpenAI API, set OPENAI_API_KEY in your environment",
|
||||||
|
)
|
||||||
|
.style(Style::default().fg(Color::Blue)),
|
||||||
Line::from(""),
|
Line::from(""),
|
||||||
Line::from(" Press Enter to return")
|
Line::from(" Press Enter to return")
|
||||||
.style(Style::default().add_modifier(Modifier::DIM)),
|
.style(Style::default().add_modifier(Modifier::DIM)),
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ pub(crate) struct WelcomeWidget {
|
|||||||
impl WidgetRef for &WelcomeWidget {
|
impl WidgetRef for &WelcomeWidget {
|
||||||
fn render_ref(&self, area: Rect, buf: &mut Buffer) {
|
fn render_ref(&self, area: Rect, buf: &mut Buffer) {
|
||||||
let line = Line::from(vec![
|
let line = Line::from(vec![
|
||||||
Span::raw("> "),
|
Span::raw(">_ "),
|
||||||
Span::styled(
|
Span::styled(
|
||||||
"Welcome to Codex, OpenAI's coding agent that runs in your terminal",
|
"Welcome to Codex, OpenAI's command-line coding agent",
|
||||||
Style::default().add_modifier(Modifier::BOLD),
|
Style::default().add_modifier(Modifier::BOLD),
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -27,15 +27,15 @@ impl SlashCommand {
|
|||||||
/// User-visible description shown in the popup.
|
/// User-visible description shown in the popup.
|
||||||
pub fn description(self) -> &'static str {
|
pub fn description(self) -> &'static str {
|
||||||
match self {
|
match self {
|
||||||
SlashCommand::New => "Start a new chat",
|
SlashCommand::New => "start a new chat during a conversation",
|
||||||
SlashCommand::Init => "Create an AGENTS.md file with instructions for Codex",
|
SlashCommand::Init => "create an AGENTS.md file with instructions for Codex",
|
||||||
SlashCommand::Compact => "Compact the chat history",
|
SlashCommand::Compact => "summarize conversation to prevent hitting the context limit",
|
||||||
SlashCommand::Quit => "Exit the application",
|
SlashCommand::Quit => "exit Codex",
|
||||||
SlashCommand::Diff => "Show git diff (including untracked files)",
|
SlashCommand::Diff => "show git diff (including untracked files)",
|
||||||
SlashCommand::Status => "Show current session configuration and token usage",
|
SlashCommand::Status => "show current session configuration and token usage",
|
||||||
SlashCommand::Logout => "Log out of Codex",
|
SlashCommand::Logout => "log out of Codex",
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
SlashCommand::TestApproval => "Test approval request",
|
SlashCommand::TestApproval => "test approval request",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ impl WidgetRef for StatusIndicatorWidget {
|
|||||||
Style::default().fg(Color::Gray).add_modifier(Modifier::DIM),
|
Style::default().fg(Color::Gray).add_modifier(Modifier::DIM),
|
||||||
));
|
));
|
||||||
spans.push(Span::styled(
|
spans.push(Span::styled(
|
||||||
"Ctrl c",
|
"Ctrl C",
|
||||||
Style::default()
|
Style::default()
|
||||||
.fg(Color::Gray)
|
.fg(Color::Gray)
|
||||||
.add_modifier(Modifier::DIM | Modifier::BOLD),
|
.add_modifier(Modifier::DIM | Modifier::BOLD),
|
||||||
|
|||||||
Reference in New Issue
Block a user