@agents-at-scale/ark 0.1.37 → 0.1.39

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 (96) hide show
  1. package/dist/arkServices.js +9 -0
  2. package/dist/commands/chat/index.js +1 -2
  3. package/dist/commands/generate/generators/project.js +33 -26
  4. package/dist/commands/generate/index.js +2 -2
  5. package/dist/commands/generate/templateDiscovery.js +13 -4
  6. package/dist/components/AsyncOperation.d.ts +54 -0
  7. package/dist/components/AsyncOperation.js +110 -0
  8. package/dist/components/ChatUI.js +21 -72
  9. package/dist/components/SelectMenu.d.ts +17 -0
  10. package/dist/components/SelectMenu.js +21 -0
  11. package/dist/components/StatusMessage.d.ts +20 -0
  12. package/dist/components/StatusMessage.js +13 -0
  13. package/dist/ui/asyncOperations/connectingToArk.d.ts +15 -0
  14. package/dist/ui/asyncOperations/connectingToArk.js +63 -0
  15. package/package.json +5 -3
  16. package/templates/agent/agent.template.yaml +27 -0
  17. package/templates/marketplace/.editorconfig +24 -0
  18. package/templates/marketplace/.github/.keep +11 -0
  19. package/templates/marketplace/.github/workflows/.keep +16 -0
  20. package/templates/marketplace/.helmignore +23 -0
  21. package/templates/marketplace/.prettierrc.json +20 -0
  22. package/templates/marketplace/.yamllint.yml +53 -0
  23. package/templates/marketplace/README.md +197 -0
  24. package/templates/marketplace/agents/.keep +29 -0
  25. package/templates/marketplace/docs/.keep +19 -0
  26. package/templates/marketplace/mcp-servers/.keep +32 -0
  27. package/templates/marketplace/models/.keep +23 -0
  28. package/templates/marketplace/projects/.keep +43 -0
  29. package/templates/marketplace/queries/.keep +25 -0
  30. package/templates/marketplace/teams/.keep +29 -0
  31. package/templates/marketplace/tools/.keep +32 -0
  32. package/templates/marketplace/tools/examples/.keep +17 -0
  33. package/templates/mcp-server/Dockerfile +133 -0
  34. package/templates/mcp-server/Makefile +186 -0
  35. package/templates/mcp-server/README.md +178 -0
  36. package/templates/mcp-server/build.sh +76 -0
  37. package/templates/mcp-server/chart/Chart.yaml +22 -0
  38. package/templates/mcp-server/chart/templates/_helpers.tpl +62 -0
  39. package/templates/mcp-server/chart/templates/deployment.yaml +80 -0
  40. package/templates/mcp-server/chart/templates/hpa.yaml +32 -0
  41. package/templates/mcp-server/chart/templates/mcpserver.yaml +21 -0
  42. package/templates/mcp-server/chart/templates/secret.yaml +11 -0
  43. package/templates/mcp-server/chart/templates/service.yaml +15 -0
  44. package/templates/mcp-server/chart/templates/serviceaccount.yaml +13 -0
  45. package/templates/mcp-server/chart/values.yaml +84 -0
  46. package/templates/mcp-server/example-values.yaml +74 -0
  47. package/templates/mcp-server/examples/{{ .Values.mcpServerName }}-agent.yaml +33 -0
  48. package/templates/mcp-server/examples/{{ .Values.mcpServerName }}-query.yaml +24 -0
  49. package/templates/models/azure.yaml +33 -0
  50. package/templates/models/claude.yaml +28 -0
  51. package/templates/models/gemini.yaml +28 -0
  52. package/templates/models/openai.yaml +39 -0
  53. package/templates/project/.editorconfig +24 -0
  54. package/templates/project/.helmignore +24 -0
  55. package/templates/project/.prettierrc.json +16 -0
  56. package/templates/project/.yamllint.yml +50 -0
  57. package/templates/project/Chart.yaml +19 -0
  58. package/templates/project/Makefile +360 -0
  59. package/templates/project/README.md +377 -0
  60. package/templates/project/agents/.keep +11 -0
  61. package/templates/project/docs/.keep +14 -0
  62. package/templates/project/mcp-servers/.keep +34 -0
  63. package/templates/project/models/.keep +17 -0
  64. package/templates/project/queries/.keep +11 -0
  65. package/templates/project/scripts/setup.sh +108 -0
  66. package/templates/project/teams/.keep +11 -0
  67. package/templates/project/templates/00-rbac.yaml +168 -0
  68. package/templates/project/templates/01-models.yaml +11 -0
  69. package/templates/project/templates/02-mcp-servers.yaml +22 -0
  70. package/templates/project/templates/03-tools.yaml +12 -0
  71. package/templates/project/templates/04-agents.yaml +12 -0
  72. package/templates/project/templates/05-teams.yaml +11 -0
  73. package/templates/project/templates/06-queries.yaml +11 -0
  74. package/templates/project/templates/_helpers.tpl +91 -0
  75. package/templates/project/tests/e2e/.keep +10 -0
  76. package/templates/project/tests/unit/.keep +10 -0
  77. package/templates/project/tools/.keep +25 -0
  78. package/templates/project/tools/example-tool.yaml.disabled +94 -0
  79. package/templates/project/tools/examples/data-tool/Dockerfile +32 -0
  80. package/templates/project/values.yaml +141 -0
  81. package/templates/query/query.template.yaml +13 -0
  82. package/templates/team/team.template.yaml +17 -0
  83. package/templates/tool/.python-version +1 -0
  84. package/templates/tool/Dockerfile +23 -0
  85. package/templates/tool/README.md +238 -0
  86. package/templates/tool/agent.yaml +19 -0
  87. package/templates/tool/deploy.sh +10 -0
  88. package/templates/tool/deployment/deployment.yaml +31 -0
  89. package/templates/tool/deployment/kustomization.yaml +7 -0
  90. package/templates/tool/deployment/mcpserver.yaml +12 -0
  91. package/templates/tool/deployment/service.yaml +12 -0
  92. package/templates/tool/deployment/serviceaccount.yaml +8 -0
  93. package/templates/tool/deployment/values.yaml +3 -0
  94. package/templates/tool/pyproject.toml +9 -0
  95. package/templates/tool/src/main.py +36 -0
  96. package/templates/tool/uv.lock +498 -0
