@agentick/core 0.0.1 → 0.1.9

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 (160) hide show
  1. package/dist/.tsbuildinfo.build +1 -1
  2. package/package.json +8 -3
  3. package/dist/.tsbuildinfo +0 -1
  4. package/dist/agent.d.ts +0 -32
  5. package/dist/agent.d.ts.map +0 -1
  6. package/dist/agent.js +0 -26
  7. package/dist/agent.js.map +0 -1
  8. package/dist/aidk-instance.d.ts +0 -294
  9. package/dist/aidk-instance.d.ts.map +0 -1
  10. package/dist/aidk-instance.js +0 -340
  11. package/dist/aidk-instance.js.map +0 -1
  12. package/dist/compiler/content-block-registry.d.ts +0 -11
  13. package/dist/compiler/content-block-registry.d.ts.map +0 -1
  14. package/dist/compiler/content-block-registry.js +0 -312
  15. package/dist/compiler/content-block-registry.js.map +0 -1
  16. package/dist/compiler/extractors.d.ts +0 -68
  17. package/dist/compiler/extractors.d.ts.map +0 -1
  18. package/dist/compiler/extractors.js +0 -547
  19. package/dist/compiler/extractors.js.map +0 -1
  20. package/dist/compiler/fiber.d.ts +0 -61
  21. package/dist/compiler/fiber.d.ts.map +0 -1
  22. package/dist/compiler/fiber.js +0 -244
  23. package/dist/compiler/fiber.js.map +0 -1
  24. package/dist/component/tentickle-component.d.ts +0 -185
  25. package/dist/component/tentickle-component.d.ts.map +0 -1
  26. package/dist/component/tentickle-component.js +0 -182
  27. package/dist/component/tentickle-component.js.map +0 -1
  28. package/dist/core/channel-helpers.d.ts +0 -31
  29. package/dist/core/channel-helpers.d.ts.map +0 -1
  30. package/dist/core/channel-helpers.js +0 -62
  31. package/dist/core/channel-helpers.js.map +0 -1
  32. package/dist/core/channel.d.ts +0 -164
  33. package/dist/core/channel.d.ts.map +0 -1
  34. package/dist/core/channel.js +0 -199
  35. package/dist/core/channel.js.map +0 -1
  36. package/dist/core/context.d.ts +0 -412
  37. package/dist/core/context.d.ts.map +0 -1
  38. package/dist/core/context.js +0 -290
  39. package/dist/core/context.js.map +0 -1
  40. package/dist/core/event-buffer.d.ts +0 -212
  41. package/dist/core/event-buffer.d.ts.map +0 -1
  42. package/dist/core/event-buffer.js +0 -346
  43. package/dist/core/event-buffer.js.map +0 -1
  44. package/dist/core/execution-helpers.d.ts +0 -179
  45. package/dist/core/execution-helpers.d.ts.map +0 -1
  46. package/dist/core/execution-helpers.js +0 -212
  47. package/dist/core/execution-helpers.js.map +0 -1
  48. package/dist/core/execution-tracker.d.ts +0 -53
  49. package/dist/core/execution-tracker.d.ts.map +0 -1
  50. package/dist/core/execution-tracker.js +0 -309
  51. package/dist/core/execution-tracker.js.map +0 -1
  52. package/dist/core/index.d.ts +0 -58
  53. package/dist/core/index.d.ts.map +0 -1
  54. package/dist/core/index.js +0 -58
  55. package/dist/core/index.js.map +0 -1
  56. package/dist/core/logger.d.ts +0 -341
  57. package/dist/core/logger.d.ts.map +0 -1
  58. package/dist/core/logger.js +0 -346
  59. package/dist/core/logger.js.map +0 -1
  60. package/dist/core/metrics-helpers.d.ts +0 -40
  61. package/dist/core/metrics-helpers.d.ts.map +0 -1
  62. package/dist/core/metrics-helpers.js +0 -72
  63. package/dist/core/metrics-helpers.js.map +0 -1
  64. package/dist/core/otel-provider.d.ts +0 -54
  65. package/dist/core/otel-provider.d.ts.map +0 -1
  66. package/dist/core/otel-provider.js +0 -107
  67. package/dist/core/otel-provider.js.map +0 -1
  68. package/dist/core/procedure-graph.d.ts +0 -136
  69. package/dist/core/procedure-graph.d.ts.map +0 -1
  70. package/dist/core/procedure-graph.js +0 -272
  71. package/dist/core/procedure-graph.js.map +0 -1
  72. package/dist/core/procedure.d.ts +0 -755
  73. package/dist/core/procedure.d.ts.map +0 -1
  74. package/dist/core/procedure.js +0 -899
  75. package/dist/core/procedure.js.map +0 -1
  76. package/dist/core/stream.d.ts +0 -106
  77. package/dist/core/stream.d.ts.map +0 -1
  78. package/dist/core/stream.js +0 -186
  79. package/dist/core/stream.js.map +0 -1
  80. package/dist/core/telemetry.d.ts +0 -182
  81. package/dist/core/telemetry.d.ts.map +0 -1
  82. package/dist/core/telemetry.js +0 -124
  83. package/dist/core/telemetry.js.map +0 -1
  84. package/dist/engine/execution-graph.d.ts +0 -104
  85. package/dist/engine/execution-graph.d.ts.map +0 -1
  86. package/dist/engine/execution-graph.js +0 -257
  87. package/dist/engine/execution-graph.js.map +0 -1
  88. package/dist/hooks/policy-context.d.ts.map +0 -1
  89. package/dist/jsx/components/agent.d.ts +0 -64
  90. package/dist/jsx/components/agent.d.ts.map +0 -1
  91. package/dist/jsx/components/agent.js +0 -80
  92. package/dist/jsx/components/agent.js.map +0 -1
  93. package/dist/model/simple-adapter.d.ts +0 -176
  94. package/dist/model/simple-adapter.d.ts.map +0 -1
  95. package/dist/model/simple-adapter.js +0 -264
  96. package/dist/model/simple-adapter.js.map +0 -1
  97. package/dist/state/boundary.d.ts +0 -347
  98. package/dist/state/boundary.d.ts.map +0 -1
  99. package/dist/state/boundary.js +0 -341
  100. package/dist/state/boundary.js.map +0 -1
  101. package/dist/state/context.d.ts +0 -138
  102. package/dist/state/context.d.ts.map +0 -1
  103. package/dist/state/context.js +0 -139
  104. package/dist/state/context.js.map +0 -1
  105. package/dist/state/hooks.d.ts +0 -798
  106. package/dist/state/hooks.d.ts.map +0 -1
  107. package/dist/state/hooks.js +0 -1437
  108. package/dist/state/hooks.js.map +0 -1
  109. package/dist/state/index.d.ts +0 -72
  110. package/dist/state/index.d.ts.map +0 -1
  111. package/dist/state/index.js +0 -73
  112. package/dist/state/index.js.map +0 -1
  113. package/dist/state/signal.d.ts +0 -223
  114. package/dist/state/signal.d.ts.map +0 -1
  115. package/dist/state/signal.js +0 -699
  116. package/dist/state/signal.js.map +0 -1
  117. package/dist/state/use-state.d.ts +0 -210
  118. package/dist/state/use-state.d.ts.map +0 -1
  119. package/dist/state/use-state.js +0 -327
  120. package/dist/state/use-state.js.map +0 -1
  121. package/dist/tentickle-instance.d.ts +0 -285
  122. package/dist/tentickle-instance.d.ts.map +0 -1
  123. package/dist/tentickle-instance.js +0 -700
  124. package/dist/tentickle-instance.js.map +0 -1
  125. package/dist/testing/test-model.d.ts +0 -132
  126. package/dist/testing/test-model.d.ts.map +0 -1
  127. package/dist/testing/test-model.js +0 -260
  128. package/dist/testing/test-model.js.map +0 -1
  129. package/dist/v2/reconciler/host-config.d.ts +0 -31
  130. package/dist/v2/reconciler/host-config.d.ts.map +0 -1
  131. package/dist/v2/reconciler/host-config.js +0 -197
  132. package/dist/v2/reconciler/host-config.js.map +0 -1
  133. package/dist/v2/reconciler/index.d.ts +0 -7
  134. package/dist/v2/reconciler/index.d.ts.map +0 -1
  135. package/dist/v2/reconciler/index.js +0 -7
  136. package/dist/v2/reconciler/index.js.map +0 -1
  137. package/dist/v2/reconciler/reconciler.d.ts +0 -39
  138. package/dist/v2/reconciler/reconciler.d.ts.map +0 -1
  139. package/dist/v2/reconciler/reconciler.js +0 -54
  140. package/dist/v2/reconciler/reconciler.js.map +0 -1
  141. package/dist/v2/reconciler/types.d.ts +0 -64
  142. package/dist/v2/reconciler/types.d.ts.map +0 -1
  143. package/dist/v2/reconciler/types.js +0 -20
  144. package/dist/v2/reconciler/types.js.map +0 -1
  145. package/dist/v2/renderers/index.d.ts +0 -7
  146. package/dist/v2/renderers/index.d.ts.map +0 -1
  147. package/dist/v2/renderers/index.js +0 -7
  148. package/dist/v2/renderers/index.js.map +0 -1
  149. package/dist/v2/renderers/markdown.d.ts +0 -16
  150. package/dist/v2/renderers/markdown.d.ts.map +0 -1
  151. package/dist/v2/renderers/markdown.js +0 -65
  152. package/dist/v2/renderers/markdown.js.map +0 -1
  153. package/dist/v2/renderers/types.d.ts +0 -26
  154. package/dist/v2/renderers/types.d.ts.map +0 -1
  155. package/dist/v2/renderers/types.js +0 -6
  156. package/dist/v2/renderers/types.js.map +0 -1
  157. package/dist/v2/renderers/xml.d.ts +0 -17
  158. package/dist/v2/renderers/xml.d.ts.map +0 -1
  159. package/dist/v2/renderers/xml.js +0 -73
  160. package/dist/v2/renderers/xml.js.map +0 -1
