@@ -3,7 +3,7 @@ import { join } from "node:path";
33import { tmpdir } from "node:os" ;
44import { afterEach , describe , expect , it } from "vitest" ;
55import type { BackendAdapter } from "@agent-dispatch/core" ;
6- import { createRuntimeServiceFromConfig , loadAgentDispatchConfig } from "../src/index.js" ;
6+ import { createRuntimeCheckReport , createRuntimeServiceFromConfig , loadAgentDispatchConfig } from "../src/index.js" ;
77
88let stateDir : string | undefined ;
99
@@ -69,4 +69,46 @@ describe("MCP bootstrap", () => {
6969
7070 expect ( runtime . listProviders ( ) ) . toEqual ( [ "aws" ] ) ;
7171 } ) ;
72+
73+ it ( "creates a safe stdio preflight report" , async ( ) => {
74+ stateDir = await mkdtemp ( join ( tmpdir ( ) , "agentdispatch-mcp-" ) ) ;
75+ const adapter : BackendAdapter = {
76+ name : "mock" ,
77+ provider : "aws" ,
78+ capabilities : ( ) => [ { provider : "aws" , capability : "agent-runtime" , taskTypes : [ "agent.run" ] , targetModes : [ "session" ] } ] ,
79+ resolveTarget : async ( request ) => ( {
80+ account : { name : request . accountProfile , provider : request . provider , credentialSource : "test" } ,
81+ target : { provider : request . provider , accountProfile : request . accountProfile , capability : request . capability , backend : "mock" , mode : request . target . mode }
82+ } ) ,
83+ provision : async ( ) => ( { } ) ,
84+ startTask : async ( ) => ( { result : { ok : true } } ) ,
85+ streamEvents : async function * ( ) { } ,
86+ cancel : async ( ) => ( { status : "cancelled" } ) ,
87+ cleanup : async ( ) => ( { status : "skipped" } )
88+ } ;
89+ const runtime = await createRuntimeServiceFromConfig ( {
90+ stateDir,
91+ accounts : { "dev-aws" : { provider : "aws" , region : "us-west-2" , credentialSource : "aws-sdk-default" , details : { secret : "not-returned" } } } ,
92+ backends : {
93+ mock : { provider : "aws" , capability : "agent-runtime" , adapter : "mock" , account : "dev-aws" }
94+ } ,
95+ runtimes : {
96+ "research-agent" : {
97+ provider : "aws" ,
98+ account : "dev-aws" ,
99+ capability : "agent-runtime" ,
100+ backend : "mock" ,
101+ target : { mode : "session" }
102+ }
103+ }
104+ } , { adapters : [ adapter ] } ) ;
105+
106+ expect ( createRuntimeCheckReport ( runtime ) ) . toMatchObject ( {
107+ ok : true ,
108+ providers : [ "aws" ] ,
109+ accounts : [ { name : "dev-aws" , provider : "aws" , region : "us-west-2" , credentialSource : "aws-sdk-default" } ] ,
110+ runtimes : [ { name : "research-agent" , backend : "mock" } ]
111+ } ) ;
112+ expect ( JSON . stringify ( createRuntimeCheckReport ( runtime ) ) ) . not . toContain ( "not-returned" ) ;
113+ } ) ;
72114} ) ;
0 commit comments