@aopslabs/aops 0.3.9 → 0.3.10

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.
Files changed (67) hide show
  1. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/SKILL.md +3 -4
  2. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/agentspace/SKILL.md +4 -4
  3. package/agent-assets-release/agent-assets/core/070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5/files/references/chatv3/SKILL.md +59 -0
  4. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/collaborative-work/SKILL.md +10 -13
  5. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/discuss/SKILL.md +2 -2
  6. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/docman/SKILL.md +6 -0
  7. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/projectman/SKILL.md +6 -0
  8. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/working-disciplines/SKILL.md +1 -1
  9. package/agent-assets-release/agent-assets/core/070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5/files/user-guides/agentspace.md +198 -0
  10. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/aops-cli.md +25 -24
  11. package/agent-assets-release/agent-assets/core/070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5/files/user-guides/chatv3.md +98 -0
  12. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/docman.md +16 -0
  13. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/projectman.md +7 -0
  14. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/working-disciplines.md +2 -2
  15. package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/manifest.json +31 -36
  16. package/agent-assets-release/agent-assets/inventory.json +5 -5
  17. package/agent-assets-release/agent-assets/projection.json +1 -1
  18. package/agent-assets-release/agent-assets-release.json +64 -69
  19. package/agent-assets-release/agent-assets-release.sigstore.json +26 -26
  20. package/assets/agent-assets/core/SKILL.md +3 -4
  21. package/assets/agent-assets/core/references/agentspace/SKILL.md +4 -4
  22. package/assets/agent-assets/core/references/chatv3/SKILL.md +36 -26
  23. package/assets/agent-assets/core/references/collaborative-work/SKILL.md +10 -13
  24. package/assets/agent-assets/core/references/discuss/SKILL.md +2 -2
  25. package/assets/agent-assets/core/references/docman/SKILL.md +6 -0
  26. package/assets/agent-assets/core/references/projectman/SKILL.md +6 -0
  27. package/assets/agent-assets/core/references/working-disciplines/SKILL.md +1 -1
  28. package/assets/agent-assets/core/user-guides/agentspace.md +135 -1035
  29. package/assets/agent-assets/core/user-guides/aops-cli.md +25 -24
  30. package/assets/agent-assets/core/user-guides/chatv3.md +82 -97
  31. package/assets/agent-assets/core/user-guides/docman.md +16 -0
  32. package/assets/agent-assets/core/user-guides/projectman.md +7 -0
  33. package/assets/agent-assets/core/user-guides/working-disciplines.md +2 -2
  34. package/dist/commands/chatv3.js +81 -46
  35. package/dist/commands/doc.js +4 -4
  36. package/dist/commands/pm/index.js +2 -5
  37. package/dist/commands/pm/projectman.js +36 -95
  38. package/dist/lib/agent-assets/native-fs.js +2 -2
  39. package/dist/main.js +2 -3
  40. package/dist/seeds/agents-md.js +1 -1
  41. package/dist/utils/chatv3-cursor.js +41 -0
  42. package/dist/utils/chatv3-session-store.js +166 -36
  43. package/launchers/aops-cockpit.sh +0 -0
  44. package/launchers/aops-server.sh +0 -0
  45. package/native/bin/darwin-arm64/aops-agent-assets-fs +0 -0
  46. package/native/bin/darwin-x64/aops-agent-assets-fs +0 -0
  47. package/native/bin/linux-arm64/aops-agent-assets-fs +0 -0
  48. package/native/bin/linux-x64/aops-agent-assets-fs +0 -0
  49. package/native/bin/win32-x64/aops-agent-assets-fs.exe +0 -0
  50. package/native/manifest.json +6 -6
  51. package/native/qualifications/win32-x64.json +1 -1
  52. package/native/tui/darwin-arm64/aops-tui +0 -0
  53. package/native/tui/win32-x64/aops-tui.exe +0 -0
  54. package/package.json +6 -4
  55. package/agent-assets-release/agent-assets/core/0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706/files/references/chatv3/SKILL.md +0 -49
  56. package/agent-assets-release/agent-assets/core/0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706/files/references/hosted-chat/SKILL.md +0 -64
  57. package/agent-assets-release/agent-assets/core/0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706/files/user-guides/agentspace.md +0 -1098
  58. package/agent-assets-release/agent-assets/core/0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706/files/user-guides/chatv3.md +0 -113
  59. package/assets/agent-assets/core/references/hosted-chat/SKILL.md +0 -64
  60. package/dist/commands/chat.js +0 -1363
  61. /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/aops-cli-core/SKILL.md +0 -0
  62. /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/mission/SKILL.md +0 -0
  63. /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/sys/SKILL.md +0 -0
  64. /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/view/SKILL.md +0 -0
  65. /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/agent-assets.md +0 -0
  66. /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/aops-system.md +0 -0
  67. /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/sys.md +0 -0
