diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 00000000..f01272c6 --- /dev/null +++ b/.codespellrc @@ -0,0 +1,6 @@ +[codespell] +# Ref: https://github.com/codespell-project/codespell#using-a-config-file +skip = .git*,vendor,*-lock.yaml,*.lock,.codespellrc,*test.ts +check-hidden = true +ignore-regex = ^\s*"image/\S+": ".*|\b(afterAll)\b +ignore-words-list = ratatui,ser diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml new file mode 100644 index 00000000..51df5c70 --- /dev/null +++ b/.github/workflows/codespell.yml @@ -0,0 +1,25 @@ +# Codespell configuration is within .codespellrc +--- +name: Codespell + +on: + push: + branches: [main] + pull_request: + branches: [main] + +permissions: + contents: read + +jobs: + codespell: + name: Check for spelling errors + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Annotate locations with typos + uses: codespell-project/codespell-problem-matcher@b80729f885d32f78a716c2f107b4db1025001c42 # v1 + - name: Codespell + uses: codespell-project/actions-codespell@406322ec52dd7b488e48c1c4b82e2a8b3a1bf630 # v2 diff --git a/codex-cli/examples/impossible-pong/task.yaml b/codex-cli/examples/impossible-pong/task.yaml index c89f3953..8d8acbbf 100644 --- a/codex-cli/examples/impossible-pong/task.yaml +++ b/codex-cli/examples/impossible-pong/task.yaml @@ -1,7 +1,7 @@ name: "impossible-pong" description: | Update index.html with the following features: - - Add an overlayed styled popup to start the game on first load + - Add an overlaid styled popup to start the game on first load - Between each point, show a 3 second countdown (this should be skipped if a player wins) - After each game the AI wins, display text at the bottom of the screen with lighthearted insults for the player - Add a leaderboard to the right of the court that shows how many games each player has won. diff --git a/codex-cli/examples/prompt-analyzer/template/prompts.csv b/codex-cli/examples/prompt-analyzer/template/prompts.csv index c6493bb5..498c03a1 100644 --- a/codex-cli/examples/prompt-analyzer/template/prompts.csv +++ b/codex-cli/examples/prompt-analyzer/template/prompts.csv @@ -13,7 +13,7 @@ act,prompt,for_devs "Advertiser","I want you to act as an advertiser. You will create a campaign to promote a product or service of your choice. You will choose a target audience, develop key messages and slogans, select the media channels for promotion, and decide on any additional activities needed to reach your goals. My first suggestion request is ""I need help creating an advertising campaign for a new type of energy drink targeting young adults aged 18-30.""",FALSE "Storyteller","I want you to act as a storyteller. You will come up with entertaining stories that are engaging, imaginative and captivating for the audience. It can be fairy tales, educational stories or any other type of stories which has the potential to capture people's attention and imagination. Depending on the target audience, you may choose specific themes or topics for your storytelling session e.g., if it's children then you can talk about animals; If it's adults then history-based tales might engage them better etc. My first request is ""I need an interesting story on perseverance.""",FALSE "Football Commentator","I want you to act as a football commentator. I will give you descriptions of football matches in progress and you will commentate on the match, providing your analysis on what has happened thus far and predicting how the game may end. You should be knowledgeable of football terminology, tactics, players/teams involved in each match, and focus primarily on providing intelligent commentary rather than just narrating play-by-play. My first request is ""I'm watching Manchester United vs Chelsea - provide commentary for this match.""",FALSE -"Stand-up Comedian","I want you to act as a stand-up comedian. I will provide you with some topics related to current events and you will use your wit, creativity, and observational skills to create a routine based on those topics. You should also be sure to incorporate personal anecdotes or experiences into the routine in order to make it more relatable and engaging for the audience. My first request is ""I want an humorous take on politics.""",FALSE +"Stand-up Comedian","I want you to act as a stand-up comedian. I will provide you with some topics related to current events and you will use your with, creativity, and observational skills to create a routine based on those topics. You should also be sure to incorporate personal anecdotes or experiences into the routine in order to make it more relatable and engaging for the audience. My first request is ""I want an humorous take on politics.""",FALSE "Motivational Coach","I want you to act as a motivational coach. I will provide you with some information about someone's goals and challenges, and it will be your job to come up with strategies that can help this person achieve their goals. This could involve providing positive affirmations, giving helpful advice or suggesting activities they can do to reach their end goal. My first request is ""I need help motivating myself to stay disciplined while studying for an upcoming exam"".",FALSE "Composer","I want you to act as a composer. I will provide the lyrics to a song and you will create music for it. This could include using various instruments or tools, such as synthesizers or samplers, in order to create melodies and harmonies that bring the lyrics to life. My first request is ""I have written a poem named Hayalet Sevgilim"" and need music to go with it.""""""",FALSE "Debater","I want you to act as a debater. I will provide you with some topics related to current events and your task is to research both sides of the debates, present valid arguments for each side, refute opposing points of view, and draw persuasive conclusions based on evidence. Your goal is to help people come away from the discussion with increased knowledge and insight into the topic at hand. My first request is ""I want an opinion piece about Deno.""",FALSE @@ -23,7 +23,7 @@ act,prompt,for_devs "Movie Critic","I want you to act as a movie critic. You will develop an engaging and creative movie review. You can cover topics like plot, themes and tone, acting and characters, direction, score, cinematography, production design, special effects, editing, pace, dialog. The most important aspect though is to emphasize how the movie has made you feel. What has really resonated with you. You can also be critical about the movie. Please avoid spoilers. My first request is ""I need to write a movie review for the movie Interstellar""",FALSE "Relationship Coach","I want you to act as a relationship coach. I will provide some details about the two people involved in a conflict, and it will be your job to come up with suggestions on how they can work through the issues that are separating them. This could include advice on communication techniques or different strategies for improving their understanding of one another's perspectives. My first request is ""I need help solving conflicts between my spouse and myself.""",FALSE "Poet","I want you to act as a poet. You will create poems that evoke emotions and have the power to stir people's soul. Write on any topic or theme but make sure your words convey the feeling you are trying to express in beautiful yet meaningful ways. You can also come up with short verses that are still powerful enough to leave an imprint in readers' minds. My first request is ""I need a poem about love.""",FALSE -"Rapper","I want you to act as a rapper. You will come up with powerful and meaningful lyrics, beats and rhythm that can 'wow' the audience. Your lyrics should have an intriguing meaning and message which people can relate too. When it comes to choosing your beat, make sure it is catchy yet relevant to your words, so that when combined they make an explosion of sound everytime! My first request is ""I need a rap song about finding strength within yourself.""",FALSE +"Rapper","I want you to act as a rapper. You will come up with powerful and meaningful lyrics, beats and rhythm that can 'wow' the audience. Your lyrics should have an intriguing meaning and message which people can relate too. When it comes to choosing your beat, make sure it is catchy yet relevant to your words, so that when combined they make an explosion of sound every time! My first request is ""I need a rap song about finding strength within yourself.""",FALSE "Motivational Speaker","I want you to act as a motivational speaker. Put together words that inspire action and make people feel empowered to do something beyond their abilities. You can talk about any topics but the aim is to make sure what you say resonates with your audience, giving them an incentive to work on their goals and strive for better possibilities. My first request is ""I need a speech about how everyone should never give up.""",FALSE "Philosophy Teacher","I want you to act as a philosophy teacher. I will provide some topics related to the study of philosophy, and it will be your job to explain these concepts in an easy-to-understand manner. This could include providing examples, posing questions or breaking down complex ideas into smaller pieces that are easier to comprehend. My first request is ""I need help understanding how different philosophical theories can be applied in everyday life.""",FALSE "Philosopher","I want you to act as a philosopher. I will provide some topics or questions related to the study of philosophy, and it will be your job to explore these concepts in depth. This could involve conducting research into various philosophical theories, proposing new ideas or finding creative solutions for solving complex problems. My first request is ""I need help developing an ethical framework for decision making.""",FALSE diff --git a/codex-cli/src/utils/config.ts b/codex-cli/src/utils/config.ts index d151c05f..aba99b13 100644 --- a/codex-cli/src/utils/config.ts +++ b/codex-cli/src/utils/config.ts @@ -76,7 +76,7 @@ export const OPENAI_ORGANIZATION = process.env["OPENAI_ORGANIZATION"] || ""; export const OPENAI_PROJECT = process.env["OPENAI_PROJECT"] || ""; // Can be set `true` when Codex is running in an environment that is marked as already -// considered sufficiently locked-down so that we allow running wihtout an explicit sandbox. +// considered sufficiently locked-down so that we allow running without an explicit sandbox. export const CODEX_UNSAFE_ALLOW_NO_SANDBOX = Boolean( process.env["CODEX_UNSAFE_ALLOW_NO_SANDBOX"] || "", ); diff --git a/codex-rs/README.md b/codex-rs/README.md index fa724420..4babf226 100644 --- a/codex-rs/README.md +++ b/codex-rs/README.md @@ -10,7 +10,7 @@ To that end, we are moving forward with a Rust implementation of Codex CLI conta - Can make direct, native calls to [seccomp](https://man7.org/linux/man-pages/man2/seccomp.2.html) and [landlock](https://man7.org/linux/man-pages/man7/landlock.7.html) in order to support sandboxing on Linux. - No runtime garbage collection, resulting in lower memory consumption and better, more predictable performance. -Currently, the Rust implementation is materially behind the TypeScript implementation in functionality, so continue to use the TypeScript implmentation for the time being. We will publish native executables via GitHub Releases as soon as we feel the Rust version is usable. +Currently, the Rust implementation is materially behind the TypeScript implementation in functionality, so continue to use the TypeScript implementation for the time being. We will publish native executables via GitHub Releases as soon as we feel the Rust version is usable. ## Code Organization diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index 440451a9..a98a2724 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -832,7 +832,7 @@ async fn run_turn( let prev_id = if store { state.previous_response_id.clone() } else { - // When using ZDR, the Reponses API may send previous_response_id + // When using ZDR, the Responses API may send previous_response_id // back, but trying to use it results in a 400. None }; diff --git a/codex-rs/core/src/exec.rs b/codex-rs/core/src/exec.rs index de758c88..af09ded0 100644 --- a/codex-rs/core/src/exec.rs +++ b/codex-rs/core/src/exec.rs @@ -318,7 +318,7 @@ pub(crate) async fn spawn_child_async( cmd.kill_on_drop(true).spawn() } -/// Alternative verison of `spawn_child_async()` that returns +/// Alternative version of `spawn_child_async()` that returns /// `std::process::Child` instead of `tokio::process::Child`. This is useful for /// spawning a child process in a thread that is not running a Tokio runtime. pub fn spawn_child_sync( diff --git a/codex-rs/execpolicy/src/arg_resolver.rs b/codex-rs/execpolicy/src/arg_resolver.rs index 060009f8..4342f1b4 100644 --- a/codex-rs/execpolicy/src/arg_resolver.rs +++ b/codex-rs/execpolicy/src/arg_resolver.rs @@ -30,7 +30,7 @@ pub fn resolve_observed_args_with_patterns( // `suffix_patterns` and use that to determine how many args are left to // be matched by `vararg_pattern` (which could be zero). // - // After assocating positional args with `vararg_pattern`, we match the + // After associating positional args with `vararg_pattern`, we match the // `suffix_patterns` with the remaining args. let ParitionedArgs { num_prefix_args, diff --git a/codex-rs/execpolicy/src/default.policy b/codex-rs/execpolicy/src/default.policy index bd27a0bb..a0e2b27e 100644 --- a/codex-rs/execpolicy/src/default.policy +++ b/codex-rs/execpolicy/src/default.policy @@ -136,7 +136,7 @@ define_program( ["--glob", "src"], ], # TODO(mbolin): Perhaps we need a way to indicate that we expect `rg` to be - # bundled with the host environment and we should be using that verison. + # bundled with the host environment and we should be using that version. system_path=[], )