Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
3e1a004
feat: agents
tymondesigns Sep 12, 2025
6b376db
wip
tymondesigns Sep 25, 2025
6d5b680
wip
tymondesigns Oct 3, 2025
88f6018
wip
tymondesigns Oct 5, 2025
420667b
wip
tymondesigns Oct 7, 2025
b7ccb25
wip
tymondesigns Oct 7, 2025
08c99a0
wip
tymondesigns Oct 21, 2025
b60b6ce
wip
tymondesigns Oct 22, 2025
153161b
wip
tymondesigns Oct 24, 2025
2d730af
wip
tymondesigns Oct 31, 2025
05e79a8
wip
tymondesigns Nov 5, 2025
f5f36a6
wip
tymondesigns Nov 5, 2025
74cc058
wip
tymondesigns Nov 6, 2025
7ae885c
wip
tymondesigns Nov 6, 2025
4714ec6
wip
tymondesigns Nov 6, 2025
27747d2
wip
tymondesigns Nov 11, 2025
aa0fc00
wip
tymondesigns Nov 11, 2025
d3af3af
wip
tymondesigns Nov 12, 2025
6cd55a9
wip
tymondesigns Nov 13, 2025
50dd552
wip
tymondesigns Nov 14, 2025
99ca2cc
wip
tymondesigns Nov 14, 2025
7c969eb
wip
tymondesigns Nov 14, 2025
1e15931
wip
tymondesigns Nov 14, 2025
ccc6df0
wip
tymondesigns Nov 14, 2025
8fe39fb
stan
tymondesigns Nov 14, 2025
de8fafd
types
tymondesigns Nov 14, 2025
14ccf1d
wip
tymondesigns Nov 14, 2025
60d4158
wip
tymondesigns Nov 15, 2025
62d0638
wip
tymondesigns Nov 15, 2025
b051882
wip
tymondesigns Nov 15, 2025
f7b125a
wip
tymondesigns Nov 15, 2025
e0e5cdd
wip
tymondesigns Nov 15, 2025
202c3da
wip
tymondesigns Nov 17, 2025
533e6ea
wip
tymondesigns Nov 18, 2025
0957a17
wip
tymondesigns Nov 20, 2025
02eb8aa
wip
tymondesigns Nov 20, 2025
c963f0b
remove 8.5 for now
tymondesigns Nov 20, 2025
15534eb
wip
tymondesigns Nov 24, 2025
9e97081
wip
tymondesigns Nov 25, 2025
e13f9dd
wip
tymondesigns Nov 25, 2025
87a5bbe
fixes
tymondesigns Nov 26, 2025
c1a48ff
wip
tymondesigns Nov 26, 2025
84e319b
fix
tymondesigns Nov 26, 2025
aca2d07
add middleware capability
tymondesigns Nov 26, 2025
08502e1
wip
tymondesigns Nov 27, 2025
a591664
fix
tymondesigns Nov 27, 2025
a540049
fixes
tymondesigns Dec 2, 2025
aa4cc36
fixes
tymondesigns Dec 5, 2025
c2cd230
update middleware
tymondesigns Dec 5, 2025
cdf3131
cleanup
tymondesigns Dec 5, 2025
1fb8d49
cleanup
tymondesigns Dec 5, 2025
658079f
wip
tymondesigns Dec 7, 2025
8e4dab8
add workbench
tymondesigns Dec 7, 2025
f20075d
update console
tymondesigns Dec 7, 2025
4271217
improvemenys
tymondesigns Dec 7, 2025
6620625
improvements
tymondesigns Dec 7, 2025
3b1b190
improvements
tymondesigns Dec 8, 2025
a786706
improvements
tymondesigns Dec 9, 2025
f99c422
wip
tymondesigns Dec 9, 2025
d90cf28
wip
tymondesigns Dec 9, 2025
556d755
wip
tymondesigns Dec 9, 2025
ef15488
wip
tymondesigns Dec 9, 2025
d22c959
wip
tymondesigns Dec 10, 2025
78759de
add blade prompt factory
tymondesigns Dec 15, 2025
490ca1c
fix
tymondesigns Dec 15, 2025
8a7f845
fix
tymondesigns Dec 15, 2025
83fe67b
wip
tymondesigns Dec 16, 2025
9516e2b
fix
tymondesigns Dec 16, 2025
9081300
add compilers
tymondesigns Dec 16, 2025
21c31ee
stan
tymondesigns Dec 16, 2025
060e4c4
wip
tymondesigns Dec 17, 2025
0418e66
ci
tymondesigns Dec 17, 2025
1e3b275
ci
tymondesigns Dec 17, 2025
ce52bc4
ci
tymondesigns Dec 17, 2025
cbff1b9
upgrade pest
tymondesigns Dec 17, 2025
2370371
stan
tymondesigns Dec 17, 2025
3906aa2
stan
tymondesigns Dec 17, 2025
dba684a
cache
tymondesigns Dec 17, 2025
ef52de0
ci
tymondesigns Dec 17, 2025
48b5026
Merge branch 'main' into feat/agents
tymondesigns Dec 17, 2025
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
1 change: 1 addition & 0 deletions .cursor/commands/fix-stan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Use `composer stan --no-progress` to see the PHPStan failures, and then fix them.
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@
/testbench.yaml export-ignore
/ecs.php export-ignore
/tests export-ignore
/cortex export-ignore
/phpstan.neon export-ignore
/workbench export-ignore
48 changes: 48 additions & 0 deletions .github/actions/setup-php-composer/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: 'Setup PHP and Composer'
description: 'Setup PHP and install Composer dependencies with caching'