@@ -577,39 +577,38 @@ Kural:
577
577
 
578
578
  #### 16.2.1 Overview
579
579
 
580
- `discuss`, `chat` ve `pm review-request` ayri koordinasyon yuzeyleridir: karar/konsensus `discuss`, koordinasyon/uyandirma hosted chat odalari (`chat`), review ise Projectman (`pm review-request`). Yanlis yazici/dinleyici eslesmesi sessiz trafik kaybinin en sik sebebi; koordinasyon mesaji ile dinleyici ayni hosted chat odasinda olmali (`aops-cli-chat` skill'ine bak).
580
+ `discuss`, `chat` ve `pm review-request` ayri sahiplik yuzeyleridir: karar/konsensus `discuss`, koordinasyon/uyandirma ChatV3 (`chat`), review ise Projectman (`pm review-request`). `aops chatv3`, ayni ChatV3 komut agacinin compatibility alias'idir; ikinci bir chat sistemi degildir.
581
581
 
582
582
  | Ihtiyac | Komut | Skill |
583
583
  |--------------------------------------------------------|--------------------------------|------------------|
584
584
  | Yapilandirilmis karar transcript'i + sonuc kararlari | `aops discuss start` | `aops-cli-discuss` |
585
585
  | Agent sirasi/lifecycle icin karar dongusu | `aops discuss wait`, `aops discuss turn`, `aops discuss conclude` | `aops-cli-discuss` |
586
- | Multi-agent koordinasyon/uyandirma odasi | `aops chat room create`, `aops chat message send` | `aops-cli-chat` |
587
- | Agent'in bekleyen oda/mesaj islerini kesfetmesi | `aops chat inbox --for <agent>` | `aops-cli-chat` |
588
- | Oda trafigini dinleme / unread okuma | `aops chat listen`, `aops chat catchup` | `aops-cli-chat` |
586
+ | Multi-agent koordinasyon/uyandirma odasi | `aops chat join`, `aops chat send` | `aops-cli-chat` |
587
+ | Oda trafigini foreground dinleme / unread okuma | `aops chat listen`, `aops chat read` | `aops-cli-chat` |
589
588
  | Review iste / sonucla / re-review | `aops pm review-request create`, `aops pm review-request result` | `aops-cli-projectman` |
590
589
 
591
- Koordinasyon (uyandirma, oda mesajlasmasi, listener) hosted chat odalarinda yasar; karar ritueli `discuss` tarafindadir. Yapilandirilmis bir karar/stance `discuss turn`/`conclude` ile transcript'e yazilir; karsi agent'i uyandirmak icin ayni isi bagli hosted chat odasina kisa bir `chat message send` ile duyur (oda mesaji uyandirma sinyali, discuss transcript kanonik kayit). Davet/dinleyici beklentisini de chat odasinda netlestir. Detaylar icin `aops-cli-chat` (oda lifecycle, members, `chat send/listen/catchup`) ve `aops-cli-discuss` (karar ritueli, `discuss wait` exit kodlari) skillerine bak. Review akisi (RR/RRR, re-review, material issue) `aops-cli-projectman` tarafindadir.
590
+ Yapilandirilmis stance `discuss turn`/`conclude` ile transcript'e yazilir; karsi agent'i uyandirmak icin bagli ChatV3 odasina topic/RR ref'i tasiyan kisa bir `aops chat send` mesaji yazilir. Chat mesaji wake sinyalidir; karar ve review kaydinin yerine gecmez.
592
591
 
593
592
  Slug-first operator contract:
594
593
 
595
- 1. `discuss start --slug <slug>` topic frontmatter'ina canonical slug yazar. Slug verilmezse title'dan derive edilir ve JSON'da `topicSlug` olarak doner. Hosted chat odalari da `chat room create --slug <slug>` ile slug tasir.
594
+ 1. `discuss start --slug <slug>` topic frontmatter'ina canonical slug yazar. ChatV3 channel/room slug'lari join/create sonucu okunur.
596
595
  2. Selector'lar artik exact slug'i operator-facing varsayilan kabul eder; legacy folder name ve short id debug/legacy fallback'tir. Operator-facing komut, handoff ve chat ping'lerde slug kullan; raw UUID'i debug/JSON disinda tasima.
597
596
  3. Legacy folder-name veya implicit short-id match kazanirsa JSON envelope `cliDeprecationWarnings` dondurur. Debug ihtiyaci disinda bu uyarilar "slug'a gec" sinyali sayilir.
598
597
  4. Explicit debug selector gereken yerde `--short-id <8char>` kullan; bu explicit yol warning uretmez, implicit short-id ise `cliDeprecationWarnings` uretir. Ambiguous slug/folder/short-id durumunda yalniz tek active kayit varsa `--prefer-active` onu secer; kalici handoff'larda yine slug yazilir. Discuss komutlarinda `--short-id` topic selector'udur.
599
- 5. Yeni agent bootstrap'i: once `aops chat inbox --for <agent> --json`, sonra bagli odadaki unread'i `chat catchup --for <agent> --apply --json` ile oku; aktif uyandirma icin `chat listen --for <agent> --max-loops 1 --json`. Bekleyen review icin `aops pm review-request list --json`.
598
+ 5. Yeni agent bootstrap'i: `aops chat session list`, `room brief`, sonra `listen --after-seq <cursor>`; bekleyen review icin `aops pm review-request list --json`.
600
599
  6. `discuss conclude`, `consensus.md`, agent final stance, `disagreement.md` ve `open-questions.md` dosyalarini `_TBD_` placeholder olarak birakmaz. Topic'i baslatan agent output owner'dir; finalize/closeout oncesi bu dosyalari review edip gerekiyorsa zenginlestirir.
601
600
 
602
601
  ### 16.3 PM window + chat-room baglama ve active window
603
602
 
604
603
  #### 16.3.1 Overview
605
604
 
606
- Iki ajanli execution pencerelerinde Projectman window'u tek olsun. Board kickoff acildiysa ayni board'un aktif task/sprint'i varsayilan olarak reuse edilir; yeni task ve sprint ancak aktif pencere yoksa olusturulur. (Repo-first `collab pm-bind` komutu emekliye ayrildi; PM penceresi dogrudan `pm` ile yonetilir, koordinasyon ise board'a bagli hosted chat odasinda yapilir.)
605
+ Iki ajanli execution pencerelerinde Projectman window'u tek olsun. Board kickoff acildiysa ayni board'un aktif task/sprint'i varsayilan olarak reuse edilir; yeni task ve sprint ancak aktif pencere yoksa olusturulur. Koordinasyon, PM ref'i baglanmis ChatV3 odasinda yapilir.
607
606
 
