Commit 17170fa
Support agent skills (#79)
* Add skill discovery system for on-demand agent instructions
Implement a skill discovery mechanism that finds SKILL.md files from
multiple locations (repo, user, system) and makes them available to
the agent via the system prompt. Skills use YAML frontmatter for
metadata and support precedence ordering where repo skills override
user/system skills.
Co-authored-by: construct-agent <noreply@construct.sh>
* Add SkillService proto definitions for skill management
Define the gRPC service and messages for installing, listing, deleting,
and updating skills from remote sources (GitHub, GitLab, direct URLs).
Co-Authored-By: construct-agent <noreply@construct.sh>
* Add skill installation, deletion, and update logic
Implements source parsing for GitHub/GitLab repos and direct URLs,
git clone operations with go-git, skill discovery, and lock file
management with flock for concurrency safety.
Co-Authored-By: construct-agent <noreply@construct.sh>
* Add SkillService API handler and server registration
Implements SkillServiceHandler with install, list, delete, and update
operations. Registers the handler in the API server with skill installer
created from OS filesystem.
Co-Authored-By: construct-agent <noreply@construct.sh>
* Add Skill client accessor to API client
Adds Skill() method to retrieve SkillServiceClient and updates
MockClient with generated mock for testing.
Co-Authored-By: construct-agent <noreply@construct.sh>
* Add skill CLI commands for install, list, delete, and update
Implements construct skill subcommands:
- install: Fetch and install skills from GitHub/GitLab/URLs
- list: List all installed skills
- delete: Remove an installed skill
- update: Update skills to latest versions
Co-Authored-By: construct-agent <noreply@construct.sh>
* Add tests for ParseSource and lock file operations
Tests source parsing for GitHub shorthand, full URLs, GitLab URLs,
and direct SKILL.md URLs. Also tests lock file create/update/remove
operations.
Co-authored-by: construct-agent <noreply@construct.sh>1 parent 8b7cb91 commit 17170fa
26 files changed
Lines changed: 3842 additions & 11 deletions
File tree
- api
- def/construct/v1
- go
- client
- mocks
- v1
- v1connect
- backend
- agent
- api
- skill
- docs
- frontend/cli/cmd
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
106 | 107 | | |
107 | 108 | | |
108 | 109 | | |
| 110 | + | |
109 | 111 | | |
110 | 112 | | |
111 | 113 | | |
| |||
133 | 135 | | |
134 | 136 | | |
135 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
136 | 142 | | |
137 | 143 | | |
138 | 144 | | |
139 | 145 | | |
140 | 146 | | |
141 | 147 | | |
142 | 148 | | |
| 149 | + | |
143 | 150 | | |
144 | 151 | | |
145 | 152 | | |
| |||
150 | 157 | | |
151 | 158 | | |
152 | 159 | | |
| 160 | + | |
153 | 161 | | |
154 | 162 | | |
155 | 163 | | |
| |||
161 | 169 | | |
162 | 170 | | |
163 | 171 | | |
| 172 | + | |
164 | 173 | | |
165 | 174 | | |
166 | 175 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments