|
1 | 1 | /** |
2 | 2 | * `BRIEF` umbrella action — Daily Operations / morning-evening-weekly synthesis. |
3 | 3 | * |
4 | | - * PRD: `prd-lifeops-executive-assistant.md` §Daily Operations and Wave-2 |
5 | | - * scenario matrix `plan-lifeops-executive-assistant-scenario-matrix.md`. Today |
6 | | - * the agent composes morning/evening/weekly briefs ad-hoc inside chat; |
7 | | - * `BRIEF` makes it a first-class callable surface so the planner has a clean |
8 | | - * target and the Wave-2 scenarios have a stable verb to dispatch. |
9 | | - * |
10 | 4 | * Subactions: |
11 | 5 | * - `compose_morning` — `period: today` by default |
12 | 6 | * - `compose_evening` — `period: today` by default |
13 | 7 | * - `compose_weekly` — `period: this_week` by default |
14 | 8 | * |
15 | | - * Composition rule: pull from each domain (calendar feed, inbox triage, |
16 | | - * life-domain due items, money recurring charges) per the `include` arg, then |
17 | | - * run a single LLM compose pass to render a narrative on top of the |
18 | | - * structured `LifeOpsBriefing` shape. Wave-2 persists briefings; Wave-1 leaves |
19 | | - * them in-memory. |
| 9 | + * Pulls from each domain (calendar feed, inbox triage, life-domain due items, |
| 10 | + * money recurring charges) per the `include` arg, then runs a single LLM |
| 11 | + * compose pass to render a narrative over the structured `LifeOpsBriefing` |
| 12 | + * shape. Briefings are kept in-memory. |
20 | 13 | * |
21 | 14 | * Owner-only — `hasLifeOpsAccess` (which delegates to `hasOwnerAccess`). |
22 | 15 | */ |
@@ -101,17 +94,13 @@ interface BriefActionParameters { |
101 | 94 | } |
102 | 95 |
|
103 | 96 | /** |
104 | | - * Composer hooks — overridable for tests and Wave-2 wiring. Each loader |
105 | | - * returns the structured items the briefing renders; an unavailable source |
106 | | - * returns an empty array (the narrative compose pass mentions missing |
107 | | - * sources explicitly). |
| 97 | + * Composer hooks — overridable for tests. Each loader returns the structured |
| 98 | + * items the briefing renders; an unavailable source returns an empty array |
| 99 | + * (the narrative compose pass mentions missing sources explicitly). |
108 | 100 | * |
109 | | - * TODO Wave-2: replace these with real composition of CALENDAR.feed, |
110 | | - * MESSAGE.triage, OWNER_TODOS/OWNER_REMINDERS due-today, and |
111 | | - * OWNER_FINANCES.recurring_charges via the umbrella dispatchers rather than |
112 | | - * direct loaders. Wave-1 leaves the seams open so the |
113 | | - * unit tests can mock per-domain inputs without standing up the full |
114 | | - * connector graph. |
| 101 | + * TODO: replace these with real composition of CALENDAR.feed, MESSAGE.triage, |
| 102 | + * OWNER_TODOS/OWNER_REMINDERS due-today, and OWNER_FINANCES.recurring_charges |
| 103 | + * via the umbrella dispatchers rather than direct loaders. |
115 | 104 | */ |
116 | 105 | export interface BriefComposers { |
117 | 106 | loadCalendar: (args: { |
@@ -142,7 +131,7 @@ const defaultComposers: BriefComposers = { |
142 | 131 | let activeComposers: BriefComposers = defaultComposers; |
143 | 132 |
|
144 | 133 | /** |
145 | | - * Override the briefing composers. Wave-2 will inject service-backed loaders |
| 134 | + * Override the briefing composers. Service-backed loaders can be injected |
146 | 135 | * here at plugin init. Test-only callers reset between cases with |
147 | 136 | * `__resetBriefComposersForTests`. |
148 | 137 | */ |
|
0 commit comments