608
607
  ```bash
609
608
  aops pm board kickoff --board ops --title "AOPS PM tooling triage" --goal "..." --apply --json
610
- # Koordinasyon odasini board'a bagla (uyandirma/akis hosted chat'te):
611
- aops chat room create --slug ops-room --title "Ops" --created-by <agent> --apply --json
612
- aops chat binding add --room-id <room-id> --binding-type projectman.board --binding-id <board-id> --label "Active board" --created-by <agent> --apply --json
609
+ # Koordinasyon odasini PM ref'ine bagla:
610
+ aops chat binding add --session <session> --room general \
611
+ --binding-type projectman.board --ref-id <board-id> --title "Active board" --json
613
612
  ```
614
613
 
615
614
  Explicit task/sprint secimi gerektiğinde ilgili `pm sprint`/`pm utask` komutlarini
@@ -621,17 +620,17 @@ aktif board referanslari tercih edilir.
621
620
 
622
621
  #### 16.4.1 Overview
623
622
 
624
- Operator "tartisin", "Claude ile konusup plan koyun", "beraber arastirin" gibi bir istek verdiginde ana ajan tek basina plan yazip sonradan review istemez. Varsayilan akis iki tarafin da bagimsiz context uretmesi, sonra discuss topic'i (karar) + hosted chat odasi (uyandirma) uzerinden yakinsamasidir. Review tarafi Projectman'dedir.
623
+ Operator "tartisin" veya "beraber arastirin" dediginde iki taraf bagimsiz context uretir, `discuss` topic'inde yakinsar ve ChatV3 ile uyanir. Review tarafi Projectman'dedir.
625
624
 
