Skip to content

Commit 99673f1

Browse files
wkylegcursoragent
andcommitted
feat: prepare v0.1.0 release
- Complete documentation rewrite with professional formatting - Add brand assets (logos for light/dark mode) - Add TypeDoc API documentation - Enhance adapters (anvil, foundry, viem) - Add TypeScript scenario loading via tsx - Add changesets for version management - Add testing helpers and statistics utilities - Configure for NPM publication Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 0d8407f commit 99673f1

223 files changed

Lines changed: 14267 additions & 633 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Changesets
2+
3+
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4+
with multi-package repos, or single-package repos to help you version and publish your code. You can
5+
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6+
7+
We have a quick list of common questions to get you started engaging with this project in
8+
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
9+
10+
## Adding a changeset
11+
12+
When you make changes that should be released, run:
13+
14+
```bash
15+
pnpm changeset
16+
```
17+
18+
This will prompt you to:
19+
1. Select the type of change (major, minor, patch)
20+
2. Write a summary of the changes
21+
22+
The changeset file will be committed with your PR.
23+
24+
## Releasing
25+
26+
When changesets are merged to main, a GitHub Action will:
27+
1. Create a "Version Packages" PR with version bumps and CHANGELOG updates
28+
2. When that PR is merged, it creates a git tag
29+
3. The tag triggers the release workflow to publish to npm

.changeset/config.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
3+
"changelog": "@changesets/cli/changelog",
4+
"commit": false,
5+
"fixed": [],
6+
"linked": [],
7+
"access": "public",
8+
"baseBranch": "main",
9+
"updateInternalDependencies": "patch",
10+
"ignore": []
11+
}

.github/workflows/changesets.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Changesets
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
release:
14+
name: Release
15+
runs-on: ubuntu-latest
16+
permissions:
17+
contents: write
18+
pull-requests: write
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
with:
23+
fetch-depth: 0
24+
25+
- name: Setup pnpm
26+
uses: pnpm/action-setup@v4
27+
with:
28+
version: 9
29+
30+
- name: Setup Node.js
31+
uses: actions/setup-node@v4
32+
with:
33+
node-version: '20'
34+
cache: 'pnpm'
35+
36+
- name: Install dependencies
37+
run: pnpm install --frozen-lockfile
38+
39+
- name: Create Release Pull Request or Tag
40+
id: changesets
41+
uses: changesets/action@v1
42+
with:
43+
version: pnpm changeset version
44+
publish: pnpm run release:tag
45+
title: 'chore: version packages'
46+
commit: 'chore: version packages'
47+
env:
48+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49+
50+
- name: Push tags
51+
if: steps.changesets.outputs.hasChangesets == 'false'
52+
run: git push --follow-tags

CHANGELOG.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [0.1.0] - 2026-01-27
11+
12+
### Added
13+
14+
- Initial public release of AgentForge
15+
- **Core Simulation Framework**
16+
- `defineScenario()` for declarative scenario configuration
17+
- `BaseAgent` class with memory, cooldowns, and parameter support
18+
- `SimulationEngine` for orchestrating simulation lifecycle
19+
- Deterministic seeded RNG for reproducible results
20+
- **Scheduling Strategies**
21+
- Round-robin execution
22+
- Random (shuffled) execution
23+
- Priority-based execution
24+
- **Metrics and Analytics**
25+
- Time-series metric collection
26+
- CSV export for analysis
27+
- JSON summary generation
28+
- Action logging (NDJSON format)
29+
- **Assertions System**
30+
- Post-simulation validation
31+
- Comparison operators: `gt`, `gte`, `lt`, `lte`, `eq`
32+
- CI-friendly exit codes on assertion failure
33+
- **CLI Tool (`agentforge` / `forge-sim`)**
34+
- `init` - Initialize simulation folder structure
35+
- `run` - Execute scenario files
36+
- `doctor` - Check environment dependencies
37+
- `types` - Generate TypeScript types from Foundry artifacts
38+
- **Adapters**
39+
- Anvil adapter for local EVM simulation
40+
- Viem client integration
41+
- Foundry artifact parsing
42+
- **Toy Simulation Pack**
43+
- `ToyPack` for development and testing
44+
- `RandomTraderAgent` - Random buy/sell decisions
45+
- `MomentumAgent` - Trend-following behavior
46+
- `MarketMakerAgent` - Spread-based market making
47+
- **Developer Experience**
48+
- Full TypeScript support with type inference
49+
- ESM module format
50+
- Comprehensive JSDoc documentation on core APIs
51+
- Example scenarios in `examples/` directory
52+
53+
### Documentation
54+
55+
- README with installation, quick start, and API reference
56+
- CONTRIBUTING.md with development guidelines
57+
- Example scenarios demonstrating key features
58+
59+
[Unreleased]: https://github.com/wkyleg/agentforge/compare/v0.1.0...HEAD
60+
[0.1.0]: https://github.com/wkyleg/agentforge/releases/tag/v0.1.0

0 commit comments

Comments
 (0)