@zimtsui/typechat 0.0.98 → 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.
Files changed (258) hide show
  1. package/DEVELOPMENT.md +3 -8
  2. package/README.md +5 -177
  3. package/assets/verbatim/instruction.md +1 -1
  4. package/assets/verbatim/response.handlebars +1 -1
  5. package/build/adaptor.d.ts +9 -9
  6. package/build/adaptor.js +15 -17
  7. package/build/adaptor.js.map +1 -1
  8. package/build/endpoint-spec.d.ts +1 -1
  9. package/build/endpoint-spec.js +1 -1
  10. package/build/engine/message.d.ts +75 -0
  11. package/build/engine/message.js +165 -0
  12. package/build/engine/message.js.map +1 -0
  13. package/build/engine/middleware.d.ts +11 -0
  14. package/build/engine/middleware.js +1 -0
  15. package/build/engine/middleware.js.map +1 -0
  16. package/build/engine/parts-validator.d.ts +9 -0
  17. package/build/engine/parts-validator.js +11 -0
  18. package/build/engine/parts-validator.js.map +1 -0
  19. package/build/engine/recoverable.d.ts +13 -0
  20. package/build/engine/recoverable.js +29 -0
  21. package/build/engine/recoverable.js.map +1 -0
  22. package/build/engine/session.d.ts +8 -32
  23. package/build/engine/session.js +0 -19
  24. package/build/engine/session.js.map +1 -1
  25. package/build/engine/structuring-validator.d.ts +15 -0
  26. package/build/engine/structuring-validator.js +64 -0
  27. package/build/engine/structuring-validator.js.map +1 -0
  28. package/build/engine/transport.d.ts +6 -3
  29. package/build/engine.d.ts +40 -39
  30. package/build/engine.js +100 -64
  31. package/build/engine.js.map +1 -1
  32. package/build/engines/anthropic/billing.js.map +1 -0
  33. package/build/engines/anthropic/message-codec.d.ts +22 -0
  34. package/build/engines/anthropic/message-codec.js +79 -0
  35. package/build/engines/anthropic/message-codec.js.map +1 -0
  36. package/build/engines/anthropic/message.d.ts +22 -0
  37. package/build/engines/anthropic/message.js +25 -0
  38. package/build/engines/anthropic/message.js.map +1 -0
  39. package/build/{compatible-engine.d/anthropic/choice-codec.d.ts → engines/anthropic/structuring-choice-codec.d.ts} +2 -2
  40. package/build/engines/anthropic/structuring-choice-codec.js +23 -0
  41. package/build/engines/anthropic/structuring-choice-codec.js.map +1 -0
  42. package/build/{api-types → engines}/anthropic/tool-codec.d.ts +5 -4
  43. package/build/{api-types → engines}/anthropic/tool-codec.js +16 -14
  44. package/build/engines/anthropic/tool-codec.js.map +1 -0
  45. package/build/engines/anthropic/transport.d.ts +37 -0
  46. package/build/{compatible-engine.d → engines}/anthropic/transport.js +8 -12
  47. package/build/engines/anthropic/transport.js.map +1 -0
  48. package/build/engines/anthropic.d.ts +22 -0
  49. package/build/engines/anthropic.js +46 -0
  50. package/build/engines/anthropic.js.map +1 -0
  51. package/build/engines/google/billing.js.map +1 -0
  52. package/build/engines/google/message-codec.d.ts +24 -0
  53. package/build/engines/google/message-codec.js +113 -0
  54. package/build/engines/google/message-codec.js.map +1 -0
  55. package/build/engines/google/message.d.ts +37 -0
  56. package/build/engines/google/message.js +58 -0
  57. package/build/engines/google/message.js.map +1 -0
  58. package/build/engines/google/restful-request.js.map +1 -0
  59. package/build/{compatible-engine.d/google/choice-codec.d.ts → engines/google/structuring-choice-codec.d.ts} +2 -2
  60. package/build/engines/google/structuring-choice-codec.js +23 -0
  61. package/build/engines/google/structuring-choice-codec.js.map +1 -0
  62. package/build/{api-types → engines}/google/tool-codec.d.ts +5 -4
  63. package/build/{api-types → engines}/google/tool-codec.js +15 -13
  64. package/build/engines/google/tool-codec.js.map +1 -0
  65. package/build/{native-engines.d → engines}/google/transport.d.ts +13 -14
  66. package/build/{native-engines.d → engines}/google/transport.js +18 -13
  67. package/build/engines/google/transport.js.map +1 -0
  68. package/build/engines/google.d.ts +41 -0
  69. package/build/engines/google.js +151 -0
  70. package/build/engines/google.js.map +1 -0
  71. package/build/engines/openai-chatcompletions/billing.js.map +1 -0
  72. package/build/engines/openai-chatcompletions/message-codec.d.ts +22 -0
  73. package/build/engines/openai-chatcompletions/message-codec.js +80 -0
  74. package/build/engines/openai-chatcompletions/message-codec.js.map +1 -0
  75. package/build/{compatible-engine.d/openai-chatcompletions/choice-codec.d.ts → engines/openai-chatcompletions/structuring-choice-codec.d.ts} +2 -2
  76. package/build/engines/openai-chatcompletions/structuring-choice-codec.js +22 -0
  77. package/build/engines/openai-chatcompletions/structuring-choice-codec.js.map +1 -0
  78. package/build/engines/openai-chatcompletions/tool-codec.d.ts +17 -0
  79. package/build/{api-types → engines}/openai-chatcompletions/tool-codec.js +19 -17
  80. package/build/engines/openai-chatcompletions/tool-codec.js.map +1 -0
  81. package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.d.ts +13 -15
  82. package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.js +8 -18
  83. package/build/engines/openai-chatcompletions/transport.js.map +1 -0
  84. package/build/engines/openai-chatcompletions.d.ts +22 -0
  85. package/build/engines/openai-chatcompletions.js +48 -0
  86. package/build/engines/openai-chatcompletions.js.map +1 -0
  87. package/build/engines/openai-responses/billing.js.map +1 -0
  88. package/build/engines/openai-responses/message-codec.d.ts +24 -0
  89. package/build/{compatible-engine.d → engines}/openai-responses/message-codec.js +55 -51
  90. package/build/engines/openai-responses/message-codec.js.map +1 -0
  91. package/build/engines/openai-responses/message.d.ts +25 -0
  92. package/build/engines/openai-responses/message.js +43 -0
  93. package/build/engines/openai-responses/message.js.map +1 -0
  94. package/build/engines/openai-responses/structuring-choice-codec.d.ts +3 -0
  95. package/build/engines/openai-responses/structuring-choice-codec.js +22 -0
  96. package/build/engines/openai-responses/structuring-choice-codec.js.map +1 -0
  97. package/build/engines/openai-responses/structuring-validator.d.ts +12 -0
  98. package/build/engines/openai-responses/structuring-validator.js +64 -0
  99. package/build/engines/openai-responses/structuring-validator.js.map +1 -0
  100. package/build/engines/openai-responses/tool-codec.d.ts +17 -0
  101. package/build/{api-types → engines}/openai-responses/tool-codec.js +19 -17
  102. package/build/engines/openai-responses/tool-codec.js.map +1 -0
  103. package/build/{native-engines.d → engines}/openai-responses/tool.d.ts +1 -3
  104. package/build/{native-engines.d → engines}/openai-responses/tool.js +3 -3
  105. package/build/engines/openai-responses/tool.js.map +1 -0
  106. package/build/{compatible-engine.d → engines}/openai-responses/transport.d.ts +16 -12
  107. package/build/{native-engines.d → engines}/openai-responses/transport.js +11 -9
  108. package/build/engines/openai-responses/transport.js.map +1 -0
  109. package/build/engines/openai-responses.d.ts +41 -0
  110. package/build/engines/openai-responses.js +134 -0
  111. package/build/engines/openai-responses.js.map +1 -0
  112. package/build/exports.d.ts +5 -5
  113. package/build/exports.js +5 -5
  114. package/build/exports.js.map +1 -1
  115. package/build/function.d.ts +7 -7
  116. package/build/function.js +19 -19
  117. package/build/function.js.map +1 -1
  118. package/build/repetition.d.ts +2 -2
  119. package/build/repetition.js +21 -20
  120. package/build/repetition.js.map +1 -1
  121. package/build/structuring-choice.d.ts +15 -0
  122. package/build/structuring-choice.js +18 -0
  123. package/build/structuring-choice.js.map +1 -0
  124. package/build/tsconfig.tsbuildinfo +1 -1
  125. package/build/verbatim/codec/declarations.js +0 -2
  126. package/build/verbatim/codec/declarations.js.map +1 -1
  127. package/build/verbatim/codec/quotation.js +0 -3
  128. package/build/verbatim/codec/quotation.js.map +1 -1
  129. package/build/verbatim/codec/request.js +4 -4
  130. package/build/verbatim/codec/request.js.map +1 -1
  131. package/build/verbatim/codec/response.js +0 -3
  132. package/build/verbatim/codec/response.js.map +1 -1
  133. package/package.json +2 -4
  134. package/build/api-types/anthropic/billing.js.map +0 -1
  135. package/build/api-types/anthropic/tool-codec.js.map +0 -1
  136. package/build/api-types/google/billing.js.map +0 -1
  137. package/build/api-types/google/restful-request.js.map +0 -1
  138. package/build/api-types/google/tool-codec.js.map +0 -1
  139. package/build/api-types/openai-chatcompletions/billing.js.map +0 -1
  140. package/build/api-types/openai-chatcompletions/tool-codec.d.ts +0 -16
  141. package/build/api-types/openai-chatcompletions/tool-codec.js.map +0 -1
  142. package/build/api-types/openai-responses/billing.js.map +0 -1
  143. package/build/api-types/openai-responses/tool-codec.d.ts +0 -16
  144. package/build/api-types/openai-responses/tool-codec.js.map +0 -1
  145. package/build/compatible-engine/session.d.ts +0 -56
  146. package/build/compatible-engine/session.js +0 -85
  147. package/build/compatible-engine/session.js.map +0 -1
  148. package/build/compatible-engine/structuring.d.ts +0 -36
  149. package/build/compatible-engine/structuring.js +0 -34
  150. package/build/compatible-engine/structuring.js.map +0 -1
  151. package/build/compatible-engine/validation.d.ts +0 -28
  152. package/build/compatible-engine/validation.js +0 -104
  153. package/build/compatible-engine/validation.js.map +0 -1
  154. package/build/compatible-engine.d/agentloop.d.ts +0 -12
  155. package/build/compatible-engine.d/agentloop.js +0 -52
  156. package/build/compatible-engine.d/agentloop.js.map +0 -1
  157. package/build/compatible-engine.d/anthropic/choice-codec.js +0 -27
  158. package/build/compatible-engine.d/anthropic/choice-codec.js.map +0 -1
  159. package/build/compatible-engine.d/anthropic/message-codec.d.ts +0 -34
  160. package/build/compatible-engine.d/anthropic/message-codec.js +0 -85
  161. package/build/compatible-engine.d/anthropic/message-codec.js.map +0 -1
  162. package/build/compatible-engine.d/anthropic/transport.d.ts +0 -38
  163. package/build/compatible-engine.d/anthropic/transport.js.map +0 -1
  164. package/build/compatible-engine.d/anthropic.d.ts +0 -25
  165. package/build/compatible-engine.d/anthropic.js +0 -47
  166. package/build/compatible-engine.d/anthropic.js.map +0 -1
  167. package/build/compatible-engine.d/google/choice-codec.js +0 -27
  168. package/build/compatible-engine.d/google/choice-codec.js.map +0 -1
  169. package/build/compatible-engine.d/google/message-codec.d.ts +0 -34
  170. package/build/compatible-engine.d/google/message-codec.js +0 -95
  171. package/build/compatible-engine.d/google/message-codec.js.map +0 -1
  172. package/build/compatible-engine.d/google/transport.d.ts +0 -35
  173. package/build/compatible-engine.d/google/transport.js +0 -97
  174. package/build/compatible-engine.d/google/transport.js.map +0 -1
  175. package/build/compatible-engine.d/google.d.ts +0 -25
  176. package/build/compatible-engine.d/google.js +0 -64
  177. package/build/compatible-engine.d/google.js.map +0 -1
  178. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +0 -31
  179. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +0 -1
  180. package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +0 -22
  181. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +0 -68
  182. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +0 -1
  183. package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +0 -1
  184. package/build/compatible-engine.d/openai-chatcompletions.d.ts +0 -25
  185. package/build/compatible-engine.d/openai-chatcompletions.js +0 -49
  186. package/build/compatible-engine.d/openai-chatcompletions.js.map +0 -1
  187. package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +0 -5
  188. package/build/compatible-engine.d/openai-responses/choice-codec.js +0 -30
  189. package/build/compatible-engine.d/openai-responses/choice-codec.js.map +0 -1
  190. package/build/compatible-engine.d/openai-responses/message-codec.d.ts +0 -36
  191. package/build/compatible-engine.d/openai-responses/message-codec.js.map +0 -1
  192. package/build/compatible-engine.d/openai-responses/transport.js +0 -91
  193. package/build/compatible-engine.d/openai-responses/transport.js.map +0 -1
  194. package/build/compatible-engine.d/openai-responses.d.ts +0 -25
  195. package/build/compatible-engine.d/openai-responses.js +0 -47
  196. package/build/compatible-engine.d/openai-responses.js.map +0 -1
  197. package/build/compatible-engine.d.ts +0 -27
  198. package/build/compatible-engine.js +0 -34
  199. package/build/compatible-engine.js.map +0 -1
  200. package/build/engine/validation.d.ts +0 -6
  201. package/build/engine/validation.js +0 -1
  202. package/build/engine/validation.js.map +0 -1
  203. package/build/native-engines.d/google/message-codec.d.ts +0 -26
  204. package/build/native-engines.d/google/message-codec.js +0 -70
  205. package/build/native-engines.d/google/message-codec.js.map +0 -1
  206. package/build/native-engines.d/google/session.d.ts +0 -58
  207. package/build/native-engines.d/google/session.js +0 -101
  208. package/build/native-engines.d/google/session.js.map +0 -1
  209. package/build/native-engines.d/google/transport.js.map +0 -1
  210. package/build/native-engines.d/google/validation.d.ts +0 -28
  211. package/build/native-engines.d/google/validation.js +0 -26
  212. package/build/native-engines.d/google/validation.js.map +0 -1
  213. package/build/native-engines.d/google.d/agentloop.d.ts +0 -12
  214. package/build/native-engines.d/google.d/agentloop.js +0 -57
  215. package/build/native-engines.d/google.d/agentloop.js.map +0 -1
  216. package/build/native-engines.d/google.d/exports.d.ts +0 -2
  217. package/build/native-engines.d/google.d/exports.js +0 -3
  218. package/build/native-engines.d/google.d/exports.js.map +0 -1
  219. package/build/native-engines.d/google.d.ts +0 -44
  220. package/build/native-engines.d/google.js +0 -100
  221. package/build/native-engines.d/google.js.map +0 -1
  222. package/build/native-engines.d/openai-responses/choice-codec.d.ts +0 -5
  223. package/build/native-engines.d/openai-responses/choice-codec.js +0 -30
  224. package/build/native-engines.d/openai-responses/choice-codec.js.map +0 -1
  225. package/build/native-engines.d/openai-responses/message-codec.d.ts +0 -25
  226. package/build/native-engines.d/openai-responses/message-codec.js +0 -99
  227. package/build/native-engines.d/openai-responses/message-codec.js.map +0 -1
  228. package/build/native-engines.d/openai-responses/session.d.ts +0 -61
  229. package/build/native-engines.d/openai-responses/session.js +0 -86
  230. package/build/native-engines.d/openai-responses/session.js.map +0 -1
  231. package/build/native-engines.d/openai-responses/structuring.d.ts +0 -19
  232. package/build/native-engines.d/openai-responses/structuring.js +0 -19
  233. package/build/native-engines.d/openai-responses/structuring.js.map +0 -1
  234. package/build/native-engines.d/openai-responses/tool.js.map +0 -1
  235. package/build/native-engines.d/openai-responses/transport.d.ts +0 -40
  236. package/build/native-engines.d/openai-responses/transport.js.map +0 -1
  237. package/build/native-engines.d/openai-responses/validation.d.ts +0 -28
  238. package/build/native-engines.d/openai-responses/validation.js +0 -101
  239. package/build/native-engines.d/openai-responses/validation.js.map +0 -1
  240. package/build/native-engines.d/openai-responses.d/agentloop.d.ts +0 -12
  241. package/build/native-engines.d/openai-responses.d/agentloop.js +0 -61
  242. package/build/native-engines.d/openai-responses.d/agentloop.js.map +0 -1
  243. package/build/native-engines.d/openai-responses.d/exports.d.ts +0 -2
  244. package/build/native-engines.d/openai-responses.d/exports.js +0 -3
  245. package/build/native-engines.d/openai-responses.d/exports.js.map +0 -1
  246. package/build/native-engines.d/openai-responses.d.ts +0 -46
  247. package/build/native-engines.d/openai-responses.js +0 -82
  248. package/build/native-engines.d/openai-responses.js.map +0 -1
  249. /package/build/{api-types → engines}/anthropic/billing.d.ts +0 -0
  250. /package/build/{api-types → engines}/anthropic/billing.js +0 -0
  251. /package/build/{api-types → engines}/google/billing.d.ts +0 -0
  252. /package/build/{api-types → engines}/google/billing.js +0 -0
  253. /package/build/{api-types → engines}/google/restful-request.d.ts +0 -0
  254. /package/build/{api-types → engines}/google/restful-request.js +0 -0
  255. /package/build/{api-types → engines}/openai-chatcompletions/billing.d.ts +0 -0
  256. /package/build/{api-types → engines}/openai-chatcompletions/billing.js +0 -0
  257. /package/build/{api-types → engines}/openai-responses/billing.d.ts +0 -0
  258. /package/build/{api-types → engines}/openai-responses/billing.js +0 -0
