@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.
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/SKILL.md +3 -4
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/agentspace/SKILL.md +4 -4
- package/agent-assets-release/agent-assets/core/070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5/files/references/chatv3/SKILL.md +59 -0
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/collaborative-work/SKILL.md +10 -13
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/discuss/SKILL.md +2 -2
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/docman/SKILL.md +6 -0
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/projectman/SKILL.md +6 -0
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/working-disciplines/SKILL.md +1 -1
- package/agent-assets-release/agent-assets/core/070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5/files/user-guides/agentspace.md +198 -0
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/aops-cli.md +25 -24
- package/agent-assets-release/agent-assets/core/070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5/files/user-guides/chatv3.md +98 -0
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/docman.md +16 -0
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/projectman.md +7 -0
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/working-disciplines.md +2 -2
- package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/manifest.json +31 -36
- package/agent-assets-release/agent-assets/inventory.json +5 -5
- package/agent-assets-release/agent-assets/projection.json +1 -1
- package/agent-assets-release/agent-assets-release.json +64 -69
- package/agent-assets-release/agent-assets-release.sigstore.json +26 -26
- package/assets/agent-assets/core/SKILL.md +3 -4
- package/assets/agent-assets/core/references/agentspace/SKILL.md +4 -4
- package/assets/agent-assets/core/references/chatv3/SKILL.md +36 -26
- package/assets/agent-assets/core/references/collaborative-work/SKILL.md +10 -13
- package/assets/agent-assets/core/references/discuss/SKILL.md +2 -2
- package/assets/agent-assets/core/references/docman/SKILL.md +6 -0
- package/assets/agent-assets/core/references/projectman/SKILL.md +6 -0
- package/assets/agent-assets/core/references/working-disciplines/SKILL.md +1 -1
- package/assets/agent-assets/core/user-guides/agentspace.md +135 -1035
- package/assets/agent-assets/core/user-guides/aops-cli.md +25 -24
- package/assets/agent-assets/core/user-guides/chatv3.md +82 -97
- package/assets/agent-assets/core/user-guides/docman.md +16 -0
- package/assets/agent-assets/core/user-guides/projectman.md +7 -0
- package/assets/agent-assets/core/user-guides/working-disciplines.md +2 -2
- package/dist/commands/chatv3.js +81 -46
- package/dist/commands/doc.js +4 -4
- package/dist/commands/pm/index.js +2 -5
- package/dist/commands/pm/projectman.js +36 -95
- package/dist/lib/agent-assets/native-fs.js +2 -2
- package/dist/main.js +2 -3
- package/dist/seeds/agents-md.js +1 -1
- package/dist/utils/chatv3-cursor.js +41 -0
- package/dist/utils/chatv3-session-store.js +166 -36
- package/launchers/aops-cockpit.sh +0 -0
- package/launchers/aops-server.sh +0 -0
- package/native/bin/darwin-arm64/aops-agent-assets-fs +0 -0
- package/native/bin/darwin-x64/aops-agent-assets-fs +0 -0
- package/native/bin/linux-arm64/aops-agent-assets-fs +0 -0
- package/native/bin/linux-x64/aops-agent-assets-fs +0 -0
- package/native/bin/win32-x64/aops-agent-assets-fs.exe +0 -0
- package/native/manifest.json +6 -6
- package/native/qualifications/win32-x64.json +1 -1
- package/native/tui/darwin-arm64/aops-tui +0 -0
- package/native/tui/win32-x64/aops-tui.exe +0 -0
- package/package.json +6 -4
- package/agent-assets-release/agent-assets/core/0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706/files/references/chatv3/SKILL.md +0 -49
- package/agent-assets-release/agent-assets/core/0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706/files/references/hosted-chat/SKILL.md +0 -64
- package/agent-assets-release/agent-assets/core/0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706/files/user-guides/agentspace.md +0 -1098
- package/agent-assets-release/agent-assets/core/0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706/files/user-guides/chatv3.md +0 -113
- package/assets/agent-assets/core/references/hosted-chat/SKILL.md +0 -64
- package/dist/commands/chat.js +0 -1363
- /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/aops-cli-core/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/mission/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/sys/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/references/view/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/agent-assets.md +0 -0
- /package/agent-assets-release/agent-assets/core/{0ffc854a8e32500f3d82c10a1e1ee6376d57e616201a323638f0f9caf8fb2706 → 070b0d3126c645890845791b67157fdd9f43a482fda66583e84fb159b30689a5}/files/user-guides/aops-system.md +0 -0
- /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
|
|
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
|
|
587
|
-
|
|
|
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
|
-
|
|
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.
|
|
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:
|
|
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.
|
|
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
|
|
611
|
-
aops chat
|
|
612
|
-
|
|
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"
|
|
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;
|
|
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
|
|
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
|
|
634
|
-
7. Cevap icin
|
|
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
|
|
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
|
|
648
|
+
### 16.5 ChatV3 agent-owned room context
|
|
650
649
|
|
|
651
650
|
#### 16.5.1 Overview
|
|
652
651
|
|
|
653
|
-
`aops
|
|
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
|
|
659
|
-
aops
|
|
660
|
-
aops
|
|
661
|
-
aops
|
|
662
|
-
aops
|
|
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.
|
|
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
|
|
5
|
+
## 1 Canonical CLI surface
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
42
|
-
| Send text | `aops
|
|
43
|
-
| Read once | `aops
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
`
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- `
|
|
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
|
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
95
|
-
canonical member status.
|
|
78
|
+
## 5 Coordination boundaries
|
|
96
79
|
|
|
97
|
-
|
|
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
|
-
|
|
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
|
-
|
|
89
|
+
## 6 Membership and Cockpit
|
|
102
90
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
|
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
|
|
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
|