{"_id":"@anton-kochev/pithos.guild","_rev":"2-9fd3faa8f4cb947c0fc34764d5b4f3f4","name":"@anton-kochev/pithos.guild","dist-tags":{"bootstrap":"0.0.0","latest":"0.1.0"},"versions":{"0.0.0":{"name":"@anton-kochev/pithos.guild","version":"0.0.0","keywords":["pi-package","pi-extension","pithos","guild","delegation","dotnet","angular"],"license":"MIT","_id":"@anton-kochev/pithos.guild@0.0.0","maintainers":[{"name":"anton-kochev","email":"anton.kochev@gmail.com"}],"homepage":"https://github.com/anton-kochev/pithos-kit#readme","bugs":{"url":"https://github.com/anton-kochev/pithos-kit/issues"},"pi":{"extensions":["./extensions"]},"dist":{"shasum":"92f381c76136a1819673154995513e569abbbe0b","tarball":"https://registry.npmjs.org/@anton-kochev/pithos.guild/-/pithos.guild-0.0.0.tgz","fileCount":14,"integrity":"sha512-u6d4ymW541woriFVfn57xXmDm9+YNqw3V7ihKkzNII9Lna7H6/Yl8rypSX8VL5Gfl2pVsa+vTHhhOG6geHu9CQ==","signatures":[{"sig":"MEUCIQCHsEDVKwgMetuVu0zgLbEFztw8cJ1Ge5L9ilx3TyE3iAIgbfhk40f4XUlCq88DZEu4LZrVNGHqeGYIPcC21eiSPk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73896},"type":"module","scripts":{"test":"node --import tsx --test test/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anton-kochev","email":"anton.kochev@gmail.com"},"repository":{"url":"git+https://github.com/anton-kochev/pithos-kit.git","type":"git","directory":"pithos.guild"},"_npmVersion":"10.9.2","description":"Standalone .NET and Angular Guild members for Pi.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","typescript":"^5.9.0","@types/node":"^24.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pithos.guild_0.0.0_1786363689077_0.7475213446065319","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@anton-kochev/pithos.guild","version":"0.1.0","description":"Standalone .NET and Angular Guild members for Pi.","keywords":["pi-package","pi-extension","pithos","guild","delegation","dotnet","angular"],"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/anton-kochev/pithos-kit.git","directory":"pithos.guild"},"publishConfig":{"access":"public"},"devDependencies":{"@types/node":"^24.0.0","tsx":"^4.20.4","typescript":"^5.9.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*","typebox":"*"},"pi":{"extensions":["./extensions"]},"scripts":{"test":"node --import tsx --test test/*.test.ts","typecheck":"tsc --noEmit"},"gitHead":"14e32cc67fc85c72b7588bf1c31b78361f1eaa8c","_id":"@anton-kochev/pithos.guild@0.1.0","bugs":{"url":"https://github.com/anton-kochev/pithos-kit/issues"},"homepage":"https://github.com/anton-kochev/pithos-kit#readme","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-BoPZL1oWLlwdg8E4L4mpZkhIWnSWRqcphAVcSXIds2ZjteODdCK0359GHZUU5kzQ+QX0wFVlrOK4LdF5/YC+bw==","shasum":"0774a7c74b1dd59be89c6b87a728cf97ea50b10b","tarball":"https://registry.npmjs.org/@anton-kochev/pithos.guild/-/pithos.guild-0.1.0.tgz","fileCount":14,"unpackedSize":73896,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anton-kochev%2fpithos.guild@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICGFz+LXa7yerVopZrnptuqnA2fJkstRs67tbC9srmcbAiEA4EI58GhPupDvW1LPcsANNwTBcMjYQlJ/BrXLMVggVHE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5f58729-b3b8-444e-a867-a68d6a416c0d"}},"directories":{},"maintainers":[{"name":"anton-kochev","email":"anton.kochev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pithos.guild_0.1.0_1786376352496_0.1264344696907307"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-10T12:08:08.439Z","modified":"2026-08-10T15:39:12.997Z","0.0.0":"2026-08-10T12:08:09.452Z","0.1.0":"2026-08-10T15:39:12.677Z"},"bugs":{"url":"https://github.com/anton-kochev/pithos-kit/issues"},"license":"MIT","homepage":"https://github.com/anton-kochev/pithos-kit#readme","keywords":["pi-package","pi-extension","pithos","guild","delegation","dotnet","angular"],"repository":{"type":"git","url":"git+https://github.com/anton-kochev/pithos-kit.git","directory":"pithos.guild"},"description":"Standalone .NET and Angular Guild members for Pi.","maintainers":[{"name":"anton-kochev","email":"anton.kochev@gmail.com"}],"readme":"# guild\n\nA standalone Guild of .NET and Angular architecture and implementation members for [pi](https://github.com/earendil-works/pi-mono).\n\nThe extension adds an agent-callable `guild_handover` tool and an interactive `/guild-handover` command for direct user delegation. Every handover starts an isolated, ephemeral pi process with a focused system prompt and a hard tool allowlist. The child inherits the parent session's active provider, model, thinking level, working directory, and project-trust decision.\n\n## Install\n\n```bash\npi install npm:@anton-kochev/pithos.guild\n```\n\nFor local development from this repository:\n\n```bash\npi install ./pithos.guild\npi install ./pithos.guild -l   # project-local\n```\n\nTemporary test run:\n\n```bash\npi -e ./pithos.guild\n```\n\n## Guild members\n\n| Member | Role | Tools |\n|---|---|---|\n| `dotnet-architect` | Read-only .NET architecture, reviews, contracts, test plans, and implementation handoffs | `read`, `grep`, `find`, `ls` |\n| `frontend-architect` | Read-only front-end architecture, state ownership, boundaries, routing, rendering, and API contracts | `read`, `grep`, `find`, `ls` |\n| `csharp-coder` | Scoped C#/.NET implementation, related tests, builds, and verification | `read`, `grep`, `find`, `ls`, `edit`, `write`, `bash` |\n| `angular-coder` | Scoped Angular implementation, related tests, type-checking, linting, and builds | `read`, `grep`, `find`, `ls`, `edit`, `write`, `bash` |\n\nArchitect members cannot edit files or run shell commands. Coder members own related tests and verification and must not report success when relevant checks fail.\n\n## Usage\n\nAsk the main agent to hand a self-contained task over to a Guild member:\n\n```text\nUse dotnet-architect to design the order cancellation workflow.\nUse frontend-architect to define state ownership for checkout.\nUse csharp-coder to implement the approved cancellation design.\nUse angular-coder to add the checkout loading and error states.\n```\n\nThe main agent invokes:\n\n```text\nguild_handover({ member: \"csharp-coder\", task: \"...scope and acceptance criteria...\" })\n```\n\nDelegate directly from the interactive TUI without asking the main agent to invoke the tool:\n\n```text\n/guild-handover\n/guild-handover csharp-coder\n/guild-handover csharp-coder Implement validation and run the tests\n```\n\nWith no member, the command opens a roster picker. With no task, it opens a multiline task editor. The command waits for the main agent to become idle, applies the same member discovery and project-override approval as the tool, and then runs synchronously in a cancellable live handover card. Direct command execution is intentionally TUI-only.\n\nList the active roster and definition sources without executing a member:\n\n```text\n/guild\n```\n\n## Live transparency\n\nWhile Guild members are executing, the extension shows a themed, framed operations card above the editor:\n\n```text\n────────────────────────────────────────────────────────\n✦ Guild Operations  2 active\n\n● RUNNING  dotnet-architect · builtin · READ ONLY · 5s\n  ↳ Design order cancellation\n  ◇ openai-codex/gpt-5.6-sol · thinking xhigh · 2 turns\n  ⚙ read, grep, find, ls\n\n● RUNNING  angular-coder · project · WRITE ENABLED · 3s\n  ↳ Implement checkout loading state\n  ◇ openai-codex/gpt-5.6-sol · thinking xhigh\n  ⚙ read, grep, find, ls, edit, write, bash\n\n────────────────────────────────────────────────────────\n```\n\nColors follow the active Pi theme: accent framing, amber running states, and muted metadata. `guild_handover` also has a custom tool-call card and a compact completion card whose full output is available through normal tool expansion.\n\nAgent-invoked handovers use the aggregate dashboard shown above. A direct `/guild-handover` instead uses a compact, width-capped live card with a spinner, elapsed time, turns, current child-tool activity, and the configured cancellation hint:\n\n```text\n╭─ ✦ Guild Relay ───────────────────────────────────────────────────────── [● Running  00:12] ─╮\n│  dotnet-architect · built-in · read-only                                                     │\n│  Request  Explore the repository for .NET artifacts                                          │\n│  ⠋  Scanning repository · find · 2 turns                               escape/ctrl+c cancel  │\n╰──────────────────────────────────────────────────────────────────────────────────────────────╯\n```\n\nThe activity label is derived from actual child tool events rather than an invented progress percentage. Completed reports render as Markdown in a neutral framed card; failed runs receive a diagnostics section, and cancellations use a compact terminal treatment.\n\nWhile agent-invoked work is running, the footer reports the active count and the aggregate panel updates elapsed time and turns. Each stopped Guild member is removed from that live panel immediately. When the final active run stops, the `guild-dashboard` panel and footer status clear. Completed output and metadata remain on the corresponding tool result or direct-handover lifecycle message in the transcript.\n\nA direct handover records a user-initiated `started` event and exactly one correlated terminal event. The started event is hidden visually because the live card already communicates progress, but both events remain available to the main agent on its next turn. They use `triggerTurn: false`, so completion never causes an automatic main-agent response. Member reports and failure diagnostics are explicitly delimited as task data rather than new instructions. Selection/editor cancellation creates no event; cancellation after execution starts records a terminal `cancelled` event.\n\nGuild is independent of Pi's native specialist facility and does not observe its tool lifecycle or messages.\n\nThe first release intentionally supports one Guild member per invocation. Parallel tasks, chains, persistent member memory, and dedicated reviewer/test-writer members are out of scope.\n\n## Guild member overrides\n\nThe package always provides its four built-in definitions. You can override a definition by creating a Markdown agent file in:\n\n- User scope: `~/.pi/agent/agents/*.md`\n- Project scope: `.pi/agents/*.md` in the current directory or an ancestor\n\nPrecedence is:\n\n```text\nproject → user → built-in\n```\n\nProject definitions are considered only in trusted projects. Handing a task to a selected project override also requires explicit interactive confirmation; it is rejected when no UI is available.\n\nAn override uses this format:\n\n```markdown\n---\nname: csharp-coder\ndescription: Project-specific C# Guild member.\ntools: read, grep, find, ls, edit, write, bash\n---\n\nYour project-specific Guild member instructions.\n```\n\nNames are limited to the bundled roster. Tool boundaries are hard policy: an override whose tools differ from the corresponding built-in role is ignored. This prevents an architect prompt from gaining write or shell access.\n\n## Isolation and resources\n\nEach Guild member runs with:\n\n- an isolated context window and no saved child session;\n- the parent's current provider/model and thinking level;\n- the Guild member's fixed tool allowlist;\n- the parent's working directory and trust decision;\n- normal trusted project context and skill discovery;\n- extension discovery disabled in the child, preventing recursive delegation and unrelated extension behavior.\n\nCancellation terminates the child process and waits for it to stop before returning control. Model-visible output is capped at 50 KB; full output and run metadata remain in tool-result or lifecycle-message details.\n\n## Development\n\n```bash\ncd pithos.guild\nnpm install\nnpm test\nnpm run typecheck\nnpm pack --dry-run\n```\n\n## Provenance\n\nThe bundled Guild member prompts are adapted for pi from the MIT-licensed [Grimoire](https://github.com/anton-kochev/grimoire) project. See [`NOTICE.md`](./NOTICE.md).\n","readmeFilename":"README.md"}