diff options
Diffstat (limited to 'panto-subagents-0.1.0-1.rockspec')
| -rw-r--r-- | panto-subagents-0.1.0-1.rockspec | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/panto-subagents-0.1.0-1.rockspec b/panto-subagents-0.1.0-1.rockspec new file mode 100644 index 0000000..073ff56 --- /dev/null +++ b/panto-subagents-0.1.0-1.rockspec @@ -0,0 +1,84 @@ +-- LuaRocks rockspec for `panto-subagents`: the `subagents` extension for +-- Pantograph — pure Lua, no compiled artifact of its own. +-- +-- Module naming. Pantograph requires the first whitespace-delimited token of an +-- `[extensions] rocks = [...]` entry, so `require("panto-subagents")` must +-- resolve to this rock's entry point; that is what the first `modules` line +-- maps. The remaining modules keep the same `subagents.<name>` paths a local +-- checkout gets from `paths = ["/path/to/panto-subagents"]`, so both load paths +-- resolve identical requires. +-- +-- Dependencies. `lyaml` parses profile frontmatter and is a C binding over the +-- system libyaml, which luarocks does not vendor: a machine without it needs +-- `brew install libyaml` (or `apt install libyaml-dev`) first, and may need +-- `YAML_DIR=...` passed to luarocks. `toml2lua` (module name `toml`) reads TOML +-- workflows and is pure Lua. `luv` backs the recursive discovery walk and the +-- wake pipes child jobs are polled on, and ships with panto as a pinned +-- battery, so it is normally already present in the tree this rock installs +-- into. +-- +-- Deliberately absent: `jsonschema`. It validates structured workflow output +-- when installed, and subagents/workflow.lua uses it if `require` finds it, but +-- it depends on `lrexlib-pcre`, which needs a system PCRE that stock macOS does +-- not have. A failed dependency install would take the whole extension down +-- silently (panto logs and skips a rock that fails to load), so the built-in +-- subset validator is the default and `jsonschema` stays opt-in. + +rockspec_format = "3.0" +package = "panto-subagents" +version = "0.1.0-1" + +source = { + url = "git+https://github.com/travisp/panto-subagents", +} + +description = { + summary = "Delegation and workflows for Pantograph: the `subagents` extension.", + detailed = [[ + Lets a primary panto agent start specialized child agents from Markdown + profiles, run several at once, and continue their conversations later. + Provides the subagents.run / subagents.models / subagents.lua / + subagents.workflow tools, a callback-based Lua workflow API with + one-shot structured workers, and TOML dependency graphs exposed as + /workflow:<name> commands. + ]], + homepage = "https://github.com/travisp/panto-subagents", + license = "MIT", + labels = { "ai", "llm", "agent", "panto", "pantograph", "extension" }, +} + +dependencies = { + "lua >= 5.4, < 5.5", + "lyaml >= 6.2, < 7.0", + "toml2lua >= 3.0, < 4.0", + "luv >= 1.48", +} + +-- The specs run on plain Lua and decode structured child output with dkjson +-- when the host's own JSON codec (`panto.ext.json`) is absent. +test_dependencies = { + "dkjson >= 2.11", +} + +test = { + type = "command", + command = "lua spec/run.lua", +} + +build = { + type = "builtin", + modules = { + ["panto-subagents"] = "init.lua", + ["subagents.frontmatter"] = "subagents/frontmatter.lua", + ["subagents.jobs"] = "subagents/jobs.lua", + ["subagents.luatool"] = "subagents/luatool.lua", + ["subagents.models"] = "subagents/models.lua", + ["subagents.paths"] = "subagents/paths.lua", + ["subagents.profiles"] = "subagents/profiles.lua", + ["subagents.progress"] = "subagents/progress.lua", + ["subagents.run"] = "subagents/run.lua", + ["subagents.spawn"] = "subagents/spawn.lua", + ["subagents.toml_workflows"] = "subagents/toml_workflows.lua", + ["subagents.workflow"] = "subagents/workflow.lua", + }, +} |
