TAP version 13 # Subtest: Chat Pipeline — handleSingleModelChat decomposition # Subtest: should define resolveModelOrError helper ok 1 - should define resolveModelOrError helper --- duration_ms: 2.870676 type: 'test' ... # Subtest: should define checkPipelineGates helper ok 2 - should define checkPipelineGates helper --- duration_ms: 0.539959 type: 'test' ... # Subtest: should define executeChatWithBreaker helper ok 3 - should define executeChatWithBreaker helper --- duration_ms: 0.540611 type: 'test' ... # Subtest: should keep cost accounting in the core chat pipeline ok 4 - should keep cost accounting in the core chat pipeline --- duration_ms: 0.583888 type: 'test' ... # Subtest: handleSingleModelChat should use resolveModelOrError ok 5 - handleSingleModelChat should use resolveModelOrError --- duration_ms: 0.395358 type: 'test' ... # Subtest: handleSingleModelChat should use checkPipelineGates ok 6 - handleSingleModelChat should use checkPipelineGates --- duration_ms: 0.725771 type: 'test' ... # Subtest: handleSingleModelChat should use executeChatWithBreaker ok 7 - handleSingleModelChat should use executeChatWithBreaker --- duration_ms: 0.384009 type: 'test' ... # Subtest: chatCore should record cost for both non-streaming and streaming responses ok 8 - chatCore should record cost for both non-streaming and streaming responses --- duration_ms: 0.717301 type: 'test' ... 1..8 ok 1 - Chat Pipeline — handleSingleModelChat decomposition --- duration_ms: 12.510313 type: 'suite' ... # Subtest: Chat Pipeline — combo fallback support # Subtest: should import handleComboChat ok 1 - should import handleComboChat --- duration_ms: 0.683569 type: 'test' ... # Subtest: should delegate to handleSingleModelChat for each combo model ok 2 - should delegate to handleSingleModelChat for each combo model --- duration_ms: 0.903143 type: 'test' ... # Subtest: should check model availability before attempting combo models ok 3 - should check model availability before attempting combo models --- duration_ms: 0.37494 type: 'test' ... 1..3 ok 2 - Chat Pipeline — combo fallback support --- duration_ms: 2.526966 type: 'suite' ... # Subtest: Chat Pipeline — circuit breaker integration # Subtest: should import CircuitBreakerOpenError ok 1 - should import CircuitBreakerOpenError --- duration_ms: 0.500942 type: 'test' ... # Subtest: should handle CircuitBreakerOpenError with retry-after ok 2 - should handle CircuitBreakerOpenError with retry-after --- duration_ms: 0.262275 type: 'test' ... # Subtest: should reject requests when circuit is open ok 3 - should reject requests when circuit is open --- duration_ms: 0.399071 type: 'test' ... 1..3 ok 3 - Chat Pipeline — circuit breaker integration --- duration_ms: 1.532005 type: 'suite' ... # Subtest: DI Container — container.ts # Subtest: should export a container singleton ok 1 - should export a container singleton --- duration_ms: 293.16418 type: 'test' ... # Subtest: should register and resolve a custom service ok 2 - should register and resolve a custom service --- duration_ms: 9.047061 type: 'test' ... # Subtest: should return cached singleton on repeated resolve ok 3 - should return cached singleton on repeated resolve --- duration_ms: 2.700355 type: 'test' ... # Subtest: should throw on resolving unregistered service ok 4 - should throw on resolving unregistered service --- duration_ms: 3.280776 type: 'test' ... # Subtest: should have default registrations ok 5 - should have default registrations --- duration_ms: 2.960963 type: 'test' ... # Subtest: should support re-registration (overwrite) ok 6 - should support re-registration (overwrite) --- duration_ms: 2.683065 type: 'test' ... 1..6 ok 4 - DI Container — container.ts --- duration_ms: 314.82733 type: 'suite' ... # [Plugins] Registered "test-logger" (priority: 10, enabled: true) # Subtest: Plugin Architecture — plugins/index.ts # Subtest: should register and list plugins ok 1 - should register and list plugins --- duration_ms: 7.470741 type: 'test' ... # [Plugins] Registered "low" (priority: 200, enabled: true) # [Plugins] Registered "high" (priority: 1, enabled: true) # [Plugins] Registered "mid" (priority: 50, enabled: true) # Subtest: should sort plugins by priority ok 2 - should sort plugins by priority --- duration_ms: 3.51882 type: 'test' ... # [Plugins] Registered "first" (priority: 1, enabled: true) # [Plugins] Registered "second" (priority: 2, enabled: true) # Subtest: should run onRequest hooks in order ok 3 - should run onRequest hooks in order --- duration_ms: 2.940782 type: 'test' ... # [Plugins] Registered "blocker" (priority: 1, enabled: true) # [Plugins] Registered "never-runs" (priority: 2, enabled: true) # [Plugins] Request blocked by "blocker" # Subtest: should support request blocking ok 4 - should support request blocking --- duration_ms: 3.293988 type: 'test' ... # [Plugins] Registered "toggle-me" (priority: 100, enabled: true) # Subtest: should enable/disable plugins at runtime ok 5 - should enable/disable plugins at runtime --- duration_ms: 2.784824 type: 'test' ... # [Plugins] Registered "removable" (priority: 100, enabled: true) # Subtest: should unregister plugins ok 6 - should unregister plugins --- duration_ms: 2.608295 type: 'test' ... # [Plugins] Registered "response-modifier" (priority: 100, enabled: true) # Subtest: should run onResponse hooks ok 7 - should run onResponse hooks --- duration_ms: 2.746361 type: 'test' ... # [Plugins] Registered "error-handler" (priority: 100, enabled: true) # [Plugins] Error recovered by "error-handler" # Subtest: should run onError hooks and allow recovery ok 8 - should run onError hooks and allow recovery --- duration_ms: 2.899465 type: 'test' ... # Subtest: should return null from onError if no recovery ok 9 - should return null from onError if no recovery --- duration_ms: 2.313171 type: 'test' ... 1..9 ok 5 - Plugin Architecture — plugins/index.ts --- duration_ms: 31.770504 type: 'suite' ... # Subtest: Prompt Template Versioning — prompts.ts module existence # Subtest: prompts.ts should exist ok 1 - prompts.ts should exist --- duration_ms: 0.369635 type: 'test' ... # Subtest: should export CRUD functions ok 2 - should export CRUD functions --- duration_ms: 0.391134 type: 'test' ... # Subtest: should define PromptTemplate interface ok 3 - should define PromptTemplate interface --- duration_ms: 0.333598 type: 'test' ... # Subtest: should use content hashing for deduplication ok 4 - should use content hashing for deduplication --- duration_ms: 0.31716 type: 'test' ... 1..4 ok 6 - Prompt Template Versioning — prompts.ts module existence --- duration_ms: 1.752975 type: 'suite' ... # Subtest: Eval Scheduler — scheduler.ts module existence # Subtest: scheduler.ts should exist ok 1 - scheduler.ts should exist --- duration_ms: 0.347059 type: 'test' ... # Subtest: should export scheduling functions ok 2 - should export scheduling functions --- duration_ms: 0.582836 type: 'test' ... # Subtest: should define ScheduledEval and EvalRunResult types ok 3 - should define ScheduledEval and EvalRunResult types --- duration_ms: 0.459196 type: 'test' ... # Subtest: should have pluggable output provider ok 4 - should have pluggable output provider --- duration_ms: 0.310267 type: 'test' ... 1..4 ok 7 - Eval Scheduler — scheduler.ts module existence --- duration_ms: 1.961338 type: 'suite' ... # Subtest: Migration System — files exist # Subtest: migrationRunner.ts should exist ok 1 - migrationRunner.ts should exist --- duration_ms: 0.381312 type: 'test' ... # Subtest: 001_initial_schema.sql should exist ok 2 - 001_initial_schema.sql should exist --- duration_ms: 0.248336 type: 'test' ... # Subtest: core.ts should reference migration runner ok 3 - core.ts should reference migration runner --- duration_ms: 0.542947 type: 'test' ... 1..3 ok 8 - Migration System — files exist --- duration_ms: 1.448447 type: 'suite' ... # Subtest: CORS — centralized configuration # Subtest: shared/utils/cors.ts should exist ok 1 - shared/utils/cors.ts should exist --- duration_ms: 0.374376 type: 'test' ... # Subtest: should export CORS_HEADERS and CORS_ORIGIN ok 2 - should export CORS_HEADERS and CORS_ORIGIN --- duration_ms: 0.390035 type: 'test' ... 1..2 ok 9 - CORS — centralized configuration --- duration_ms: 0.962465 type: 'suite' ... 1..9 # tests 42 # suites 9 # pass 42 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 869.387894