626
625
  Ana ajan akisi:
627
626
 
628
- 1. `aops discuss start --slug <slug>` ile hedefi/agent'lari tasiyan bir karar topic'i ac; koordinasyon icin `aops chat room create` ile bagli bir oda ac.
627
+ 1. `aops discuss start --slug <slug>` ile hedefi/agent'lari tasiyan bir karar topic'i ac; mevcut ChatV3 odasina topic binding ekle.
629
628
  2. Operator istegini, repo root'larini, kisitlari ve beklenen deliverable'lari topic'in ilk turn'une (veya odaya context mesaji olarak) yaz.
630
629
  3. Karsi ajana net bir directive ver (oda mesaji veya `pm review-request`): "bagimsiz arastir, sadece benim draft'imi review etme" acik olsun. Beklenen ciktida current-state map, oneriler, tradeoff'lar, riskler ve acik sorular yer alsin.
631
- 4. Directive'i odaya `chat message send` ile duyur; karsi ajan manuel baslatilacaksa hangi odayi/topic'i dinleyecegini operator'e bildir.
630
+ 4. Directive'i odaya `aops chat send` ile duyur; hangi session/room/topic'in dinlenecegini netlestir.
632
631
  5. Ana ajan kendi arastirmasini paralel yapar ve kendi stance'ini `discuss turn` ile topic'e yazar.
633
- 6. Karar turn'unu odaya kisa bir `chat message send` ile duyur; topic id/turn ve karsi ajandan istenen review sorulari yazilsin.
634
- 7. Cevap icin karar dongusunu `aops discuss wait --topic <topic> --agent <agent> --timeout-sec 540 --interval-sec 5 --json`, koordinasyon uyandirmasini `aops chat listen --for <agent> --max-loops 1 --json` ile bekle. Discuss icin `--id` ve `--for` yalnizca geriye uyumlu alias'lardir.
632
+ 6. Karar turn'unu odaya kisa bir `aops chat send` ile duyur; topic id/turn ve istenen sorular yazilsin.
633
+ 7. Cevap icin `aops discuss wait ...` ve `aops chat listen --session <session> --room general --after-seq <cursor> --timeout-sec 60 --json` dongulerini dogru cursor ile surdur.
635
634
  8. Cevap gelince sadece oda TL;DR'ini degil, karsi ajanin full `discuss turn`/scratch dosyasini oku. Agreement, correction, pushback ve operator karari isteyen noktalar icin yeni bir `discuss turn` yaz; odaya ping at.
636
635
  9. Ciddi ayrilik varsa bir bounded loop daha ver. Mimari/yuksek etki konularda tek oda cevabindan sonra final plan yazma.
637
636
  10. Implementasyona gecmeden once en az iki realtime tur tamamlanmis olmali ve sonuc `discuss conclude` ile final-stance/consensus olarak yazilmali. Direkt implementasyon + sonradan review yalniz operator bunu acikca override/urgent mod olarak isterse uygulanir; override da kaydedilir.
@@ -639,27 +638,27 @@ Ana ajan akisi:
639
638
 
640
639
  Karsi ajan akisi:
641
640
 
642
- 1. Directive'i ele al ve odaya "arastiriyorum, sonuc donecegim" notu yaz; `chat catchup --apply` ile read cursor'u ilerlet.
641
+ 1. Directive'i ele al, odaya ACK yaz ve yalniz okudugun mesaja kadar cursor'u `chat read --mark-delivered --mark-read` ile ilerlet.
643
642
  2. Istenen kaynaklardan bagimsiz arastirma yap; ana ajanin draft'ini tek truth sayma.
644
643
  3. Kendi research/stance'ini `discuss turn` ile yaz ve oda cevabinda topic id/turn ile kisa ozet ver.
645
644
  4. Ana ajan kanitli pushback verirse yeni bir `discuss turn` ile hangi noktalari kabul ettigini, hangilerini surdurdugunu ve hangilerini operator'e biraktigini belirt.
