Skip to content
Closed
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
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: 2
updates:
- package-ecosystem: "swift"
directory: "/"
schedule:
interval: "weekly"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
persist-credentials: false
- name: Install Mint
run: brew install mint
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ~/.mint
key: mint-${{ hashFiles('Mintfile') }}
Expand All @@ -43,7 +43,7 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: .build
key: macos-spm-${{ hashFiles('Package.resolved', 'Package.swift') }}
Expand Down
54 changes: 54 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Contributing to AgentRunKit

Thanks for your interest in contributing.

## Setup

```bash
# Install tools
make bootstrap

# Verify everything works
make check
```

`make bootstrap` installs [Mint](https://github.com/yonaskolb/Mint) and the pinned versions of SwiftFormat and SwiftLint from the `Mintfile`.

## Before Submitting a PR

Run the full gate:

```bash
make check
```

This runs `swiftformat`, `swiftlint --strict`, and `swift test`. CI runs the same checks — if `make check` passes locally, CI will pass.

## Code Style

- SwiftFormat and SwiftLint enforce the style. Don't fight the tools.
- No comments or docstrings unless explaining a non-obvious *why*.
- No backward-compatibility hacks. Prefer the most elegant solution.
- All public types must be `Sendable`.

See `CLAUDE.md` for the full coding standards.

## Commit Messages

Format: `verb(scope): description`

```
add(gemini): google gemini client with streaming and tool calling
fix(auth): prevent token refresh race on concurrent requests
refactor(api): extract shared validation into middleware
```

Single sentence, lowercase, imperative mood, no trailing period.

## Tests

Every change needs tests. Test behavior, not implementation details. Run with:

```bash
swift test --filter YourTestSuite
```
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
</p>

<p align="center">
<a href="https://github.com/Tom-Ryder/AgentRunKit/actions/workflows/ci.yml"><img src="https://github.com/Tom-Ryder/AgentRunKit/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
<img src="https://img.shields.io/badge/Swift-6.0-orange" alt="Swift 6.0">
<img src="https://img.shields.io/badge/Platforms-iOS%2018%20%7C%20macOS%2015-blue" alt="Platforms">
<img src="https://img.shields.io/badge/On--Device-MLX%20%7C%20Foundation%20Models-8B5CF6" alt="On-Device MLX + Foundation Models">
Expand Down