inputs:
php-version:
description: 'PHP version to use'
required: false
default: '8.4'
coverage:
description: 'Coverage driver to use (none, xdebug, pcov)'
required: false
default: 'none'
stability:
description: 'Composer stability preference (prefer-stable, prefer-lowest)'
required: false
default: 'prefer-stable'

runs:
using: 'composite'
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ inputs.php-version }}
coverage: ${{ inputs.coverage }}

- name: Get Composer Cache Directory
id: composer-cache
shell: bash
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

- name: Cache Composer dependencies
uses: actions/cache@v5
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ inputs.stability }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-

- name: Install dependencies
shell: bash
run: |
if [ "${{ inputs.stability }}" = "prefer-lowest" ]; then
composer update --prefer-lowest --prefer-dist --no-interaction --no-progress
else
composer install --prefer-dist --no-interaction --no-progress
fi

11 changes: 4 additions & 7 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
fail-fast: true
matrix:
os: [ubuntu-latest]
php: [8.3, 8.4]
php: [8.4, 8.5]
stability: [prefer-lowest, prefer-stable]

name: PHP${{ matrix.php }} - ${{ matrix.stability }} - ${{ matrix.os }}
Expand All @@ -22,20 +22,17 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6

- name: Setup PHP
uses: shivammathur/setup-php@v2
- name: Setup PHP and Composer
uses: ./.github/actions/setup-php-composer
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
coverage: none
stability: ${{ matrix.stability }}

- name: Setup problem matchers
run: |
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"

- name: Install dependencies
run: composer update --${{ matrix.stability }} --prefer-dist --no-interaction

- name: Execute tests
run: vendor/bin/pest --colors=always
64 changes: 28 additions & 36 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,8 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo

- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache Composer dependencies
uses: actions/cache@v5
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-

- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-progress
- name: Setup PHP and Composer
uses: ./.github/actions/setup-php-composer

- name: Cache phpstan results
uses: actions/cache@v5
Expand All @@ -52,26 +34,36 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
- name: Setup PHP and Composer
uses: ./.github/actions/setup-php-composer

- name: Check type coverage
run: vendor/bin/pest --type-coverage --min=100

format:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Get Composer Cache Directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Setup PHP and Composer
uses: ./.github/actions/setup-php-composer

- name: Cache Composer dependencies
- name: Cache rector results
uses: actions/cache@v5
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
path: /tmp/rector
key: "rector-cache-${{ github.run_id }}" # always write a new cache
restore-keys: |
${{ runner.os }}-composer-
rector-cache-

- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-progress
- name: Cache ecs results
uses: actions/cache@v5
with:
path: /tmp/ecs
key: "ecs-cache-${{ github.run_id }}" # always write a new cache
restore-keys: |
ecs-cache-

- name: Check type coverage
run: vendor/bin/pest --type-coverage --min=100
- name: Run format checks
run: composer format --no-progress-bar
45 changes: 31 additions & 14 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,19 @@
"authors": [
{
"name": "Sean Tymon",
"email": "tymon148@gmail.com",
"email": "sean@tymon.dev",
"role": "Developer"
}
],
"require": {
"php": "^8.3",
"php": "^8.4",
"adhocore/json-fixer": "^1.0",
"cortexphp/json-schema": "^0.6",
"cortexphp/json-schema": "dev-main",
"cortexphp/model-info": "^0.3",
"illuminate/collections": "^11.23",
"illuminate/collections": "^12.0",
"laravel/prompts": "^0.3.8",
"mozex/anthropic-php": "^1.1",
"openai-php/client": "^0.15",
"openai-php/client": "^0.18",
"php-mcp/client": "^1.0",
"psr-discovery/cache-implementations": "^1.2",
"psr-discovery/event-dispatcher-implementations": "^1.1",
Expand All @@ -34,24 +35,28 @@
"hkulekci/qdrant": "^0.5.8",
"league/event": "^3.0",
"mockery/mockery": "^1.6",
"orchestra/testbench": "^9.8",
"pestphp/pest": "^3.0",
"pestphp/pest-plugin-type-coverage": "^3.4",
"orchestra/testbench": "^10.6",
"pestphp/pest": "^4.0",
"pestphp/pest-plugin-type-coverage": "^4.0",
"phpstan/phpstan": "^2.0",
"rector/rector": "^2.0",
"symplify/easy-coding-standard": "^12.5"
"symplify/easy-coding-standard": "^13.0"
},
"autoload": {
"psr-4": {
"Cortex\\": "src/"
},
"files": [
"src/Support/helpers.php"
"src/Support/helpers.php",
"src/Prompts/helpers.php"
]
},
"autoload-dev": {
"psr-4": {
"Cortex\\Tests\\": "tests/"
"Cortex\\Tests\\": "tests/",
"Workbench\\App\\": "workbench/app/",
"Workbench\\Database\\Factories\\": "workbench/database/factories/",
"Workbench\\Database\\Seeders\\": "workbench/database/seeders/"
}
},
"scripts": {
Expand All @@ -69,6 +74,18 @@
"@test",
"@stan",
"@type-coverage"
],
"post-autoload-dump": [
"@clear",
"@prepare"
],
"clear": "@php vendor/bin/testbench package:purge-skeleton --ansi",
"prepare": "@php vendor/bin/testbench package:discover --ansi",
"build": "@php vendor/bin/testbench workbench:build --ansi",
"serve": [
"Composer\\Config::disableProcessTimeout",
"@build",
"@php vendor/bin/testbench serve --ansi"
]
},
"config": {
Expand All @@ -79,9 +96,9 @@
"php-http/discovery": true
}
},
"extra" : {
"laravel" : {
"providers" : [
"extra": {
"laravel": {
"providers": [
"Cortex\\CortexServiceProvider"
]
}
Expand Down
Loading
Loading