@ai-matrx/agents 0.9.2 → 0.10.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,112 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.1 — 2026-09-10
4
+
5
+ **The key set was incomplete by 17. It is complete now: 368 → 384 keys.**
6
+
7
+ 0.10.0 published the vocabulary so a client could stop mirroring mandate keys by
8
+ hand. But `MANDATE_KEYS` is emitted from aidream's in-process
9
+ `declared_mandates()`, and 17 live `mandate.definition` rows with `origin='code'`
10
+ were declared by nothing — so they could not enter the union, and every client
11
+ legitimately calling one was pushed straight back to the hand-typed literal
12
+ 0.10.0 exists to delete. **The vocabulary is the authority only to the extent the
13
+ declarations are complete.**
14
+
15
+ Sixteen of the 17 are declared and now ship in the union; the seventeenth
16
+ (`workflow.plan_shape_designer`) was retired at the source as superseded — it
17
+ never had a Holder and never ran, and its job shipped in August as
18
+ `workflow.plan_input_kind_authoring` + `workflow.plan_output_kind_authoring`.
19
+
20
+ Newly in `MANDATE_KEYS`:
21
+
22
+ - `ambient.spoken_summary`
23
+ - `product_capture.instant_analysis`
24
+ - `seo.session_rule_writer`, `seo.session_stamp_proposer`
25
+ - the twelve `content_plan.p6_build.*` specialist page builders (`about`, `blog`,
26
+ `comparison`, `contact`, `faq`, `guide`, `home`, `index`, `location`, `pillar`,
27
+ `pricing`, `service`)
28
+
29
+ Nothing was renamed, nothing was removed, and no key is retiring — every 0.10.0
30
+ key is still active. Upgrading is additive.
31
+
32
+ A guard on the aidream side (`scripts/check_mandate_declarations.py`, wired into
33
+ CI as `mandate-declarations`) now compares the declared set against the live
34
+ `origin='code'` rows and goes red on either difference, so this gap cannot
35
+ silently reopen.
36
+
37
+ ### Consumer action
38
+
39
+ **matrx-frontend may drop four entries from
40
+ `scripts/mandate-keys-allowlist.json`** — these keys are in the generated union
41
+ now, so import them from `@ai-matrx/agents/mandates` instead of naming them as
42
+ string literals:
43
+
44
+ | Drop this allowlist entry | Import instead |
45
+ | --- | --- |
46
+ | `ambient.spoken_summary` | `MANDATE_KEYS.ambient__spoken_summary` |
47
+ | `product_capture.instant_analysis` | `MANDATE_KEYS.product_capture__instant_analysis` |
48
+ | `seo.session_rule_writer` | `MANDATE_KEYS.seo__session_rule_writer` |
49
+ | `seo.session_stamp_proposer` | `MANDATE_KEYS.seo__session_stamp_proposer` |
50
+
51
+ The other allowlist entries STAY and are not affected: `mandate.goal_writer` is
52
+ `origin='user'` (a person created it in the console, so it can never appear in a
53
+ union built from code declarations), and `mandates.kind_converter` has no live
54
+ row at all by design — its affordance renders disabled naming the missing key.
55
+
56
+ ## 0.10.0 — 2026-09-09
57
+
58
+ **`@ai-matrx/agents/mandates` — clients stop typing mandate keys by hand.**
59
+
60
+ A TypeScript client never declares a mandate: aidream's `declare_mandate` is the
61
+ only declaration path in the system. Until now clients still *named* mandates
62
+ with hand-typed string literals and local `mandates.ts` mirror files, so a typo,
63
+ a rename, or a retired key failed at run time as a 404 nobody saw — and the
64
+ release report had no way to resolve a client's references against the key set
65
+ the client actually shipped.
66
+
67
+ This release publishes that key set. `mandates/keys.generated.ts` is emitted by
68
+ THE ONE GENERATOR (`aidream/scripts/mandates_generate.py`, stage (h)) from the
69
+ in-process declarations — the same `declared_mandates()` the boot sync writes the
70
+ database from — and cross-checked against the live `origin='code'` rows on every
71
+ credentialed pass. The key set of every published version is committed beside it
72
+ under `mandates/snapshots/keys.<version>.json` and ships in the tarball, so a
73
+ scan can resolve a client's references against the key set of the exact version
74
+ it depends on (Mandate Declaration & Usage Reporting, DESIGN § 4.5 step 2).
75
+
76
+ ### Consumer action
77
+
78
+ Import keys from `@ai-matrx/agents/mandates`; hand-typed key literals and local
79
+ `mandates.ts` mirrors are retired — lane L6.
80
+
81
+ - `MANDATE_KEYS` — every declared key, keyed by THE IDENTIFIER RULE (`.` → `__`,
82
+ anything outside `[A-Za-z0-9_]` → `_`, a leading digit gets an `_`): so
83
+ `seo.keyword_classifier` is `MANDATE_KEYS.seo__keyword_classifier`.
84
+ - `type MandateKey` — the union. Type every carrier parameter with it: a
85
+ made-up key then fails type-check instead of failing in production.
86
+ `as MandateKey` casts are the same defect the literals were.
87
+ - `isMandateKey(x)` / `assertMandateKey(x, context?)` for anything that crossed
88
+ a wire (a URL segment, a stored preference, a row's `mandate_key`).
89
+ - `MANDATE_FAMILIES` — prefix → members, for a family aidream declares from the
90
+ feature's own roster; `MandateFamilyMember<P>` types one member.
91
+ - `mandateKeyOfApp(appSlug, surfaceSlug?)` / `mandateKeyOfShortcut(slug,
92
+ surfaceSlug?)` for the DB-authored `app.*` / `shortcut.*` families. They return
93
+ a branded `DynamicMandateKey`, deliberately **not** assignable to `MandateKey`
94
+ — no generated union can contain a row a user created five minutes ago. A
95
+ carrier that genuinely accepts either says `MandateKey | DynamicMandateKey`.
96
+ - `RETIRING_MANDATE_KEYS` / `MANDATE_KEYS_META` — the deprecation list and the
97
+ aidream revision + generator version the key set came from.
98
+
99
+ **Two-phase retire.** A key that stops being declared does not disappear: it is
100
+ emitted `@deprecated retiring since <version>`, stays in the `MandateKey` union,
101
+ and leaves only after three already-published versions have shipped it that way.
102
+ A client that lags one release gets a deprecation warning with a remedy, never a
103
+ hard type error it cannot act on until it upgrades.
104
+
105
+ ### Additive only
106
+
107
+ No export was removed, renamed or re-signed. `./mandates` is a new subpath; every
108
+ existing entry is untouched.
109
+
3
110
  ## 0.9.2 — 2026-09-09
4
111
 
5
112
  **THE ARCHIVED-ITEMS LAW, APPLIED TO THE PICKER — the first instance of a
@@ -0,0 +1,543 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // mandates/index.ts
21
+ var mandates_exports = {};
22
+ __export(mandates_exports, {
23
+ ALL_MANDATE_KEYS: () => ALL_MANDATE_KEYS,
24
+ DYNAMIC_MANDATE_FAMILIES: () => DYNAMIC_MANDATE_FAMILIES,
25
+ MANDATE_FAMILIES: () => MANDATE_FAMILIES,
26
+ MANDATE_KEYS: () => MANDATE_KEYS,
27
+ MANDATE_KEYS_META: () => MANDATE_KEYS_META,
28
+ RETIRING_MANDATE_KEYS: () => RETIRING_MANDATE_KEYS,
29
+ assertMandateKey: () => assertMandateKey,
30
+ isMandateKey: () => isMandateKey,
31
+ mandateKeyOfApp: () => mandateKeyOfApp,
32
+ mandateKeyOfShortcut: () => mandateKeyOfShortcut
33
+ });
34
+ module.exports = __toCommonJS(mandates_exports);
35
+
36
+ // mandates/keys.generated.ts
37
+ var MANDATE_KEYS_META = {
38
+ aidreamRevision: "f76036cbb93ae930ed02e143d753245d638b5f0e",
39
+ generatorVersion: "1.0.0",
40
+ packageVersion: "0.10.1",
41
+ retireWindow: 3
42
+ };
43
+ var MANDATE_KEYS = {
44
+ agent_apps__auto_create: "agent_apps.auto_create",
45
+ agent_apps__auto_create_lightning: "agent_apps.auto_create_lightning",
46
+ agent_apps__metadata: "agent_apps.metadata",
47
+ agent_apps__prompt_app_dev: "agent_apps.prompt_app_dev",
48
+ agent_factory__structure_builder: "agent_factory.structure_builder",
49
+ ambient__page_guidance: "ambient.page_guidance",
50
+ ambient__spoken_summary: "ambient.spoken_summary",
51
+ chat__cx_default: "chat.cx_default",
52
+ chat__default_new_chat: "chat.default_new_chat",
53
+ chat__quick_audio_plan: "chat.quick_audio_plan",
54
+ chat__quick_fair_news: "chat.quick_fair_news",
55
+ chat__quick_flashcards: "chat.quick_flashcards",
56
+ chat__quick_image: "chat.quick_image",
57
+ chat__quick_org_chart: "chat.quick_org_chart",
58
+ chat__quick_research: "chat.quick_research",
59
+ chat__quick_showcase: "chat.quick_showcase",
60
+ chat__quick_writing_partner: "chat.quick_writing_partner",
61
+ chat__response_mode_brainstorm: "chat.response_mode_brainstorm",
62
+ chat__response_mode_data: "chat.response_mode_data",
63
+ chat__response_mode_research: "chat.response_mode_research",
64
+ chat__response_mode_video: "chat.response_mode_video",
65
+ code_editor__code_edit: "code_editor.code_edit",
66
+ code_editor__dynamic_context_edit: "code_editor.dynamic_context_edit",
67
+ code_editor__prompt_app_ui_edit: "code_editor.prompt_app_ui_edit",
68
+ coding_session__managed_translation_reference: "coding_session.managed_translation_reference",
69
+ commerce_intake__assess_value: "commerce_intake.assess_value",
70
+ commerce_intake__extract_vision: "commerce_intake.extract_vision",
71
+ commerce_intake__grading: "commerce_intake.grading",
72
+ commerce_intake__instant_analysis: "commerce_intake.instant_analysis",
73
+ commerce_intake__refute_no_value: "commerce_intake.refute_no_value",
74
+ commerce_intake__research_product: "commerce_intake.research_product",
75
+ commerce_intake__segment_photos: "commerce_intake.segment_photos",
76
+ commerce_intake__verify_enrichment: "commerce_intake.verify_enrichment",
77
+ content_ir__component_artisan: "content_ir.component_artisan",
78
+ content_ir__kind_architect: "content_ir.kind_architect",
79
+ content_ir__kind_component_builder: "content_ir.kind_component_builder",
80
+ content_ir__kind_creator: "content_ir.kind_creator",
81
+ content_plan__brief_writer: "content_plan.brief_writer",
82
+ content_plan__entity_attacher: "content_plan.entity_attacher",
83
+ content_plan__entity_curator: "content_plan.entity_curator",
84
+ content_plan__family_namer: "content_plan.family_namer",
85
+ content_plan__keyword_strategist: "content_plan.keyword_strategist",
86
+ content_plan__p3_family: "content_plan.p3_family",
87
+ content_plan__p4_write: "content_plan.p4_write",
88
+ content_plan__p5_review: "content_plan.p5_review",
89
+ content_plan__p6_build: "content_plan.p6_build",
90
+ content_plan__p6_build__about: "content_plan.p6_build.about",
91
+ content_plan__p6_build__blog: "content_plan.p6_build.blog",
92
+ content_plan__p6_build__comparison: "content_plan.p6_build.comparison",
93
+ content_plan__p6_build__contact: "content_plan.p6_build.contact",
94
+ content_plan__p6_build__faq: "content_plan.p6_build.faq",
95
+ content_plan__p6_build__guide: "content_plan.p6_build.guide",
96
+ content_plan__p6_build__home: "content_plan.p6_build.home",
97
+ content_plan__p6_build__index: "content_plan.p6_build.index",
98
+ content_plan__p6_build__location: "content_plan.p6_build.location",
99
+ content_plan__p6_build__pillar: "content_plan.p6_build.pillar",
100
+ content_plan__p6_build__pricing: "content_plan.p6_build.pricing",
101
+ content_plan__p6_build__service: "content_plan.p6_build.service",
102
+ content_plan__plan_reviewer: "content_plan.plan_reviewer",
103
+ content_plan__route_picker: "content_plan.route_picker",
104
+ content_plan__shape_planner: "content_plan.shape_planner",
105
+ conversation__action_auditor: "conversation.action_auditor",
106
+ conversation__decision_ledger: "conversation.decision_ledger",
107
+ conversation__drift_auditor: "conversation.drift_auditor",
108
+ conversation__outcome_summarizer: "conversation.outcome_summarizer",
109
+ conversation__vision_extractor: "conversation.vision_extractor",
110
+ conversation__vision_interviewer: "conversation.vision_interviewer",
111
+ crm__journalist_beat_analyst: "crm.journalist_beat_analyst",
112
+ crm__media_list_ranker: "crm.media_list_ranker",
113
+ crm__outreach_draft_reviewer: "crm.outreach_draft_reviewer",
114
+ crm__outreach_personalization_coach: "crm.outreach_personalization_coach",
115
+ crm__outreach_personalization_writer: "crm.outreach_personalization_writer",
116
+ crm__outreach_pitch_writer: "crm.outreach_pitch_writer",
117
+ crm__outreach_recipient_shortlister: "crm.outreach_recipient_shortlister",
118
+ crm__outreach_reply_drafter: "crm.outreach_reply_drafter",
119
+ crm__party_kind_judge: "crm.party_kind_judge",
120
+ crm__save_contact: "crm.save_contact",
121
+ data__page_guidance: "data.page_guidance",
122
+ dictionary__workspace_guide: "dictionary.workspace_guide",
123
+ education__admin_guidance: "education.admin_guidance",
124
+ education__analytics_narrate: "education.analytics_narrate",
125
+ education__audio_study_guidance: "education.audio_study_guidance",
126
+ education__card_image_generator: "education.card_image_generator",
127
+ education__card_image_prompt_writer: "education.card_image_prompt_writer",
128
+ education__card_image_qc_judge: "education.card_image_qc_judge",
129
+ education__card_image_web_source: "education.card_image_web_source",
130
+ education__classes_guidance: "education.classes_guidance",
131
+ education__creator_guidance: "education.creator_guidance",
132
+ education__data_guidance: "education.data_guidance",
133
+ education__exam_prep_guidance: "education.exam_prep_guidance",
134
+ education__family_guidance: "education.family_guidance",
135
+ education__fastfire_guidance: "education.fastfire_guidance",
136
+ education__features_guidance: "education.features_guidance",
137
+ education__flashcards_guidance: "education.flashcards_guidance",
138
+ education__game_guidance: "education.game_guidance",
139
+ education__grade_handwritten: "education.grade_handwritten",
140
+ education__grade_work_guidance: "education.grade_work_guidance",
141
+ education__kit_title: "education.kit_title",
142
+ education__learn_guidance: "education.learn_guidance",
143
+ education__levels_guidance: "education.levels_guidance",
144
+ education__library_guidance: "education.library_guidance",
145
+ education__media_guidance: "education.media_guidance",
146
+ education__memory_generate: "education.memory_generate",
147
+ education__memory_guidance: "education.memory_guidance",
148
+ education__memory_hint: "education.memory_hint",
149
+ education__mind_maps_guidance: "education.mind_maps_guidance",
150
+ education__mindmap_generate: "education.mindmap_generate",
151
+ education__notes_generate: "education.notes_generate",
152
+ education__notes_guidance: "education.notes_guidance",
153
+ education__offline_guidance: "education.offline_guidance",
154
+ education__page_guidance: "education.page_guidance",
155
+ education__plan_generate: "education.plan_generate",
156
+ education__planner_guidance: "education.planner_guidance",
157
+ education__practice_oral_guidance: "education.practice_oral_guidance",
158
+ education__practice_tests_guidance: "education.practice_tests_guidance",
159
+ education__progress_guidance: "education.progress_guidance",
160
+ education__quiz_deepen_item: "education.quiz_deepen_item",
161
+ education__quiz_generate: "education.quiz_generate",
162
+ education__quiz_generate_from_source: "education.quiz_generate_from_source",
163
+ education__quizzes_guidance: "education.quizzes_guidance",
164
+ education__spoken_practice_design: "education.spoken_practice_design",
165
+ education__spoken_practice_design_language: "education.spoken_practice_design_language",
166
+ education__spoken_practice_grade: "education.spoken_practice_grade",
167
+ education__spoken_practice_grade_pronunciation: "education.spoken_practice_grade_pronunciation",
168
+ education__spoken_practice_review: "education.spoken_practice_review",
169
+ education__start_guidance: "education.start_guidance",
170
+ education__study_aids_guidance: "education.study_aids_guidance",
171
+ education__study_pack_flashcards: "education.study_pack_flashcards",
172
+ education__study_pack_lessons: "education.study_pack_lessons",
173
+ education__study_pack_notes: "education.study_pack_notes",
174
+ education__study_pack_quiz: "education.study_pack_quiz",
175
+ education__study_pack_v2_flashcards: "education.study_pack_v2_flashcards",
176
+ education__study_pack_v2_lessons: "education.study_pack_v2_lessons",
177
+ education__study_pack_v2_notes: "education.study_pack_v2_notes",
178
+ education__study_pack_v2_quiz: "education.study_pack_v2_quiz",
179
+ education__subjects_guidance: "education.subjects_guidance",
180
+ education__summaries_guidance: "education.summaries_guidance",
181
+ education__summarize: "education.summarize",
182
+ education__tutor_guidance: "education.tutor_guidance",
183
+ education__tutor_message: "education.tutor_message",
184
+ education__voice_tutor: "education.voice_tutor",
185
+ extend__browser_chat: "extend.browser_chat",
186
+ extend__pattern_from_data: "extend.pattern_from_data",
187
+ extend__structured_extractor: "extend.structured_extractor",
188
+ flashcards__enrich_card: "flashcards.enrich_card",
189
+ flashcards__expand_card: "flashcards.expand_card",
190
+ flashcards__generate_cards: "flashcards.generate_cards",
191
+ flashcards__generate_from_source: "flashcards.generate_from_source",
192
+ flashcards__grade_spoken: "flashcards.grade_spoken",
193
+ flashcards__grade_typed_answer: "flashcards.grade_typed_answer",
194
+ flashcards__help_live: "flashcards.help_live",
195
+ flashcards__helper_tts: "flashcards.helper_tts",
196
+ flashcards__make_quiz_items: "flashcards.make_quiz_items",
197
+ flashcards__micro_coach: "flashcards.micro_coach",
198
+ flashcards__review_batch: "flashcards.review_batch",
199
+ flashcards__spoken_front_tts: "flashcards.spoken_front_tts",
200
+ flashcards__verify_against_source: "flashcards.verify_against_source",
201
+ foundry__planner: "foundry.planner",
202
+ growth_loop__quality_analyze: "growth_loop.quality_analyze",
203
+ growth_loop__quality_brief: "growth_loop.quality_brief",
204
+ growth_loop__quality_crawl: "growth_loop.quality_crawl",
205
+ growth_loop__quality_fill: "growth_loop.quality_fill",
206
+ growth_loop__quality_measure: "growth_loop.quality_measure",
207
+ growth_loop__quality_plan: "growth_loop.quality_plan",
208
+ growth_loop__quality_publish: "growth_loop.quality_publish",
209
+ growth_loop__quality_realize: "growth_loop.quality_realize",
210
+ growth_loop__quality_research: "growth_loop.quality_research",
211
+ growth_loop__quality_serve: "growth_loop.quality_serve",
212
+ growth_loop__quality_suggest: "growth_loop.quality_suggest",
213
+ growth_loop__quality_writeback: "growth_loop.quality_writeback",
214
+ growth_loop__supervisor: "growth_loop.supervisor",
215
+ hindsight__crystallizer: "hindsight.crystallizer",
216
+ hindsight__replay_judge: "hindsight.replay_judge",
217
+ hindsight__reviewer: "hindsight.reviewer",
218
+ human_decisions__fallback_decider: "human_decisions.fallback_decider",
219
+ iteration__architect: "iteration.architect",
220
+ iteration__diagnostic: "iteration.diagnostic",
221
+ iteration__root_cause: "iteration.root_cause",
222
+ iteration__thinking_display: "iteration.thinking_display",
223
+ kg__cluster_namer: "kg.cluster_namer",
224
+ kg__ner_extractor: "kg.ner_extractor",
225
+ knowledge__document_verifier: "knowledge.document_verifier",
226
+ knowledge__qa_generator: "knowledge.qa_generator",
227
+ knowledge__section_summarizer: "knowledge.section_summarizer",
228
+ local__cloud_chat: "local.cloud_chat",
229
+ marketing__endowment_analysis: "marketing.endowment_analysis",
230
+ marketing__endowment_portfolio: "marketing.endowment_portfolio",
231
+ marketing__image_prompt: "marketing.image_prompt",
232
+ marketing__page_image: "marketing.page_image",
233
+ marketing__page_image_all_in_one: "marketing.page_image_all_in_one",
234
+ marketing__video_metadata: "marketing.video_metadata",
235
+ masterwork__approach_selector: "masterwork.approach_selector",
236
+ masterwork__audition_judge: "masterwork.audition_judge",
237
+ masterwork__bad_draft: "masterwork.bad_draft",
238
+ masterwork__checkup_auditor: "masterwork.checkup_auditor",
239
+ masterwork__coherence_partner: "masterwork.coherence_partner",
240
+ masterwork__conductor: "masterwork.conductor",
241
+ masterwork__corpus_cleaner: "masterwork.corpus_cleaner",
242
+ masterwork__corpus_synthesizer: "masterwork.corpus_synthesizer",
243
+ masterwork__exception_hunter: "masterwork.exception_hunter",
244
+ masterwork__exemplar_distiller: "masterwork.exemplar_distiller",
245
+ masterwork__intake_designer: "masterwork.intake_designer",
246
+ masterwork__monologue_distiller: "masterwork.monologue_distiller",
247
+ masterwork__relationship_auditor: "masterwork.relationship_auditor",
248
+ masterwork__rule_improver: "masterwork.rule_improver",
249
+ masterwork__rulebook_auditor: "masterwork.rulebook_auditor",
250
+ masterwork__scout: "masterwork.scout",
251
+ masterwork__source_distiller: "masterwork.source_distiller",
252
+ masterwork__template__chief_edit: "masterwork.template.chief_edit",
253
+ masterwork__template__chief_generate: "masterwork.template.chief_generate",
254
+ masterwork__template__editor: "masterwork.template.editor",
255
+ masterwork__template__maker: "masterwork.template.maker",
256
+ masterwork__transcript_distiller: "masterwork.transcript_distiller",
257
+ masterwork__transcript_shortlister: "masterwork.transcript_shortlister",
258
+ masterwork__understudy: "masterwork.understudy",
259
+ media__youtube_analyzer: "media.youtube_analyzer",
260
+ meet__live_intelligence: "meet.live_intelligence",
261
+ meet__live_notes: "meet.live_notes",
262
+ meet__wrap_up: "meet.wrap_up",
263
+ messaging__action_item_extraction: "messaging.action_item_extraction",
264
+ messaging__conversation_catch_up: "messaging.conversation_catch_up",
265
+ messaging__conversation_summary: "messaging.conversation_summary",
266
+ messaging__reply_drafting: "messaging.reply_drafting",
267
+ ner__deep_chunk_extractor: "ner.deep_chunk_extractor",
268
+ ner__document_orienter: "ner.document_orienter",
269
+ ner__entity_canonicalizer: "ner.entity_canonicalizer",
270
+ ner__finisher: "ner.finisher",
271
+ ner__item_proposer: "ner.item_proposer",
272
+ ner__magic_moment_detector: "ner.magic_moment_detector",
273
+ ner__scope_proposer: "ner.scope_proposer",
274
+ ner__scope_slot_filler: "ner.scope_slot_filler",
275
+ ner__suggestion_reviewer: "ner.suggestion_reviewer",
276
+ ner__sweep_scope_discoverer: "ner.sweep_scope_discoverer",
277
+ ner__sweep_scope_reference_finder: "ner.sweep_scope_reference_finder",
278
+ ner__sweep_value_miner: "ner.sweep_value_miner",
279
+ notes__organizer: "notes.organizer",
280
+ notes__page_guidance: "notes.page_guidance",
281
+ observability__tool_trace_pattern_detection: "observability.tool_trace_pattern_detection",
282
+ observability__tool_trace_triage: "observability.tool_trace_triage",
283
+ orchestras__role_describer: "orchestras.role_describer",
284
+ pdf__content_cleaner: "pdf.content_cleaner",
285
+ podcast__audience_adapter: "podcast.audience_adapter",
286
+ podcast__audio_dialogue: "podcast.audio_dialogue",
287
+ podcast__audio_english: "podcast.audio_english",
288
+ podcast__audio_persian: "podcast.audio_persian",
289
+ podcast__chapter_marker: "podcast.chapter_marker",
290
+ podcast__content_extractor: "podcast.content_extractor",
291
+ podcast__deep_research: "podcast.deep_research",
292
+ podcast__image_v1: "podcast.image_v1",
293
+ podcast__image_v2: "podcast.image_v2",
294
+ podcast__image_v3: "podcast.image_v3",
295
+ podcast__image_v4: "podcast.image_v4",
296
+ podcast__image_v5: "podcast.image_v5",
297
+ podcast__image_v6_feature: "podcast.image_v6_feature",
298
+ podcast__image_v6_feature_prompt: "podcast.image_v6_feature_prompt",
299
+ podcast__live_rewrite: "podcast.live_rewrite",
300
+ podcast__metadata: "podcast.metadata",
301
+ podcast__multihost_script: "podcast.multihost_script",
302
+ podcast__post_prep_expansion: "podcast.post_prep_expansion",
303
+ podcast__post_prep_fact_checking: "podcast.post_prep_fact_checking",
304
+ podcast__post_prep_summarization: "podcast.post_prep_summarization",
305
+ podcast__post_prep_translation: "podcast.post_prep_translation",
306
+ podcast__race_frontier: "podcast.race_frontier",
307
+ podcast__relevance_gate: "podcast.relevance_gate",
308
+ podcast__roundtable_script: "podcast.roundtable_script",
309
+ podcast__script_educational: "podcast.script_educational",
310
+ podcast__script_news: "podcast.script_news",
311
+ podcast__script_persian: "podcast.script_persian",
312
+ podcast__solo_script: "podcast.solo_script",
313
+ podcast__title_optimizer: "podcast.title_optimizer",
314
+ podcast__video_v1: "podcast.video_v1",
315
+ podcast__video_v2: "podcast.video_v2",
316
+ podcast_client__blog_writer: "podcast_client.blog_writer",
317
+ podcast_client__show_notes: "podcast_client.show_notes",
318
+ podcast_client__topic_ideas: "podcast_client.topic_ideas",
319
+ podcast_client__web_content_extractor: "podcast_client.web_content_extractor",
320
+ podcast_client__youtube_research: "podcast_client.youtube_research",
321
+ product_capture__instant_analysis: "product_capture.instant_analysis",
322
+ projects__creation_guide: "projects.creation_guide",
323
+ proof_runs__judge: "proof_runs.judge",
324
+ purpose__writer: "purpose.writer",
325
+ rag__chunk_contextualizer: "rag.chunk_contextualizer",
326
+ rag__hyde_generator: "rag.hyde_generator",
327
+ rag__pdf_page_cleaner: "rag.pdf_page_cleaner",
328
+ rag__query_expander: "rag.query_expander",
329
+ research__auto_tagger: "research.auto_tagger",
330
+ research__condenser_1: "research.condenser_1",
331
+ research__condenser_2: "research.condenser_2",
332
+ research__coverage_audit: "research.coverage_audit",
333
+ research__cross_cutting_tags: "research.cross_cutting_tags",
334
+ research__document_assembly: "research.document_assembly",
335
+ research__keyword_synthesis: "research.keyword_synthesis",
336
+ research__report: "research.report",
337
+ research__report_updater: "research.report_updater",
338
+ research__source_authority: "research.source_authority",
339
+ research__structured_page_summary: "research.structured_page_summary",
340
+ research__suggest_setup: "research.suggest_setup",
341
+ research__tag_consolidation: "research.tag_consolidation",
342
+ research_client__output_blog: "research_client.output_blog",
343
+ research_client__output_brand_profile: "research_client.output_brand_profile",
344
+ research_client__output_competitive_landscape: "research_client.output_competitive_landscape",
345
+ research_client__output_gap_analysis: "research_client.output_gap_analysis",
346
+ research_client__output_literature_review: "research_client.output_literature_review",
347
+ research_client__output_reputation_business: "research_client.output_reputation_business",
348
+ research_client__output_reputation_personal: "research_client.output_reputation_personal",
349
+ research_client__output_seo: "research_client.output_seo",
350
+ research_client__output_slides: "research_client.output_slides",
351
+ scraper__fact_check: "scraper.fact_check",
352
+ scraper__keyword_analysis: "scraper.keyword_analysis",
353
+ seo__ai_visibility_decision_analyst: "seo.ai_visibility_decision_analyst",
354
+ seo__backlink_context_assessor: "seo.backlink_context_assessor",
355
+ seo__backlink_work_planner: "seo.backlink_work_planner",
356
+ seo__business_model_verdict: "seo.business_model_verdict",
357
+ seo__competitor_classifier: "seo.competitor_classifier",
358
+ seo__competitor_opportunity_autopsy: "seo.competitor_opportunity_autopsy",
359
+ seo__competitor_page_autopsy: "seo.competitor_page_autopsy",
360
+ seo__coverage_analyst: "seo.coverage_analyst",
361
+ seo__digital_pr_reputation_adjudicator: "seo.digital_pr_reputation_adjudicator",
362
+ seo__evidence_workbench: "seo.evidence_workbench",
363
+ seo__finding_fixer: "seo.finding_fixer",
364
+ seo__guidelines_drafter: "seo.guidelines_drafter",
365
+ seo__ideal_customer_profile: "seo.ideal_customer_profile",
366
+ seo__keyword_classifier: "seo.keyword_classifier",
367
+ seo__keyword_expander: "seo.keyword_expander",
368
+ seo__keyword_researcher: "seo.keyword_researcher",
369
+ seo__keyword_serp_intent_analyst: "seo.keyword_serp_intent_analyst",
370
+ seo__landscape_brief: "seo.landscape_brief",
371
+ seo__money_map: "seo.money_map",
372
+ seo__offering_extraction: "seo.offering_extraction",
373
+ seo__offering_valuation: "seo.offering_valuation",
374
+ seo__page_analyzer: "seo.page_analyzer",
375
+ seo__page_keyword_mapper: "seo.page_keyword_mapper",
376
+ seo__press_source_request_responder: "seo.press_source_request_responder",
377
+ seo__press_story_analyst: "seo.press_story_analyst",
378
+ seo__session_rule_writer: "seo.session_rule_writer",
379
+ seo__session_stamp_proposer: "seo.session_stamp_proposer",
380
+ seo__site_intake: "seo.site_intake",
381
+ seo__site_link_authority_router: "seo.site_link_authority_router",
382
+ seo__site_strategist: "seo.site_strategist",
383
+ seo__starter_pack_proposer: "seo.starter_pack_proposer",
384
+ seo__topic_assigner: "seo.topic_assigner",
385
+ sms__owner_beta: "sms.owner_beta",
386
+ surfaces_client__binding_mapper: "surfaces_client.binding_mapper",
387
+ tasks__triage: "tasks.triage",
388
+ tool_viz__component_generator: "tool_viz.component_generator",
389
+ tools__summarize_content: "tools.summarize_content",
390
+ transcript_studio__document_edit: "transcript_studio.document_edit",
391
+ transcript_studio__scribe_live: "transcript_studio.scribe_live",
392
+ vision_interview__adversary: "vision_interview.adversary",
393
+ vision_interview__amplifier: "vision_interview.amplifier",
394
+ vision_interview__answer_tracker: "vision_interview.answer_tracker",
395
+ vision_interview__archaeologist: "vision_interview.archaeologist",
396
+ vision_interview__architect: "vision_interview.architect",
397
+ vision_interview__cartographer: "vision_interview.cartographer",
398
+ vision_interview__requirements_author: "vision_interview.requirements_author",
399
+ vision_interview__scribe: "vision_interview.scribe",
400
+ vision_interview__sounding_board: "vision_interview.sounding_board",
401
+ vision_interview__transcript_cleaner: "vision_interview.transcript_cleaner",
402
+ vision_interview__vision_author: "vision_interview.vision_author",
403
+ voice__communicator: "voice.communicator",
404
+ voice__intro: "voice.intro",
405
+ voice__owner_beta: "voice.owner_beta",
406
+ war_room__master: "war_room.master",
407
+ war_room__room: "war_room.room",
408
+ war_room__thread: "war_room.thread",
409
+ web__endpoint_family_judge: "web.endpoint_family_judge",
410
+ workflow__complex_research__keyword_synthesis: "workflow.complex_research.keyword_synthesis",
411
+ workflow__complex_research__page_summary: "workflow.complex_research.page_summary",
412
+ workflow__complex_research__report: "workflow.complex_research.report",
413
+ workflow__conductor: "workflow.conductor",
414
+ workflow__deep_research__keyword_synthesis: "workflow.deep_research.keyword_synthesis",
415
+ workflow__extract_namer: "workflow.extract_namer",
416
+ workflow__plan_design: "workflow.plan_design",
417
+ workflow__plan_input_kind_authoring: "workflow.plan_input_kind_authoring",
418
+ workflow__plan_node_type_recommender: "workflow.plan_node_type_recommender",
419
+ workflow__plan_notes_writer: "workflow.plan_notes_writer",
420
+ workflow__plan_output_kind_authoring: "workflow.plan_output_kind_authoring",
421
+ workflow__recovery_advisor: "workflow.recovery_advisor",
422
+ workflow__run_assist_suggester: "workflow.run_assist_suggester",
423
+ workflow__steward: "workflow.steward",
424
+ workflow__steward__agent_run: "workflow.steward.agent_run",
425
+ workflow__steward__data: "workflow.steward.data",
426
+ workflow__steward__decision: "workflow.steward.decision",
427
+ workflow__steward__user_input: "workflow.steward.user_input"
428
+ };
429
+ var ALL_MANDATE_KEYS = Object.values(MANDATE_KEYS);
430
+ var RETIRING_MANDATE_KEYS = {};
431
+ var MANDATE_FAMILIES = {
432
+ "ambient.page_guidance_overrides": [
433
+ "data.page_guidance",
434
+ "education.admin_guidance",
435
+ "education.audio_study_guidance",
436
+ "education.classes_guidance",
437
+ "education.creator_guidance",
438
+ "education.data_guidance",
439
+ "education.exam_prep_guidance",
440
+ "education.family_guidance",
441
+ "education.fastfire_guidance",
442
+ "education.features_guidance",
443
+ "education.flashcards_guidance",
444
+ "education.game_guidance",
445
+ "education.grade_work_guidance",
446
+ "education.learn_guidance",
447
+ "education.levels_guidance",
448
+ "education.library_guidance",
449
+ "education.media_guidance",
450
+ "education.memory_guidance",
451
+ "education.mind_maps_guidance",
452
+ "education.notes_guidance",
453
+ "education.offline_guidance",
454
+ "education.page_guidance",
455
+ "education.planner_guidance",
456
+ "education.practice_oral_guidance",
457
+ "education.practice_tests_guidance",
458
+ "education.progress_guidance",
459
+ "education.quizzes_guidance",
460
+ "education.start_guidance",
461
+ "education.study_aids_guidance",
462
+ "education.subjects_guidance",
463
+ "education.summaries_guidance",
464
+ "education.tutor_guidance",
465
+ "notes.page_guidance"
466
+ ],
467
+ "content_plan.p6_build": [
468
+ "content_plan.p6_build.about",
469
+ "content_plan.p6_build.blog",
470
+ "content_plan.p6_build.comparison",
471
+ "content_plan.p6_build.contact",
472
+ "content_plan.p6_build.faq",
473
+ "content_plan.p6_build.guide",
474
+ "content_plan.p6_build.home",
475
+ "content_plan.p6_build.index",
476
+ "content_plan.p6_build.location",
477
+ "content_plan.p6_build.pillar",
478
+ "content_plan.p6_build.pricing",
479
+ "content_plan.p6_build.service"
480
+ ],
481
+ "conversation": [
482
+ "conversation.action_auditor",
483
+ "conversation.decision_ledger",
484
+ "conversation.drift_auditor",
485
+ "conversation.outcome_summarizer",
486
+ "conversation.vision_extractor",
487
+ "conversation.vision_interviewer"
488
+ ],
489
+ "vision_interview": [
490
+ "vision_interview.adversary",
491
+ "vision_interview.amplifier",
492
+ "vision_interview.answer_tracker",
493
+ "vision_interview.archaeologist",
494
+ "vision_interview.architect",
495
+ "vision_interview.cartographer",
496
+ "vision_interview.requirements_author",
497
+ "vision_interview.scribe",
498
+ "vision_interview.sounding_board",
499
+ "vision_interview.transcript_cleaner",
500
+ "vision_interview.vision_author"
501
+ ]
502
+ };
503
+ var DYNAMIC_MANDATE_FAMILIES = {
504
+ "app": { prefix: "app", note: "One mandate per user-built app (`mandate.definition` origin='user')." },
505
+ "shortcut": { prefix: "shortcut", note: "One mandate per user-authored shortcut (origin='user')." }
506
+ };
507
+ var DYNAMIC_SLUG = /^[a-z0-9]+(?:_[a-z0-9]+)*$/;
508
+ function dynamicKey(prefix, ...slugs) {
509
+ const parts = slugs.filter((slug) => slug !== void 0);
510
+ if (parts.length === 0) {
511
+ throw new Error(
512
+ `mandate family "${prefix}" needs at least a member slug \u2014 it was given none.`
513
+ );
514
+ }
515
+ for (const slug of parts) {
516
+ if (!DYNAMIC_SLUG.test(slug)) {
517
+ throw new Error(
518
+ `mandate family "${prefix}" cannot name a member from ${JSON.stringify(slug)}: a segment is lowercase words joined by single underscores. Pass the slug the row carries, never a display name.`
519
+ );
520
+ }
521
+ }
522
+ return [prefix, ...parts].join(".");
523
+ }
524
+ function mandateKeyOfApp(appSlug, surfaceSlug) {
525
+ return dynamicKey("app", appSlug, surfaceSlug);
526
+ }
527
+ function mandateKeyOfShortcut(shortcutSlug, surfaceSlug) {
528
+ return dynamicKey("shortcut", shortcutSlug, surfaceSlug);
529
+ }
530
+
531
+ // mandates/index.ts
532
+ var KEY_SET = new Set(ALL_MANDATE_KEYS);
533
+ function isMandateKey(value) {
534
+ return typeof value === "string" && KEY_SET.has(value);
535
+ }
536
+ function assertMandateKey(value, context) {
537
+ if (isMandateKey(value)) return;
538
+ const where = context ? ` at ${context}` : "";
539
+ throw new Error(
540
+ `${JSON.stringify(value)} is not a declared mandate key${where}. @ai-matrx/agents@${MANDATE_KEYS_META.packageVersion} ships ${ALL_MANDATE_KEYS.length} keys (aidream ${MANDATE_KEYS_META.aidreamRevision.slice(0, 12)}). If the key is real, this package is behind \u2014 take \`latest\` and re-check. If it is a user-built app or shortcut, it is DB-authored: build it with mandateKeyOfApp() / mandateKeyOfShortcut(), which return DynamicMandateKey.`
541
+ );
542
+ }
543
+ //# sourceMappingURL=index.cjs.map