@zimtsui/typechat 0.0.97 → 0.0.99
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 +3 -8
- package/README.md +5 -177
- package/assets/verbatim/instruction.md +1 -1
- package/assets/verbatim/response.handlebars +1 -1
- package/build/adaptor.d.ts +9 -9
- package/build/adaptor.js +15 -17
- package/build/adaptor.js.map +1 -1
- package/build/endpoint-spec.d.ts +1 -1
- package/build/endpoint-spec.js +1 -1
- package/build/engine/message.d.ts +75 -0
- package/build/engine/message.js +165 -0
- package/build/engine/message.js.map +1 -0
- package/build/engine/middleware.d.ts +11 -0
- package/build/engine/middleware.js +1 -0
- package/build/engine/middleware.js.map +1 -0
- package/build/engine/parts-validator.d.ts +9 -0
- package/build/engine/parts-validator.js +11 -0
- package/build/engine/parts-validator.js.map +1 -0
- package/build/engine/recoverable.d.ts +13 -0
- package/build/engine/recoverable.js +29 -0
- package/build/engine/recoverable.js.map +1 -0
- package/build/engine/session.d.ts +8 -32
- package/build/engine/session.js +0 -19
- package/build/engine/session.js.map +1 -1
- package/build/engine/structuring-validator.d.ts +15 -0
- package/build/engine/structuring-validator.js +64 -0
- package/build/engine/structuring-validator.js.map +1 -0
- package/build/engine/transport.d.ts +6 -3
- package/build/engine.d.ts +40 -39
- package/build/engine.js +100 -64
- package/build/engine.js.map +1 -1
- package/build/engines/anthropic/billing.js.map +1 -0
- package/build/engines/anthropic/message-codec.d.ts +22 -0
- package/build/engines/anthropic/message-codec.js +79 -0
- package/build/engines/anthropic/message-codec.js.map +1 -0
- package/build/engines/anthropic/message.d.ts +22 -0
- package/build/engines/anthropic/message.js +25 -0
- package/build/engines/anthropic/message.js.map +1 -0
- package/build/{compatible-engine.d/anthropic/choice-codec.d.ts → engines/anthropic/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/anthropic/structuring-choice-codec.js +23 -0
- package/build/engines/anthropic/structuring-choice-codec.js.map +1 -0
- package/build/{api-types → engines}/anthropic/tool-codec.d.ts +5 -4
- package/build/{api-types → engines}/anthropic/tool-codec.js +16 -14
- package/build/engines/anthropic/tool-codec.js.map +1 -0
- package/build/engines/anthropic/transport.d.ts +37 -0
- package/build/{compatible-engine.d → engines}/anthropic/transport.js +8 -12
- package/build/engines/anthropic/transport.js.map +1 -0
- package/build/engines/anthropic.d.ts +22 -0
- package/build/engines/anthropic.js +46 -0
- package/build/engines/anthropic.js.map +1 -0
- package/build/engines/google/billing.js.map +1 -0
- package/build/engines/google/message-codec.d.ts +24 -0
- package/build/engines/google/message-codec.js +113 -0
- package/build/engines/google/message-codec.js.map +1 -0
- package/build/engines/google/message.d.ts +37 -0
- package/build/engines/google/message.js +58 -0
- package/build/engines/google/message.js.map +1 -0
- package/build/engines/google/restful-request.js.map +1 -0
- package/build/{compatible-engine.d/google/choice-codec.d.ts → engines/google/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/google/structuring-choice-codec.js +23 -0
- package/build/engines/google/structuring-choice-codec.js.map +1 -0
- package/build/{api-types → engines}/google/tool-codec.d.ts +5 -4
- package/build/{api-types → engines}/google/tool-codec.js +15 -13
- package/build/engines/google/tool-codec.js.map +1 -0
- package/build/{native-engines.d → engines}/google/transport.d.ts +13 -14
- package/build/{native-engines.d → engines}/google/transport.js +18 -13
- package/build/engines/google/transport.js.map +1 -0
- package/build/engines/google.d.ts +41 -0
- package/build/engines/google.js +151 -0
- package/build/engines/google.js.map +1 -0
- package/build/engines/openai-chatcompletions/billing.js.map +1 -0
- package/build/engines/openai-chatcompletions/message-codec.d.ts +22 -0
- package/build/engines/openai-chatcompletions/message-codec.js +80 -0
- package/build/engines/openai-chatcompletions/message-codec.js.map +1 -0
- package/build/{compatible-engine.d/openai-chatcompletions/choice-codec.d.ts → engines/openai-chatcompletions/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/openai-chatcompletions/structuring-choice-codec.js +22 -0
- package/build/engines/openai-chatcompletions/structuring-choice-codec.js.map +1 -0
- package/build/engines/openai-chatcompletions/tool-codec.d.ts +17 -0
- package/build/{api-types → engines}/openai-chatcompletions/tool-codec.js +19 -17
- package/build/engines/openai-chatcompletions/tool-codec.js.map +1 -0
- package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.d.ts +13 -15
- package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.js +8 -18
- package/build/engines/openai-chatcompletions/transport.js.map +1 -0
- package/build/engines/openai-chatcompletions.d.ts +22 -0
- package/build/engines/openai-chatcompletions.js +48 -0
- package/build/engines/openai-chatcompletions.js.map +1 -0
- package/build/engines/openai-responses/billing.js.map +1 -0
- package/build/engines/openai-responses/message-codec.d.ts +24 -0
- package/build/{compatible-engine.d → engines}/openai-responses/message-codec.js +55 -51
- package/build/engines/openai-responses/message-codec.js.map +1 -0
- package/build/engines/openai-responses/message.d.ts +25 -0
- package/build/engines/openai-responses/message.js +43 -0
- package/build/engines/openai-responses/message.js.map +1 -0
- package/build/engines/openai-responses/structuring-choice-codec.d.ts +3 -0
- package/build/engines/openai-responses/structuring-choice-codec.js +22 -0
- package/build/engines/openai-responses/structuring-choice-codec.js.map +1 -0
- package/build/engines/openai-responses/structuring-validator.d.ts +12 -0
- package/build/engines/openai-responses/structuring-validator.js +64 -0
- package/build/engines/openai-responses/structuring-validator.js.map +1 -0
- package/build/engines/openai-responses/tool-codec.d.ts +17 -0
- package/build/{api-types → engines}/openai-responses/tool-codec.js +19 -17
- package/build/engines/openai-responses/tool-codec.js.map +1 -0
- package/build/{native-engines.d → engines}/openai-responses/tool.d.ts +1 -3
- package/build/{native-engines.d → engines}/openai-responses/tool.js +3 -3
- package/build/engines/openai-responses/tool.js.map +1 -0
- package/build/{compatible-engine.d → engines}/openai-responses/transport.d.ts +16 -12
- package/build/{native-engines.d → engines}/openai-responses/transport.js +11 -9
- package/build/engines/openai-responses/transport.js.map +1 -0
- package/build/engines/openai-responses.d.ts +41 -0
- package/build/engines/openai-responses.js +134 -0
- package/build/engines/openai-responses.js.map +1 -0
- package/build/exports.d.ts +5 -5
- package/build/exports.js +5 -5
- package/build/exports.js.map +1 -1
- package/build/function.d.ts +7 -7
- package/build/function.js +19 -19
- package/build/function.js.map +1 -1
- package/build/repetition.d.ts +2 -2
- package/build/repetition.js +21 -20
- package/build/repetition.js.map +1 -1
- package/build/structuring-choice.d.ts +15 -0
- package/build/structuring-choice.js +18 -0
- package/build/structuring-choice.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/verbatim/codec/declarations.js +0 -2
- package/build/verbatim/codec/declarations.js.map +1 -1
- package/build/verbatim/codec/quotation.js +0 -3
- package/build/verbatim/codec/quotation.js.map +1 -1
- package/build/verbatim/codec/request.js +4 -4
- package/build/verbatim/codec/request.js.map +1 -1
- package/build/verbatim/codec/response.js +0 -3
- package/build/verbatim/codec/response.js.map +1 -1
- package/package.json +2 -4
- package/build/api-types/anthropic/billing.js.map +0 -1
- package/build/api-types/anthropic/tool-codec.js.map +0 -1
- package/build/api-types/google/billing.js.map +0 -1
- package/build/api-types/google/restful-request.js.map +0 -1
- package/build/api-types/google/tool-codec.js.map +0 -1
- package/build/api-types/openai-chatcompletions/billing.js.map +0 -1
- package/build/api-types/openai-chatcompletions/tool-codec.d.ts +0 -16
- package/build/api-types/openai-chatcompletions/tool-codec.js.map +0 -1
- package/build/api-types/openai-responses/billing.js.map +0 -1
- package/build/api-types/openai-responses/tool-codec.d.ts +0 -16
- package/build/api-types/openai-responses/tool-codec.js.map +0 -1
- package/build/compatible-engine/session.d.ts +0 -56
- package/build/compatible-engine/session.js +0 -85
- package/build/compatible-engine/session.js.map +0 -1
- package/build/compatible-engine/structuring.d.ts +0 -36
- package/build/compatible-engine/structuring.js +0 -34
- package/build/compatible-engine/structuring.js.map +0 -1
- package/build/compatible-engine/validation.d.ts +0 -28
- package/build/compatible-engine/validation.js +0 -104
- package/build/compatible-engine/validation.js.map +0 -1
- package/build/compatible-engine.d/agentloop.d.ts +0 -12
- package/build/compatible-engine.d/agentloop.js +0 -52
- package/build/compatible-engine.d/agentloop.js.map +0 -1
- package/build/compatible-engine.d/anthropic/choice-codec.js +0 -27
- package/build/compatible-engine.d/anthropic/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/anthropic/message-codec.d.ts +0 -34
- package/build/compatible-engine.d/anthropic/message-codec.js +0 -85
- package/build/compatible-engine.d/anthropic/message-codec.js.map +0 -1
- package/build/compatible-engine.d/anthropic/transport.d.ts +0 -38
- package/build/compatible-engine.d/anthropic/transport.js.map +0 -1
- package/build/compatible-engine.d/anthropic.d.ts +0 -25
- package/build/compatible-engine.d/anthropic.js +0 -47
- package/build/compatible-engine.d/anthropic.js.map +0 -1
- package/build/compatible-engine.d/google/choice-codec.js +0 -27
- package/build/compatible-engine.d/google/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/google/message-codec.d.ts +0 -34
- package/build/compatible-engine.d/google/message-codec.js +0 -95
- package/build/compatible-engine.d/google/message-codec.js.map +0 -1
- package/build/compatible-engine.d/google/transport.d.ts +0 -35
- package/build/compatible-engine.d/google/transport.js +0 -97
- package/build/compatible-engine.d/google/transport.js.map +0 -1
- package/build/compatible-engine.d/google.d.ts +0 -25
- package/build/compatible-engine.d/google.js +0 -64
- package/build/compatible-engine.d/google.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +0 -31
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +0 -22
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +0 -68
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions.d.ts +0 -25
- package/build/compatible-engine.d/openai-chatcompletions.js +0 -49
- package/build/compatible-engine.d/openai-chatcompletions.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +0 -5
- package/build/compatible-engine.d/openai-responses/choice-codec.js +0 -30
- package/build/compatible-engine.d/openai-responses/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/message-codec.d.ts +0 -36
- package/build/compatible-engine.d/openai-responses/message-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/transport.js +0 -91
- package/build/compatible-engine.d/openai-responses/transport.js.map +0 -1
- package/build/compatible-engine.d/openai-responses.d.ts +0 -25
- package/build/compatible-engine.d/openai-responses.js +0 -47
- package/build/compatible-engine.d/openai-responses.js.map +0 -1
- package/build/compatible-engine.d.ts +0 -26
- package/build/compatible-engine.js +0 -34
- package/build/compatible-engine.js.map +0 -1
- package/build/engine/validation.d.ts +0 -6
- package/build/engine/validation.js +0 -1
- package/build/engine/validation.js.map +0 -1
- package/build/native-engines.d/google/message-codec.d.ts +0 -26
- package/build/native-engines.d/google/message-codec.js +0 -70
- package/build/native-engines.d/google/message-codec.js.map +0 -1
- package/build/native-engines.d/google/session.d.ts +0 -58
- package/build/native-engines.d/google/session.js +0 -101
- package/build/native-engines.d/google/session.js.map +0 -1
- package/build/native-engines.d/google/transport.js.map +0 -1
- package/build/native-engines.d/google/validation.d.ts +0 -28
- package/build/native-engines.d/google/validation.js +0 -26
- package/build/native-engines.d/google/validation.js.map +0 -1
- package/build/native-engines.d/google.d/agentloop.d.ts +0 -12
- package/build/native-engines.d/google.d/agentloop.js +0 -57
- package/build/native-engines.d/google.d/agentloop.js.map +0 -1
- package/build/native-engines.d/google.d/exports.d.ts +0 -2
- package/build/native-engines.d/google.d/exports.js +0 -3
- package/build/native-engines.d/google.d/exports.js.map +0 -1
- package/build/native-engines.d/google.d.ts +0 -43
- package/build/native-engines.d/google.js +0 -100
- package/build/native-engines.d/google.js.map +0 -1
- package/build/native-engines.d/openai-responses/choice-codec.d.ts +0 -5
- package/build/native-engines.d/openai-responses/choice-codec.js +0 -30
- package/build/native-engines.d/openai-responses/choice-codec.js.map +0 -1
- package/build/native-engines.d/openai-responses/message-codec.d.ts +0 -25
- package/build/native-engines.d/openai-responses/message-codec.js +0 -99
- package/build/native-engines.d/openai-responses/message-codec.js.map +0 -1
- package/build/native-engines.d/openai-responses/session.d.ts +0 -61
- package/build/native-engines.d/openai-responses/session.js +0 -86
- package/build/native-engines.d/openai-responses/session.js.map +0 -1
- package/build/native-engines.d/openai-responses/structuring.d.ts +0 -19
- package/build/native-engines.d/openai-responses/structuring.js +0 -19
- package/build/native-engines.d/openai-responses/structuring.js.map +0 -1
- package/build/native-engines.d/openai-responses/tool.js.map +0 -1
- package/build/native-engines.d/openai-responses/transport.d.ts +0 -40
- package/build/native-engines.d/openai-responses/transport.js.map +0 -1
- package/build/native-engines.d/openai-responses/validation.d.ts +0 -28
- package/build/native-engines.d/openai-responses/validation.js +0 -101
- package/build/native-engines.d/openai-responses/validation.js.map +0 -1
- package/build/native-engines.d/openai-responses.d/agentloop.d.ts +0 -12
- package/build/native-engines.d/openai-responses.d/agentloop.js +0 -61
- package/build/native-engines.d/openai-responses.d/agentloop.js.map +0 -1
- package/build/native-engines.d/openai-responses.d/exports.d.ts +0 -2
- package/build/native-engines.d/openai-responses.d/exports.js +0 -3
- package/build/native-engines.d/openai-responses.d/exports.js.map +0 -1
- package/build/native-engines.d/openai-responses.d.ts +0 -45
- package/build/native-engines.d/openai-responses.js +0 -82
- package/build/native-engines.d/openai-responses.js.map +0 -1
- /package/build/{api-types → engines}/anthropic/billing.d.ts +0 -0
- /package/build/{api-types → engines}/anthropic/billing.js +0 -0
- /package/build/{api-types → engines}/google/billing.d.ts +0 -0
- /package/build/{api-types → engines}/google/billing.js +0 -0
- /package/build/{api-types → engines}/google/restful-request.d.ts +0 -0
- /package/build/{api-types → engines}/google/restful-request.js +0 -0
- /package/build/{api-types → engines}/openai-chatcompletions/billing.d.ts +0 -0
- /package/build/{api-types → engines}/openai-chatcompletions/billing.js +0 -0
- /package/build/{api-types → engines}/openai-responses/billing.d.ts +0 -0
- /package/build/{api-types → engines}/openai-responses/billing.js +0 -0
|
@@ -1,36 +1,40 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import {
|
|
1
|
+
import { type InferenceOptions, type ProviderSpecs } from '../../engine.ts';
|
|
2
|
+
import { type Session } from '../../engine/session.ts';
|
|
3
|
+
import { RoleMessage } from './message.ts';
|
|
3
4
|
import { Function } from '../../function.ts';
|
|
4
5
|
import OpenAI from 'openai';
|
|
5
6
|
import { type InferenceContext } from '../../inference-context.ts';
|
|
6
7
|
import { Throttle } from '../../throttle.ts';
|
|
7
8
|
import type { MessageCodec } from './message-codec.ts';
|
|
8
|
-
import type { ToolCodec } from '
|
|
9
|
-
import type { Billing } from '
|
|
9
|
+
import type { ToolCodec } from './tool-codec.ts';
|
|
10
|
+
import type { Billing } from './billing.ts';
|
|
10
11
|
import type { Verbatim } from '../../verbatim.ts';
|
|
11
|
-
import
|
|
12
|
+
import { StructuringChoice } from '../../structuring-choice.ts';
|
|
12
13
|
import type { Engine } from '../../engine.ts';
|
|
13
|
-
export declare class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<
|
|
14
|
+
export declare class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<fdm, vdm> {
|
|
14
15
|
protected client: OpenAI;
|
|
15
|
-
inferenceParams:
|
|
16
|
-
protected providerSpec:
|
|
16
|
+
protected inferenceParams: InferenceOptions;
|
|
17
|
+
protected providerSpec: ProviderSpecs;
|
|
17
18
|
protected fdm: fdm;
|
|
18
19
|
protected throttle: Throttle;
|
|
19
|
-
protected
|
|
20
|
+
protected structuringChoice: StructuringChoice;
|
|
21
|
+
protected applyPatch: boolean;
|
|
20
22
|
protected messageCodec: MessageCodec<fdm, vdm>;
|
|
21
23
|
protected toolCodec: ToolCodec<fdm>;
|
|
22
24
|
protected billing: Billing;
|
|
23
25
|
constructor(options: Transport.Options<fdm, vdm>);
|
|
24
26
|
protected makeParams(session: Session.From<fdm, vdm>): OpenAI.Responses.ResponseCreateParamsStreaming;
|
|
27
|
+
protected logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
25
28
|
fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
26
29
|
}
|
|
27
30
|
export declare namespace Transport {
|
|
28
31
|
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
29
|
-
inferenceParams:
|
|
30
|
-
providerSpec:
|
|
32
|
+
inferenceParams: InferenceOptions;
|
|
33
|
+
providerSpec: ProviderSpecs;
|
|
31
34
|
fdm: fdm;
|
|
32
35
|
throttle: Throttle;
|
|
33
|
-
|
|
36
|
+
structuringChoice: StructuringChoice;
|
|
37
|
+
applyPatch: boolean;
|
|
34
38
|
messageCodec: MessageCodec<fdm, vdm>;
|
|
35
39
|
toolCodec: ToolCodec<fdm>;
|
|
36
40
|
billing: Billing;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
2
|
import { loggers } from "../../telemetry.js";
|
|
3
|
-
import * as
|
|
3
|
+
import * as StructuringChoiceCodec from "./structuring-choice-codec.js";
|
|
4
4
|
import * as Undici from 'undici';
|
|
5
5
|
export class Transport {
|
|
6
6
|
client;
|
|
@@ -8,7 +8,7 @@ export class Transport {
|
|
|
8
8
|
providerSpec;
|
|
9
9
|
fdm;
|
|
10
10
|
throttle;
|
|
11
|
-
|
|
11
|
+
structuringChoice;
|
|
12
12
|
applyPatch;
|
|
13
13
|
messageCodec;
|
|
14
14
|
toolCodec;
|
|
@@ -24,14 +24,14 @@ export class Transport {
|
|
|
24
24
|
this.providerSpec = options.providerSpec;
|
|
25
25
|
this.fdm = options.fdm;
|
|
26
26
|
this.throttle = options.throttle;
|
|
27
|
-
this.
|
|
27
|
+
this.structuringChoice = options.structuringChoice;
|
|
28
28
|
this.applyPatch = options.applyPatch;
|
|
29
29
|
this.messageCodec = options.messageCodec;
|
|
30
30
|
this.toolCodec = options.toolCodec;
|
|
31
31
|
this.billing = options.billing;
|
|
32
32
|
}
|
|
33
33
|
makeParams(session) {
|
|
34
|
-
const tools = this.toolCodec.encodeFunctionDeclarationMap(
|
|
34
|
+
const tools = this.toolCodec.encodeFunctionDeclarationMap();
|
|
35
35
|
if (this.applyPatch)
|
|
36
36
|
tools.push({ type: 'apply_patch' });
|
|
37
37
|
return {
|
|
@@ -42,7 +42,7 @@ export class Transport {
|
|
|
42
42
|
input: session.chatMessages.flatMap(chatMessage => this.messageCodec.encodeChatMessage(chatMessage)),
|
|
43
43
|
instructions: session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage),
|
|
44
44
|
tools: tools.length ? tools : undefined,
|
|
45
|
-
tool_choice: tools.length ?
|
|
45
|
+
tool_choice: tools.length ? StructuringChoiceCodec.encode(this.structuringChoice) : undefined,
|
|
46
46
|
parallel_tool_calls: tools.length ? this.inferenceParams.parallelToolCall : undefined,
|
|
47
47
|
...this.inferenceParams.additionalOptions,
|
|
48
48
|
};
|
|
@@ -59,13 +59,14 @@ export class Transport {
|
|
|
59
59
|
loggers.message.info(item);
|
|
60
60
|
else if (item.type === 'apply_patch_call')
|
|
61
61
|
loggers.message.info(item);
|
|
62
|
+
else if (item.type === 'reasoning') { }
|
|
63
|
+
else
|
|
64
|
+
loggers.message.info(item);
|
|
62
65
|
}
|
|
63
66
|
async fetch(wfctx, session, signal) {
|
|
64
67
|
await this.throttle.requests(wfctx);
|
|
65
|
-
// Prepare request
|
|
66
68
|
const params = this.makeParams(session);
|
|
67
69
|
loggers.message.debug(params);
|
|
68
|
-
// Send request
|
|
69
70
|
let response = null;
|
|
70
71
|
const stream = await this.client.responses.create(params, { signal });
|
|
71
72
|
for await (const event of stream) {
|
|
@@ -74,10 +75,11 @@ export class Transport {
|
|
|
74
75
|
response = event.response;
|
|
75
76
|
else if (event.type === 'response.incomplete')
|
|
76
77
|
response = event.response;
|
|
78
|
+
else if (event.type === 'response.failed')
|
|
79
|
+
response = event.response;
|
|
77
80
|
else if (event.type === 'error')
|
|
78
|
-
throw new SyntaxError(
|
|
81
|
+
throw new SyntaxError('Response stream error', { cause: event });
|
|
79
82
|
}
|
|
80
|
-
// Validate response
|
|
81
83
|
if (response) { }
|
|
82
84
|
else
|
|
83
85
|
throw new Error();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Engine, Middleware } from '../engine.ts';
|
|
2
|
+
import { Function } from '../function.ts';
|
|
3
|
+
import { Verbatim } from '../verbatim.ts';
|
|
4
|
+
import { MessageCodec } from './openai-responses/message-codec.ts';
|
|
5
|
+
import { ToolCodec } from './openai-responses/tool-codec.ts';
|
|
6
|
+
import { Billing } from './openai-responses/billing.ts';
|
|
7
|
+
import { StructuringValidator } from './openai-responses/structuring-validator.ts';
|
|
8
|
+
import { Transport } from './openai-responses/transport.ts';
|
|
9
|
+
import { InferenceContext } from '../inference-context.ts';
|
|
10
|
+
import { Session } from '../engine/session.ts';
|
|
11
|
+
import * as MessageModule from './openai-responses/message.ts';
|
|
12
|
+
import * as ToolModule from './openai-responses/tool.ts';
|
|
13
|
+
export type OpenAIResponsesEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = OpenAIResponsesEngine.Instance<fdm, vdm>;
|
|
14
|
+
export declare namespace OpenAIResponsesEngine {
|
|
15
|
+
class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Instance<fdm, vdm> {
|
|
16
|
+
protected options: OpenAIResponsesEngine.Options<fdm, vdm>;
|
|
17
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
18
|
+
protected messageCodec: MessageCodec<fdm, vdm>;
|
|
19
|
+
protected billing: Billing;
|
|
20
|
+
protected transport: Transport<fdm, vdm>;
|
|
21
|
+
protected structuringValidator: StructuringValidator.From<fdm, vdm>;
|
|
22
|
+
protected applyPatch: boolean;
|
|
23
|
+
constructor(options: OpenAIResponsesEngine.Options<fdm, vdm>);
|
|
24
|
+
clone(): OpenAIResponsesEngine<fdm, vdm>;
|
|
25
|
+
protected infer(wfctx: InferenceContext, session: Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
26
|
+
stateless(wfctx: InferenceContext, session: Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
27
|
+
stateful(wfctx: InferenceContext, session: Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
28
|
+
useStateless(middleware: Middleware.From<fdm, vdm>): OpenAIResponsesEngine<fdm, vdm>;
|
|
29
|
+
useStateful(middleware: Middleware.From<fdm, vdm>): OpenAIResponsesEngine<fdm, vdm>;
|
|
30
|
+
/**
|
|
31
|
+
* @param session mutable
|
|
32
|
+
*/
|
|
33
|
+
agentloop(wfctx: InferenceContext, session: Session.From<fdm, vdm>, fnm: Function.Map<fdm>, vhm: Verbatim.Handler.Map<vdm>, limit?: number, applyPatch?: Tool.ApplyPatch): AsyncGenerator<string, string, void>;
|
|
34
|
+
}
|
|
35
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Options<fdm, vdm> {
|
|
36
|
+
applyPatch?: boolean;
|
|
37
|
+
}
|
|
38
|
+
const create: Engine.Create;
|
|
39
|
+
export import Tool = ToolModule.Tool;
|
|
40
|
+
export import RoleMessage = MessageModule.RoleMessage;
|
|
41
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Engine } from "../engine.js";
|
|
2
|
+
import { Function } from "../function.js";
|
|
3
|
+
import { MessageCodec } from "./openai-responses/message-codec.js";
|
|
4
|
+
import { ToolCodec } from "./openai-responses/tool-codec.js";
|
|
5
|
+
import { Billing } from "./openai-responses/billing.js";
|
|
6
|
+
import { StructuringValidator } from "./openai-responses/structuring-validator.js";
|
|
7
|
+
import { Transport } from "./openai-responses/transport.js";
|
|
8
|
+
import * as MessageModule from "./openai-responses/message.js";
|
|
9
|
+
import * as ToolModule from "./openai-responses/tool.js";
|
|
10
|
+
export var OpenAIResponsesEngine;
|
|
11
|
+
(function (OpenAIResponsesEngine) {
|
|
12
|
+
class Instance extends Engine.Instance {
|
|
13
|
+
options;
|
|
14
|
+
toolCodec;
|
|
15
|
+
messageCodec;
|
|
16
|
+
billing;
|
|
17
|
+
transport;
|
|
18
|
+
structuringValidator;
|
|
19
|
+
applyPatch;
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(options);
|
|
22
|
+
this.options = options;
|
|
23
|
+
this.applyPatch = options.applyPatch ?? false;
|
|
24
|
+
this.toolCodec = new ToolCodec({ fdm: this.fdm });
|
|
25
|
+
this.messageCodec = new MessageCodec({
|
|
26
|
+
toolCodec: this.toolCodec,
|
|
27
|
+
vdm: this.vdm,
|
|
28
|
+
});
|
|
29
|
+
this.billing = new Billing({ pricing: this.pricing });
|
|
30
|
+
this.transport = new Transport({
|
|
31
|
+
inferenceParams: this.inferenceOptions,
|
|
32
|
+
providerSpec: this.providerSpecs,
|
|
33
|
+
fdm: this.fdm,
|
|
34
|
+
throttle: this.throttle,
|
|
35
|
+
structuringChoice: this.structuringChoice,
|
|
36
|
+
applyPatch: this.applyPatch,
|
|
37
|
+
messageCodec: this.messageCodec,
|
|
38
|
+
toolCodec: this.toolCodec,
|
|
39
|
+
billing: this.billing,
|
|
40
|
+
});
|
|
41
|
+
this.structuringValidator = new StructuringValidator({ structuringChoice: this.structuringChoice });
|
|
42
|
+
}
|
|
43
|
+
clone() {
|
|
44
|
+
const engine = new OpenAIResponsesEngine.Instance(this.options);
|
|
45
|
+
engine.middlewaresStateless = [...this.middlewaresStateless];
|
|
46
|
+
engine.middlewaresStateful = [...this.middlewaresStateful];
|
|
47
|
+
return engine;
|
|
48
|
+
}
|
|
49
|
+
async infer(wfctx, session) {
|
|
50
|
+
return await super.infer(wfctx, session);
|
|
51
|
+
}
|
|
52
|
+
async stateless(wfctx, session) {
|
|
53
|
+
return await super.stateless(wfctx, session);
|
|
54
|
+
}
|
|
55
|
+
async stateful(wfctx, session) {
|
|
56
|
+
return await super.stateful(wfctx, session);
|
|
57
|
+
}
|
|
58
|
+
useStateless(middleware) {
|
|
59
|
+
return super.useStateless(middleware);
|
|
60
|
+
}
|
|
61
|
+
useStateful(middleware) {
|
|
62
|
+
return super.useStateful(middleware);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @param session mutable
|
|
66
|
+
*/
|
|
67
|
+
async *agentloop(wfctx, session, fnm, vhm, limit = Number.POSITIVE_INFINITY, applyPatch) {
|
|
68
|
+
for (let i = 0; i < limit; i++) {
|
|
69
|
+
const response = await this.stateful(wfctx, session);
|
|
70
|
+
if (response.allChat())
|
|
71
|
+
return response.getChat();
|
|
72
|
+
const pfress = [];
|
|
73
|
+
const pvress = [];
|
|
74
|
+
const papress = [];
|
|
75
|
+
for (const part of response.getParts()) {
|
|
76
|
+
if (part instanceof Engine.RoleMessage.Ai.Part.Text) {
|
|
77
|
+
const textPart = part;
|
|
78
|
+
yield textPart.text;
|
|
79
|
+
for (const vreq of textPart.vreqs) {
|
|
80
|
+
const vh = vhm[vreq.name];
|
|
81
|
+
pvress.push((async () => new OpenAIResponsesEngine.RoleMessage.User.Part.Text(await vh.call(vhm, vreq.args)))());
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else if (part instanceof Function.Call) {
|
|
85
|
+
const fcall = part;
|
|
86
|
+
const f = fnm[fcall.name];
|
|
87
|
+
pfress.push((async () => {
|
|
88
|
+
try {
|
|
89
|
+
return Function.Response.Successful.of({
|
|
90
|
+
id: fcall.id,
|
|
91
|
+
name: fcall.name,
|
|
92
|
+
text: await f.call(fnm, fcall.args),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
if (e instanceof Function.Error) { }
|
|
97
|
+
else
|
|
98
|
+
throw e;
|
|
99
|
+
return Function.Response.Failed.of({
|
|
100
|
+
id: fcall.id,
|
|
101
|
+
name: fcall.name,
|
|
102
|
+
error: e.message,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
})());
|
|
106
|
+
}
|
|
107
|
+
else if (part instanceof OpenAIResponsesEngine.Tool.ApplyPatch.Call) {
|
|
108
|
+
if (applyPatch) { }
|
|
109
|
+
else
|
|
110
|
+
throw new Error('Apply patch handler missing.');
|
|
111
|
+
papress.push((async () => new OpenAIResponsesEngine.Tool.ApplyPatch.Response({
|
|
112
|
+
id: part.raw.call_id,
|
|
113
|
+
failure: await applyPatch(part.raw.operation),
|
|
114
|
+
}))());
|
|
115
|
+
}
|
|
116
|
+
else
|
|
117
|
+
throw new Error();
|
|
118
|
+
}
|
|
119
|
+
const fress = await Promise.all(pfress);
|
|
120
|
+
const vress = await Promise.all(pvress);
|
|
121
|
+
const aprs = await Promise.all(papress);
|
|
122
|
+
session.chatMessages.push(new OpenAIResponsesEngine.RoleMessage.User([...fress, ...aprs, ...vress]));
|
|
123
|
+
}
|
|
124
|
+
throw new Engine.FunctionCallLimitExceeded('Function call limit exceeded.');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
OpenAIResponsesEngine.Instance = Instance;
|
|
128
|
+
OpenAIResponsesEngine.create = function (options) {
|
|
129
|
+
return new Instance(options);
|
|
130
|
+
};
|
|
131
|
+
OpenAIResponsesEngine.Tool = ToolModule.Tool;
|
|
132
|
+
OpenAIResponsesEngine.RoleMessage = MessageModule.RoleMessage;
|
|
133
|
+
})(OpenAIResponsesEngine || (OpenAIResponsesEngine = {}));
|
|
134
|
+
//# sourceMappingURL=openai-responses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/engines/openai-responses.ts"],"names":[],"mappings":"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"}
|
package/build/exports.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export * from './adaptor.ts';
|
|
2
|
-
export * from './compatible-engine/session.ts';
|
|
3
|
-
export * from './compatible-engine.ts';
|
|
4
2
|
export * from './function.ts';
|
|
5
3
|
export * from './verbatim.ts';
|
|
6
|
-
export * from './compatible-engine/structuring.ts';
|
|
7
4
|
export * from './config.ts';
|
|
8
5
|
export * from './inference-context.ts';
|
|
9
6
|
export * from './endpoint-spec.ts';
|
|
10
|
-
export * from './compatible-engine.d/agentloop.ts';
|
|
11
7
|
export * from './engine.ts';
|
|
12
|
-
export * from './compatible-engine.ts';
|
|
13
8
|
export * from './media.ts';
|
|
9
|
+
export * from './structuring-choice.ts';
|
|
10
|
+
export * from './engines/google.ts';
|
|
11
|
+
export * from './engines/openai-responses.ts';
|
|
12
|
+
export * from './engines/openai-chatcompletions.ts';
|
|
13
|
+
export * from './engines/anthropic.ts';
|
package/build/exports.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export * from "./adaptor.js";
|
|
2
|
-
export * from "./compatible-engine/session.js";
|
|
3
|
-
export * from "./compatible-engine.js";
|
|
4
2
|
export * from "./function.js";
|
|
5
3
|
export * from "./verbatim.js";
|
|
6
|
-
export * from "./compatible-engine/structuring.js";
|
|
7
4
|
export * from "./config.js";
|
|
8
5
|
export * from "./inference-context.js";
|
|
9
6
|
export * from "./endpoint-spec.js";
|
|
10
|
-
export * from "./compatible-engine.d/agentloop.js";
|
|
11
7
|
export * from "./engine.js";
|
|
12
|
-
export * from "./compatible-engine.js";
|
|
13
8
|
export * from "./media.js";
|
|
9
|
+
export * from "./structuring-choice.js";
|
|
10
|
+
export * from "./engines/google.js";
|
|
11
|
+
export * from "./engines/openai-responses.js";
|
|
12
|
+
export * from "./engines/openai-chatcompletions.js";
|
|
13
|
+
export * from "./engines/anthropic.js";
|
|
14
14
|
//# sourceMappingURL=exports.js.map
|
package/build/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AAExC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC"}
|
package/build/function.d.ts
CHANGED
|
@@ -46,8 +46,8 @@ export declare namespace Function {
|
|
|
46
46
|
id?: string;
|
|
47
47
|
name: fd['name'];
|
|
48
48
|
args: Static<fd['parameters']>;
|
|
49
|
-
protected constructor(
|
|
50
|
-
static of<fdu extends Function.Decl.Proto>(
|
|
49
|
+
protected constructor(fcall: Omit<Call<fd>, never>);
|
|
50
|
+
static of<fdu extends Function.Decl.Proto>(fcall: Function.Call.Options.Of<fdu>): Function.Call.Of<fdu>;
|
|
51
51
|
}
|
|
52
52
|
namespace Call {
|
|
53
53
|
type Of<fdu extends Function.Decl.Proto> = fdu extends infer fd extends Function.Decl.Proto ? Function.Call<fd> : never;
|
|
@@ -61,7 +61,7 @@ export declare namespace Function {
|
|
|
61
61
|
abstract class Response<in out fd extends Function.Decl.Proto> {
|
|
62
62
|
id?: string;
|
|
63
63
|
name: fd['name'];
|
|
64
|
-
protected constructor(
|
|
64
|
+
protected constructor(fres: Omit<Function.Response<fd>, never>);
|
|
65
65
|
}
|
|
66
66
|
namespace Response {
|
|
67
67
|
type Of<fdu extends Function.Decl.Proto> = fdu extends infer fd extends Function.Decl.Proto ? Function.Response<fd> : never;
|
|
@@ -69,8 +69,8 @@ export declare namespace Function {
|
|
|
69
69
|
class Successful<in out fd extends Function.Decl.Proto> extends Function.Response<fd> {
|
|
70
70
|
protected [NOMINAL]: never;
|
|
71
71
|
text: string;
|
|
72
|
-
protected constructor(
|
|
73
|
-
static of<fdu extends Function.Decl.Proto>(
|
|
72
|
+
protected constructor(fres: Function.Response.Successful.Options<fd>);
|
|
73
|
+
static of<fdu extends Function.Decl.Proto>(fres: Function.Response.Successful.Options.Of<fdu>): Function.Response.Successful.Of<fdu>;
|
|
74
74
|
}
|
|
75
75
|
namespace Successful {
|
|
76
76
|
type Of<fdu extends Function.Decl.Proto> = fdu extends infer fd extends Function.Decl.Proto ? Function.Response.Successful<fd> : never;
|
|
@@ -84,8 +84,8 @@ export declare namespace Function {
|
|
|
84
84
|
class Failed<in out fd extends Function.Decl.Proto> extends Function.Response<fd> {
|
|
85
85
|
protected [NOMINAL]: never;
|
|
86
86
|
error: string;
|
|
87
|
-
protected constructor(
|
|
88
|
-
static of<fdu extends Function.Decl.Proto>(
|
|
87
|
+
protected constructor(fres: Function.Response.Failed.Options<fd>);
|
|
88
|
+
static of<fdu extends Function.Decl.Proto>(fres: Function.Response.Failed.Options.Of<fdu>): Function.Response.Failed.Of<fdu>;
|
|
89
89
|
}
|
|
90
90
|
namespace Failed {
|
|
91
91
|
type Options<fd extends Function.Decl.Proto> = Omit<Function.Response.Failed<fd>, never>;
|
package/build/function.js
CHANGED
|
@@ -5,45 +5,45 @@ export var Function;
|
|
|
5
5
|
id;
|
|
6
6
|
name;
|
|
7
7
|
args;
|
|
8
|
-
constructor(
|
|
9
|
-
this.id =
|
|
10
|
-
this.name =
|
|
11
|
-
this.args =
|
|
8
|
+
constructor(fcall) {
|
|
9
|
+
this.id = fcall.id;
|
|
10
|
+
this.name = fcall.name;
|
|
11
|
+
this.args = fcall.args;
|
|
12
12
|
}
|
|
13
|
-
static of(
|
|
14
|
-
return new Function.Call(
|
|
13
|
+
static of(fcall) {
|
|
14
|
+
return new Function.Call(fcall);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
Function.Call = Call;
|
|
18
18
|
class Response {
|
|
19
19
|
id;
|
|
20
20
|
name;
|
|
21
|
-
constructor(
|
|
22
|
-
this.id =
|
|
23
|
-
this.name =
|
|
21
|
+
constructor(fres) {
|
|
22
|
+
this.id = fres.id;
|
|
23
|
+
this.name = fres.name;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
Function.Response = Response;
|
|
27
27
|
(function (Response) {
|
|
28
28
|
class Successful extends Function.Response {
|
|
29
29
|
text;
|
|
30
|
-
constructor(
|
|
31
|
-
super(
|
|
32
|
-
this.text =
|
|
30
|
+
constructor(fres) {
|
|
31
|
+
super(fres);
|
|
32
|
+
this.text = fres.text;
|
|
33
33
|
}
|
|
34
|
-
static of(
|
|
35
|
-
return new Function.Response.Successful(
|
|
34
|
+
static of(fres) {
|
|
35
|
+
return new Function.Response.Successful(fres);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
Response.Successful = Successful;
|
|
39
39
|
class Failed extends Function.Response {
|
|
40
40
|
error;
|
|
41
|
-
constructor(
|
|
42
|
-
super(
|
|
43
|
-
this.error =
|
|
41
|
+
constructor(fres) {
|
|
42
|
+
super(fres);
|
|
43
|
+
this.error = fres.error;
|
|
44
44
|
}
|
|
45
|
-
static of(
|
|
46
|
-
return new Function.Response.Failed(
|
|
45
|
+
static of(fres) {
|
|
46
|
+
return new Function.Response.Failed(fres);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
Response.Failed = Failed;
|
package/build/function.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../src/function.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAMzB,MAAM,KAAW,QAAQ,CA6MxB;AA7MD,WAAiB,QAAQ;IAkFrB,MAAa,IAAI;QAEN,EAAE,CAAU;QACZ,IAAI,CAAa;QACjB,IAAI,CAA2B;QACtC,YAAsB,
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../src/function.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAMzB,MAAM,KAAW,QAAQ,CA6MxB;AA7MD,WAAiB,QAAQ;IAkFrB,MAAa,IAAI;QAEN,EAAE,CAAU;QACZ,IAAI,CAAa;QACjB,IAAI,CAA2B;QACtC,YAAsB,KAA4B;YAC9C,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3B,CAAC;QACM,MAAM,CAAC,EAAE,CACZ,KAAoC;YAEpC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAA0B,CAAC;QAC7D,CAAC;KAEJ;IAhBY,aAAI,OAgBhB,CAAA;IAqBD,MAAsB,QAAQ;QACnB,EAAE,CAAU;QACZ,IAAI,CAAa;QACxB,YAAsB,IAAwC;YAC1D,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,CAAC;KACJ;IAPqB,iBAAQ,WAO7B,CAAA;IACD,WAAiB,QAAQ;QAQrB,MAAa,UAAkD,SAAQ,QAAQ,CAAC,QAAY;YAEjF,IAAI,CAAS;YACpB,YAAsB,IAA8C;gBAChE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,CAAC;YACM,MAAM,CAAC,EAAE,CACZ,IAAkD;gBAElD,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAyC,CAAC;YAC1F,CAAC;SACJ;QAZY,mBAAU,aAYtB,CAAA;QAoBD,MAAa,MAA8C,SAAQ,QAAQ,CAAC,QAAY;YAE7E,KAAK,CAAS;YACrB,YAAsB,IAA0C;gBAC5D,KAAK,CAAC,IAAI,CAAC,CAAC;gBACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,CAAC;YACM,MAAM,CAAC,EAAE,CACZ,IAA8C;gBAE9C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAqC,CAAC;YAClF,CAAC;SACJ;QAZY,eAAM,SAYlB,CAAA;IAmBL,CAAC,EAvEgB,QAAQ,GAAR,iBAAQ,KAAR,iBAAQ,QAuExB;IAMD,MAAa,KAAM,SAAQ,UAAU,CAAC,KAAK;KAAG;IAAjC,cAAK,QAA4B,CAAA;AAClD,CAAC,EA7MgB,QAAQ,KAAR,QAAQ,QA6MxB"}
|
package/build/repetition.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function isRepeating(
|
|
2
|
-
export declare function diversity(
|
|
1
|
+
export declare function isRepeating(text: string, threshold?: number): boolean;
|
|
2
|
+
export declare function diversity(text: string): number;
|
package/build/repetition.js
CHANGED
|
@@ -1,54 +1,55 @@
|
|
|
1
|
-
export function isRepeating(
|
|
2
|
-
|
|
1
|
+
export function isRepeating(text, threshold = .9) {
|
|
2
|
+
text = text.split(/\s+/).join('');
|
|
3
|
+
return text.length >= 1024 && diversity(text) < threshold;
|
|
3
4
|
}
|
|
4
|
-
export function diversity(
|
|
5
|
-
const sa = makeSuffixArray(
|
|
5
|
+
export function diversity(text) {
|
|
6
|
+
const sa = makeSuffixArray(text);
|
|
6
7
|
const rk = new Array(sa.length);
|
|
7
8
|
for (let i = 0; i < sa.length; i++)
|
|
8
9
|
rk[sa[i]] = i;
|
|
9
|
-
const total =
|
|
10
|
+
const total = text.length * (text.length + 1) / 2;
|
|
10
11
|
let distinct = total;
|
|
11
|
-
for (const x of makeHeight(
|
|
12
|
+
for (const x of makeHeight(text, sa, rk))
|
|
12
13
|
distinct -= x;
|
|
13
14
|
return distinct / total;
|
|
14
15
|
}
|
|
15
|
-
function makeSuffixArray(
|
|
16
|
-
const sa = [...new Array(
|
|
16
|
+
function makeSuffixArray(text) {
|
|
17
|
+
const sa = [...new Array(text.length + 1).keys()];
|
|
17
18
|
let rank = new Array(sa.length);
|
|
18
|
-
for (let i = 0; i <
|
|
19
|
-
rank[i] =
|
|
20
|
-
rank[
|
|
21
|
-
for (let step = 1; step <=
|
|
19
|
+
for (let i = 0; i < text.length; i++)
|
|
20
|
+
rank[i] = text.charCodeAt(i) + 1;
|
|
21
|
+
rank[text.length] = 0;
|
|
22
|
+
for (let step = 1; step <= text.length; step <<= 1) {
|
|
22
23
|
sa.sort((lhs, rhs) => {
|
|
23
24
|
if (rank[lhs] !== rank[rhs])
|
|
24
25
|
return rank[lhs] - rank[rhs];
|
|
25
|
-
const lnext = lhs + step <=
|
|
26
|
-
const rnext = rhs + step <=
|
|
26
|
+
const lnext = lhs + step <= text.length ? rank[lhs + step] : -1;
|
|
27
|
+
const rnext = rhs + step <= text.length ? rank[rhs + step] : -1;
|
|
27
28
|
return lnext - rnext;
|
|
28
29
|
});
|
|
29
30
|
const next = new Array(sa.length);
|
|
30
31
|
next[sa[0]] = 0;
|
|
31
32
|
for (let i = 1; i < sa.length; i++) {
|
|
32
33
|
const lhs = sa[i - 1], rhs = sa[i];
|
|
33
|
-
const lv = lhs + step <=
|
|
34
|
-
const rv = rhs + step <=
|
|
34
|
+
const lv = lhs + step <= text.length ? rank[lhs + step] : -1;
|
|
35
|
+
const rv = rhs + step <= text.length ? rank[rhs + step] : -1;
|
|
35
36
|
next[rhs] = next[lhs] + +(rank[lhs] !== rank[rhs] || lv !== rv);
|
|
36
37
|
}
|
|
37
38
|
rank = next;
|
|
38
|
-
if (rank[sa[sa.length - 1]] ===
|
|
39
|
+
if (rank[sa[sa.length - 1]] === text.length)
|
|
39
40
|
break;
|
|
40
41
|
}
|
|
41
42
|
return sa;
|
|
42
43
|
}
|
|
43
|
-
function makeHeight(
|
|
44
|
+
function makeHeight(text, sa, rk) {
|
|
44
45
|
const h = new Array(sa.length - 1).fill(0);
|
|
45
|
-
for (let i = 0, k = 0; i <=
|
|
46
|
+
for (let i = 0, k = 0; i <= text.length; i++) {
|
|
46
47
|
const r = rk[i];
|
|
47
48
|
if (r === 0)
|
|
48
49
|
continue;
|
|
49
50
|
if (k)
|
|
50
51
|
k--;
|
|
51
|
-
for (const j = sa[r - 1]; i + k <
|
|
52
|
+
for (const j = sa[r - 1]; i + k < text.length && j + k < text.length && text[i + k] === text[j + k];)
|
|
52
53
|
k++;
|
|
53
54
|
h[r - 1] = k;
|
|
54
55
|
}
|
package/build/repetition.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repetition.js","sourceRoot":"","sources":["../src/repetition.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"repetition.js","sourceRoot":"","sources":["../src/repetition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type StructuringChoice = typeof StructuringChoice.TCall.REQUIRED | typeof StructuringChoice.TCall.ANYONE | typeof StructuringChoice.VRequest.REQUIRED | typeof StructuringChoice.VRequest.ANYONE | typeof StructuringChoice.NONE | typeof StructuringChoice.AUTO | typeof StructuringChoice.REQUIRED | typeof StructuringChoice.ANYONE;
|
|
2
|
+
export declare namespace StructuringChoice {
|
|
3
|
+
namespace TCall {
|
|
4
|
+
const REQUIRED: unique symbol;
|
|
5
|
+
const ANYONE: unique symbol;
|
|
6
|
+
}
|
|
7
|
+
namespace VRequest {
|
|
8
|
+
const REQUIRED: unique symbol;
|
|
9
|
+
const ANYONE: unique symbol;
|
|
10
|
+
}
|
|
11
|
+
const REQUIRED: unique symbol;
|
|
12
|
+
const ANYONE: unique symbol;
|
|
13
|
+
const NONE: unique symbol;
|
|
14
|
+
const AUTO: unique symbol;
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export var StructuringChoice;
|
|
2
|
+
(function (StructuringChoice) {
|
|
3
|
+
let TCall;
|
|
4
|
+
(function (TCall) {
|
|
5
|
+
TCall.REQUIRED = Symbol();
|
|
6
|
+
TCall.ANYONE = Symbol();
|
|
7
|
+
})(TCall = StructuringChoice.TCall || (StructuringChoice.TCall = {}));
|
|
8
|
+
let VRequest;
|
|
9
|
+
(function (VRequest) {
|
|
10
|
+
VRequest.REQUIRED = Symbol();
|
|
11
|
+
VRequest.ANYONE = Symbol();
|
|
12
|
+
})(VRequest = StructuringChoice.VRequest || (StructuringChoice.VRequest = {}));
|
|
13
|
+
StructuringChoice.REQUIRED = Symbol();
|
|
14
|
+
StructuringChoice.ANYONE = Symbol();
|
|
15
|
+
StructuringChoice.NONE = Symbol();
|
|
16
|
+
StructuringChoice.AUTO = Symbol();
|
|
17
|
+
})(StructuringChoice || (StructuringChoice = {}));
|
|
18
|
+
//# sourceMappingURL=structuring-choice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structuring-choice.js","sourceRoot":"","sources":["../src/structuring-choice.ts"],"names":[],"mappings":"AAeA,MAAM,KAAW,iBAAiB,CAiBjC;AAjBD,WAAiB,iBAAiB;IAE9B,IAAiB,KAAK,CAIrB;IAJD,WAAiB,KAAK;QAEL,cAAQ,GAAG,MAAM,EAAE,CAAC;QACpB,YAAM,GAAG,MAAM,EAAE,CAAC;IACnC,CAAC,EAJgB,KAAK,GAAL,uBAAK,KAAL,uBAAK,QAIrB;IAED,IAAiB,QAAQ,CAGxB;IAHD,WAAiB,QAAQ;QACR,iBAAQ,GAAG,MAAM,EAAE,CAAC;QACpB,eAAM,GAAG,MAAM,EAAE,CAAC;IACnC,CAAC,EAHgB,QAAQ,GAAR,0BAAQ,KAAR,0BAAQ,QAGxB;IAEY,0BAAQ,GAAG,MAAM,EAAE,CAAC;IACpB,wBAAM,GAAG,MAAM,EAAE,CAAC;IAClB,sBAAI,GAAG,MAAM,EAAE,CAAC;IAChB,sBAAI,GAAG,MAAM,EAAE,CAAC;AACjC,CAAC,EAjBgB,iBAAiB,KAAjB,iBAAiB,QAiBjC"}
|