@@ -0,0 +1,80 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: {{ include "{{ .Values.mcpServerName }}.fullname" . }}
5
+ labels:
6
+ {{- include "{{ .Values.mcpServerName }}.labels" . | nindent 4 }}
7
+ spec:
8
+ {{- if not .Values.autoscaling.enabled }}
9
+ replicas: {{ .Values.replicaCount }}
10
+ {{- end }}
11
+ selector:
12
+ matchLabels:
13
+ {{- include "{{ .Values.mcpServerName }}.selectorLabels" . | nindent 6 }}
14
+ template:
15
+ metadata:
16
+ {{- with .Values.podAnnotations }}
17
+ annotations:
18
+ {{- toYaml . | nindent 8 }}
19
+ {{- end }}
20
+ labels:
21
+ {{- include "{{ .Values.mcpServerName }}.selectorLabels" . | nindent 8 }}
22
+ {{- with .Values.podLabels }}
23
+ {{- toYaml . | nindent 8 }}
24
+ {{- end }}
25
+ spec:
26
+ {{- with .Values.imagePullSecrets }}
27
+ imagePullSecrets:
28
+ {{- toYaml . | nindent 8 }}
29
+ {{- end }}
30
+ serviceAccountName: {{ include "{{ .Values.mcpServerName }}.serviceAccountName" . }}
31
+ securityContext:
32
+ {{- toYaml .Values.podSecurityContext | nindent 8 }}
33
+ containers:
34
+ - name: {{ .Chart.Name }}
35
+ securityContext:
36
+ {{- toYaml .Values.securityContext | nindent 12 }}
37
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
38
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
39
+ ports:
40
+ - name: http
41
+ containerPort: 8080
42
+ protocol: TCP
43
+ livenessProbe:
44
+ {{- toYaml .Values.livenessProbe | nindent 12 }}
45
+ readinessProbe:
46
+ {{- toYaml .Values.readinessProbe | nindent 12 }}
47
+ resources:
48
+ {{- toYaml .Values.resources | nindent 12 }}
49
+ env:
50
+ {{- if .Values.requiresAuth }}
51
+ - name: AUTH_TOKEN
52
+ valueFrom:
53
+ secretKeyRef:
54
+ name: {{ .Values.auth.existingSecret | default (include "{{ .Values.mcpServerName }}.fullname" .) }}
55
+ key: {{ .Values.auth.existingSecretKey }}
56
+ {{- end }}
57
+ {{- if .Values.hasCustomConfig }}
58
+ - name: CUSTOM_CONFIG
59
+ value: {{ .Values.config.customValue | quote }}
60
+ {{- end }}
61
+ {{- with .Values.volumeMounts }}
62
+ volumeMounts:
63
+ {{- toYaml . | nindent 12 }}
64
+ {{- end }}
65
+ {{- with .Values.volumes }}
66
+ volumes:
67
+ {{- toYaml . | nindent 8 }}
68
+ {{- end }}
69
+ {{- with .Values.nodeSelector }}
70
+ nodeSelector:
71
+ {{- toYaml . | nindent 8 }}
72
+ {{- end }}
73
+ {{- with .Values.affinity }}
74
+ affinity:
75
+ {{- toYaml . | nindent 8 }}
76
+ {{- end }}
77
+ {{- with .Values.tolerations }}
78
+ tolerations:
79
+ {{- toYaml . | nindent 8 }}
80
+ {{- end }}
@@ -0,0 +1,32 @@
1
+ {{- if .Values.autoscaling.enabled }}
2
+ apiVersion: autoscaling/v2
3
+ kind: HorizontalPodAutoscaler
4
+ metadata:
5
+ name: {{ include "{{ .Values.mcpServerName }}.fullname" . }}
6
+ labels:
7
+ {{- include "{{ .Values.mcpServerName }}.labels" . | nindent 4 }}
8
+ spec:
9
+ scaleTargetRef:
10
+ apiVersion: apps/v1
11
+ kind: Deployment
12
+ name: {{ include "{{ .Values.mcpServerName }}.fullname" . }}
13
+ minReplicas: {{ .Values.autoscaling.minReplicas }}
14
+ maxReplicas: {{ .Values.autoscaling.maxReplicas }}
15
+ metrics:
16
+ {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
17
+ - type: Resource
18
+ resource:
19
+ name: cpu
20
+ target:
21
+ type: Utilization
22
+ averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
23
+ {{- end }}
24
+ {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
25
+ - type: Resource
26
+ resource:
27
+ name: memory
28
+ target:
29
+ type: Utilization
30
+ averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
31
+ {{- end }}
32
+ {{- end }}
@@ -0,0 +1,21 @@
1
+ {{- if .Values.mcpServer.create }}
2
+ apiVersion: ark.mckinsey.com/v1alpha1
3
+ kind: MCPServer
4
+ metadata:
5
+ name: {{ .Values.mcpServer.name | default (include "{{ .Values.mcpServerName }}.fullname" .) }}
6
+ labels:
7
+ {{- include "{{ .Values.mcpServerName }}.labels" . | nindent 4 }}
8
+ spec:
9
+ address:
10
+ valueFrom:
11
+ serviceRef:
12
+ name: {{ include "{{ .Values.mcpServerName }}.fullname" . }}
13
+ port: http
14
+ {{- if .Values.mcpServer.path }}
15
+ path: {{ .Values.mcpServer.path }}
16
+ {{- end }}
17
+ transport: sse
18
+ {{- if .Values.mcpServer.description }}
19
+ description: {{ .Values.mcpServer.description | quote }}
20
+ {{- end }}
21
+ {{- end }}
@@ -0,0 +1,11 @@
1
+ {{- if and .Values.requiresAuth (not .Values.auth.existingSecret) }}
2
+ apiVersion: v1
3
+ kind: Secret
4
+ metadata:
5
+ name: {{ include "{{ .Values.mcpServerName }}.fullname" . }}
6
+ labels:
7
+ {{- include "{{ .Values.mcpServerName }}.labels" . | nindent 4 }}
8
+ type: Opaque
9
+ data:
10
+ {{ .Values.auth.existingSecretKey }}: {{ .Values.auth.token | b64enc }}
11
+ {{- end }}
@@ -0,0 +1,15 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: {{ include "{{ .Values.mcpServerName }}.fullname" . }}
5
+ labels:
6
+ {{- include "{{ .Values.mcpServerName }}.labels" . | nindent 4 }}
7
+ spec:
8
+ type: {{ .Values.service.type }}
9
+ ports:
10
+ - port: {{ .Values.service.port }}
11
+ targetPort: {{ .Values.service.targetPort }}
12
+ protocol: TCP
13
+ name: http
14
+ selector:
15
+ {{- include "{{ .Values.mcpServerName }}.selectorLabels" . | nindent 4 }}
@@ -0,0 +1,13 @@
1
+ {{- if .Values.serviceAccount.create -}}
2
+ apiVersion: v1
3
+ kind: ServiceAccount
4
+ metadata:
5
+ name: {{ include "{{ .Values.mcpServerName }}.serviceAccountName" . }}
6
+ labels:
7
+ {{- include "{{ .Values.mcpServerName }}.labels" . | nindent 4 }}
8
+ {{- with .Values.serviceAccount.annotations }}
9
+ annotations:
10
+ {{- toYaml . | nindent 4 }}
11
+ {{- end }}
12
+ automountServiceAccountToken: {{ .Values.serviceAccount.automount }}
13
+ {{- end }}
@@ -0,0 +1,84 @@
1
+ replicaCount: 1
2
+
3
+ image:
4
+ repository: {{ .Values.mcpServerName }}
5
+ pullPolicy: IfNotPresent
6
+ tag: "latest"
7
+
8
+ imagePullSecrets: []
9
+ nameOverride: ""
10
+ fullnameOverride: ""
11
+
12
+ serviceAccount:
13
+ create: true
14
+ automount: true
15
+ annotations: {}
16
+ name: ""
17
+
18
+ podAnnotations: {}
19
+ podLabels: {}
20
+
21
+ podSecurityContext:
22
+ fsGroup: 2000
23
+
24
+ securityContext:
25
+ capabilities:
26
+ drop:
27
+ - ALL
28
+ readOnlyRootFilesystem: true
29
+ runAsNonRoot: true
30
+ runAsUser: 1000
31
+
32
+ service:
33
+ type: ClusterIP
34
+ port: 8080
35
+ targetPort: 8080
36
+
37
+ resources:
38
+ limits:
39
+ cpu: 500m
40
+ memory: 512Mi
41
+ requests:
42
+ cpu: 100m
43
+ memory: 128Mi
44
+
45
+ livenessProbe:
46
+ tcpSocket:
47
+ port: http
48
+ readinessProbe:
49
+ tcpSocket:
50
+ port: http
51
+
52
+ autoscaling:
53
+ enabled: false
54
+ minReplicas: 1
55
+ maxReplicas: 100
56
+ targetCPUUtilizationPercentage: 80
57
+ # targetMemoryUtilizationPercentage: 80
58
+
59
+ nodeSelector: {}
60
+
61
+ tolerations: []
62
+
63
+ affinity: {}
64
+
65
+ {{- if .Values.requiresAuth }}
66
+ # Authentication configuration
67
+ auth:
68
+ token: ""
69
+ existingSecret: ""
70
+ existingSecretKey: "token"
71
+ {{- end }}
72
+
73
+ {{- if .Values.hasCustomConfig }}
74
+ # Custom configuration
75
+ config:
76
+ customValue: ""
77
+ {{- end }}
78
+
79
+ # MCP Server configuration
80
+ mcpServer:
81
+ create: true
82
+ name: ""
83
+ description: "{{ .Values.description }}"
84
+ path: "/mcp"
@@ -0,0 +1,74 @@
1
+ # Example values for {{ .Values.mcpServerName }} MCP Server
2
+
3
+ replicaCount: 2
4
+
5
+ image:
6
+ repository: {{ .Values.mcpServerName }}
7
+ pullPolicy: Always
8
+ tag: "v1.0.0"
9
+
10
+ service:
11
+ type: ClusterIP
12
+ port: 8080
13
+
14
+ resources:
15
+ limits:
16
+ cpu: 1000m
17
+ memory: 1Gi
18
+ requests:
19
+ cpu: 250m
20
+ memory: 256Mi
21
+
22
+ {{- if .Values.requiresAuth }}
23
+ # Authentication configuration
24
+ auth:
25
+ token: "your-auth-token-here"
26
+ # Or use existing secret:
27
+ # existingSecret: "my-auth-secret"
28
+ # existingSecretKey: "token"
29
+ {{- end }}
30
+
31
+ {{- if .Values.hasCustomConfig }}
32
+ # Custom configuration
33
+ config:
34
+ customValue: "custom-configuration-value"
35
+ {{- end }}
36
+
37
+ # MCP Server configuration
38
+ mcpServer:
39
+ create: true
40
+ name: "{{ .Values.mcpServerName }}-server"
41
+ description: "{{ .Values.description }}"
42
+ path: "/mcp"
43
+
44
+ # Enable autoscaling
45
+ autoscaling:
46
+ enabled: true
47
+ minReplicas: 2
48
+ maxReplicas: 10
49
+ targetCPUUtilizationPercentage: 70
50
+ targetMemoryUtilizationPercentage: 80
51
+
52
+ # Node selection
53
+ nodeSelector:
54
+ kubernetes.io/arch: amd64
55
+
56
+ # Tolerations
57
+ tolerations:
58
+ - key: "node-role.kubernetes.io/worker"
59
+ operator: "Exists"
60
+ effect: "NoSchedule"
61
+
62
+ # Affinity rules
63
+ affinity:
64
+ podAntiAffinity:
65
+ preferredDuringSchedulingIgnoredDuringExecution:
66
+ - weight: 100
67
+ podAffinityTerm:
68
+ labelSelector:
69
+ matchExpressions:
70
+ - key: app.kubernetes.io/name
71
+ operator: In
72
+ values:
73
+ - {{ .Values.mcpServerName }}
74
+ topologyKey: kubernetes.io/hostname
@@ -0,0 +1,33 @@
1
+ apiVersion: ark.mckinsey.com/v1alpha1
2
+ kind: Agent
3
+ metadata:
4
+ name: sample-{{ .Values.mcpServerName }}-agent
5
+ labels:
6
+ app.kubernetes.io/name: {{ .Values.mcpServerName }}
7
+ app.kubernetes.io/component: agent
8
+ spec:
9
+ model:
10
+ name: default
11
+ system: |
12
+ You are an AI assistant that can use {{ .Values.mcpServerName }} tools to help users.
13
+
14
+ Available tools from {{ .Values.mcpServerName }}:
15
+ {{- range .Values.tools }}
16
+ - {{ .name }}: {{ .description }}
17
+ {{- end }}
18
+
19
+ Use these tools when appropriate to help users with their requests.
20
+
21
+ tools:
22
+ - mcpServers:
23
+ - name: {{ .Values.mcpServerName }}-server
24
+ {{- if .Values.toolConfigurations }}
25
+ {{- range .Values.toolConfigurations }}
26
+ - name: {{ .name }}
27
+ description: {{ .description }}
28
+ {{- if .parameters }}
29
+ parameters:
30
+ {{- toYaml .parameters | nindent 8 }}
31
+ {{- end }}
32
+ {{- end }}
33
+ {{- end }}
@@ -0,0 +1,24 @@
1
+ apiVersion: ark.mckinsey.com/v1alpha1
2
+ kind: Query
3
+ metadata:
4
+ name: test-{{ .Values.mcpServerName }}-query
5
+ labels:
6
+ app.kubernetes.io/name: {{ .Values.mcpServerName }}
7
+ app.kubernetes.io/component: query
8
+ spec:
9
+ agents:
10
+ - name: sample-{{ .Values.mcpServerName }}-agent
11
+
12
+ query: |
13
+ {{- if .Values.sampleQuery }}
14
+ {{ .Values.sampleQuery }}
15
+ {{- else }}
16
+ Test the {{ .Values.mcpServerName }} MCP server by using its available tools.
17
+ {{- range .Values.tools }}
18
+ Please try using the {{ .name }} tool.
19
+ {{- end }}
20
+ {{- end }}
21
+
22
+ parameters:
23
+ timeout: "5m"
24
+ maxTokens: 1000
@@ -0,0 +1,33 @@
1
+ apiVersion: v1
2
+ kind: Secret
3
+ metadata:
4
+ name: {{ .Values.modelName }}-model-token
5
+ type: Opaque
6
+ stringData:
7
+ # IMPORTANT: Environment variables must be substituted before applying
8
+ # Use one of these methods:
9
+ # 1. make models-apply (recommended)
10
+ # 2. make quickstart (full deployment)
11
+ # 3. make fix-models (if you have broken queries)
12
+ # Manual: export AZURE_API_KEY="key" && envsubst < models/{{ .Values.modelName }}.yaml | kubectl apply -f -
13
+ token: ${AZURE_API_KEY}
14
+ ---
15
+ apiVersion: ark.mckinsey.com/v1alpha1
16
+ kind: Model
17
+ metadata:
18
+ name: {{ .Values.modelName }}
19
+ spec:
20
+ type: azure
21
+ model:
22
+ value: gpt-4.1-mini
23
+ config:
24
+ azure:
25
+ baseUrl:
26
+ value: ${AZURE_BASE_URL}
27
+ apiKey:
28
+ valueFrom:
29
+ secretKeyRef:
30
+ name: {{ .Values.modelName }}-model-token
31
+ key: token
32
+ apiVersion:
33
+ value: ${AZURE_API_VERSION}
@@ -0,0 +1,28 @@
1
+ apiVersion: v1
2
+ kind: Secret
3
+ metadata:
4
+ name: {{ .Values.modelName }}-api-key
5
+ type: Opaque
6
+ stringData:
7
+ # Make sure to use
8
+ # export CLAUDE_API_KEY="key"
9
+ # envsubst < models/{{ .Values.modelName }}.yaml | kubectl apply -f -
10
+ apiKey: ${CLAUDE_API_KEY}
11
+ ---
12
+ apiVersion: ark.mckinsey.com/v1alpha1
13
+ kind: Model
14
+ metadata:
15
+ name: {{ .Values.modelName }}
16
+ spec:
17
+ type: openai
18
+ model:
19
+ value: claude-opus-4-20250514
20
+ config:
21
+ openai:
22
+ baseUrl:
23
+ value: ${CLAUDE_BASE_URL}
24
+ apiKey:
25
+ valueFrom:
26
+ secretKeyRef:
27
+ name: {{ .Values.modelName }}-api-key
28
+ key: apiKey
@@ -0,0 +1,28 @@
1
+ apiVersion: v1
2
+ kind: Secret
3
+ metadata:
4
+ name: {{ .Values.modelName }}-model-token
5
+ type: Opaque
6
+ stringData:
7
+ # Make sure to use
8
+ # export GEMINI_API_KEY="key"
9
+ # envsubst < models/{{ .Values.modelName }}.yaml | kubectl apply -f -
10
+ token: ${GEMINI_API_KEY}
11
+ ---
12
+ apiVersion: ark.mckinsey.com/v1alpha1
13
+ kind: Model
14
+ metadata:
15
+ name: {{ .Values.modelName }}
16
+ spec:
17
+ type: openai
18
+ model:
19
+ value: gemini-2.0-flash
20
+ config:
21
+ openai:
22
+ baseUrl:
23
+ value: ${GEMINI_BASE_URL}
24
+ apiKey:
25
+ valueFrom:
26
+ secretKeyRef:
27
+ name: {{ .Values.modelName }}-model-token
28
+ key: token
@@ -0,0 +1,39 @@
1
+ apiVersion: v1
2
+ kind: Secret
3
+ metadata:
4
+ name: {{ .Values.modelName }}-secret
5
+ type: Opaque
6
+ stringData:
7
+ # Make sure to use
8
+ # export OPENAI_API_KEY="key"
9
+ # envsubst < models/{{ .Values.modelName }}.yaml | kubectl apply -f -
10
+ token: ${OPENAI_API_KEY}
11
+ ---
12
+ apiVersion: ark.mckinsey.com/v1alpha1
13
+ kind: Model
14
+ metadata:
15
+ name: {{ .Values.modelName }}
16
+ spec:
17
+ type: openai
18
+ model:
19
+ value: gpt-4.1-mini
20
+ config:
21
+ openai:
22
+ properties:
23
+ temperature:
24
+ value: "0.7"
25
+ max_tokens:
26
+ value: "2000"
27
+ top_p:
28
+ value: "0.95"
29
+ logprobs:
30
+ value: "true"
31
+ top_logprobs:
32
+ value: "5"
33
+ baseUrl:
34
+ value: ${OPENAI_BASE_URL}
35
+ apiKey:
36
+ valueFrom:
37
+ secretKeyRef:
38
+ name: {{ .Values.modelName }}-secret
39
+ key: token
@@ -0,0 +1,24 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ [*]
7
+ indent_style = space
8
+ indent_size = 2
9
+ end_of_line = lf
10
+ charset = utf-8
11
+ trim_trailing_whitespace = true
12
+ insert_final_newline = true
13
+
14
+ [*.md]
15
+ trim_trailing_whitespace = false
16
+
17
+ [*.{yaml,yml}]
18
+ indent_size = 2
19
+
20
+ [*.{js,ts,jsx,tsx}]
21
+ indent_size = 2
22
+
23
+ [Makefile]
24
+ indent_style = tab
@@ -0,0 +1,24 @@
1
+ # Patterns to ignore when building packages.
2
+ # This supports shell glob matching, relative path matching, and
3
+ # negation (prefixed with !). Only one pattern per line.
4
+ .DS_Store
5
+ # Common VCS dirs
6
+ .git/
7
+ .gitignore
8
+ .bzr/
9
+ .bzrignore
10
+ .hg/
11
+ .hgignore
12
+ .svn/
13
+ # Common backup files
14
+ *.swp
15
+ *.bak
16
+ *.tmp
17
+ *~
18
+ # Various IDEs
19
+ .project
20
+ .idea/
21
+ *.tmproj
22
+ .vscode/
23
+ # Build artifacts
24
+ resources/
@@ -0,0 +1,16 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": true,
4
+ "tabWidth": 2,
5
+ "trailingComma": "es5",
6
+ "bracketSpacing": false,
7
+ "overrides": [
8
+ {
9
+ "files": ["*.yaml", "*.yml"],
10
+ "options": {
11
+ "bracketSpacing": false,
12
+ "singleQuote": false
13
+ }
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,50 @@
1
+ # YAML Lint configuration for agent project
2
+
3
+ extends: default
4
+
5
+ rules:
6
+ # Allow longer lines for readability
7
+ line-length:
8
+ max: 120
9
+ level: warning
10
+
11
+ # Allow indentation for readability in YAML
12
+ indentation:
13
+ spaces: 2
14
+ indent-sequences: true
15
+ check-multi-line-strings: false
16
+
17
+ # Be more flexible with comments
18
+ comments:
19
+ min-spaces-from-content: 1
20
+
21
+ # Allow empty values for optional fields
22
+ empty-values:
23
+ forbid-in-block-mappings: false
24
+ forbid-in-flow-mappings: true
25
+
26
+ # Allow truthy values (on/off, yes/no)
27
+ truthy:
28
+ allowed-values: ["true", "false", "on", "off", "yes", "no"]
29
+
30
+ # Allow document start/end markers
31
+ document-start:
32
+ present: false
33
+
34
+ # Allow multiple documents in one file
35
+ document-end:
36
+ present: false
37
+
38
+ # Allow braces for Golang template syntax (Helm templates)
39
+ braces:
40
+ min-spaces-inside: 0
41
+ max-spaces-inside: 1
42
+ min-spaces-inside-empty: 0
43
+ max-spaces-inside-empty: 0
44
+
45
+ # Don't enforce bracket spacing for template syntax
46
+ brackets:
47
+ min-spaces-inside: 0
48
+ max-spaces-inside: 1
49
+ min-spaces-inside-empty: 0
50
+ max-spaces-inside-empty: 0
@@ -0,0 +1,19 @@
1
+ apiVersion: v2
2
+ name: {{.Values.projectName}}
3
+ description: A Helm chart for {{ .Values.projectName }} - Agents at Scale project
4
+ type: application
5
+ version: 0.1.0
6
+ appVersion: "1.0.0"
7
+ home: https://github.com/your-org/{{ .Values.projectName }}
8
+ sources:
9
+ - https://github.com/your-org/{{ .Values.projectName }}
10
+ maintainers:
11
+ - name: {{.Values.authorName}}
12
+ email: {{.Values.authorEmail}}
13
+ keywords:
14
+ - agents
15
+ - ai
16
+ - automation
17
+ - ark
18
+ annotations:
19
+ category: AI/ML