@agents-at-scale/ark 0.1.36 → 0.1.38

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 (129) hide show
  1. package/README.md +53 -70
  2. package/dist/arkServices.d.ts +3 -27
  3. package/dist/arkServices.js +31 -3
  4. package/dist/arkServices.spec.js +118 -10
  5. package/dist/commands/chat/index.js +1 -2
  6. package/dist/commands/completion/index.js +0 -2
  7. package/dist/commands/generate/generators/project.js +33 -26
  8. package/dist/commands/generate/index.js +2 -2
  9. package/dist/commands/generate/templateDiscovery.js +13 -4
  10. package/dist/commands/install/index.js +49 -58
  11. package/dist/commands/models/create.d.ts +9 -1
  12. package/dist/commands/models/create.js +97 -90
  13. package/dist/commands/models/create.spec.js +9 -37
  14. package/dist/commands/models/index.js +8 -2
  15. package/dist/commands/models/index.spec.js +1 -1
  16. package/dist/commands/status/index.d.ts +3 -1
  17. package/dist/commands/status/index.js +54 -2
  18. package/dist/components/AsyncOperation.d.ts +54 -0
  19. package/dist/components/AsyncOperation.js +110 -0
  20. package/dist/components/ChatUI.js +39 -72
  21. package/dist/components/SelectMenu.d.ts +17 -0
  22. package/dist/components/SelectMenu.js +21 -0
  23. package/dist/components/StatusMessage.d.ts +20 -0
  24. package/dist/components/StatusMessage.js +13 -0
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/lib/arkApiClient.d.ts +1 -2
  28. package/dist/lib/arkApiClient.js +5 -6
  29. package/dist/lib/config.d.ts +4 -0
  30. package/dist/lib/config.js +9 -0
  31. package/dist/lib/nextSteps.js +1 -1
  32. package/dist/lib/nextSteps.spec.js +1 -1
  33. package/dist/lib/security.js +4 -0
  34. package/dist/lib/startup.js +6 -2
  35. package/dist/lib/startup.spec.js +1 -1
  36. package/dist/lib/timeout.d.ts +1 -0
  37. package/dist/lib/timeout.js +20 -0
  38. package/dist/lib/timeout.spec.d.ts +1 -0
  39. package/dist/lib/timeout.spec.js +14 -0
  40. package/dist/lib/waitForReady.d.ts +8 -0
  41. package/dist/lib/waitForReady.js +32 -0
  42. package/dist/lib/waitForReady.spec.d.ts +1 -0
  43. package/dist/lib/waitForReady.spec.js +104 -0
  44. package/dist/types/arkService.d.ts +27 -0
  45. package/dist/types/arkService.js +1 -0
  46. package/dist/ui/asyncOperations/connectingToArk.d.ts +15 -0
  47. package/dist/ui/asyncOperations/connectingToArk.js +63 -0
  48. package/package.json +7 -5
  49. package/templates/agent/agent.template.yaml +27 -0
  50. package/templates/marketplace/.editorconfig +24 -0
  51. package/templates/marketplace/.github/.keep +11 -0
  52. package/templates/marketplace/.github/workflows/.keep +16 -0
  53. package/templates/marketplace/.helmignore +23 -0
  54. package/templates/marketplace/.prettierrc.json +20 -0
  55. package/templates/marketplace/.yamllint.yml +53 -0
  56. package/templates/marketplace/README.md +197 -0
  57. package/templates/marketplace/agents/.keep +29 -0
  58. package/templates/marketplace/docs/.keep +19 -0
  59. package/templates/marketplace/mcp-servers/.keep +32 -0
  60. package/templates/marketplace/models/.keep +23 -0
  61. package/templates/marketplace/projects/.keep +43 -0
  62. package/templates/marketplace/queries/.keep +25 -0
  63. package/templates/marketplace/teams/.keep +29 -0
  64. package/templates/marketplace/tools/.keep +32 -0
  65. package/templates/marketplace/tools/examples/.keep +17 -0
  66. package/templates/mcp-server/Dockerfile +133 -0
  67. package/templates/mcp-server/Makefile +186 -0
  68. package/templates/mcp-server/README.md +178 -0
  69. package/templates/mcp-server/build.sh +76 -0
  70. package/templates/mcp-server/chart/Chart.yaml +22 -0
  71. package/templates/mcp-server/chart/templates/_helpers.tpl +62 -0
  72. package/templates/mcp-server/chart/templates/deployment.yaml +80 -0
  73. package/templates/mcp-server/chart/templates/hpa.yaml +32 -0
  74. package/templates/mcp-server/chart/templates/mcpserver.yaml +21 -0
  75. package/templates/mcp-server/chart/templates/secret.yaml +11 -0
  76. package/templates/mcp-server/chart/templates/service.yaml +15 -0
  77. package/templates/mcp-server/chart/templates/serviceaccount.yaml +13 -0
  78. package/templates/mcp-server/chart/values.yaml +84 -0
  79. package/templates/mcp-server/example-values.yaml +74 -0
  80. package/templates/mcp-server/examples/{{ .Values.mcpServerName }}-agent.yaml +33 -0
  81. package/templates/mcp-server/examples/{{ .Values.mcpServerName }}-query.yaml +24 -0
  82. package/templates/models/azure.yaml +33 -0
  83. package/templates/models/claude.yaml +28 -0
  84. package/templates/models/gemini.yaml +28 -0
  85. package/templates/models/openai.yaml +39 -0
  86. package/templates/project/.editorconfig +24 -0
  87. package/templates/project/.helmignore +24 -0
  88. package/templates/project/.prettierrc.json +16 -0
  89. package/templates/project/.yamllint.yml +50 -0
  90. package/templates/project/Chart.yaml +19 -0
  91. package/templates/project/Makefile +360 -0
  92. package/templates/project/README.md +377 -0
  93. package/templates/project/agents/.keep +11 -0
  94. package/templates/project/docs/.keep +14 -0
  95. package/templates/project/mcp-servers/.keep +34 -0
  96. package/templates/project/models/.keep +17 -0
  97. package/templates/project/queries/.keep +11 -0
  98. package/templates/project/scripts/setup.sh +108 -0
  99. package/templates/project/teams/.keep +11 -0
  100. package/templates/project/templates/00-rbac.yaml +168 -0
  101. package/templates/project/templates/01-models.yaml +11 -0
  102. package/templates/project/templates/02-mcp-servers.yaml +22 -0
  103. package/templates/project/templates/03-tools.yaml +12 -0
  104. package/templates/project/templates/04-agents.yaml +12 -0
  105. package/templates/project/templates/05-teams.yaml +11 -0
  106. package/templates/project/templates/06-queries.yaml +11 -0
  107. package/templates/project/templates/_helpers.tpl +91 -0
  108. package/templates/project/tests/e2e/.keep +10 -0
  109. package/templates/project/tests/unit/.keep +10 -0
  110. package/templates/project/tools/.keep +25 -0
  111. package/templates/project/tools/example-tool.yaml.disabled +94 -0
  112. package/templates/project/tools/examples/data-tool/Dockerfile +32 -0
  113. package/templates/project/values.yaml +141 -0
  114. package/templates/query/query.template.yaml +13 -0
  115. package/templates/team/team.template.yaml +17 -0
  116. package/templates/tool/.python-version +1 -0
  117. package/templates/tool/Dockerfile +23 -0
  118. package/templates/tool/README.md +238 -0
  119. package/templates/tool/agent.yaml +19 -0
  120. package/templates/tool/deploy.sh +10 -0
  121. package/templates/tool/deployment/deployment.yaml +31 -0
  122. package/templates/tool/deployment/kustomization.yaml +7 -0
  123. package/templates/tool/deployment/mcpserver.yaml +12 -0
  124. package/templates/tool/deployment/service.yaml +12 -0
  125. package/templates/tool/deployment/serviceaccount.yaml +8 -0
  126. package/templates/tool/deployment/values.yaml +3 -0
  127. package/templates/tool/pyproject.toml +9 -0
  128. package/templates/tool/src/main.py +36 -0
  129. package/templates/tool/uv.lock +498 -0