646
645
 
647
646
  Minimum kalite kapisi: iki ajanin da en az bir bagimsiz context/research turn'u olur; ya da ana ajan bounded timeout'u ve "karsi cevap beklenmeden ilerleniyor" notunu operator'e acikca yazar.
648
647
 
649
- ### 16.5 ChatV3 product-channel room context
648
+ ### 16.5 ChatV3 agent-owned room context
650
649
 
651
650
  #### 16.5.1 Overview
652
651
 
653
- `aops chatv3`, hosted `aops chat` odasi degildir; encrypted product-channel/session CLI'idir. Invite/session/member token ve room epoch key context'i local ChatV3 session store uzerinden calisir. Hosted AOPS coordination icin `aops chat`, aktif product-room takibi icin `aops chatv3` kullanilir.
652
+ `aops chat` canonical ChatV3 surface'idir; `aops chatv3` ayni komut agacinin compatibility alias'idir. Invite/session/member token ve room epoch key context'i agent-owner bazli local store'da sifreli tutulur.
654
653
 
655
654
  Common commands:
656
655
 
657
656
  ```bash
658
- aops chatv3 listen --session codex --room general --after-seq <last-seq> --timeout-sec 60 --json
659
- aops chatv3 binding add --session codex --room general --binding-type projectman.review-request --ref-id <rr-id> --title "Slice review" --json
660
- aops chatv3 binding list --session codex --room general --json
661
- aops chatv3 room brief --session codex --room general --for claude --json
662
- aops chatv3 room summary --session codex --room general --after-seq <last-seq> --json
657
+ aops chat listen --session codex --room general --after-seq <last-seq> --timeout-sec 60 --json
658
+ aops chat binding add --session codex --room general --binding-type projectman.review-request --ref-id <rr-id> --title "Slice review" --json
659
+ aops chat binding list --session codex --room general --json
660
+ aops chat room brief --session codex --room general --for claude --json
661
+ aops chat room summary --session codex --room general --after-seq <last-seq> --json
663
662
  ```
664
663
 
665
664
  Kural:
@@ -669,6 +668,8 @@ Kural:
669
668
  3. `room brief` guidance, members, presence, bindings, cursor refs ve recommended next reads iceren read-only onboarding pack'tir.
670
669
  4. `room summary` agent-composed narrative digest pack'tir; `sourceRef.type=chatv3.room`, seq range, nextReadRefs, summarization-only sourceMessages ve `NARRATIVE-DIGEST` slot'lu memoryWrite recipe verir.
671
670
  5. `sourceMessages` yalniz ozetleme girdisidir; memory'ye aynen yazilmaz. Agent once abstractive narrative digest uretir, sonra digest + refs + seq range'i explicit `mem checkpoint` veya `mem summary` ile yazar.
671
+ 6. Default store agent owner'a gore ayrilir. Baska agent'in session/store'unu secmek fail-closed olur; legacy shared session ilk owner tarafindan tek sefer claim edilir.
672
+ 7. `send --mark-read/--mark-delivered`, arada unseen mesaj varsa cursor'u ilerletmez; `result.cursorAdvance` gap'i aciklar.
672
673
 
673
674
  ## 17 Resource sugar
674
675
 
@@ -1,113 +1,98 @@
1
- <!-- Public packaged snapshot from canonical slug:aops ChatV3 guidance. Read only the relevant section; installed command --help and live schema win on drift. -->
1
+ <!-- Public packaged snapshot from canonical slug:aops ChatV3 guidance. Installed command --help and live schema win on drift. -->
2
2
 
3
3
  # ChatV3 User Guide
4
4
 
5
- ## 1 Encryption Modes And Invite Shapes
5
+ ## 1 Canonical CLI surface
6
6
 
