@@ -47,76 +47,100 @@ const integrationsRoot = path.join(gitRoot, 'typescript-sdk', 'integrations');
4747
4848// Define all runnable services keyed by a stable id
4949const ALL_SERVICES = {
50- 'server-starter' : {
50+ 'server-starter' : [ {
5151 command : 'poetry run dev' ,
5252 name : 'Server Starter' ,
5353 cwd : path . join ( integrationsRoot , 'server-starter/server/python' ) ,
5454 env : { PORT : 8000 } ,
55- } ,
56- 'server-starter-all' : {
55+ } ] ,
56+ 'server-starter-all' : [ {
5757 command : 'poetry run dev' ,
5858 name : 'Server AF' ,
5959 cwd : path . join ( integrationsRoot , 'server-starter-all-features/server/python' ) ,
6060 env : { PORT : 8001 } ,
61- } ,
62- 'agno' : {
61+ } ] ,
62+ 'agno' : [ {
6363 command : 'uv run dev' ,
6464 name : 'Agno' ,
6565 cwd : path . join ( integrationsRoot , 'agno/examples' ) ,
6666 env : { PORT : 8002 } ,
67- } ,
68- 'crew-ai' : {
67+ } ] ,
68+ 'crew-ai' : [ {
6969 command : 'poetry run dev' ,
7070 name : 'CrewAI' ,
7171 cwd : path . join ( integrationsRoot , 'crewai/python' ) ,
7272 env : { PORT : 8003 } ,
73- } ,
74- 'langgraph-fastapi' : {
73+ } ] ,
74+ 'langgraph-fastapi' : [ {
7575 command : 'poetry run dev' ,
7676 name : 'LG FastAPI' ,
7777 cwd : path . join ( integrationsRoot , 'langgraph/examples/python' ) ,
7878 env : {
7979 PORT : 8004 ,
8080 POETRY_VIRTUALENVS_IN_PROJECT : 'false' ,
8181 } ,
82- } ,
83- 'langgraph-platform-python' : {
82+ } ] ,
83+ 'langgraph-platform-python' : [ {
8484 command : 'pnpx @langchain/langgraph-cli@latest dev --no-browser --host 127.0.0.1 --port 8005' ,
8585 name : 'LG Platform Py' ,
8686 cwd : path . join ( integrationsRoot , 'langgraph/examples/python' ) ,
8787 env : { PORT : 8005 } ,
88- } ,
89- 'langgraph-platform-typescript' : {
88+ } ] ,
89+ 'langgraph-platform-typescript' : [ {
9090 command : 'pnpx @langchain/langgraph-cli@latest dev --no-browser --host 127.0.0.1 --port 8006' ,
9191 name : 'LG Platform TS' ,
9292 cwd : path . join ( integrationsRoot , 'langgraph/examples/typescript/' ) ,
9393 env : { PORT : 8006 } ,
94- } ,
95- 'llama-index' : {
94+ } ] ,
95+ 'llama-index' : [ {
9696 command : 'uv run dev' ,
9797 name : 'Llama Index' ,
9898 cwd : path . join ( integrationsRoot , 'llamaindex/server-py' ) ,
9999 env : { PORT : 8007 } ,
100- } ,
101- 'mastra' : {
100+ } ] ,
101+ 'mastra' : [ {
102102 command : 'npm run dev' ,
103103 name : 'Mastra' ,
104104 cwd : path . join ( integrationsRoot , 'mastra/example' ) ,
105105 env : { PORT : 8008 } ,
106- } ,
107- 'pydantic-ai' : {
106+ } ] ,
107+ 'pydantic-ai' : [ {
108108 command : 'uv run dev' ,
109109 name : 'Pydantic AI' ,
110110 cwd : path . join ( integrationsRoot , 'pydantic-ai/examples' ) ,
111111 env : { PORT : 8009 } ,
112- } ,
113- 'adk-middleware' : {
112+ } ] ,
113+ 'adk-middleware' : [ {
114114 command : 'uv run dev' ,
115115 name : 'ADK Middleware' ,
116116 cwd : path . join ( integrationsRoot , 'adk-middleware/python/examples' ) ,
117117 env : { PORT : 8010 } ,
118+ } ] ,
119+ 'a2a-middleware' : [ {
120+ command : 'uv run buildings_management.py' ,
121+ name : 'A2A Middleware: Buildings Management' ,
122+ cwd : path . join ( integrationsRoot , 'a2a-middleware/examples' ) ,
123+ env : { PORT : 8011 } ,
118124 } ,
119- 'dojo' : {
125+ {
126+ command : 'uv run finance.py' ,
127+ name : 'A2A Middleware: Finance' ,
128+ cwd : path . join ( integrationsRoot , 'a2a-middleware/examples' ) ,
129+ env : { PORT : 8012 } ,
130+ } ,
131+ {
132+ command : 'uv run it.py' ,
133+ name : 'A2A Middleware: IT' ,
134+ cwd : path . join ( integrationsRoot , 'a2a-middleware/examples' ) ,
135+ env : { PORT : 8013 } ,
136+ } ,
137+ {
138+ command : 'uv run orchestrator.py' ,
139+ name : 'A2A Middleware: Orchestrator' ,
140+ cwd : path . join ( integrationsRoot , 'a2a-middleware/examples' ) ,
141+ env : { PORT : 8014 } ,
142+ } ] ,
143+ 'dojo' : [ {
120144 command : 'pnpm run start' ,
121145 name : 'Dojo' ,
122146 cwd : path . join ( gitRoot , 'typescript-sdk/apps/dojo' ) ,
@@ -133,9 +157,13 @@ const ALL_SERVICES = {
133157 MASTRA_URL : 'http://localhost:8008' ,
134158 PYDANTIC_AI_URL : 'http://localhost:8009' ,
135159 ADK_MIDDLEWARE_URL : 'http://localhost:8010' ,
160+ A2A_MIDDLEWARE_BUILDINGS_MANAGEMENT_URL : 'http://localhost:8011' ,
161+ A2A_MIDDLEWARE_FINANCE_URL : 'http://localhost:8012' ,
162+ A2A_MIDDLEWARE_IT_URL : 'http://localhost:8013' ,
163+ A2A_MIDDLEWARE_ORCHESTRATOR_URL : 'http://localhost:8014' ,
136164 NEXT_PUBLIC_CUSTOM_DOMAIN_TITLE : 'cpkdojo.local___CopilotKit Feature Viewer' ,
137165 } ,
138- } ,
166+ } ] ,
139167} ;
140168
141169function printDryRunServices ( procs ) {
@@ -169,12 +197,12 @@ async function main() {
169197 // Build processes, warn for unknown keys
170198 const procs = [ ] ;
171199 for ( const key of selectedKeys ) {
172- const svc = ALL_SERVICES [ key ] ;
173- if ( ! svc ) {
200+ const svcs = ALL_SERVICES [ key ] ;
201+ if ( ! svcs || svcs . length === 0 ) {
174202 console . warn ( `Skipping unknown service: ${ key } ` ) ;
175203 continue ;
176204 }
177- procs . push ( svc ) ;
205+ procs . push ( ... svcs ) ;
178206 }
179207
180208 if ( dryRun ) {
0 commit comments