36 Commits

Author SHA1 Message Date
Will Pfleger
7cf61d55f9 feat: normalized config schema with PersonaRecord.provider and SPROUT_AGENT_MODEL
sprout-agent personas all failed because the desktop never injected
SPROUT_AGENT_PROVIDER or model env vars at spawn time, and the goose
config fallback only understood the old flat format. Extract goose
config compat into an isolated submodule, add support for the newer
active_provider + nested providers format, and wire a normalized
config schema so Sprout injects the right env vars for any runtime.

Key changes:
- PersonaRecord.provider captures the LLM provider independently
- SPROUT_AGENT_MODEL works as a universal model fallback
- provider_env_var and model_env_var always injected at spawn time
- Pack import now stores resolved env vars (was always empty)
- runtime_env_vars() emits runtime-appropriate vars (SPROUT_AGENT_*
  vs GOOSE_*)
2026-06-08 11:31:51 -04:00
Will Pfleger
0a6067ca1b refactor: rename ACP "provider" to "runtime" across the codebase (#783) 2026-06-07 14:40:59 -04:00
Will Pfleger
ef98ae942a fix(cli): publish ephemeral events over WebSocket via sprout-ws-client (#876) 2026-06-05 16:26:30 -04:00
Will Pfleger
2f50011bdd docs(sprout-acp): add communication discipline rules to base prompt + deprecate --mention flag (#883) 2026-06-05 15:52:05 -04:00
Will Pfleger
7129cd6f23 feat(cli): add emoji export and import subcommands (#882) 2026-06-05 15:33:31 -04:00
Will Pfleger
f1c672fea5 chore: deprecate sprout-mcp — fill CLI gaps, remove crate and all references (#850) 2026-06-05 12:31:52 -04:00
Wes
2349421304 feat: custom emoji — user-owned NIP-30 sets with a client-side union (#816)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
2026-06-02 14:19:07 -07:00
Will Pfleger
2a03851527 refactor: consolidate infra management into justfile + add mobile-dev (#797) 2026-05-29 18:26:24 -04:00
tlongwell-block
6d50090c01 feat(cli): add channels search for human-readable channel lookup (#712)
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co>
2026-05-26 11:41:49 -04:00
tlongwell-block
2a8b765c45 feat(notes): add --latest to notes get for ambiguous slugs (#730)
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com>
2026-05-22 21:16:48 -04:00
Will Pfleger
a65b7fc06f fix(deps): migrate nostr crate from 0.36 to 0.44 (#708) 2026-05-22 17:17:11 -04:00
tlongwell-block
8e26836015 Allow owners to read agent memories (#727)
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Max (sprout agent) <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co>
2026-05-22 16:52:02 -04:00
Will Pfleger
6dcb04bcd9 Fix CLI output normalization and wrong Nostr kinds (MCP parity) (#612) 2026-05-22 10:32:20 -04:00
tlongwell-block
504cfea20d feat: sprout notes NIP-23 long-form CLI + relay a-tag deletion (#719)
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Max (sprout agent) <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Quinn (sprout agent) <96f056ad5f2305c8ddf637dc65d048aa4c12d7daeb8867690e34fca46b0ef64c@sprout-oss.stage.blox.sqprod.co>
2026-05-21 22:30:21 -04:00
tlongwell-block
c9dd97ba1a feat(cli/mem): add mem patch, mem hash, and reject empty-stdin in mem set (#627)
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co>
2026-05-20 14:51:30 -04:00
tlongwell-block
23c8fa72c7 Add relay support for NIP-51 lists (#616)
Signed-off-by: Tyler Longwell <tlongwell@squareup.com>
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co>
2026-05-20 13:59:22 -04:00
tlongwell-block
2a69f285e7 cli(mem): clarify 'no memories' wording to note core is excluded (#622)
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Dawn <dawn@sprout-agents.local>
2026-05-20 14:10:39 +00:00
tlongwell-block
c0c9cf9271 cli(messages): allow --content - to read body from stdin (#624)
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co>
2026-05-20 02:38:17 +00:00
tlongwell-block
24520aa2b1 NIP-AE: agent engrams (kind:30174) — core memory injection + sprout mem CLI (#593)
Signed-off-by: Tyler Longwell <tlongwell@squareup.com>
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com>
2026-05-19 13:16:37 -04:00
Will Pfleger
1d8a130b32 refactor(cli): restructure flat commands into 12 subcommand groups (#585) 2026-05-14 19:13:49 -04:00
Will Pfleger
01a3df7f1f feat(sdk): add builder functions for workflows, DMs, and presence (#589) 2026-05-14 18:49:57 -04:00
tlongwell-block
1b87a0905f refactor: extract shared @mention resolver into sprout-sdk (#580)
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Dawn <dawn@sprout.local>
2026-05-14 11:38:52 -04:00
tlongwell-block
e427581ca3 fix(cli): derive thread root from parent event tags (#564)
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
2026-05-13 09:54:43 -04:00
tlongwell-block
6b4f9f05d4 cli: add display name lookup to get-users (#543) 2026-05-11 20:41:02 -04:00
tlongwell-block
98030c526a feat: Git repository management commands (#533) 2026-05-11 13:40:51 -04:00
tlongwell-block
91f16e326f feat: embed sprout CLI in dev-mcp, add NIP-OA auth tag support (#525) 2026-05-11 06:57:34 -04:00
Wes
0dcfa86f84 chore: remove dead API token references from GUI, docs, and config (#498)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-07 19:07:44 +00:00
tlongwell-block
454781caae Sprout speaks Nostr. Nothing else. (#475) 2026-05-05 12:03:06 -04:00
tlongwell-block
f23560d3d4 feat: Image & video uploads for MCP and CLI (Blossom protocol) (#433)
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
2026-04-30 14:35:02 -04:00
tlongwell-block
d07385fe02 feat: Markdown-based persona packs (crate + ACP + desktop) (#297) 2026-04-11 13:32:14 -04:00
renovate[bot]
7a9218ba54 Update all non-major dependencies (#248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Wes <wesb@block.xyz>
2026-04-08 11:55:11 -07:00
tlongwell-block
8bfce0975b feat: social notes MCP + CLI tools (kind:1/kind:3) (#268) 2026-04-08 14:08:53 -04:00
tlongwell-block
853ebe5bfd feat: auto-resolve @mentions in MCP server and CLI (#256) 2026-04-07 12:57:33 -04:00
tlongwell-block
b20d4596a9 feat(messages): add since parameter to get_messages API and MCP tool (#154) 2026-03-24 14:46:17 -04:00
tlongwell-block
25ed2dcc23 feat: event-first refactor — unified ingest pipeline, SDK, client migrations (#162) 2026-03-24 13:38:36 -04:00
tlongwell-block
4c9b8aae9c feat: sprout-cli — agent-first CLI with full MCP parity (48 commands) (#158) 2026-03-21 21:23:32 -04:00