@agtlantis/core 0.5.0 → 0.6.0

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 (278) hide show
  1. package/README.md +18 -5
  2. package/dist/errors/index.d.ts +4 -0
  3. package/dist/errors/index.d.ts.map +1 -0
  4. package/dist/errors/index.js +3 -0
  5. package/dist/errors/index.js.map +1 -0
  6. package/dist/errors/types.d.ts +69 -0
  7. package/dist/errors/types.d.ts.map +1 -0
  8. package/dist/errors/types.js +116 -0
  9. package/dist/errors/types.js.map +1 -0
  10. package/dist/errors/utils.d.ts +17 -0
  11. package/dist/errors/utils.d.ts.map +1 -0
  12. package/dist/errors/utils.js +16 -0
  13. package/dist/errors/utils.js.map +1 -0
  14. package/dist/execution/constants.d.ts +7 -0
  15. package/dist/execution/constants.d.ts.map +1 -0
  16. package/dist/execution/constants.js +7 -0
  17. package/dist/execution/constants.js.map +1 -0
  18. package/dist/execution/index.d.ts +8 -0
  19. package/dist/execution/index.d.ts.map +1 -0
  20. package/dist/execution/index.js +7 -0
  21. package/dist/execution/index.js.map +1 -0
  22. package/dist/execution/mapping.d.ts +17 -0
  23. package/dist/execution/mapping.d.ts.map +1 -0
  24. package/dist/execution/mapping.js +197 -0
  25. package/dist/execution/mapping.js.map +1 -0
  26. package/dist/execution/shared.d.ts +86 -0
  27. package/dist/execution/shared.d.ts.map +1 -0
  28. package/dist/execution/shared.js +100 -0
  29. package/dist/execution/shared.js.map +1 -0
  30. package/dist/execution/simple-host.d.ts +56 -0
  31. package/dist/execution/simple-host.d.ts.map +1 -0
  32. package/dist/execution/simple-host.js +126 -0
  33. package/dist/execution/simple-host.js.map +1 -0
  34. package/dist/execution/streaming-host.d.ts +79 -0
  35. package/dist/execution/streaming-host.d.ts.map +1 -0
  36. package/dist/execution/streaming-host.js +276 -0
  37. package/dist/execution/streaming-host.js.map +1 -0
  38. package/dist/execution/testing/fixtures.d.ts +67 -0
  39. package/dist/execution/testing/fixtures.d.ts.map +1 -0
  40. package/dist/execution/testing/fixtures.js +145 -0
  41. package/dist/execution/testing/fixtures.js.map +1 -0
  42. package/dist/execution/testing/helpers.d.ts +218 -0
  43. package/dist/execution/testing/helpers.d.ts.map +1 -0
  44. package/dist/execution/testing/helpers.js +327 -0
  45. package/dist/execution/testing/helpers.js.map +1 -0
  46. package/dist/execution/testing/host-configs.d.ts +56 -0
  47. package/dist/execution/testing/host-configs.d.ts.map +1 -0
  48. package/dist/execution/testing/host-configs.js +154 -0
  49. package/dist/execution/testing/host-configs.js.map +1 -0
  50. package/dist/execution/testing/vitest-assertions.d.ts +102 -0
  51. package/dist/execution/testing/vitest-assertions.d.ts.map +1 -0
  52. package/dist/execution/testing/vitest-assertions.js +142 -0
  53. package/dist/execution/testing/vitest-assertions.js.map +1 -0
  54. package/dist/execution/types.d.ts +432 -0
  55. package/dist/execution/types.d.ts.map +1 -0
  56. package/dist/execution/types.js +2 -0
  57. package/dist/execution/types.js.map +1 -0
  58. package/dist/execution/utils.d.ts +68 -0
  59. package/dist/execution/utils.d.ts.map +1 -0
  60. package/dist/execution/utils.js +93 -0
  61. package/dist/execution/utils.js.map +1 -0
  62. package/dist/index.d.ts +10 -1506
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +9 -2979
  65. package/dist/index.js.map +1 -1
  66. package/dist/observability/index.d.ts +4 -0
  67. package/dist/observability/index.d.ts.map +1 -0
  68. package/dist/observability/index.js +2 -0
  69. package/dist/observability/index.js.map +1 -0
  70. package/dist/observability/logger.d.ts +161 -0
  71. package/dist/observability/logger.d.ts.map +1 -0
  72. package/dist/observability/logger.js +31 -0
  73. package/dist/observability/logger.js.map +1 -0
  74. package/dist/observability/types.d.ts +46 -0
  75. package/dist/observability/types.d.ts.map +1 -0
  76. package/dist/observability/types.js +2 -0
  77. package/dist/observability/types.js.map +1 -0
  78. package/dist/patterns/index.d.ts +2 -0
  79. package/dist/patterns/index.d.ts.map +1 -0
  80. package/dist/patterns/index.js +2 -0
  81. package/dist/patterns/index.js.map +1 -0
  82. package/dist/patterns/progressive/index.d.ts +2 -0
  83. package/dist/patterns/progressive/index.d.ts.map +1 -0
  84. package/dist/patterns/progressive/index.js +2 -0
  85. package/dist/patterns/progressive/index.js.map +1 -0
  86. package/dist/patterns/progressive/progressive-pattern.d.ts +174 -0
  87. package/dist/patterns/progressive/progressive-pattern.d.ts.map +1 -0
  88. package/dist/patterns/progressive/progressive-pattern.js +260 -0
  89. package/dist/patterns/progressive/progressive-pattern.js.map +1 -0
  90. package/dist/pricing/calculator.d.ts +71 -0
  91. package/dist/pricing/calculator.d.ts.map +1 -0
  92. package/dist/pricing/calculator.js +127 -0
  93. package/dist/pricing/calculator.js.map +1 -0
  94. package/dist/pricing/config.d.ts +61 -0
  95. package/dist/pricing/config.d.ts.map +1 -0
  96. package/dist/pricing/config.js +87 -0
  97. package/dist/pricing/config.js.map +1 -0
  98. package/dist/pricing/defaults.d.ts +29 -0
  99. package/dist/pricing/defaults.d.ts.map +1 -0
  100. package/dist/pricing/defaults.js +139 -0
  101. package/dist/pricing/defaults.js.map +1 -0
  102. package/dist/pricing/index.d.ts +40 -0
  103. package/dist/pricing/index.d.ts.map +1 -0
  104. package/dist/pricing/index.js +43 -0
  105. package/dist/pricing/index.js.map +1 -0
  106. package/dist/pricing/types.d.ts +96 -0
  107. package/dist/pricing/types.d.ts.map +1 -0
  108. package/dist/pricing/types.js +7 -0
  109. package/dist/pricing/types.js.map +1 -0
  110. package/dist/pricing/validator.d.ts +55 -0
  111. package/dist/pricing/validator.d.ts.map +1 -0
  112. package/dist/pricing/validator.js +84 -0
  113. package/dist/pricing/validator.js.map +1 -0
  114. package/dist/prompt/errors.d.ts +112 -0
  115. package/dist/prompt/errors.d.ts.map +1 -0
  116. package/dist/prompt/errors.js +174 -0
  117. package/dist/prompt/errors.js.map +1 -0
  118. package/dist/prompt/file-prompt-repository.d.ts +80 -0
  119. package/dist/prompt/file-prompt-repository.d.ts.map +1 -0
  120. package/dist/prompt/file-prompt-repository.js +287 -0
  121. package/dist/prompt/file-prompt-repository.js.map +1 -0
  122. package/dist/prompt/index.d.ts +34 -0
  123. package/dist/prompt/index.d.ts.map +1 -0
  124. package/dist/prompt/index.js +37 -0
  125. package/dist/prompt/index.js.map +1 -0
  126. package/dist/prompt/prompt-template.d.ts +64 -0
  127. package/dist/prompt/prompt-template.d.ts.map +1 -0
  128. package/dist/prompt/prompt-template.js +90 -0
  129. package/dist/prompt/prompt-template.js.map +1 -0
  130. package/dist/prompt/template.d.ts +23 -0
  131. package/dist/prompt/template.d.ts.map +1 -0
  132. package/dist/prompt/template.js +70 -0
  133. package/dist/prompt/template.js.map +1 -0
  134. package/dist/prompt/types.d.ts +148 -0
  135. package/dist/prompt/types.d.ts.map +1 -0
  136. package/dist/prompt/types.js +7 -0
  137. package/dist/prompt/types.js.map +1 -0
  138. package/dist/provider/base-file-manager.d.ts +14 -0
  139. package/dist/provider/base-file-manager.d.ts.map +1 -0
  140. package/dist/provider/base-file-manager.js +91 -0
  141. package/dist/provider/base-file-manager.js.map +1 -0
  142. package/dist/provider/base-provider.d.ts +41 -0
  143. package/dist/provider/base-provider.d.ts.map +1 -0
  144. package/dist/provider/base-provider.js +21 -0
  145. package/dist/provider/base-provider.js.map +1 -0
  146. package/dist/provider/file-cache.d.ts +14 -0
  147. package/dist/provider/file-cache.d.ts.map +1 -0
  148. package/dist/provider/file-cache.js +29 -0
  149. package/dist/provider/file-cache.js.map +1 -0
  150. package/dist/provider/file-source.d.ts +32 -0
  151. package/dist/provider/file-source.d.ts.map +1 -0
  152. package/dist/provider/file-source.js +180 -0
  153. package/dist/provider/file-source.js.map +1 -0
  154. package/dist/provider/file-utils.d.ts +5 -0
  155. package/dist/provider/file-utils.d.ts.map +1 -0
  156. package/dist/provider/file-utils.js +15 -0
  157. package/dist/provider/file-utils.js.map +1 -0
  158. package/dist/provider/google/factory.d.ts +107 -0
  159. package/dist/provider/google/factory.d.ts.map +1 -0
  160. package/dist/provider/google/factory.js +143 -0
  161. package/dist/provider/google/factory.js.map +1 -0
  162. package/dist/provider/google/file-manager.d.ts +10 -0
  163. package/dist/provider/google/file-manager.d.ts.map +1 -0
  164. package/dist/provider/google/file-manager.js +93 -0
  165. package/dist/provider/google/file-manager.js.map +1 -0
  166. package/dist/provider/google/index.d.ts +8 -0
  167. package/dist/provider/google/index.d.ts.map +1 -0
  168. package/dist/provider/google/index.js +10 -0
  169. package/dist/provider/google/index.js.map +1 -0
  170. package/dist/provider/hash.d.ts +3 -0
  171. package/dist/provider/hash.d.ts.map +1 -0
  172. package/dist/provider/hash.js +34 -0
  173. package/dist/provider/hash.js.map +1 -0
  174. package/dist/provider/index.d.ts +10 -0
  175. package/dist/provider/index.d.ts.map +1 -0
  176. package/dist/provider/index.js +12 -0
  177. package/dist/provider/index.js.map +1 -0
  178. package/dist/provider/noop-file-manager.d.ts +9 -0
  179. package/dist/provider/noop-file-manager.d.ts.map +1 -0
  180. package/dist/provider/noop-file-manager.js +28 -0
  181. package/dist/provider/noop-file-manager.js.map +1 -0
  182. package/dist/provider/openai/factory.d.ts +67 -0
  183. package/dist/provider/openai/factory.d.ts.map +1 -0
  184. package/dist/provider/openai/factory.js +100 -0
  185. package/dist/provider/openai/factory.js.map +1 -0
  186. package/dist/provider/openai/file-manager.d.ts +17 -0
  187. package/dist/provider/openai/file-manager.d.ts.map +1 -0
  188. package/dist/provider/openai/file-manager.js +108 -0
  189. package/dist/provider/openai/file-manager.js.map +1 -0
  190. package/dist/provider/openai/index.d.ts +8 -0
  191. package/dist/provider/openai/index.d.ts.map +1 -0
  192. package/dist/provider/openai/index.js +8 -0
  193. package/dist/provider/openai/index.js.map +1 -0
  194. package/dist/provider/types.d.ts +105 -0
  195. package/dist/provider/types.d.ts.map +1 -0
  196. package/dist/provider/types.js +19 -0
  197. package/dist/provider/types.js.map +1 -0
  198. package/dist/session/index.d.ts +7 -0
  199. package/dist/session/index.d.ts.map +1 -0
  200. package/dist/session/index.js +5 -0
  201. package/dist/session/index.js.map +1 -0
  202. package/dist/session/simple-session.d.ts +98 -0
  203. package/dist/session/simple-session.d.ts.map +1 -0
  204. package/dist/session/simple-session.js +299 -0
  205. package/dist/session/simple-session.js.map +1 -0
  206. package/dist/session/streaming-session.d.ts +90 -0
  207. package/dist/session/streaming-session.d.ts.map +1 -0
  208. package/dist/session/streaming-session.js +151 -0
  209. package/dist/session/streaming-session.js.map +1 -0
  210. package/dist/session/test-utils.d.ts +19 -0
  211. package/dist/session/test-utils.d.ts.map +1 -0
  212. package/dist/session/test-utils.js +65 -0
  213. package/dist/session/test-utils.js.map +1 -0
  214. package/dist/session/types.d.ts +219 -0
  215. package/dist/session/types.d.ts.map +1 -0
  216. package/dist/session/types.js +181 -0
  217. package/dist/session/types.js.map +1 -0
  218. package/dist/session/usage-extractors.d.ts +7 -0
  219. package/dist/session/usage-extractors.d.ts.map +1 -0
  220. package/dist/session/usage-extractors.js +71 -0
  221. package/dist/session/usage-extractors.js.map +1 -0
  222. package/dist/testing/fixtures.d.ts +34 -0
  223. package/dist/testing/fixtures.d.ts.map +1 -0
  224. package/dist/testing/fixtures.js +65 -0
  225. package/dist/testing/fixtures.js.map +1 -0
  226. package/dist/testing/helpers.d.ts +20 -0
  227. package/dist/testing/helpers.d.ts.map +1 -0
  228. package/dist/testing/helpers.js +32 -0
  229. package/dist/testing/helpers.js.map +1 -0
  230. package/dist/testing/index.d.ts +7 -519
  231. package/dist/testing/index.d.ts.map +1 -0
  232. package/dist/testing/index.js +21 -2123
  233. package/dist/testing/index.js.map +1 -1
  234. package/dist/testing/mock-provider.d.ts +79 -0
  235. package/dist/testing/mock-provider.d.ts.map +1 -0
  236. package/dist/testing/mock-provider.js +152 -0
  237. package/dist/testing/mock-provider.js.map +1 -0
  238. package/dist/testing/mock.d.ts +29 -0
  239. package/dist/testing/mock.d.ts.map +1 -0
  240. package/dist/testing/mock.js +154 -0
  241. package/dist/testing/mock.js.map +1 -0
  242. package/dist/testing/test-execution.d.ts +14 -0
  243. package/dist/testing/test-execution.d.ts.map +1 -0
  244. package/dist/testing/test-execution.js +108 -0
  245. package/dist/testing/test-execution.js.map +1 -0
  246. package/dist/utils/deep-merge.d.ts +6 -0
  247. package/dist/utils/deep-merge.d.ts.map +1 -0
  248. package/dist/utils/deep-merge.js +24 -0
  249. package/dist/utils/deep-merge.js.map +1 -0
  250. package/dist/validation/errors.d.ts +28 -0
  251. package/dist/validation/errors.d.ts.map +1 -0
  252. package/dist/validation/errors.js +38 -0
  253. package/dist/validation/errors.js.map +1 -0
  254. package/dist/validation/index.d.ts +5 -0
  255. package/dist/validation/index.d.ts.map +1 -0
  256. package/dist/validation/index.js +4 -0
  257. package/dist/validation/index.js.map +1 -0
  258. package/dist/validation/types.d.ts +49 -0
  259. package/dist/validation/types.d.ts.map +1 -0
  260. package/dist/validation/types.js +2 -0
  261. package/dist/validation/types.js.map +1 -0
  262. package/dist/validation/validation-history.d.ts +12 -0
  263. package/dist/validation/validation-history.d.ts.map +1 -0
  264. package/dist/validation/validation-history.js +29 -0
  265. package/dist/validation/validation-history.js.map +1 -0
  266. package/dist/validation/with-validation.d.ts +38 -0
  267. package/dist/validation/with-validation.d.ts.map +1 -0
  268. package/dist/validation/with-validation.js +58 -0
  269. package/dist/validation/with-validation.js.map +1 -0
  270. package/package.json +71 -75
  271. package/dist/base-provider-2TTw5HAa.d.cts +0 -1254
  272. package/dist/base-provider-2TTw5HAa.d.ts +0 -1254
  273. package/dist/index.cjs +0 -3085
  274. package/dist/index.cjs.map +0 -1
  275. package/dist/index.d.cts +0 -1506
  276. package/dist/testing/index.cjs +0 -2167
  277. package/dist/testing/index.cjs.map +0 -1
  278. package/dist/testing/index.d.cts +0 -520
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Configuration objects for ExecutionHost contract tests.
3
+ * Abstracts the differences between SimpleHost and StreamingHost
4
+ * to enable shared contract testing.
5
+ */
6
+ import { vi } from 'vitest';
7
+ import { SimpleExecutionHost } from '../simple-host.js';
8
+ import { StreamingExecutionHost } from '../streaming-host.js';
9
+ import { SimpleSession } from '../../session/simple-session.js';
10
+ import { StreamingSession } from '../../session/streaming-session.js';
11
+ import { TEST_PROVIDER_TYPE, createMockModel, createMockFileManager, } from './fixtures.js';
12
+ // ============================================================================
13
+ // SimpleHost Configuration
14
+ // ============================================================================
15
+ export const simpleHostConfig = {
16
+ name: 'SimpleExecutionHost',
17
+ createHost(factory, workload, signal) {
18
+ return new SimpleExecutionHost(factory, workload, signal);
19
+ },
20
+ createSessionFactory(logger) {
21
+ return (signal) => new SimpleSession({
22
+ defaultLanguageModel: createMockModel(),
23
+ providerType: TEST_PROVIDER_TYPE,
24
+ fileManager: createMockFileManager(),
25
+ signal,
26
+ logger,
27
+ });
28
+ },
29
+ createSessionFactorySpy() {
30
+ let passedSignal;
31
+ const factory = vi.fn().mockImplementation((signal) => {
32
+ passedSignal = signal;
33
+ return new SimpleSession({
34
+ defaultLanguageModel: createMockModel(),
35
+ providerType: TEST_PROVIDER_TYPE,
36
+ fileManager: createMockFileManager(),
37
+ signal,
38
+ });
39
+ });
40
+ return {
41
+ factory,
42
+ getPassedSignal: () => passedSignal,
43
+ };
44
+ },
45
+ createSuccessWorkload(result) {
46
+ return vi.fn().mockResolvedValue(result);
47
+ },
48
+ createErrorWorkload(error) {
49
+ return vi.fn().mockRejectedValue(error);
50
+ },
51
+ createCancelableWorkload(abortScenario, onCancel) {
52
+ return async () => {
53
+ await new Promise((_, reject) => {
54
+ const signal = abortScenario.signal;
55
+ if (signal.aborted) {
56
+ onCancel?.();
57
+ reject(new DOMException('Aborted', 'AbortError'));
58
+ return;
59
+ }
60
+ signal.addEventListener('abort', () => {
61
+ onCancel?.();
62
+ reject(new DOMException('Aborted', 'AbortError'));
63
+ });
64
+ });
65
+ return 'should-not-reach';
66
+ };
67
+ },
68
+ createHookWorkload(hook, options) {
69
+ return async (session) => {
70
+ session.onDone(hook);
71
+ if (options?.shouldFail) {
72
+ throw new Error('Intentional failure');
73
+ }
74
+ return 'result';
75
+ };
76
+ },
77
+ };
78
+ // ============================================================================
79
+ // StreamingHost Configuration
80
+ // ============================================================================
81
+ export const streamingHostConfig = {
82
+ name: 'StreamingExecutionHost',
83
+ createHost(factory, workload, signal) {
84
+ return new StreamingExecutionHost(factory, workload, signal);
85
+ },
86
+ createSessionFactory(logger) {
87
+ return (signal) => new StreamingSession({
88
+ defaultLanguageModel: createMockModel(),
89
+ providerType: TEST_PROVIDER_TYPE,
90
+ fileManager: createMockFileManager(),
91
+ signal,
92
+ logger,
93
+ });
94
+ },
95
+ createSessionFactorySpy() {
96
+ let passedSignal;
97
+ const factory = vi.fn().mockImplementation((signal) => {
98
+ passedSignal = signal;
99
+ return new StreamingSession({
100
+ defaultLanguageModel: createMockModel(),
101
+ providerType: TEST_PROVIDER_TYPE,
102
+ fileManager: createMockFileManager(),
103
+ signal,
104
+ });
105
+ });
106
+ return {
107
+ factory,
108
+ getPassedSignal: () => passedSignal,
109
+ };
110
+ },
111
+ createSuccessWorkload(result) {
112
+ return async function* (session) {
113
+ return session.done(result);
114
+ };
115
+ },
116
+ createErrorWorkload(error) {
117
+ return async function* () {
118
+ throw error;
119
+ };
120
+ },
121
+ createCancelableWorkload(abortScenario, onCancel) {
122
+ return async function* (session) {
123
+ yield session.emit({ type: 'start' });
124
+ await new Promise((_, reject) => {
125
+ const signal = abortScenario.signal;
126
+ if (signal.aborted) {
127
+ onCancel?.();
128
+ reject(new DOMException('Aborted', 'AbortError'));
129
+ return;
130
+ }
131
+ signal.addEventListener('abort', () => {
132
+ onCancel?.();
133
+ reject(new DOMException('Aborted', 'AbortError'));
134
+ });
135
+ });
136
+ return session.done('should-not-reach');
137
+ };
138
+ },
139
+ createHookWorkload(hook, options) {
140
+ return async function* (session) {
141
+ session.onDone(hook);
142
+ if (options?.shouldFail) {
143
+ throw new Error('Intentional failure');
144
+ }
145
+ return session.done('result');
146
+ };
147
+ },
148
+ };
149
+ // ============================================================================
150
+ // Exports
151
+ // ============================================================================
152
+ /** All host configurations for parameterized testing */
153
+ export const allHostConfigs = [simpleHostConfig, streamingHostConfig];
154
+ //# sourceMappingURL=host-configs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-configs.js","sourceRoot":"","sources":["../../../src/execution/testing/host-configs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Vitest-specific assertion helpers for execution module tests.
3
+ * These helpers depend on vitest and should only be used in internal tests.
4
+ */
5
+ import { vi } from 'vitest';
6
+ import type { ExecutionResult, StreamingResult } from '../types.js';
7
+ import type { Logger } from '../../observability/logger.js';
8
+ export type MockLogger = Logger & {
9
+ onLLMCallStart: ReturnType<typeof vi.fn>;
10
+ onLLMCallEnd: ReturnType<typeof vi.fn>;
11
+ onExecutionStart: ReturnType<typeof vi.fn>;
12
+ onExecutionEmit: ReturnType<typeof vi.fn>;
13
+ onExecutionDone: ReturnType<typeof vi.fn>;
14
+ onExecutionError: ReturnType<typeof vi.fn>;
15
+ };
16
+ /**
17
+ * Assert that an execution result is successful and optionally check the value.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const result = await execution.result();
22
+ * expectSuccessResult(result, 'expected-value');
23
+ * // result is now narrowed to succeeded type
24
+ * console.log(result.value);
25
+ * ```
26
+ */
27
+ export declare function expectSuccessResult<T>(result: ExecutionResult<T>, expectedValue?: T): asserts result is Extract<ExecutionResult<T>, {
28
+ status: 'succeeded';
29
+ }>;
30
+ /**
31
+ * Assert that an execution result is failed and optionally check the error.
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const result = await execution.result();
36
+ * expectFailedResult(result, 'Expected error message');
37
+ * // or with regex
38
+ * expectFailedResult(result, /timeout/i);
39
+ * ```
40
+ */
41
+ export declare function expectFailedResult<T>(result: ExecutionResult<T>, errorMatcher?: string | RegExp | Error): asserts result is Extract<ExecutionResult<T>, {
42
+ status: 'failed';
43
+ }>;
44
+ /**
45
+ * Assert that an execution result is canceled.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const result = await execution.result();
50
+ * expectCanceledResult(result);
51
+ * ```
52
+ */
53
+ export declare function expectCanceledResult<T>(result: ExecutionResult<T>): asserts result is Extract<ExecutionResult<T>, {
54
+ status: 'canceled';
55
+ }>;
56
+ /**
57
+ * Assert streaming result status and optionally check events count.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const result = await execution.result();
62
+ * expectStreamingSuccessResult(result, 'value', 3);
63
+ * ```
64
+ */
65
+ export declare function expectStreamingSuccessResult<TEvent, T>(result: StreamingResult<TEvent, T>, expectedValue?: T, expectedEventCount?: number): asserts result is Extract<StreamingResult<TEvent, T>, {
66
+ status: 'succeeded';
67
+ }>;
68
+ type LoggerEventType = 'start' | 'emit' | 'done' | 'error';
69
+ /**
70
+ * Verify that logger was called in the expected sequence.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const logger = createMockLogger();
75
+ * // ... run execution ...
76
+ *
77
+ * verifyLoggerSequence(logger, ['start', 'emit', 'emit', 'done']);
78
+ * ```
79
+ */
80
+ export declare function verifyLoggerSequence(logger: MockLogger, expectedSequence: LoggerEventType[]): void;
81
+ /**
82
+ * Create a vitest mock logger.
83
+ */
84
+ export declare function createVitestMockLogger(): MockLogger;
85
+ /**
86
+ * @deprecated Use createVitestMockLogger instead
87
+ */
88
+ export declare const createMockLogger: typeof createVitestMockLogger;
89
+ /**
90
+ * Get vitest's vi.fn for use with framework-agnostic fixtures.
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * import { vitestMockFn } from './vitest-assertions';
95
+ * import { createStreamingSessionFactory } from './fixtures';
96
+ *
97
+ * const factory = createStreamingSessionFactory({ mockFn: vitestMockFn });
98
+ * ```
99
+ */
100
+ export declare const vitestMockFn: () => (...args: unknown[]) => unknown;
101
+ export {};
102
+ //# sourceMappingURL=vitest-assertions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-assertions.d.ts","sourceRoot":"","sources":["../../../src/execution/testing/vitest-assertions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,EAAE,EAAU,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAM5D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAChC,cAAc,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACzC,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,gBAAgB,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,eAAe,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,eAAe,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,gBAAgB,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;CAC5C,CAAC;AAMF;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAC1B,aAAa,CAAC,EAAE,CAAC,GAChB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,CAQxE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GACrC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAC,CAcrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,CAEvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,CAAC,EACpD,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,EAClC,aAAa,CAAC,EAAE,CAAC,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,CAKhF;AAMD,KAAK,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,EAClB,gBAAgB,EAAE,eAAe,EAAE,GAClC,IAAI,CAsBN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CASnD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,+BAAyB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAuB,CAAC"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Vitest-specific assertion helpers for execution module tests.
3
+ * These helpers depend on vitest and should only be used in internal tests.
4
+ */
5
+ import { vi, expect } from 'vitest';
6
+ // ============================================================================
7
+ // Result Assertion Helpers
8
+ // ============================================================================
9
+ /**
10
+ * Assert that an execution result is successful and optionally check the value.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const result = await execution.result();
15
+ * expectSuccessResult(result, 'expected-value');
16
+ * // result is now narrowed to succeeded type
17
+ * console.log(result.value);
18
+ * ```
19
+ */
20
+ export function expectSuccessResult(result, expectedValue) {
21
+ expect(result.status).toBe('succeeded');
22
+ if (result.status !== 'succeeded') {
23
+ throw new Error('Result is not succeeded');
24
+ }
25
+ if (expectedValue !== undefined) {
26
+ expect(result.value).toBe(expectedValue);
27
+ }
28
+ }
29
+ /**
30
+ * Assert that an execution result is failed and optionally check the error.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const result = await execution.result();
35
+ * expectFailedResult(result, 'Expected error message');
36
+ * // or with regex
37
+ * expectFailedResult(result, /timeout/i);
38
+ * ```
39
+ */
40
+ export function expectFailedResult(result, errorMatcher) {
41
+ expect(result.status).toBe('failed');
42
+ if (result.status !== 'failed') {
43
+ throw new Error('Result is not failed');
44
+ }
45
+ if (errorMatcher !== undefined) {
46
+ if (typeof errorMatcher === 'string') {
47
+ expect(result.error.message).toBe(errorMatcher);
48
+ }
49
+ else if (errorMatcher instanceof RegExp) {
50
+ expect(result.error.message).toMatch(errorMatcher);
51
+ }
52
+ else {
53
+ expect(result.error).toBe(errorMatcher);
54
+ }
55
+ }
56
+ }
57
+ /**
58
+ * Assert that an execution result is canceled.
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const result = await execution.result();
63
+ * expectCanceledResult(result);
64
+ * ```
65
+ */
66
+ export function expectCanceledResult(result) {
67
+ expect(result.status).toBe('canceled');
68
+ }
69
+ /**
70
+ * Assert streaming result status and optionally check events count.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const result = await execution.result();
75
+ * expectStreamingSuccessResult(result, 'value', 3);
76
+ * ```
77
+ */
78
+ export function expectStreamingSuccessResult(result, expectedValue, expectedEventCount) {
79
+ expectSuccessResult(result, expectedValue);
80
+ if (expectedEventCount !== undefined) {
81
+ expect(result.events).toHaveLength(expectedEventCount);
82
+ }
83
+ }
84
+ /**
85
+ * Verify that logger was called in the expected sequence.
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const logger = createMockLogger();
90
+ * // ... run execution ...
91
+ *
92
+ * verifyLoggerSequence(logger, ['start', 'emit', 'emit', 'done']);
93
+ * ```
94
+ */
95
+ export function verifyLoggerSequence(logger, expectedSequence) {
96
+ const eventMap = {
97
+ start: 'onExecutionStart',
98
+ emit: 'onExecutionEmit',
99
+ done: 'onExecutionDone',
100
+ error: 'onExecutionError',
101
+ };
102
+ // Count expected occurrences
103
+ const expectedCounts = expectedSequence.reduce((acc, event) => {
104
+ acc[event] = (acc[event] || 0) + 1;
105
+ return acc;
106
+ }, {});
107
+ // Verify each event type was called the expected number of times
108
+ for (const [event, count] of Object.entries(expectedCounts)) {
109
+ const methodName = eventMap[event];
110
+ expect(logger[methodName]).toHaveBeenCalledTimes(count);
111
+ }
112
+ }
113
+ /**
114
+ * Create a vitest mock logger.
115
+ */
116
+ export function createVitestMockLogger() {
117
+ return {
118
+ onLLMCallStart: vi.fn(),
119
+ onLLMCallEnd: vi.fn(),
120
+ onExecutionStart: vi.fn(),
121
+ onExecutionEmit: vi.fn(),
122
+ onExecutionDone: vi.fn(),
123
+ onExecutionError: vi.fn(),
124
+ };
125
+ }
126
+ /**
127
+ * @deprecated Use createVitestMockLogger instead
128
+ */
129
+ export const createMockLogger = createVitestMockLogger;
130
+ /**
131
+ * Get vitest's vi.fn for use with framework-agnostic fixtures.
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * import { vitestMockFn } from './vitest-assertions';
136
+ * import { createStreamingSessionFactory } from './fixtures';
137
+ *
138
+ * const factory = createStreamingSessionFactory({ mockFn: vitestMockFn });
139
+ * ```
140
+ */
141
+ export const vitestMockFn = () => vi.fn();
142
+ //# sourceMappingURL=vitest-assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-assertions.js","sourceRoot":"","sources":["../../../src/execution/testing/vitest-assertions.ts"],"names":[],"mappings":"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"}