Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cursor/rules/general.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ alwaysApply: true
- Always create new commits; avoid `--amend`.
- Use heredoc for multi-line command input (e.g., `git commit -F -`, `gh pr create --body-file -`).
- Put temporary files in `.tmp`; use `/tmp` only for files that must live outside the repo.
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally instead.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The word 'instead' at the end of the sentence is redundant. Removing it simplifies the instruction and makes it more direct, adhering to the style guide rule to eliminate redundancy.

- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally.
References
  1. Simplify code as much as possible to eliminate redundancy. (link)

- `bunfig.toml` uses Bun's isolated linker with a global store, so only declared dependencies resolve. If an import fails to resolve, declare that package in the `package.json` that imports it; never switch `linker` to `hoisted` or add to `publicHoistPattern` to work around it.

## Coding Style

Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ jobs:
github_hosted_runner: true
secrets:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERDACCIO_TOKEN: ${{ secrets.VERDACCIO_TOKEN }}
TAKUMI_GUARD_TOKEN: ${{ secrets.TAKUMI_GUARD_TOKEN }}
5 changes: 3 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ on:
push:
branches:
- main
- wbfy
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
actions: write
contents: write
pull-requests: read
jobs:
Expand All @@ -18,4 +19,4 @@ jobs:
github_hosted_runner: true
secrets:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERDACCIO_TOKEN: ${{ secrets.VERDACCIO_TOKEN }}
TAKUMI_GUARD_TOKEN: ${{ secrets.TAKUMI_GUARD_TOKEN }}
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ __generated__/
.claude/*.local.*
.claude/scheduled_tasks.lock
.devcontainer/
.env.production
.env*
.idea/AugmentWebviewStateStore.xml
.idea/copilot.*
.idea/copilot/chatSessions/
Expand Down
2 changes: 2 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
- Always create new commits; avoid `--amend`.
- Use heredoc for multi-line command input (e.g., `git commit -F -`, `gh pr create --body-file -`).
- Put temporary files in `.tmp`; use `/tmp` only for files that must live outside the repo.
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally instead.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The word 'instead' at the end of the sentence is redundant. Removing it simplifies the instruction and makes it more direct, adhering to the style guide rule to eliminate redundancy.

Suggested change
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally instead.
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally.
References
  1. Simplify code as much as possible to eliminate redundancy. (link)

- `bunfig.toml` uses Bun's isolated linker with a global store, so only declared dependencies resolve. If an import fails to resolve, declare that package in the `package.json` that imports it; never switch `linker` to `hoisted` or add to `publicHoistPattern` to work around it.

## Coding Style

Expand Down
2 changes: 2 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
- Always create new commits; avoid `--amend`.
- Use heredoc for multi-line command input (e.g., `git commit -F -`, `gh pr create --body-file -`).
- Put temporary files in `.tmp`; use `/tmp` only for files that must live outside the repo.
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally instead.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The word 'instead' at the end of the sentence is redundant. Removing it simplifies the instruction and makes it more direct, adhering to the style guide rule to eliminate redundancy.

Suggested change
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally instead.
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally.
References
  1. Simplify code as much as possible to eliminate redundancy. (link)

- `bunfig.toml` uses Bun's isolated linker with a global store, so only declared dependencies resolve. If an import fails to resolve, declare that package in the `package.json` that imports it; never switch `linker` to `hoisted` or add to `publicHoistPattern` to work around it.

## Coding Style

Expand Down
2 changes: 2 additions & 0 deletions GEMINI.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
- Always create new commits; avoid `--amend`.
- Use heredoc for multi-line command input (e.g., `git commit -F -`, `gh pr create --body-file -`).
- Put temporary files in `.tmp`; use `/tmp` only for files that must live outside the repo.
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally instead.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The word 'instead' at the end of the sentence is redundant. Removing it simplifies the instruction and makes it more direct, adhering to the style guide rule to eliminate redundancy.

Suggested change
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally instead.
- Tool versions (node, bun, and others) are pinned in `mise.toml`; run `mise install` after changing it, and never install those tools globally.
References
  1. Simplify code as much as possible to eliminate redundancy. (link)

- `bunfig.toml` uses Bun's isolated linker with a global store, so only declared dependencies resolve. If an import fails to resolve, declare that package in the `package.json` that imports it; never switch `linker` to `hoisted` or add to `publicHoistPattern` to work around it.

## Coding Style

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Test](https://github.com/WillBooster/agent-runtime-kit/actions/workflows/test.yml/badge.svg)](https://github.com/WillBooster/agent-runtime-kit/actions/workflows/test.yml)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![wbfy](https://img.shields.io/badge/wbfy-4.3.9-1e90ff.svg)](https://github.com/WillBooster/shared/tree/main/packages/wbfy)
[![wbfy](https://img.shields.io/badge/wbfy-12.4.2-1e90ff.svg)](https://github.com/WillBooster/shared/tree/main/packages/wbfy)

A provider-agnostic SDK for orchestrating AI agent sessions, streaming events, and structured outputs across multiple coding agent backends.

Expand Down
100 changes: 51 additions & 49 deletions bun.lock

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions bunfig.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ globalStore = true
linker = "isolated"
publicHoistPattern = ["tsx", "undici-types"]
minimumReleaseAge = 432000 # 5 days
# minimumReleaseAgeExcludes is managed by wbfy — repository-specific entries are prohibited and
# removed on every run (the minimumReleaseAge above may still be repository-specific). To exclude
# a package, add it to bunMinimumReleaseAgeExcludes in WillBooster/shared
# (packages/wbfy/src/generators/bunfig.ts) so every repository shares the same vetted list.
minimumReleaseAgeExcludes = [
"@exercode/problem-utils",
"@willbooster-private/agentic-workflows",
Expand Down Expand Up @@ -135,4 +139,5 @@ minimumReleaseAgeExcludes = [
"react",
"react-dom",
"react-is",
"react-server-dom-webpack",
]
26 changes: 26 additions & 0 deletions lefthook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,29 @@ pre-commit:
fi
done
exit "$failed"
- name: normalize-bun-lockfile
glob: bun.lock
run: |-
# Abort on any failure: a partially written temp file must never replace the lockfile.
set -e
# Lefthook expands {staged_files} as shell-escaped args, so paths with spaces stay intact.
for file in {staged_files}; do
# A sibling temp file makes the replacement an atomic same-directory rename, and `cp -p` gives
# it the lockfile's original mode (mktemp alone creates 0600, and git tracks only the executable
# bit, so that would change silently). The name must stay unpredictable and be created by
# mktemp: a repository-committed symlink at a fixed sibling path would otherwise be followed by
# `cp` and the redirection, and the `mv` would then turn bun.lock into that symlink.
normalized="$(mktemp "$file.wbfy-normalizing.XXXXXX")"
trap 'rm -f "$normalized"' EXIT
cp -p "$file" "$normalized"
# Anchored to `", ` so only a registry entry's `resolved` slot is cleared (mirroring
# reusable-workflows and wb's normalizeBunLockfile): a DIRECT tarball dependency carries the same
# host in the workspace descriptor and the package tuple's first element, which must survive.
sed -E 's#(", )"https://npm\.flatt\.tech/[^"]*"#\1""#g' "$file" > "$normalized"
if ! cmp -s "$file" "$normalized"; then
mv "$normalized" "$file"
echo "Removed Takumi Guard proxy URLs from $file so the lockfile stays registry-agnostic."
fi
rm -f "$normalized"
done
stage_fixed: true
2 changes: 1 addition & 1 deletion mise.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[tools]
bun = "1.3.14"
node = "24.18.0"
node = "24.18.1"
10 changes: 6 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"release": "semantic-release",
"test": "bun wb test",
"test:e2e-github": "bun test test/e2e/githubPr.test.ts",
"test/ci": "bun wb test-on-ci",
"typecheck": "bun wb typecheck",
"verify": "bun wb verify",
"verify-full": "bun wb verify --full"
Expand All @@ -42,12 +43,12 @@
"@types/bun": "1.3.14",
"@willbooster/oxfmt-config": "1.2.2",
"@willbooster/oxlint-config": "1.4.8",
"@willbooster/wb": "15.4.0",
"build-ts": "19.0.0",
"@willbooster/wb": "19.5.3",
"build-ts": "21.0.0",
"conventional-changelog-conventionalcommits": "10.2.1",
"lefthook": "2.1.10",
"oxfmt": "0.59.0",
"oxlint": "1.74.0",
"oxfmt": "0.61.0",
"oxlint": "1.76.0",
"oxlint-tsgolint": "7.0.2001",
"semantic-release": "25.0.8",
"sort-package-json": "4.0.0",
Expand All @@ -58,6 +59,7 @@
},
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/",
"tag": "latest"
}
}
2 changes: 1 addition & 1 deletion test/smoke.test.ts → test/unit/smoke.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
createCodexRuntime,
type RuntimeProvider,
SUPPORTED_RUNTIME_PROVIDERS,
} from '../src/index.js';
} from '../../src/index.js';

for (const provider of SUPPORTED_RUNTIME_PROVIDERS) {
test(`wraps ${provider} behind one interface`, async () => {
Expand Down
Loading