Commit Graph

124 Commits

Author SHA1 Message Date
Christopher Cooper
f9c15523e7 docs: clarify sandboxing situation on Linux (#103)
There doesn't appear to actually be any sandboxing on Linux. Correct the
README.

Signed-off-by: Christopher Cooper <christopher@cg505.com>
2025-04-17 08:15:39 -07:00
Mehmet Vecdi Gönül
4e7403e5ea bugfix: additional error handling logic for model errors that occur in stream (#203)
**What is  added?**

Additional error handling functionality is added before the errors are
thrown to be handled by upstream handlers. The changes improves the user
experience and make the error handling smoother (and more informative).

**Why is it added?**
Before this addition, when a user tried to use a model they needed
previous setup for, the program crashed. This is not necessary here, and
informative message is sufficient and enhances user experience. This
adheres to the specifications stated in the code file as well by not
masking potential logical error detection. Following is before and
after:


![first](https://github.com/user-attachments/assets/0ce7c57d-8159-4cf7-8a53-3062cfd04dc8)

![second](https://github.com/user-attachments/assets/a9f24410-d76d-43d4-a0e2-ec513026843d)

Moreover, AFAIK no logic was present to handle this or a similar issue
in upstream handlers.

**How is it scoped? Why won't this mask other errors?**
The new brach triggers *only* for `invalid_request_error` events whose
`code` is model related (`model_not_found`)

This also doesn't prevent the detection (for the case of masking logical
errors) of wrong model names, as they would have been caught earlier on.

The code passes test, lint and type checks. I believe relevant
documentation is added, but I would be more than happy to do further
fixes in the code if necessary.
2025-04-17 08:09:27 -07:00
LouisLv
af69e793e7 fix: check workdir before spawn (#221)
The workdir used to spawn a agent command is provide by the agent tool,
we need to ensure its existence and fallback to process.cwd when not.

fix #212
2025-04-17 07:14:12 -07:00
Jatan Loya
4926cab476 fix: typos in prompts and comments (#195)
Used Codex and https://github.com/crate-ci/typos to identify + fix typos

Signed-off-by: Jatan Loya <jatanloya@gmail.com>
2025-04-17 07:12:39 -07:00
Brayden Moon
b0ccca5556 fix: allow continuing after interrupting assistant (#178)
## Description
This PR fixes the issue where the CLI can't continue after interrupting
the assistant with ESC ESC (Fixes #114). The problem was caused by
duplicate code in the `cancel()` method and improper state reset after
cancellation.

## Changes
- Fixed duplicate code in the `cancel()` method of the `AgentLoop` class
- Added proper reset of the `currentStream` property in the `cancel()`
method
- Created a new `AbortController` after aborting the current one to
ensure future tool calls work
- Added a system message to indicate the interruption to the user
- Added a comprehensive test to verify the fix

## Benefits
- Users can now continue using the CLI after interrupting the assistant
- Improved user experience by providing feedback when interruption
occurs
- Better state management in the agent loop

## Testing
- Added a dedicated test that verifies the agent can process new input
after cancellation
- Manually tested the fix by interrupting the assistant and confirming
that new input is processed correctly

---------

Signed-off-by: crazywolf132 <crazywolf132@gmail.com>
2025-04-16 22:20:19 -07:00
Jake Kay
b5fad66e2c fix: add missing "as" in prompt prefix in agent loop (#186)
# Description

This PR fixes a typo where the prompt prefix for the agent loop was
missing the word "as"

# Changes

* Added missing word "as" within the agent loop prompt prefix

# Benefits

* The prompt is now grammatically correct and clearer

# Testing

* Manually tested the fix
2025-04-16 22:16:16 -07:00
Thibault Sottiaux
47c683480f (feat) expontential back-off when encountering rate limit errors (#153)
...and try to parse the suggested time from the error message while we
don't yet have this in a structured way

---------

Signed-off-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 17:37:12 -07:00
Yonatan Lavy
6d4c4b1bdd refactor: improve performance of renderFilesToXml using Array.join (#127)
### Summary

Refactored the `renderFilesToXml` function to improve performance and
readability by replacing iterative string concatenation with
`Array.map().join()`.

### Changes

- Replaced the `for...of` loop with `files.map(...).join('')`
- Reduced number of string mutation operations
- Preserved the existing XML structure and CDATA safety

### Why

Using `join` avoids repeated string concatenation in loops, which can
improve performance, especially when rendering a large number of files.
It also results in more concise and idiomatic code.


I have read the CLA Document and I hereby sign the CLA
---

Let me know if this needs any adjustments!

Signed-off-by: yonatanlavy <yehonatanmind@gmail.com>
2025-04-16 16:14:57 -07:00
Fouad Matin
13c776411a bump(version): 0.1.2504161510 (#135)
Signed-off-by: Fouad Matin <fouad@openai.com>
2025-04-16 15:49:32 -07:00
Michael Bolin
fb6f798671 Removes computeAutoApproval() and tightens up canAutoApprove() as the source of truth (#126)
Previously, `parseToolCall()` was using `computeAutoApproval()`, which
was a somewhat parallel implementation of `canAutoApprove()` in order to
get `SafeCommandReason` metadata for presenting information to the user.
The only function that was using `SafeCommandReason` was
`useMessageGrouping()`, but it turns out that function was unused, so
this PR removes `computeAutoApproval()` and all code related to it.

More importantly, I believe this fixes
https://github.com/openai/codex/issues/87 because
`computeAutoApproval()` was calling `parse()` from `shell-quote` without
wrapping it in a try-catch. This PR updates `canAutoApprove()` to use a
tighter try-catch block that is specific to `parse()` and returns an
appropriate `SafetyAssessment` in the event of an error, based on the
`ApprovalPolicy`.

Signed-off-by: Michael Bolin <mbolin@openai.com>
2025-04-16 15:39:41 -07:00
Fouad Matin
7d21ebea4a bump(version): 0.1.04161352 (#125)
Signed-off-by: Fouad Matin <fouad@openai.com>
2025-04-16 15:11:02 -07:00
Michael Bolin
9b733fc48f Back out @lib indirection in tsconfig.json (#111) 2025-04-16 14:16:53 -07:00
Thibault Sottiaux
1c4e2e19ea (feat) basic retries when hitting rate limit errors (#105)
* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

---------

Signed-off-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 13:47:23 -07:00
Fouad Matin
3cd31c8e13 add: release script (#96)
* add: release script

* add: src to npm module

* fix: readme

Signed-off-by: Fouad Matin <fouad@openai.com>

---------

Signed-off-by: Fouad Matin <fouad@openai.com>
2025-04-16 13:21:22 -07:00
Varun Khalate
71a1ff6ee2 fix: prompt typo (#81)
* fix: developer typo

* fix: typo
2025-04-16 12:43:10 -07:00
easong-openai
75e2454d1d (feat) gracefully handle invalid commands (#79)
* handle invalid commands
* better test
* format
2025-04-16 12:30:43 -07:00
Thibault Sottiaux
e323b2cc95 remove rg requirement (#50)
Signed-off-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 11:37:16 -07:00
Adam Montgomery
94889dd76e (feat) add request error details (#31)
Signed-off-by: Adam Montgomery <montgomery.adam@gmail.com>
2025-04-16 11:23:42 -07:00
Yashraj Yadav
e9f84eab01 (fix) o3 instead of o3-mini (#37)
* o3 instead of o3-mini
2025-04-16 11:18:41 -07:00
Trevor Creech
443ffb7373 update summary to auto (#1) 2025-04-16 10:44:19 -07:00
Thibault Sottiaux
1b40e19baf w (#8) 2025-04-16 10:32:45 -07:00
Thibault Sottiaux
1c26c272c8 Add link to cookbook (#2) 2025-04-16 13:15:46 -04:00
Ilan Bigio
ae7b518c53 Initial commit
Signed-off-by: Ilan Bigio <ilan@openai.com>
2025-04-16 13:00:18 -04:00
Ilan Bigio
59a180ddec Initial commit
Signed-off-by: Ilan Bigio <ilan@openai.com>
2025-04-16 12:56:08 -04:00