@zimtsui/typechat 0.0.61
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/DEVELOPMENT.md +22 -0
- package/LICENSE +165 -0
- package/README.md +202 -0
- package/assets/verbatim/declarations.handlebars +11 -0
- package/assets/verbatim/instruction.md +49 -0
- package/build/adaptor.d.ts +45 -0
- package/build/adaptor.js +90 -0
- package/build/adaptor.js.map +1 -0
- package/build/api-types/anthropic/billing.d.ts +12 -0
- package/build/api-types/anthropic/billing.js +14 -0
- package/build/api-types/anthropic/billing.js.map +1 -0
- package/build/api-types/anthropic/tool-codec.d.ts +16 -0
- package/build/api-types/anthropic/tool-codec.js +58 -0
- package/build/api-types/anthropic/tool-codec.js.map +1 -0
- package/build/api-types/google/billing.d.ts +12 -0
- package/build/api-types/google/billing.js +23 -0
- package/build/api-types/google/billing.js.map +1 -0
- package/build/api-types/google/restful-request.d.ts +8 -0
- package/build/api-types/google/restful-request.js +1 -0
- package/build/api-types/google/restful-request.js.map +1 -0
- package/build/api-types/google/tool-codec.d.ts +16 -0
- package/build/api-types/google/tool-codec.js +80 -0
- package/build/api-types/google/tool-codec.js.map +1 -0
- package/build/api-types/openai-chatcompletions/billing.d.ts +12 -0
- package/build/api-types/openai-chatcompletions/billing.js +14 -0
- package/build/api-types/openai-chatcompletions/billing.js.map +1 -0
- package/build/api-types/openai-chatcompletions/tool-codec.d.ts +17 -0
- package/build/api-types/openai-chatcompletions/tool-codec.js +80 -0
- package/build/api-types/openai-chatcompletions/tool-codec.js.map +1 -0
- package/build/api-types/openai-responses/billing.d.ts +12 -0
- package/build/api-types/openai-responses/billing.js +14 -0
- package/build/api-types/openai-responses/billing.js.map +1 -0
- package/build/api-types/openai-responses/tool-codec.d.ts +16 -0
- package/build/api-types/openai-responses/tool-codec.js +76 -0
- package/build/api-types/openai-responses/tool-codec.js.map +1 -0
- package/build/assets.d.ts +7 -0
- package/build/assets.js +8 -0
- package/build/assets.js.map +1 -0
- package/build/compatible-engine/session.d.ts +67 -0
- package/build/compatible-engine/session.js +92 -0
- package/build/compatible-engine/session.js.map +1 -0
- package/build/compatible-engine/structuring.d.ts +36 -0
- package/build/compatible-engine/structuring.js +34 -0
- package/build/compatible-engine/structuring.js.map +1 -0
- package/build/compatible-engine/validation.d.ts +21 -0
- package/build/compatible-engine/validation.js +82 -0
- package/build/compatible-engine/validation.js.map +1 -0
- package/build/compatible-engine.d/agentloop.d.ts +12 -0
- package/build/compatible-engine.d/agentloop.js +52 -0
- package/build/compatible-engine.d/agentloop.js.map +1 -0
- package/build/compatible-engine.d/aliyun/transport.d.ts +12 -0
- package/build/compatible-engine.d/aliyun/transport.js +7 -0
- package/build/compatible-engine.d/aliyun/transport.js.map +1 -0
- package/build/compatible-engine.d/aliyun.d.ts +24 -0
- package/build/compatible-engine.d/aliyun.js +46 -0
- package/build/compatible-engine.d/aliyun.js.map +1 -0
- package/build/compatible-engine.d/anthropic/choice-codec.d.ts +5 -0
- package/build/compatible-engine.d/anthropic/choice-codec.js +26 -0
- package/build/compatible-engine.d/anthropic/choice-codec.js.map +1 -0
- package/build/compatible-engine.d/anthropic/message-codec.d.ts +36 -0
- package/build/compatible-engine.d/anthropic/message-codec.js +86 -0
- package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -0
- package/build/compatible-engine.d/anthropic/transport.d.ts +34 -0
- package/build/compatible-engine.d/anthropic/transport.js +150 -0
- package/build/compatible-engine.d/anthropic/transport.js.map +1 -0
- package/build/compatible-engine.d/anthropic.d.ts +26 -0
- package/build/compatible-engine.d/anthropic.js +46 -0
- package/build/compatible-engine.d/anthropic.js.map +1 -0
- package/build/compatible-engine.d/google/choice-codec.d.ts +5 -0
- package/build/compatible-engine.d/google/choice-codec.js +27 -0
- package/build/compatible-engine.d/google/choice-codec.js.map +1 -0
- package/build/compatible-engine.d/google/message-codec.d.ts +36 -0
- package/build/compatible-engine.d/google/message-codec.js +94 -0
- package/build/compatible-engine.d/google/message-codec.js.map +1 -0
- package/build/compatible-engine.d/google/transport.d.ts +30 -0
- package/build/compatible-engine.d/google/transport.js +78 -0
- package/build/compatible-engine.d/google/transport.js.map +1 -0
- package/build/compatible-engine.d/google.d.ts +26 -0
- package/build/compatible-engine.d/google.js +50 -0
- package/build/compatible-engine.d/google.js.map +1 -0
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.d.ts +5 -0
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +31 -0
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +1 -0
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +24 -0
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +71 -0
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +38 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js +77 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +1 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +37 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +190 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +1 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +10 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.js +11 -0
- package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -0
- package/build/compatible-engine.d/openai-chatcompletions.d.ts +17 -0
- package/build/compatible-engine.d/openai-chatcompletions.js +14 -0
- package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -0
- package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +5 -0
- package/build/compatible-engine.d/openai-responses/choice-codec.js +30 -0
- package/build/compatible-engine.d/openai-responses/choice-codec.js.map +1 -0
- package/build/compatible-engine.d/openai-responses/message-codec.d.ts +36 -0
- package/build/compatible-engine.d/openai-responses/message-codec.js +96 -0
- package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -0
- package/build/compatible-engine.d/openai-responses/transport.d.ts +35 -0
- package/build/compatible-engine.d/openai-responses/transport.js +80 -0
- package/build/compatible-engine.d/openai-responses/transport.js.map +1 -0
- package/build/compatible-engine.d/openai-responses.d.ts +26 -0
- package/build/compatible-engine.d/openai-responses.js +46 -0
- package/build/compatible-engine.d/openai-responses.js.map +1 -0
- package/build/compatible-engine.d.ts +22 -0
- package/build/compatible-engine.js +29 -0
- package/build/compatible-engine.js.map +1 -0
- package/build/config.d.ts +24 -0
- package/build/config.js +11 -0
- package/build/config.js.map +1 -0
- package/build/endpoint-spec.d.ts +20 -0
- package/build/endpoint-spec.js +26 -0
- package/build/endpoint-spec.js.map +1 -0
- package/build/engine/session.d.ts +7 -0
- package/build/engine/session.js +1 -0
- package/build/engine/session.js.map +1 -0
- package/build/engine/transport.d.ts +5 -0
- package/build/engine/transport.js +1 -0
- package/build/engine/transport.js.map +1 -0
- package/build/engine/validation.d.ts +9 -0
- package/build/engine/validation.js +1 -0
- package/build/engine/validation.js.map +1 -0
- package/build/engine.d.ts +82 -0
- package/build/engine.js +104 -0
- package/build/engine.js.map +1 -0
- package/build/exports.d.ts +14 -0
- package/build/exports.js +15 -0
- package/build/exports.js.map +1 -0
- package/build/function.d.ts +106 -0
- package/build/function.js +55 -0
- package/build/function.js.map +1 -0
- package/build/inference-context.d.ts +6 -0
- package/build/inference-context.js +1 -0
- package/build/inference-context.js.map +1 -0
- package/build/native-engines.d/google/message-codec.d.ts +23 -0
- package/build/native-engines.d/google/message-codec.js +67 -0
- package/build/native-engines.d/google/message-codec.js.map +1 -0
- package/build/native-engines.d/google/session.d.ts +58 -0
- package/build/native-engines.d/google/session.js +101 -0
- package/build/native-engines.d/google/session.js.map +1 -0
- package/build/native-engines.d/google/transport.d.ts +34 -0
- package/build/native-engines.d/google/transport.js +81 -0
- package/build/native-engines.d/google/transport.js.map +1 -0
- package/build/native-engines.d/google/validation.d.ts +22 -0
- package/build/native-engines.d/google/validation.js +20 -0
- package/build/native-engines.d/google/validation.js.map +1 -0
- package/build/native-engines.d/google.d/agentloop.d.ts +12 -0
- package/build/native-engines.d/google.d/agentloop.js +57 -0
- package/build/native-engines.d/google.d/agentloop.js.map +1 -0
- package/build/native-engines.d/google.d/exports.d.ts +2 -0
- package/build/native-engines.d/google.d/exports.js +3 -0
- package/build/native-engines.d/google.d/exports.js.map +1 -0
- package/build/native-engines.d/google.d.ts +42 -0
- package/build/native-engines.d/google.js +83 -0
- package/build/native-engines.d/google.js.map +1 -0
- package/build/native-engines.d/openai-responses/choice-codec.d.ts +5 -0
- package/build/native-engines.d/openai-responses/choice-codec.js +30 -0
- package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -0
- package/build/native-engines.d/openai-responses/message-codec.d.ts +23 -0
- package/build/native-engines.d/openai-responses/message-codec.js +75 -0
- package/build/native-engines.d/openai-responses/message-codec.js.map +1 -0
- package/build/native-engines.d/openai-responses/session.d.ts +61 -0
- package/build/native-engines.d/openai-responses/session.js +86 -0
- package/build/native-engines.d/openai-responses/session.js.map +1 -0
- package/build/native-engines.d/openai-responses/structuring.d.ts +19 -0
- package/build/native-engines.d/openai-responses/structuring.js +19 -0
- package/build/native-engines.d/openai-responses/structuring.js.map +1 -0
- package/build/native-engines.d/openai-responses/tool.d.ts +55 -0
- package/build/native-engines.d/openai-responses/tool.js +24 -0
- package/build/native-engines.d/openai-responses/tool.js.map +1 -0
- package/build/native-engines.d/openai-responses/transport.d.ts +35 -0
- package/build/native-engines.d/openai-responses/transport.js +84 -0
- package/build/native-engines.d/openai-responses/transport.js.map +1 -0
- package/build/native-engines.d/openai-responses/validation.d.ts +20 -0
- package/build/native-engines.d/openai-responses/validation.js +80 -0
- package/build/native-engines.d/openai-responses/validation.js.map +1 -0
- package/build/native-engines.d/openai-responses.d/agentloop.d.ts +12 -0
- package/build/native-engines.d/openai-responses.d/agentloop.js +61 -0
- package/build/native-engines.d/openai-responses.d/agentloop.js.map +1 -0
- package/build/native-engines.d/openai-responses.d/exports.d.ts +2 -0
- package/build/native-engines.d/openai-responses.d/exports.js +3 -0
- package/build/native-engines.d/openai-responses.d/exports.js.map +1 -0
- package/build/native-engines.d/openai-responses.d.ts +44 -0
- package/build/native-engines.d/openai-responses.js +78 -0
- package/build/native-engines.d/openai-responses.js.map +1 -0
- package/build/telemetry.d.ts +6 -0
- package/build/telemetry.js +19 -0
- package/build/telemetry.js.map +1 -0
- package/build/throttle.d.ts +11 -0
- package/build/throttle.js +39 -0
- package/build/throttle.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/build/verbatim/codec/declarations.d.ts +2 -0
- package/build/verbatim/codec/declarations.js +22 -0
- package/build/verbatim/codec/declarations.js.map +1 -0
- package/build/verbatim/codec/request.d.ts +7 -0
- package/build/verbatim/codec/request.js +53 -0
- package/build/verbatim/codec/request.js.map +1 -0
- package/build/verbatim/codec.d.ts +2 -0
- package/build/verbatim/codec.js +3 -0
- package/build/verbatim/codec.js.map +1 -0
- package/build/verbatim.d.ts +74 -0
- package/build/verbatim.js +17 -0
- package/build/verbatim.js.map +1 -0
- package/examples/agent.ts +65 -0
- package/examples/chat.ts +24 -0
- package/examples/config.ts +24 -0
- package/examples/tsconfig.json +28 -0
- package/examples/verbatim.ts +44 -0
- package/package.json +50 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { RoleMessage } from "./session.js";
|
|
2
|
+
import { Function } from "../../function.js";
|
|
3
|
+
import { Tool } from "./tool.js";
|
|
4
|
+
import { ResponseInvalid } from "../../engine.js";
|
|
5
|
+
import * as VerbatimCodec from "../../verbatim/codec.js";
|
|
6
|
+
export class MessageCodec {
|
|
7
|
+
ctx;
|
|
8
|
+
constructor(ctx) {
|
|
9
|
+
this.ctx = ctx;
|
|
10
|
+
}
|
|
11
|
+
encodeFunctionResponse(fr) {
|
|
12
|
+
return this.ctx.toolCodec.encodeFunctionResponse(fr);
|
|
13
|
+
}
|
|
14
|
+
decodeAiMessage(output) {
|
|
15
|
+
const parts = output.flatMap((item) => {
|
|
16
|
+
if (item.type === 'message') {
|
|
17
|
+
if (item.content.every(part => part.type === 'output_text')) { }
|
|
18
|
+
else
|
|
19
|
+
throw new ResponseInvalid('Refusal', { cause: output });
|
|
20
|
+
const text = item.content.map(part => part.text).join('');
|
|
21
|
+
if (text) {
|
|
22
|
+
const vrs = VerbatimCodec.Request.decode(text, this.ctx.vdm);
|
|
23
|
+
return [new RoleMessage.Part.Text(text, vrs)];
|
|
24
|
+
}
|
|
25
|
+
else
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
else if (item.type === 'function_call')
|
|
29
|
+
return [this.ctx.toolCodec.decodeFunctionCall(item)];
|
|
30
|
+
else if (item.type === 'reasoning')
|
|
31
|
+
return [];
|
|
32
|
+
else if (item.type === 'apply_patch_call')
|
|
33
|
+
return [new Tool.ApplyPatch.Call(item)];
|
|
34
|
+
else
|
|
35
|
+
throw new Error();
|
|
36
|
+
});
|
|
37
|
+
return new RoleMessage.Ai(parts, output);
|
|
38
|
+
}
|
|
39
|
+
encodeUserMessage(userMessage) {
|
|
40
|
+
return userMessage.getParts().map(part => {
|
|
41
|
+
if (part instanceof RoleMessage.Part.Text)
|
|
42
|
+
return {
|
|
43
|
+
type: 'message',
|
|
44
|
+
role: 'user',
|
|
45
|
+
content: part.text,
|
|
46
|
+
};
|
|
47
|
+
else if (part instanceof Function.Response)
|
|
48
|
+
return this.encodeFunctionResponse(part);
|
|
49
|
+
else if (part instanceof Tool.ApplyPatch.Response)
|
|
50
|
+
return {
|
|
51
|
+
type: 'apply_patch_call_output',
|
|
52
|
+
call_id: part.id,
|
|
53
|
+
status: part.failure ? 'failed' : 'completed',
|
|
54
|
+
output: part.failure || undefined,
|
|
55
|
+
};
|
|
56
|
+
else
|
|
57
|
+
throw new Error();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
encodeAiMessage(aiMessage) {
|
|
61
|
+
return aiMessage.getRaw();
|
|
62
|
+
}
|
|
63
|
+
encodeDeveloperMessage(developerMessage) {
|
|
64
|
+
return this.ctx.compatibleMessageCodec.encodeDeveloperMessage(developerMessage);
|
|
65
|
+
}
|
|
66
|
+
encodeChatMessage(chatMessage) {
|
|
67
|
+
if (chatMessage instanceof RoleMessage.User)
|
|
68
|
+
return this.encodeUserMessage(chatMessage);
|
|
69
|
+
else if (chatMessage instanceof RoleMessage.Ai)
|
|
70
|
+
return this.encodeAiMessage(chatMessage);
|
|
71
|
+
else
|
|
72
|
+
throw new Error();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=message-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AAIzD,MAAM,OAAO,YAAY;IAIQ;IAA7B,YAA6B,GAAmC;QAAnC,QAAG,GAAH,GAAG,CAAgC;IAAG,CAAC;IAE7D,sBAAsB,CACzB,EAA+B;QAE/B,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAEM,eAAe,CAClB,MAA6C;QAE7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAwC,EAAE;YACxE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC,CAAA,CAAC;;oBAC3D,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1D,IAAI,IAAI,EAAE,CAAC;oBACP,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAClD,CAAC;;oBAAM,OAAO,EAAE,CAAC;YACrB,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe;gBACpC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;iBACpD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBAC9B,OAAO,EAAE,CAAC;iBACT,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;gBACrC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;gBACvC,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEM,iBAAiB,CACpB,WAAuC;QAEvC,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI;gBACrC,OAAO;oBACH,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI,CAAC,IAAI;iBACuB,CAAC;iBAC7C,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ;gBACtC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;iBACxC,IAAI,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ;gBAC7C,OAAO;oBACH,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;oBAC7C,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;iBAC8B,CAAC;;gBACnE,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,eAAe,CAClB,SAAwC;QAExC,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAEM,sBAAsB,CACzB,gBAAuC;QAEvC,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IACpF,CAAC;IAEM,iBAAiB,CACpB,WAA+C;QAE/C,IAAI,WAAW,YAAY,WAAW,CAAC,IAAI;YACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;aAC1C,IAAI,WAAW,YAAY,WAAW,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;;YACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IAC3B,CAAC;CACJ"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { RoleMessage as CompatibleRoleMessage } from '../../compatible-engine/session.ts';
|
|
2
|
+
import { Function } from '../../function.ts';
|
|
3
|
+
import { Tool } from './tool.ts';
|
|
4
|
+
import type { Engine } from '../../engine.ts';
|
|
5
|
+
import type { Verbatim } from '../../verbatim.ts';
|
|
6
|
+
import OpenAI from 'openai';
|
|
7
|
+
declare const NOMINAL: unique symbol;
|
|
8
|
+
export interface Session<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> extends Engine.Session<RoleMessage.User<fdu>, RoleMessage.Ai<fdu, vdu>, RoleMessage.Developer> {
|
|
9
|
+
}
|
|
10
|
+
export declare namespace Session {
|
|
11
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Session<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
12
|
+
type ChatMessage<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto> = Engine.Session.ChatMessage<RoleMessage.User<fdu>, RoleMessage.Ai<fdu, vdu>>;
|
|
13
|
+
namespace ChatMessage {
|
|
14
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Session.ChatMessage<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export declare namespace RoleMessage {
|
|
18
|
+
namespace Part {
|
|
19
|
+
export import Text = CompatibleRoleMessage.Part.Text;
|
|
20
|
+
}
|
|
21
|
+
class Ai<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> {
|
|
22
|
+
protected parts: RoleMessage.Ai.Part<fdu, vdu>[];
|
|
23
|
+
protected raw: OpenAI.Responses.ResponseOutputItem[];
|
|
24
|
+
protected [NOMINAL]: never;
|
|
25
|
+
constructor(parts: RoleMessage.Ai.Part<fdu, vdu>[], raw: OpenAI.Responses.ResponseOutputItem[]);
|
|
26
|
+
getParts(): RoleMessage.Ai.Part<fdu, vdu>[];
|
|
27
|
+
getRaw(): OpenAI.Responses.ResponseOutputItem[];
|
|
28
|
+
allTextPart(): boolean;
|
|
29
|
+
getTextParts(): RoleMessage.Part.Text<vdu>[];
|
|
30
|
+
getText(): string;
|
|
31
|
+
getToolCalls(): Tool.Call.Of<fdu>[];
|
|
32
|
+
getFunctionCalls(): Function.Call.Of<fdu>[];
|
|
33
|
+
getVerbatimRequests(): Verbatim.Request.Of<vdu>[];
|
|
34
|
+
getOnlyFunctionCall(): Function.Call.Of<fdu>;
|
|
35
|
+
getOnlyToolCall(): Tool.Call.Of<fdu>;
|
|
36
|
+
getOnlyVerbatimRequest(): Verbatim.Request.Of<vdu>;
|
|
37
|
+
}
|
|
38
|
+
namespace Ai {
|
|
39
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = RoleMessage.Ai<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
40
|
+
type Part<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto> = RoleMessage.Part.Text<vdu> | Tool.Call.Of<fdu>;
|
|
41
|
+
namespace Part {
|
|
42
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = RoleMessage.Ai.Part<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
class User<in out fdu extends Function.Decl.Proto> {
|
|
46
|
+
protected parts: RoleMessage.User.Part<fdu>[];
|
|
47
|
+
protected [NOMINAL]: never;
|
|
48
|
+
constructor(parts: RoleMessage.User.Part<fdu>[]);
|
|
49
|
+
getParts(): RoleMessage.User.Part<fdu>[];
|
|
50
|
+
getToolResponses(): Tool.Response.Of<fdu>[];
|
|
51
|
+
}
|
|
52
|
+
namespace User {
|
|
53
|
+
type From<fdm extends Function.Decl.Map.Proto> = RoleMessage.User<Function.Decl.From<fdm>>;
|
|
54
|
+
type Part<fdu extends Function.Decl.Proto> = RoleMessage.Part.Text<never> | Tool.Response.Of<fdu>;
|
|
55
|
+
namespace Part {
|
|
56
|
+
type From<fdm extends Function.Decl.Map.Proto> = RoleMessage.User.Part<Function.Decl.From<fdm>>;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export import Developer = CompatibleRoleMessage.Developer;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { RoleMessage as CompatibleRoleMessage } from "../../compatible-engine/session.js";
|
|
2
|
+
import { Function } from "../../function.js";
|
|
3
|
+
import { Tool } from "./tool.js";
|
|
4
|
+
const NOMINAL = Symbol();
|
|
5
|
+
export var RoleMessage;
|
|
6
|
+
(function (RoleMessage) {
|
|
7
|
+
let Part;
|
|
8
|
+
(function (Part) {
|
|
9
|
+
Part.Text = CompatibleRoleMessage.Part.Text;
|
|
10
|
+
})(Part = RoleMessage.Part || (RoleMessage.Part = {}));
|
|
11
|
+
class Ai {
|
|
12
|
+
parts;
|
|
13
|
+
raw;
|
|
14
|
+
constructor(parts, raw) {
|
|
15
|
+
this.parts = parts;
|
|
16
|
+
this.raw = raw;
|
|
17
|
+
}
|
|
18
|
+
getParts() {
|
|
19
|
+
return this.parts;
|
|
20
|
+
}
|
|
21
|
+
getRaw() {
|
|
22
|
+
return this.raw;
|
|
23
|
+
}
|
|
24
|
+
allTextPart() {
|
|
25
|
+
return this.parts.every(part => part instanceof RoleMessage.Part.Text);
|
|
26
|
+
}
|
|
27
|
+
getTextParts() {
|
|
28
|
+
return this.parts.filter(part => part instanceof RoleMessage.Part.Text);
|
|
29
|
+
}
|
|
30
|
+
getText() {
|
|
31
|
+
return this.getTextParts().map(part => part.text).join('');
|
|
32
|
+
}
|
|
33
|
+
getToolCalls() {
|
|
34
|
+
return this.parts.filter(part => part instanceof Function.Call || part instanceof Tool.ApplyPatch.Call);
|
|
35
|
+
}
|
|
36
|
+
getFunctionCalls() {
|
|
37
|
+
return this.parts.filter(part => part instanceof Function.Call);
|
|
38
|
+
}
|
|
39
|
+
getVerbatimRequests() {
|
|
40
|
+
return this.parts
|
|
41
|
+
.filter(part => part instanceof RoleMessage.Part.Text)
|
|
42
|
+
.flatMap(part => part.vrs);
|
|
43
|
+
}
|
|
44
|
+
getOnlyFunctionCall() {
|
|
45
|
+
const tcs = this.getToolCalls();
|
|
46
|
+
if (tcs.length === 1) { }
|
|
47
|
+
else
|
|
48
|
+
throw new Error();
|
|
49
|
+
const tc = tcs[0];
|
|
50
|
+
if (tc instanceof Function.Call) { }
|
|
51
|
+
else
|
|
52
|
+
throw new Error();
|
|
53
|
+
return tc;
|
|
54
|
+
}
|
|
55
|
+
getOnlyToolCall() {
|
|
56
|
+
const tcs = this.getToolCalls();
|
|
57
|
+
if (tcs.length === 1) { }
|
|
58
|
+
else
|
|
59
|
+
throw new Error();
|
|
60
|
+
return tcs[0];
|
|
61
|
+
}
|
|
62
|
+
getOnlyVerbatimRequest() {
|
|
63
|
+
const vrs = this.getVerbatimRequests();
|
|
64
|
+
if (vrs.length === 1) { }
|
|
65
|
+
else
|
|
66
|
+
throw new Error();
|
|
67
|
+
return vrs[0];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
RoleMessage.Ai = Ai;
|
|
71
|
+
class User {
|
|
72
|
+
parts;
|
|
73
|
+
constructor(parts) {
|
|
74
|
+
this.parts = parts;
|
|
75
|
+
}
|
|
76
|
+
getParts() {
|
|
77
|
+
return this.parts;
|
|
78
|
+
}
|
|
79
|
+
getToolResponses() {
|
|
80
|
+
return this.parts.filter(part => part instanceof Function.Response || part instanceof Tool.ApplyPatch.Response);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
RoleMessage.User = User;
|
|
84
|
+
RoleMessage.Developer = CompatibleRoleMessage.Developer;
|
|
85
|
+
})(RoleMessage || (RoleMessage = {}));
|
|
86
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Structuring as CompatibleStructuring } from '../../compatible-engine/structuring.ts';
|
|
2
|
+
import type { Function } from '../../function.ts';
|
|
3
|
+
import type { Verbatim } from '../../verbatim.ts';
|
|
4
|
+
export declare namespace Structuring {
|
|
5
|
+
type Choice<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto> = Structuring.Choice.TCall.FCall.Of<fdu> | typeof Structuring.Choice.TCall.REQUIRED | typeof Structuring.Choice.TCall.ANYONE | Structuring.Choice.VRequest.Of<vdu> | typeof Structuring.Choice.VRequest.REQUIRED | typeof Structuring.Choice.VRequest.ANYONE | typeof Structuring.Choice.NONE | typeof Structuring.Choice.AUTO | typeof Structuring.Choice.REQUIRED | typeof Structuring.Choice.ANYONE;
|
|
6
|
+
namespace Choice {
|
|
7
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Structuring.Choice<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
8
|
+
export import REQUIRED = CompatibleStructuring.Choice.REQUIRED;
|
|
9
|
+
export import ANYONE = CompatibleStructuring.Choice.ANYONE;
|
|
10
|
+
namespace TCall {
|
|
11
|
+
const REQUIRED: unique symbol;
|
|
12
|
+
const ANYONE: unique symbol;
|
|
13
|
+
export import FCall = CompatibleStructuring.Choice.FCall;
|
|
14
|
+
}
|
|
15
|
+
export import VRequest = CompatibleStructuring.Choice.VRequest;
|
|
16
|
+
export import NONE = CompatibleStructuring.Choice.NONE;
|
|
17
|
+
export import AUTO = CompatibleStructuring.Choice.AUTO;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Structuring as CompatibleStructuring } from "../../compatible-engine/structuring.js";
|
|
2
|
+
export var Structuring;
|
|
3
|
+
(function (Structuring) {
|
|
4
|
+
let Choice;
|
|
5
|
+
(function (Choice) {
|
|
6
|
+
Choice.REQUIRED = CompatibleStructuring.Choice.REQUIRED;
|
|
7
|
+
Choice.ANYONE = CompatibleStructuring.Choice.ANYONE;
|
|
8
|
+
let TCall;
|
|
9
|
+
(function (TCall) {
|
|
10
|
+
TCall.REQUIRED = Symbol();
|
|
11
|
+
TCall.ANYONE = Symbol();
|
|
12
|
+
TCall.FCall = CompatibleStructuring.Choice.FCall;
|
|
13
|
+
})(TCall = Choice.TCall || (Choice.TCall = {}));
|
|
14
|
+
Choice.VRequest = CompatibleStructuring.Choice.VRequest;
|
|
15
|
+
Choice.NONE = CompatibleStructuring.Choice.NONE;
|
|
16
|
+
Choice.AUTO = CompatibleStructuring.Choice.AUTO;
|
|
17
|
+
})(Choice = Structuring.Choice || (Structuring.Choice = {}));
|
|
18
|
+
})(Structuring || (Structuring = {}));
|
|
19
|
+
//# sourceMappingURL=structuring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structuring.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/structuring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAK9F,MAAM,KAAW,WAAW,CAuC3B;AAvCD,WAAiB,WAAW;IAmBxB,IAAiB,MAAM,CAmBtB;IAnBD,WAAiB,MAAM;QAML,eAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjD,aAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC;QAE3D,IAAiB,KAAK,CAKrB;QALD,WAAiB,KAAK;YACL,cAAQ,GAAG,MAAM,EAAE,CAAC;YACpB,YAAM,GAAG,MAAM,EAAE,CAAC;YAEjB,WAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7D,CAAC,EALgB,KAAK,GAAL,YAAK,KAAL,YAAK,QAKrB;QAEa,eAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjD,WAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;QACzC,WAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;IAC3D,CAAC,EAnBgB,MAAM,GAAN,kBAAM,KAAN,kBAAM,QAmBtB;AACL,CAAC,EAvCgB,WAAW,KAAX,WAAW,QAuC3B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Function } from '../../function.ts';
|
|
2
|
+
import OpenAI from 'openai';
|
|
3
|
+
export declare namespace Tool {
|
|
4
|
+
const APPLY_PATCH: unique symbol;
|
|
5
|
+
namespace Name {
|
|
6
|
+
type From<fdm extends Function.Decl.Map.Proto> = Function.Name.From<fdm> | typeof Tool.APPLY_PATCH;
|
|
7
|
+
}
|
|
8
|
+
type Map<fdm extends Function.Decl.Map.Proto> = {
|
|
9
|
+
[name in Tool.Name.From<fdm>]: name extends typeof Tool.APPLY_PATCH ? Tool.ApplyPatch : name extends Function.Name.From<fdm> ? Function.Extract<fdm, name> : never;
|
|
10
|
+
};
|
|
11
|
+
namespace Call {
|
|
12
|
+
type Of<fdu extends Function.Decl.Proto> = Function.Call.Of<fdu> | ApplyPatch.Call;
|
|
13
|
+
type From<fdm extends Function.Decl.Map.Proto> = Call.Of<Function.Decl.From<fdm>>;
|
|
14
|
+
}
|
|
15
|
+
namespace Response {
|
|
16
|
+
type Of<fdu extends Function.Decl.Proto> = Function.Response.Of<fdu> | ApplyPatch.Response;
|
|
17
|
+
type From<fdm extends Function.Decl.Map.Proto> = Response.Of<Function.Decl.From<fdm>>;
|
|
18
|
+
}
|
|
19
|
+
interface ApplyPatch {
|
|
20
|
+
/**
|
|
21
|
+
* @returns empty string on success
|
|
22
|
+
*/
|
|
23
|
+
(operation: ApplyPatch.Operation): Promise<string>;
|
|
24
|
+
}
|
|
25
|
+
namespace ApplyPatch {
|
|
26
|
+
type Operation = Operation.UpdateFile | Operation.CreateFile | Operation.DeleteFile;
|
|
27
|
+
namespace Operation {
|
|
28
|
+
interface UpdateFile {
|
|
29
|
+
type: 'update_file';
|
|
30
|
+
diff: string;
|
|
31
|
+
path: string;
|
|
32
|
+
}
|
|
33
|
+
interface CreateFile {
|
|
34
|
+
type: 'create_file';
|
|
35
|
+
diff: string;
|
|
36
|
+
path: string;
|
|
37
|
+
}
|
|
38
|
+
interface DeleteFile {
|
|
39
|
+
type: 'delete_file';
|
|
40
|
+
path: string;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
namespace ApplyPatch {
|
|
45
|
+
class Call {
|
|
46
|
+
raw: OpenAI.Responses.ResponseApplyPatchToolCall;
|
|
47
|
+
constructor(raw: OpenAI.Responses.ResponseApplyPatchToolCall);
|
|
48
|
+
}
|
|
49
|
+
class Response {
|
|
50
|
+
id: string;
|
|
51
|
+
failure: string;
|
|
52
|
+
constructor(apr: Omit<ApplyPatch.Response, never>);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export var Tool;
|
|
2
|
+
(function (Tool) {
|
|
3
|
+
Tool.APPLY_PATCH = Symbol();
|
|
4
|
+
let ApplyPatch;
|
|
5
|
+
(function (ApplyPatch) {
|
|
6
|
+
class Call {
|
|
7
|
+
raw;
|
|
8
|
+
constructor(raw) {
|
|
9
|
+
this.raw = raw;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
ApplyPatch.Call = Call;
|
|
13
|
+
class Response {
|
|
14
|
+
id;
|
|
15
|
+
failure;
|
|
16
|
+
constructor(apr) {
|
|
17
|
+
this.id = apr.id;
|
|
18
|
+
this.failure = apr.failure;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
ApplyPatch.Response = Response;
|
|
22
|
+
})(ApplyPatch = Tool.ApplyPatch || (Tool.ApplyPatch = {}));
|
|
23
|
+
})(Tool || (Tool = {}));
|
|
24
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/tool.ts"],"names":[],"mappings":"AAIA,MAAM,KAAW,IAAI,CAkFpB;AAlFD,WAAiB,IAAI;IACJ,gBAAW,GAAG,MAAM,EAAE,CAAC;IA+DpC,IAAiB,UAAU,CAe1B;IAfD,WAAiB,UAAU;QAEvB,MAAa,IAAI;YACa;YAA1B,YAA0B,GAAgD;gBAAhD,QAAG,GAAH,GAAG,CAA6C;YAAG,CAAC;SACjF;QAFY,eAAI,OAEhB,CAAA;QAED,MAAa,QAAQ;YACV,EAAE,CAAS;YACX,OAAO,CAAS;YACvB,YAAmB,GAAqC;gBACpD,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC/B,CAAC;SACJ;QAPY,mBAAQ,WAOpB,CAAA;IAEL,CAAC,EAfgB,UAAU,GAAV,eAAU,KAAV,eAAU,QAe1B;AAGL,CAAC,EAlFgB,IAAI,KAAJ,IAAI,QAkFpB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type InferenceParams, type ProviderSpec } from '../../engine.ts';
|
|
2
|
+
import { RoleMessage, type Session } from './session.ts';
|
|
3
|
+
import { Function } from '../../function.ts';
|
|
4
|
+
import type OpenAI from 'openai';
|
|
5
|
+
import { type InferenceContext } from '../../inference-context.ts';
|
|
6
|
+
import { Throttle } from '../../throttle.ts';
|
|
7
|
+
import type { MessageCodec } from './message-codec.ts';
|
|
8
|
+
import type { ToolCodec } from '../../api-types/openai-responses/tool-codec.ts';
|
|
9
|
+
import type { Billing } from '../../api-types/openai-responses/billing.ts';
|
|
10
|
+
import type { Validator } from './validation.ts';
|
|
11
|
+
import type { Verbatim } from '../../verbatim.ts';
|
|
12
|
+
import { Structuring } from './structuring.ts';
|
|
13
|
+
export declare class Transport<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> {
|
|
14
|
+
protected ctx: Transport.Context<fdm, vdm>;
|
|
15
|
+
protected apiURL: URL;
|
|
16
|
+
constructor(ctx: Transport.Context<fdm, vdm>);
|
|
17
|
+
protected makeParams(session: Session.From<fdm, vdm>): OpenAI.Responses.ResponseCreateParamsNonStreaming;
|
|
18
|
+
protected logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
19
|
+
fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
20
|
+
}
|
|
21
|
+
export declare namespace Transport {
|
|
22
|
+
interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
23
|
+
inferenceParams: InferenceParams;
|
|
24
|
+
providerSpec: ProviderSpec;
|
|
25
|
+
fdm: fdm;
|
|
26
|
+
throttle: Throttle;
|
|
27
|
+
choice: Structuring.Choice.From<fdm, vdm>;
|
|
28
|
+
parallelToolCall: boolean;
|
|
29
|
+
applyPatch: boolean;
|
|
30
|
+
messageCodec: MessageCodec<fdm, vdm>;
|
|
31
|
+
toolCodec: ToolCodec<fdm>;
|
|
32
|
+
billing: Billing;
|
|
33
|
+
validator: Validator.From<fdm, vdm>;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { NetworkError, ResponseInvalid } from "../../engine.js";
|
|
2
|
+
import * as Undici from 'undici';
|
|
3
|
+
import { logger } from "../../telemetry.js";
|
|
4
|
+
import * as ChoiceCodec from "./choice-codec.js";
|
|
5
|
+
export class Transport {
|
|
6
|
+
ctx;
|
|
7
|
+
apiURL;
|
|
8
|
+
constructor(ctx) {
|
|
9
|
+
this.ctx = ctx;
|
|
10
|
+
this.apiURL = new URL(`${this.ctx.providerSpec.baseUrl}/responses`);
|
|
11
|
+
}
|
|
12
|
+
makeParams(session) {
|
|
13
|
+
const tools = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
|
|
14
|
+
if (this.ctx.applyPatch)
|
|
15
|
+
tools.push({ type: 'apply_patch' });
|
|
16
|
+
return {
|
|
17
|
+
model: this.ctx.inferenceParams.model,
|
|
18
|
+
include: ['reasoning.encrypted_content'],
|
|
19
|
+
store: false,
|
|
20
|
+
input: session.chatMessages.flatMap(chatMessage => this.ctx.messageCodec.encodeChatMessage(chatMessage)),
|
|
21
|
+
instructions: session.developerMessage && this.ctx.messageCodec.encodeDeveloperMessage(session.developerMessage),
|
|
22
|
+
tools: tools.length ? tools : undefined,
|
|
23
|
+
tool_choice: tools.length ? ChoiceCodec.encode(this.ctx.choice) : undefined,
|
|
24
|
+
parallel_tool_calls: tools.length ? this.ctx.parallelToolCall : undefined,
|
|
25
|
+
max_output_tokens: this.ctx.inferenceParams.maxTokens,
|
|
26
|
+
...this.ctx.inferenceParams.additionalOptions,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
logAiMessage(output) {
|
|
30
|
+
for (const item of output)
|
|
31
|
+
if (item.type === 'message') {
|
|
32
|
+
if (item.content.every(part => part.type === 'output_text')) { }
|
|
33
|
+
else
|
|
34
|
+
throw new Error();
|
|
35
|
+
logger.inference.debug(item.content.map(part => part.text).join(''));
|
|
36
|
+
}
|
|
37
|
+
else if (item.type === 'function_call')
|
|
38
|
+
logger.message.debug(item);
|
|
39
|
+
else if (item.type === 'apply_patch_call')
|
|
40
|
+
logger.message.debug(item);
|
|
41
|
+
}
|
|
42
|
+
async fetch(wfctx, session, signal) {
|
|
43
|
+
await this.ctx.throttle.requests(wfctx);
|
|
44
|
+
// Prepare request
|
|
45
|
+
const params = this.makeParams(session);
|
|
46
|
+
logger.message.trace(params);
|
|
47
|
+
// Send request
|
|
48
|
+
const res = await Undici.fetch(this.apiURL, {
|
|
49
|
+
method: 'POST',
|
|
50
|
+
headers: new Headers({
|
|
51
|
+
'Content-Type': 'application/json',
|
|
52
|
+
'Authorization': `Bearer ${this.ctx.providerSpec.apiKey}`,
|
|
53
|
+
}),
|
|
54
|
+
body: JSON.stringify(params),
|
|
55
|
+
dispatcher: this.ctx.providerSpec.proxyAgent,
|
|
56
|
+
signal,
|
|
57
|
+
}).catch(e => {
|
|
58
|
+
if (e instanceof TypeError)
|
|
59
|
+
throw new NetworkError(undefined, { cause: e });
|
|
60
|
+
else
|
|
61
|
+
throw e;
|
|
62
|
+
});
|
|
63
|
+
// Get response
|
|
64
|
+
if (res.ok) { }
|
|
65
|
+
else
|
|
66
|
+
throw new Error(undefined, { cause: res });
|
|
67
|
+
const response = await res.json();
|
|
68
|
+
logger.message.trace(response);
|
|
69
|
+
// Validate response
|
|
70
|
+
if (response.status === 'incomplete' && response.incomplete_details?.reason === 'max_output_tokens')
|
|
71
|
+
throw new ResponseInvalid('Token limit exceeded.', { cause: response });
|
|
72
|
+
if (response.status === 'completed') { }
|
|
73
|
+
else
|
|
74
|
+
throw new ResponseInvalid('Abnormal response status', { cause: response });
|
|
75
|
+
if (response.usage) { }
|
|
76
|
+
else
|
|
77
|
+
throw new Error();
|
|
78
|
+
this.logAiMessage(response.output);
|
|
79
|
+
wfctx.cost?.(this.ctx.billing.charge(response.usage));
|
|
80
|
+
logger.message.debug(response.usage);
|
|
81
|
+
return this.ctx.messageCodec.decodeAiMessage(response.output);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Structuring } from './structuring.ts';
|
|
2
|
+
import { Function } from '../../function.ts';
|
|
3
|
+
import { Verbatim } from '../../verbatim.ts';
|
|
4
|
+
import { RoleMessage } from './session.ts';
|
|
5
|
+
import type { Engine } from '../../engine.ts';
|
|
6
|
+
export declare class Validator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.Validator<fdu, vdu, RoleMessage.Ai<fdu, vdu>> {
|
|
7
|
+
protected ctx: Validator.Context<fdu, vdu>;
|
|
8
|
+
constructor(ctx: Validator.Context<fdu, vdu>);
|
|
9
|
+
validateChoice(message: RoleMessage.Ai<fdu, vdu>): void;
|
|
10
|
+
validateParts(message: RoleMessage.Ai<fdu, vdu>): void;
|
|
11
|
+
}
|
|
12
|
+
export declare namespace Validator {
|
|
13
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Validator<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
14
|
+
interface Context<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> {
|
|
15
|
+
choice: Structuring.Choice<fdu, vdu>;
|
|
16
|
+
}
|
|
17
|
+
namespace Context {
|
|
18
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Context<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Structuring } from "./structuring.js";
|
|
2
|
+
import { Function } from "../../function.js";
|
|
3
|
+
import { ResponseInvalid } from "../../engine.js";
|
|
4
|
+
export class Validator {
|
|
5
|
+
ctx;
|
|
6
|
+
constructor(ctx) {
|
|
7
|
+
this.ctx = ctx;
|
|
8
|
+
}
|
|
9
|
+
validateChoice(message) {
|
|
10
|
+
const tcs = message.getToolCalls();
|
|
11
|
+
const vrs = message.getVerbatimRequests();
|
|
12
|
+
if (this.ctx.choice === Structuring.Choice.TCall.REQUIRED) {
|
|
13
|
+
if (tcs.length) { }
|
|
14
|
+
else
|
|
15
|
+
throw new ResponseInvalid('Tool call required.');
|
|
16
|
+
}
|
|
17
|
+
else if (this.ctx.choice === Structuring.Choice.TCall.ANYONE) {
|
|
18
|
+
if (tcs.length) { }
|
|
19
|
+
else
|
|
20
|
+
throw new ResponseInvalid('Tool call required.');
|
|
21
|
+
if (tcs.length > 1)
|
|
22
|
+
throw new ResponseInvalid('Only one tool call allowed.');
|
|
23
|
+
}
|
|
24
|
+
else if (this.ctx.choice instanceof Structuring.Choice.TCall.FCall) {
|
|
25
|
+
if (tcs.length) { }
|
|
26
|
+
else
|
|
27
|
+
throw new ResponseInvalid(`Function call of ${this.ctx.choice.name} required.`);
|
|
28
|
+
if (tcs.length > 1)
|
|
29
|
+
throw new ResponseInvalid('Only one function call allowed.');
|
|
30
|
+
if (tcs[0] instanceof Function.Call && tcs[0].name === this.ctx.choice.name) { }
|
|
31
|
+
else
|
|
32
|
+
throw new ResponseInvalid(`Only function call of ${this.ctx.choice.name} allowed.`);
|
|
33
|
+
}
|
|
34
|
+
else if (this.ctx.choice === Structuring.Choice.VRequest.REQUIRED) {
|
|
35
|
+
if (vrs.length) { }
|
|
36
|
+
else
|
|
37
|
+
throw new ResponseInvalid('Verbatim message required.');
|
|
38
|
+
}
|
|
39
|
+
else if (this.ctx.choice === Structuring.Choice.VRequest.ANYONE) {
|
|
40
|
+
if (vrs.length) { }
|
|
41
|
+
else
|
|
42
|
+
throw new ResponseInvalid('Verbatim message required.');
|
|
43
|
+
if (vrs.length > 1)
|
|
44
|
+
throw new ResponseInvalid('Only one verbatim message allowed.');
|
|
45
|
+
}
|
|
46
|
+
else if (this.ctx.choice instanceof Structuring.Choice.VRequest) {
|
|
47
|
+
if (vrs.length) { }
|
|
48
|
+
else
|
|
49
|
+
throw new ResponseInvalid(`Verbatim message through channel ${this.ctx.choice.name} required.`);
|
|
50
|
+
if (vrs.length > 1)
|
|
51
|
+
throw new ResponseInvalid('Only one verbatim message allowed.');
|
|
52
|
+
if (vrs[0].name === this.ctx.choice.name) { }
|
|
53
|
+
else
|
|
54
|
+
throw new ResponseInvalid(`Only verbatim message through channel ${this.ctx.choice.name} allowed.`);
|
|
55
|
+
}
|
|
56
|
+
else if (this.ctx.choice === Structuring.Choice.REQUIRED) {
|
|
57
|
+
if (tcs.length + vrs.length) { }
|
|
58
|
+
else
|
|
59
|
+
throw new ResponseInvalid('Either tool call or verbatim message required.');
|
|
60
|
+
}
|
|
61
|
+
else if (this.ctx.choice === Structuring.Choice.ANYONE) {
|
|
62
|
+
if (tcs.length + vrs.length) { }
|
|
63
|
+
else
|
|
64
|
+
throw new ResponseInvalid('Either tool call or verbatim message required.');
|
|
65
|
+
if (tcs.length + vrs.length > 1)
|
|
66
|
+
throw new ResponseInvalid('Only one tool call or verbatim message allowed.');
|
|
67
|
+
}
|
|
68
|
+
else if (this.ctx.choice === Structuring.Choice.NONE) {
|
|
69
|
+
if (tcs.length + vrs.length)
|
|
70
|
+
throw new ResponseInvalid('Neither tool call nor verbatim message allowed.');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
validateParts(message) {
|
|
74
|
+
const parts = message.getParts();
|
|
75
|
+
if (parts.length) { }
|
|
76
|
+
else
|
|
77
|
+
throw new ResponseInvalid('Empty message.');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type InferenceContext } from '../../inference-context.ts';
|
|
2
|
+
import { Function } from '../../function.ts';
|
|
3
|
+
import { OpenAIResponsesNativeEngine } from '../openai-responses.ts';
|
|
4
|
+
import * as CompatibleAgentloopModule from '../../compatible-engine.d/agentloop.ts';
|
|
5
|
+
import type { Verbatim } from '../../verbatim.ts';
|
|
6
|
+
/**
|
|
7
|
+
* @param session mutable
|
|
8
|
+
*/
|
|
9
|
+
export declare function agentloop<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto>(wfctx: InferenceContext, session: OpenAIResponsesNativeEngine.Session.From<fdm, vdm>, engine: OpenAIResponsesNativeEngine<fdm, vdm>, tlm: OpenAIResponsesNativeEngine.Tool.Map<fdm>, limit?: number): AsyncGenerator<string, string, void>;
|
|
10
|
+
export declare namespace agentloop {
|
|
11
|
+
export import FunctionCallLimitExceeded = CompatibleAgentloopModule.agentloop.FunctionCallLimitExceeded;
|
|
12
|
+
}
|