@holokai/holo-test 1.4.2 → 1.5.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 (169) hide show
  1. package/README.md +217 -80
  2. package/dist/conformance/audit-tests.d.ts +4 -0
  3. package/dist/conformance/audit-tests.d.ts.map +1 -0
  4. package/dist/conformance/audit-tests.js +55 -0
  5. package/dist/conformance/audit-tests.js.map +1 -0
  6. package/dist/conformance/datastore-tests.d.ts +13 -0
  7. package/dist/conformance/datastore-tests.d.ts.map +1 -0
  8. package/dist/conformance/datastore-tests.js +121 -0
  9. package/dist/conformance/datastore-tests.js.map +1 -0
  10. package/dist/conformance/holo-fixture-loader.d.ts +4 -0
  11. package/dist/conformance/holo-fixture-loader.d.ts.map +1 -0
  12. package/dist/conformance/holo-fixture-loader.js +79 -0
  13. package/dist/conformance/holo-fixture-loader.js.map +1 -0
  14. package/dist/conformance/holo-fixture-tests.d.ts +4 -0
  15. package/dist/conformance/holo-fixture-tests.d.ts.map +1 -0
  16. package/dist/conformance/holo-fixture-tests.js +273 -0
  17. package/dist/conformance/holo-fixture-tests.js.map +1 -0
  18. package/dist/conformance/holo-fixture-types.d.ts +93 -0
  19. package/dist/conformance/holo-fixture-types.d.ts.map +1 -0
  20. package/dist/conformance/holo-fixture-types.js +2 -0
  21. package/dist/conformance/holo-fixture-types.js.map +1 -0
  22. package/dist/conformance/loader.d.ts +7 -0
  23. package/dist/conformance/loader.d.ts.map +1 -0
  24. package/dist/conformance/loader.js +71 -0
  25. package/dist/conformance/loader.js.map +1 -0
  26. package/dist/conformance/pipeline-tests.d.ts +4 -0
  27. package/dist/conformance/pipeline-tests.d.ts.map +1 -0
  28. package/dist/conformance/pipeline-tests.js +73 -0
  29. package/dist/conformance/pipeline-tests.js.map +1 -0
  30. package/dist/conformance/runner.d.ts +2 -0
  31. package/dist/conformance/runner.d.ts.map +1 -0
  32. package/dist/conformance/runner.js +102 -0
  33. package/dist/conformance/runner.js.map +1 -0
  34. package/dist/conformance/sdk-tests.d.ts +12 -0
  35. package/dist/conformance/sdk-tests.d.ts.map +1 -0
  36. package/dist/{services/http-fixture-server.js → conformance/sdk-tests.js} +56 -17
  37. package/dist/conformance/sdk-tests.js.map +1 -0
  38. package/dist/conformance/translator-tests.d.ts +4 -0
  39. package/dist/conformance/translator-tests.d.ts.map +1 -0
  40. package/dist/conformance/translator-tests.js +49 -0
  41. package/dist/conformance/translator-tests.js.map +1 -0
  42. package/dist/conformance/types.d.ts +81 -0
  43. package/dist/conformance/types.d.ts.map +1 -0
  44. package/dist/conformance/types.js +2 -0
  45. package/dist/conformance/types.js.map +1 -0
  46. package/dist/conformance/wire-tests.d.ts +4 -0
  47. package/dist/conformance/wire-tests.d.ts.map +1 -0
  48. package/dist/conformance/wire-tests.js +52 -0
  49. package/dist/conformance/wire-tests.js.map +1 -0
  50. package/dist/fixtures/plugin.d.ts +27 -0
  51. package/dist/fixtures/plugin.d.ts.map +1 -0
  52. package/dist/fixtures/plugin.js +110 -0
  53. package/dist/fixtures/plugin.js.map +1 -0
  54. package/dist/helpers/env.d.ts +2 -0
  55. package/dist/helpers/env.d.ts.map +1 -1
  56. package/dist/helpers/env.js +5 -0
  57. package/dist/helpers/env.js.map +1 -1
  58. package/dist/helpers/ids.d.ts +2 -0
  59. package/dist/helpers/ids.d.ts.map +1 -0
  60. package/dist/helpers/ids.js +5 -0
  61. package/dist/helpers/ids.js.map +1 -0
  62. package/dist/helpers/matrix.d.ts +9 -1
  63. package/dist/helpers/matrix.d.ts.map +1 -1
  64. package/dist/helpers/matrix.js +8 -3
  65. package/dist/helpers/matrix.js.map +1 -1
  66. package/dist/helpers/mocks.d.ts +4 -0
  67. package/dist/helpers/mocks.d.ts.map +1 -0
  68. package/dist/helpers/mocks.js +37 -0
  69. package/dist/helpers/mocks.js.map +1 -0
  70. package/dist/helpers/polling.d.ts +3 -0
  71. package/dist/helpers/polling.d.ts.map +1 -0
  72. package/dist/helpers/polling.js +24 -0
  73. package/dist/helpers/polling.js.map +1 -0
  74. package/dist/helpers/vitest-helpers.d.ts +1 -1
  75. package/dist/helpers/vitest-helpers.d.ts.map +1 -1
  76. package/dist/index.d.ts +26 -23
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +22 -21
  79. package/dist/index.js.map +1 -1
  80. package/dist/live/assertions.d.ts.map +1 -1
  81. package/dist/live/assertions.js +54 -21
  82. package/dist/live/assertions.js.map +1 -1
  83. package/dist/live/error-payloads.d.ts +5 -0
  84. package/dist/live/error-payloads.d.ts.map +1 -0
  85. package/dist/live/error-payloads.js +47 -0
  86. package/dist/live/error-payloads.js.map +1 -0
  87. package/dist/live/error-tester.d.ts +3 -0
  88. package/dist/live/error-tester.d.ts.map +1 -0
  89. package/dist/live/error-tester.js +121 -0
  90. package/dist/live/error-tester.js.map +1 -0
  91. package/dist/live/index.d.ts +3 -1
  92. package/dist/live/index.d.ts.map +1 -1
  93. package/dist/live/index.js +2 -0
  94. package/dist/live/index.js.map +1 -1
  95. package/dist/live/live-tester.d.ts.map +1 -1
  96. package/dist/live/live-tester.js +17 -3
  97. package/dist/live/live-tester.js.map +1 -1
  98. package/dist/live/types.d.ts +9 -0
  99. package/dist/live/types.d.ts.map +1 -1
  100. package/dist/services/plugin-loader.d.ts +4 -2
  101. package/dist/services/plugin-loader.d.ts.map +1 -1
  102. package/dist/services/plugin-loader.js +14 -2
  103. package/dist/services/plugin-loader.js.map +1 -1
  104. package/dist/types.d.ts +0 -37
  105. package/dist/types.d.ts.map +1 -1
  106. package/package.json +3 -6
  107. package/dist/cli.d.ts +0 -3
  108. package/dist/cli.d.ts.map +0 -1
  109. package/dist/cli.js +0 -83
  110. package/dist/cli.js.map +0 -1
  111. package/dist/contracts/audit-contract.d.ts +0 -3
  112. package/dist/contracts/audit-contract.d.ts.map +0 -1
  113. package/dist/contracts/audit-contract.js +0 -11
  114. package/dist/contracts/audit-contract.js.map +0 -1
  115. package/dist/contracts/pipeline-contract.d.ts +0 -3
  116. package/dist/contracts/pipeline-contract.d.ts.map +0 -1
  117. package/dist/contracts/pipeline-contract.js +0 -9
  118. package/dist/contracts/pipeline-contract.js.map +0 -1
  119. package/dist/contracts/roundtrip-contract.d.ts +0 -3
  120. package/dist/contracts/roundtrip-contract.d.ts.map +0 -1
  121. package/dist/contracts/roundtrip-contract.js +0 -9
  122. package/dist/contracts/roundtrip-contract.js.map +0 -1
  123. package/dist/contracts/wire-contract.d.ts +0 -3
  124. package/dist/contracts/wire-contract.d.ts.map +0 -1
  125. package/dist/contracts/wire-contract.js +0 -9
  126. package/dist/contracts/wire-contract.js.map +0 -1
  127. package/dist/dsl/assertions.d.ts +0 -6
  128. package/dist/dsl/assertions.d.ts.map +0 -1
  129. package/dist/dsl/assertions.js +0 -54
  130. package/dist/dsl/assertions.js.map +0 -1
  131. package/dist/dsl/suite-builder.d.ts +0 -25
  132. package/dist/dsl/suite-builder.d.ts.map +0 -1
  133. package/dist/dsl/suite-builder.js +0 -96
  134. package/dist/dsl/suite-builder.js.map +0 -1
  135. package/dist/factories/worker-request-factory.d.ts +0 -5
  136. package/dist/factories/worker-request-factory.d.ts.map +0 -1
  137. package/dist/factories/worker-request-factory.js +0 -19
  138. package/dist/factories/worker-request-factory.js.map +0 -1
  139. package/dist/fixtures/fixture-loader.d.ts +0 -6
  140. package/dist/fixtures/fixture-loader.d.ts.map +0 -1
  141. package/dist/fixtures/fixture-loader.js +0 -23
  142. package/dist/fixtures/fixture-loader.js.map +0 -1
  143. package/dist/runner/test-reporter.d.ts +0 -3
  144. package/dist/runner/test-reporter.d.ts.map +0 -1
  145. package/dist/runner/test-reporter.js +0 -43
  146. package/dist/runner/test-reporter.js.map +0 -1
  147. package/dist/runner/test-runner.d.ts +0 -12
  148. package/dist/runner/test-runner.d.ts.map +0 -1
  149. package/dist/runner/test-runner.js +0 -37
  150. package/dist/runner/test-runner.js.map +0 -1
  151. package/dist/services/http-fixture-server.d.ts +0 -14
  152. package/dist/services/http-fixture-server.d.ts.map +0 -1
  153. package/dist/services/http-fixture-server.js.map +0 -1
  154. package/dist/testers/audit-tester.d.ts +0 -4
  155. package/dist/testers/audit-tester.d.ts.map +0 -1
  156. package/dist/testers/audit-tester.js +0 -74
  157. package/dist/testers/audit-tester.js.map +0 -1
  158. package/dist/testers/pipeline-tester.d.ts +0 -4
  159. package/dist/testers/pipeline-tester.d.ts.map +0 -1
  160. package/dist/testers/pipeline-tester.js +0 -62
  161. package/dist/testers/pipeline-tester.js.map +0 -1
  162. package/dist/testers/roundtrip-tester.d.ts +0 -3
  163. package/dist/testers/roundtrip-tester.d.ts.map +0 -1
  164. package/dist/testers/roundtrip-tester.js +0 -77
  165. package/dist/testers/roundtrip-tester.js.map +0 -1
  166. package/dist/testers/wire-tester.d.ts +0 -4
  167. package/dist/testers/wire-tester.d.ts.map +0 -1
  168. package/dist/testers/wire-tester.js +0 -87
  169. package/dist/testers/wire-tester.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../src/live/assertions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../src/live/assertions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ type ErrorPayloadBuilder = (streaming: boolean) => any;
