crewly 1.0.1 → 1.0.2
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/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +3 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts +28 -4
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +74 -7
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +2 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +11 -0
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js +46 -3
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
- package/dist/cli/cli/src/commands/install.d.ts +23 -0
- package/dist/cli/cli/src/commands/install.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/install.js +113 -0
- package/dist/cli/cli/src/commands/install.js.map +1 -0
- package/dist/cli/cli/src/commands/search.d.ts +23 -0
- package/dist/cli/cli/src/commands/search.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/search.js +85 -0
- package/dist/cli/cli/src/commands/search.js.map +1 -0
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +11 -0
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/index.js +12 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/marketplace.d.ts +111 -0
- package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/marketplace.js +209 -0
- package/dist/cli/cli/src/utils/marketplace.js.map +1 -0
- package/package.json +4 -1
- package/config/skills/agent/_common/lib.sh +0 -4
- package/config/skills/agent/accept-task/execute.sh +0 -21
- package/config/skills/agent/accept-task/instructions.md +0 -20
- package/config/skills/agent/accept-task/skill.json +0 -20
- package/config/skills/agent/block-task/execute.sh +0 -26
- package/config/skills/agent/block-task/instructions.md +0 -22
- package/config/skills/agent/block-task/skill.json +0 -20
- package/config/skills/agent/check-quality-gates/execute.sh +0 -20
- package/config/skills/agent/check-quality-gates/instructions.md +0 -23
- package/config/skills/agent/check-quality-gates/skill.json +0 -20
- package/config/skills/agent/complete-task/execute.sh +0 -26
- package/config/skills/agent/complete-task/instructions.md +0 -22
- package/config/skills/agent/complete-task/skill.json +0 -20
- package/config/skills/agent/computer-use/execute.sh +0 -151
- package/config/skills/agent/computer-use/instructions.md +0 -60
- package/config/skills/agent/computer-use/skill.json +0 -22
- package/config/skills/agent/get-my-context/execute.sh +0 -23
- package/config/skills/agent/get-my-context/instructions.md +0 -21
- package/config/skills/agent/get-my-context/skill.json +0 -20
- package/config/skills/agent/get-sops/execute.sh +0 -24
- package/config/skills/agent/get-sops/instructions.md +0 -21
- package/config/skills/agent/get-sops/skill.json +0 -20
- package/config/skills/agent/get-team-status/execute.sh +0 -8
- package/config/skills/agent/get-team-status/instructions.md +0 -17
- package/config/skills/agent/get-team-status/skill.json +0 -20
- package/config/skills/agent/heartbeat/execute.sh +0 -22
- package/config/skills/agent/heartbeat/instructions.md +0 -23
- package/config/skills/agent/heartbeat/skill.json +0 -20
- package/config/skills/agent/manage-knowledge/execute.sh +0 -60
- package/config/skills/agent/manage-knowledge/instructions.md +0 -46
- package/config/skills/agent/nano-banana-image/generate.sh +0 -73
- package/config/skills/agent/nano-banana-image/instructions.md +0 -50
- package/config/skills/agent/nano-banana-image/skill.json +0 -39
- package/config/skills/agent/query-knowledge/execute.sh +0 -30
- package/config/skills/agent/query-knowledge/instructions.md +0 -47
- package/config/skills/agent/query-knowledge/skill.json +0 -20
- package/config/skills/agent/read-task/execute.sh +0 -15
- package/config/skills/agent/read-task/instructions.md +0 -19
- package/config/skills/agent/read-task/skill.json +0 -20
- package/config/skills/agent/recall/execute.sh +0 -24
- package/config/skills/agent/recall/instructions.md +0 -23
- package/config/skills/agent/recall/skill.json +0 -20
- package/config/skills/agent/record-learning/execute.sh +0 -29
- package/config/skills/agent/record-learning/instructions.md +0 -24
- package/config/skills/agent/record-learning/skill.json +0 -20
- package/config/skills/agent/register-self/execute.sh +0 -28
- package/config/skills/agent/register-self/instructions.md +0 -18
- package/config/skills/agent/register-self/skill.json +0 -20
- package/config/skills/agent/remember/execute.sh +0 -29
- package/config/skills/agent/remember/instructions.md +0 -24
- package/config/skills/agent/remember/skill.json +0 -20
- package/config/skills/agent/report-progress/execute.sh +0 -28
- package/config/skills/agent/report-progress/instructions.md +0 -25
- package/config/skills/agent/report-progress/skill.json +0 -20
- package/config/skills/agent/report-status/execute.sh +0 -35
- package/config/skills/agent/report-status/instructions.md +0 -36
- package/config/skills/agent/report-status/skill.json +0 -20
- package/config/skills/agent/send-chat-response/execute.sh +0 -26
- package/config/skills/agent/send-chat-response/instructions.md +0 -22
- package/config/skills/agent/send-chat-response/skill.json +0 -20
- package/config/skills/agent/send-message/execute.sh +0 -17
- package/config/skills/agent/send-message/instructions.md +0 -20
- package/config/skills/agent/send-message/skill.json +0 -20
- package/config/skills/agent/send-pdf-to-slack/execute.sh +0 -182
- package/config/skills/agent/send-pdf-to-slack/instructions.md +0 -49
- package/config/skills/agent/send-pdf-to-slack/skill.json +0 -20
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Nano Banana Image Generation Script
|
|
3
|
-
# This script calls the Gemini API to generate images
|
|
4
|
-
# Supports both standard (flash) and pro models
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
# Check for required environment variable
|
|
9
|
-
if [ -z "$GEMINI_API_KEY" ]; then
|
|
10
|
-
echo "Error: GEMINI_API_KEY environment variable is not set"
|
|
11
|
-
exit 1
|
|
12
|
-
fi
|
|
13
|
-
|
|
14
|
-
# Model selection
|
|
15
|
-
# Usage: generate.sh [prompt] [--pro]
|
|
16
|
-
# --pro Use gemini-3-pro-image-preview (higher quality)
|
|
17
|
-
# default Use gemini-2.0-flash-exp-image-generation (faster)
|
|
18
|
-
MODEL="gemini-2.0-flash-exp-image-generation"
|
|
19
|
-
PROMPT=""
|
|
20
|
-
|
|
21
|
-
for arg in "$@"; do
|
|
22
|
-
if [ "$arg" = "--pro" ]; then
|
|
23
|
-
MODEL="gemini-3-pro-image-preview"
|
|
24
|
-
elif [ -z "$PROMPT" ]; then
|
|
25
|
-
PROMPT="$arg"
|
|
26
|
-
fi
|
|
27
|
-
done
|
|
28
|
-
|
|
29
|
-
if [ -z "$PROMPT" ]; then
|
|
30
|
-
read -r PROMPT
|
|
31
|
-
fi
|
|
32
|
-
|
|
33
|
-
if [ -z "$PROMPT" ]; then
|
|
34
|
-
echo "Error: No prompt provided"
|
|
35
|
-
exit 1
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
# API endpoint
|
|
39
|
-
API_URL="https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent"
|
|
40
|
-
|
|
41
|
-
# Create the request payload
|
|
42
|
-
PAYLOAD=$(cat <<EOF
|
|
43
|
-
{
|
|
44
|
-
"contents": [
|
|
45
|
-
{
|
|
46
|
-
"parts": [
|
|
47
|
-
{
|
|
48
|
-
"text": "Generate an image: $PROMPT"
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
],
|
|
53
|
-
"generationConfig": {
|
|
54
|
-
"responseModalities": ["Text", "Image"]
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
EOF
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
# Make the API call
|
|
61
|
-
RESPONSE=$(curl -s -X POST "$API_URL?key=$GEMINI_API_KEY" \
|
|
62
|
-
-H "Content-Type: application/json" \
|
|
63
|
-
-d "$PAYLOAD")
|
|
64
|
-
|
|
65
|
-
# Check for errors
|
|
66
|
-
if echo "$RESPONSE" | grep -q '"error"'; then
|
|
67
|
-
echo "API Error:"
|
|
68
|
-
echo "$RESPONSE" | jq -r '.error.message // .error'
|
|
69
|
-
exit 1
|
|
70
|
-
fi
|
|
71
|
-
|
|
72
|
-
# Output the response
|
|
73
|
-
echo "$RESPONSE"
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# Nano Banana Image Generation
|
|
2
|
-
|
|
3
|
-
This skill enables AI image generation through Google's Gemini API.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The Nano Banana Image Generation skill allows agents to create images from text descriptions using Google's Gemini model. This is useful for:
|
|
8
|
-
|
|
9
|
-
- Creating concept art and visualizations
|
|
10
|
-
- Generating placeholder images for designs
|
|
11
|
-
- Producing custom graphics based on descriptions
|
|
12
|
-
- Rapid prototyping of visual content
|
|
13
|
-
|
|
14
|
-
## Usage
|
|
15
|
-
|
|
16
|
-
To generate an image, provide a detailed text description of what you want to create.
|
|
17
|
-
|
|
18
|
-
### Example Prompts
|
|
19
|
-
|
|
20
|
-
- "A futuristic cityscape at sunset with flying cars"
|
|
21
|
-
- "A cozy coffee shop interior with warm lighting"
|
|
22
|
-
- "An abstract representation of music and sound waves"
|
|
23
|
-
|
|
24
|
-
## API Configuration
|
|
25
|
-
|
|
26
|
-
This skill requires a Gemini API key to function. The API key should be stored in the skill's `.env` file:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
GEMINI_API_KEY=your_api_key_here
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### Getting an API Key
|
|
33
|
-
|
|
34
|
-
1. Visit [Google AI Studio](https://aistudio.google.com/apikey)
|
|
35
|
-
2. Sign in with your Google account
|
|
36
|
-
3. Create a new API key
|
|
37
|
-
4. Copy the key and add it to the skill configuration
|
|
38
|
-
|
|
39
|
-
## Best Practices
|
|
40
|
-
|
|
41
|
-
- Be specific and detailed in your image descriptions
|
|
42
|
-
- Include style preferences (realistic, artistic, minimalist, etc.)
|
|
43
|
-
- Specify desired colors, lighting, and mood
|
|
44
|
-
- Mention any specific elements that must be included
|
|
45
|
-
|
|
46
|
-
## Limitations
|
|
47
|
-
|
|
48
|
-
- Image generation may take 30-60 seconds
|
|
49
|
-
- Some content types may be restricted by the API
|
|
50
|
-
- Results may vary based on prompt complexity
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "nano-banana-image",
|
|
3
|
-
"name": "Nano Banana Image Generation",
|
|
4
|
-
"description": "Generate images using Google's Gemini Nano Banana API. Supports standard (flash) and pro models. Use --pro flag for higher quality output with gemini-3-pro-image-preview.",
|
|
5
|
-
"category": "design",
|
|
6
|
-
"skillType": "claude-skill",
|
|
7
|
-
"promptFile": "instructions.md",
|
|
8
|
-
"execution": {
|
|
9
|
-
"type": "script",
|
|
10
|
-
"script": {
|
|
11
|
-
"file": "generate.sh",
|
|
12
|
-
"interpreter": "bash",
|
|
13
|
-
"timeoutMs": 120000
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"environment": {
|
|
17
|
-
"file": ".env",
|
|
18
|
-
"required": ["GEMINI_API_KEY"]
|
|
19
|
-
},
|
|
20
|
-
"notices": [
|
|
21
|
-
{
|
|
22
|
-
"type": "requirement",
|
|
23
|
-
"title": "API Key Required",
|
|
24
|
-
"message": "This skill requires a Gemini API key. Add your API key in the skill settings.",
|
|
25
|
-
"link": "https://aistudio.google.com/apikey",
|
|
26
|
-
"linkText": "Get API Key"
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
"triggers": ["generate image", "create image", "nano banana", "gemini image", "ai image"],
|
|
30
|
-
"models": {
|
|
31
|
-
"standard": "gemini-2.0-flash-exp-image-generation",
|
|
32
|
-
"pro": "gemini-3-pro-image-preview"
|
|
33
|
-
},
|
|
34
|
-
"tags": ["image", "generation", "ai", "gemini", "api", "pro"],
|
|
35
|
-
"assignableRoles": ["designer"],
|
|
36
|
-
"version": "1.1.0",
|
|
37
|
-
"createdAt": "2024-01-01T00:00:00.000Z",
|
|
38
|
-
"updatedAt": "2024-01-01T00:00:00.000Z"
|
|
39
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Query Knowledge Documents - search company knowledge base
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
|
-
|
|
7
|
-
INPUT="${1:-}"
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"query\":\"deployment\",\"scope\":\"global\"}'"
|
|
9
|
-
|
|
10
|
-
QUERY=$(echo "$INPUT" | jq -r '.query // empty')
|
|
11
|
-
SCOPE=$(echo "$INPUT" | jq -r '.scope // "global"')
|
|
12
|
-
CATEGORY=$(echo "$INPUT" | jq -r '.category // empty')
|
|
13
|
-
PROJECT_PATH=$(echo "$INPUT" | jq -r '.projectPath // empty')
|
|
14
|
-
require_param "query" "$QUERY"
|
|
15
|
-
|
|
16
|
-
# URL-encode the query parameters
|
|
17
|
-
ENCODED_QUERY=$(printf '%s' "$QUERY" | jq -sRr @uri)
|
|
18
|
-
ENDPOINT="/knowledge/documents?scope=${SCOPE}&search=${ENCODED_QUERY}"
|
|
19
|
-
|
|
20
|
-
if [ -n "$CATEGORY" ]; then
|
|
21
|
-
ENCODED_CATEGORY=$(printf '%s' "$CATEGORY" | jq -sRr @uri)
|
|
22
|
-
ENDPOINT="${ENDPOINT}&category=${ENCODED_CATEGORY}"
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
if [ -n "$PROJECT_PATH" ]; then
|
|
26
|
-
ENCODED_PATH=$(printf '%s' "$PROJECT_PATH" | jq -sRr @uri)
|
|
27
|
-
ENDPOINT="${ENDPOINT}&projectPath=${ENCODED_PATH}"
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
api_call GET "$ENDPOINT"
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Query Knowledge
|
|
2
|
-
|
|
3
|
-
Search the company knowledge base for relevant documents. Use this to find SOPs, runbooks, architecture docs, team norms, and other documentation before starting process-oriented tasks.
|
|
4
|
-
|
|
5
|
-
Knowledge documents are stored at two scopes:
|
|
6
|
-
- **global** (`~/.crewly/docs/`) — company-wide documents accessible to all agents
|
|
7
|
-
- **project** (`{projectPath}/.crewly/docs/`) — project-specific documents
|
|
8
|
-
|
|
9
|
-
## Parameters
|
|
10
|
-
|
|
11
|
-
| Parameter | Required | Description |
|
|
12
|
-
|-----------|----------|-------------|
|
|
13
|
-
| `query` | Yes | Search text to match against document titles, tags, and content |
|
|
14
|
-
| `scope` | No | `global` (default) or `project` |
|
|
15
|
-
| `category` | No | Filter by category: `SOPs`, `Team Norms`, `Architecture`, `Onboarding`, `Runbooks`, `General` |
|
|
16
|
-
| `projectPath` | Conditional | Required when scope is `project` |
|
|
17
|
-
|
|
18
|
-
## Examples
|
|
19
|
-
|
|
20
|
-
### Search global knowledge for deployment docs
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
bash {{AGENT_SKILLS_PATH}}/query-knowledge/execute.sh '{"query":"deployment","scope":"global"}'
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Search project-specific architecture docs
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
bash {{AGENT_SKILLS_PATH}}/query-knowledge/execute.sh '{"query":"API design","scope":"project","projectPath":"{{PROJECT_PATH}}","category":"Architecture"}'
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### Search for runbooks
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
bash {{AGENT_SKILLS_PATH}}/query-knowledge/execute.sh '{"query":"incident response","scope":"global","category":"Runbooks"}'
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## When to Use
|
|
39
|
-
|
|
40
|
-
- **Before process-oriented tasks** — search for SOPs and runbooks that describe how to do things
|
|
41
|
-
- **Before architecture work** — check for existing architecture docs and design decisions
|
|
42
|
-
- **When onboarding to a project** — search for onboarding guides and team norms
|
|
43
|
-
- **Before answering questions** about processes, conventions, or infrastructure
|
|
44
|
-
|
|
45
|
-
## Output
|
|
46
|
-
|
|
47
|
-
JSON response with `success: true` and a `data` array of matching document summaries (id, title, category, tags, preview).
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "agent-query-knowledge",
|
|
3
|
-
"name": "Query Knowledge",
|
|
4
|
-
"description": "Search the company knowledge base for SOPs, runbooks, architecture docs, and other documentation.",
|
|
5
|
-
"category": "memory",
|
|
6
|
-
"skillType": "claude-skill",
|
|
7
|
-
"promptFile": "instructions.md",
|
|
8
|
-
"execution": {
|
|
9
|
-
"type": "script",
|
|
10
|
-
"script": {
|
|
11
|
-
"file": "execute.sh",
|
|
12
|
-
"interpreter": "bash",
|
|
13
|
-
"timeoutMs": 15000
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"assignableRoles": ["developer", "qa", "tpm", "designer", "frontend-developer", "backend-developer", "fullstack-dev", "qa-engineer", "product-manager", "architect", "generalist", "sales", "support"],
|
|
17
|
-
"triggers": ["query knowledge", "search knowledge", "find docs", "search docs", "find runbook", "find SOP"],
|
|
18
|
-
"tags": ["memory", "knowledge", "search", "documentation"],
|
|
19
|
-
"version": "1.0.0"
|
|
20
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Read the full details of a task file by its absolute path
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
|
-
|
|
7
|
-
INPUT="${1:-}"
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"absoluteTaskPath\":\"/path/to/task\"}'"
|
|
9
|
-
|
|
10
|
-
ABSOLUTE_TASK_PATH=$(echo "$INPUT" | jq -r '.absoluteTaskPath // empty')
|
|
11
|
-
require_param "absoluteTaskPath" "$ABSOLUTE_TASK_PATH"
|
|
12
|
-
|
|
13
|
-
BODY=$(jq -n --arg absoluteTaskPath "$ABSOLUTE_TASK_PATH" '{absoluteTaskPath: $absoluteTaskPath}')
|
|
14
|
-
|
|
15
|
-
api_call POST "/task-management/read-task" "$BODY"
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Read Task
|
|
2
|
-
|
|
3
|
-
Read the full details of a task file by its absolute path. Returns the task content, metadata, status, and any subtasks.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
| Parameter | Required | Description |
|
|
8
|
-
|-----------|----------|-------------|
|
|
9
|
-
| `absoluteTaskPath` | Yes | Absolute filesystem path to the task file |
|
|
10
|
-
|
|
11
|
-
## Example
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
bash config/skills/agent/read-task/execute.sh '{"absoluteTaskPath":"/projects/app/tasks/implement-login.md"}'
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Output
|
|
18
|
-
|
|
19
|
-
JSON with full task details including description, acceptance criteria, priority, status, and related files.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "agent-read-task",
|
|
3
|
-
"name": "Read Task",
|
|
4
|
-
"description": "Read the full details of a task file by its absolute path.",
|
|
5
|
-
"category": "task-management",
|
|
6
|
-
"skillType": "claude-skill",
|
|
7
|
-
"promptFile": "instructions.md",
|
|
8
|
-
"execution": {
|
|
9
|
-
"type": "script",
|
|
10
|
-
"script": {
|
|
11
|
-
"file": "execute.sh",
|
|
12
|
-
"interpreter": "bash",
|
|
13
|
-
"timeoutMs": 15000
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"assignableRoles": ["developer", "qa", "tpm", "designer", "frontend-developer", "backend-developer", "fullstack-dev", "qa-engineer", "product-manager", "architect", "generalist", "sales", "support"],
|
|
17
|
-
"triggers": ["read task", "view task", "show task", "task details"],
|
|
18
|
-
"tags": ["task", "read", "details"],
|
|
19
|
-
"version": "1.0.0"
|
|
20
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Retrieve stored memories relevant to a given context
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
|
-
|
|
7
|
-
INPUT="${1:-}"
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"agentId\":\"dev-1\",\"context\":\"authentication patterns\"}'"
|
|
9
|
-
|
|
10
|
-
AGENT_ID=$(echo "$INPUT" | jq -r '.agentId // empty')
|
|
11
|
-
CONTEXT=$(echo "$INPUT" | jq -r '.context // empty')
|
|
12
|
-
require_param "agentId" "$AGENT_ID"
|
|
13
|
-
require_param "context" "$CONTEXT"
|
|
14
|
-
|
|
15
|
-
# Build body with required and optional fields
|
|
16
|
-
BODY=$(echo "$INPUT" | jq '{
|
|
17
|
-
agentId: .agentId,
|
|
18
|
-
context: .context
|
|
19
|
-
} +
|
|
20
|
-
(if .scope then {scope: .scope} else {} end) +
|
|
21
|
-
(if .limit then {limit: (.limit | tonumber)} else {} end) +
|
|
22
|
-
(if .projectPath then {projectPath: .projectPath} else {} end)')
|
|
23
|
-
|
|
24
|
-
api_call POST "/memory/recall" "$BODY"
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Recall
|
|
2
|
-
|
|
3
|
-
Retrieve stored memories relevant to a given context or query. Use this to look up past decisions, architectural patterns, or findings before starting related work.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
| Parameter | Required | Description |
|
|
8
|
-
|-----------|----------|-------------|
|
|
9
|
-
| `agentId` | Yes | Your agent ID |
|
|
10
|
-
| `context` | Yes | Search context or query describing what you want to recall |
|
|
11
|
-
| `scope` | No | Filter by scope: `"project"`, `"team"`, or `"global"` |
|
|
12
|
-
| `limit` | No | Maximum number of results to return |
|
|
13
|
-
| `projectPath` | No | Filter by project path |
|
|
14
|
-
|
|
15
|
-
## Example
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
bash config/skills/agent/recall/execute.sh '{"agentId":"dev-1","context":"authentication implementation patterns","scope":"project","limit":5}'
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Output
|
|
22
|
-
|
|
23
|
-
JSON array of matching memory entries with content, category, scope, and timestamps.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "agent-recall",
|
|
3
|
-
"name": "Recall",
|
|
4
|
-
"description": "Retrieve stored memories relevant to a given context or query.",
|
|
5
|
-
"category": "memory",
|
|
6
|
-
"skillType": "claude-skill",
|
|
7
|
-
"promptFile": "instructions.md",
|
|
8
|
-
"execution": {
|
|
9
|
-
"type": "script",
|
|
10
|
-
"script": {
|
|
11
|
-
"file": "execute.sh",
|
|
12
|
-
"interpreter": "bash",
|
|
13
|
-
"timeoutMs": 15000
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"assignableRoles": ["developer", "qa", "tpm", "designer", "frontend-developer", "backend-developer", "fullstack-dev", "qa-engineer", "product-manager", "architect", "generalist", "sales", "support"],
|
|
17
|
-
"triggers": ["recall", "search memory", "remember what", "look up"],
|
|
18
|
-
"tags": ["memory", "recall", "search", "context"],
|
|
19
|
-
"version": "1.0.0"
|
|
20
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Record a learning or insight for team knowledge sharing
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
|
-
|
|
7
|
-
INPUT="${1:-}"
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"agentId\":\"dev-1\",\"agentRole\":\"developer\",\"projectPath\":\"/projects/app\",\"learning\":\"Jest mock resets are needed between tests\"}'"
|
|
9
|
-
|
|
10
|
-
AGENT_ID=$(echo "$INPUT" | jq -r '.agentId // empty')
|
|
11
|
-
AGENT_ROLE=$(echo "$INPUT" | jq -r '.agentRole // empty')
|
|
12
|
-
PROJECT_PATH=$(echo "$INPUT" | jq -r '.projectPath // empty')
|
|
13
|
-
LEARNING=$(echo "$INPUT" | jq -r '.learning // empty')
|
|
14
|
-
require_param "agentId" "$AGENT_ID"
|
|
15
|
-
require_param "agentRole" "$AGENT_ROLE"
|
|
16
|
-
require_param "projectPath" "$PROJECT_PATH"
|
|
17
|
-
require_param "learning" "$LEARNING"
|
|
18
|
-
|
|
19
|
-
# Build body with required and optional fields
|
|
20
|
-
BODY=$(echo "$INPUT" | jq '{
|
|
21
|
-
agentId: .agentId,
|
|
22
|
-
agentRole: .agentRole,
|
|
23
|
-
projectPath: .projectPath,
|
|
24
|
-
learning: .learning
|
|
25
|
-
} +
|
|
26
|
-
(if .relatedTask then {relatedTask: .relatedTask} else {} end) +
|
|
27
|
-
(if .relatedFiles then {relatedFiles: .relatedFiles} else {} end)')
|
|
28
|
-
|
|
29
|
-
api_call POST "/memory/record-learning" "$BODY"
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Record Learning
|
|
2
|
-
|
|
3
|
-
Record a learning or insight gained during task execution. These learnings are shared with the team and accumulated over time to improve future work.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
| Parameter | Required | Description |
|
|
8
|
-
|-----------|----------|-------------|
|
|
9
|
-
| `agentId` | Yes | Your agent ID |
|
|
10
|
-
| `agentRole` | Yes | Your role (e.g., `"developer"`, `"qa"`) |
|
|
11
|
-
| `projectPath` | Yes | Absolute path to the project |
|
|
12
|
-
| `learning` | Yes | Description of the learning or insight |
|
|
13
|
-
| `relatedTask` | No | Path or ID of the task that triggered this learning |
|
|
14
|
-
| `relatedFiles` | No | Array of file paths related to the learning |
|
|
15
|
-
|
|
16
|
-
## Example
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
bash config/skills/agent/record-learning/execute.sh '{"agentId":"dev-1","agentRole":"developer","projectPath":"/projects/app","learning":"Jest mock resets are required between tests when using shared module mocks","relatedTask":"implement-auth-tests","relatedFiles":["src/auth.service.test.ts"]}'
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Output
|
|
23
|
-
|
|
24
|
-
JSON confirmation that the learning was recorded.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "agent-record-learning",
|
|
3
|
-
"name": "Record Learning",
|
|
4
|
-
"description": "Record a learning or insight gained during task execution for team knowledge sharing.",
|
|
5
|
-
"category": "memory",
|
|
6
|
-
"skillType": "claude-skill",
|
|
7
|
-
"promptFile": "instructions.md",
|
|
8
|
-
"execution": {
|
|
9
|
-
"type": "script",
|
|
10
|
-
"script": {
|
|
11
|
-
"file": "execute.sh",
|
|
12
|
-
"interpreter": "bash",
|
|
13
|
-
"timeoutMs": 15000
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"assignableRoles": ["developer", "qa", "tpm", "designer", "frontend-developer", "backend-developer", "fullstack-dev", "qa-engineer", "product-manager", "architect", "generalist", "sales", "support"],
|
|
17
|
-
"triggers": ["record learning", "learned that", "new insight", "knowledge share"],
|
|
18
|
-
"tags": ["memory", "learning", "knowledge", "insight"],
|
|
19
|
-
"version": "1.0.0"
|
|
20
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Register an agent with the Crewly backend
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
|
-
|
|
7
|
-
INPUT="${1:-}"
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"role\":\"developer\",\"sessionName\":\"dev-1\"}'"
|
|
9
|
-
|
|
10
|
-
ROLE=$(echo "$INPUT" | jq -r '.role // empty')
|
|
11
|
-
SESSION_NAME=$(echo "$INPUT" | jq -r '.sessionName // empty')
|
|
12
|
-
require_param "role" "$ROLE"
|
|
13
|
-
require_param "sessionName" "$SESSION_NAME"
|
|
14
|
-
|
|
15
|
-
# Optional: claudeSessionId for resume support
|
|
16
|
-
CLAUDE_SESSION_ID=$(echo "$INPUT" | jq -r '.claudeSessionId // empty')
|
|
17
|
-
TEAM_MEMBER_ID=$(echo "$INPUT" | jq -r '.teamMemberId // empty')
|
|
18
|
-
|
|
19
|
-
BODY=$(jq -n \
|
|
20
|
-
--arg role "$ROLE" \
|
|
21
|
-
--arg sessionName "$SESSION_NAME" \
|
|
22
|
-
--arg claudeSessionId "$CLAUDE_SESSION_ID" \
|
|
23
|
-
--arg teamMemberId "$TEAM_MEMBER_ID" \
|
|
24
|
-
'{role: $role, sessionName: $sessionName} +
|
|
25
|
-
(if $claudeSessionId != "" then {claudeSessionId: $claudeSessionId} else {} end) +
|
|
26
|
-
(if $teamMemberId != "" then {teamMemberId: $teamMemberId} else {} end)')
|
|
27
|
-
|
|
28
|
-
api_call POST "/teams/members/register" "$BODY"
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Register Self
|
|
2
|
-
|
|
3
|
-
Register this agent as active with the Crewly backend. This must be the first skill you run on startup.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
| Parameter | Required | Description |
|
|
8
|
-
|-----------|----------|-------------|
|
|
9
|
-
| `role` | Yes | Agent role (e.g., "developer", "qa", "tpm") |
|
|
10
|
-
| `sessionName` | Yes | Your session name (from your identity) |
|
|
11
|
-
| `teamMemberId` | No | Your team member ID |
|
|
12
|
-
| `claudeSessionId` | No | Claude session ID for resume support |
|
|
13
|
-
|
|
14
|
-
## Example
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
bash config/skills/agent/register-self/execute.sh '{"role":"developer","sessionName":"dev-1"}'
|
|
18
|
-
```
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "agent-register-self",
|
|
3
|
-
"name": "Register Self",
|
|
4
|
-
"description": "Register the agent as active with the Crewly backend. Must be called on startup.",
|
|
5
|
-
"category": "system",
|
|
6
|
-
"skillType": "claude-skill",
|
|
7
|
-
"promptFile": "instructions.md",
|
|
8
|
-
"execution": {
|
|
9
|
-
"type": "script",
|
|
10
|
-
"script": {
|
|
11
|
-
"file": "execute.sh",
|
|
12
|
-
"interpreter": "bash",
|
|
13
|
-
"timeoutMs": 15000
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"assignableRoles": ["developer", "qa", "tpm", "designer", "frontend-developer", "backend-developer", "fullstack-dev", "qa-engineer", "product-manager", "architect", "generalist", "sales", "support"],
|
|
17
|
-
"triggers": ["register", "check in", "go online"],
|
|
18
|
-
"tags": ["system", "registration", "startup"],
|
|
19
|
-
"version": "1.0.0"
|
|
20
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Store a memory entry for future recall
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
|
-
|
|
7
|
-
INPUT="${1:-}"
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"agentId\":\"dev-1\",\"content\":\"The auth module uses JWT\",\"category\":\"architecture\",\"scope\":\"project\"}'"
|
|
9
|
-
|
|
10
|
-
AGENT_ID=$(echo "$INPUT" | jq -r '.agentId // empty')
|
|
11
|
-
CONTENT=$(echo "$INPUT" | jq -r '.content // empty')
|
|
12
|
-
CATEGORY=$(echo "$INPUT" | jq -r '.category // empty')
|
|
13
|
-
SCOPE=$(echo "$INPUT" | jq -r '.scope // empty')
|
|
14
|
-
require_param "agentId" "$AGENT_ID"
|
|
15
|
-
require_param "content" "$CONTENT"
|
|
16
|
-
require_param "category" "$CATEGORY"
|
|
17
|
-
require_param "scope" "$SCOPE"
|
|
18
|
-
|
|
19
|
-
# Build body with required and optional fields
|
|
20
|
-
BODY=$(echo "$INPUT" | jq '{
|
|
21
|
-
agentId: .agentId,
|
|
22
|
-
content: .content,
|
|
23
|
-
category: .category,
|
|
24
|
-
scope: .scope
|
|
25
|
-
} +
|
|
26
|
-
(if .projectPath then {projectPath: .projectPath} else {} end) +
|
|
27
|
-
(if .metadata then {metadata: .metadata} else {} end)')
|
|
28
|
-
|
|
29
|
-
api_call POST "/memory/remember" "$BODY"
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Remember
|
|
2
|
-
|
|
3
|
-
Store a memory entry for future recall. Use this to persist important context, decisions, architectural findings, or patterns you discover during work.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
| Parameter | Required | Description |
|
|
8
|
-
|-----------|----------|-------------|
|
|
9
|
-
| `agentId` | Yes | Your agent ID |
|
|
10
|
-
| `content` | Yes | The content to remember |
|
|
11
|
-
| `category` | Yes | Memory category (e.g., `"architecture"`, `"decision"`, `"pattern"`, `"bug"`) |
|
|
12
|
-
| `scope` | Yes | Memory scope: `"project"`, `"team"`, or `"global"` |
|
|
13
|
-
| `projectPath` | No | Associated project path |
|
|
14
|
-
| `metadata` | No | Additional metadata object |
|
|
15
|
-
|
|
16
|
-
## Example
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
bash config/skills/agent/remember/execute.sh '{"agentId":"dev-1","content":"Auth module uses JWT with 24h expiry. Refresh tokens stored in httpOnly cookies.","category":"architecture","scope":"project","projectPath":"/projects/app"}'
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Output
|
|
23
|
-
|
|
24
|
-
JSON confirmation that the memory entry was stored.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "agent-remember",
|
|
3
|
-
"name": "Remember",
|
|
4
|
-
"description": "Store a memory entry for future recall. Use this to persist important context, decisions, or findings.",
|
|
5
|
-
"category": "memory",
|
|
6
|
-
"skillType": "claude-skill",
|
|
7
|
-
"promptFile": "instructions.md",
|
|
8
|
-
"execution": {
|
|
9
|
-
"type": "script",
|
|
10
|
-
"script": {
|
|
11
|
-
"file": "execute.sh",
|
|
12
|
-
"interpreter": "bash",
|
|
13
|
-
"timeoutMs": 15000
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"assignableRoles": ["developer", "qa", "tpm", "designer", "frontend-developer", "backend-developer", "fullstack-dev", "qa-engineer", "product-manager", "architect", "generalist", "sales", "support"],
|
|
17
|
-
"triggers": ["remember", "save memory", "store context", "note this"],
|
|
18
|
-
"tags": ["memory", "persistence", "context"],
|
|
19
|
-
"version": "1.0.0"
|
|
20
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Report progress on the current task
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
|
-
|
|
7
|
-
INPUT="${1:-}"
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"sessionName\":\"dev-1\",\"progress\":50,\"current\":\"Implementing tests\"}'"
|
|
9
|
-
|
|
10
|
-
SESSION_NAME=$(echo "$INPUT" | jq -r '.sessionName // empty')
|
|
11
|
-
PROGRESS=$(echo "$INPUT" | jq -r '.progress // empty')
|
|
12
|
-
CURRENT=$(echo "$INPUT" | jq -r '.current // empty')
|
|
13
|
-
require_param "sessionName" "$SESSION_NAME"
|
|
14
|
-
require_param "progress" "$PROGRESS"
|
|
15
|
-
require_param "current" "$CURRENT"
|
|
16
|
-
|
|
17
|
-
# Build body with required and optional fields
|
|
18
|
-
BODY=$(echo "$INPUT" | jq '{
|
|
19
|
-
sessionName: .sessionName,
|
|
20
|
-
progress: (.progress | tonumber),
|
|
21
|
-
current: .current
|
|
22
|
-
} +
|
|
23
|
-
(if .completed then {completed: .completed} else {} end) +
|
|
24
|
-
(if .nextSteps then {nextSteps: .nextSteps} else {} end) +
|
|
25
|
-
(if .blockers then {blockers: .blockers} else {} end) +
|
|
26
|
-
(if .ticketId then {ticketId: .ticketId} else {} end)')
|
|
27
|
-
|
|
28
|
-
api_call POST "/task-management/sync" "$BODY"
|