@@ -1,36 +1,40 @@
1
- import { type InferenceParams, type ProviderSpec } from '../../engine.ts';
2
- import { RoleMessage, type Session } from '../../compatible-engine/session.ts';
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 '../../api-types/openai-responses/tool-codec.ts';
9
- import type { Billing } from '../../api-types/openai-responses/billing.ts';
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 type { Structuring } from '../../compatible-engine/structuring.ts';
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<RoleMessage.User.From<fdm>, RoleMessage.Ai.From<fdm, vdm>, RoleMessage.Developer, Session.From<fdm, vdm>> {
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: InferenceParams;
16
- protected providerSpec: ProviderSpec;
16
+ protected inferenceParams: InferenceOptions;
17
+ protected providerSpec: ProviderSpecs;
17
18
  protected fdm: fdm;
18
19
  protected throttle: Throttle;
19
- protected choice: Structuring.Choice.From<fdm, vdm>;
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: InferenceParams;
30
- providerSpec: ProviderSpec;
32
+ inferenceParams: InferenceOptions;
33
+ providerSpec: ProviderSpecs;
31
34
  fdm: fdm;
32
35
  throttle: Throttle;
33
- choice: Structuring.Choice.From<fdm, vdm>;
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 ChoiceCodec from "./choice-codec.js";
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
- choice;
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.choice = options.choice;
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(this.fdm);
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 ? ChoiceCodec.encode(this.choice) : undefined,
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(event.message, { cause: event });
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":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,KAAK,sBAAsB,MAAM,+BAA+B,CAAC;AAGxE,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGjC,MAAM,OAAO,SAAS;IAIR,MAAM,CAAS;IACf,eAAe,CAAmB;IAClC,YAAY,CAAgB;IAC5B,GAAG,CAAM;IACT,QAAQ,CAAW;IACnB,iBAAiB,CAAoB;IACrC,UAAU,CAAU;IACpB,YAAY,CAAyB;IACrC,SAAS,CAAiB;IAC1B,OAAO,CAAU;IAE3B,YAAmB,OAAoC;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACrB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO;YACrC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;YACnC,KAAK,EAAE,MAAM,CAAC,KAAgC;YAC9C,YAAY,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE;SAChE,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,CAAC;IAES,UAAU,CAChB,OAA+B;QAE/B,MAAM,KAAK,GAA4B,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,CAAC;QACrF,IAAI,IAAI,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QACzD,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK;YACjC,OAAO,EAAE,CAAC,6BAA6B,CAAC;YACxC,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACpG,YAAY,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC5G,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACvC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7F,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;YACrF,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB;SAC5C,CAAC;IACN,CAAC;IAES,YAAY,CAAC,MAA6C;QAChE,KAAK,MAAM,IAAI,IAAI,MAAM;YACrB,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,WAAW,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe;gBACpC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;gBACrC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC,CAAA,CAAC;;gBACjC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,KAAK,CACd,KAAuB,EACvB,OAA+B,EAC/B,MAAoB;QAEpB,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,QAAQ,GAAqC,IAAI,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB;gBACnC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;iBACzB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;gBACzC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;iBACzB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;gBACrC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;iBACzB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAC3B,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QACxC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC,CAAA,CAAC;;YACnC,MAAM,IAAI,WAAW,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3E,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAE9C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;CACJ"}
@@ -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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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oCAAoC,CAAC;AACnD,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,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"}
@@ -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(fc: Omit<Call<fd>, never>);
50
- static of<fdu extends Function.Decl.Proto>(fc: Function.Call.Options.Of<fdu>): Function.Call.Of<fdu>;
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(fr: Omit<Function.Response<fd>, never>);
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(fr: Function.Response.Successful.Options<fd>);
73
- static of<fdu extends Function.Decl.Proto>(fr: Function.Response.Successful.Options.Of<fdu>): Function.Response.Successful.Of<fdu>;
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(fr: Function.Response.Failed.Options<fd>);
88
- static of<fdu extends Function.Decl.Proto>(fr: Function.Response.Failed.Options.Of<fdu>): Function.Response.Failed.Of<fdu>;
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(fc) {
9
- this.id = fc.id;
10
- this.name = fc.name;
11
- this.args = fc.args;
8
+ constructor(fcall) {
9
+ this.id = fcall.id;
10
+ this.name = fcall.name;
11
+ this.args = fcall.args;
12
12
  }
13
- static of(fc) {
14
- return new Function.Call(fc);
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(fr) {
22
- this.id = fr.id;
23
- this.name = fr.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(fr) {
31
- super(fr);
32
- this.text = fr.text;
30
+ constructor(fres) {
31
+ super(fres);
32
+ this.text = fres.text;
33
33
  }
34
- static of(fr) {
35
- return new Function.Response.Successful(fr);
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(fr) {
42
- super(fr);
43
- this.error = fr.error;
41
+ constructor(fres) {
42
+ super(fres);
43
+ this.error = fres.error;
44
44
  }
45
- static of(fr) {
46
- return new Function.Response.Failed(fr);
45
+ static of(fres) {
46
+ return new Function.Response.Failed(fres);
47
47
  }
48
48
  }
49
49
  Response.Failed = Failed;
@@ -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,EAAyB;YAC3C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QACxB,CAAC;QACM,MAAM,CAAC,EAAE,CACZ,EAAiC;YAEjC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAA0B,CAAC;QAC1D,CAAC;KAEJ;IAhBY,aAAI,OAgBhB,CAAA;IAqBD,MAAsB,QAAQ;QACnB,EAAE,CAAU;QACZ,IAAI,CAAa;QACxB,YAAsB,EAAsC;YACxD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QACxB,CAAC;KACJ;IAPqB,iBAAQ,WAO7B,CAAA;IACD,WAAiB,QAAQ;QAQrB,MAAa,UAAkD,SAAQ,QAAQ,CAAC,QAAY;YAEjF,IAAI,CAAS;YACpB,YAAsB,EAA4C;gBAC9D,KAAK,CAAC,EAAE,CAAC,CAAC;gBACV,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YACxB,CAAC;YACM,MAAM,CAAC,EAAE,CACZ,EAAgD;gBAEhD,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAyC,CAAC;YACxF,CAAC;SACJ;QAZY,mBAAU,aAYtB,CAAA;QAoBD,MAAa,MAA8C,SAAQ,QAAQ,CAAC,QAAY;YAE7E,KAAK,CAAS;YACrB,YAAsB,EAAwC;gBAC1D,KAAK,CAAC,EAAE,CAAC,CAAC;gBACV,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;YAC1B,CAAC;YACM,MAAM,CAAC,EAAE,CACZ,EAA4C;gBAE5C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAqC,CAAC;YAChF,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"}
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"}
@@ -1,2 +1,2 @@
1
- export declare function isRepeating(str: string, threshold?: number): boolean;
2
- export declare function diversity(str: string): number;
1
+ export declare function isRepeating(text: string, threshold?: number): boolean;
2
+ export declare function diversity(text: string): number;
@@ -1,54 +1,55 @@
1
- export function isRepeating(str, threshold = .9) {
2
- return str.length >= 1024 && diversity(str) < threshold;
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(str) {
5
- const sa = makeSuffixArray(str);
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 = str.length * (str.length + 1) / 2;
10
+ const total = text.length * (text.length + 1) / 2;
10
11
  let distinct = total;
11
- for (const x of makeHeight(str, sa, rk))
12
+ for (const x of makeHeight(text, sa, rk))
12
13
  distinct -= x;
13
14
  return distinct / total;
14
15
  }
15
- function makeSuffixArray(str) {
16
- const sa = [...new Array(str.length + 1).keys()];
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 < str.length; i++)
19
- rank[i] = str.charCodeAt(i) + 1;
20
- rank[str.length] = 0;
21
- for (let step = 1; step <= str.length; step <<= 1) {
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 <= str.length ? rank[lhs + step] : -1;
26
- const rnext = rhs + step <= str.length ? rank[rhs + step] : -1;
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 <= str.length ? rank[lhs + step] : -1;
34
- const rv = rhs + step <= str.length ? rank[rhs + step] : -1;
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]] === str.length)
39
+ if (rank[sa[sa.length - 1]] === text.length)
39
40
  break;
40
41
  }
41
42
  return sa;
42
43
  }
43
- function makeHeight(str, sa, rk) {
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 <= str.length; 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 < str.length && j + k < str.length && str[i + k] === str[j + 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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repetition.js","sourceRoot":"","sources":["../src/repetition.ts"],"names":[],"mappings":"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"}
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"}