7
- ### 1.1 Overview
8
-
9
- ChatV3 channels declare `encryptionMode`:
10
-
11
- | Mode | Cipher suite | Invite fragment | Content access model |
12
- | --- | --- | --- | --- |
13
- | `e2e` | `v0-shared-epoch` | `#<keyId>.<accessSecret>.<wrapSecret>` | server-blind content; every browser needs the invite wrap secret or a recovery package |
14
- | `server-encrypted` | `v1-server-managed` | `#srv.<keyId>.<accessSecret>` | server-managed content encryption; the server can access message content and can reissue access for active AuthV2-bound members |
15
-
16
- Cockpit creates new channels as `server-encrypted` by default and offers `e2e`
17
- as the stricter client-managed option. The UI and documentation must keep the
18
- copy honest: `server-encrypted` is encrypted by server-managed keys, not E2E.
19
-
20
- `server-encrypted` joins use the `srv` invite form, then fetch server-managed
21
- epoch keys for the active member. A fresh AuthV2 login can reopen a
22
- server-encrypted channel by re-minting the member token when the principal is
23
- still bound to an active membership. `e2e` channels cannot use server remint;
24
- they stay locked until the browser has the invite wrap secret or account
25
- recovery material.
26
-
27
- Removing a member blocks future member-auth reads, remint, and server-managed
28
- epoch-key reads. It does not delete any raw epoch keys or messages already
29
- fetched by that browser before removal; use a rotate follow-up when stronger
30
- post-removal secrecy is required.
31
-
32
- ## 2 Agent CLI Contract
33
-
34
- ### 2.1 Overview
35
-
36
- Agents should use `aops chatv3` when they join or operate inside a ChatV3
37
- product channel.
7
+ `aops chat` is the canonical ChatV3 command tree. `aops chatv3` is retained as
8
+ a compatibility alias and exposes the same behavior. The former Agentspace
9
+ hosted-chat sugar is no longer projected as a second `aops chat` system.
38
10
 
39
11
  | Need | Command |
40
12
  | --- | --- |
41
- | Join from an invite | `aops chatv3 join "<invite>" --handle <agent> --save-session --json` |
42
- | Send text | `aops chatv3 send --session <id> --room <slug> "<text>" --mark-delivered --mark-read --json` |
43
- | Read once | `aops chatv3 read --session <id> --room <slug> --after-seq <n> --json` |
44
- | Wait for new messages | `aops chatv3 listen --session <id> --room <slug> --after-seq <n> --timeout-sec <n> --json` |
45
- | Roster | `aops chatv3 member list --session <id> --json` |
46
- | Presence | `aops chatv3 presence set --session <id> --room <slug> --state working --json` |
47
- | Leave | `aops chatv3 leave --session <id> --json` |
48
- | Local sessions | `aops chatv3 session list|get|forget ... --json` |
49
-
50
- `read` and `listen` always return explicit cursor state:
13
+ | Join from an invite | `aops chat join "<invite>" --handle <agent> --save-session --json` |
14
+ | Send text | `aops chat send --session <id> --room <slug> "<text>" --json` |
15
+ | Read once | `aops chat read --session <id> --room <slug> --after-seq <n> --json` |
16
+ | Foreground wait | `aops chat listen --session <id> --room <slug> --after-seq <n> --timeout-sec 60 --json` |
17
+ | Bind PM/doc refs | `aops chat binding add --session <id> --room <slug> --binding-type <type> --ref-id <id> --json` |
18
+ | Roster/presence | `aops chat member list ...`, `aops chat presence set ...` |
19
+ | Local sessions | `aops chat session list|get|forget ... --json` |
20
+
21
+ `read` and `listen` return `messages`, `messageCount`, `latestSeq`, and
22
+ `caughtUp`. `listen` exits `0` when it finds messages and `22` on timeout. A
23
+ timeout is not task completion: continue bounded foreground listening while
24
+ the room still owns active work.
25
+
26
+ ## 2 Agent-owned local session store
27
+
28
+ ChatV3 session records include encrypted member tokens plus either E2E wrap
29
+ material or server-managed room epoch keys. They are local credentials and
30
+ must never appear in messages, source files, logs, PM records, or shell
31
+ history.
32
+
33
+ The default store is isolated by local agent owner under
34
+ `~/.aops/chatv3/<owner-hash>/sessions.json`. Owner selection is:
35
+
36
+ 1. explicit `--session-owner <id>`;
37
+ 2. `AOPS_CHATV3_SESSION_OWNER`;
38
+ 3. detected Codex or Claude session identity;
39
+ 4. the local interactive operator identity.
40
+
41
+ The raw identity is hashed before it is persisted or shown. Each owner also
42
+ has a separate encryption key file. Passing a store owned by a different
43
+ agent fails closed. A legacy `~/.aops/chatv3-sessions.json` session is claimed
44
+ once and copied into the first owner that loads it; another owner cannot claim
45
+ that same legacy session afterward.
46
+
47
+ `--store-path` remains an advanced exact-path override. Even with that
48
+ override, the store header must match the current owner.
49
+
50
+ ## 3 Cursor safety
51
+
52
+ Use `read` or `listen` to consume messages and then advance delivered/read
53
+ cursors to the highest message actually returned.
54
+
55
+ `send --mark-delivered --mark-read` is guarded. Before sending, the CLI reads
56
+ the current member receipt. It advances to the sent sequence only when the
57
+ previous cursor is exactly `sentSeq - 1`. If another message arrived in the
58
+ gap, the message is still sent but `result.cursorAdvance` reports
59
+ `unseen_message_gap` and the cursor is not advanced. Read the missing range,
60
+ then mark it explicitly. This prevents a concurrent sender from making an
61
+ unseen peer message appear read.
62
+
63
+ ## 4 Encryption modes and invites
51
64
 
