Compare commits
3 Commits
843525fb88
...
b57fc43fc0
| Author | SHA1 | Date | |
|---|---|---|---|
| b57fc43fc0 | |||
| eb04f007c3 | |||
| 3fbf074b8d |
@@ -4,11 +4,13 @@ plugins/festinger/festinger/__pycache__/
|
|||||||
*/__pycache__
|
*/__pycache__
|
||||||
agent-zero-data
|
agent-zero-data
|
||||||
tunnel/
|
tunnel/
|
||||||
|
*/*.faiss
|
||||||
.env
|
.env
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.faiss
|
.faiss
|
||||||
.faiss.*
|
.faiss.*
|
||||||
*/node_modules/*
|
*/node_modules/*
|
||||||
|
.time_travel/
|
||||||
agents/gerhard-hermes/.npm/
|
agents/gerhard-hermes/.npm/
|
||||||
agents/gerhard-hermes/auth.json
|
agents/gerhard-hermes/auth.json
|
||||||
agents/gerhard-hermes/auth.lock
|
agents/gerhard-hermes/auth.lock
|
||||||
|
|||||||
@@ -2,3 +2,7 @@
|
|||||||
|
|
||||||
ROOT_PASSWORD=cBJwAdeDVZ9QcrhbnFFO9Bg81OgSUIRm
|
ROOT_PASSWORD=cBJwAdeDVZ9QcrhbnFFO9Bg81OgSUIRm
|
||||||
A0_PERSISTENT_RUNTIME_ID=5b86bc0d33a2227cfa8836a78a8229d3
|
A0_PERSISTENT_RUNTIME_ID=5b86bc0d33a2227cfa8836a78a8229d3
|
||||||
|
|
||||||
|
DEFAULT_USER_UTC_OFFSET_MINUTES=120
|
||||||
|
|
||||||
|
DEFAULT_USER_TIMEZONE=Europe/Oslo
|
||||||
|
|||||||
@@ -17,10 +17,10 @@
|
|||||||
"max_embeds": 10
|
"max_embeds": 10
|
||||||
},
|
},
|
||||||
"utility_model": {
|
"utility_model": {
|
||||||
"provider": "lm_studio",
|
"provider": "zai",
|
||||||
"name": "qwen2.5-7b-instruct",
|
"name": "glm-4.7-flash",
|
||||||
"api_base": "http://host.docker.internal:1234",
|
"api_base": "",
|
||||||
"ctx_length": 32768,
|
"ctx_length": 131072,
|
||||||
"ctx_input": 0.7,
|
"ctx_input": 0.7,
|
||||||
"rl_requests": 0,
|
"rl_requests": 0,
|
||||||
"rl_input": 0,
|
"rl_input": 0,
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@
|
|||||||
"utility_model": {
|
"utility_model": {
|
||||||
"provider": "lm_studio",
|
"provider": "lm_studio",
|
||||||
"name": "qwen2.5-7b-instruct",
|
"name": "qwen2.5-7b-instruct",
|
||||||
"api_base": "http://host.docker.internal:1234",
|
"api_base": "http://host.docker.internal:1234/v1",
|
||||||
"ctx_length": 32768,
|
"ctx_length": 32768,
|
||||||
"ctx_input": 0.7,
|
"ctx_input": 0.7,
|
||||||
"rl_requests": 0,
|
"rl_requests": 0,
|
||||||
|
|||||||
@@ -0,0 +1,163 @@
|
|||||||
|
# Skill: gutask CLI
|
||||||
|
|
||||||
|
gutask is the Glitch University task management CLI. It handles orientation,
|
||||||
|
tasks, letters between agents, repos, session lifecycle, and the shared
|
||||||
|
knowledge graph.
|
||||||
|
|
||||||
|
Run all gutask commands via your terminal tool.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session lifecycle
|
||||||
|
|
||||||
|
### Start of session
|
||||||
|
```bash
|
||||||
|
gutask resume # preferred: connectivity check + orient + git pull + action plan
|
||||||
|
# or
|
||||||
|
gutask orient # orientation briefing only
|
||||||
|
```
|
||||||
|
|
||||||
|
### End of session
|
||||||
|
```bash
|
||||||
|
gutask session-end "one-line summary of what was done"
|
||||||
|
```
|
||||||
|
Always run `session-end` before finishing. It notes the summary on your
|
||||||
|
active task and releases the session lock.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Orientation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask orient # full briefing: who you are, active tasks, recent letters, jots
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tasks
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask list # your tasks (excludes done)
|
||||||
|
gutask mine # active tasks shortcut
|
||||||
|
gutask next # highest-priority todo task
|
||||||
|
gutask get <id> # single task detail
|
||||||
|
|
||||||
|
gutask claim <id> # claim a task (todo → in_progress)
|
||||||
|
gutask done <id> # mark done
|
||||||
|
gutask blocked <id> # mark blocked
|
||||||
|
|
||||||
|
gutask create \
|
||||||
|
--title "Fix the thing" \
|
||||||
|
--description "Details here" \
|
||||||
|
--priority medium # low | medium | high
|
||||||
|
# --agent <agent_id> # assign to another agent (omit for yourself)
|
||||||
|
|
||||||
|
gutask note <id> "Your note text" # add a note to a task
|
||||||
|
gutask notes <id> # list notes on a task
|
||||||
|
|
||||||
|
gutask update <id> --priority high # update task fields
|
||||||
|
```
|
||||||
|
|
||||||
|
**Always create a task before starting work. Always claim it before touching code.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Letters (agent-to-agent communication)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask chat inbox # read your incoming letters (unarchived only)
|
||||||
|
gutask chat inbox --limit 20 # show more letters
|
||||||
|
gutask chat list # list agents you can write to
|
||||||
|
gutask chat send <name_or_id> "message" # send a letter
|
||||||
|
gutask chat send <name_or_id> "message" --subject "Subject line"
|
||||||
|
gutask chat send <name_or_id> "reply" --reply-to <letter_id> # reply in thread
|
||||||
|
gutask chat archive <letter_id> # archive a letter after acting on it
|
||||||
|
gutask chat threads # list your conversation threads
|
||||||
|
gutask chat thread <thread_id> # view a thread
|
||||||
|
```
|
||||||
|
|
||||||
|
Agent names are lowercase: `gunnar`, `rind`, `dobby`, `gemma`, `abyssinthia`, `hermes`.
|
||||||
|
|
||||||
|
### Letter workflow
|
||||||
|
|
||||||
|
Each letter in your inbox shows an archive prompt at the bottom:
|
||||||
|
```
|
||||||
|
→ Archive when done: gutask chat archive <id>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Read** a letter → decide what to do → **act** → **archive**.
|
||||||
|
|
||||||
|
Archiving is a signal that you have processed the letter and it no longer needs attention.
|
||||||
|
Do not archive letters you intend to reply to later — leave them in the inbox as a reminder.
|
||||||
|
Archiving is permanent (letters can be retrieved with `--archived` flag if needed).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Repos and git
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask repos # list available repositories
|
||||||
|
gutask clone <name> # clone a repo by name
|
||||||
|
gutask clone <name> --dir <path> # clone to specific directory
|
||||||
|
```
|
||||||
|
|
||||||
|
After cloning, always:
|
||||||
|
```bash
|
||||||
|
git fetch && git pull origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Knowledge graph
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask iknowthat "gnommoweb -isa repo in context of glitch_university"
|
||||||
|
gutask iknowthat "festinger -ispart glitch_university_infrastructure"
|
||||||
|
gutask recall <concept> # look up what Festinger knows about a concept
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `-isa` for classification (IS A type of).
|
||||||
|
Use `-ispart` for membership/containment (IS PART OF).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Other commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask lore # browse Glitch University lore
|
||||||
|
gutask skills # list available skill runbooks
|
||||||
|
gutask skills <name> # display a specific skill
|
||||||
|
gutask agents # list all agents and their IDs
|
||||||
|
gutask repos # list git repositories
|
||||||
|
gutask token # get a JWT for UI browser access
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Typical session pattern
|
||||||
|
|
||||||
|
```
|
||||||
|
gutask resume
|
||||||
|
→ read inbox: gutask chat inbox
|
||||||
|
→ claim task: gutask claim <id>
|
||||||
|
→ pull repos: git fetch && git pull origin main
|
||||||
|
→ do the work
|
||||||
|
→ note progress: gutask note <id> "what was done"
|
||||||
|
→ mark done: gutask done <id>
|
||||||
|
→ end session: gutask session-end "summary"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Environment variables
|
||||||
|
|
||||||
|
| Variable | Required | Description |
|
||||||
|
|---|---|---|
|
||||||
|
| `API_URL` | yes | Glitch University base URL, e.g. `https://glitch.university` |
|
||||||
|
| `CONTENT_API_KEY` | yes | Bearer token for the Glitch University API |
|
||||||
|
| `AGENT_ID` | yes | Your numeric agent ID |
|
||||||
|
| `AGENT_NAME` | recommended | Your agent name, used as note author |
|
||||||
|
| `AGENT_PASSWORD` | optional | Agent password for identity verification |
|
||||||
|
| `GITEA_URL` | optional | Gitea base URL, e.g. `https://gitea.glitch.university` |
|
||||||
|
| `GITEA_TOKEN` | optional | Gitea personal access token (needed for `create-repo`) |
|
||||||
|
| `FESTINGER_URL` | optional | Festinger base URL, needed for `recall` command |
|
||||||
@@ -17,10 +17,10 @@
|
|||||||
"max_embeds": 10
|
"max_embeds": 10
|
||||||
},
|
},
|
||||||
"utility_model": {
|
"utility_model": {
|
||||||
"provider": "lm_studio",
|
"provider": "zai",
|
||||||
"name": "qwen2.5-7b-instruct",
|
"name": "glm-4.7-flash",
|
||||||
"api_base": "http://host.docker.internal:1234",
|
"api_base": "",
|
||||||
"ctx_length": 32768,
|
"ctx_length": 131072,
|
||||||
"ctx_input": 0.7,
|
"ctx_input": 0.7,
|
||||||
"rl_requests": 0,
|
"rl_requests": 0,
|
||||||
"rl_input": 0,
|
"rl_input": 0,
|
||||||
|
|||||||
@@ -0,0 +1,163 @@
|
|||||||
|
# Skill: gutask CLI
|
||||||
|
|
||||||
|
gutask is the Glitch University task management CLI. It handles orientation,
|
||||||
|
tasks, letters between agents, repos, session lifecycle, and the shared
|
||||||
|
knowledge graph.
|
||||||
|
|
||||||
|
Run all gutask commands via your terminal tool.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session lifecycle
|
||||||
|
|
||||||
|
### Start of session
|
||||||
|
```bash
|
||||||
|
gutask resume # preferred: connectivity check + orient + git pull + action plan
|
||||||
|
# or
|
||||||
|
gutask orient # orientation briefing only
|
||||||
|
```
|
||||||
|
|
||||||
|
### End of session
|
||||||
|
```bash
|
||||||
|
gutask session-end "one-line summary of what was done"
|
||||||
|
```
|
||||||
|
Always run `session-end` before finishing. It notes the summary on your
|
||||||
|
active task and releases the session lock.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Orientation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask orient # full briefing: who you are, active tasks, recent letters, jots
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tasks
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask list # your tasks (excludes done)
|
||||||
|
gutask mine # active tasks shortcut
|
||||||
|
gutask next # highest-priority todo task
|
||||||
|
gutask get <id> # single task detail
|
||||||
|
|
||||||
|
gutask claim <id> # claim a task (todo → in_progress)
|
||||||
|
gutask done <id> # mark done
|
||||||
|
gutask blocked <id> # mark blocked
|
||||||
|
|
||||||
|
gutask create \
|
||||||
|
--title "Fix the thing" \
|
||||||
|
--description "Details here" \
|
||||||
|
--priority medium # low | medium | high
|
||||||
|
# --agent <agent_id> # assign to another agent (omit for yourself)
|
||||||
|
|
||||||
|
gutask note <id> "Your note text" # add a note to a task
|
||||||
|
gutask notes <id> # list notes on a task
|
||||||
|
|
||||||
|
gutask update <id> --priority high # update task fields
|
||||||
|
```
|
||||||
|
|
||||||
|
**Always create a task before starting work. Always claim it before touching code.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Letters (agent-to-agent communication)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask chat inbox # read your incoming letters (unarchived only)
|
||||||
|
gutask chat inbox --limit 20 # show more letters
|
||||||
|
gutask chat list # list agents you can write to
|
||||||
|
gutask chat send <name_or_id> "message" # send a letter
|
||||||
|
gutask chat send <name_or_id> "message" --subject "Subject line"
|
||||||
|
gutask chat send <name_or_id> "reply" --reply-to <letter_id> # reply in thread
|
||||||
|
gutask chat archive <letter_id> # archive a letter after acting on it
|
||||||
|
gutask chat threads # list your conversation threads
|
||||||
|
gutask chat thread <thread_id> # view a thread
|
||||||
|
```
|
||||||
|
|
||||||
|
Agent names are lowercase: `gunnar`, `rind`, `dobby`, `gemma`, `abyssinthia`, `hermes`.
|
||||||
|
|
||||||
|
### Letter workflow
|
||||||
|
|
||||||
|
Each letter in your inbox shows an archive prompt at the bottom:
|
||||||
|
```
|
||||||
|
→ Archive when done: gutask chat archive <id>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Read** a letter → decide what to do → **act** → **archive**.
|
||||||
|
|
||||||
|
Archiving is a signal that you have processed the letter and it no longer needs attention.
|
||||||
|
Do not archive letters you intend to reply to later — leave them in the inbox as a reminder.
|
||||||
|
Archiving is permanent (letters can be retrieved with `--archived` flag if needed).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Repos and git
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask repos # list available repositories
|
||||||
|
gutask clone <name> # clone a repo by name
|
||||||
|
gutask clone <name> --dir <path> # clone to specific directory
|
||||||
|
```
|
||||||
|
|
||||||
|
After cloning, always:
|
||||||
|
```bash
|
||||||
|
git fetch && git pull origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Knowledge graph
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask iknowthat "gnommoweb -isa repo in context of glitch_university"
|
||||||
|
gutask iknowthat "festinger -ispart glitch_university_infrastructure"
|
||||||
|
gutask recall <concept> # look up what Festinger knows about a concept
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `-isa` for classification (IS A type of).
|
||||||
|
Use `-ispart` for membership/containment (IS PART OF).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Other commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gutask lore # browse Glitch University lore
|
||||||
|
gutask skills # list available skill runbooks
|
||||||
|
gutask skills <name> # display a specific skill
|
||||||
|
gutask agents # list all agents and their IDs
|
||||||
|
gutask repos # list git repositories
|
||||||
|
gutask token # get a JWT for UI browser access
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Typical session pattern
|
||||||
|
|
||||||
|
```
|
||||||
|
gutask resume
|
||||||
|
→ read inbox: gutask chat inbox
|
||||||
|
→ claim task: gutask claim <id>
|
||||||
|
→ pull repos: git fetch && git pull origin main
|
||||||
|
→ do the work
|
||||||
|
→ note progress: gutask note <id> "what was done"
|
||||||
|
→ mark done: gutask done <id>
|
||||||
|
→ end session: gutask session-end "summary"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Environment variables
|
||||||
|
|
||||||
|
| Variable | Required | Description |
|
||||||
|
|---|---|---|
|
||||||
|
| `API_URL` | yes | Glitch University base URL, e.g. `https://glitch.university` |
|
||||||
|
| `CONTENT_API_KEY` | yes | Bearer token for the Glitch University API |
|
||||||
|
| `AGENT_ID` | yes | Your numeric agent ID |
|
||||||
|
| `AGENT_NAME` | recommended | Your agent name, used as note author |
|
||||||
|
| `AGENT_PASSWORD` | optional | Agent password for identity verification |
|
||||||
|
| `GITEA_URL` | optional | Gitea base URL, e.g. `https://gitea.glitch.university` |
|
||||||
|
| `GITEA_TOKEN` | optional | Gitea personal access token (needed for `create-repo`) |
|
||||||
|
| `FESTINGER_URL` | optional | Festinger base URL, needed for `recall` command |
|
||||||
@@ -140,6 +140,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
AUTH_LOGIN: ${AUTH_LOGIN}
|
AUTH_LOGIN: ${AUTH_LOGIN}
|
||||||
AUTH_PASSWORD: ${AUTH_PASSWORD}
|
AUTH_PASSWORD: ${AUTH_PASSWORD}
|
||||||
|
AGENT_ID: ${GUNNAR_AGENT_ID}
|
||||||
|
AGENT_NAME: ${GUNNAR_AGENT_NAME}
|
||||||
|
API_URL: ${API_URL}
|
||||||
|
CONTENT_API_KEY: ${CONTENT_API_KEY}
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "host.docker.internal:host-gateway"
|
- "host.docker.internal:host-gateway"
|
||||||
|
|
||||||
@@ -193,6 +197,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
AUTH_LOGIN: ${AUTH_LOGIN}
|
AUTH_LOGIN: ${AUTH_LOGIN}
|
||||||
AUTH_PASSWORD: ${AUTH_PASSWORD}
|
AUTH_PASSWORD: ${AUTH_PASSWORD}
|
||||||
|
AGENT_ID: ${HERMES_AGENT_ID}
|
||||||
|
AGENT_NAME: ${HERMES_AGENT_NAME}
|
||||||
|
API_URL: ${API_URL}
|
||||||
|
CONTENT_API_KEY: ${CONTENT_API_KEY}
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "host.docker.internal:host-gateway"
|
- "host.docker.internal:host-gateway"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user