2
+ export declare function registerErrorPayloadBuilder(protocol: string, builder: ErrorPayloadBuilder): void;
3
+ export declare function buildErrorPayload(protocol: string, streaming: boolean): any;
4
+ export {};
5
+ //# sourceMappingURL=error-payloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-payloads.d.ts","sourceRoot":"","sources":["../../src/live/error-payloads.ts"],"names":[],"mappings":"AAUA,KAAK,mBAAmB,GAAG,CAAC,SAAS,EAAE,OAAO,KAAK,GAAG,CAAC;AAIvD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAEhG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,GAAG,CAQ3E"}
@@ -0,0 +1,47 @@
1
+ // Error-trigger payload builders for live integration tests. Each builder
2
+ // returns a payload the upstream provider will reject (typically with a 4xx),
3
+ // exercising the per-plugin error parser + auditor's ERROR-status mapping.
4
+ //
5
+ // Default trigger: an invalid model id. All major provider APIs return a
6
+ // validation error for an unknown model, so this works cross-provider
7
+ // without needing per-family tricks.
8
+ const INVALID_MODEL = '__holo_invalid_model_for_error_test__';
9
+ const builders = new Map();
10
+ export function registerErrorPayloadBuilder(protocol, builder) {
11
+ builders.set(protocol, builder);
12
+ }
13
+ export function buildErrorPayload(protocol, streaming) {
14
+ const builder = builders.get(protocol);
15
+ if (!builder) {
16
+ throw new Error(`No error-payload builder for protocol: ${protocol}. Register one via registerErrorPayloadBuilder().`);
17
+ }
18
+ return builder(streaming);
19
+ }
20
+ registerErrorPayloadBuilder('claude.messages', (stream) => ({
21
+ model: INVALID_MODEL, max_tokens: 50, stream,
22
+ messages: [{ role: 'user', content: 'hi' }],
23
+ }));
24
+ registerErrorPayloadBuilder('openai.chatCompletions', (stream) => ({
25
+ model: INVALID_MODEL, max_completion_tokens: 50, stream,
26
+ messages: [{ role: 'user', content: 'hi' }],
27
+ }));
28
+ registerErrorPayloadBuilder('openai.responses', (stream) => ({
29
+ model: INVALID_MODEL, max_output_tokens: 50, stream,
30
+ input: 'hi',
31
+ }));
32
+ registerErrorPayloadBuilder('gemini.generateContent', (_stream) => ({
33
+ model: INVALID_MODEL, contents: [{ parts: [{ text: 'hi' }] }],
34
+ generationConfig: { maxOutputTokens: 50 },
35
+ }));
36
+ registerErrorPayloadBuilder('gemini.streamGenerateContent', (_stream) => ({
37
+ model: INVALID_MODEL, contents: [{ parts: [{ text: 'hi' }] }],
38
+ generationConfig: { maxOutputTokens: 50 },
39
+ }));
40
+ registerErrorPayloadBuilder('ollama.chat', (stream) => ({
41
+ model: INVALID_MODEL, stream,
42
+ messages: [{ role: 'user', content: 'hi' }],
43
+ }));
44
+ registerErrorPayloadBuilder('ollama.generate', (stream) => ({
45
+ model: INVALID_MODEL, stream, prompt: 'hi',
46
+ }));
47
+ //# sourceMappingURL=error-payloads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-payloads.js","sourceRoot":"","sources":["../../src/live/error-payloads.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,2EAA2E;AAC3E,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,qCAAqC;AAErC,MAAM,aAAa,GAAG,uCAAuC,CAAC;AAI9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;AAExD,MAAM,UAAU,2BAA2B,CAAC,QAAgB,EAAE,OAA4B;IACtF,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,SAAkB;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACX,0CAA0C,QAAQ,mDAAmD,CACxG,CAAC;IACN,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,2BAA2B,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxD,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM;IAC5C,QAAQ,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;CAC5C,CAAC,CAAC,CAAC;AAEJ,2BAA2B,CAAC,wBAAwB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/D,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,EAAE,EAAE,MAAM;IACvD,QAAQ,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;CAC5C,CAAC,CAAC,CAAC;AAEJ,2BAA2B,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzD,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM;IACnD,KAAK,EAAE,IAAI;CACd,CAAC,CAAC,CAAC;AAEJ,2BAA2B,CAAC,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,EAAC,CAAC;IACzD,gBAAgB,EAAE,EAAC,eAAe,EAAE,EAAE,EAAC;CAC1C,CAAC,CAAC,CAAC;AAEJ,2BAA2B,CAAC,8BAA8B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,EAAC,CAAC;IACzD,gBAAgB,EAAE,EAAC,eAAe,EAAE,EAAE,EAAC;CAC1C,CAAC,CAAC,CAAC;AAEJ,2BAA2B,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpD,KAAK,EAAE,aAAa,EAAE,MAAM;IAC5B,QAAQ,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;CAC5C,CAAC,CAAC,CAAC;AAEJ,2BAA2B,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxD,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;CAC7C,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LiveErrorTestResult } from './types';
2
+ export declare function runLiveErrorTest(family: string): Promise<LiveErrorTestResult>;
3
+ //# sourceMappingURL=error-tester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-tester.d.ts","sourceRoot":"","sources":["../../src/live/error-tester.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAajD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiHnF"}
@@ -0,0 +1,121 @@
1
+ import { loadPlugin } from '@holokai/holo-sdk/plugin';
2
+ import { createWorkerRequest } from '@holokai/holo-sdk/provider';
3
+ import { ProtocolCapability, ProviderResponseStatus } from '@holokai/holo-types/entities';
4
+ import { v4 as uuidv4 } from 'uuid';
5
+ import { getApiKey, getModel } from './env';
6
+ import { buildErrorPayload } from './error-payloads';
7
+ // Drives a single live error-mapping test against the upstream provider:
8
+ // fires a deliberately malformed payload (invalid model id), collects the
9
+ // resulting events, asserts the auditor produces a SUCCESS-incompatible
10
+ // response with HTTP status carried through and ProviderResponseStatus.ERROR.
11
+ //
12
+ // The complement to runLiveTest's happy-path coverage. Per-plugin error
13
+ // parsers (e.g. gemini's mapHttpStatusToGeminiStatus) get exercised end-to-
14
+ // end this way; conformance fixtures cannot reach this path because the
15
+ // upstream SDK throws on 4xx/5xx before any chunk is emitted.
16
+ export async function runLiveErrorTest(family) {
17
+ const start = performance.now();
18
+ const errors = [];
19
+ try {
20
+ const plugin = await loadPlugin(family);
21
+ const routes = plugin.getRoutes();
22
+ const chatRoutes = routes.filter(r => r.protocol.capability === ProtocolCapability.CHAT);
23
+ if (chatRoutes.length === 0) {
24
+ return {
25
+ family, protocol: 'none', passed: false,
26
+ duration: 0,
27
+ errors: [{ field: 'routes', expected: 'at least one CHAT route', actual: 'none' }],
28
+ };
29
+ }
30
+ const route = chatRoutes[0];
31
+ const protocol = route.protocol;
32
+ const apiKey = getApiKey(family);
33
+ const model = getModel(family);
34
+ const provider = await plugin.createProvider(uuidv4(), family, { apiKey, baseUrl: process.env.OLLAMA_HOST });
35
+ const payload = buildErrorPayload(protocol.name, false);
36
+ const request = createWorkerRequest({
37
+ provider: { id: uuidv4(), name: family },
38
+ protocol,
39
+ payload,
40
+ sourceId: uuidv4(),
41
+ isStreaming: false,
42
+ });
43
+ const queue = await provider.processWorkerRequest(request);
44
+ const events = [];
45
+ for await (const event of queue)
46
+ events.push(event);
47
+ const errorEvent = events.find(e => e.type === 'error');
48
+ const doneEvent = events.find(e => e.type === 'done');
49
+ // The plugin must surface the upstream rejection as either a
50
+ // ProviderErrorEvent OR a ProviderDoneEvent whose terminal status
51
+ // is ERROR. Both shapes are valid; we accept either.
52
+ if (!errorEvent && !doneEvent) {
53
+ errors.push({ field: 'terminal_event', expected: 'error or done', actual: 'neither' });
54
+ return { family, protocol: protocol.name, passed: false, duration: performance.now() - start, errors };
55
+ }
56
+ const httpStatus = (errorEvent?.type === 'error' ? errorEvent.status : undefined);
57
+ // Auditor mapping: feed the terminal event through auditResponse and
58
+ // assert the response row carries ERROR status.
59
+ const auditor = provider.auditor;
60
+ const envelope = {
61
+ source_id: 'live-error-test',
62
+ request_id: 'live-error-test',
63
+ organization_id: 'live-error-test-org',
64
+ provider: { id: 'live-error-test', name: family },
65
+ protocol: { id: 'live-error-test', name: protocol.name, capability: 'chat' },
66
+ access_model: model,
67
+ };
68
+ const responseRecord = await auditor.auditResponse(envelope, errorEvent ?? doneEvent);
69
+ const auditStatus = String(responseRecord.status);
70
+ if (responseRecord.status !== ProviderResponseStatus.ERROR) {
71
+ errors.push({
72
+ field: 'audit.status',
73
+ expected: ProviderResponseStatus.ERROR,
74
+ actual: auditStatus,
75
+ });
76
+ }
77
+ // Best-effort HTTP status assertion: when an error event carries a
78
+ // status, it should be a 4xx/5xx (since we deliberately malformed
79
+ // the request). Some plugins may not populate this field — only
80
+ // assert when present.
81
+ if (httpStatus !== undefined && (httpStatus < 400 || httpStatus >= 600)) {
82
+ errors.push({
83
+ field: 'http.status',
84
+ expected: '4xx or 5xx',
85
+ actual: String(httpStatus),
86
+ });
87
+ }
88
+ const result = {
89
+ family, protocol: protocol.name,
90
+ passed: errors.length === 0,
91
+ duration: performance.now() - start,
92
+ auditStatus,
93
+ errors,
94
+ };
95
+ if (httpStatus !== undefined)
96
+ result.httpStatus = httpStatus;
97
+ return result;
98
+ }
99
+ catch (err) {
100
+ // The upstream-fetch rejection is the path runLiveTest was designed
101
+ // to AVOID; for the error mode it's expected — the plugin's request
102
+ // runner may throw rather than emit ProviderErrorEvent. In either
103
+ // case the throw is the signal we wanted to verify. Pass when the
104
+ // throw carries a recognizable HTTP status.
105
+ const message = err?.message ?? String(err);
106
+ const statusMatch = /\b(4\d\d|5\d\d)\b/.exec(message);
107
+ const httpStatus = statusMatch ? Number(statusMatch[1]) : undefined;
108
+ const result = {
109
+ family, protocol: 'unknown',
110
+ passed: httpStatus !== undefined,
111
+ duration: performance.now() - start,
112
+ errors: httpStatus === undefined
113
+ ? [{ field: 'exception', expected: '4xx/5xx in message', actual: message }]
114
+ : [],
115
+ };
116
+ if (httpStatus !== undefined)
117
+ result.httpStatus = httpStatus;
118
+ return result;
119
+ }
120
+ }
121
+ //# sourceMappingURL=error-tester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-tester.js","sourceRoot":"","sources":["../../src/live/error-tester.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- export type { LiveTestConfig, LiveTestResult } from './types';
1
+ export type { LiveTestConfig, LiveTestResult, LiveErrorTestResult } from './types';
2
2
  export { getApiKey, getModel, isProviderAvailable } from './env';
