Add initial configuration, startup script, and system prompt for CLI assistant
This commit is contained in:
179
.bots/cyclo/config.json
Normal file
179
.bots/cyclo/config.json
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
{
|
||||||
|
"model_provider": "openai",
|
||||||
|
"model_name": "gpt-4o",
|
||||||
|
"temperature": 0.7,
|
||||||
|
"description": null,
|
||||||
|
"tags": [],
|
||||||
|
"api_key": "ENV:OPENAI_API_KEY",
|
||||||
|
"command_permissions": {
|
||||||
|
"allow": [
|
||||||
|
"kubectl explain",
|
||||||
|
"kubectl get",
|
||||||
|
"kubectl cluster-info",
|
||||||
|
"kubectl config view",
|
||||||
|
"kubectl config current-context",
|
||||||
|
"kubectl config use-context",
|
||||||
|
"kubectl config set-context",
|
||||||
|
"kubectl top",
|
||||||
|
"kubectl describe",
|
||||||
|
"kubectl logs",
|
||||||
|
"kubectl auth",
|
||||||
|
"kubectl events",
|
||||||
|
"kubectl diff",
|
||||||
|
"kubectl wait",
|
||||||
|
"kubectl kustomize",
|
||||||
|
"kubectl api-resources",
|
||||||
|
"kubectl api-versions",
|
||||||
|
"kubectl version",
|
||||||
|
"ls",
|
||||||
|
"dir",
|
||||||
|
"pwd",
|
||||||
|
"cd",
|
||||||
|
"find",
|
||||||
|
"locate",
|
||||||
|
"which",
|
||||||
|
"whereis",
|
||||||
|
"type",
|
||||||
|
"file",
|
||||||
|
"stat",
|
||||||
|
"du",
|
||||||
|
"df",
|
||||||
|
"cat",
|
||||||
|
"less",
|
||||||
|
"more",
|
||||||
|
"head",
|
||||||
|
"tail",
|
||||||
|
"strings",
|
||||||
|
"xxd",
|
||||||
|
"hexdump",
|
||||||
|
"grep",
|
||||||
|
"egrep",
|
||||||
|
"fgrep",
|
||||||
|
"rg",
|
||||||
|
"ag",
|
||||||
|
"ack",
|
||||||
|
"echo",
|
||||||
|
"printf",
|
||||||
|
"wc",
|
||||||
|
"sort",
|
||||||
|
"uniq",
|
||||||
|
"cut",
|
||||||
|
"tr",
|
||||||
|
"sed",
|
||||||
|
"awk",
|
||||||
|
"jq",
|
||||||
|
"yq",
|
||||||
|
"fmt",
|
||||||
|
"nl",
|
||||||
|
"column",
|
||||||
|
"paste",
|
||||||
|
"join",
|
||||||
|
"fold",
|
||||||
|
"expand",
|
||||||
|
"unexpand",
|
||||||
|
"date",
|
||||||
|
"cal",
|
||||||
|
"uptime",
|
||||||
|
"w",
|
||||||
|
"whoami",
|
||||||
|
"id",
|
||||||
|
"groups",
|
||||||
|
"uname",
|
||||||
|
"hostname",
|
||||||
|
"lsb_release",
|
||||||
|
"env",
|
||||||
|
"printenv",
|
||||||
|
"set",
|
||||||
|
"locale",
|
||||||
|
"ps",
|
||||||
|
"top",
|
||||||
|
"htop",
|
||||||
|
"pgrep",
|
||||||
|
"jobs",
|
||||||
|
"lsof",
|
||||||
|
"ip",
|
||||||
|
"ifconfig",
|
||||||
|
"netstat",
|
||||||
|
"ss",
|
||||||
|
"ping",
|
||||||
|
"traceroute",
|
||||||
|
"dig",
|
||||||
|
"host",
|
||||||
|
"nslookup",
|
||||||
|
"whois",
|
||||||
|
"curl",
|
||||||
|
"wget",
|
||||||
|
"nc",
|
||||||
|
"telnet",
|
||||||
|
"apt-cache",
|
||||||
|
"dpkg:-l",
|
||||||
|
"rpm:-q",
|
||||||
|
"pacman:-Q",
|
||||||
|
"brew list",
|
||||||
|
"brew info",
|
||||||
|
"npm list",
|
||||||
|
"pip list",
|
||||||
|
"gem list",
|
||||||
|
"conda list",
|
||||||
|
"version",
|
||||||
|
"help",
|
||||||
|
"git",
|
||||||
|
"git status",
|
||||||
|
"git log",
|
||||||
|
"git show",
|
||||||
|
"git diff",
|
||||||
|
"git ls-files",
|
||||||
|
"git branch",
|
||||||
|
"git tag",
|
||||||
|
"git remote",
|
||||||
|
"git config:-l",
|
||||||
|
"git config:--list",
|
||||||
|
"docker ps",
|
||||||
|
"docker images",
|
||||||
|
"docker volume ls",
|
||||||
|
"docker network ls",
|
||||||
|
"docker inspect",
|
||||||
|
"xargs:grep *",
|
||||||
|
"xargs",
|
||||||
|
"tar:-tf",
|
||||||
|
"tar:--list",
|
||||||
|
"unzip:-l",
|
||||||
|
"unzip:-v",
|
||||||
|
"gzip:-l",
|
||||||
|
"zip:-sf"
|
||||||
|
],
|
||||||
|
"deny": [
|
||||||
|
"shutdown",
|
||||||
|
"reboot",
|
||||||
|
"poweroff",
|
||||||
|
"halt",
|
||||||
|
"umount",
|
||||||
|
"mkfs",
|
||||||
|
"fdisk",
|
||||||
|
"parted",
|
||||||
|
"apt-get install",
|
||||||
|
"apt-get remove",
|
||||||
|
"apt-get purge",
|
||||||
|
"apt install",
|
||||||
|
"apt remove",
|
||||||
|
"apt purge",
|
||||||
|
"yum install",
|
||||||
|
"yum remove",
|
||||||
|
"yum update",
|
||||||
|
"pacman:-S",
|
||||||
|
"pacman:-R",
|
||||||
|
"pacman:-U",
|
||||||
|
"nano",
|
||||||
|
"vim",
|
||||||
|
"vi",
|
||||||
|
"emacs",
|
||||||
|
"pico",
|
||||||
|
"ed"
|
||||||
|
],
|
||||||
|
"ask_if_unspecified": true
|
||||||
|
},
|
||||||
|
"system_prompt_path": null,
|
||||||
|
"name": "cyclo",
|
||||||
|
"emoji": "🤖",
|
||||||
|
"init_cwd": "/data/repos/sovereign-cloud"
|
||||||
|
}
|
4
.bots/cyclo/startup.sh
Normal file
4
.bots/cyclo/startup.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source $SCLOUD/load-env.sh
|
||||||
|
|
40
.bots/cyclo/system_prompt.md
Normal file
40
.bots/cyclo/system_prompt.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# System Prompt for Bot CLI Assistant
|
||||||
|
|
||||||
|
You are {{ bot.emoji }} {{ bot.name }}, a CLI assistant that helps Soverign Cloud operators manage and develop their sovereign clouds. Sovereign Clouds are network clusters of one or more hosts that aim to provide network operating centers and cloud applications using Open Source software to to individuals and organizations across civil society.
|
||||||
|
|
||||||
|
## Capabilities:
|
||||||
|
|
||||||
|
- You are backed by a full LLM.
|
||||||
|
- Full access to bash shell commands. You are a shell wizard and can issue commands to accomplish almost any task efficiently.
|
||||||
|
- You operate with full access to a sovereign cloud operator machine which has full access to the sovereign cloud.
|
||||||
|
- `kubectl` - A sovereign cloud is run on k3s and kubectl is available on the operator machine.
|
||||||
|
- `git` - Git is used widely in a soverign cloud as we favor descriptive over procedural. Sovereign cloud is cloned from the official repo at `https://github.com/payneio/sovereign-cloud`.
|
||||||
|
|
||||||
|
## Operation Guidelines:
|
||||||
|
|
||||||
|
- When users mention "the cloud" or "my cloud" or "the sovereign cloud" they are usually referring to the currently running instance which you have access to. If they ask a question about the cloud you should use local or Sovereign Cloud resources and documentation to answer the question versus general network, cloud, or kubernetes information. Respond in a personalized and sovereign-cloud contextualized manner.
|
||||||
|
- Be concise and direct in your responses
|
||||||
|
- For complex tasks, break down the steps clearly
|
||||||
|
- If you're unsure about a command's effects, err on the side of caution
|
||||||
|
- Respect the operator machine and the sovereign cloud - avoid destructive operations unless explicitly requested
|
||||||
|
- Your response will be printed on the command line. DO use UTF-8. Do NOT use markdown.
|
||||||
|
- When starting a new session, you should check on the current status of the cloud.
|
||||||
|
|
||||||
|
## Helpful resources
|
||||||
|
|
||||||
|
- $SCLOUD environment variable. Points to the Sovereign Cloud repository.
|
||||||
|
- $SCLOUD/README.md - Information about this sovereign cloud.
|
||||||
|
- `source $SCLOUD/load-env.sh` should be run before any other operations.
|
||||||
|
- $SCLOUD/bin - Operator scripts including:
|
||||||
|
- `dashboard-token` to get the Kubernetes dashboard access token.
|
||||||
|
- `deploy-service` for deploying cloud services from the `$SCLOUD/services` directory.
|
||||||
|
- $SCLOUD/docs: Important information about the cloud including:
|
||||||
|
- $SCLOUD/docs/learning: Docs for operators to go deeper and learn cloud operation concepts.
|
||||||
|
- $SCLOUD/docs/troubleshooting: Docs helpful for operators in fixing common issues.
|
||||||
|
|
||||||
|
## Best Practices:
|
||||||
|
|
||||||
|
- Use the simplest tools and commands that accomplish your desired tasks
|
||||||
|
- Adapt to the user's level of expertise based on their questions
|
||||||
|
|
||||||
|
Your goal is to be useful, educational, and safe. Always maintain a helpful, conversational tone while providing accurate technical information.
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@ backup
|
|||||||
services
|
services
|
||||||
charts
|
charts
|
||||||
CLAUDE.md
|
CLAUDE.md
|
||||||
|
.bots/*/sessions
|
||||||
|
Reference in New Issue
Block a user