@yolk-sdk/agent 0.1.0-canary.37 → 0.1.0-canary.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -10
- package/dist/client/attachments.d.mts +7 -1
- package/dist/client/attachments.d.mts.map +1 -1
- package/dist/client/attachments.mjs +43 -19
- package/dist/client/attachments.mjs.map +1 -1
- package/dist/client/index.d.mts +3 -3
- package/dist/client/index.mjs +3 -3
- package/dist/client/transport.d.mts +3 -2
- package/dist/client/transport.d.mts.map +1 -1
- package/dist/client/transport.mjs +37 -27
- package/dist/client/transport.mjs.map +1 -1
- package/dist/compaction/transformer.d.mts +1 -1
- package/dist/loop/run.d.mts +1 -1
- package/dist/loop/run.mjs +1 -1
- package/dist/loop/services/context-transformer.d.mts +1 -1
- package/dist/loop/services/llm-provider.d.mts +1 -1
- package/dist/loop/services/tool-executor.d.mts +1 -1
- package/dist/loop/testing/faux-provider.mjs +1 -1
- package/dist/loop/testing/test-tool-executor.mjs +1 -1
- package/dist/providers/anthropic/claude-provider.mjs +5 -8
- package/dist/providers/anthropic/claude-provider.mjs.map +1 -1
- package/dist/providers/anthropic/claude.d.mts.map +1 -1
- package/dist/providers/anthropic/claude.mjs +5 -6
- package/dist/providers/anthropic/claude.mjs.map +1 -1
- package/dist/providers/openai/codex-provider.d.mts +1 -1
- package/dist/providers/openai/codex-provider.mjs +1 -1
- package/dist/providers/openai/provider.mjs +1 -1
- package/dist/providers/openai/realtime/client-codec.mjs +1 -1
- package/dist/providers/transcript.d.mts +1 -1
- package/dist/providers/transcript.mjs +1 -1
- package/dist/react/chat-items.d.mts +1 -1
- package/dist/react/chat-items.mjs +1 -1
- package/dist/react/chat-messages.mjs +1 -1
- package/dist/react/use-agent-chat.mjs +1 -1
- package/dist/runtime/run-runtime.d.mts +1 -1
- package/dist/runtime/session-event-store.d.mts +1 -1
- package/dist/runtime/session-event-store.mjs +1 -1
- package/dist/tools/question.d.mts +1 -1
- package/dist/tools/question.mjs +1 -1
- package/dist/tools/registry.d.mts +1 -1
- package/dist/tools/registry.mjs +1 -1
- package/dist/tools/task.d.mts +1 -1
- package/dist/tools/task.mjs +1 -1
- package/dist/voice/browser/webrtc.mjs +27 -22
- package/dist/voice/browser/webrtc.mjs.map +1 -1
- package/dist/voice/controller.d.mts +1 -1
- package/dist/voice/projection.mjs +1 -1
- package/dist/voice/react.d.mts +1 -1
- package/dist/voice/react.mjs +1 -1
- package/dist/voice/speech.d.mts +1 -1
- package/dist/voice/speech.mjs +1 -1
- package/dist/voice/tool-bridge.mjs +1 -1
- package/dist/voice/tool-server.d.mts +1 -1
- package/dist/voice/tool-server.mjs +1 -1
- package/dist/voice/websocket.d.mts.map +1 -1
- package/dist/voice/websocket.mjs +20 -17
- package/dist/voice/websocket.mjs.map +1 -1
- package/package.json +1 -1
- package/src/client/attachments.ts +68 -25
- package/src/client/index.ts +7 -1
- package/src/client/transport.ts +55 -29
- package/src/providers/anthropic/claude-provider.ts +8 -8
- package/src/providers/anthropic/claude.ts +17 -15
- package/src/voice/browser/webrtc.ts +29 -26
- package/src/voice/websocket.ts +25 -19
package/README.md
CHANGED
|
@@ -58,6 +58,8 @@ import {
|
|
|
58
58
|
import { run } from '@yolk-sdk/agent/loop'
|
|
59
59
|
import { runRuntime } from '@yolk-sdk/agent/runtime'
|
|
60
60
|
import {
|
|
61
|
+
documentPartFromTextFile,
|
|
62
|
+
documentPartFromTextFileEffect,
|
|
61
63
|
initialAgentClientState,
|
|
62
64
|
streamAgentEventStreamUntilTerminal,
|
|
63
65
|
toolRunsFromHitlRequests
|
|
@@ -187,9 +189,9 @@ const message = UserMessage.make({
|
|
|
187
189
|
})
|
|
188
190
|
```
|
|
189
191
|
|
|
190
|
-
For text files, use `documentPartFromText`, `inferTextDocumentMimeType`, and the client
|
|
191
|
-
`documentPartFromTextFile` to create UTF-8 inline
|
|
192
|
-
extensions over explicit non-text MIME types.
|
|
192
|
+
For text files, use `documentPartFromText`, `inferTextDocumentMimeType`, and the client helpers
|
|
193
|
+
`documentPartFromTextFile` / `documentPartFromTextFileEffect` to create UTF-8 inline
|
|
194
|
+
`DocumentPart` values without trusting filename extensions over explicit non-text MIME types.
|
|
193
195
|
|
|
194
196
|
Use model capabilities like `textOnlyModelCapabilities`, `textImageModelCapabilities`, or
|
|
195
197
|
`textImageDocumentModelCapabilities` so the loop rejects unsupported inputs before provider calls.
|
|
@@ -264,7 +266,9 @@ HITL is protocol-level, not UI-level:
|
|
|
264
266
|
|
|
265
267
|
- Add `approval: { mode: 'manual' }` to a `ToolDef` to pause before execution.
|
|
266
268
|
- `run` / `runRuntime` emit `ToolApprovalRequested` then `AgentAwaitingInput`.
|
|
267
|
-
- Resume by passing `hitlResponses
|
|
269
|
+
- Resume by passing `hitlResponses`, using `useAgentChat` methods like
|
|
270
|
+
`submitToolApprovalResponse` / `submitQuestionResponse`, or using client stream helpers like
|
|
271
|
+
`streamToolApprovalResponseEventStream`.
|
|
268
272
|
- Denials become model-visible `ToolResult` messages with `isError = true`.
|
|
269
273
|
- Use `makeQuestionToolModule` to expose the package-owned `question` tool; answers resume as structured tool results and model-visible text with selected labels.
|
|
270
274
|
- Use `questionResponseStructuredContent` / `plainHitlResponse` before storing durable HITL payloads that must be plain JSON.
|
|
@@ -282,21 +286,28 @@ continuation chunks by `x-workflow-run-id` and `x-workflow-stream-tail-index` he
|
|
|
282
286
|
fail with `AgentTransportError` if no terminal event is reached before the continuation limit.
|
|
283
287
|
Empty non-terminal continuation chunks are polling gaps: the client waits briefly, retries from the
|
|
284
288
|
same `startIndex`, and respects the request `signal` while waiting.
|
|
289
|
+
Outbound `startIndex` values must be non-negative safe integers; invalid values fail before the
|
|
290
|
+
HTTP request is sent.
|
|
285
291
|
For HITL resume responses, `x-workflow-stream-tail-index` means the stream tail before the returned
|
|
286
292
|
body. The returned body starts at `tail + 1`; the next continuation starts after all returned
|
|
287
293
|
events. `continuationLimit: 0` disables follow-up chunks, so any non-terminal response fails
|
|
288
294
|
immediately.
|
|
289
295
|
|
|
290
296
|
```ts
|
|
297
|
+
import { Stream } from 'effect'
|
|
291
298
|
import { streamAgentEventStreamUntilTerminal } from '@yolk-sdk/agent/client'
|
|
292
299
|
import { UserMessage } from '@yolk-sdk/agent/protocol'
|
|
293
300
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
301
|
+
const events = Stream.toAsyncIterable(
|
|
302
|
+
streamAgentEventStreamUntilTerminal({
|
|
303
|
+
endpoint: '/api/agent/workflow',
|
|
304
|
+
sessionId: 'session_1',
|
|
305
|
+
messages: [UserMessage.make({ content: 'Hello' })],
|
|
306
|
+
runEndpoint: runId => `/api/agent/workflow/${encodeURIComponent(runId)}`
|
|
307
|
+
})
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
for await (const event of events) {
|
|
300
311
|
// Apply AgentEvent to app state.
|
|
301
312
|
}
|
|
302
313
|
```
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
|
|
1
3
|
//#region src/client/attachments.d.ts
|
|
4
|
+
declare const textFromBlobEffect: (blob: Blob) => Effect.Effect<string, Error, never>;
|
|
2
5
|
declare const textFromBlob: (blob: Blob) => Promise<string>;
|
|
6
|
+
declare const documentPartFromTextFileEffect: (file: File, options?: {
|
|
7
|
+
readonly title?: string;
|
|
8
|
+
}) => Effect.Effect<import("@yolk-sdk/agent/protocol").DocumentPart | undefined, Error, never>;
|
|
3
9
|
declare const documentPartFromTextFile: (file: File, options?: {
|
|
4
10
|
readonly title?: string;
|
|
5
11
|
}) => Promise<import("@yolk-sdk/agent/protocol").DocumentPart | undefined>;
|
|
6
12
|
//#endregion
|
|
7
|
-
export { documentPartFromTextFile, textFromBlob };
|
|
13
|
+
export { documentPartFromTextFile, documentPartFromTextFileEffect, textFromBlob, textFromBlobEffect };
|
|
8
14
|
//# sourceMappingURL=attachments.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.d.mts","names":[],"sources":["../../src/client/attachments.ts"],"mappings":";
|
|
1
|
+
{"version":3,"file":"attachments.d.mts","names":[],"sources":["../../src/client/attachments.ts"],"mappings":";;;cA6Ca,kBAAA,GAAsB,IAAA,EAAM,IAAA,KAAI,MAAA,CAAA,MAAA,SAAA,KAAA;AAAA,cAWhC,YAAA,GAAgB,IAAA,EAAM,IAAA,KAAI,OAAA;AAAA,cAE1B,8BAAA,GACX,IAAA,EAAM,IAAA,EACN,OAAA;EAAA,SACW,KAAA;AAAA,MACV,MAAA,CAAA,MAAA,oCAAA,YAAA,cAAA,KAAA;AAAA,cAoBU,wBAAA,GACX,IAAA,EAAM,IAAA,EACN,OAAA;EAAA,SACW,KAAA;AAAA,MACV,OAAA,oCAAA,YAAA"}
|
|
@@ -1,36 +1,60 @@
|
|
|
1
|
+
import { Effect, Result } from "effect";
|
|
1
2
|
import { documentPartFromText, inferTextDocumentMimeType } from "@yolk-sdk/agent/protocol";
|
|
2
3
|
//#region src/client/attachments.ts
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
if (typeof FileReader === "undefined")
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
const couldNotReadTextError = () => /* @__PURE__ */ new Error("Could not read text");
|
|
5
|
+
const textFromFileReaderEffect = (blob) => Effect.callback((resume) => {
|
|
6
|
+
if (typeof FileReader === "undefined") {
|
|
7
|
+
resume(Effect.fail(couldNotReadTextError()));
|
|
8
|
+
return Effect.void;
|
|
9
|
+
}
|
|
10
|
+
const reader = new FileReader();
|
|
11
|
+
const removeListeners = () => {
|
|
12
|
+
reader.removeEventListener("load", handleLoad);
|
|
13
|
+
reader.removeEventListener("error", handleError);
|
|
14
|
+
reader.removeEventListener("abort", handleError);
|
|
15
|
+
};
|
|
16
|
+
const fail = () => {
|
|
17
|
+
removeListeners();
|
|
18
|
+
resume(Effect.fail(couldNotReadTextError()));
|
|
19
|
+
};
|
|
20
|
+
const handleLoad = () => {
|
|
21
|
+
removeListeners();
|
|
22
|
+
if (typeof reader.result === "string") {
|
|
23
|
+
resume(Effect.succeed(reader.result));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
resume(Effect.fail(couldNotReadTextError()));
|
|
27
|
+
};
|
|
28
|
+
const handleError = () => fail();
|
|
29
|
+
reader.addEventListener("load", handleLoad);
|
|
30
|
+
reader.addEventListener("error", handleError);
|
|
31
|
+
reader.addEventListener("abort", handleError);
|
|
32
|
+
if (Result.isFailure(Result.try(() => reader.readAsText(blob)))) fail();
|
|
33
|
+
return Effect.sync(removeListeners);
|
|
34
|
+
});
|
|
35
|
+
const textFromBlobEffect = (blob) => {
|
|
36
|
+
if (typeof blob.text === "function") return Effect.tryPromise({
|
|
37
|
+
try: () => blob.text(),
|
|
38
|
+
catch: couldNotReadTextError
|
|
18
39
|
});
|
|
40
|
+
return textFromFileReaderEffect(blob);
|
|
19
41
|
};
|
|
20
|
-
const
|
|
42
|
+
const textFromBlob = (blob) => Effect.runPromise(textFromBlobEffect(blob));
|
|
43
|
+
const documentPartFromTextFileEffect = (file, options) => Effect.gen(function* () {
|
|
21
44
|
const mimeType = inferTextDocumentMimeType({
|
|
22
45
|
filename: file.name,
|
|
23
46
|
mimeType: file.type
|
|
24
47
|
});
|
|
25
48
|
if (mimeType === void 0) return void 0;
|
|
26
49
|
return documentPartFromText({
|
|
27
|
-
text:
|
|
50
|
+
text: yield* textFromBlobEffect(file),
|
|
28
51
|
filename: file.name,
|
|
29
52
|
mimeType,
|
|
30
53
|
title: options?.title
|
|
31
54
|
});
|
|
32
|
-
};
|
|
55
|
+
});
|
|
56
|
+
const documentPartFromTextFile = (file, options) => Effect.runPromise(documentPartFromTextFileEffect(file, options));
|
|
33
57
|
//#endregion
|
|
34
|
-
export { documentPartFromTextFile, textFromBlob };
|
|
58
|
+
export { documentPartFromTextFile, documentPartFromTextFileEffect, textFromBlob, textFromBlobEffect };
|
|
35
59
|
|
|
36
60
|
//# sourceMappingURL=attachments.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.mjs","names":[],"sources":["../../src/client/attachments.ts"],"sourcesContent":["import { documentPartFromText, inferTextDocumentMimeType } from '@yolk-sdk/agent/protocol'\n\
|
|
1
|
+
{"version":3,"file":"attachments.mjs","names":[],"sources":["../../src/client/attachments.ts"],"sourcesContent":["import { Effect, Result } from 'effect'\nimport { documentPartFromText, inferTextDocumentMimeType } from '@yolk-sdk/agent/protocol'\n\nconst couldNotReadTextError = () => new Error('Could not read text')\n\nconst textFromFileReaderEffect = (blob: Blob) =>\n Effect.callback<string, Error>(resume => {\n if (typeof FileReader === 'undefined') {\n resume(Effect.fail(couldNotReadTextError()))\n return Effect.void\n }\n\n const reader = new FileReader()\n const removeListeners = () => {\n reader.removeEventListener('load', handleLoad)\n reader.removeEventListener('error', handleError)\n reader.removeEventListener('abort', handleError)\n }\n const fail = () => {\n removeListeners()\n resume(Effect.fail(couldNotReadTextError()))\n }\n const handleLoad = () => {\n removeListeners()\n\n if (typeof reader.result === 'string') {\n resume(Effect.succeed(reader.result))\n return\n }\n\n resume(Effect.fail(couldNotReadTextError()))\n }\n const handleError = () => fail()\n\n reader.addEventListener('load', handleLoad)\n reader.addEventListener('error', handleError)\n reader.addEventListener('abort', handleError)\n\n if (Result.isFailure(Result.try(() => reader.readAsText(blob)))) {\n fail()\n }\n\n return Effect.sync(removeListeners)\n })\n\nexport const textFromBlobEffect = (blob: Blob) => {\n if (typeof blob.text === 'function') {\n return Effect.tryPromise({\n try: () => blob.text(),\n catch: couldNotReadTextError\n })\n }\n\n return textFromFileReaderEffect(blob)\n}\n\nexport const textFromBlob = (blob: Blob) => Effect.runPromise(textFromBlobEffect(blob))\n\nexport const documentPartFromTextFileEffect = (\n file: File,\n options?: {\n readonly title?: string\n }\n) =>\n Effect.gen(function* () {\n const mimeType = inferTextDocumentMimeType({\n filename: file.name,\n mimeType: file.type\n })\n\n if (mimeType === undefined) return undefined\n\n const text = yield* textFromBlobEffect(file)\n\n return documentPartFromText({\n text,\n filename: file.name,\n mimeType,\n title: options?.title\n })\n })\n\nexport const documentPartFromTextFile = (\n file: File,\n options?: {\n readonly title?: string\n }\n) => Effect.runPromise(documentPartFromTextFileEffect(file, options))\n"],"mappings":";;;AAGA,MAAM,8CAA8B,IAAI,MAAM,qBAAqB;AAEnE,MAAM,4BAA4B,SAChC,OAAO,UAAwB,WAAU;CACvC,IAAI,OAAO,eAAe,aAAa;EACrC,OAAO,OAAO,KAAK,sBAAsB,CAAC,CAAC;EAC3C,OAAO,OAAO;CAChB;CAEA,MAAM,SAAS,IAAI,WAAW;CAC9B,MAAM,wBAAwB;EAC5B,OAAO,oBAAoB,QAAQ,UAAU;EAC7C,OAAO,oBAAoB,SAAS,WAAW;EAC/C,OAAO,oBAAoB,SAAS,WAAW;CACjD;CACA,MAAM,aAAa;EACjB,gBAAgB;EAChB,OAAO,OAAO,KAAK,sBAAsB,CAAC,CAAC;CAC7C;CACA,MAAM,mBAAmB;EACvB,gBAAgB;EAEhB,IAAI,OAAO,OAAO,WAAW,UAAU;GACrC,OAAO,OAAO,QAAQ,OAAO,MAAM,CAAC;GACpC;EACF;EAEA,OAAO,OAAO,KAAK,sBAAsB,CAAC,CAAC;CAC7C;CACA,MAAM,oBAAoB,KAAK;CAE/B,OAAO,iBAAiB,QAAQ,UAAU;CAC1C,OAAO,iBAAiB,SAAS,WAAW;CAC5C,OAAO,iBAAiB,SAAS,WAAW;CAE5C,IAAI,OAAO,UAAU,OAAO,UAAU,OAAO,WAAW,IAAI,CAAC,CAAC,GAC5D,KAAK;CAGP,OAAO,OAAO,KAAK,eAAe;AACpC,CAAC;AAEH,MAAa,sBAAsB,SAAe;CAChD,IAAI,OAAO,KAAK,SAAS,YACvB,OAAO,OAAO,WAAW;EACvB,WAAW,KAAK,KAAK;EACrB,OAAO;CACT,CAAC;CAGH,OAAO,yBAAyB,IAAI;AACtC;AAEA,MAAa,gBAAgB,SAAe,OAAO,WAAW,mBAAmB,IAAI,CAAC;AAEtF,MAAa,kCACX,MACA,YAIA,OAAO,IAAI,aAAa;CACtB,MAAM,WAAW,0BAA0B;EACzC,UAAU,KAAK;EACf,UAAU,KAAK;CACjB,CAAC;CAED,IAAI,aAAa,KAAA,GAAW,OAAO,KAAA;CAInC,OAAO,qBAAqB;EAC1B,MAAA,OAHkB,mBAAmB,IAAI;EAIzC,UAAU,KAAK;EACf;EACA,OAAO,SAAS;CAClB,CAAC;AACH,CAAC;AAEH,MAAa,4BACX,MACA,YAGG,OAAO,WAAW,+BAA+B,MAAM,OAAO,CAAC"}
|
package/dist/client/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { documentPartFromTextFile, textFromBlob } from "./attachments.mjs";
|
|
1
|
+
import { documentPartFromTextFile, documentPartFromTextFileEffect, textFromBlob, textFromBlobEffect } from "./attachments.mjs";
|
|
2
2
|
import { AgentClientState, AgentRunStatus, AgentToolRun, AgentTranscript, ApplyAgentEventOptions, appendAgentMessage, applyAgentEvent, completedToolRuns, initialAgentClientState, isActiveToolRun, markAgentAborted, markAgentError, reduceAgentEvents, submitAgentUserMessage, toolRunsFromHitlRequests } from "./state.mjs";
|
|
3
|
-
import { AgentHttpResponseInfo, AgentRunContinuationOptions, AgentRunIdleReconnectOptions, AgentTransportError, CancelAgentRunRequest, StreamAgentEventHandler, StreamAgentEventsRequest, StreamAgentEventsUntilTerminalRequest, StreamAgentRunEventsRequest, StreamAgentRunEventsUntilTerminalRequest, StreamAgentRunHitlResponseEventsRequest, StreamAgentRunHitlResponseEventsUntilTerminalRequest, StreamCloudflareAgentEventsRequest, SubmitQuestionResponseRequest, SubmitToolApprovalResponseRequest, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, collectAgentEvents, collectAgentEventsEffect, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream } from "./transport.mjs";
|
|
4
|
-
export { type AgentClientState, type AgentHttpResponseInfo, type AgentRunContinuationOptions, type AgentRunIdleReconnectOptions, type AgentRunStatus, type AgentToolRun, type AgentTranscript, AgentTransportError, type ApplyAgentEventOptions, type CancelAgentRunRequest, type StreamAgentEventHandler, type StreamAgentEventsRequest, type StreamAgentEventsUntilTerminalRequest, type StreamAgentRunEventsRequest, type StreamAgentRunEventsUntilTerminalRequest, type StreamAgentRunHitlResponseEventsRequest, type StreamAgentRunHitlResponseEventsUntilTerminalRequest, type StreamCloudflareAgentEventsRequest, type SubmitQuestionResponseRequest, type SubmitToolApprovalResponseRequest, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, appendAgentMessage, applyAgentEvent, cancelAgentRun, collectAgentEvents, collectAgentEventsEffect, completedToolRuns, documentPartFromTextFile, initialAgentClientState, isActiveToolRun, markAgentAborted, markAgentError, reduceAgentEvents, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream, submitAgentUserMessage, textFromBlob, toolRunsFromHitlRequests };
|
|
3
|
+
import { AgentHttpResponseInfo, AgentRunContinuationOptions, AgentRunIdleReconnectOptions, AgentTransportError, CancelAgentRunRequest, StreamAgentEventHandler, StreamAgentEventsRequest, StreamAgentEventsUntilTerminalRequest, StreamAgentRunEventsRequest, StreamAgentRunEventsUntilTerminalRequest, StreamAgentRunHitlResponseEventsRequest, StreamAgentRunHitlResponseEventsUntilTerminalRequest, StreamCloudflareAgentEventsRequest, SubmitQuestionResponseRequest, SubmitToolApprovalResponseRequest, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, cancelAgentRunEffect, collectAgentEvents, collectAgentEventsEffect, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream } from "./transport.mjs";
|
|
4
|
+
export { type AgentClientState, type AgentHttpResponseInfo, type AgentRunContinuationOptions, type AgentRunIdleReconnectOptions, type AgentRunStatus, type AgentToolRun, type AgentTranscript, AgentTransportError, type ApplyAgentEventOptions, type CancelAgentRunRequest, type StreamAgentEventHandler, type StreamAgentEventsRequest, type StreamAgentEventsUntilTerminalRequest, type StreamAgentRunEventsRequest, type StreamAgentRunEventsUntilTerminalRequest, type StreamAgentRunHitlResponseEventsRequest, type StreamAgentRunHitlResponseEventsUntilTerminalRequest, type StreamCloudflareAgentEventsRequest, type SubmitQuestionResponseRequest, type SubmitToolApprovalResponseRequest, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, appendAgentMessage, applyAgentEvent, cancelAgentRun, cancelAgentRunEffect, collectAgentEvents, collectAgentEventsEffect, completedToolRuns, documentPartFromTextFile, documentPartFromTextFileEffect, initialAgentClientState, isActiveToolRun, markAgentAborted, markAgentError, reduceAgentEvents, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream, submitAgentUserMessage, textFromBlob, textFromBlobEffect, toolRunsFromHitlRequests };
|
package/dist/client/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { documentPartFromTextFile, textFromBlob } from "./attachments.mjs";
|
|
1
|
+
import { documentPartFromTextFile, documentPartFromTextFileEffect, textFromBlob, textFromBlobEffect } from "./attachments.mjs";
|
|
2
2
|
import { appendAgentMessage, applyAgentEvent, completedToolRuns, initialAgentClientState, isActiveToolRun, markAgentAborted, markAgentError, reduceAgentEvents, submitAgentUserMessage, toolRunsFromHitlRequests } from "./state.mjs";
|
|
3
|
-
import { AgentTransportError, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, collectAgentEvents, collectAgentEventsEffect, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream } from "./transport.mjs";
|
|
4
|
-
export { AgentTransportError, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, appendAgentMessage, applyAgentEvent, cancelAgentRun, collectAgentEvents, collectAgentEventsEffect, completedToolRuns, documentPartFromTextFile, initialAgentClientState, isActiveToolRun, markAgentAborted, markAgentError, reduceAgentEvents, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream, submitAgentUserMessage, textFromBlob, toolRunsFromHitlRequests };
|
|
3
|
+
import { AgentTransportError, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, cancelAgentRunEffect, collectAgentEvents, collectAgentEventsEffect, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream } from "./transport.mjs";
|
|
4
|
+
export { AgentTransportError, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, appendAgentMessage, applyAgentEvent, cancelAgentRun, cancelAgentRunEffect, collectAgentEvents, collectAgentEventsEffect, completedToolRuns, documentPartFromTextFile, documentPartFromTextFileEffect, initialAgentClientState, isActiveToolRun, markAgentAborted, markAgentError, reduceAgentEvents, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream, submitAgentUserMessage, textFromBlob, textFromBlobEffect, toolRunsFromHitlRequests };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AgentTranscript } from "./state.mjs";
|
|
2
|
-
import { AgentEvent, AgentReasoningEffort, HitlResponse, QuestionResponse, ToolApprovalResponse } from "@yolk-sdk/agent/protocol";
|
|
3
2
|
import { Cause, Effect, Layer, Stream } from "effect";
|
|
3
|
+
import { AgentEvent, AgentReasoningEffort, HitlResponse, QuestionResponse, ToolApprovalResponse } from "@yolk-sdk/agent/protocol";
|
|
4
4
|
import { HttpClient } from "effect/unstable/http";
|
|
5
5
|
import * as Schema from "effect/Schema";
|
|
6
6
|
|
|
@@ -77,6 +77,7 @@ declare const agentRunIdFromHeaders: (headers: Readonly<Record<string, string |
|
|
|
77
77
|
declare const agentRunStreamTailIndexFromHeaders: (headers: Readonly<Record<string, string | undefined>>) => number | undefined;
|
|
78
78
|
declare const agentRunStreamStartIndexFromHeaders: (headers: Readonly<Record<string, string | undefined>>) => number | undefined;
|
|
79
79
|
declare const agentRunEndpointWithStartIndex: (endpoint: string, startIndex?: number) => string;
|
|
80
|
+
declare const cancelAgentRunEffect: (request: CancelAgentRunRequest) => Effect.Effect<undefined, AgentTransportError, never>;
|
|
80
81
|
declare const streamAgentEventStream: (request: StreamAgentEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
|
|
81
82
|
declare const streamAgentRunEventStream: (request: StreamAgentRunEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
|
|
82
83
|
declare const streamAgentRunHitlResponseEventStream: (request: StreamAgentRunHitlResponseEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
|
|
@@ -90,5 +91,5 @@ declare const cancelAgentRun: (request: CancelAgentRunRequest) => Promise<undefi
|
|
|
90
91
|
declare const collectAgentEventsEffect: (request: StreamAgentEventsRequest) => Effect.Effect<(import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted)[], AgentTransportError, never>;
|
|
91
92
|
declare const collectAgentEvents: (request: StreamAgentEventsRequest) => Promise<(import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted)[]>;
|
|
92
93
|
//#endregion
|
|
93
|
-
export { AgentHttpResponseInfo, AgentRunContinuationOptions, AgentRunIdleReconnectOptions, AgentTransportError, CancelAgentRunRequest, StreamAgentEventHandler, StreamAgentEventsRequest, StreamAgentEventsUntilTerminalRequest, StreamAgentRunEventsRequest, StreamAgentRunEventsUntilTerminalRequest, StreamAgentRunHitlResponseEventsRequest, StreamAgentRunHitlResponseEventsUntilTerminalRequest, StreamCloudflareAgentEventsRequest, SubmitQuestionResponseRequest, SubmitToolApprovalResponseRequest, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, collectAgentEvents, collectAgentEventsEffect, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream };
|
|
94
|
+
export { AgentHttpResponseInfo, AgentRunContinuationOptions, AgentRunIdleReconnectOptions, AgentTransportError, CancelAgentRunRequest, StreamAgentEventHandler, StreamAgentEventsRequest, StreamAgentEventsUntilTerminalRequest, StreamAgentRunEventsRequest, StreamAgentRunEventsUntilTerminalRequest, StreamAgentRunHitlResponseEventsRequest, StreamAgentRunHitlResponseEventsUntilTerminalRequest, StreamCloudflareAgentEventsRequest, SubmitQuestionResponseRequest, SubmitToolApprovalResponseRequest, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, cancelAgentRunEffect, collectAgentEvents, collectAgentEventsEffect, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream };
|
|
94
95
|
//# sourceMappingURL=transport.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.mts","names":[],"sources":["../../src/client/transport.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"transport.d.mts","names":[],"sources":["../../src/client/transport.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { Cause, Channel, Effect, Exit, Pull, Queue, Ref, Result, Scope, Stream } from "effect";
|
|
1
2
|
import { AgentEvent, AgentWebSocketServerMessage, QuestionResponseInput, ToolApprovalResponseInput, UserInput, isTerminalAgentEvent } from "@yolk-sdk/agent/protocol";
|
|
2
|
-
import { Cause, Channel, Effect, Exit, Pull, Queue, Ref, Scope, Stream } from "effect";
|
|
3
3
|
import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http";
|
|
4
4
|
import * as Schema from "effect/Schema";
|
|
5
5
|
//#region src/client/transport.ts
|
|
@@ -47,24 +47,26 @@ const agentRunEndpointWithStartIndex = (endpoint, startIndex) => {
|
|
|
47
47
|
return serializeEndpoint(parsed);
|
|
48
48
|
};
|
|
49
49
|
const absoluteUrlPattern = /^[A-Za-z][A-Za-z\d+.-]*:/;
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
50
|
+
const invalidAgentRunEndpointError = (endpoint) => new AgentTransportError({
|
|
51
|
+
message: "Invalid agent run endpoint",
|
|
52
|
+
cause: endpoint
|
|
53
|
+
});
|
|
54
|
+
const parseEndpoint = (endpoint) => Result.try(() => ({
|
|
55
|
+
url: new URL(endpoint, relativeEndpointBase),
|
|
56
|
+
absolute: absoluteUrlPattern.test(endpoint),
|
|
57
|
+
leadingSlash: endpoint.startsWith("/")
|
|
58
|
+
})).pipe(Result.match({
|
|
59
|
+
onFailure: () => void 0,
|
|
60
|
+
onSuccess: (parsed) => parsed
|
|
61
|
+
}));
|
|
61
62
|
const parseEndpointOrThrow = (endpoint) => {
|
|
62
63
|
const parsed = parseEndpoint(endpoint);
|
|
63
64
|
if (parsed !== void 0) return parsed;
|
|
64
|
-
throw
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
throw invalidAgentRunEndpointError(endpoint);
|
|
66
|
+
};
|
|
67
|
+
const parseEndpointEffect = (endpoint) => {
|
|
68
|
+
const parsed = parseEndpoint(endpoint);
|
|
69
|
+
return parsed === void 0 ? Effect.fail(invalidAgentRunEndpointError(endpoint)) : Effect.succeed(parsed);
|
|
68
70
|
};
|
|
69
71
|
const serializeEndpoint = (endpoint) => {
|
|
70
72
|
if (endpoint.absolute) return endpoint.url.toString();
|
|
@@ -111,6 +113,13 @@ const invalidAgentRunStartIndexError = (startIndex) => new AgentTransportError({
|
|
|
111
113
|
cause: startIndex
|
|
112
114
|
});
|
|
113
115
|
const validateAgentRunStartIndexEffect = (startIndex) => startIndex === void 0 || Number.isSafeInteger(startIndex) && startIndex >= 0 ? Effect.void : Effect.fail(invalidAgentRunStartIndexError(startIndex));
|
|
116
|
+
const agentRunEndpointWithStartIndexEffect = (endpoint, startIndex) => Effect.gen(function* () {
|
|
117
|
+
if (startIndex === void 0) return endpoint;
|
|
118
|
+
yield* validateAgentRunStartIndexEffect(startIndex);
|
|
119
|
+
const parsed = yield* parseEndpointEffect(endpoint);
|
|
120
|
+
parsed.url.searchParams.set("startIndex", String(startIndex));
|
|
121
|
+
return serializeEndpoint(parsed);
|
|
122
|
+
});
|
|
114
123
|
const nextAgentRunStartIndex = (startIndex, count) => (startIndex ?? 0) + count;
|
|
115
124
|
const unknownToMessage = (error) => error instanceof Error ? error.message : String(error);
|
|
116
125
|
const toTransportError = (message, cause) => new AgentTransportError({
|
|
@@ -209,8 +218,8 @@ const requestAgentResponse = (request) => Effect.gen(function* () {
|
|
|
209
218
|
}));
|
|
210
219
|
});
|
|
211
220
|
const requestAgentRunResponse = (request) => Effect.gen(function* () {
|
|
212
|
-
|
|
213
|
-
const response = yield* (yield* HttpClient.HttpClient).execute(HttpClientRequest.get(
|
|
221
|
+
const endpoint = yield* agentRunEndpointWithStartIndexEffect(request.endpoint, request.startIndex);
|
|
222
|
+
const response = yield* (yield* HttpClient.HttpClient).execute(HttpClientRequest.get(endpoint).pipe(HttpClientRequest.setHeaders({ accept: "application/x-ndjson" }))).pipe(Effect.mapError(toHttpClientTransportError("Agent run request failed")));
|
|
214
223
|
if (response.status >= 200 && response.status < 300) {
|
|
215
224
|
yield* Effect.sync(() => request.onResponse?.({
|
|
216
225
|
status: response.status,
|
|
@@ -581,8 +590,7 @@ const streamCloudflareAgentEventStream = (request) => applyAbortSignal(Stream.ca
|
|
|
581
590
|
const closeSocket = Effect.sync(() => {
|
|
582
591
|
if (socket.readyState === WebSocket.OPEN || socket.readyState === WebSocket.CONNECTING) socket.close(1e3, "done");
|
|
583
592
|
});
|
|
584
|
-
const failQueue = (error) => Queue.
|
|
585
|
-
const endQueue = () => Queue.endUnsafe(queue);
|
|
593
|
+
const failQueue = (error) => Effect.runFork(Queue.failCause(queue, Cause.fail(error)).pipe(Effect.asVoid));
|
|
586
594
|
const handleMessage = (event) => {
|
|
587
595
|
if (typeof event.data !== "string") {
|
|
588
596
|
failQueue(toTransportError("Agent WebSocket returned binary data", event.data));
|
|
@@ -593,12 +601,14 @@ const streamCloudflareAgentEventStream = (request) => applyAbortSignal(Stream.ca
|
|
|
593
601
|
sentInput = true;
|
|
594
602
|
})));
|
|
595
603
|
if (!isAgentEvent(message)) return Effect.void;
|
|
596
|
-
return Effect.
|
|
597
|
-
Queue.
|
|
604
|
+
return Effect.gen(function* () {
|
|
605
|
+
yield* Queue.offer(queue, message);
|
|
598
606
|
if (isTerminalAgentEvent(message)) {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
607
|
+
yield* Effect.sync(() => {
|
|
608
|
+
settled = true;
|
|
609
|
+
socket.close(1e3, "done");
|
|
610
|
+
});
|
|
611
|
+
yield* Queue.end(queue).pipe(Effect.asVoid);
|
|
602
612
|
}
|
|
603
613
|
});
|
|
604
614
|
}), Effect.catch((error) => Effect.sync(() => failQueue(error)))));
|
|
@@ -621,8 +631,8 @@ const streamCloudflareAgentEventStream = (request) => applyAbortSignal(Stream.ca
|
|
|
621
631
|
})), request.signal);
|
|
622
632
|
const cancelAgentRun = (request) => Effect.runPromise(cancelAgentRunEffect(request));
|
|
623
633
|
const collectAgentEventsEffect = (request) => streamAgentEventStream(request).pipe(Stream.runCollect);
|
|
624
|
-
const collectAgentEvents =
|
|
634
|
+
const collectAgentEvents = (request) => Effect.runPromise(collectAgentEventsEffect(request)).then((events) => Array.from(events));
|
|
625
635
|
//#endregion
|
|
626
|
-
export { AgentTransportError, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, collectAgentEvents, collectAgentEventsEffect, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream };
|
|
636
|
+
export { AgentTransportError, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, cancelAgentRunEffect, collectAgentEvents, collectAgentEventsEffect, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream };
|
|
627
637
|
|
|
628
638
|
//# sourceMappingURL=transport.mjs.map
|