@@ -1,176 +0,0 @@
1
- /**
2
- * Simple Adapter - Minimal API for creating model adapters
3
- *
4
- * This provides the simplest possible API for creating adapters.
5
- * Adapters only need to implement:
6
- * 1. prepareInput - convert engine input to provider format
7
- * 2. mapChunk - convert provider chunk to AdapterDelta
8
- * 3. execute/executeStream - call the provider
9
- *
10
- * The framework handles everything else (accumulation, events, etc.).
11
- *
12
- * @module tentickle/model/simple-adapter
13
- */
14
- import type { COMInput } from "../com/types";
15
- import type { EngineResponse } from "../engine/engine-response";
16
- import type { EngineModel, ModelInput, ModelOutput, ModelMetadata } from "./model";
17
- import { type AdapterDelta, type ChunkMapping } from "./stream-accumulator";
18
- /**
19
- * Options for createSimpleAdapter.
20
- *
21
- * This is the minimal interface for creating an adapter. Compare to the
22
- * full createModel API which requires implementing transformers.processChunk,
23
- * transformers.processOutput, transformers.processStream, etc.
24
- *
25
- * @example
26
- * ```typescript
27
- * const model = createSimpleAdapter({
28
- * metadata: { id: 'openai:gpt-4', provider: 'openai', capabilities: [{ stream: true, toolCalls: true }] },
29
- *
30
- * prepareInput: (input) => ({
31
- * model: 'gpt-4',
32
- * messages: input.messages.map(toOpenAIMessage),
33
- * tools: input.tools?.map(toOpenAITool),
34
- * }),
35
- *
36
- * mapChunk: (chunk) => {
37
- * if (chunk.choices?.[0]?.delta?.content) {
38
- * return { type: 'text', delta: chunk.choices[0].delta.content };
39
- * }
40
- * return null;
41
- * },
42
- *
43
- * execute: async (input) => openai.chat.completions.create(input),
44
- * executeStream: (input) => openai.chat.completions.create({ ...input, stream: true }),
45
- * });
46
- * ```
47
- */
48
- export interface SimpleAdapterOptions<TProviderInput, TProviderOutput, TChunk> {
49
- /** Model metadata */
50
- metadata: ModelMetadata;
51
- /**
52
- * Convert engine ModelInput to provider-specific input format.
53
- * This is the only complex transformation you need to implement.
54
- */
55
- prepareInput: (input: ModelInput) => TProviderInput | Promise<TProviderInput>;
56
- /**
57
- * Map a provider stream chunk to an AdapterDelta.
58
- * Return null to skip/ignore the chunk.
59
- *
60
- * This replaces the 200+ line switch statement in typical adapters.
61
- *
62
- * @example
63
- * ```typescript
64
- * mapChunk: (chunk) => {
65
- * if (chunk.type === 'text-delta') return { type: 'text', delta: chunk.text };
66
- * if (chunk.type === 'tool-call') return { type: 'tool_call', id: chunk.id, name: chunk.name, input: chunk.args };
67
- * if (chunk.type === 'finish') return { type: 'message_end', stopReason: StopReason.STOP };
68
- * return null;
69
- * }
70
- * ```
71
- */
72
- mapChunk: (chunk: TChunk) => AdapterDelta | null;
73
- /**
74
- * Execute non-streaming generation.
75
- */
76
- execute: (input: TProviderInput) => Promise<TProviderOutput>;
77
- /**
78
- * Execute streaming generation.
79
- * Returns an async iterable of provider chunks.
80
- */
81
- executeStream?: (input: TProviderInput) => AsyncIterable<TChunk>;
82
- /**
83
- * Convert non-streaming provider output to ModelOutput.
84
- * Optional - if not provided, streaming will be used and accumulated.
85
- */
86
- processOutput?: (output: TProviderOutput) => ModelOutput | Promise<ModelOutput>;
87
- /**
88
- * Custom fromEngineState (optional).
89
- * Converts COMInput to ModelInput before prepareInput.
90
- * Most adapters don't need this - the default handles standard transformations.
91
- */
92
- fromEngineState?: (input: COMInput) => ModelInput | Promise<ModelInput>;
93
- /**
94
- * Custom toEngineState (optional).
95
- * Converts ModelOutput to EngineResponse.
96
- * Most adapters don't need this - the default handles standard transformations.
97
- */
98
- toEngineState?: (output: ModelOutput) => EngineResponse | Promise<EngineResponse>;
99
- }
100
- /**
101
- * Declarative options using ChunkMapping instead of mapChunk function.
102
- */
103
- export interface DeclarativeAdapterOptions<TProviderInput, TProviderOutput, TChunk> extends Omit<SimpleAdapterOptions<TProviderInput, TProviderOutput, TChunk>, "mapChunk"> {
104
- /**
105
- * Declarative chunk mapping.
106
- * Alternative to mapChunk for simple cases.
107
- */
108
- chunkMapping: ChunkMapping<TChunk>;
109
- }
110
- /**
111
- * Create an adapter with the simplest possible API.
112
- *
113
- * This wraps createLanguageModel with sensible defaults:
114
- * - Uses StreamAccumulator for stream handling (no manual accumulation)
115
- * - Uses default fromEngineState/toEngineState (standard transformations)
116
- * - Automatically generates StreamEvents from AdapterDeltas
117
- *
118
- * @example
119
- * ```typescript
120
- * import { createSimpleAdapter, StopReason } from '@tentickle/core/model';
121
- * import { openai } from '@ai-sdk/openai';
122
- *
123
- * const model = createSimpleAdapter({
124
- * metadata: {
125
- * id: 'ai-sdk:gpt-4',
126
- * provider: 'ai-sdk',
127
- * capabilities: [{ stream: true, toolCalls: true }],
128
- * },
129
- *
130
- * prepareInput: (input) => ({
131
- * model: openai('gpt-4'),
132
- * messages: toAiSdkMessages(input.messages),
133
- * tools: convertToolsToToolSet(input.tools),
134
- * }),
135
- *
136
- * mapChunk: (chunk) => {
137
- * switch (chunk.type) {
138
- * case 'text-delta': return { type: 'text', delta: chunk.text };
139
- * case 'reasoning-delta': return { type: 'reasoning', delta: chunk.text };
140
- * case 'tool-call': return { type: 'tool_call', id: chunk.toolCallId, name: chunk.toolName, input: chunk.args };
141
- * case 'finish': return { type: 'message_end', stopReason: StopReason.STOP, usage: chunk.totalUsage };
142
- * default: return null;
143
- * }
144
- * },
145
- *
146
- * execute: (input) => generateText(input),
147
- * executeStream: (input) => streamText(input).fullStream,
148
- * });
149
- * ```
150
- */
151
- export declare function createSimpleAdapter<TProviderInput, TProviderOutput, TChunk>(options: SimpleAdapterOptions<TProviderInput, TProviderOutput, TChunk>): EngineModel<ModelInput, ModelOutput>;
152
- /**
153
- * Create an adapter using declarative chunk mapping.
154
- *
155
- * This is even simpler than createSimpleAdapter for cases where
156
- * chunk mapping can be expressed declaratively.
157
- *
158
- * @example
159
- * ```typescript
160
- * const model = createDeclarativeAdapter({
161
- * metadata: { id: 'my-model', ... },
162
- * prepareInput: (input) => ({ ... }),
163
- * execute: (input) => provider.call(input),
164
- * executeStream: (input) => provider.stream(input),
165
- * chunkMapping: {
166
- * text: { type: 'text-delta', extract: (c) => c.text },
167
- * toolCall: { type: 'tool-call', extract: (c) => ({ id: c.id, name: c.name, input: c.args }) },
168
- * messageEnd: { type: 'finish', extract: (c) => ({ stopReason: StopReason.STOP }) },
169
- * },
170
- * });
171
- * ```
172
- */
173
- export declare function createDeclarativeAdapter<TProviderInput, TProviderOutput, TChunk extends {
174
- type: string;
175
- }>(options: DeclarativeAdapterOptions<TProviderInput, TProviderOutput, TChunk>): EngineModel<ModelInput, ModelOutput>;
176
- //# sourceMappingURL=simple-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple-adapter.d.ts","sourceRoot":"","sources":["../../src/model/simple-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnF,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAQ9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,oBAAoB,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM;IAC3E,qBAAqB;IACrB,QAAQ,EAAE,aAAa,CAAC;IAExB;;;OAGG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9E;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,GAAG,IAAI,CAAC;IAEjD;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAE7D;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC;IAEjE;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhF;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAExE;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACnF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,CAAE,SAAQ,IAAI,CAC9F,oBAAoB,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,CAAC,EAC7D,UAAU,CACX;IACC;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACpC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,EACzE,OAAO,EAAE,oBAAoB,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,CAAC,GACrE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAwGtC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EACd,eAAe,EACf,MAAM,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAE/B,OAAO,EAAE,yBAAyB,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,CAAC,GAC1E,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAQtC"}
@@ -1,264 +0,0 @@
1
- /**
2
- * Simple Adapter - Minimal API for creating model adapters
3
- *
4
- * This provides the simplest possible API for creating adapters.
5
- * Adapters only need to implement:
6
- * 1. prepareInput - convert engine input to provider format
7
- * 2. mapChunk - convert provider chunk to AdapterDelta
8
- * 3. execute/executeStream - call the provider
9
- *
10
- * The framework handles everything else (accumulation, events, etc.).
11
- *
12
- * @module tentickle/model/simple-adapter
13
- */
14
- import { createLanguageModel } from "./model";
15
- import { StreamAccumulator, createChunkMapper, } from "./stream-accumulator";
16
- import { fromEngineState, toEngineState } from "./utils/language-model";
17
- // ============================================================================
18
- // Factory Functions
19
- // ============================================================================
20
- /**
21
- * Create an adapter with the simplest possible API.
22
- *
23
- * This wraps createLanguageModel with sensible defaults:
24
- * - Uses StreamAccumulator for stream handling (no manual accumulation)
25
- * - Uses default fromEngineState/toEngineState (standard transformations)
26
- * - Automatically generates StreamEvents from AdapterDeltas
27
- *
28
- * @example
29
- * ```typescript
30
- * import { createSimpleAdapter, StopReason } from '@tentickle/core/model';
31
- * import { openai } from '@ai-sdk/openai';
32
- *
33
- * const model = createSimpleAdapter({
34
- * metadata: {
35
- * id: 'ai-sdk:gpt-4',
36
- * provider: 'ai-sdk',
37
- * capabilities: [{ stream: true, toolCalls: true }],
38
- * },
39
- *
40
- * prepareInput: (input) => ({
41
- * model: openai('gpt-4'),
42
- * messages: toAiSdkMessages(input.messages),
43
- * tools: convertToolsToToolSet(input.tools),
44
- * }),
45
- *
46
- * mapChunk: (chunk) => {
47
- * switch (chunk.type) {
48
- * case 'text-delta': return { type: 'text', delta: chunk.text };
49
- * case 'reasoning-delta': return { type: 'reasoning', delta: chunk.text };
50
- * case 'tool-call': return { type: 'tool_call', id: chunk.toolCallId, name: chunk.toolName, input: chunk.args };
51
- * case 'finish': return { type: 'message_end', stopReason: StopReason.STOP, usage: chunk.totalUsage };
52
- * default: return null;
53
- * }
54
- * },
55
- *
56
- * execute: (input) => generateText(input),
57
- * executeStream: (input) => streamText(input).fullStream,
58
- * });
59
- * ```
60
- */
61
- export function createSimpleAdapter(options) {
62
- const { metadata, prepareInput, mapChunk, execute, executeStream, processOutput } = options;
63
- return createLanguageModel({
64
- metadata,
65
- transformers: {
66
- prepareInput,
67
- processOutput: processOutput
68
- ? processOutput
69
- : // If no processOutput, we'll use streaming and accumulate
70
- undefined,
71
- processChunk: (chunk) => {
72
- // This won't be called directly when using StreamAccumulator
73
- // but createLanguageModel requires it for backward compatibility
74
- const delta = mapChunk(chunk);
75
- if (!delta) {
76
- // Return a no-op event for ignored chunks
77
- return {
78
- type: "content_delta",
79
- id: `ignored_${Date.now()}`,
80
- tick: 1,
81
- timestamp: new Date().toISOString(),
82
- blockType: "text",
83
- blockIndex: 0,
84
- delta: "",
85
- };
86
- }
87
- // For simple cases, create basic events
88
- // The real work is done in the custom stream handler below
89
- return createBasicEvent(delta);
90
- },
91
- // processStream aggregates events into ModelOutput (fallback path)
92
- processStream: (async (events) => {
93
- let text = "";
94
- const toolCalls = [];
95
- let stopReason = "unspecified";
96
- const usage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
97
- for (const event of events) {
98
- if (event.type === "content_delta" && "delta" in event) {
99
- text += event.delta;
100
- }
101
- if (event.type === "tool_call" && "callId" in event) {
102
- const tc = event;
103
- toolCalls.push({
104
- id: tc.callId,
105
- name: tc.name,
106
- input: tc.input || {},
107
- });
108
- }
109
- if (event.type === "message_end" && "usage" in event) {
110
- const endEvent = event;
111
- if (endEvent.usage) {
112
- usage.inputTokens = endEvent.usage.inputTokens || 0;
113
- usage.outputTokens = endEvent.usage.outputTokens || 0;
114
- usage.totalTokens = endEvent.usage.totalTokens || 0;
115
- }
116
- stopReason = endEvent.stopReason;
117
- }
118
- }
119
- return {
120
- model: metadata.id,
121
- createdAt: new Date().toISOString(),
122
- message: { role: "assistant", content: [{ type: "text", text }] },
123
- messages: [{ role: "assistant", content: [{ type: "text", text }] }],
124
- usage,
125
- toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
126
- stopReason,
127
- raw: events,
128
- };
129
- }), // Cast needed due to TChunk generic
130
- },
131
- executors: {
132
- execute: async (input) => {
133
- const result = await execute(input);
134
- return result;
135
- },
136
- // executeStream wraps provider stream with StreamAccumulator
137
- executeStream: executeStream
138
- ? ((input) => {
139
- return createAccumulatedStream(executeStream(input), mapChunk, metadata.id);
140
- }) // Cast needed: we return StreamEvent, not TChunk
141
- : undefined,
142
- },
143
- fromEngineState: options.fromEngineState
144
- ? async (input) => options.fromEngineState(input)
145
- : async (input) => {
146
- // Use default transformation with model metadata for config
147
- const modelInstance = { metadata };
148
- return fromEngineState(input, undefined, modelInstance);
149
- },
150
- toEngineState: options.toEngineState
151
- ? async (output) => options.toEngineState(output)
152
- : (output) => toEngineState(output),
153
- });
154
- }
155
- /**
156
- * Create an adapter using declarative chunk mapping.
157
- *
158
- * This is even simpler than createSimpleAdapter for cases where
159
- * chunk mapping can be expressed declaratively.
160
- *
161
- * @example
162
- * ```typescript
163
- * const model = createDeclarativeAdapter({
164
- * metadata: { id: 'my-model', ... },
165
- * prepareInput: (input) => ({ ... }),
166
- * execute: (input) => provider.call(input),
167
- * executeStream: (input) => provider.stream(input),
168
- * chunkMapping: {
169
- * text: { type: 'text-delta', extract: (c) => c.text },
170
- * toolCall: { type: 'tool-call', extract: (c) => ({ id: c.id, name: c.name, input: c.args }) },
171
- * messageEnd: { type: 'finish', extract: (c) => ({ stopReason: StopReason.STOP }) },
172
- * },
173
- * });
174
- * ```
175
- */
176
- export function createDeclarativeAdapter(options) {
177
- const { chunkMapping, ...rest } = options;
178
- const mapChunk = createChunkMapper(chunkMapping);
179
- return createSimpleAdapter({
180
- ...rest,
181
- mapChunk,
182
- });
183
- }
184
- // ============================================================================
185
- // Internal Helpers
186
- // ============================================================================
187
- /**
188
- * Create a basic StreamEvent from an AdapterDelta.
189
- * Used for backward compatibility with createLanguageModel.
190
- */
191
- function createBasicEvent(delta) {
192
- const base = {
193
- id: `evt_${Date.now()}`,
194
- tick: 1,
195
- timestamp: new Date().toISOString(),
196
- };
197
- switch (delta.type) {
198
- case "text":
199
- return {
200
- type: "content_delta",
201
- ...base,
202
- blockType: "text",
203
- blockIndex: 0,
204
- delta: delta.delta,
205
- };
206
- case "reasoning":
207
- return { type: "reasoning_delta", ...base, blockIndex: 0, delta: delta.delta };
208
- case "tool_call":
209
- return {
210
- type: "tool_call",
211
- ...base,
212
- callId: delta.id,
213
- name: delta.name,
214
- input: delta.input,
215
- blockIndex: 0,
216
- startedAt: base.timestamp,
217
- completedAt: base.timestamp,
218
- };
219
- case "message_start":
220
- return { type: "message_start", ...base, role: "assistant" };
221
- case "message_end":
222
- return {
223
- type: "message_end",
224
- ...base,
225
- stopReason: delta.stopReason,
226
- usage: delta.usage,
227
- };
228
- case "error":
229
- return {
230
- type: "error",
231
- ...base,
232
- error: {
233
- message: typeof delta.error === "string" ? delta.error : delta.error.message,
234
- code: delta.code,
235
- },
236
- };
237
- default:
238
- return {
239
- type: "content_delta",
240
- ...base,
241
- blockType: "text",
242
- blockIndex: 0,
243
- delta: "",
244
- };
245
- }
246
- }
247
- /**
248
- * Create an async iterable that uses StreamAccumulator to process chunks.
249
- */
250
- async function* createAccumulatedStream(providerStream, mapChunk, modelId) {
251
- const accumulator = new StreamAccumulator({ modelId });
252
- for await (const chunk of providerStream) {
253
- const delta = mapChunk(chunk);
254
- if (delta) {
255
- const events = accumulator.push(delta);
256
- for (const event of events) {
257
- yield event;
258
- }
259
- }
260
- }
261
- // If we never got a message_end, emit one now with accumulated content
262
- // This handles providers that don't send explicit end events
263
- }
264
- //# sourceMappingURL=simple-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple-adapter.js","sourceRoot":"","sources":["../../src/model/simple-adapter.ts"],"names":[],"mappings":"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"}