@vfarcic/dot-ai 0.4.9 → 0.5.1
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.
- package/.claude/commands/context-load.md +11 -0
- package/.claude/commands/context-save.md +16 -0
- package/.claude/commands/prd-done.md +115 -0
- package/.claude/commands/prd-get.md +25 -0
- package/.claude/commands/prd-start.md +87 -0
- package/.claude/commands/task-done.md +77 -0
- package/.claude/commands/tests-reminder.md +32 -0
- package/.claude/settings.local.json +20 -0
- package/.eslintrc.json +25 -0
- package/.github/workflows/ci.yml +170 -0
- package/.prettierrc.json +10 -0
- package/.teller.yml +8 -0
- package/CLAUDE.md +162 -0
- package/assets/images/logo.png +0 -0
- package/bin/dot-ai.ts +47 -0
- package/destroy.sh +45 -0
- package/devbox.json +13 -0
- package/devbox.lock +225 -0
- package/docs/API.md +449 -0
- package/docs/CONTEXT.md +49 -0
- package/docs/DEVELOPMENT.md +203 -0
- package/docs/NEXT_STEPS.md +97 -0
- package/docs/STAGE_BASED_API.md +97 -0
- package/docs/cli-guide.md +798 -0
- package/docs/design.md +750 -0
- package/docs/discovery-engine.md +515 -0
- package/docs/error-handling.md +429 -0
- package/docs/function-registration.md +157 -0
- package/docs/mcp-guide.md +416 -0
- package/package.json +2 -123
- package/renovate.json +51 -0
- package/setup.sh +111 -0
- package/{dist/cli.js → src/cli.ts} +26 -19
- package/src/core/claude.ts +280 -0
- package/src/core/deploy-operation.ts +127 -0
- package/src/core/discovery.ts +900 -0
- package/src/core/error-handling.ts +562 -0
- package/src/core/index.ts +143 -0
- package/src/core/kubernetes-utils.ts +218 -0
- package/src/core/memory.ts +148 -0
- package/src/core/schema.ts +830 -0
- package/src/core/session-utils.ts +97 -0
- package/src/core/workflow.ts +234 -0
- package/src/index.ts +18 -0
- package/src/interfaces/cli.ts +872 -0
- package/src/interfaces/mcp.ts +183 -0
- package/src/mcp/server.ts +131 -0
- package/src/tools/answer-question.ts +807 -0
- package/src/tools/choose-solution.ts +169 -0
- package/src/tools/deploy-manifests.ts +94 -0
- package/src/tools/generate-manifests.ts +502 -0
- package/src/tools/index.ts +41 -0
- package/src/tools/recommend.ts +370 -0
- package/tests/__mocks__/@kubernetes/client-node.ts +106 -0
- package/tests/build-system.test.ts +345 -0
- package/tests/configuration.test.ts +226 -0
- package/tests/core/deploy-operation.test.ts +38 -0
- package/tests/core/discovery.test.ts +1648 -0
- package/tests/core/error-handling.test.ts +632 -0
- package/tests/core/schema.test.ts +1658 -0
- package/tests/core/session-utils.test.ts +245 -0
- package/tests/core.test.ts +439 -0
- package/tests/fixtures/configmap-no-labels.yaml +8 -0
- package/tests/fixtures/crossplane-app-configuration.yaml +6 -0
- package/tests/fixtures/crossplane-providers.yaml +45 -0
- package/tests/fixtures/crossplane-rbac.yaml +48 -0
- package/tests/fixtures/invalid-configmap.yaml +8 -0
- package/tests/fixtures/invalid-deployment.yaml +17 -0
- package/tests/fixtures/test-deployment.yaml +28 -0
- package/tests/fixtures/valid-configmap.yaml +15 -0
- package/tests/infrastructure.test.ts +426 -0
- package/tests/interfaces/cli.test.ts +1036 -0
- package/tests/interfaces/mcp.test.ts +139 -0
- package/tests/kubernetes-utils.test.ts +200 -0
- package/tests/mcp/server.test.ts +126 -0
- package/tests/setup.ts +31 -0
- package/tests/tools/answer-question.test.ts +367 -0
- package/tests/tools/choose-solution.test.ts +481 -0
- package/tests/tools/deploy-manifests.test.ts +185 -0
- package/tests/tools/generate-manifests.test.ts +441 -0
- package/tests/tools/index.test.ts +111 -0
- package/tests/tools/recommend.test.ts +180 -0
- package/tsconfig.json +34 -0
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/core/claude.d.ts +0 -42
- package/dist/core/claude.d.ts.map +0 -1
- package/dist/core/claude.js +0 -229
- package/dist/core/deploy-operation.d.ts +0 -38
- package/dist/core/deploy-operation.d.ts.map +0 -1
- package/dist/core/deploy-operation.js +0 -101
- package/dist/core/discovery.d.ts +0 -162
- package/dist/core/discovery.d.ts.map +0 -1
- package/dist/core/discovery.js +0 -758
- package/dist/core/error-handling.d.ts +0 -167
- package/dist/core/error-handling.d.ts.map +0 -1
- package/dist/core/error-handling.js +0 -399
- package/dist/core/index.d.ts +0 -42
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -123
- package/dist/core/kubernetes-utils.d.ts +0 -38
- package/dist/core/kubernetes-utils.d.ts.map +0 -1
- package/dist/core/kubernetes-utils.js +0 -177
- package/dist/core/memory.d.ts +0 -45
- package/dist/core/memory.d.ts.map +0 -1
- package/dist/core/memory.js +0 -113
- package/dist/core/schema.d.ts +0 -187
- package/dist/core/schema.d.ts.map +0 -1
- package/dist/core/schema.js +0 -655
- package/dist/core/session-utils.d.ts +0 -29
- package/dist/core/session-utils.d.ts.map +0 -1
- package/dist/core/session-utils.js +0 -121
- package/dist/core/workflow.d.ts +0 -70
- package/dist/core/workflow.d.ts.map +0 -1
- package/dist/core/workflow.js +0 -161
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -32
- package/dist/interfaces/cli.d.ts +0 -74
- package/dist/interfaces/cli.d.ts.map +0 -1
- package/dist/interfaces/cli.js +0 -769
- package/dist/interfaces/mcp.d.ts +0 -30
- package/dist/interfaces/mcp.d.ts.map +0 -1
- package/dist/interfaces/mcp.js +0 -105
- package/dist/mcp/server.d.ts +0 -9
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js +0 -151
- package/dist/tools/answer-question.d.ts +0 -27
- package/dist/tools/answer-question.d.ts.map +0 -1
- package/dist/tools/answer-question.js +0 -696
- package/dist/tools/choose-solution.d.ts +0 -23
- package/dist/tools/choose-solution.d.ts.map +0 -1
- package/dist/tools/choose-solution.js +0 -171
- package/dist/tools/deploy-manifests.d.ts +0 -25
- package/dist/tools/deploy-manifests.d.ts.map +0 -1
- package/dist/tools/deploy-manifests.js +0 -74
- package/dist/tools/generate-manifests.d.ts +0 -23
- package/dist/tools/generate-manifests.d.ts.map +0 -1
- package/dist/tools/generate-manifests.js +0 -424
- package/dist/tools/index.d.ts +0 -11
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -34
- package/dist/tools/recommend.d.ts +0 -23
- package/dist/tools/recommend.d.ts.map +0 -1
- package/dist/tools/recommend.js +0 -332
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# DevOps AI Toolkit Project - Claude Code Integration Guide
|
|
2
|
+
|
|
3
|
+
## ⚠️ MANDATORY TASK COMPLETION CHECKLIST ⚠️
|
|
4
|
+
|
|
5
|
+
**🔴 BEFORE MARKING ANY TASK/SUBTASK AS COMPLETE:**
|
|
6
|
+
|
|
7
|
+
□ **Tests Written**: Write tests for new functionality (can be after implementation)
|
|
8
|
+
□ **All Tests Pass**: Run `npm test` - ALL 562+ tests must pass
|
|
9
|
+
□ **No Test Failures**: Fix any failing tests before proceeding
|
|
10
|
+
□ **CLAUDE.md Updated**: Update this file if new features/commands/structure added
|
|
11
|
+
|
|
12
|
+
**❌ TASK IS NOT COMPLETE IF:**
|
|
13
|
+
- Any tests are failing
|
|
14
|
+
- New code lacks test coverage
|
|
15
|
+
- You haven't run `npm test` to verify
|
|
16
|
+
|
|
17
|
+
## PERMANENT INSTRUCTIONS
|
|
18
|
+
|
|
19
|
+
**CRITICAL DEVELOPMENT RULES - NEVER OVERRIDE:**
|
|
20
|
+
|
|
21
|
+
1. **Always Write Tests**: When making code changes, you MUST write or update tests to validate the changes
|
|
22
|
+
2. **Always Run All Tests**: Before marking any task as complete, run `npm test` to ensure all tests pass
|
|
23
|
+
3. **Never Claim Done with Failing Tests**: A task is NOT complete if any tests are failing - fix all test failures first
|
|
24
|
+
4. **Test-Driven Validation**: Changes are only considered successful when validated by passing tests
|
|
25
|
+
5. **Always Update CLAUDE.md**: After finishing any task, check if CLAUDE.md needs updates to reflect new features, commands, structure changes, or documentation
|
|
26
|
+
|
|
27
|
+
## 🛑 TESTING REMINDERS
|
|
28
|
+
|
|
29
|
+
- **Current test suite**: 562+ tests across 21 suites - maintain this standard
|
|
30
|
+
- **Implementation flow**: Code → Tests → `npm test` → Mark complete
|
|
31
|
+
- **Pattern matching**: Look at `tests/schema.test.ts`, `tests/cli.test.ts` for testing patterns
|
|
32
|
+
- **Test organization**: Mirror source code structure - tests should be organized using the same naming convention as the code they're testing
|
|
33
|
+
- `src/core/schema.ts` → `tests/core/schema.test.ts`
|
|
34
|
+
- `src/interfaces/cli.ts` → `tests/interfaces/cli.test.ts`
|
|
35
|
+
- `src/mcp/server.ts` → `tests/mcp/server.test.ts`
|
|
36
|
+
- Keep integration tests separate in `tests/integration/`
|
|
37
|
+
|
|
38
|
+
## Project Overview
|
|
39
|
+
|
|
40
|
+
**DevOps AI Toolkit** is an intelligent Kubernetes application deployment agent that discovers cluster capabilities and provides AI-powered recommendations for deploying applications using available resources.
|
|
41
|
+
|
|
42
|
+
### Core Features
|
|
43
|
+
- **Cluster Discovery**: Automatically discovers Kubernetes resources and custom operators
|
|
44
|
+
- **AI Recommendations**: Get intelligent deployment recommendations based on your intent
|
|
45
|
+
- **Solution Enhancement**: Process open-ended user requirements to enhance configurations
|
|
46
|
+
- **Operator Integration**: Leverages custom operators like Crossplane, ArgoCD when available
|
|
47
|
+
|
|
48
|
+
### Key Commands
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Core dot-ai commands
|
|
52
|
+
dot-ai discover # Discover cluster resources
|
|
53
|
+
dot-ai recommend --intent "description" # Get AI-powered recommendations
|
|
54
|
+
dot-ai enhance --solution solution.json # Enhance solutions with user requirements
|
|
55
|
+
dot-ai explain Pod # Get detailed resource schema
|
|
56
|
+
dot-ai fingerprint # Analyze cluster capabilities
|
|
57
|
+
|
|
58
|
+
# Development commands
|
|
59
|
+
npm test # Run all tests
|
|
60
|
+
npm run build # Build the project
|
|
61
|
+
npm run mcp:start # Start MCP server
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## AI Prompt Management 🤖
|
|
65
|
+
|
|
66
|
+
**CRITICAL DEVELOPMENT RULE: NEVER hard-code AI prompts in source code**
|
|
67
|
+
|
|
68
|
+
All AI prompts are stored as markdown files in the `prompts/` directory and loaded dynamically:
|
|
69
|
+
|
|
70
|
+
### Prompt File Structure
|
|
71
|
+
```
|
|
72
|
+
prompts/
|
|
73
|
+
├── intent-validation.md # Validates user intent specificity
|
|
74
|
+
├── resource-selection.md # AI resource candidate selection
|
|
75
|
+
├── resource-solution-ranking.md # AI resource ranking/scoring
|
|
76
|
+
├── question-generation.md # Generate configuration questions
|
|
77
|
+
├── solution-enhancement.md # Enhance solutions with requirements
|
|
78
|
+
├── resource-analysis.md # Analyze resource capabilities
|
|
79
|
+
└── tool-instructions/ # Agent instructions for tools
|
|
80
|
+
├── recommend.md # User interaction requirements
|
|
81
|
+
├── enhance-solution.md # Enhancement tool instructions
|
|
82
|
+
└── recommendation-workflow.md # Workflow instructions
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Loading Pattern (ALWAYS USE THIS)
|
|
86
|
+
```typescript
|
|
87
|
+
// Load prompt template from file
|
|
88
|
+
const fs = await import('fs');
|
|
89
|
+
const path = await import('path');
|
|
90
|
+
|
|
91
|
+
const promptPath = path.join(process.cwd(), 'prompts', 'your-prompt.md');
|
|
92
|
+
const template = fs.readFileSync(promptPath, 'utf8');
|
|
93
|
+
|
|
94
|
+
// Replace template variables
|
|
95
|
+
const finalPrompt = template
|
|
96
|
+
.replace('{variable1}', value1)
|
|
97
|
+
.replace('{variable2}', value2);
|
|
98
|
+
|
|
99
|
+
// Send to AI
|
|
100
|
+
const response = await claudeIntegration.sendMessage(finalPrompt);
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Template Variables
|
|
104
|
+
- Use `{variableName}` format in markdown files
|
|
105
|
+
- Replace with `.replace('{variableName}', actualValue)`
|
|
106
|
+
- Keep prompts readable and maintainable
|
|
107
|
+
|
|
108
|
+
### Why File-Based Prompts?
|
|
109
|
+
- **Version control**: Track prompt changes in git
|
|
110
|
+
- **Collaboration**: Non-technical team members can edit prompts
|
|
111
|
+
- **Testing**: Easy to test different prompt variations
|
|
112
|
+
- **Maintainability**: Separate concerns (logic vs. prompts)
|
|
113
|
+
- **Consistency**: Standardized approach across all AI features
|
|
114
|
+
|
|
115
|
+
### Adding New AI Features
|
|
116
|
+
1. **Create prompt file**: `prompts/your-feature.md`
|
|
117
|
+
2. **Use template variables**: `{intent}`, `{context}`, etc.
|
|
118
|
+
3. **Load in code**: Follow the standard loading pattern above
|
|
119
|
+
4. **Never hardcode**: Always load from file system
|
|
120
|
+
|
|
121
|
+
### Project Structure
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
src/
|
|
125
|
+
├── core/
|
|
126
|
+
│ ├── discovery.ts # Cluster discovery engine
|
|
127
|
+
│ ├── schema.ts # Resource schema parsing & AI recommendations
|
|
128
|
+
│ ├── claude.ts # Claude AI integration
|
|
129
|
+
│ └── ...
|
|
130
|
+
├── interfaces/
|
|
131
|
+
│ ├── cli.ts # CLI interface
|
|
132
|
+
│ └── mcp.ts # MCP server interface
|
|
133
|
+
└── ...
|
|
134
|
+
|
|
135
|
+
docs/ # All documentation
|
|
136
|
+
tests/ # Comprehensive test suite (349+ tests)
|
|
137
|
+
prompts/ # AI prompt templates
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Testing & Development
|
|
141
|
+
|
|
142
|
+
**MANDATORY TESTING WORKFLOW:**
|
|
143
|
+
- **Always write tests** for code changes before considering work complete
|
|
144
|
+
- **Always run all tests** with `npm test` before marking tasks as done
|
|
145
|
+
- **Never mark task complete** if any tests are failing
|
|
146
|
+
- **Always check CLAUDE.md** after task completion for needed updates
|
|
147
|
+
|
|
148
|
+
**Commands:**
|
|
149
|
+
- **Run tests**: `npm test` (351+ tests across 10 suites)
|
|
150
|
+
- **Build**: `npm run build`
|
|
151
|
+
- **Manual testing**: Follow examples in CLI and MCP guides
|
|
152
|
+
- **Documentation**: See `docs/` directory for complete guides
|
|
153
|
+
|
|
154
|
+
### Environment Setup
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Required for AI features
|
|
158
|
+
export ANTHROPIC_API_KEY=your_api_key_here
|
|
159
|
+
|
|
160
|
+
# Optional: Custom kubeconfig
|
|
161
|
+
export KUBECONFIG=/path/to/kubeconfig.yaml
|
|
162
|
+
```
|
|
Binary file
|
package/bin/dot-ai.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { DotAI } from '../dist/core/index.js';
|
|
4
|
+
import { CliInterface } from '../dist/interfaces/cli.js';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { dirname } from 'path';
|
|
7
|
+
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = dirname(__filename);
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* CLI Binary Entry Point
|
|
13
|
+
*
|
|
14
|
+
* Sets up the DevOps AI Toolkit and CLI interface for command line usage
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
async function main() {
|
|
18
|
+
try {
|
|
19
|
+
// Parse kubeconfig option early for DotAI initialization
|
|
20
|
+
const kubeconfigIndex = process.argv.indexOf('--kubeconfig');
|
|
21
|
+
let kubeconfigPath: string | undefined;
|
|
22
|
+
|
|
23
|
+
if (kubeconfigIndex !== -1 && kubeconfigIndex + 1 < process.argv.length) {
|
|
24
|
+
kubeconfigPath = process.argv[kubeconfigIndex + 1];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Initialize the DevOps AI Toolkit with kubeconfig if provided
|
|
28
|
+
const dotAI = new DotAI(kubeconfigPath ? { kubernetesConfig: kubeconfigPath } : {});
|
|
29
|
+
await dotAI.initialize();
|
|
30
|
+
|
|
31
|
+
// Create CLI interface
|
|
32
|
+
const cli = new CliInterface(dotAI);
|
|
33
|
+
|
|
34
|
+
// Run CLI with full process.argv (commander.js handles parsing)
|
|
35
|
+
await cli.run(process.argv);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error('Fatal error:', error instanceof Error ? error.message : String(error));
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Run if this module is executed directly
|
|
43
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
44
|
+
main();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { main };
|
package/destroy.sh
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# destroy.sh - Cleanup script for DevOps AI Toolkit Kubernetes cluster
|
|
4
|
+
# This script destroys the kind cluster and cleans up resources created by setup.sh
|
|
5
|
+
|
|
6
|
+
set -e # Exit on any error
|
|
7
|
+
|
|
8
|
+
KUBECONFIG_PATH="$PWD/kubeconfig.yaml"
|
|
9
|
+
CLUSTER_NAME="dot-ai-test"
|
|
10
|
+
|
|
11
|
+
echo "🧹 Destroying DevOps AI Toolkit Kubernetes cluster..."
|
|
12
|
+
|
|
13
|
+
# Check if kind is available
|
|
14
|
+
if ! command -v kind &> /dev/null; then
|
|
15
|
+
echo "❌ Error: kind is not installed"
|
|
16
|
+
echo "Cannot destroy cluster without kind CLI tool"
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# Delete the kind cluster
|
|
21
|
+
echo "🗑️ Deleting kind cluster '$CLUSTER_NAME'..."
|
|
22
|
+
if kind get clusters | grep -q "^$CLUSTER_NAME$"; then
|
|
23
|
+
kind delete cluster --name "$CLUSTER_NAME"
|
|
24
|
+
echo "✅ Cluster '$CLUSTER_NAME' deleted successfully"
|
|
25
|
+
else
|
|
26
|
+
echo "ℹ️ Cluster '$CLUSTER_NAME' not found (may already be deleted)"
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# Remove kubeconfig file
|
|
30
|
+
if [ -f "$KUBECONFIG_PATH" ]; then
|
|
31
|
+
echo "🗑️ Removing kubeconfig file..."
|
|
32
|
+
rm -f "$KUBECONFIG_PATH"
|
|
33
|
+
echo "✅ Kubeconfig file '$KUBECONFIG_PATH' removed"
|
|
34
|
+
else
|
|
35
|
+
echo "ℹ️ Kubeconfig file '$KUBECONFIG_PATH' not found"
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
# Clean up any helm repositories that were added (optional cleanup)
|
|
39
|
+
echo "🧹 Cleaning up helm repositories..."
|
|
40
|
+
helm repo remove crossplane-stable 2>/dev/null || echo "ℹ️ crossplane-stable repo not found"
|
|
41
|
+
helm repo remove crossplane-preview 2>/dev/null || echo "ℹ️ crossplane-preview repo not found"
|
|
42
|
+
|
|
43
|
+
echo "🎉 Cleanup complete!"
|
|
44
|
+
echo "💡 If you had KUBECONFIG exported, you may want to unset it:"
|
|
45
|
+
echo " unset KUBECONFIG"
|
package/devbox.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.14.2/.schema/devbox.schema.json",
|
|
3
|
+
"packages": [
|
|
4
|
+
"kind@0.29.0",
|
|
5
|
+
"git@2.49.0",
|
|
6
|
+
"teller@2.0.7",
|
|
7
|
+
"kubernetes-helm@3.18.3"
|
|
8
|
+
],
|
|
9
|
+
"shell": {
|
|
10
|
+
"init_hook": [],
|
|
11
|
+
"scripts": {}
|
|
12
|
+
}
|
|
13
|
+
}
|
package/devbox.lock
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lockfile_version": "1",
|
|
3
|
+
"packages": {
|
|
4
|
+
"git@2.49.0": {
|
|
5
|
+
"last_modified": "2025-06-20T02:24:11Z",
|
|
6
|
+
"resolved": "github:NixOS/nixpkgs/076e8c6678d8c54204abcb4b1b14c366835a58bb#git",
|
|
7
|
+
"source": "devbox-search",
|
|
8
|
+
"version": "2.49.0",
|
|
9
|
+
"systems": {
|
|
10
|
+
"aarch64-darwin": {
|
|
11
|
+
"outputs": [
|
|
12
|
+
{
|
|
13
|
+
"name": "out",
|
|
14
|
+
"path": "/nix/store/ir2bhb7n3ngh0dg7p6jbhm1wa4d8gkb7-git-2.49.0",
|
|
15
|
+
"default": true
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "doc",
|
|
19
|
+
"path": "/nix/store/f0bi1v08ki7pq6a4rzhjhnp5szj3940k-git-2.49.0-doc"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"store_path": "/nix/store/ir2bhb7n3ngh0dg7p6jbhm1wa4d8gkb7-git-2.49.0"
|
|
23
|
+
},
|
|
24
|
+
"aarch64-linux": {
|
|
25
|
+
"outputs": [
|
|
26
|
+
{
|
|
27
|
+
"name": "out",
|
|
28
|
+
"path": "/nix/store/5p8ljxbgnk31zxbz8hvrfkg1qfgiv3qi-git-2.49.0",
|
|
29
|
+
"default": true
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "debug",
|
|
33
|
+
"path": "/nix/store/isw51rw1b78yw6k454m7h402k88n291w-git-2.49.0-debug"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "doc",
|
|
37
|
+
"path": "/nix/store/hxw5vli42579b8bkxv6nq2p2z4vjvw97-git-2.49.0-doc"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"store_path": "/nix/store/5p8ljxbgnk31zxbz8hvrfkg1qfgiv3qi-git-2.49.0"
|
|
41
|
+
},
|
|
42
|
+
"x86_64-darwin": {
|
|
43
|
+
"outputs": [
|
|
44
|
+
{
|
|
45
|
+
"name": "out",
|
|
46
|
+
"path": "/nix/store/72qfjivfnm6kzdfbiavvici8bi3jzrs6-git-2.49.0",
|
|
47
|
+
"default": true
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "doc",
|
|
51
|
+
"path": "/nix/store/900nidzjyaa0950wk104vzgb82h5wspi-git-2.49.0-doc"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"store_path": "/nix/store/72qfjivfnm6kzdfbiavvici8bi3jzrs6-git-2.49.0"
|
|
55
|
+
},
|
|
56
|
+
"x86_64-linux": {
|
|
57
|
+
"outputs": [
|
|
58
|
+
{
|
|
59
|
+
"name": "out",
|
|
60
|
+
"path": "/nix/store/rzqvhv48m3nh8g3j4k6jmz6yqy8apr95-git-2.49.0",
|
|
61
|
+
"default": true
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "debug",
|
|
65
|
+
"path": "/nix/store/201xjz2py285323n3y7r30frdwbdnb6q-git-2.49.0-debug"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "doc",
|
|
69
|
+
"path": "/nix/store/zcjdp82yx46w8yp1inxkkzb3a3k05a0m-git-2.49.0-doc"
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"store_path": "/nix/store/rzqvhv48m3nh8g3j4k6jmz6yqy8apr95-git-2.49.0"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"github:NixOS/nixpkgs/nixpkgs-unstable": {
|
|
77
|
+
"last_modified": "2025-06-01T15:36:18Z",
|
|
78
|
+
"resolved": "github:NixOS/nixpkgs/5929de975bcf4c7c8d8b5ca65c8cd9ef9e44523e?lastModified=1748792178&narHash=sha256-BHmgfHlCJVNisJShVaEmfDIr%2FIp58i%2F4oFGlD1iK6lk%3D"
|
|
79
|
+
},
|
|
80
|
+
"kind@0.29.0": {
|
|
81
|
+
"last_modified": "2025-06-20T02:24:11Z",
|
|
82
|
+
"resolved": "github:NixOS/nixpkgs/076e8c6678d8c54204abcb4b1b14c366835a58bb#kind",
|
|
83
|
+
"source": "devbox-search",
|
|
84
|
+
"version": "0.29.0",
|
|
85
|
+
"systems": {
|
|
86
|
+
"aarch64-darwin": {
|
|
87
|
+
"outputs": [
|
|
88
|
+
{
|
|
89
|
+
"name": "out",
|
|
90
|
+
"path": "/nix/store/ndl4z2y9nsn7n5ii7hs49ddg79p2pb6a-kind-0.29.0",
|
|
91
|
+
"default": true
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"store_path": "/nix/store/ndl4z2y9nsn7n5ii7hs49ddg79p2pb6a-kind-0.29.0"
|
|
95
|
+
},
|
|
96
|
+
"aarch64-linux": {
|
|
97
|
+
"outputs": [
|
|
98
|
+
{
|
|
99
|
+
"name": "out",
|
|
100
|
+
"path": "/nix/store/j9sdb4vkf9ck1kvfy8vvn17cq3a21s6a-kind-0.29.0",
|
|
101
|
+
"default": true
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"store_path": "/nix/store/j9sdb4vkf9ck1kvfy8vvn17cq3a21s6a-kind-0.29.0"
|
|
105
|
+
},
|
|
106
|
+
"x86_64-darwin": {
|
|
107
|
+
"outputs": [
|
|
108
|
+
{
|
|
109
|
+
"name": "out",
|
|
110
|
+
"path": "/nix/store/161h1s9n2260g2lr3dsjmfczv8gjx5q9-kind-0.29.0",
|
|
111
|
+
"default": true
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"store_path": "/nix/store/161h1s9n2260g2lr3dsjmfczv8gjx5q9-kind-0.29.0"
|
|
115
|
+
},
|
|
116
|
+
"x86_64-linux": {
|
|
117
|
+
"outputs": [
|
|
118
|
+
{
|
|
119
|
+
"name": "out",
|
|
120
|
+
"path": "/nix/store/swafyrx3qn2xjdz3sp7dy8pg7bxpfn3h-kind-0.29.0",
|
|
121
|
+
"default": true
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"store_path": "/nix/store/swafyrx3qn2xjdz3sp7dy8pg7bxpfn3h-kind-0.29.0"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"kubernetes-helm@3.18.3": {
|
|
129
|
+
"last_modified": "2025-06-22T15:15:55Z",
|
|
130
|
+
"resolved": "github:NixOS/nixpkgs/3078b9a9e75f1790e6d6ef9955fdc6a2d1740cc6#kubernetes-helm",
|
|
131
|
+
"source": "devbox-search",
|
|
132
|
+
"version": "3.18.3",
|
|
133
|
+
"systems": {
|
|
134
|
+
"aarch64-darwin": {
|
|
135
|
+
"outputs": [
|
|
136
|
+
{
|
|
137
|
+
"name": "out",
|
|
138
|
+
"path": "/nix/store/pq4scdg2cz3pxv1v8l89xsbx5ca7i48d-kubernetes-helm-3.18.3",
|
|
139
|
+
"default": true
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
"store_path": "/nix/store/pq4scdg2cz3pxv1v8l89xsbx5ca7i48d-kubernetes-helm-3.18.3"
|
|
143
|
+
},
|
|
144
|
+
"aarch64-linux": {
|
|
145
|
+
"outputs": [
|
|
146
|
+
{
|
|
147
|
+
"name": "out",
|
|
148
|
+
"path": "/nix/store/v4p0yq3dc21dhh8mlws3dwlqqk74a4f8-kubernetes-helm-3.18.3",
|
|
149
|
+
"default": true
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"store_path": "/nix/store/v4p0yq3dc21dhh8mlws3dwlqqk74a4f8-kubernetes-helm-3.18.3"
|
|
153
|
+
},
|
|
154
|
+
"x86_64-darwin": {
|
|
155
|
+
"outputs": [
|
|
156
|
+
{
|
|
157
|
+
"name": "out",
|
|
158
|
+
"path": "/nix/store/6000mdd9sz6yqax9wd2qz451qj13bmip-kubernetes-helm-3.18.3",
|
|
159
|
+
"default": true
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"store_path": "/nix/store/6000mdd9sz6yqax9wd2qz451qj13bmip-kubernetes-helm-3.18.3"
|
|
163
|
+
},
|
|
164
|
+
"x86_64-linux": {
|
|
165
|
+
"outputs": [
|
|
166
|
+
{
|
|
167
|
+
"name": "out",
|
|
168
|
+
"path": "/nix/store/r1r9fz9nf0yniwqc2b51zi36cz4d7ala-kubernetes-helm-3.18.3",
|
|
169
|
+
"default": true
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"store_path": "/nix/store/r1r9fz9nf0yniwqc2b51zi36cz4d7ala-kubernetes-helm-3.18.3"
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"teller@2.0.7": {
|
|
177
|
+
"last_modified": "2025-06-20T02:24:11Z",
|
|
178
|
+
"resolved": "github:NixOS/nixpkgs/076e8c6678d8c54204abcb4b1b14c366835a58bb#teller",
|
|
179
|
+
"source": "devbox-search",
|
|
180
|
+
"version": "2.0.7",
|
|
181
|
+
"systems": {
|
|
182
|
+
"aarch64-darwin": {
|
|
183
|
+
"outputs": [
|
|
184
|
+
{
|
|
185
|
+
"name": "out",
|
|
186
|
+
"path": "/nix/store/7ri6fgskrzxxkzvxrqiarbica997zzlp-teller-2.0.7",
|
|
187
|
+
"default": true
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"store_path": "/nix/store/7ri6fgskrzxxkzvxrqiarbica997zzlp-teller-2.0.7"
|
|
191
|
+
},
|
|
192
|
+
"aarch64-linux": {
|
|
193
|
+
"outputs": [
|
|
194
|
+
{
|
|
195
|
+
"name": "out",
|
|
196
|
+
"path": "/nix/store/rzakhwmvhxf62aarw25281qrzpkvjqvw-teller-2.0.7",
|
|
197
|
+
"default": true
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"store_path": "/nix/store/rzakhwmvhxf62aarw25281qrzpkvjqvw-teller-2.0.7"
|
|
201
|
+
},
|
|
202
|
+
"x86_64-darwin": {
|
|
203
|
+
"outputs": [
|
|
204
|
+
{
|
|
205
|
+
"name": "out",
|
|
206
|
+
"path": "/nix/store/7n5i7rd8fdiv4kbfnbj44q6fc7m4sqic-teller-2.0.7",
|
|
207
|
+
"default": true
|
|
208
|
+
}
|
|
209
|
+
],
|
|
210
|
+
"store_path": "/nix/store/7n5i7rd8fdiv4kbfnbj44q6fc7m4sqic-teller-2.0.7"
|
|
211
|
+
},
|
|
212
|
+
"x86_64-linux": {
|
|
213
|
+
"outputs": [
|
|
214
|
+
{
|
|
215
|
+
"name": "out",
|
|
216
|
+
"path": "/nix/store/25pl4iwnnv16dbdb6yir78p9ahjfj987-teller-2.0.7",
|
|
217
|
+
"default": true
|
|
218
|
+
}
|
|
219
|
+
],
|
|
220
|
+
"store_path": "/nix/store/25pl4iwnnv16dbdb6yir78p9ahjfj987-teller-2.0.7"
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|