* Add package dependency for github.com/loopwork-ai/EventSource
* Use EventSource for SSE implementation
* Refactor response stream and content type handling
Co-authored-by: Stephen Tallent <stallent@mercury.io>
* Conditionalize use of streaming for supported platforms
* Refactor conditional platform handling
* Conditionalize code and package dependency on Linux
---------
Co-authored-by: Stephen Tallent <stallent@mercury.io>
* Add test coverage for Client with HTTPClientTransport
* Configure HTTP client transport to stream by default
* Add example usage of streaming HTTP transport to README
* Explicitly set streaming to false in test
* Optimized code in `connectToEventStream` to use `.lines` computed value of `AsyncSequence` to produce a `AsyncLineSequence` instead of building a lines manually.
* - Reverter use of `lines` (it swallows newlines)
- Fiexed original issue I experienced with line 229 `while let newlineIndex = buffer.firstIndex(of: "\n") {` not handling "\r\n" properly
- Added unit test to test for "\r\n" scenario
- Simplified `end of event` test - `line` creation trims newline, added code trims carriage return. Only thing that should be left is an empty line
* Rename file to Transport.swift
* Rename file to StdioTransportTests.swift
* Add .index-build/ to .gitignore
* Implement HTTP client transport
* Add test coverage for streamable HTTP client transport
* Conditionally import FoundationNetworking
* Conditionalize streaming for unsupported platforms
* Import FoundationNetworking in tests
* Add 5 minute timeout to CI jobs
* Remove debug logging
* Formatting
* Skip SSE tests on platforms that don't support streaming