@@ -0,0 +1,377 @@
1
+ # {{projectName}}
2
+
3
+ Agents at Scale project for building AI agents and teams.
4
+
5
+ ## Quick Start (5 minutes)
6
+
7
+ ```bash
8
+ # 1. Navigate to your project
9
+ cd {{ .Values.projectName }}
10
+
11
+ # 2. Set your API keys
12
+ source .env # Edit this file first with your API keys
13
+
14
+ # 3. Deploy to your ARK cluster
15
+ make quickstart
16
+
17
+ # 4. Check your deployment
18
+ kubectl get agents,teams,queries --namespace {{ .Values.namespace }}
19
+ ```
20
+
21
+ That's it! Your agents, teams, and queries are all running on Agents at Scale.
22
+
23
+ ## What You Get
24
+
25
+ ### Core Examples
26
+
27
+ - **`agents/sample-agent.yaml`** - Basic AI agent
28
+ - **`teams/sample-team.yaml`** - Simple team (single agent)
29
+ - **`queries/sample-query.yaml`** - Query to test your agent
30
+ - **`models/azure-model.yaml`** - Model and secret configuration
31
+
32
+ ### Production Ready
33
+
34
+ - **Helm chart** that deploys agents, teams, queries, models, and tools
35
+ - **CI/CD pipeline** with GitHub Actions
36
+ - **Security** best practices and RBAC
37
+ - **Makefile** with all necessary commands
38
+
39
+ ## Project Structure
40
+
41
+ ```
42
+ {{ .Values.projectName }}/
43
+ ├── agents/ # Agent definitions
44
+ ├── teams/ # Team definitions
45
+ ├── queries/ # Queries
46
+ ├── models/ # Model configurations
47
+ ├── mcp-servers/ # MCP servers
48
+ ├── tools/ # Custom tools deployed as part of this project
49
+ ├── scripts/ # Setup and utility scripts
50
+ ├── docs/ # Additional documentation
51
+ └── .github/ # CI/CD workflows
52
+ ```
53
+
54
+ ## Core Concepts
55
+
56
+ ### Agents
57
+
58
+ Individual AI assistants with specific roles:
59
+
60
+ ```yaml
61
+ apiVersion: ark.mckinsey.com/v1alpha1
62
+ kind: Agent
63
+ metadata:
64
+ name: sample-agent
65
+ spec:
66
+ description: Sample agent demonstrating basic functionality
67
+ prompt: 'You are a helpful AI assistant...'
68
+ modelRef:
69
+ name: azure-gpt4
70
+ ```
71
+
72
+ ### Teams
73
+
74
+ Groups of agents that collaborate:
75
+
76
+ ```yaml
77
+ apiVersion: ark.mckinsey.com/v1alpha1
78
+ kind: Team
79
+ metadata:
80
+ name: sample-team
81
+ spec:
82
+ members:
83
+ - name: sample-agent
84
+ type: agent
85
+ strategy: 'sequential'
86
+ ```
87
+
88
+ ### Queries
89
+
90
+ Inputs to agents or teams:
91
+
92
+ ```yaml
93
+ apiVersion: ark.mckinsey.com/v1alpha1
94
+ kind: Query
95
+ metadata:
96
+ name: sample-query
97
+ spec:
98
+ input: 'Hello! Can you help me understand what you can do?'
99
+ targets:
100
+ - type: agent
101
+ name: sample-agent
102
+ ```
103
+
104
+ ## Prerequisites
105
+
106
+ - Kubernetes cluster with ARK installed
107
+ - kubectl configured
108
+ - API key for OpenAI/Azure/Anthropic
109
+
110
+ ## Commands
111
+
112
+ ```bash
113
+ # Quick commands
114
+ make help # Show all available commands
115
+ make quickstart # 5-minute setup and deploy
116
+ make status # Check deployment status
117
+
118
+ # Development
119
+ make dev # Run in development mode
120
+ make test # Run tests
121
+ make build # Build all components
122
+
123
+ # Deployment
124
+ make install # Deploy to ARK cluster
125
+ make upgrade # Upgrade deployment
126
+ make uninstall # Remove from cluster
127
+
128
+ # Utilities
129
+ make logs # View logs
130
+ make debug # Show debugging info
131
+ ```
132
+
133
+ ## Configuration
134
+
135
+ ### Environment Variables
136
+
137
+ ```bash
138
+ # Required: At least one API key
139
+ export OPENAI_API_KEY="your-key"
140
+ # OR
141
+ export AZURE_OPENAI_API_KEY="your-azure-key"
142
+ # OR
143
+ export ANTHROPIC_API_KEY="your-anthropic-key"
144
+
145
+ # Optional: Customize deployment
146
+ export NAMESPACE="your-namespace"
147
+ export PROJECT_NAME="your-project"
148
+ ```
149
+
150
+ ### Customize Values
151
+
152
+ Edit `chart/values.yaml` to configure:
153
+
154
+ - Model providers and API keys
155
+ - Resource limits and scaling
156
+ - Security policies
157
+ - Ingress settings
158
+
159
+ ## Adding More
160
+
161
+ ### More Agents
162
+
163
+ Create additional agents in `agents/`:
164
+
165
+ ```yaml
166
+ # agents/my-agent.yaml
167
+ apiVersion: ark.mckinsey.com/v1alpha1
168
+ kind: Agent
169
+ metadata:
170
+ name: my-agent
171
+ spec:
172
+ description: My custom agent
173
+ prompt: 'You are a specialist in...'
174
+ modelRef:
175
+ name: azure-gpt4
176
+ ```
177
+
178
+ ### More Teams
179
+
180
+ Create teams in `teams/` that reference your agents:
181
+
182
+ ```yaml
183
+ # teams/my-team.yaml
184
+ apiVersion: ark.mckinsey.com/v1alpha1
185
+ kind: Team
186
+ metadata:
187
+ name: my-team
188
+ spec:
189
+ members:
190
+ - name: sample-agent
191
+ type: agent
192
+ - name: my-agent
193
+ type: agent
194
+ strategy: 'round-robin'
195
+ ```
196
+
197
+ ### MCP Servers
198
+
199
+ Create production-ready MCP servers using the ark CLI generator:
200
+
201
+ ```bash
202
+ # Generate a new MCP server with full Kubernetes deployment
203
+ ark generate mcp-server my-server
204
+
205
+ # Choose from Node.js, Deno, Go, or Python
206
+ # Includes Dockerfile, Helm chart, and deployment scripts
207
+ # Creates example agents and queries for testing
208
+ ```
209
+
210
+ This creates a complete MCP server in `mcp-servers/my-server/` with:
211
+
212
+ - Multi-technology support (Node.js, Deno, Go, Python)
213
+ - Production-ready Kubernetes deployment
214
+ - Authentication and configuration options
215
+ - Comprehensive documentation and examples
216
+
217
+ ### Custom Tools
218
+
219
+ Create tools as Kubernetes YAML files in `tools/my-tool.yaml`:
220
+
221
+ ```yaml
222
+ # tools/my-tool.yaml
223
+ apiVersion: apps/v1
224
+ kind: Deployment
225
+ metadata:
226
+ name: {{ include "{{ .Values.projectName }}.fullname" . }}-my-tool
227
+ labels:
228
+ {{- include "{{ .Values.projectName }}.labels" . | nindent 4 }}
229
+ component: tool
230
+ spec:
231
+ replicas: 1
232
+ selector:
233
+ matchLabels:
234
+ {{- include "{{ .Values.projectName }}.selectorLabels" . | nindent 6 }}
235
+ component: tool
236
+ template:
237
+ spec:
238
+ containers:
239
+ - name: my-tool
240
+ image: "{{ .Values.image.registry }}/{{ .Values.project.name }}-my-tool:{{ .Values.image.tag }}"
241
+ ports:
242
+ - containerPort: 8000
243
+ name: http
244
+ ---
245
+ apiVersion: v1
246
+ kind: Service
247
+ metadata:
248
+ name: {{ include "{{ .Values.projectName }}.fullname" . }}-my-tool
249
+ spec:
250
+ ports:
251
+ - port: 8000
252
+ targetPort: http
253
+ selector:
254
+ {{- include "{{ .Values.projectName }}.selectorLabels" . | nindent 4 }}
255
+ component: tool
256
+ ---
257
+ apiVersion: ark.mckinsey.com/v1alpha1
258
+ kind: MCPServer
259
+ metadata:
260
+ name: my-tool
261
+ spec:
262
+ address:
263
+ valueFrom:
264
+ serviceRef:
265
+ name: {{ include "{{ .Values.projectName }}.fullname" . }}-my-tool
266
+ port: 8000
267
+ path: /mcp
268
+ transport: sse
269
+ ```
270
+
271
+ See `tools/example-tool.yaml.disabled` for a complete example.
272
+
273
+ **Tools vs MCP Servers:**
274
+
275
+ - **Tools** = Simple Kubernetes resources deployed as part of this project (YAML files in `tools/`)
276
+ - **MCP Servers** = Independent services with their own Helm charts, more complex deployments (generated in `mcp-servers/`)
277
+
278
+ ## Different Model Providers
279
+
280
+ ### Azure OpenAI
281
+
282
+ ```bash
283
+ export AZURE_OPENAI_API_KEY="your-key"
284
+ # Model files are copied from samples/models/ during project creation
285
+ # Edit the copied files and set API keys in .env
286
+ ```
287
+
288
+ ### OpenAI
289
+
290
+ ```bash
291
+ export OPENAI_API_KEY="your-key"
292
+ # Copy from samples: cp ../samples/models/openai.yaml models/
293
+ ```
294
+
295
+ ### AWS Bedrock
296
+
297
+ ```bash
298
+ export AWS_ACCESS_KEY_ID="your-key"
299
+ export AWS_SECRET_ACCESS_KEY="your-secret"
300
+ # Copy from samples: cp ../samples/models/claude.yaml models/
301
+ ```
302
+
303
+ ## Testing
304
+
305
+ ```bash
306
+ # Validate configurations
307
+ make test
308
+
309
+ # Test specific components
310
+ make test-manifests # Validate YAML files
311
+ make test-tools # Test custom tools
312
+
313
+ # Manual testing
314
+ kubectl apply -f queries/sample-query.yaml
315
+ kubectl get query sample-query -o yaml
316
+ ```
317
+
318
+ ## Troubleshooting
319
+
320
+ ### Common Issues
321
+
322
+ **Agent not responding**: Check model configuration and API keys
323
+
324
+ ```bash
325
+ kubectl get models
326
+ kubectl describe agent sample-agent
327
+ ```
328
+
329
+ **Tool not available**: Verify MCP server deployment
330
+
331
+ ```bash
332
+ kubectl get mcpservers
333
+ kubectl logs -l component=tool
334
+ ```
335
+
336
+ **Team issues**: Check agent references and team strategy
337
+
338
+ ```bash
339
+ kubectl describe team sample-team
340
+ ```
341
+
342
+ ### Debug Commands
343
+
344
+ ```bash
345
+ make debug # Show debugging information
346
+ make logs # View all logs
347
+ make status # Check deployment status
348
+ ```
349
+
350
+ ## CI/CD
351
+
352
+ The template includes GitHub Actions for:
353
+
354
+ - **Linting** YAML and code
355
+ - **Building** container images
356
+ - **Testing** manifests and tools
357
+ - **Security scanning** with Trivy
358
+ - **Deploying** to staging/production
359
+
360
+ ## Next Steps
361
+
362
+ 1. **Customize the sample agent** in `agents/sample-agent.yaml`
363
+ 2. **Add more agents** as separate YAML files
364
+ 3. **Create teams** to coordinate multiple agents
365
+ 4. **Build custom tools** when you need specialized functionality
366
+ 5. **Set up CI/CD** for automated deployment
367
+
368
+ ## Resources
369
+
370
+ - [ARK Documentation](https://mckinsey.github.io/agents-at-scale-ark/)
371
+ - [Model Context Protocol](https://github.com/modelcontextprotocol)
372
+ - [FastMCP Framework](https://github.com/jlowin/fastmcp)
373
+ - [ARK Samples](../../samples/)
374
+
375
+ ---
376
+
377
+ **Need help?** Check the troubleshooting section above or create an issue.
@@ -0,0 +1,11 @@
1
+ # Additional Agents
2
+
3
+ Add your custom agents here alongside the provided sample-agent.yaml example.
4
+
5
+ Each agent should be a separate YAML file:
6
+ ```
7
+ agents/
8
+ ├── sample-agent.yaml # Example provided
9
+ ├── my-agent.yaml # Your custom agent
10
+ └── another-agent.yaml # Another custom agent
11
+ ```
@@ -0,0 +1,14 @@
1
+ # Documentation
2
+
3
+ Add detailed documentation here as your project grows.
4
+
5
+ The main README.md covers all essentials for getting started.
6
+
7
+ Example structure:
8
+ ```
9
+ docs/
10
+ ├── architecture.md # System architecture
11
+ ├── deployment.md # Advanced deployment guide
12
+ ├── development.md # Development workflows
13
+ └── troubleshooting.md # Detailed troubleshooting
14
+ ```
@@ -0,0 +1,34 @@
1
+ # MCP Servers Directory
2
+
3
+ Add your MCP servers here using the ark CLI generator.
4
+
5
+ Each MCP server should be in its own subdirectory generated with:
6
+ ```bash
7
+ ark generate mcp-server <server-name>
8
+ ```
9
+
10
+ This will create a complete MCP server with:
11
+ - Dockerfile with multi-technology support
12
+ - Helm chart for Kubernetes deployment
13
+ - Build and deployment scripts
14
+ - Example agent and query configurations
15
+
16
+ Example structure:
17
+ ```
18
+ mcp-servers/
19
+ ├── weather-api/
20
+ │ ├── Dockerfile
21
+ │ ├── Makefile
22
+ │ ├── build.sh
23
+ │ ├── chart/
24
+ │ │ ├── Chart.yaml
25
+ │ │ ├── values.yaml
26
+ │ │ └── templates/
27
+ │ └── examples/
28
+ └── github-tools/
29
+ ├── Dockerfile
30
+ ├── chart/
31
+ └── ...
32
+ ```
33
+
34
+ The deployment system will automatically detect and deploy any MCP servers you add here.
@@ -0,0 +1,17 @@
1
+ # Models Directory
2
+ #
3
+ # This directory contains AI model configurations that will be automatically
4
+ # deployed when you run `make quickstart`.
5
+ #
6
+ # Model files are copied from samples/models/ during project creation.
7
+ # You can add more models by copying from the samples directory:
8
+ #
9
+ # cp ../samples/models/claude.yaml .
10
+ # cp ../samples/models/gemini.yaml .
11
+ #
12
+ # Each model file typically includes:
13
+ # - Secret for API key storage
14
+ # - Model resource configuration
15
+ #
16
+ # Set your API keys in the .env file - they will be substituted into the
17
+ # model YAML files using environment variable substitution.
@@ -0,0 +1,11 @@
1
+ # Additional Queries
2
+
3
+ Add your custom queries here alongside the provided sample-query.yaml example.
4
+
5
+ Each query should be a separate YAML file:
6
+ ```
7
+ queries/
8
+ ├── sample-query.yaml # Example provided
9
+ ├── my-query.yaml # Your custom query
10
+ └── another-query.yaml # Another custom query
11
+ ```
@@ -0,0 +1,108 @@
1
+ #!/bin/bash
2
+ # Simple setup script for Agents at Scale project template
3
+ set -e
4
+
5
+ # Colors
6
+ GREEN='\033[0;32m'
7
+ YELLOW='\033[1;33m'
8
+ BLUE='\033[0;34m'
9
+ RED='\033[0;31m'
10
+ NC='\033[0m'
11
+
12
+ PROJECT_NAME="${PROJECT_NAME:-{{ .Values.projectName }}}"
13
+ NAMESPACE="${NAMESPACE:-default}"
14
+
15
+ echo -e "${BLUE}🚀 Setting up Agents at Scale Project${NC}"
16
+ echo "Project: $PROJECT_NAME | Namespace: $NAMESPACE"
17
+ echo ""
18
+
19
+ # Check prerequisites
20
+ echo -e "${YELLOW}📋 Checking prerequisites...${NC}"
21
+ if ! command -v kubectl >/dev/null 2>&1; then
22
+ echo -e "${RED}❌ kubectl not found. Please install kubectl.${NC}"
23
+ exit 1
24
+ fi
25
+
26
+ if ! command -v helm >/dev/null 2>&1; then
27
+ echo -e "${RED}❌ helm not found. Please install helm.${NC}"
28
+ exit 1
29
+ fi
30
+
31
+ # Check cluster connection
32
+ if ! kubectl cluster-info >/dev/null 2>&1; then
33
+ echo -e "${RED}❌ Cannot connect to Kubernetes cluster${NC}"
34
+ exit 1
35
+ fi
36
+
37
+ echo -e "${GREEN}✅ Prerequisites check passed${NC}"
38
+
39
+ # Check for API keys
40
+ echo ""
41
+ echo -e "${YELLOW}🔐 Checking API keys...${NC}"
42
+ if [ -z "$OPENAI_API_KEY" ] && [ -z "$AZURE_OPENAI_API_KEY" ] && [ -z "$ANTHROPIC_API_KEY" ]; then
43
+ echo -e "${YELLOW}⚠️ No API keys found in environment.${NC}"
44
+ echo "Please set at least one of:"
45
+ echo " export OPENAI_API_KEY='your-key'"
46
+ echo " export AZURE_OPENAI_API_KEY='your-key'"
47
+ echo " export ANTHROPIC_API_KEY='your-key'"
48
+ echo ""
49
+ read -p "Continue anyway? (y/n): " -n 1 -r
50
+ echo
51
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
52
+ exit 1
53
+ fi
54
+ else
55
+ echo -e "${GREEN}✅ API key(s) found${NC}"
56
+ fi
57
+
58
+ # Create namespace
59
+ echo ""
60
+ echo -e "${YELLOW}🏗️ Setting up namespace...${NC}"
61
+ kubectl create namespace "$NAMESPACE" 2>/dev/null || echo "Namespace $NAMESPACE already exists"
62
+
63
+ # Create secrets if API keys exist
64
+ if [ -n "$OPENAI_API_KEY" ]; then
65
+ kubectl create secret generic openai-secret \
66
+ --from-literal=api-key="$OPENAI_API_KEY" \
67
+ --namespace="$NAMESPACE" \
68
+ --dry-run=client -o yaml | kubectl apply -f -
69
+ echo -e "${GREEN}✅ Created OpenAI secret${NC}"
70
+ fi
71
+
72
+ if [ -n "$AZURE_OPENAI_API_KEY" ]; then
73
+ kubectl create secret generic azure-openai-secret \
74
+ --from-literal=api-key="$AZURE_OPENAI_API_KEY" \
75
+ --namespace="$NAMESPACE" \
76
+ --dry-run=client -o yaml | kubectl apply -f -
77
+ echo -e "${GREEN}✅ Created Azure OpenAI secret${NC}"
78
+ fi
79
+
80
+ if [ -n "$ANTHROPIC_API_KEY" ]; then
81
+ kubectl create secret generic anthropic-secret \
82
+ --from-literal=api-key="$ANTHROPIC_API_KEY" \
83
+ --namespace="$NAMESPACE" \
84
+ --dry-run=client -o yaml | kubectl apply -f -
85
+ echo -e "${GREEN}✅ Created Anthropic secret${NC}"
86
+ fi
87
+
88
+ # Create local config
89
+ cat > .env <<EOF
90
+ PROJECT_NAME=$PROJECT_NAME
91
+ NAMESPACE=$NAMESPACE
92
+ EOF
93
+
94
+ cat > values.local.yaml <<EOF
95
+ project:
96
+ name: $PROJECT_NAME
97
+ namespace: $NAMESPACE
98
+ EOF
99
+
100
+ echo ""
101
+ echo -e "${GREEN}🎉 Setup complete!${NC}"
102
+ echo ""
103
+ echo -e "${BLUE}Next steps:${NC}"
104
+ echo " make install # Deploy to Kubernetes"
105
+ echo " make status # Check deployment"
106
+ echo ""
107
+ echo "Or use the quick start:"
108
+ echo " make quickstart # One-command deploy"
@@ -0,0 +1,11 @@
1
+ # Additional Teams
2
+
3
+ Add your custom teams here alongside the provided sample-team.yaml example.
4
+
5
+ Each team should be a separate YAML file:
6
+ ```
7
+ teams/
8
+ ├── sample-team.yaml # Example provided
9
+ ├── my-team.yaml # Your custom team
10
+ └── another-team.yaml # Another custom team
11
+ ```