3
3
  export { buildPayload, registerPayloadBuilder } from './payloads';
4
+ export { buildErrorPayload, registerErrorPayloadBuilder } from './error-payloads';
4
5
  export { assertHasDoneEvent, assertTextNotEmpty, assertHasFinishReason, assertMultipleStreamEvents, assertEventSequence } from './assertions';
5
6
  export { runLiveTest } from './live-tester';
7
+ export { runLiveErrorTest } from './error-tester';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAC5I,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AACjF,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAE,2BAA2B,EAAC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EACH,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EACjH,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export { getApiKey, getModel, isProviderAvailable } from './env';
2
2
  export { buildPayload, registerPayloadBuilder } from './payloads';
3
+ export { buildErrorPayload, registerErrorPayloadBuilder } from './error-payloads';
3
4
  export { assertHasDoneEvent, assertTextNotEmpty, assertHasFinishReason, assertMultipleStreamEvents, assertEventSequence } from './assertions';
4
5
  export { runLiveTest } from './live-tester';
6
+ export { runLiveErrorTest } from './error-tester';
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAC5I,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAE,2BAA2B,EAAC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EACH,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EACjH,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"live-tester.d.ts","sourceRoot":"","sources":["../../src/live/live-tester.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAK5C,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CA6E7F"}
1
+ {"version":3,"file":"live-tester.d.ts","sourceRoot":"","sources":["../../src/live/live-tester.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAK5C,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CA2F7F"}
@@ -4,7 +4,7 @@ import { ProtocolCapability } from '@holokai/holo-types/entities';
4
4
  import { v4 as uuidv4 } from 'uuid';
5
5
  import { getApiKey, getModel } from './env';
6
6
  import { buildPayload } from './payloads';
7
- import { assertHasDoneEvent, assertTextNotEmpty, assertMultipleStreamEvents, assertEventSequence } from './assertions';
7
+ import { assertEventSequence, assertHasDoneEvent, assertMultipleStreamEvents, assertTextNotEmpty } from './assertions';
8
8
  export async function runLiveTest(family, streaming) {
9
9
  const start = performance.now();
10
10
  const errors = [];
@@ -13,7 +13,14 @@ export async function runLiveTest(family, streaming) {
13
13
  const routes = plugin.getRoutes();
14
14
  const chatRoutes = routes.filter(r => r.protocol.capability === ProtocolCapability.CHAT);
15
15
  if (chatRoutes.length === 0) {
16
- return { family, protocol: 'none', streaming, passed: false, duration: 0, errors: [{ field: 'routes', expected: 'at least one CHAT route', actual: 'none' }] };
16
+ return {
17
+ family,
18
+ protocol: 'none',
19
+ streaming,
20
+ passed: false,
21
+ duration: 0,
22
+ errors: [{ field: 'routes', expected: 'at least one CHAT route', actual: 'none' }]
23
+ };
17
24
  }
18
25
  const route = chatRoutes[0];
19
26
  const protocol = route.protocol;
@@ -38,7 +45,14 @@ export async function runLiveTest(family, streaming) {
38
45
  if (errorEvent && errorEvent.type === 'error') {
39
46
  const errMsg = errorEvent.error?.message ?? JSON.stringify(errorEvent.error);
40
47
  errors.push({ field: 'error', expected: 'no error', actual: errMsg });
41
- return { family, protocol: protocol.name, streaming, passed: false, duration: performance.now() - start, errors };
48
+ return {
49
+ family,
50
+ protocol: protocol.name,
51
+ streaming,
52
+ passed: false,
53
+ duration: performance.now() - start,
54
+ errors
55
+ };
42
56
  }
43
57
  const doneErr = assertHasDoneEvent(events);
44
58
  if (doneErr)
@@ -1 +1 @@
1
- {"version":3,"file":"live-tester.js","sourceRoot":"","sources":["../../src/live/live-tester.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-tester.js","sourceRoot":"","sources":["../../src/live/live-tester.ts"],"names":[],"mappings":"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"}
@@ -14,4 +14,13 @@ export interface LiveTestResult {
14
14
  eventCount?: number;
15
15
  errors: AssertionError[];
16
16
  }
17
+ export interface LiveErrorTestResult {
18
+ family: string;
19
+ protocol: string;
20
+ passed: boolean;
21
+ duration: number;
22
+ httpStatus?: number;
23
+ auditStatus?: string;
24
+ errors: AssertionError[];
25
+ }
17
26
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/live/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/live/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC5B"}
@@ -1,7 +1,9 @@
1
- import type { IProviderPlugin } from '@holokai/holo-types/plugin';
2
- import { getLoadedPlugins as sdkGetLoadedPlugins, discoverPlugins as sdkDiscoverPlugins } from '@holokai/holo-sdk/plugin';
1
+ import type { IDatastorePlugin, IProviderPlugin } from '@holokai/holo-types/plugin';
2
+ import { discoverDatastorePlugins as sdkDiscoverDatastorePlugins, discoverPlugins as sdkDiscoverPlugins, getLoadedPlugins as sdkGetLoadedPlugins } from '@holokai/holo-sdk/plugin';
3
3
  export declare function loadPlugin(family: string): Promise<IProviderPlugin>;
4
4
  export declare function loadAllPlugins(baseDir?: string): Promise<Map<string, IProviderPlugin>>;
5
+ export declare function loadDatastorePlugin(family: string): Promise<IDatastorePlugin>;
5
6
  export declare const discoverPlugins: typeof sdkDiscoverPlugins;
7
+ export declare const discoverDatastorePlugins: typeof sdkDiscoverDatastorePlugins;
6
8
  export declare const getLoadedPlugins: typeof sdkGetLoadedPlugins;
7
9
  //# sourceMappingURL=plugin-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../src/services/plugin-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAGH,gBAAgB,IAAI,mBAAmB,EACvC,eAAe,IAAI,kBAAkB,EACxC,MAAM,0BAA0B,CAAC;AAwBlC,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAGzE;AAED,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAG5F;AAED,eAAO,MAAM,eAAe,2BAAqB,CAAC;AAClD,eAAO,MAAM,gBAAgB,4BAAsB,CAAC"}
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../src/services/plugin-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAElF,OAAO,EAEH,wBAAwB,IAAI,2BAA2B,EACvD,eAAe,IAAI,kBAAkB,EACrC,gBAAgB,IAAI,mBAAmB,EAG1C,MAAM,0BAA0B,CAAC;AAyBlC,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAGzE;AAED,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAG5F;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWnF;AAED,eAAO,MAAM,eAAe,2BAAqB,CAAC;AAClD,eAAO,MAAM,wBAAwB,oCAA8B,CAAC;AACpE,eAAO,MAAM,gBAAgB,4BAAsB,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import { container } from 'tsyringe';
2
- import { loadPlugin as sdkLoadPlugin, loadAllPlugins as sdkLoadAllPlugins, getLoadedPlugins as sdkGetLoadedPlugins, discoverPlugins as sdkDiscoverPlugins } from '@holokai/holo-sdk/plugin';
2
+ import { createMockPluginContext, discoverDatastorePlugins as sdkDiscoverDatastorePlugins, discoverPlugins as sdkDiscoverPlugins, getLoadedPlugins as sdkGetLoadedPlugins, loadAllPlugins as sdkLoadAllPlugins, loadPlugin as sdkLoadPlugin } from '@holokai/holo-sdk/plugin';
3
3
  let loggerRegistered = false;
4
4
  function ensureLoggerFactory() {
5
5
  if (loggerRegistered)
6
6
  return;
7
7
  loggerRegistered = true;
8
- const noop = () => { };
8
+ const noop = () => {
9
+ };
9
10
  const noopLogger = {
10
11
  level: 'silent',
11
12
  info: noop,
@@ -27,6 +28,17 @@ export async function loadAllPlugins(baseDir) {
27
28
  ensureLoggerFactory();
28
29
  return sdkLoadAllPlugins(baseDir);
29
30
  }
31
+ export async function loadDatastorePlugin(family) {
32
+ ensureLoggerFactory();
33
+ const packageName = `@holokai/holo-datastore-${family}`;
34
+ const mod = await import(packageName);
35
+ const plugin = mod.default;
36
+ if (plugin.getState() !== 'READY') {
37
+ await plugin.initialize(createMockPluginContext());
38
+ }
39
+ return plugin;
40
+ }
30
41
  export const discoverPlugins = sdkDiscoverPlugins;
42
+ export const discoverDatastorePlugins = sdkDiscoverDatastorePlugins;
31
43
  export const getLoadedPlugins = sdkGetLoadedPlugins;
32
44
  //# sourceMappingURL=plugin-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/services/plugin-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AAGnC,OAAO,EACH,UAAU,IAAI,aAAa,EAC3B,cAAc,IAAI,iBAAiB,EACnC,gBAAgB,IAAI,mBAAmB,EACvC,eAAe,IAAI,kBAAkB,EACxC,MAAM,0BAA0B,CAAC;AAElC,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,SAAS,mBAAmB;IACxB,IAAI,gBAAgB;QAAE,OAAO;IAC7B,gBAAgB,GAAG,IAAI,CAAC;IAExB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACtB,MAAM,UAAU,GAAG;QACf,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU;KACD,CAAC;IAE3B,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE;QAChC,QAAQ,EAAE,CAAC,IAAuB,EAAE,EAAE,CAAC,UAAU;KACpD,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC3C,mBAAmB,EAAE,CAAC;IACtB,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB;IACjD,mBAAmB,EAAE,CAAC;IACtB,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/services/plugin-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AAGnC,OAAO,EACH,uBAAuB,EACvB,wBAAwB,IAAI,2BAA2B,EACvD,eAAe,IAAI,kBAAkB,EACrC,gBAAgB,IAAI,mBAAmB,EACvC,cAAc,IAAI,iBAAiB,EACnC,UAAU,IAAI,aAAa,EAC9B,MAAM,0BAA0B,CAAC;AAElC,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,SAAS,mBAAmB;IACxB,IAAI,gBAAgB;QAAE,OAAO;IAC7B,gBAAgB,GAAG,IAAI,CAAC;IAExB,MAAM,IAAI,GAAG,GAAG,EAAE;IAClB,CAAC,CAAC;IACF,MAAM,UAAU,GAAG;QACf,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU;KACD,CAAC;IAE3B,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE;QAChC,QAAQ,EAAE,CAAC,IAAuB,EAAE,EAAE,CAAC,UAAU;KACpD,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC3C,mBAAmB,EAAE,CAAC;IACtB,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB;IACjD,mBAAmB,EAAE,CAAC;IACtB,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACpD,mBAAmB,EAAE,CAAC;IACtB,MAAM,WAAW,GAAG,2BAA2B,MAAM,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,MAAM,GAAqB,GAAG,CAAC,OAAO,CAAC;IAE7C,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAClD,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AACpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,40 +1,3 @@
1
- import type { ProviderResponseStatus } from '@holokai/holo-types/entities';
2
- export interface FixtureScenario {
3
- name: string;
4
- plugin: string;
5
- protocol: string;
6
- streaming: boolean;
7
- providerChunks: any[];
8
- expectedText: string;
9
- expectedWire: string[];
10
- expectedStatus: number;
11
- expectedHeaders: Record<string, string>;
12
- expectedAudit?: {
13
- access_model: string;
14
- input_tokens?: number;
15
- output_tokens?: number;
16
- status: ProviderResponseStatus;
17
- metadata?: Record<string, any>;
18
- };
19
- expectedSdkResult?: any;
20
- sdkRequest?: any;
21
- sdkAdapter?: SdkAdapter;
22
- tags?: string[];
23
- requestId?: string;
24
- sourceId?: string;
25
- organizationId?: string;
26
- providerId?: string;
27
- protocolId?: string;
28
- payload?: Record<string, unknown>;
29
- }
30
- export interface SdkAdapter {
31
- family: string;
32
- call(fixture: FixtureScenario, port: number): Promise<any>;
33
- routes(fixture: FixtureScenario): {
34
- method: string;
35
- path: string;
36
- } | undefined;
37
- }
38
1
  export interface TestResult {
39
2
  name: string;
40
3
  category: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AAEzE,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IAEnB,cAAc,EAAE,GAAG,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IAErB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,aAAa,CAAC,EAAE;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,sBAAsB,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC,CAAC;IAEF,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE3D,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAClF;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@holokai/holo-test",
3
- "version": "1.4.2",
3
+ "version": "1.5.0",
4
4
  "type": "module",
5
5
  "description": "Test SDK for Holo provider plugins",
6
6
  "publishConfig": {
@@ -10,9 +10,6 @@
10
10
  "license": "MIT",
11
11
  "main": "./dist/index.js",
12
12
  "types": "./dist/index.d.ts",
13
- "bin": {
14
- "holo-test": "./dist/cli.js"
15
- },
16
13
  "exports": {
17
14
  ".": {
18
15
  "types": "./dist/index.d.ts",
@@ -30,8 +27,8 @@
30
27
  "clean": "rm -rf dist tsconfig.tsbuildinfo"
31
28
  },
32
29
  "dependencies": {
33
- "@holokai/holo-types": "^1.4.0",
34
- "@holokai/holo-sdk": "^1.4.0",
30
+ "@holokai/holo-types": "^1.5.0",
31
+ "@holokai/holo-sdk": "^1.5.0",
35
32
  "express": "^4.21.0",
36
33
  "diff": "^8.0.2",
37
34
  "reflect-metadata": "^0.2.2",
package/dist/cli.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'reflect-metadata';
3
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,kBAAkB,CAAC"}
package/dist/cli.js DELETED
@@ -1,83 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'reflect-metadata';
3
- import { resolve } from 'node:path';
4
- import { runTests } from './runner/test-runner.js';
5
- function parseArgs(argv) {
6
- const args = argv.slice(2);
7
- const options = {};
8
- for (let i = 0; i < args.length; i++) {
9
- const arg = args[i];
10
- if (arg === '--plugin' && i + 1 < args.length) {
11
- options.plugin = args[++i];
12
- }
13
- else if (arg === '--tag' && i + 1 < args.length) {
14
- options.tag = args[++i];
15
- }
16
- else if (arg === '--fixtures' && i + 1 < args.length) {
17
- options.fixtureDir = args[++i];
18
- }
19
- else if (arg === '--wire') {
20
- options.wire = true;
21
- }
22
- else if (arg === '--audit') {
23
- options.audit = true;
24
- }
25
- else if (arg === '--pipeline') {
26
- options.pipeline = true;
27
- }
28
- else if (arg === '--roundtrip') {
29
- options.roundtrip = true;
30
- }
31
- else if (arg === '--verbose' || arg === '-v') {
32
- options.verbose = true;
33
- }
34
- else if (arg === '--help' || arg === '-h') {
35
- printHelp();
36
- process.exit(0);
37
- }
38
- }
39
- return options;
40
- }
41
- function printHelp() {
42
- console.log(`
43
- holo-test — Plugin test harness for Holo provider plugins
44
-
45
- Usage:
46
- npx holo-test [options]
47
-
48
- Options:
49
- --plugin <name> Test only this plugin family (openai, claude, gemini, ollama)
50
- --tag <tag> Filter fixtures by tag
51
- --fixtures <dir> Path to fixtures directory (default: auto-discover)
52
- --wire Run wire format tests only
53
- --audit Run audit record tests only
54
- --pipeline Run full pipeline tests only
55
- --roundtrip Run SDK round-trip tests only
56
- --verbose, -v Show diffs on failure
57
- --help, -h Show this help
58
- `);
59
- }
60
- async function main() {
61
- const args = parseArgs(process.argv);
62
- const originalCwd = process.env['INIT_CWD'] ?? process.cwd();
63
- const fixtureDir = typeof args.fixtureDir === 'string'
64
- ? resolve(originalCwd, args.fixtureDir)
65
- : resolve(originalCwd, 'plugins');
66
- console.log(`holo-test — fixture dir: ${fixtureDir}`);
67
- const success = await runTests({
68
- fixtureDir,
69
- plugin: typeof args.plugin === 'string' ? args.plugin : undefined,
70
- tag: typeof args.tag === 'string' ? args.tag : undefined,
71
- wire: args.wire === true,
72
- audit: args.audit === true,
73
- pipeline: args.pipeline === true,
74
- roundtrip: args.roundtrip === true,
75
- verbose: args.verbose === true,
76
- });
77
- process.exit(success ? 0 : 1);
78
- }
79
- main().catch(err => {
80
- console.error(err);
81
- process.exit(1);
82
- });
83
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { FixtureScenario } from '../types.js';
2
- export declare function runAuditContract(family: string, fixture: FixtureScenario): Promise<void>;
3
- //# sourceMappingURL=audit-contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/audit-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAKjD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9F"}
@@ -1,11 +0,0 @@
1
- import { loadPlugin } from '../services/plugin-loader.js';
2
- import { testAudit } from '../testers/audit-tester.js';
3
- import { assertTestResult } from '../helpers/vitest-helpers.js';
4
- export async function runAuditContract(family, fixture) {
5
- if (!fixture.expectedAudit)
6
- return;
7
- const plugin = await loadPlugin(family);
8
- const result = await testAudit(plugin, fixture);
9
- assertTestResult(result);
10
- }
11
- //# sourceMappingURL=audit-contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-contract.js","sourceRoot":"","sources":["../../src/contracts/audit-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAC,SAAS,EAAC,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAAwB;IAC3E,IAAI,CAAC,OAAO,CAAC,aAAa;QAAE,OAAO;IACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { FixtureScenario } from '../types.js';
2
- export declare function runPipelineContract(family: string, fixture: FixtureScenario): Promise<void>;
3
- //# sourceMappingURL=pipeline-contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/pipeline-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAKjD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjG"}