52
- - `messages`, including `[]` when no new messages exist
53
- - `messageCount`
54
- - `latestSeq`
55
- - `caughtUp`
56
-
57
- `listen` exits with `0` when messages are found and `22` on timeout. It is a
58
- polling primitive; server-sent events remain a UI/runtime concern.
59
-
60
- `join` uses the server URL embedded in the invite by default. `--api-base-url`
61
- is an explicit override for controlled local smoke tests. Join output includes a
62
- short orientation summary with channel, active room, room count, member count,
63
- recent message count, and the parsed invite mode (`e2e` or
64
- `server-encrypted`). When `--save-session` is used, the local session store keeps
65
- the member token plus either the `e2e` wrap secret or the imported
66
- server-managed epoch keys encrypted at rest.
67
-
68
- ## 3 Member And Presence Model
69
-
70
- ### 3.1 Overview
71
-
72
- Members use `MEMBER_STATUSES = active | removed` and
73
- `MEMBER_ROLE_KEYS = owner | member | operator | observer`.
74
-
75
- Presence uses `active | idle | working | reviewing | blocked | offline`.
76
- Presence is scoped to a room and is safe to expose in roster surfaces because it
77
- contains only member id, state, note, update time, and expiration state.
78
-
79
- ## 4 Self Leave And Admin Cleanup
80
-
81
- ### 4.1 Overview
82
-
83
- `chatv3.member.update` is callable with member auth but the service keeps the
84
- authorization boundary narrow:
65
+ | Mode | Cipher suite | Invite fragment | Content access model |
66
+ | --- | --- | --- | --- |
67
+ | `e2e` | `v0-shared-epoch` | `#<keyId>.<accessSecret>.<wrapSecret>` | server-blind content; clients require wrap/recovery material |
68
+ | `server-encrypted` | `v1-server-managed` | `#srv.<keyId>.<accessSecret>` | server-managed encryption; server can access message content |
85
69
 
86
- - a member may only update its own member row to `status: "removed"`
87
- - that self-leave path must not include `roleKey` or `displayName`
88
- - every other member update still requires `owner` or `operator`
70
+ Cockpit creates `server-encrypted` channels by default and offers `e2e` as the
71
+ stricter client-managed option. Documentation must not describe
72
+ `server-encrypted` as E2E.
89
73
 
90
- The CLI exposes the self path as `aops chatv3 leave`. Cockpit exposes both
91
- member self-leave and owner/operator cleanup, but the domain service remains the
92
- source of truth for authorization.
74
+ Removing a member blocks future member-auth reads, re-mint, and managed epoch
75
+ key reads. It cannot erase material already fetched by that member; rotate keys
76
+ when stronger post-removal secrecy is required.
93
77
 
94
- No migration is required for self-leave because `removed` is already the
95
- canonical member status.
78
+ ## 5 Coordination boundaries
96
79
 
97
- ## 5 Cockpit Expectations
80
+ ChatV3 messages wake and coordinate agents. Durable execution/review truth
81
+ lives in Projectman; structured design stances and conclusions live in
82
+ `aops discuss`; durable narrative handoff belongs in memory. Bind the relevant
83
+ PM, Docman, Discuss, or repository reference to the room, and include the same
84
+ reference in review requests/results.
98
85
 
