@pencil-agent/nano-pencil 2.0.0-beta.9 → 2.0.0
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/README.md +267 -267
- package/dist/build-meta.json +3 -3
- package/dist/core/export-html/AGENT.md +11 -11
- package/dist/core/export-html/template.css +971 -971
- package/dist/core/export-html/template.html +54 -54
- package/dist/core/extensions-host/index.d.ts +1 -1
- package/dist/core/extensions-host/types.d.ts +5 -8
- package/dist/extensions/builtin/AGENT.md +115 -115
- package/dist/extensions/builtin/browser/AGENT.md +17 -17
- package/dist/extensions/builtin/browser/agent-workspace/agent_helpers.py +12 -12
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/amazon/product-search.md +198 -198
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/archive-org/scraping.md +341 -341
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv/scraping.md +311 -311
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv-bulk/scraping.md +333 -333
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/atlas/overview.md +70 -70
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/booking-com/scraping.md +578 -578
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/capterra/scraping.md +440 -440
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/centilebrain/generate-estimates.md +110 -110
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coingecko/scraping.md +325 -325
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coinmarketcap/scraping.md +463 -463
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coursera/scraping.md +360 -360
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/craigslist/scraping.md +390 -390
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/crossref/scraping.md +568 -568
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/dev-to/scraping.md +323 -323
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/duckduckgo/scraping.md +349 -349
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/ebay/scraping.md +435 -435
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/etsy/scraping.md +506 -506
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/eventbrite/scraping.md +363 -363
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/expedia/automation.md +168 -168
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/groups.md +236 -236
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/pages.md +295 -295
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/framer/editor.md +108 -108
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/fred/scraping.md +493 -493
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/g2/scraping.md +580 -580
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/genius/scraping.md +511 -511
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/repo-actions.md +65 -65
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/scraping.md +184 -184
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/glassdoor/scraping.md +543 -543
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gmail/compose.md +122 -122
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/goodreads/scraping.md +461 -461
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gutenberg/scraping.md +383 -383
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/hackernews/scraping.md +243 -243
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/howlongtobeat/scraping.md +473 -473
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/imdb/scraping.md +271 -271
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/itch-io/scraping.md +436 -436
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/job-boards/indeed-glassdoor.md +1021 -1021
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/letterboxd/scraping.md +349 -349
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/linkedin/invitation-manager.md +109 -109
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/loom/folder-enumeration.md +170 -170
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/macrotrends/scraping.md +537 -537
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/article-hydration.md +120 -120
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/scraping.md +414 -414
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/metacritic/scraping.md +477 -477
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/musicbrainz/scraping.md +478 -478
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/nasa/scraping.md +339 -339
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/news-aggregation/multi-source.md +205 -205
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/open-library/scraping.md +472 -472
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openalex/scraping.md +470 -470
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openstreetmap/scraping.md +490 -490
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/package-registries/npm-pypi.md +478 -478
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/polymarket/scraping.md +234 -234
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/producthunt/scraping.md +307 -307
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/pubmed/scraping.md +421 -421
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/quora/scraping.md +364 -364
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rawg/scraping.md +352 -352
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/reddit/scraping.md +124 -124
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rest-countries/scraping.md +233 -233
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/sec-edgar/scraping.md +361 -361
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/README.md +36 -36
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/embedded-apps.md +72 -72
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/knowledge-base.md +109 -109
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/polaris-inputs.md +137 -137
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/soundcloud/scraping.md +362 -362
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/spotify/scraping.md +339 -339
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/stackoverflow/scraping.md +435 -435
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/steam/scraping.md +575 -575
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/substack/scraping.md +338 -338
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/thetechgeeks/pricing.md +52 -52
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tiktok/upload.md +107 -107
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tradingview/scraping.md +309 -309
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trello/boards-and-lists.md +88 -88
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trustpilot/scraping.md +375 -375
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/walmart/scraping.md +444 -444
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wayback-machine/scraping.md +306 -306
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/weather/scraping.md +398 -398
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wellfound/scraping.md +596 -596
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/world-bank/scraping.md +356 -356
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/xiaohongshu/scraping.md +84 -84
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/youtube/scraping.md +418 -418
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/zillow/scraping.md +433 -433
- package/dist/extensions/builtin/browser/browser.md +73 -73
- package/dist/extensions/builtin/browser/install.md +142 -142
- package/dist/extensions/builtin/browser/interaction-skills/connection.md +48 -48
- package/dist/extensions/builtin/browser/interaction-skills/cookies.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/cross-origin-iframes.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/dialogs.md +64 -64
- package/dist/extensions/builtin/browser/interaction-skills/downloads.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/drag-and-drop.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/dropdowns.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/iframes.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/network-requests.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/print-as-pdf.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/profile-sync.md +90 -90
- package/dist/extensions/builtin/browser/interaction-skills/screenshots.md +17 -17
- package/dist/extensions/builtin/browser/interaction-skills/scrolling.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/shadow-dom.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/tabs.md +69 -69
- package/dist/extensions/builtin/browser/interaction-skills/uploads.md +1 -1
- package/dist/extensions/builtin/browser/interaction-skills/viewport.md +3 -3
- package/dist/extensions/builtin/browser/src/browser_harness/AGENT.md +15 -15
- package/dist/extensions/builtin/browser/src/browser_harness/__init__.py +8 -8
- package/dist/extensions/builtin/browser/src/browser_harness/_ipc.py +90 -90
- package/dist/extensions/builtin/browser/src/browser_harness/admin.py +722 -722
- package/dist/extensions/builtin/browser/src/browser_harness/daemon.py +328 -328
- package/dist/extensions/builtin/browser/src/browser_harness/helpers.py +396 -396
- package/dist/extensions/builtin/browser/src/browser_harness/run.py +103 -103
- package/dist/extensions/builtin/discipline/skills/brainstorming/SKILL.md +33 -33
- package/dist/extensions/builtin/discipline/skills/executing-plans/SKILL.md +25 -25
- package/dist/extensions/builtin/discipline/skills/finishing-development-branch/SKILL.md +25 -25
- package/dist/extensions/builtin/discipline/skills/receiving-code-review/SKILL.md +22 -22
- package/dist/extensions/builtin/discipline/skills/requesting-code-review/SKILL.md +31 -31
- package/dist/extensions/builtin/discipline/skills/systematic-debugging/SKILL.md +28 -28
- package/dist/extensions/builtin/discipline/skills/test-driven-development/SKILL.md +32 -32
- package/dist/extensions/builtin/discipline/skills/using-git-worktrees/SKILL.md +25 -25
- package/dist/extensions/builtin/discipline/skills/verification-before-completion/SKILL.md +27 -27
- package/dist/extensions/builtin/discipline/skills/writing-plans/SKILL.md +26 -26
- package/dist/extensions/builtin/goal/README.md +67 -67
- package/dist/extensions/builtin/goal/goal-controller.js +1 -1
- package/dist/extensions/builtin/goal/goal-prompts.js +4 -4
- package/dist/extensions/builtin/grub/README.md +112 -112
- package/dist/extensions/builtin/link-world/agent-workspace/README.md +16 -16
- package/dist/extensions/builtin/link-world/internet-search/internet-search.md +65 -65
- package/dist/extensions/builtin/link-world/link-world-agent.md +82 -82
- package/dist/extensions/builtin/link-world/linkworld.md +313 -313
- package/dist/extensions/builtin/link-world/network-routing/network-routing.md +67 -67
- package/dist/extensions/builtin/loop/README.md +92 -92
- package/dist/extensions/builtin/mcp/figma-design.md +68 -68
- package/dist/extensions/builtin/mcp/mcp-management.md +85 -85
- package/dist/extensions/builtin/recap/AGENT.md +15 -15
- package/dist/extensions/builtin/sal/README.md +72 -72
- package/dist/extensions/builtin/security-audit/README.md +289 -289
- package/dist/extensions/builtin/team/AGENT.md +112 -112
- package/dist/extensions/builtin/team/TESTING.md +299 -299
- package/dist/extensions/builtin/token-save/README.md +56 -56
- package/dist/extensions/optional/AGENT.md +10 -10
- package/dist/index.d.ts +5 -30
- package/dist/index.js +1 -1
- package/dist/models.d.ts +7 -0
- package/dist/models.js +1 -0
- package/dist/modes/interactive/theme/dark.json +85 -85
- package/dist/modes/interactive/theme/light.json +84 -84
- package/dist/modes/interactive/theme/theme-schema.json +335 -335
- package/dist/modes/interactive/theme/warm.json +81 -81
- package/dist/node_modules/@pencil-agent/ai/dist/cli.js +0 -0
- package/dist/packages/protocol/src/flags.d.ts +20 -0
- package/dist/packages/protocol/src/flags.js +0 -0
- package/dist/packages/protocol/src/hooks.d.ts +17 -0
- package/dist/packages/protocol/src/hooks.js +0 -0
- package/dist/packages/protocol/src/index.d.ts +4 -2
- package/dist/packages/protocol/src/index.js +1 -1
- package/dist/packages/protocol/src/lifecycle.d.ts +11 -21
- package/dist/public-config.d.ts +12 -0
- package/dist/public-config.js +1 -0
- package/dist/runtime.d.ts +9 -0
- package/dist/runtime.js +1 -0
- package/dist/session-compaction.d.ts +7 -0
- package/dist/session-compaction.js +1 -0
- package/dist/session.d.ts +7 -0
- package/dist/session.js +1 -0
- package/dist/skills.d.ts +7 -0
- package/dist/skills.js +1 -0
- package/dist/tools.d.ts +7 -0
- package/dist/tools.js +1 -0
- package/docs/ACP/345/215/217/350/256/256/351/233/206/346/210/220/345/274/200/345/217/221/346/226/207/346/241/243.md +851 -0
- package/docs/SDK-TESTING.md +364 -0
- package/docs/codex-goal-command-impl.md +1055 -1055
- package/docs/codex-goal-vs-grub.md +500 -500
- package/docs/custom-provider.md +27 -27
- package/docs/extensions.md +27 -27
- package/docs/keybindings.md +27 -27
- package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/200/273/347/273/223.md" +250 -250
- package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/212/245/345/221/212.md" +122 -122
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210.md" +1222 -1222
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/256/236/347/216/260/346/212/245/345/221/212.md" +158 -158
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/257/271/346/257/224/345/210/206/346/236/220.md" +128 -128
- package/docs/loop /351/207/215/346/236/204/350/256/241/345/210/222.md" +320 -320
- package/docs/loop-usage-examples.md +214 -214
- package/docs/mem-core/346/212/200/346/234/257/346/226/207/346/241/243.md +593 -0
- package/docs/models.md +27 -27
- package/docs/packages.md +27 -27
- package/docs/pi-design-philosophy.md +457 -457
- package/docs/planmode.md +1987 -1987
- package/docs/prompt-templates.md +27 -27
- package/docs/providers.md +27 -27
- package/docs/sdk.md +27 -27
- package/docs/skills.md +27 -27
- package/docs/startup-performance-optimization.md +301 -0
- package/docs/themes.md +27 -27
- package/docs/tui.md +27 -27
- package/docs//350/256/244/347/237/245/345/234/260/345/233/276.md +47 -0
- package/package.json +190 -162
- package/docs/cc-agent-design.md +0 -1297
- package/docs/cc-tui-design.md +0 -1333
- package/docs/nanoPencil-/345/255/246/344/271/240/350/256/241/345/210/222.md +0 -170
- package/docs/scan-report.md +0 -3820
- package/docs//345/257/271/346/240/207Claude-Code.md +0 -1775
- package/docs//351/230/277/351/207/214/345/267/264/345/267/264/350/264/242/346/212/245/345/210/206/346/236/220/344/271/246.md +0 -261
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
# extensions/builtin/team/
|
|
2
|
-
|
|
3
|
-
> P2 | Parent: ../AGENT.md
|
|
4
|
-
|
|
5
|
-
Member List
|
|
6
|
-
- index.ts: AgentTeam extension entry, /team <task>, /team:spawn/:preset/:send/:status/:progress/:psyche/:dashboard/:task/:mail/:allow-path/:stop/:terminate/:approve/:mode commands, TEAM_MESSAGE_TYPE speaker-stream renderer, realtime status/dashboard updates
|
|
7
|
-
- team-types.ts: TeammateRole/TeammateMode/TeammateStatus/TeamTask/HarnessState/PsycheWeights/TeamUtterance/Handoff/LeaderPlan/AgentLiveView/TeammateIdentity/PersistedTeammate/TeamSpawnSpec/TeamSendResult types
|
|
8
|
-
- team-state-store.ts: TeamStateStore class - durable teammate persistence via JSON files in <agentDir>/teams/
|
|
9
|
-
- team-parser.ts: Team command parser - parseTeamCommand/buildTeamHelp for /team:* subcommands
|
|
10
|
-
- team-runtime.ts: TeamRuntime class - teammate registry, stable internal labels plus visible teammate names, per-teammate send queue, lifecycle, durable tasks, mailbox + permission + transcript wiring; uses SubAgentRuntime for agent spawning
|
|
11
|
-
- team-runtime-helpers.ts: TeamRuntime helper boundary - teammate prompt construction, harness turn preparation, live event projection, tool selection, path guards, label/role/text helpers
|
|
12
|
-
- team-ui.ts: Team message renderer, list/status/task formatting, dashboard visibility/timer ownership, realtime observer, and speaker-stream emission helpers used by index.ts
|
|
13
|
-
- team-orchestrator.ts: Leader orchestration helpers - plan building, speaker utterance creation, @mention parsing, and handoff execution
|
|
14
|
-
- team-task-store.ts: TeamTaskStore class - durable shared task list in <storageDir>/tasks.json with claim/status updates
|
|
15
|
-
- team-harness.ts: Harness protocol helpers - context files, phase instructions, checkpoint/revert, feature validation
|
|
16
|
-
- team-presets.ts: Preset definitions and executor - solo/duo/squad spawning, model-assisted auto team selection, heuristic fallback
|
|
17
|
-
- team-dashboard.ts: Text dashboard/status rendering - teammate workbench cards, current task, last utterance, progress bars, footer summary
|
|
18
|
-
- team-psyche.ts: Psyche prompt layer - role/phase weighted Id/Ego/Superego prompt construction
|
|
19
|
-
- team-permissions.ts: PermissionStore - pending permission request queue, approve/deny, path allowlists (B.4)
|
|
20
|
-
- team-mailbox.ts: TeamMailbox - typed JSONL-backed append-only message log for leader↔teammate and teammate↔teammate routing (B.3)
|
|
21
|
-
- team-transcript.ts: TeamTranscriptWriter - per-teammate JSONL transcripts under <storageDir>/transcripts/ (B.7)
|
|
22
|
-
- TESTING.md: Manual & smoke-test guide for the Phase B AgentTeam extension
|
|
23
|
-
|
|
24
|
-
Rule: Members complete, one item per line, parent links valid, precise terms first
|
|
25
|
-
|
|
26
|
-
[COVENANT]: Update this file header on changes and verify against parent AGENT.md
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Phase B: AgentTeam Architecture
|
|
31
|
-
|
|
32
|
-
This extension implements the Phase B "true AgentTeam" per the refactor plan and the next-step conversational team UI:
|
|
33
|
-
- Persistent teammates with durable state (survive across main session restarts)
|
|
34
|
-
- Each teammate has identity, stable short label, mode, status, worktree, and message history
|
|
35
|
-
- Teammates run in isolated worktrees (for implementers)
|
|
36
|
-
- Uses core/sub-agent/ infrastructure for actual agent spawning
|
|
37
|
-
- Main chat renders a speaker stream (`pencil`, `Mason`, `Ada`, `Theo`, `Iris`, `Quinn`, ...) instead of raw status events
|
|
38
|
-
- Leader orchestration can auto-split `/team <task>` into teammate assignments and follow `@mention` handoffs
|
|
39
|
-
|
|
40
|
-
## Commands
|
|
41
|
-
|
|
42
|
-
| Command | Description |
|
|
43
|
-
|---------|-------------|
|
|
44
|
-
| `/team` | List all teammates |
|
|
45
|
-
| `/team:spawn <role> [--name <id>]` | Create a persistent teammate |
|
|
46
|
-
| `/team:send <name> <message>` | Send message to a teammate |
|
|
47
|
-
| `/team:status [<name>]` | Show team or teammate status |
|
|
48
|
-
| `/team:stop <name>` | Stop teammate's current turn |
|
|
49
|
-
| `/team:terminate <name>` | Destroy a teammate |
|
|
50
|
-
| `/team:approve <request-id>` | Approve a permission request |
|
|
51
|
-
| `/team:mode <name> <plan\|execute\|review>` | Switch teammate mode |
|
|
52
|
-
| `/team:task list` | Show shared team tasks |
|
|
53
|
-
| `/team:task add <title>` | Add a shared task |
|
|
54
|
-
| `/team:task claim <id> <name>` | Assign/claim a task for a teammate |
|
|
55
|
-
| `/team:task done\|block\|cancel <id>` | Update task status |
|
|
56
|
-
| `/team:mail <from> <to> <message>` | Route teammate-to-teammate mailbox message |
|
|
57
|
-
| `/team:allow-path <name> <path>` | Grant teammate write access to a path prefix |
|
|
58
|
-
|
|
59
|
-
## Roles
|
|
60
|
-
|
|
61
|
-
- `researcher`: Read-only exploration
|
|
62
|
-
- `reviewer`: Read-only review/audit
|
|
63
|
-
- `implementer`: Sandboxed write in isolated worktree
|
|
64
|
-
- `planner`: Read-only plan production
|
|
65
|
-
- `generic`: Read-only by default
|
|
66
|
-
|
|
67
|
-
## Modes
|
|
68
|
-
|
|
69
|
-
- `research`: Read-only exploration
|
|
70
|
-
- `plan`: Read-only plan production; execute requires leader approval
|
|
71
|
-
- `execute`: Sandboxed write in worktree
|
|
72
|
-
- `review`: Read-only review
|
|
73
|
-
|
|
74
|
-
## State Persistence
|
|
75
|
-
|
|
76
|
-
Teammate state is stored in `~/.nanopencil/agent/teams/<uuid>.json`:
|
|
77
|
-
- Identity (id, name, role, createdAt)
|
|
78
|
-
- Mode and status
|
|
79
|
-
- Working directory and worktree info
|
|
80
|
-
- Message history
|
|
81
|
-
- Last activity timestamp
|
|
82
|
-
|
|
83
|
-
Shared team coordination state is also stored under `~/.nanopencil/agent/teams/`:
|
|
84
|
-
- `tasks.json`: durable task list with status, owner, dependencies, and artifact paths
|
|
85
|
-
- `mailbox.jsonl`: replayable mailbox events for leader↔teammate and teammate↔teammate routing
|
|
86
|
-
|
|
87
|
-
TeamStateStore is deliberately independent of core SessionManager per the refactor plan:
|
|
88
|
-
> "team-state-store 自己负责 teammate 历史 ... SessionManager 只负责主会话"
|
|
89
|
-
|
|
90
|
-
## Core Dependencies
|
|
91
|
-
|
|
92
|
-
- `core/sub-agent/`: SubAgentRuntime for spawning agents
|
|
93
|
-
- `core/workspace/`: WorktreeManager for isolated worktrees
|
|
94
|
-
- `core/tools/`: Tool creation with sandboxed bash
|
|
95
|
-
|
|
96
|
-
## Phase B status
|
|
97
|
-
|
|
98
|
-
Shipped in this iteration:
|
|
99
|
-
- Permission request/response (`team-permissions.ts`, wired into `/team:mode` execute escalation and `/team:approve`)
|
|
100
|
-
- Durable shared task list (`team-task-store.ts`, wired into `/team:task`)
|
|
101
|
-
- Mailbox protocol (`team-mailbox.ts`, posts on send/result/mode_change/permission_request/permission_response/task_update/task_claim/teammate_message and replays across restarts)
|
|
102
|
-
- Prompt context injection: each teammate receives claimed tasks, blocked/open task cues, and recent mailbox messages before every turn
|
|
103
|
-
- Path-scoped write allowlist exposed through `/team:allow-path`; execute-mode edit/write tools and simple bash write commands enforce teammate cwd or approved path prefixes
|
|
104
|
-
- Per-teammate send queue: concurrent `/team:send` calls for the same teammate run sequentially instead of failing while the teammate is running
|
|
105
|
-
- Per-teammate JSONL transcripts (`team-transcript.ts`)
|
|
106
|
-
- Structured speaker-stream utterances with `speaker/role/kind/mentions`
|
|
107
|
-
- Stable internal labels and mention-aware handoff parsing for leader-visible routing
|
|
108
|
-
- Subprocess SubAgent backend harness (`core/sub-agent/subprocess-backend.ts` + `subprocess-worker.ts`) — interface complete, worker LLM loop deferred (see backend doc).
|
|
109
|
-
|
|
110
|
-
Future work:
|
|
111
|
-
- Worker-side full LLM agent loop for the subprocess backend
|
|
112
|
-
- Broaden bash write parsing beyond simple single-command forms while keeping complex shell syntax rejected by default
|
|
1
|
+
# extensions/builtin/team/
|
|
2
|
+
|
|
3
|
+
> P2 | Parent: ../AGENT.md
|
|
4
|
+
|
|
5
|
+
Member List
|
|
6
|
+
- index.ts: AgentTeam extension entry, /team <task>, /team:spawn/:preset/:send/:status/:progress/:psyche/:dashboard/:task/:mail/:allow-path/:stop/:terminate/:approve/:mode commands, TEAM_MESSAGE_TYPE speaker-stream renderer, realtime status/dashboard updates
|
|
7
|
+
- team-types.ts: TeammateRole/TeammateMode/TeammateStatus/TeamTask/HarnessState/PsycheWeights/TeamUtterance/Handoff/LeaderPlan/AgentLiveView/TeammateIdentity/PersistedTeammate/TeamSpawnSpec/TeamSendResult types
|
|
8
|
+
- team-state-store.ts: TeamStateStore class - durable teammate persistence via JSON files in <agentDir>/teams/
|
|
9
|
+
- team-parser.ts: Team command parser - parseTeamCommand/buildTeamHelp for /team:* subcommands
|
|
10
|
+
- team-runtime.ts: TeamRuntime class - teammate registry, stable internal labels plus visible teammate names, per-teammate send queue, lifecycle, durable tasks, mailbox + permission + transcript wiring; uses SubAgentRuntime for agent spawning
|
|
11
|
+
- team-runtime-helpers.ts: TeamRuntime helper boundary - teammate prompt construction, harness turn preparation, live event projection, tool selection, path guards, label/role/text helpers
|
|
12
|
+
- team-ui.ts: Team message renderer, list/status/task formatting, dashboard visibility/timer ownership, realtime observer, and speaker-stream emission helpers used by index.ts
|
|
13
|
+
- team-orchestrator.ts: Leader orchestration helpers - plan building, speaker utterance creation, @mention parsing, and handoff execution
|
|
14
|
+
- team-task-store.ts: TeamTaskStore class - durable shared task list in <storageDir>/tasks.json with claim/status updates
|
|
15
|
+
- team-harness.ts: Harness protocol helpers - context files, phase instructions, checkpoint/revert, feature validation
|
|
16
|
+
- team-presets.ts: Preset definitions and executor - solo/duo/squad spawning, model-assisted auto team selection, heuristic fallback
|
|
17
|
+
- team-dashboard.ts: Text dashboard/status rendering - teammate workbench cards, current task, last utterance, progress bars, footer summary
|
|
18
|
+
- team-psyche.ts: Psyche prompt layer - role/phase weighted Id/Ego/Superego prompt construction
|
|
19
|
+
- team-permissions.ts: PermissionStore - pending permission request queue, approve/deny, path allowlists (B.4)
|
|
20
|
+
- team-mailbox.ts: TeamMailbox - typed JSONL-backed append-only message log for leader↔teammate and teammate↔teammate routing (B.3)
|
|
21
|
+
- team-transcript.ts: TeamTranscriptWriter - per-teammate JSONL transcripts under <storageDir>/transcripts/ (B.7)
|
|
22
|
+
- TESTING.md: Manual & smoke-test guide for the Phase B AgentTeam extension
|
|
23
|
+
|
|
24
|
+
Rule: Members complete, one item per line, parent links valid, precise terms first
|
|
25
|
+
|
|
26
|
+
[COVENANT]: Update this file header on changes and verify against parent AGENT.md
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Phase B: AgentTeam Architecture
|
|
31
|
+
|
|
32
|
+
This extension implements the Phase B "true AgentTeam" per the refactor plan and the next-step conversational team UI:
|
|
33
|
+
- Persistent teammates with durable state (survive across main session restarts)
|
|
34
|
+
- Each teammate has identity, stable short label, mode, status, worktree, and message history
|
|
35
|
+
- Teammates run in isolated worktrees (for implementers)
|
|
36
|
+
- Uses core/sub-agent/ infrastructure for actual agent spawning
|
|
37
|
+
- Main chat renders a speaker stream (`pencil`, `Mason`, `Ada`, `Theo`, `Iris`, `Quinn`, ...) instead of raw status events
|
|
38
|
+
- Leader orchestration can auto-split `/team <task>` into teammate assignments and follow `@mention` handoffs
|
|
39
|
+
|
|
40
|
+
## Commands
|
|
41
|
+
|
|
42
|
+
| Command | Description |
|
|
43
|
+
|---------|-------------|
|
|
44
|
+
| `/team` | List all teammates |
|
|
45
|
+
| `/team:spawn <role> [--name <id>]` | Create a persistent teammate |
|
|
46
|
+
| `/team:send <name> <message>` | Send message to a teammate |
|
|
47
|
+
| `/team:status [<name>]` | Show team or teammate status |
|
|
48
|
+
| `/team:stop <name>` | Stop teammate's current turn |
|
|
49
|
+
| `/team:terminate <name>` | Destroy a teammate |
|
|
50
|
+
| `/team:approve <request-id>` | Approve a permission request |
|
|
51
|
+
| `/team:mode <name> <plan\|execute\|review>` | Switch teammate mode |
|
|
52
|
+
| `/team:task list` | Show shared team tasks |
|
|
53
|
+
| `/team:task add <title>` | Add a shared task |
|
|
54
|
+
| `/team:task claim <id> <name>` | Assign/claim a task for a teammate |
|
|
55
|
+
| `/team:task done\|block\|cancel <id>` | Update task status |
|
|
56
|
+
| `/team:mail <from> <to> <message>` | Route teammate-to-teammate mailbox message |
|
|
57
|
+
| `/team:allow-path <name> <path>` | Grant teammate write access to a path prefix |
|
|
58
|
+
|
|
59
|
+
## Roles
|
|
60
|
+
|
|
61
|
+
- `researcher`: Read-only exploration
|
|
62
|
+
- `reviewer`: Read-only review/audit
|
|
63
|
+
- `implementer`: Sandboxed write in isolated worktree
|
|
64
|
+
- `planner`: Read-only plan production
|
|
65
|
+
- `generic`: Read-only by default
|
|
66
|
+
|
|
67
|
+
## Modes
|
|
68
|
+
|
|
69
|
+
- `research`: Read-only exploration
|
|
70
|
+
- `plan`: Read-only plan production; execute requires leader approval
|
|
71
|
+
- `execute`: Sandboxed write in worktree
|
|
72
|
+
- `review`: Read-only review
|
|
73
|
+
|
|
74
|
+
## State Persistence
|
|
75
|
+
|
|
76
|
+
Teammate state is stored in `~/.nanopencil/agent/teams/<uuid>.json`:
|
|
77
|
+
- Identity (id, name, role, createdAt)
|
|
78
|
+
- Mode and status
|
|
79
|
+
- Working directory and worktree info
|
|
80
|
+
- Message history
|
|
81
|
+
- Last activity timestamp
|
|
82
|
+
|
|
83
|
+
Shared team coordination state is also stored under `~/.nanopencil/agent/teams/`:
|
|
84
|
+
- `tasks.json`: durable task list with status, owner, dependencies, and artifact paths
|
|
85
|
+
- `mailbox.jsonl`: replayable mailbox events for leader↔teammate and teammate↔teammate routing
|
|
86
|
+
|
|
87
|
+
TeamStateStore is deliberately independent of core SessionManager per the refactor plan:
|
|
88
|
+
> "team-state-store 自己负责 teammate 历史 ... SessionManager 只负责主会话"
|
|
89
|
+
|
|
90
|
+
## Core Dependencies
|
|
91
|
+
|
|
92
|
+
- `core/sub-agent/`: SubAgentRuntime for spawning agents
|
|
93
|
+
- `core/workspace/`: WorktreeManager for isolated worktrees
|
|
94
|
+
- `core/tools/`: Tool creation with sandboxed bash
|
|
95
|
+
|
|
96
|
+
## Phase B status
|
|
97
|
+
|
|
98
|
+
Shipped in this iteration:
|
|
99
|
+
- Permission request/response (`team-permissions.ts`, wired into `/team:mode` execute escalation and `/team:approve`)
|
|
100
|
+
- Durable shared task list (`team-task-store.ts`, wired into `/team:task`)
|
|
101
|
+
- Mailbox protocol (`team-mailbox.ts`, posts on send/result/mode_change/permission_request/permission_response/task_update/task_claim/teammate_message and replays across restarts)
|
|
102
|
+
- Prompt context injection: each teammate receives claimed tasks, blocked/open task cues, and recent mailbox messages before every turn
|
|
103
|
+
- Path-scoped write allowlist exposed through `/team:allow-path`; execute-mode edit/write tools and simple bash write commands enforce teammate cwd or approved path prefixes
|
|
104
|
+
- Per-teammate send queue: concurrent `/team:send` calls for the same teammate run sequentially instead of failing while the teammate is running
|
|
105
|
+
- Per-teammate JSONL transcripts (`team-transcript.ts`)
|
|
106
|
+
- Structured speaker-stream utterances with `speaker/role/kind/mentions`
|
|
107
|
+
- Stable internal labels and mention-aware handoff parsing for leader-visible routing
|
|
108
|
+
- Subprocess SubAgent backend harness (`core/sub-agent/subprocess-backend.ts` + `subprocess-worker.ts`) — interface complete, worker LLM loop deferred (see backend doc).
|
|
109
|
+
|
|
110
|
+
Future work:
|
|
111
|
+
- Worker-side full LLM agent loop for the subprocess backend
|
|
112
|
+
- Broaden bash write parsing beyond simple single-command forms while keeping complex shell syntax rejected by default
|