Skip to content

Commit 58c4808

Browse files
committed
Release version 0.16.0
1 parent 23574cc commit 58c4808

File tree

77 files changed

+851
-530
lines changed

Some content is hidden

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

77 files changed

+851
-530
lines changed

bin/code2md.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env bash
2+
set -e # stops script on first error
3+
4+
for dir in packages/*; do
5+
dirname=$(basename "$dir")
6+
if [ -d "$dir/src" ]; then
7+
echo "🔍 Exporting sources to Markdown in $dirname"
8+
code2prompt "$dir/src" -o "tmp/$dirname.md"
9+
fi
10+
done

bin/publish-ver.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,18 @@ echo "Using release notes from: $NOTES_FILE"
2626

2727
# Define packages - must match those in sync-ver.sh
2828
declare -A PACKAGES
29+
PACKAGES["packages/utils"]="cognesy/instructor-utils"
30+
PACKAGES["packages/http-client"]="cognesy/instructor-http-client"
31+
PACKAGES["packages/templates"]="cognesy/instructor-templates"
32+
PACKAGES["packages/polyglot"]="cognesy/instructor-polyglot"
33+
PACKAGES["packages/setup"]="cognesy/instructor-setup"
34+
PACKAGES["packages/instructor"]="cognesy/instructor-struct"
2935
PACKAGES["packages/addons"]="cognesy/instructor-addons"
3036
PACKAGES["packages/auxiliary"]="cognesy/instructor-auxiliary"
3137
PACKAGES["packages/evals"]="cognesy/instructor-evals"
3238
PACKAGES["packages/experimental"]="cognesy/instructor-experimental"
33-
PACKAGES["packages/http-client"]="cognesy/instructor-http-client"
3439
PACKAGES["packages/hub"]="cognesy/instructor-hub"
35-
PACKAGES["packages/instructor"]="cognesy/instructor-struct"
36-
PACKAGES["packages/polyglot"]="cognesy/instructor-polyglot"
37-
PACKAGES["packages/setup"]="cognesy/instructor-setup"
3840
PACKAGES["packages/tell"]="cognesy/instructor-tell"
39-
PACKAGES["packages/templates"]="cognesy/instructor-templates"
40-
PACKAGES["packages/utils"]="cognesy/instructor-utils"
4141

4242
# 0. Build docs
4343
echo "Step 0: Rebuilding documentation..."

composer.json

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,12 @@
5858
"Cognesy\\Tell\\Tests\\": "packages/tell/tests/",
5959
"Cognesy\\Templates\\Tests\\": "packages/templates/tests/",
6060
"Cognesy\\Utils\\Tests\\": "packages/utils/tests/",
61+
"Tests\\": "tests/",
6162
"Evals\\": "evals/",
62-
"Examples\\": "examples/",
63-
"Tests\\": "tests/"
63+
"Examples\\": "examples/"
6464
},
6565
"files": [
66+
"packages/addons/tests/Examples/Call/test_functions.php",
6667
"packages/instructor/tests/Examples/Call/test_functions.php"
6768
]
6869
},
@@ -73,11 +74,11 @@
7374
}
7475
],
7576
"require-dev": {
77+
"ext-SimpleXML": "*",
7678
"ext-curl": "*",
7779
"ext-dom": "*",
7880
"ext-fileinfo": "*",
7981
"ext-libxml": "*",
80-
"ext-SimpleXML": "*",
8182
"ext-xmlreader": "*",
8283
"cebe/markdown": "^1.2",
8384
"eftec/bladeone": "^4.16",
@@ -87,7 +88,7 @@
8788
"league/html-to-markdown": "^5.1",
8889
"maglnet/composer-require-checker": "^4.16",
8990
"mockery/mockery": "^1.6",
90-
"pestphp/pest": "^2.34",
91+
"pestphp/pest": "^2.0",
9192
"phpstan/phpstan": "^1.11",
9293
"psr/http-factory-implementation": "*",
9394
"spatie/browsershot": "^4.1",
@@ -127,9 +128,9 @@
127128
"vlucas/phpdotenv": "^5.6"
128129
},
129130
"scripts": {
130-
"tests": "@php vendor/bin/pest",
131-
"phpstan": "@php vendor/bin/phpstan -c phpstan.neon",
132-
"psalm": "@php vendor/bin/psalm",
131+
"tests": "@php ./vendor/bin/pest",
132+
"phpstan": "@php ./vendor/bin/phpstan -c phpstan.neon",
133+
"psalm": "@php ./vendor/bin/psalm",
133134
"instructor": "php ./bin/instructor"
134135
},
135136
"suggest": {

config/http.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
<?php
22

3-
use Cognesy\Http\Enums\HttpClientType;
4-
53
return [
64
'defaultClient' => 'guzzle',
75

86
'clients' => [
97
'guzzle' => [
10-
'httpClientType' => HttpClientType::Guzzle->value,
8+
'httpClientType' => 'guzzle',
119
'connectTimeout' => 3,
1210
'requestTimeout' => 30,
1311
'idleTimeout' => -1,
@@ -16,7 +14,7 @@
1614
'failOnError' => true,
1715
],
1816
'symfony' => [
19-
'httpClientType' => HttpClientType::Symfony->value,
17+
'httpClientType' => 'symfony',
2018
'connectTimeout' => 1,
2119
'requestTimeout' => 30,
2220
'idleTimeout' => -1,
@@ -25,7 +23,7 @@
2523
'failOnError' => true,
2624
],
2725
'laravel' => [
28-
'httpClientType' => HttpClientType::Laravel->value,
26+
'httpClientType' => 'laravel',
2927
'connectTimeout' => 1,
3028
'requestTimeout' => 30,
3129
'idleTimeout' => -1,
@@ -34,7 +32,7 @@
3432
'failOnError' => true,
3533
],
3634
'http-ollama' => [
37-
'httpClientType' => HttpClientType::Guzzle->value,
35+
'httpClientType' => 'guzzle',
3836
'connectTimeout' => 1,
3937
'requestTimeout' => 90,
4038
'idleTimeout' => -1,

docs-build/http/10-middleware.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ The Instructor HTTP client API includes several built-in middleware components f
227227
The `DebugMiddleware` logs detailed information about HTTP requests and responses:
228228

229229
```php
230-
use Cognesy\Polyglot\Http\Middleware\Debug\DebugMiddleware;
230+
use Cognesy\Http\Middleware\Debug\DebugMiddleware;
231231

232232
// Enable debug middleware
233233
$client->withMiddleware(new DebugMiddleware());
@@ -267,7 +267,7 @@ return [
267267
The `BufferResponseMiddleware` stores response bodies and streaming chunks for reuse:
268268

269269
```php
270-
use Cognesy\Polyglot\Http\Middleware\BufferResponse\BufferResponseMiddleware;
270+
use Cognesy\Http\Middleware\BufferResponse\BufferResponseMiddleware;
271271

272272
// Add buffer response middleware
273273
$client->withMiddleware(new BufferResponseMiddleware());
@@ -280,7 +280,7 @@ This middleware is useful when you need to access a response body or stream mult
280280
The `StreamByLineMiddleware` processes streaming responses line by line:
281281

282282
```php
283-
use Cognesy\Polyglot\Http\Middleware\StreamByLine\StreamByLineMiddleware;
283+
use Cognesy\Http\Middleware\StreamByLine\StreamByLineMiddleware;
284284

285285
// Add stream by line middleware
286286
$client->withMiddleware(new StreamByLineMiddleware());
@@ -305,7 +305,7 @@ $client->withMiddleware(new StreamByLineMiddleware($lineParser));
305305
The `RecordReplayMiddleware` records HTTP interactions and can replay them later:
306306

307307
```php
308-
use Cognesy\Polyglot\Http\Middleware\RecordReplay\RecordReplayMiddleware;
308+
use Cognesy\Http\Middleware\RecordReplay\RecordReplayMiddleware;
309309

310310
// Create a record/replay middleware in record mode
311311
$recordReplayMiddleware = new RecordReplayMiddleware(

docs-build/http/11-processing-with-middleware.mdx

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ The most direct approach is to implement the `HttpMiddleware` interface:
2222

2323
namespace YourNamespace\Http\Middleware;
2424

25-
use Cognesy\Polyglot\Http\Contracts\CanHandleHttpRequest;
26-
use Cognesy\Polyglot\Http\Contracts\HttpMiddleware;
27-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
28-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
25+
use Cognesy\Http\Contracts\CanHandleHttpRequest;
26+
use Cognesy\Http\Contracts\HttpMiddleware;
27+
use Cognesy\Http\Contracts\HttpClientResponse;
28+
use Cognesy\Http\Data\HttpClientRequest;
2929

3030
class LoggingMiddleware implements HttpMiddleware
3131
{
@@ -79,9 +79,9 @@ For most cases, extending the `BaseMiddleware` abstract class is more convenient
7979

8080
namespace YourNamespace\Http\Middleware;
8181

82-
use Cognesy\Polyglot\Http\BaseMiddleware;
83-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
84-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
82+
use Cognesy\Http\BaseMiddleware;
83+
use Cognesy\Http\Contracts\HttpClientResponse;
84+
use Cognesy\Http\Data\HttpClientRequest;
8585

8686
class AuthenticationMiddleware extends BaseMiddleware
8787
{
@@ -162,11 +162,11 @@ This middleware automatically retries failed requests:
162162

163163
namespace YourNamespace\Http\Middleware;
164164

165-
use Cognesy\Polyglot\Http\BaseMiddleware;
166-
use Cognesy\Polyglot\Http\Contracts\CanHandleHttpRequest;
167-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
168-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
169-
use Cognesy\Polyglot\Http\Exceptions\RequestException;
165+
use Cognesy\Http\BaseMiddleware;
166+
use Cognesy\Http\Contracts\CanHandleHttpRequest;
167+
use Cognesy\Http\Contracts\HttpClientResponse;
168+
use Cognesy\Http\Data\HttpClientRequest;
169+
use Cognesy\Http\Exceptions\RequestException;
170170

171171
class RetryMiddleware extends BaseMiddleware
172172
{
@@ -231,10 +231,10 @@ This middleware throttles requests to respect API rate limits:
231231

232232
namespace YourNamespace\Http\Middleware;
233233

234-
use Cognesy\Polyglot\Http\BaseMiddleware;
235-
use Cognesy\Polyglot\Http\Contracts\CanHandleHttpRequest;
236-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
237-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
234+
use Cognesy\Http\BaseMiddleware;
235+
use Cognesy\Http\Contracts\CanHandleHttpRequest;
236+
use Cognesy\Http\Contracts\HttpClientResponse;
237+
use Cognesy\Http\Data\HttpClientRequest;
238238

239239
class RateLimitingMiddleware extends BaseMiddleware
240240
{
@@ -298,11 +298,11 @@ This middleware caches responses for GET requests:
298298

299299
namespace YourNamespace\Http\Middleware;
300300

301-
use Cognesy\Polyglot\Http\BaseMiddleware;
302-
use Cognesy\Polyglot\Http\Contracts\CanHandleHttpRequest;
303-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
304-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
305-
use Cognesy\Polyglot\Http\Adapters\MockHttpResponse;
301+
use Cognesy\Http\BaseMiddleware;
302+
use Cognesy\Http\Contracts\CanHandleHttpRequest;
303+
use Cognesy\Http\Contracts\HttpClientResponse;
304+
use Cognesy\Http\Data\HttpClientRequest;
305+
use Cognesy\Http\Adapters\MockHttpResponse;
306306
use Psr\SimpleCache\CacheInterface;
307307

308308
class CachingMiddleware extends BaseMiddleware
@@ -377,9 +377,9 @@ All response decorators should implement the `HttpClientResponse` interface. The
377377

378378
namespace YourNamespace\Http\Middleware;
379379

380-
use Cognesy\Polyglot\Http\BaseResponseDecorator;
381-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
382-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
380+
use Cognesy\Http\BaseResponseDecorator;
381+
use Cognesy\Http\Contracts\HttpClientResponse;
382+
use Cognesy\Http\Data\HttpClientRequest;
383383
use Generator;
384384

385385
class JsonStreamDecorator extends BaseResponseDecorator
@@ -451,9 +451,9 @@ To use a response decorator, you need to create a middleware that wraps the resp
451451

452452
namespace YourNamespace\Http\Middleware;
453453

454-
use Cognesy\Polyglot\Http\BaseMiddleware;
455-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
456-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
454+
use Cognesy\Http\BaseMiddleware;
455+
use Cognesy\Http\Contracts\HttpClientResponse;
456+
use Cognesy\Http\Data\HttpClientRequest;
457457

458458
class JsonStreamMiddleware extends BaseMiddleware
459459
{
@@ -492,9 +492,9 @@ You can use response decoration to transform response content on-the-fly:
492492

493493
namespace YourNamespace\Http\Middleware;
494494

495-
use Cognesy\Polyglot\Http\BaseResponseDecorator;
496-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
497-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
495+
use Cognesy\Http\BaseResponseDecorator;
496+
use Cognesy\Http\Contracts\HttpClientResponse;
497+
use Cognesy\Http\Data\HttpClientRequest;
498498

499499
class XmlToJsonDecorator extends BaseResponseDecorator
500500
{
@@ -529,9 +529,9 @@ And the corresponding middleware:
529529

530530
namespace YourNamespace\Http\Middleware;
531531

532-
use Cognesy\Polyglot\Http\BaseMiddleware;
533-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
534-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
532+
use Cognesy\Http\BaseMiddleware;
533+
use Cognesy\Http\Contracts\HttpClientResponse;
534+
use Cognesy\Http\Data\HttpClientRequest;
535535

536536
class XmlToJsonMiddleware extends BaseMiddleware
537537
{
@@ -566,9 +566,9 @@ This middleware collects analytics data about HTTP requests:
566566

567567
namespace YourNamespace\Http\Middleware;
568568

569-
use Cognesy\Polyglot\Http\BaseMiddleware;
570-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
571-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
569+
use Cognesy\Http\BaseMiddleware;
570+
use Cognesy\Http\Contracts\HttpClientResponse;
571+
use Cognesy\Http\Data\HttpClientRequest;
572572

573573
class AnalyticsMiddleware extends BaseMiddleware
574574
{
@@ -621,12 +621,12 @@ This middleware implements the circuit breaker pattern to prevent repeated calls
621621

622622
namespace YourNamespace\Http\Middleware;
623623

624-
use Cognesy\Polyglot\Http\BaseMiddleware;
625-
use Cognesy\Polyglot\Http\Contracts\CanHandleHttpRequest;
626-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
627-
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
628-
use Cognesy\Polyglot\Http\Exceptions\RequestException;
629-
use Cognesy\Polyglot\Http\Adapters\MockHttpResponse;
624+
use Cognesy\Http\BaseMiddleware;
625+
use Cognesy\Http\Contracts\CanHandleHttpRequest;
626+
use Cognesy\Http\Contracts\HttpClientResponse;
627+
use Cognesy\Http\Data\HttpClientRequest;
628+
use Cognesy\Http\Exceptions\RequestException;
629+
use Cognesy\Http\Adapters\MockHttpResponse;
630630

631631
class CircuitBreakerMiddleware extends BaseMiddleware
632632
{
@@ -715,9 +715,9 @@ This middleware only applies to certain requests based on a condition:
715715

716716
namespace YourNamespace\Http\Middleware;
717717

718-
use Cognesy\Polyglot\Http\Contracts\CanHandleHttpRequest;
719-
use Cognesy\Polyglot\Http\Contracts\HttpMiddleware;
720-
use Cognesy\Polyglot\Http\Contracts\HttpClientResponse;
718+
use Cognesy\Http\Contracts\CanHandleHttpRequest;
719+
use Cognesy\Http\Contracts\HttpMiddleware;
720+
use Cognesy\Http\Contracts\HttpClientResponse;
721721
use Cognesy\Polyglot\Http\Data\HttpClientRequest;
722722

723723
class ConditionalMiddleware implements HttpMiddleware

0 commit comments

Comments
 (0)