99
- ### 5.1 Overview
86
+ Room summaries expose source messages only as summarization input. Persist an
87
+ abstractive digest plus refs and sequence range, never a verbatim transcript.
100
88
 
101
- ChatV3 cockpit clients should make the agent-oriented state visible:
89
+ ## 6 Membership and Cockpit
102
90
 
103
- - channel/room orientation: active channel, active room, room count, member
104
- count, message count, channel guidance, and room guidance
105
- - roster and presence: active/removed members, role, presence state, read/deliver
106
- cursors, and directive ACK rollup
107
- - membership controls: current member can leave; owners/operators can remove
108
- other active members
91
+ Members are `active` or `removed`; standard roles are `owner`, `member`,
92
+ `operator`, and `observer`. Presence is room-scoped and uses `active`, `idle`,
93
+ `working`, `reviewing`, `blocked`, or `offline`.
109
94
 
110
- ChatV3 UI must not store bearer tokens in local storage, must not expose member
111
- tokens in visible text, and must preserve the server-blind message-content
112
- boundary for `e2e` channels. For `server-encrypted` channels, UI copy must
113
- state that the server can access message content.
95
+ `aops chat leave` is the self-removal path. Owners/operators may remove other
96
+ active members. Cockpit must keep bearer/member tokens out of local storage
97
+ and visible text, expose room guidance and cursor state, and preserve honest
98
+ copy for each encryption mode.
@@ -80,6 +80,22 @@ Versions are immutable snapshots of authored content. To revise content:
80
80
  This preserves what readers and agents saw previously and makes publication
81
81
  history auditable.
82
82
 
83
+ ### Review evidence for mutable drafts
84
+
85
+ Before requesting review, compose or materialize the exact candidate and keep
86
+ the returned version identifiers and `contentHash`. Record one complete
87
+ immutable evidence reference in the Projectman review request, for example:
88
+
89
+ ```text
90
+ docman:page-version:<id>#contentHash=sha256:<digest>
91
+ ```
92
+
93
+ An approved review result repeats the exact same reference. Saving the draft
94
+ again changes the content hash; the earlier result remains historical evidence
95
+ for the old content and a linked re-review is required for the new hash. A
96
+ mutable page-version id without its content hash is not sufficient approval
97
+ evidence.
98
+
83
99
  ## Sections and Pages
84
100
 
85
101
  Sections provide navigation and grouping. Pages hold readable content. Ordered
@@ -151,6 +151,13 @@ A reviewer can approve, comment, or request changes. When changes are requested:
151
151
  3. record the new evidence
152
152
  4. create or continue the linked re-review flow
153
153
 
154
+ When the reviewed candidate is a mutable Docman draft, the review request must
155
+ carry the exact composed evidence reference: document/page version ids together
156
+ with `contentHash=sha256:<digest>`. An approved result repeats that full
157
+ reference exactly. If the draft is edited, its hash changes and the previous
158
+ approval no longer covers the new content; keep the old result and open a
159
+ linked re-review.
160
+
154
161
  Chat can wake or coordinate participants, but Projectman remains the review and
155
162
  execution source of truth.
156
163
 
@@ -357,7 +357,7 @@ aops pm review-request create \
357
357
  --target-agent <reviewer> \
358
358
  --apply --json
359
359
 
360
- aops chatv3 send --session <session> --room general \
360
+ aops chat send --session <session> --room general \
361
361
  --text "REVIEW READY: PM RR <id> ..." --json
362
362
 
363
363
  # reviewer appends result
@@ -513,7 +513,7 @@ aops pm ktask create --board <board> --column Doing --title "<task>" --apply --j
513
513
  aops plan create --task <task-id> --name "<plan>" --goal "<goal>" \
514
514
  --scope-item "S1 ..." --scope-item "S2 ..." --apply --json
515
515
  aops mission update --id <mission-id> --active-plan <plan-id> --apply --json
516
- aops chatv3 send --session <session> --room general \
516
+ aops chat send --session <session> --room general \
517
517
  "GOREV ATAMASI: mission <id> / ktask <id> / plan <id> - S1'den basla, slice basina RR" --json
518
518
 
519
519
  # implementer: per slice