@ai-matrx/agents 0.29.1 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/content-transfer/index.cjs.map +1 -1
  3. package/dist/content-transfer/index.js.map +1 -1
  4. package/dist/content-transfer/react/index.cjs.map +1 -1
  5. package/dist/content-transfer/react/index.js.map +1 -1
  6. package/dist/context/index.cjs +4 -0
  7. package/dist/context/index.cjs.map +1 -1
  8. package/dist/context/index.d.cts +23 -4
  9. package/dist/context/index.d.ts +23 -4
  10. package/dist/context/index.js +4 -0
  11. package/dist/context/index.js.map +1 -1
  12. package/dist/context/react/index.cjs +32 -7
  13. package/dist/context/react/index.cjs.map +1 -1
  14. package/dist/context/react/index.d.cts +20 -5
  15. package/dist/context/react/index.d.ts +20 -5
  16. package/dist/context/react/index.js +33 -8
  17. package/dist/context/react/index.js.map +1 -1
  18. package/dist/mandates/index.cjs +2 -2
  19. package/dist/mandates/index.cjs.map +1 -1
  20. package/dist/mandates/index.d.cts +4 -4
  21. package/dist/mandates/index.d.ts +4 -4
  22. package/dist/mandates/index.js +2 -2
  23. package/dist/mandates/index.js.map +1 -1
  24. package/dist/portable/index.cjs +8 -0
  25. package/dist/portable/index.cjs.map +1 -1
  26. package/dist/portable/index.d.cts +12 -3
  27. package/dist/portable/index.d.ts +12 -3
  28. package/dist/portable/index.js +8 -0
  29. package/dist/portable/index.js.map +1 -1
  30. package/dist/portable/mcp.cjs +3 -3
  31. package/dist/portable/mcp.cjs.map +1 -1
  32. package/dist/portable/mcp.d.cts +3 -3
  33. package/dist/portable/mcp.d.ts +3 -3
  34. package/dist/portable/mcp.js +3 -3
  35. package/dist/portable/mcp.js.map +1 -1
  36. package/dist/{types.generated-BydVlqDC.d.cts → types.generated-BDphyhqo.d.cts} +16 -1
  37. package/dist/{types.generated-BydVlqDC.d.ts → types.generated-BDphyhqo.d.ts} +16 -1
  38. package/mandates/snapshots/keys.0.30.0.json +653 -0
  39. package/mandates/snapshots/keys.0.31.0.json +653 -0
  40. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../mandates/keys.generated.ts","../../mandates/index.ts"],"sourcesContent":["/**\n * GENERATED — DO NOT EDIT. Regenerate with:\n * uv run python scripts/mandates_generate.py (aidream repo; --dry-run also writes this file)\n *\n * THE ONE GENERATOR (`aidream/scripts/mandates_generate.py`, stage (h)) emits this\n * from the IN-PROCESS mandate declarations — the same `declared_mandates()` the\n * boot sync writes to the database from. There is no hand list anywhere.\n *\n * aidream revision: 0ac190324470f9f261725f0d931246605eda85fb\n * generator version: 1.0.0\n * package version: 0.29.1\n * active keys: 544\n * retiring keys: 0\n *\n * THE IDENTIFIER RULE: every `.` in a key becomes `__`, any character outside\n * [A-Za-z0-9_] becomes `_`, a leading digit gets an `_` prefix. So\n * `seo.keyword_classifier` is `MANDATE_KEYS.seo__keyword_classifier`. Collisions are a\n * fatal generator error, never a silently dropped key.\n */\n\n/** Where this module came from — surfaced so a report can name the exact build. */\nexport const MANDATE_KEYS_META = {\n aidreamRevision: \"0ac190324470f9f261725f0d931246605eda85fb\",\n generatorVersion: \"1.0.0\",\n packageVersion: \"0.29.1\",\n retireWindow: 3,\n} as const;\n\n/** Every declared mandate key, by THE IDENTIFIER RULE. */\nexport const MANDATE_KEYS = {\n agent_apps__auto_create: \"agent_apps.auto_create\",\n agent_apps__auto_create_lightning: \"agent_apps.auto_create_lightning\",\n agent_apps__metadata: \"agent_apps.metadata\",\n agent_apps__prompt_app_dev: \"agent_apps.prompt_app_dev\",\n agent_factory__structure_builder: \"agent_factory.structure_builder\",\n alchemy__prepare_content: \"alchemy.prepare_content\",\n ambient__page_guidance: \"ambient.page_guidance\",\n ambient__spoken_summary: \"ambient.spoken_summary\",\n audio__live_music: \"audio.live_music\",\n audio__speech: \"audio.speech\",\n brand__voice_rewrite: \"brand.voice_rewrite\",\n chat__cx_default: \"chat.cx_default\",\n chat__default_new_chat: \"chat.default_new_chat\",\n chat__quick_audio_plan: \"chat.quick_audio_plan\",\n chat__quick_fair_news: \"chat.quick_fair_news\",\n chat__quick_flashcards: \"chat.quick_flashcards\",\n chat__quick_image: \"chat.quick_image\",\n chat__quick_org_chart: \"chat.quick_org_chart\",\n chat__quick_research: \"chat.quick_research\",\n chat__quick_showcase: \"chat.quick_showcase\",\n chat__quick_writing_partner: \"chat.quick_writing_partner\",\n chat__response_mode_brainstorm: \"chat.response_mode_brainstorm\",\n chat__response_mode_data: \"chat.response_mode_data\",\n chat__response_mode_research: \"chat.response_mode_research\",\n chat__response_mode_video: \"chat.response_mode_video\",\n checks__cleanup_bakeoff__answer: \"checks.cleanup_bakeoff.answer\",\n checks__cleanup_bakeoff__judge: \"checks.cleanup_bakeoff.judge\",\n checks__finding_disposition: \"checks.finding_disposition\",\n checks__finding_disposition_review: \"checks.finding_disposition_review\",\n cms__content_writing: \"cms.content_writing\",\n cms__publish_review: \"cms.publish_review\",\n cms__seo_metadata: \"cms.seo_metadata\",\n cms__site_editing: \"cms.site_editing\",\n cms__theme_design: \"cms.theme_design\",\n code_editor__code_edit: \"code_editor.code_edit\",\n code_editor__dynamic_context_edit: \"code_editor.dynamic_context_edit\",\n code_editor__prompt_app_ui_edit: \"code_editor.prompt_app_ui_edit\",\n coding_session__conversation_responder: \"coding_session.conversation_responder\",\n coding_session__managed_translation_reference: \"coding_session.managed_translation_reference\",\n commerce_intake__assess_value: \"commerce_intake.assess_value\",\n commerce_intake__extract_vision: \"commerce_intake.extract_vision\",\n commerce_intake__grading: \"commerce_intake.grading\",\n commerce_intake__instant_analysis: \"commerce_intake.instant_analysis\",\n commerce_intake__refute_no_value: \"commerce_intake.refute_no_value\",\n commerce_intake__research_product: \"commerce_intake.research_product\",\n commerce_intake__segment_photos: \"commerce_intake.segment_photos\",\n commerce_intake__verify_enrichment: \"commerce_intake.verify_enrichment\",\n content_gate__section_relevance_decision: \"content_gate.section_relevance_decision\",\n content_ir__component_artisan: \"content_ir.component_artisan\",\n content_ir__kind_architect: \"content_ir.kind_architect\",\n content_ir__kind_component_builder: \"content_ir.kind_component_builder\",\n content_ir__kind_creator: \"content_ir.kind_creator\",\n content_plan__branch_purpose: \"content_plan.branch_purpose\",\n content_plan__brief_writer: \"content_plan.brief_writer\",\n content_plan__deepen_page: \"content_plan.deepen_page\",\n content_plan__entity_attacher: \"content_plan.entity_attacher\",\n content_plan__entity_curator: \"content_plan.entity_curator\",\n content_plan__family_namer: \"content_plan.family_namer\",\n content_plan__keyword_strategist: \"content_plan.keyword_strategist\",\n content_plan__merge_wave: \"content_plan.merge_wave\",\n content_plan__p3_family: \"content_plan.p3_family\",\n content_plan__p4_write: \"content_plan.p4_write\",\n content_plan__p5_review: \"content_plan.p5_review\",\n content_plan__p6_build: \"content_plan.p6_build\",\n content_plan__p6_build__about: \"content_plan.p6_build.about\",\n content_plan__p6_build__blog: \"content_plan.p6_build.blog\",\n content_plan__p6_build__comparison: \"content_plan.p6_build.comparison\",\n content_plan__p6_build__contact: \"content_plan.p6_build.contact\",\n content_plan__p6_build__faq: \"content_plan.p6_build.faq\",\n content_plan__p6_build__guide: \"content_plan.p6_build.guide\",\n content_plan__p6_build__home: \"content_plan.p6_build.home\",\n content_plan__p6_build__index: \"content_plan.p6_build.index\",\n content_plan__p6_build__location: \"content_plan.p6_build.location\",\n content_plan__p6_build__pillar: \"content_plan.p6_build.pillar\",\n content_plan__p6_build__pricing: \"content_plan.p6_build.pricing\",\n content_plan__p6_build__service: \"content_plan.p6_build.service\",\n content_plan__plan_reviewer: \"content_plan.plan_reviewer\",\n content_plan__research_wave__audience_journey: \"content_plan.research_wave.audience_journey\",\n content_plan__research_wave__competitor_coverage: \"content_plan.research_wave.competitor_coverage\",\n content_plan__research_wave__keyword_value: \"content_plan.research_wave.keyword_value\",\n content_plan__route_picker: \"content_plan.route_picker\",\n content_plan__shape_planner: \"content_plan.shape_planner\",\n conversation__action_auditor: \"conversation.action_auditor\",\n conversation__decision_ledger: \"conversation.decision_ledger\",\n conversation__drift_auditor: \"conversation.drift_auditor\",\n conversation__label_agent_run: \"conversation.label_agent_run\",\n conversation__label_chat: \"conversation.label_chat\",\n conversation__outcome_summarizer: \"conversation.outcome_summarizer\",\n conversation__vision_extractor: \"conversation.vision_extractor\",\n conversation__vision_interviewer: \"conversation.vision_interviewer\",\n crm__journalist_beat_analyst: \"crm.journalist_beat_analyst\",\n crm__media_list_ranker: \"crm.media_list_ranker\",\n crm__outreach_draft_reviewer: \"crm.outreach_draft_reviewer\",\n crm__outreach_fact_check: \"crm.outreach_fact_check\",\n crm__outreach_personalization_coach: \"crm.outreach_personalization_coach\",\n crm__outreach_personalization_writer: \"crm.outreach_personalization_writer\",\n crm__outreach_pitch_writer: \"crm.outreach_pitch_writer\",\n crm__outreach_recipient_shortlister: \"crm.outreach_recipient_shortlister\",\n crm__outreach_reply_drafter: \"crm.outreach_reply_drafter\",\n crm__outreach_strategy: \"crm.outreach_strategy\",\n crm__party_kind_judge: \"crm.party_kind_judge\",\n crm__save_contact: \"crm.save_contact\",\n data__formula_writing: \"data.formula_writing\",\n data__page_guidance: \"data.page_guidance\",\n data__row_action: \"data.row_action\",\n dictionary__workspace_guide: \"dictionary.workspace_guide\",\n distillation__timeline_distiller: \"distillation.timeline_distiller\",\n distillation__timeline_unfolder: \"distillation.timeline_unfolder\",\n docproc__content_structure: \"docproc.content_structure\",\n education__admin_guidance: \"education.admin_guidance\",\n education__analytics_narrate: \"education.analytics_narrate\",\n education__audio_study_guidance: \"education.audio_study_guidance\",\n education__card_image_generator: \"education.card_image_generator\",\n education__card_image_prompt_writer: \"education.card_image_prompt_writer\",\n education__card_image_qc_judge: \"education.card_image_qc_judge\",\n education__card_image_web_source: \"education.card_image_web_source\",\n education__classes_guidance: \"education.classes_guidance\",\n education__creator_guidance: \"education.creator_guidance\",\n education__data_guidance: \"education.data_guidance\",\n education__exam_prep_guidance: \"education.exam_prep_guidance\",\n education__family_guidance: \"education.family_guidance\",\n education__fastfire_guidance: \"education.fastfire_guidance\",\n education__features_guidance: \"education.features_guidance\",\n education__flashcards_guidance: \"education.flashcards_guidance\",\n education__game_guidance: \"education.game_guidance\",\n education__grade_handwritten: \"education.grade_handwritten\",\n education__grade_work_guidance: \"education.grade_work_guidance\",\n education__kit_title: \"education.kit_title\",\n education__learn_guidance: \"education.learn_guidance\",\n education__levels_guidance: \"education.levels_guidance\",\n education__library_guidance: \"education.library_guidance\",\n education__media_guidance: \"education.media_guidance\",\n education__memory_generate: \"education.memory_generate\",\n education__memory_guidance: \"education.memory_guidance\",\n education__memory_hint: \"education.memory_hint\",\n education__mind_maps_guidance: \"education.mind_maps_guidance\",\n education__mindmap_generate: \"education.mindmap_generate\",\n education__notes_generate: \"education.notes_generate\",\n education__notes_guidance: \"education.notes_guidance\",\n education__offline_guidance: \"education.offline_guidance\",\n education__page_guidance: \"education.page_guidance\",\n education__plan_generate: \"education.plan_generate\",\n education__planner_guidance: \"education.planner_guidance\",\n education__practice_oral_guidance: \"education.practice_oral_guidance\",\n education__practice_tests_guidance: \"education.practice_tests_guidance\",\n education__progress_guidance: \"education.progress_guidance\",\n education__quiz_deepen_item: \"education.quiz_deepen_item\",\n education__quiz_generate: \"education.quiz_generate\",\n education__quiz_generate_from_source: \"education.quiz_generate_from_source\",\n education__quizzes_guidance: \"education.quizzes_guidance\",\n education__spoken_practice_design: \"education.spoken_practice_design\",\n education__spoken_practice_design_language: \"education.spoken_practice_design_language\",\n education__spoken_practice_grade: \"education.spoken_practice_grade\",\n education__spoken_practice_grade_pronunciation: \"education.spoken_practice_grade_pronunciation\",\n education__spoken_practice_review: \"education.spoken_practice_review\",\n education__start_guidance: \"education.start_guidance\",\n education__study_aids_guidance: \"education.study_aids_guidance\",\n education__study_pack_flashcards: \"education.study_pack_flashcards\",\n education__study_pack_lessons: \"education.study_pack_lessons\",\n education__study_pack_notes: \"education.study_pack_notes\",\n education__study_pack_quiz: \"education.study_pack_quiz\",\n education__study_pack_v2_flashcards: \"education.study_pack_v2_flashcards\",\n education__study_pack_v2_lessons: \"education.study_pack_v2_lessons\",\n education__study_pack_v2_notes: \"education.study_pack_v2_notes\",\n education__study_pack_v2_quiz: \"education.study_pack_v2_quiz\",\n education__subjects_guidance: \"education.subjects_guidance\",\n education__summaries_guidance: \"education.summaries_guidance\",\n education__summarize: \"education.summarize\",\n education__tutor_guidance: \"education.tutor_guidance\",\n education__tutor_message: \"education.tutor_message\",\n education__voice_tutor: \"education.voice_tutor\",\n evaluators__comparative_judge: \"evaluators.comparative_judge\",\n evaluators__rubric_judge: \"evaluators.rubric_judge\",\n extend__browser_chat: \"extend.browser_chat\",\n extend__pattern_from_data: \"extend.pattern_from_data\",\n extend__structured_extractor: \"extend.structured_extractor\",\n feedback__item_triage_decision: \"feedback.item_triage_decision\",\n flashcards__enrich_card: \"flashcards.enrich_card\",\n flashcards__expand_card: \"flashcards.expand_card\",\n flashcards__fix_giveaway_cards: \"flashcards.fix_giveaway_cards\",\n flashcards__generate_cards: \"flashcards.generate_cards\",\n flashcards__generate_from_source: \"flashcards.generate_from_source\",\n flashcards__grade_spoken: \"flashcards.grade_spoken\",\n flashcards__grade_typed_answer: \"flashcards.grade_typed_answer\",\n flashcards__help_live: \"flashcards.help_live\",\n flashcards__helper_tts: \"flashcards.helper_tts\",\n flashcards__make_quiz_items: \"flashcards.make_quiz_items\",\n flashcards__micro_coach: \"flashcards.micro_coach\",\n flashcards__review_batch: \"flashcards.review_batch\",\n flashcards__spoken_front_tts: \"flashcards.spoken_front_tts\",\n flashcards__verify_against_source: \"flashcards.verify_against_source\",\n foundry__planner: \"foundry.planner\",\n google__channel_video_plan: \"google.channel_video_plan\",\n google__desk_work: \"google.desk_work\",\n google__traffic_change_explanation: \"google.traffic_change_explanation\",\n growth_loop__quality_analyze: \"growth_loop.quality_analyze\",\n growth_loop__quality_brief: \"growth_loop.quality_brief\",\n growth_loop__quality_crawl: \"growth_loop.quality_crawl\",\n growth_loop__quality_fill: \"growth_loop.quality_fill\",\n growth_loop__quality_measure: \"growth_loop.quality_measure\",\n growth_loop__quality_plan: \"growth_loop.quality_plan\",\n growth_loop__quality_publish: \"growth_loop.quality_publish\",\n growth_loop__quality_realize: \"growth_loop.quality_realize\",\n growth_loop__quality_research: \"growth_loop.quality_research\",\n growth_loop__quality_serve: \"growth_loop.quality_serve\",\n growth_loop__quality_suggest: \"growth_loop.quality_suggest\",\n growth_loop__quality_writeback: \"growth_loop.quality_writeback\",\n growth_loop__supervisor: \"growth_loop.supervisor\",\n hindsight__crystallizer: \"hindsight.crystallizer\",\n hindsight__replay_judge: \"hindsight.replay_judge\",\n hindsight__reviewer: \"hindsight.reviewer\",\n human_decisions__fallback_decider: \"human_decisions.fallback_decider\",\n image__generate: \"image.generate\",\n image_pipeline__concept: \"image_pipeline.concept\",\n image_pipeline__prompt_write: \"image_pipeline.prompt_write\",\n image_pipeline__qc_judge: \"image_pipeline.qc_judge\",\n iteration__architect: \"iteration.architect\",\n iteration__diagnostic: \"iteration.diagnostic\",\n iteration__root_cause: \"iteration.root_cause\",\n iteration__thinking_display: \"iteration.thinking_display\",\n kg__cluster_namer: \"kg.cluster_namer\",\n kg__ner_extractor: \"kg.ner_extractor\",\n knowledge__document_verifier: \"knowledge.document_verifier\",\n knowledge__qa_generator: \"knowledge.qa_generator\",\n knowledge__section_summarizer: \"knowledge.section_summarizer\",\n local__answer_question: \"local.answer_question\",\n local__chat_persona_brainstorm: \"local.chat_persona_brainstorm\",\n local__chat_persona_code_review: \"local.chat_persona_code_review\",\n local__chat_persona_explain_simply: \"local.chat_persona_explain_simply\",\n local__chat_persona_helpful: \"local.chat_persona_helpful\",\n local__chat_persona_spoken_replies: \"local.chat_persona_spoken_replies\",\n local__chat_persona_summarize: \"local.chat_persona_summarize\",\n local__chat_persona_transcript_polish: \"local.chat_persona_transcript_polish\",\n local__cloud_chat: \"local.cloud_chat\",\n local__cloud_chat_reply: \"local.cloud_chat_reply\",\n local__confidential_chat: \"local.confidential_chat\",\n local__explain_code: \"local.explain_code\",\n local__extract_action_items: \"local.extract_action_items\",\n local__improve_writing: \"local.improve_writing\",\n local__polish_style_action_items: \"local.polish_style_action_items\",\n local__polish_style_bullets: \"local.polish_style_bullets\",\n local__polish_style_custom: \"local.polish_style_custom\",\n local__polish_style_formal: \"local.polish_style_formal\",\n local__polish_style_light_cleanup: \"local.polish_style_light_cleanup\",\n local__polish_style_meeting_notes: \"local.polish_style_meeting_notes\",\n local__polish_style_standard: \"local.polish_style_standard\",\n local__polish_transcript: \"local.polish_transcript\",\n local__raw_completion: \"local.raw_completion\",\n local__summarize_text: \"local.summarize_text\",\n local__tool_calling_chat: \"local.tool_calling_chat\",\n mandate_outcome__goal_clause_extraction: \"mandate_outcome.goal_clause_extraction\",\n mandate_outcome__goal_fitness_decision: \"mandate_outcome.goal_fitness_decision\",\n mandates__holder_draft: \"mandates.holder_draft\",\n marketing__endowment_analysis: \"marketing.endowment_analysis\",\n marketing__endowment_portfolio: \"marketing.endowment_portfolio\",\n marketing__image_prompt: \"marketing.image_prompt\",\n marketing__page_image: \"marketing.page_image\",\n marketing__page_image_all_in_one: \"marketing.page_image_all_in_one\",\n marketing__video_metadata: \"marketing.video_metadata\",\n masterwork__approach_selector: \"masterwork.approach_selector\",\n masterwork__audition_judge: \"masterwork.audition_judge\",\n masterwork__bad_draft: \"masterwork.bad_draft\",\n masterwork__bad_example_probe: \"masterwork.bad_example_probe\",\n masterwork__case_oracle: \"masterwork.case_oracle\",\n masterwork__checkup_auditor: \"masterwork.checkup_auditor\",\n masterwork__coherence_partner: \"masterwork.coherence_partner\",\n masterwork__conductor: \"masterwork.conductor\",\n masterwork__corpus_cleaner: \"masterwork.corpus_cleaner\",\n masterwork__corpus_synthesizer: \"masterwork.corpus_synthesizer\",\n masterwork__counterparty: \"masterwork.counterparty\",\n masterwork__critique_distiller: \"masterwork.critique_distiller\",\n masterwork__draft_triage: \"masterwork.draft_triage\",\n masterwork__drip_distiller: \"masterwork.drip_distiller\",\n masterwork__drip_question: \"masterwork.drip_question\",\n masterwork__elicitation_judge: \"masterwork.elicitation_judge\",\n masterwork__exception_hunter: \"masterwork.exception_hunter\",\n masterwork__exemplar_distiller: \"masterwork.exemplar_distiller\",\n masterwork__faithfulness_judge: \"masterwork.faithfulness_judge\",\n masterwork__intake_designer: \"masterwork.intake_designer\",\n masterwork__markup_distiller: \"masterwork.markup_distiller\",\n masterwork__meeting_scavenger: \"masterwork.meeting_scavenger\",\n masterwork__monologue_distiller: \"masterwork.monologue_distiller\",\n masterwork__outcome_judge: \"masterwork.outcome_judge\",\n masterwork__pairwise_judge: \"masterwork.pairwise_judge\",\n masterwork__prediction_boundary: \"masterwork.prediction_boundary\",\n masterwork__prediction_distiller: \"masterwork.prediction_distiller\",\n masterwork__relationship_auditor: \"masterwork.relationship_auditor\",\n masterwork__rule_improver: \"masterwork.rule_improver\",\n masterwork__rulebook_auditor: \"masterwork.rulebook_auditor\",\n masterwork__scout: \"masterwork.scout\",\n masterwork__sealed_case_oracle: \"masterwork.sealed_case_oracle\",\n masterwork__sort_case_writer: \"masterwork.sort_case_writer\",\n masterwork__sort_distiller: \"masterwork.sort_distiller\",\n masterwork__source_distiller: \"masterwork.source_distiller\",\n masterwork__teach_back_distiller: \"masterwork.teach_back_distiller\",\n masterwork__teach_back_explainer: \"masterwork.teach_back_explainer\",\n masterwork__template__chief_edit: \"masterwork.template.chief_edit\",\n masterwork__template__chief_generate: \"masterwork.template.chief_generate\",\n masterwork__template__editor: \"masterwork.template.editor\",\n masterwork__template__maker: \"masterwork.template.maker\",\n masterwork__timeline_distiller: \"masterwork.timeline_distiller\",\n masterwork__timeline_segmenter: \"masterwork.timeline_segmenter\",\n masterwork__transcript_distiller: \"masterwork.transcript_distiller\",\n masterwork__transcript_shortlister: \"masterwork.transcript_shortlister\",\n masterwork__triad_distiller: \"masterwork.triad_distiller\",\n masterwork__triad_generator: \"masterwork.triad_generator\",\n masterwork__understudy: \"masterwork.understudy\",\n masterwork__unfolding_judge: \"masterwork.unfolding_judge\",\n masterworks__bench__a2_loop: \"masterworks.bench.a2_loop\",\n masterworks__bench__calibration_decoy: \"masterworks.bench.calibration_decoy\",\n masterworks__bench__consensus: \"masterworks.bench.consensus\",\n masterworks__bench__extract: \"masterworks.bench.extract\",\n masterworks__bench__judge: \"masterworks.bench.judge\",\n masterworks__bench__panel: \"masterworks.bench.panel\",\n masterworks__bench__raw_arm: \"masterworks.bench.raw_arm\",\n masterworks__vanilla_arm__answer_from_facts: \"masterworks.vanilla_arm.answer_from_facts\",\n masterworks__vanilla_arm__best_work: \"masterworks.vanilla_arm.best_work\",\n masterworks__vanilla_arm__outcome_case: \"masterworks.vanilla_arm.outcome_case\",\n masterworks__vanilla_arm__professional_help: \"masterworks.vanilla_arm.professional_help\",\n media__youtube_analyzer: \"media.youtube_analyzer\",\n media_catalog__item_vetting_decision: \"media_catalog.item_vetting_decision\",\n meet__agenda_draft: \"meet.agenda_draft\",\n meet__live_intelligence: \"meet.live_intelligence\",\n meet__live_notes: \"meet.live_notes\",\n meet__pre_meeting_brief: \"meet.pre_meeting_brief\",\n meet__transcription: \"meet.transcription\",\n meet__wrap_up: \"meet.wrap_up\",\n memory__observer: \"memory.observer\",\n memory__reflector: \"memory.reflector\",\n mermaid__diagram_editing: \"mermaid.diagram_editing\",\n messaging__action_item_extraction: \"messaging.action_item_extraction\",\n messaging__conversation_catch_up: \"messaging.conversation_catch_up\",\n messaging__conversation_summary: \"messaging.conversation_summary\",\n messaging__reply_drafting: \"messaging.reply_drafting\",\n ner__deep_chunk_extractor: \"ner.deep_chunk_extractor\",\n ner__document_orienter: \"ner.document_orienter\",\n ner__entity_canonicalizer: \"ner.entity_canonicalizer\",\n ner__finisher: \"ner.finisher\",\n ner__item_proposer: \"ner.item_proposer\",\n ner__magic_moment_detector: \"ner.magic_moment_detector\",\n ner__scope_proposer: \"ner.scope_proposer\",\n ner__scope_slot_filler: \"ner.scope_slot_filler\",\n ner__suggestion_reviewer: \"ner.suggestion_reviewer\",\n ner__sweep_scope_discoverer: \"ner.sweep_scope_discoverer\",\n ner__sweep_scope_reference_finder: \"ner.sweep_scope_reference_finder\",\n ner__sweep_value_miner: \"ner.sweep_value_miner\",\n news__angles: \"news.angles\",\n news__coarse_relevance: \"news.coarse_relevance\",\n news__monitor_setup_proposer: \"news.monitor_setup_proposer\",\n news__report: \"news.report\",\n news__story_origin: \"news.story_origin\",\n news__triage: \"news.triage\",\n notes__organizer: \"notes.organizer\",\n notes__page_guidance: \"notes.page_guidance\",\n observability__tool_trace_pattern_detection: \"observability.tool_trace_pattern_detection\",\n observability__tool_trace_triage: \"observability.tool_trace_triage\",\n orchestras__role_describer: \"orchestras.role_describer\",\n orchestration__tool_failure_standoff_decision: \"orchestration.tool_failure_standoff_decision\",\n pdf__chunk_clean_ocr_text: \"pdf.chunk_clean_ocr_text\",\n pdf__chunk_flashcards_json: \"pdf.chunk_flashcards_json\",\n pdf__chunk_flashcards_typescript: \"pdf.chunk_flashcards_typescript\",\n pdf__content_cleaner: \"pdf.content_cleaner\",\n personal_staff__escalation: \"personal_staff.escalation\",\n personal_staff__front_line: \"personal_staff.front_line\",\n podcast__audience_adapter: \"podcast.audience_adapter\",\n podcast__audio_dialogue: \"podcast.audio_dialogue\",\n podcast__audio_english: \"podcast.audio_english\",\n podcast__audio_persian: \"podcast.audio_persian\",\n podcast__chapter_marker: \"podcast.chapter_marker\",\n podcast__content_extractor: \"podcast.content_extractor\",\n podcast__deep_research: \"podcast.deep_research\",\n podcast__image_v1: \"podcast.image_v1\",\n podcast__image_v2: \"podcast.image_v2\",\n podcast__image_v3: \"podcast.image_v3\",\n podcast__image_v4: \"podcast.image_v4\",\n podcast__image_v5: \"podcast.image_v5\",\n podcast__image_v6_feature: \"podcast.image_v6_feature\",\n podcast__image_v6_feature_prompt: \"podcast.image_v6_feature_prompt\",\n podcast__live_rewrite: \"podcast.live_rewrite\",\n podcast__metadata: \"podcast.metadata\",\n podcast__multihost_script: \"podcast.multihost_script\",\n podcast__post_prep_expansion: \"podcast.post_prep_expansion\",\n podcast__post_prep_fact_checking: \"podcast.post_prep_fact_checking\",\n podcast__post_prep_summarization: \"podcast.post_prep_summarization\",\n podcast__post_prep_translation: \"podcast.post_prep_translation\",\n podcast__race_frontier: \"podcast.race_frontier\",\n podcast__relevance_gate: \"podcast.relevance_gate\",\n podcast__roundtable_script: \"podcast.roundtable_script\",\n podcast__script_educational: \"podcast.script_educational\",\n podcast__script_news: \"podcast.script_news\",\n podcast__script_persian: \"podcast.script_persian\",\n podcast__solo_script: \"podcast.solo_script\",\n podcast__title_optimizer: \"podcast.title_optimizer\",\n podcast__video_v1: \"podcast.video_v1\",\n podcast__video_v2: \"podcast.video_v2\",\n podcast_client__blog_writer: \"podcast_client.blog_writer\",\n podcast_client__show_notes: \"podcast_client.show_notes\",\n podcast_client__topic_ideas: \"podcast_client.topic_ideas\",\n podcast_client__web_content_extractor: \"podcast_client.web_content_extractor\",\n podcast_client__youtube_research: \"podcast_client.youtube_research\",\n product_capture__instant_analysis: \"product_capture.instant_analysis\",\n projects__creation_guide: \"projects.creation_guide\",\n proof_runs__judge: \"proof_runs.judge\",\n purpose__writer: \"purpose.writer\",\n rag__chunk_contextualizer: \"rag.chunk_contextualizer\",\n rag__grounded_synthesis: \"rag.grounded_synthesis\",\n rag__grounding_claim_extract: \"rag.grounding_claim_extract\",\n rag__grounding_judge: \"rag.grounding_judge\",\n rag__hyde_generator: \"rag.hyde_generator\",\n rag__image_caption: \"rag.image_caption\",\n rag__pdf_page_cleaner: \"rag.pdf_page_cleaner\",\n rag__query_expander: \"rag.query_expander\",\n rag_kinds__grounded_synthesis: \"rag_kinds.grounded_synthesis\",\n records__enrichment: \"records.enrichment\",\n research__auto_tagger: \"research.auto_tagger\",\n research__condenser_1: \"research.condenser_1\",\n research__condenser_2: \"research.condenser_2\",\n research__coverage_audit: \"research.coverage_audit\",\n research__cross_cutting_tags: \"research.cross_cutting_tags\",\n research__document_assembly: \"research.document_assembly\",\n research__keyword_synthesis: \"research.keyword_synthesis\",\n research__report: \"research.report\",\n research__report_updater: \"research.report_updater\",\n research__source_authority: \"research.source_authority\",\n research__source_triage_decision: \"research.source_triage_decision\",\n research__structured_page_summary: \"research.structured_page_summary\",\n research__suggest_setup: \"research.suggest_setup\",\n research__tag_consolidation: \"research.tag_consolidation\",\n research__topic_deep_research: \"research.topic_deep_research\",\n research_client__output_blog: \"research_client.output_blog\",\n research_client__output_brand_profile: \"research_client.output_brand_profile\",\n research_client__output_competitive_landscape: \"research_client.output_competitive_landscape\",\n research_client__output_gap_analysis: \"research_client.output_gap_analysis\",\n research_client__output_literature_review: \"research_client.output_literature_review\",\n research_client__output_reputation_business: \"research_client.output_reputation_business\",\n research_client__output_reputation_personal: \"research_client.output_reputation_personal\",\n research_client__output_seo: \"research_client.output_seo\",\n research_client__output_slides: \"research_client.output_slides\",\n scraper__fact_check: \"scraper.fact_check\",\n scraper__keyword_analysis: \"scraper.keyword_analysis\",\n scraper__page_fetch_verdict: \"scraper.page_fetch_verdict\",\n seo__ai_visibility_blind_question_writer: \"seo.ai_visibility_blind_question_writer\",\n seo__ai_visibility_buyer_jobs: \"seo.ai_visibility_buyer_jobs\",\n seo__ai_visibility_decision_analyst: \"seo.ai_visibility_decision_analyst\",\n seo__ai_visibility_evidence_icp: \"seo.ai_visibility_evidence_icp\",\n seo__ai_visibility_panel_designer: \"seo.ai_visibility_panel_designer\",\n seo__ai_visibility_panel_report: \"seo.ai_visibility_panel_report\",\n seo__ai_visibility_question_architect: \"seo.ai_visibility_question_architect\",\n seo__ai_visibility_question_qa: \"seo.ai_visibility_question_qa\",\n seo__ai_visibility_writing_audit: \"seo.ai_visibility_writing_audit\",\n seo__backlink_analysis: \"seo.backlink_analysis\",\n seo__backlink_context_assessor: \"seo.backlink_context_assessor\",\n seo__backlink_work_planner: \"seo.backlink_work_planner\",\n seo__business_model_verdict: \"seo.business_model_verdict\",\n seo__competitor_classifier: \"seo.competitor_classifier\",\n seo__competitor_opportunity_autopsy: \"seo.competitor_opportunity_autopsy\",\n seo__competitor_page_autopsy: \"seo.competitor_page_autopsy\",\n seo__coverage_analyst: \"seo.coverage_analyst\",\n seo__digital_pr_reputation_adjudicator: \"seo.digital_pr_reputation_adjudicator\",\n seo__evidence_workbench: \"seo.evidence_workbench\",\n seo__finding_fixer: \"seo.finding_fixer\",\n seo__guidelines_drafter: \"seo.guidelines_drafter\",\n seo__ideal_customer_profile: \"seo.ideal_customer_profile\",\n seo__keyword_classifier: \"seo.keyword_classifier\",\n seo__keyword_expander: \"seo.keyword_expander\",\n seo__keyword_researcher: \"seo.keyword_researcher\",\n seo__keyword_serp_intent_analyst: \"seo.keyword_serp_intent_analyst\",\n seo__landscape_brief: \"seo.landscape_brief\",\n seo__map_author: \"seo.map_author\",\n seo__map_curation: \"seo.map_curation\",\n seo__money_map: \"seo.money_map\",\n seo__offering_extraction: \"seo.offering_extraction\",\n seo__offering_valuation: \"seo.offering_valuation\",\n seo__page_analyzer: \"seo.page_analyzer\",\n seo__page_intent_proposer: \"seo.page_intent_proposer\",\n seo__page_keyword_mapper: \"seo.page_keyword_mapper\",\n seo__page_mapper: \"seo.page_mapper\",\n seo__press_calendar_planner: \"seo.press_calendar_planner\",\n seo__press_clip_reviewer: \"seo.press_clip_reviewer\",\n seo__press_headlines: \"seo.press_headlines\",\n seo__press_moment_researcher: \"seo.press_moment_researcher\",\n seo__press_newsworthiness_check: \"seo.press_newsworthiness_check\",\n seo__press_source_request_responder: \"seo.press_source_request_responder\",\n seo__press_story_analyst: \"seo.press_story_analyst\",\n seo__press_strategist: \"seo.press_strategist\",\n seo__reputation_crisis_holding: \"seo.reputation_crisis_holding\",\n seo__session_rule_writer: \"seo.session_rule_writer\",\n seo__session_stamp_proposer: \"seo.session_stamp_proposer\",\n seo__site_intake: \"seo.site_intake\",\n seo__site_link_authority_router: \"seo.site_link_authority_router\",\n seo__site_strategist: \"seo.site_strategist\",\n seo__starter_pack_proposer: \"seo.starter_pack_proposer\",\n seo__strategy__site_brief__generate: \"seo.strategy.site_brief.generate\",\n seo__topic_assigner: \"seo.topic_assigner\",\n seo__topic_curation: \"seo.topic_curation\",\n sms__owner_beta: \"sms.owner_beta\",\n surfaces_client__binding_mapper: \"surfaces_client.binding_mapper\",\n tasks__triage: \"tasks.triage\",\n tool_viz__component_generator: \"tool_viz.component_generator\",\n tools__summarize_content: \"tools.summarize_content\",\n transcript_studio__document_edit: \"transcript_studio.document_edit\",\n transcript_studio__scribe_live: \"transcript_studio.scribe_live\",\n transcripts__clean_with_context: \"transcripts.clean_with_context\",\n transcripts__clean_with_context_variable: \"transcripts.clean_with_context_variable\",\n transcripts__clean_without_context: \"transcripts.clean_without_context\",\n vision_interview__adversary: \"vision_interview.adversary\",\n vision_interview__amplifier: \"vision_interview.amplifier\",\n vision_interview__answer_tracker: \"vision_interview.answer_tracker\",\n vision_interview__archaeologist: \"vision_interview.archaeologist\",\n vision_interview__architect: \"vision_interview.architect\",\n vision_interview__cartographer: \"vision_interview.cartographer\",\n vision_interview__requirements_author: \"vision_interview.requirements_author\",\n vision_interview__scribe: \"vision_interview.scribe\",\n vision_interview__sounding_board: \"vision_interview.sounding_board\",\n vision_interview__transcript_cleaner: \"vision_interview.transcript_cleaner\",\n vision_interview__vision_author: \"vision_interview.vision_author\",\n voice__communicator: \"voice.communicator\",\n voice__gemini_live: \"voice.gemini_live\",\n voice__intro: \"voice.intro\",\n voice__owner_beta: \"voice.owner_beta\",\n war_room__master: \"war_room.master\",\n war_room__room: \"war_room.room\",\n war_room__thread: \"war_room.thread\",\n web__endpoint_family_judge: \"web.endpoint_family_judge\",\n workflow__complex_research__keyword_synthesis: \"workflow.complex_research.keyword_synthesis\",\n workflow__complex_research__page_summary: \"workflow.complex_research.page_summary\",\n workflow__complex_research__report: \"workflow.complex_research.report\",\n workflow__conductor: \"workflow.conductor\",\n workflow__deep_research__keyword_synthesis: \"workflow.deep_research.keyword_synthesis\",\n workflow__extract_namer: \"workflow.extract_namer\",\n workflow__plan_design: \"workflow.plan_design\",\n workflow__plan_input_kind_authoring: \"workflow.plan_input_kind_authoring\",\n workflow__plan_node_type_recommender: \"workflow.plan_node_type_recommender\",\n workflow__plan_notes_writer: \"workflow.plan_notes_writer\",\n workflow__plan_output_kind_authoring: \"workflow.plan_output_kind_authoring\",\n workflow__recovery_advisor: \"workflow.recovery_advisor\",\n workflow__run_assist_suggester: \"workflow.run_assist_suggester\",\n workflow__step_intelligence: \"workflow.step_intelligence\",\n workflow__steward: \"workflow.steward\",\n workflow__steward__agent_run: \"workflow.steward.agent_run\",\n workflow__steward__data: \"workflow.steward.data\",\n workflow__steward__decision: \"workflow.steward.decision\",\n workflow__steward__user_input: \"workflow.steward.user_input\",\n workflow__wizard__agent_run: \"workflow.wizard.agent_run\",\n} as const;\n\n/** Every key this package version accepts — active plus retiring. */\nexport type MandateKey = (typeof MANDATE_KEYS)[keyof typeof MANDATE_KEYS];\n\n/** The key set as a runtime array, in generated order. */\nexport const ALL_MANDATE_KEYS: readonly MandateKey[] = Object.values(MANDATE_KEYS) as readonly MandateKey[];\n\n/** Keys still in the union but no longer declared (two-phase retire, phase 1). */\nexport const RETIRING_MANDATE_KEYS = {\n} as const;\n\n/**\n * Declared FAMILIES — a prefix the feature's own roster owns, and its members.\n * Emitted from `declared_families()` (aidream `services/mandates/carriers.py`).\n */\nexport const MANDATE_FAMILIES = {\n \"ambient.page_guidance_overrides\": [\n \"data.page_guidance\",\n \"education.admin_guidance\",\n \"education.audio_study_guidance\",\n \"education.classes_guidance\",\n \"education.creator_guidance\",\n \"education.data_guidance\",\n \"education.exam_prep_guidance\",\n \"education.family_guidance\",\n \"education.fastfire_guidance\",\n \"education.features_guidance\",\n \"education.flashcards_guidance\",\n \"education.game_guidance\",\n \"education.grade_work_guidance\",\n \"education.learn_guidance\",\n \"education.levels_guidance\",\n \"education.library_guidance\",\n \"education.media_guidance\",\n \"education.memory_guidance\",\n \"education.mind_maps_guidance\",\n \"education.notes_guidance\",\n \"education.offline_guidance\",\n \"education.page_guidance\",\n \"education.planner_guidance\",\n \"education.practice_oral_guidance\",\n \"education.practice_tests_guidance\",\n \"education.progress_guidance\",\n \"education.quizzes_guidance\",\n \"education.start_guidance\",\n \"education.study_aids_guidance\",\n \"education.subjects_guidance\",\n \"education.summaries_guidance\",\n \"education.tutor_guidance\",\n \"notes.page_guidance\",\n ],\n \"checks.cleanup_bakeoff\": [\n \"checks.cleanup_bakeoff.answer\",\n \"checks.cleanup_bakeoff.judge\",\n ],\n \"content_plan.p6_build\": [\n \"content_plan.p6_build.about\",\n \"content_plan.p6_build.blog\",\n \"content_plan.p6_build.comparison\",\n \"content_plan.p6_build.contact\",\n \"content_plan.p6_build.faq\",\n \"content_plan.p6_build.guide\",\n \"content_plan.p6_build.home\",\n \"content_plan.p6_build.index\",\n \"content_plan.p6_build.location\",\n \"content_plan.p6_build.pillar\",\n \"content_plan.p6_build.pricing\",\n \"content_plan.p6_build.service\",\n ],\n \"content_plan.research_wave\": [\n \"content_plan.research_wave.audience_journey\",\n \"content_plan.research_wave.competitor_coverage\",\n \"content_plan.research_wave.keyword_value\",\n ],\n \"conversation\": [\n \"conversation.action_auditor\",\n \"conversation.decision_ledger\",\n \"conversation.drift_auditor\",\n \"conversation.outcome_summarizer\",\n \"conversation.vision_extractor\",\n \"conversation.vision_interviewer\",\n ],\n \"masterworks.bench\": [\n \"masterworks.bench.a2_loop\",\n \"masterworks.bench.calibration_decoy\",\n \"masterworks.bench.consensus\",\n \"masterworks.bench.extract\",\n \"masterworks.bench.judge\",\n \"masterworks.bench.panel\",\n \"masterworks.bench.raw_arm\",\n ],\n \"masterworks.vanilla_arm\": [\n \"masterworks.vanilla_arm.answer_from_facts\",\n \"masterworks.vanilla_arm.best_work\",\n \"masterworks.vanilla_arm.outcome_case\",\n \"masterworks.vanilla_arm.professional_help\",\n ],\n \"vision_interview\": [\n \"vision_interview.adversary\",\n \"vision_interview.amplifier\",\n \"vision_interview.answer_tracker\",\n \"vision_interview.archaeologist\",\n \"vision_interview.architect\",\n \"vision_interview.cartographer\",\n \"vision_interview.requirements_author\",\n \"vision_interview.scribe\",\n \"vision_interview.sounding_board\",\n \"vision_interview.transcript_cleaner\",\n \"vision_interview.vision_author\",\n ],\n} as const;\n\nexport type MandateFamilyPrefix = keyof typeof MANDATE_FAMILIES;\n\n/** Members of a declared family, typed as real keys. */\nexport type MandateFamilyMember<P extends MandateFamilyPrefix> =\n (typeof MANDATE_FAMILIES)[P][number];\n\n/**\n * THE DYNAMIC FAMILIES — DB-authored (`mandate.definition` origin='user'). No\n * generated union can contain them, so their accessors return a BRANDED\n * `DynamicMandateKey`, deliberately NOT assignable to `MandateKey`: a carrier that\n * demands a declared key still refuses one, and a carrier that accepts either\n * says so in its own signature (`MandateKey | DynamicMandateKey`).\n */\ndeclare const dynamicMandateKeyBrand: unique symbol;\n\nexport type DynamicMandateKey = string & {\n readonly [dynamicMandateKeyBrand]: true;\n};\n\nexport const DYNAMIC_MANDATE_FAMILIES = {\n \"app\": { prefix: \"app\", note: \"One mandate per user-built app (`mandate.definition` origin='user').\" },\n \"shortcut\": { prefix: \"shortcut\", note: \"One mandate per user-authored shortcut (origin='user').\" },\n} as const;\n\nexport type DynamicMandateFamilyPrefix = keyof typeof DYNAMIC_MANDATE_FAMILIES;\n\nconst DYNAMIC_SLUG = /^[a-z0-9]+(?:_[a-z0-9]+)*$/;\n\nfunction dynamicKey(\n prefix: DynamicMandateFamilyPrefix,\n ...slugs: readonly (string | undefined)[]\n): DynamicMandateKey {\n const parts = slugs.filter((slug): slug is string => slug !== undefined);\n if (parts.length === 0) {\n throw new Error(\n `mandate family \"${prefix}\" needs at least a member slug — it was given none.`,\n );\n }\n for (const slug of parts) {\n if (!DYNAMIC_SLUG.test(slug)) {\n throw new Error(\n `mandate family \"${prefix}\" cannot name a member from ` +\n `${JSON.stringify(slug)}: a segment is lowercase words joined by single ` +\n \"underscores. Pass the slug the row carries, never a display name.\",\n );\n }\n }\n return [prefix, ...parts].join(\".\") as DynamicMandateKey;\n}\n\n/**\n * The mandate key of a user-built app. DB-authored — never a declared key.\n * `surfaceSlug` names the per-surface row a few apps carry\n * (`app.<app>.<surface>`); omit it for the app's own mandate.\n */\nexport function mandateKeyOfApp(\n appSlug: string,\n surfaceSlug?: string,\n): DynamicMandateKey {\n return dynamicKey(\"app\", appSlug, surfaceSlug);\n}\n\n/**\n * The mandate key of a user-authored shortcut. DB-authored. `surfaceSlug` names\n * the per-surface row (`shortcut.<shortcut>.<surface>`), which is how most live\n * shortcut rows are keyed; omit it for the shortcut's own mandate.\n */\nexport function mandateKeyOfShortcut(\n shortcutSlug: string,\n surfaceSlug?: string,\n): DynamicMandateKey {\n return dynamicKey(\"shortcut\", shortcutSlug, surfaceSlug);\n}\n","/**\n * `@ai-matrx/agents/mandates` — the ONE place a TypeScript client learns a\n * mandate key.\n *\n * 🚨 **Clients never declare a mandate.** aidream's `declare_mandate` is the\n * only declaration path in the system; this subpath publishes the key set that\n * declaration produced, so a hand-typed `\"seo.keyword_cluster\"` literal, a local\n * `mandates.ts` mirror, or an `as MandateKey` cast is a defect with a real\n * replacement — not a style preference. Every carrier that takes a key should\n * type it `MandateKey` (or `MandateKey | DynamicMandateKey` when it genuinely\n * accepts a DB-authored one) so a wrong key fails type-check instead of failing\n * at run time as a 404 nobody sees.\n *\n * The key data lives in `keys.generated.ts`, emitted by THE ONE GENERATOR\n * (`aidream/scripts/mandates_generate.py`, stage (h)) from the in-process\n * declarations — never edit it. The per-version key set that shipped with each\n * published version is committed beside it under `snapshots/`, so a scan can\n * resolve a client's references against the key set of the version it actually\n * ships (Mandate Declaration & Usage Reporting, DESIGN § 4.5 step 2).\n */\n\nexport {\n ALL_MANDATE_KEYS,\n DYNAMIC_MANDATE_FAMILIES,\n MANDATE_FAMILIES,\n MANDATE_KEYS,\n MANDATE_KEYS_META,\n RETIRING_MANDATE_KEYS,\n mandateKeyOfApp,\n mandateKeyOfShortcut,\n type DynamicMandateFamilyPrefix,\n type DynamicMandateKey,\n type MandateFamilyMember,\n type MandateFamilyPrefix,\n type MandateKey,\n} from \"./keys.generated\";\n\nimport {\n ALL_MANDATE_KEYS,\n MANDATE_KEYS_META,\n type DynamicMandateKey,\n type MandateKey,\n} from \"./keys.generated\";\n\n/**\n * What a carrier accepts when the key may be a declared one OR a DB-authored\n * one (`app.*` / `shortcut.*`, a `mandate.definition` row with origin='user').\n * Carriers that only ever run a declared job stay `MandateKey`.\n *\n * The mandate reference scanner reads a binding of this type as a proven key in\n * flight (`passthrough`), never an `UNRESOLVED_KEY` — so this is THE one\n * definition every client imports, never a local copy.\n */\nexport type AnyMandateKey = MandateKey | DynamicMandateKey;\n\n/**\n * A KEY THE CODE DID NOT CHOOSE, entering the typed world named for what it is:\n * a `mandate_key` column the platform wrote (an agent app's own mandate, a\n * shortcut's, a stored binding row), a stored `mandate:` ref, a saved config.\n *\n * It TYPES and never rejects. The server is the authority on whether the key\n * exists — a key declared after this package version shipped is real there and\n * absent from this build's key set — so narrowing here would send such a key\n * through the wrong door. The server answers an unknown key with a 404 that\n * names it.\n *\n * Never use it on a key your code picks: that key belongs to\n * `MANDATE_KEYS.<id>`, and routing it through here hides a rename from the\n * compiler. For a value that must be PROVEN declared (a URL segment a person\n * could have edited), use `isMandateKey` / `assertMandateKey` instead.\n */\nexport function storedMandateKey(value: string): AnyMandateKey {\n return value as AnyMandateKey;\n}\n\nconst KEY_SET: ReadonlySet<string> = new Set<string>(ALL_MANDATE_KEYS);\n\n/**\n * Narrow an unknown string to a declared `MandateKey`.\n *\n * Use it on anything that crossed a wire — a URL segment, a stored preference,\n * a row's `mandate_key` column. It answers only for the key set THIS package\n * version ships; a key declared after this version was published is correctly\n * `false` here, which is the point of the per-version snapshots.\n */\nexport function isMandateKey(value: unknown): value is MandateKey {\n return typeof value === \"string\" && KEY_SET.has(value);\n}\n\n/**\n * Assert an unknown value is a declared `MandateKey`, or throw with a remedy.\n *\n * Nothing fails silently: the message names the value, the package version its\n * key set came from, and what to do — never a bare \"invalid key\".\n */\nexport function assertMandateKey(\n value: unknown,\n context?: string,\n): asserts value is MandateKey {\n if (isMandateKey(value)) return;\n const where = context ? ` at ${context}` : \"\";\n throw new Error(\n `${JSON.stringify(value)} is not a declared mandate key${where}. ` +\n `@ai-matrx/agents@${MANDATE_KEYS_META.packageVersion} ships ` +\n `${ALL_MANDATE_KEYS.length} keys (aidream ${MANDATE_KEYS_META.aidreamRevision.slice(0, 12)}). ` +\n \"If the key is real, this package is behind — take `latest` and re-check. \" +\n \"If it is a user-built app or shortcut, it is DB-authored: build it with \" +\n \"mandateKeyOfApp() / mandateKeyOfShortcut(), which return DynamicMandateKey.\",\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../mandates/keys.generated.ts","../../mandates/index.ts"],"sourcesContent":["/**\n * GENERATED — DO NOT EDIT. Regenerate with:\n * uv run python scripts/mandates_generate.py (aidream repo; --dry-run also writes this file)\n *\n * THE ONE GENERATOR (`aidream/scripts/mandates_generate.py`, stage (h)) emits this\n * from the IN-PROCESS mandate declarations — the same `declared_mandates()` the\n * boot sync writes to the database from. There is no hand list anywhere.\n *\n * aidream revision: ca7b341ea8078cb2cde45613f39ad6d7e78dbc05\n * generator version: 1.0.0\n * package version: 0.31.0\n * active keys: 544\n * retiring keys: 0\n *\n * THE IDENTIFIER RULE: every `.` in a key becomes `__`, any character outside\n * [A-Za-z0-9_] becomes `_`, a leading digit gets an `_` prefix. So\n * `seo.keyword_classifier` is `MANDATE_KEYS.seo__keyword_classifier`. Collisions are a\n * fatal generator error, never a silently dropped key.\n */\n\n/** Where this module came from — surfaced so a report can name the exact build. */\nexport const MANDATE_KEYS_META = {\n aidreamRevision: \"ca7b341ea8078cb2cde45613f39ad6d7e78dbc05\",\n generatorVersion: \"1.0.0\",\n packageVersion: \"0.31.0\",\n retireWindow: 3,\n} as const;\n\n/** Every declared mandate key, by THE IDENTIFIER RULE. */\nexport const MANDATE_KEYS = {\n agent_apps__auto_create: \"agent_apps.auto_create\",\n agent_apps__auto_create_lightning: \"agent_apps.auto_create_lightning\",\n agent_apps__metadata: \"agent_apps.metadata\",\n agent_apps__prompt_app_dev: \"agent_apps.prompt_app_dev\",\n agent_factory__structure_builder: \"agent_factory.structure_builder\",\n alchemy__prepare_content: \"alchemy.prepare_content\",\n ambient__page_guidance: \"ambient.page_guidance\",\n ambient__spoken_summary: \"ambient.spoken_summary\",\n audio__live_music: \"audio.live_music\",\n audio__speech: \"audio.speech\",\n brand__voice_rewrite: \"brand.voice_rewrite\",\n chat__cx_default: \"chat.cx_default\",\n chat__default_new_chat: \"chat.default_new_chat\",\n chat__quick_audio_plan: \"chat.quick_audio_plan\",\n chat__quick_fair_news: \"chat.quick_fair_news\",\n chat__quick_flashcards: \"chat.quick_flashcards\",\n chat__quick_image: \"chat.quick_image\",\n chat__quick_org_chart: \"chat.quick_org_chart\",\n chat__quick_research: \"chat.quick_research\",\n chat__quick_showcase: \"chat.quick_showcase\",\n chat__quick_writing_partner: \"chat.quick_writing_partner\",\n chat__response_mode_brainstorm: \"chat.response_mode_brainstorm\",\n chat__response_mode_data: \"chat.response_mode_data\",\n chat__response_mode_research: \"chat.response_mode_research\",\n chat__response_mode_video: \"chat.response_mode_video\",\n checks__cleanup_bakeoff__answer: \"checks.cleanup_bakeoff.answer\",\n checks__cleanup_bakeoff__judge: \"checks.cleanup_bakeoff.judge\",\n checks__finding_disposition: \"checks.finding_disposition\",\n checks__finding_disposition_review: \"checks.finding_disposition_review\",\n cms__content_writing: \"cms.content_writing\",\n cms__publish_review: \"cms.publish_review\",\n cms__seo_metadata: \"cms.seo_metadata\",\n cms__site_editing: \"cms.site_editing\",\n cms__theme_design: \"cms.theme_design\",\n code_editor__code_edit: \"code_editor.code_edit\",\n code_editor__dynamic_context_edit: \"code_editor.dynamic_context_edit\",\n code_editor__prompt_app_ui_edit: \"code_editor.prompt_app_ui_edit\",\n coding_session__conversation_responder: \"coding_session.conversation_responder\",\n coding_session__managed_translation_reference: \"coding_session.managed_translation_reference\",\n commerce_intake__assess_value: \"commerce_intake.assess_value\",\n commerce_intake__extract_vision: \"commerce_intake.extract_vision\",\n commerce_intake__grading: \"commerce_intake.grading\",\n commerce_intake__instant_analysis: \"commerce_intake.instant_analysis\",\n commerce_intake__refute_no_value: \"commerce_intake.refute_no_value\",\n commerce_intake__research_product: \"commerce_intake.research_product\",\n commerce_intake__segment_photos: \"commerce_intake.segment_photos\",\n commerce_intake__verify_enrichment: \"commerce_intake.verify_enrichment\",\n content_gate__section_relevance_decision: \"content_gate.section_relevance_decision\",\n content_ir__component_artisan: \"content_ir.component_artisan\",\n content_ir__kind_architect: \"content_ir.kind_architect\",\n content_ir__kind_component_builder: \"content_ir.kind_component_builder\",\n content_ir__kind_creator: \"content_ir.kind_creator\",\n content_plan__branch_purpose: \"content_plan.branch_purpose\",\n content_plan__brief_writer: \"content_plan.brief_writer\",\n content_plan__deepen_page: \"content_plan.deepen_page\",\n content_plan__entity_attacher: \"content_plan.entity_attacher\",\n content_plan__entity_curator: \"content_plan.entity_curator\",\n content_plan__family_namer: \"content_plan.family_namer\",\n content_plan__keyword_strategist: \"content_plan.keyword_strategist\",\n content_plan__merge_wave: \"content_plan.merge_wave\",\n content_plan__p3_family: \"content_plan.p3_family\",\n content_plan__p4_write: \"content_plan.p4_write\",\n content_plan__p5_review: \"content_plan.p5_review\",\n content_plan__p6_build: \"content_plan.p6_build\",\n content_plan__p6_build__about: \"content_plan.p6_build.about\",\n content_plan__p6_build__blog: \"content_plan.p6_build.blog\",\n content_plan__p6_build__comparison: \"content_plan.p6_build.comparison\",\n content_plan__p6_build__contact: \"content_plan.p6_build.contact\",\n content_plan__p6_build__faq: \"content_plan.p6_build.faq\",\n content_plan__p6_build__guide: \"content_plan.p6_build.guide\",\n content_plan__p6_build__home: \"content_plan.p6_build.home\",\n content_plan__p6_build__index: \"content_plan.p6_build.index\",\n content_plan__p6_build__location: \"content_plan.p6_build.location\",\n content_plan__p6_build__pillar: \"content_plan.p6_build.pillar\",\n content_plan__p6_build__pricing: \"content_plan.p6_build.pricing\",\n content_plan__p6_build__service: \"content_plan.p6_build.service\",\n content_plan__plan_reviewer: \"content_plan.plan_reviewer\",\n content_plan__research_wave__audience_journey: \"content_plan.research_wave.audience_journey\",\n content_plan__research_wave__competitor_coverage: \"content_plan.research_wave.competitor_coverage\",\n content_plan__research_wave__keyword_value: \"content_plan.research_wave.keyword_value\",\n content_plan__route_picker: \"content_plan.route_picker\",\n content_plan__shape_planner: \"content_plan.shape_planner\",\n conversation__action_auditor: \"conversation.action_auditor\",\n conversation__decision_ledger: \"conversation.decision_ledger\",\n conversation__drift_auditor: \"conversation.drift_auditor\",\n conversation__label_agent_run: \"conversation.label_agent_run\",\n conversation__label_chat: \"conversation.label_chat\",\n conversation__outcome_summarizer: \"conversation.outcome_summarizer\",\n conversation__vision_extractor: \"conversation.vision_extractor\",\n conversation__vision_interviewer: \"conversation.vision_interviewer\",\n crm__journalist_beat_analyst: \"crm.journalist_beat_analyst\",\n crm__media_list_ranker: \"crm.media_list_ranker\",\n crm__outreach_draft_reviewer: \"crm.outreach_draft_reviewer\",\n crm__outreach_fact_check: \"crm.outreach_fact_check\",\n crm__outreach_personalization_coach: \"crm.outreach_personalization_coach\",\n crm__outreach_personalization_writer: \"crm.outreach_personalization_writer\",\n crm__outreach_pitch_writer: \"crm.outreach_pitch_writer\",\n crm__outreach_recipient_shortlister: \"crm.outreach_recipient_shortlister\",\n crm__outreach_reply_drafter: \"crm.outreach_reply_drafter\",\n crm__outreach_strategy: \"crm.outreach_strategy\",\n crm__party_kind_judge: \"crm.party_kind_judge\",\n crm__save_contact: \"crm.save_contact\",\n data__formula_writing: \"data.formula_writing\",\n data__page_guidance: \"data.page_guidance\",\n data__row_action: \"data.row_action\",\n dictionary__workspace_guide: \"dictionary.workspace_guide\",\n distillation__timeline_distiller: \"distillation.timeline_distiller\",\n distillation__timeline_unfolder: \"distillation.timeline_unfolder\",\n docproc__content_structure: \"docproc.content_structure\",\n education__admin_guidance: \"education.admin_guidance\",\n education__analytics_narrate: \"education.analytics_narrate\",\n education__audio_study_guidance: \"education.audio_study_guidance\",\n education__card_image_generator: \"education.card_image_generator\",\n education__card_image_prompt_writer: \"education.card_image_prompt_writer\",\n education__card_image_qc_judge: \"education.card_image_qc_judge\",\n education__card_image_web_source: \"education.card_image_web_source\",\n education__classes_guidance: \"education.classes_guidance\",\n education__creator_guidance: \"education.creator_guidance\",\n education__data_guidance: \"education.data_guidance\",\n education__exam_prep_guidance: \"education.exam_prep_guidance\",\n education__family_guidance: \"education.family_guidance\",\n education__fastfire_guidance: \"education.fastfire_guidance\",\n education__features_guidance: \"education.features_guidance\",\n education__flashcards_guidance: \"education.flashcards_guidance\",\n education__game_guidance: \"education.game_guidance\",\n education__grade_handwritten: \"education.grade_handwritten\",\n education__grade_work_guidance: \"education.grade_work_guidance\",\n education__kit_title: \"education.kit_title\",\n education__learn_guidance: \"education.learn_guidance\",\n education__levels_guidance: \"education.levels_guidance\",\n education__library_guidance: \"education.library_guidance\",\n education__media_guidance: \"education.media_guidance\",\n education__memory_generate: \"education.memory_generate\",\n education__memory_guidance: \"education.memory_guidance\",\n education__memory_hint: \"education.memory_hint\",\n education__mind_maps_guidance: \"education.mind_maps_guidance\",\n education__mindmap_generate: \"education.mindmap_generate\",\n education__notes_generate: \"education.notes_generate\",\n education__notes_guidance: \"education.notes_guidance\",\n education__offline_guidance: \"education.offline_guidance\",\n education__page_guidance: \"education.page_guidance\",\n education__plan_generate: \"education.plan_generate\",\n education__planner_guidance: \"education.planner_guidance\",\n education__practice_oral_guidance: \"education.practice_oral_guidance\",\n education__practice_tests_guidance: \"education.practice_tests_guidance\",\n education__progress_guidance: \"education.progress_guidance\",\n education__quiz_deepen_item: \"education.quiz_deepen_item\",\n education__quiz_generate: \"education.quiz_generate\",\n education__quiz_generate_from_source: \"education.quiz_generate_from_source\",\n education__quizzes_guidance: \"education.quizzes_guidance\",\n education__spoken_practice_design: \"education.spoken_practice_design\",\n education__spoken_practice_design_language: \"education.spoken_practice_design_language\",\n education__spoken_practice_grade: \"education.spoken_practice_grade\",\n education__spoken_practice_grade_pronunciation: \"education.spoken_practice_grade_pronunciation\",\n education__spoken_practice_review: \"education.spoken_practice_review\",\n education__start_guidance: \"education.start_guidance\",\n education__study_aids_guidance: \"education.study_aids_guidance\",\n education__study_pack_flashcards: \"education.study_pack_flashcards\",\n education__study_pack_lessons: \"education.study_pack_lessons\",\n education__study_pack_notes: \"education.study_pack_notes\",\n education__study_pack_quiz: \"education.study_pack_quiz\",\n education__study_pack_v2_flashcards: \"education.study_pack_v2_flashcards\",\n education__study_pack_v2_lessons: \"education.study_pack_v2_lessons\",\n education__study_pack_v2_notes: \"education.study_pack_v2_notes\",\n education__study_pack_v2_quiz: \"education.study_pack_v2_quiz\",\n education__subjects_guidance: \"education.subjects_guidance\",\n education__summaries_guidance: \"education.summaries_guidance\",\n education__summarize: \"education.summarize\",\n education__tutor_guidance: \"education.tutor_guidance\",\n education__tutor_message: \"education.tutor_message\",\n education__voice_tutor: \"education.voice_tutor\",\n evaluators__comparative_judge: \"evaluators.comparative_judge\",\n evaluators__rubric_judge: \"evaluators.rubric_judge\",\n extend__browser_chat: \"extend.browser_chat\",\n extend__pattern_from_data: \"extend.pattern_from_data\",\n extend__structured_extractor: \"extend.structured_extractor\",\n feedback__item_triage_decision: \"feedback.item_triage_decision\",\n flashcards__enrich_card: \"flashcards.enrich_card\",\n flashcards__expand_card: \"flashcards.expand_card\",\n flashcards__fix_giveaway_cards: \"flashcards.fix_giveaway_cards\",\n flashcards__generate_cards: \"flashcards.generate_cards\",\n flashcards__generate_from_source: \"flashcards.generate_from_source\",\n flashcards__grade_spoken: \"flashcards.grade_spoken\",\n flashcards__grade_typed_answer: \"flashcards.grade_typed_answer\",\n flashcards__help_live: \"flashcards.help_live\",\n flashcards__helper_tts: \"flashcards.helper_tts\",\n flashcards__make_quiz_items: \"flashcards.make_quiz_items\",\n flashcards__micro_coach: \"flashcards.micro_coach\",\n flashcards__review_batch: \"flashcards.review_batch\",\n flashcards__spoken_front_tts: \"flashcards.spoken_front_tts\",\n flashcards__verify_against_source: \"flashcards.verify_against_source\",\n foundry__planner: \"foundry.planner\",\n google__channel_video_plan: \"google.channel_video_plan\",\n google__desk_work: \"google.desk_work\",\n google__traffic_change_explanation: \"google.traffic_change_explanation\",\n growth_loop__quality_analyze: \"growth_loop.quality_analyze\",\n growth_loop__quality_brief: \"growth_loop.quality_brief\",\n growth_loop__quality_crawl: \"growth_loop.quality_crawl\",\n growth_loop__quality_fill: \"growth_loop.quality_fill\",\n growth_loop__quality_measure: \"growth_loop.quality_measure\",\n growth_loop__quality_plan: \"growth_loop.quality_plan\",\n growth_loop__quality_publish: \"growth_loop.quality_publish\",\n growth_loop__quality_realize: \"growth_loop.quality_realize\",\n growth_loop__quality_research: \"growth_loop.quality_research\",\n growth_loop__quality_serve: \"growth_loop.quality_serve\",\n growth_loop__quality_suggest: \"growth_loop.quality_suggest\",\n growth_loop__quality_writeback: \"growth_loop.quality_writeback\",\n growth_loop__supervisor: \"growth_loop.supervisor\",\n hindsight__crystallizer: \"hindsight.crystallizer\",\n hindsight__replay_judge: \"hindsight.replay_judge\",\n hindsight__reviewer: \"hindsight.reviewer\",\n human_decisions__fallback_decider: \"human_decisions.fallback_decider\",\n image__generate: \"image.generate\",\n image_pipeline__concept: \"image_pipeline.concept\",\n image_pipeline__prompt_write: \"image_pipeline.prompt_write\",\n image_pipeline__qc_judge: \"image_pipeline.qc_judge\",\n iteration__architect: \"iteration.architect\",\n iteration__diagnostic: \"iteration.diagnostic\",\n iteration__root_cause: \"iteration.root_cause\",\n iteration__thinking_display: \"iteration.thinking_display\",\n kg__cluster_namer: \"kg.cluster_namer\",\n kg__ner_extractor: \"kg.ner_extractor\",\n knowledge__document_verifier: \"knowledge.document_verifier\",\n knowledge__qa_generator: \"knowledge.qa_generator\",\n knowledge__section_summarizer: \"knowledge.section_summarizer\",\n local__answer_question: \"local.answer_question\",\n local__chat_persona_brainstorm: \"local.chat_persona_brainstorm\",\n local__chat_persona_code_review: \"local.chat_persona_code_review\",\n local__chat_persona_explain_simply: \"local.chat_persona_explain_simply\",\n local__chat_persona_helpful: \"local.chat_persona_helpful\",\n local__chat_persona_spoken_replies: \"local.chat_persona_spoken_replies\",\n local__chat_persona_summarize: \"local.chat_persona_summarize\",\n local__chat_persona_transcript_polish: \"local.chat_persona_transcript_polish\",\n local__cloud_chat: \"local.cloud_chat\",\n local__cloud_chat_reply: \"local.cloud_chat_reply\",\n local__confidential_chat: \"local.confidential_chat\",\n local__explain_code: \"local.explain_code\",\n local__extract_action_items: \"local.extract_action_items\",\n local__improve_writing: \"local.improve_writing\",\n local__polish_style_action_items: \"local.polish_style_action_items\",\n local__polish_style_bullets: \"local.polish_style_bullets\",\n local__polish_style_custom: \"local.polish_style_custom\",\n local__polish_style_formal: \"local.polish_style_formal\",\n local__polish_style_light_cleanup: \"local.polish_style_light_cleanup\",\n local__polish_style_meeting_notes: \"local.polish_style_meeting_notes\",\n local__polish_style_standard: \"local.polish_style_standard\",\n local__polish_transcript: \"local.polish_transcript\",\n local__raw_completion: \"local.raw_completion\",\n local__summarize_text: \"local.summarize_text\",\n local__tool_calling_chat: \"local.tool_calling_chat\",\n mandate_outcome__goal_clause_extraction: \"mandate_outcome.goal_clause_extraction\",\n mandate_outcome__goal_fitness_decision: \"mandate_outcome.goal_fitness_decision\",\n mandates__holder_draft: \"mandates.holder_draft\",\n marketing__endowment_analysis: \"marketing.endowment_analysis\",\n marketing__endowment_portfolio: \"marketing.endowment_portfolio\",\n marketing__image_prompt: \"marketing.image_prompt\",\n marketing__page_image: \"marketing.page_image\",\n marketing__page_image_all_in_one: \"marketing.page_image_all_in_one\",\n marketing__video_metadata: \"marketing.video_metadata\",\n masterwork__approach_selector: \"masterwork.approach_selector\",\n masterwork__audition_judge: \"masterwork.audition_judge\",\n masterwork__bad_draft: \"masterwork.bad_draft\",\n masterwork__bad_example_probe: \"masterwork.bad_example_probe\",\n masterwork__case_oracle: \"masterwork.case_oracle\",\n masterwork__checkup_auditor: \"masterwork.checkup_auditor\",\n masterwork__coherence_partner: \"masterwork.coherence_partner\",\n masterwork__conductor: \"masterwork.conductor\",\n masterwork__corpus_cleaner: \"masterwork.corpus_cleaner\",\n masterwork__corpus_synthesizer: \"masterwork.corpus_synthesizer\",\n masterwork__counterparty: \"masterwork.counterparty\",\n masterwork__critique_distiller: \"masterwork.critique_distiller\",\n masterwork__draft_triage: \"masterwork.draft_triage\",\n masterwork__drip_distiller: \"masterwork.drip_distiller\",\n masterwork__drip_question: \"masterwork.drip_question\",\n masterwork__elicitation_judge: \"masterwork.elicitation_judge\",\n masterwork__exception_hunter: \"masterwork.exception_hunter\",\n masterwork__exemplar_distiller: \"masterwork.exemplar_distiller\",\n masterwork__faithfulness_judge: \"masterwork.faithfulness_judge\",\n masterwork__intake_designer: \"masterwork.intake_designer\",\n masterwork__markup_distiller: \"masterwork.markup_distiller\",\n masterwork__meeting_scavenger: \"masterwork.meeting_scavenger\",\n masterwork__monologue_distiller: \"masterwork.monologue_distiller\",\n masterwork__outcome_judge: \"masterwork.outcome_judge\",\n masterwork__pairwise_judge: \"masterwork.pairwise_judge\",\n masterwork__prediction_boundary: \"masterwork.prediction_boundary\",\n masterwork__prediction_distiller: \"masterwork.prediction_distiller\",\n masterwork__relationship_auditor: \"masterwork.relationship_auditor\",\n masterwork__rule_improver: \"masterwork.rule_improver\",\n masterwork__rulebook_auditor: \"masterwork.rulebook_auditor\",\n masterwork__scout: \"masterwork.scout\",\n masterwork__sealed_case_oracle: \"masterwork.sealed_case_oracle\",\n masterwork__sort_case_writer: \"masterwork.sort_case_writer\",\n masterwork__sort_distiller: \"masterwork.sort_distiller\",\n masterwork__source_distiller: \"masterwork.source_distiller\",\n masterwork__teach_back_distiller: \"masterwork.teach_back_distiller\",\n masterwork__teach_back_explainer: \"masterwork.teach_back_explainer\",\n masterwork__template__chief_edit: \"masterwork.template.chief_edit\",\n masterwork__template__chief_generate: \"masterwork.template.chief_generate\",\n masterwork__template__editor: \"masterwork.template.editor\",\n masterwork__template__maker: \"masterwork.template.maker\",\n masterwork__timeline_distiller: \"masterwork.timeline_distiller\",\n masterwork__timeline_segmenter: \"masterwork.timeline_segmenter\",\n masterwork__transcript_distiller: \"masterwork.transcript_distiller\",\n masterwork__transcript_shortlister: \"masterwork.transcript_shortlister\",\n masterwork__triad_distiller: \"masterwork.triad_distiller\",\n masterwork__triad_generator: \"masterwork.triad_generator\",\n masterwork__understudy: \"masterwork.understudy\",\n masterwork__unfolding_judge: \"masterwork.unfolding_judge\",\n masterworks__bench__a2_loop: \"masterworks.bench.a2_loop\",\n masterworks__bench__calibration_decoy: \"masterworks.bench.calibration_decoy\",\n masterworks__bench__consensus: \"masterworks.bench.consensus\",\n masterworks__bench__extract: \"masterworks.bench.extract\",\n masterworks__bench__judge: \"masterworks.bench.judge\",\n masterworks__bench__panel: \"masterworks.bench.panel\",\n masterworks__bench__raw_arm: \"masterworks.bench.raw_arm\",\n masterworks__vanilla_arm__answer_from_facts: \"masterworks.vanilla_arm.answer_from_facts\",\n masterworks__vanilla_arm__best_work: \"masterworks.vanilla_arm.best_work\",\n masterworks__vanilla_arm__outcome_case: \"masterworks.vanilla_arm.outcome_case\",\n masterworks__vanilla_arm__professional_help: \"masterworks.vanilla_arm.professional_help\",\n media__youtube_analyzer: \"media.youtube_analyzer\",\n media_catalog__item_vetting_decision: \"media_catalog.item_vetting_decision\",\n meet__agenda_draft: \"meet.agenda_draft\",\n meet__live_intelligence: \"meet.live_intelligence\",\n meet__live_notes: \"meet.live_notes\",\n meet__pre_meeting_brief: \"meet.pre_meeting_brief\",\n meet__transcription: \"meet.transcription\",\n meet__wrap_up: \"meet.wrap_up\",\n memory__observer: \"memory.observer\",\n memory__reflector: \"memory.reflector\",\n mermaid__diagram_editing: \"mermaid.diagram_editing\",\n messaging__action_item_extraction: \"messaging.action_item_extraction\",\n messaging__conversation_catch_up: \"messaging.conversation_catch_up\",\n messaging__conversation_summary: \"messaging.conversation_summary\",\n messaging__reply_drafting: \"messaging.reply_drafting\",\n ner__deep_chunk_extractor: \"ner.deep_chunk_extractor\",\n ner__document_orienter: \"ner.document_orienter\",\n ner__entity_canonicalizer: \"ner.entity_canonicalizer\",\n ner__finisher: \"ner.finisher\",\n ner__item_proposer: \"ner.item_proposer\",\n ner__magic_moment_detector: \"ner.magic_moment_detector\",\n ner__scope_proposer: \"ner.scope_proposer\",\n ner__scope_slot_filler: \"ner.scope_slot_filler\",\n ner__suggestion_reviewer: \"ner.suggestion_reviewer\",\n ner__sweep_scope_discoverer: \"ner.sweep_scope_discoverer\",\n ner__sweep_scope_reference_finder: \"ner.sweep_scope_reference_finder\",\n ner__sweep_value_miner: \"ner.sweep_value_miner\",\n news__angles: \"news.angles\",\n news__coarse_relevance: \"news.coarse_relevance\",\n news__monitor_setup_proposer: \"news.monitor_setup_proposer\",\n news__report: \"news.report\",\n news__story_origin: \"news.story_origin\",\n news__triage: \"news.triage\",\n notes__organizer: \"notes.organizer\",\n notes__page_guidance: \"notes.page_guidance\",\n observability__tool_trace_pattern_detection: \"observability.tool_trace_pattern_detection\",\n observability__tool_trace_triage: \"observability.tool_trace_triage\",\n orchestras__role_describer: \"orchestras.role_describer\",\n orchestration__tool_failure_standoff_decision: \"orchestration.tool_failure_standoff_decision\",\n pdf__chunk_clean_ocr_text: \"pdf.chunk_clean_ocr_text\",\n pdf__chunk_flashcards_json: \"pdf.chunk_flashcards_json\",\n pdf__chunk_flashcards_typescript: \"pdf.chunk_flashcards_typescript\",\n pdf__content_cleaner: \"pdf.content_cleaner\",\n personal_staff__escalation: \"personal_staff.escalation\",\n personal_staff__front_line: \"personal_staff.front_line\",\n podcast__audience_adapter: \"podcast.audience_adapter\",\n podcast__audio_dialogue: \"podcast.audio_dialogue\",\n podcast__audio_english: \"podcast.audio_english\",\n podcast__audio_persian: \"podcast.audio_persian\",\n podcast__chapter_marker: \"podcast.chapter_marker\",\n podcast__content_extractor: \"podcast.content_extractor\",\n podcast__deep_research: \"podcast.deep_research\",\n podcast__image_v1: \"podcast.image_v1\",\n podcast__image_v2: \"podcast.image_v2\",\n podcast__image_v3: \"podcast.image_v3\",\n podcast__image_v4: \"podcast.image_v4\",\n podcast__image_v5: \"podcast.image_v5\",\n podcast__image_v6_feature: \"podcast.image_v6_feature\",\n podcast__image_v6_feature_prompt: \"podcast.image_v6_feature_prompt\",\n podcast__live_rewrite: \"podcast.live_rewrite\",\n podcast__metadata: \"podcast.metadata\",\n podcast__multihost_script: \"podcast.multihost_script\",\n podcast__post_prep_expansion: \"podcast.post_prep_expansion\",\n podcast__post_prep_fact_checking: \"podcast.post_prep_fact_checking\",\n podcast__post_prep_summarization: \"podcast.post_prep_summarization\",\n podcast__post_prep_translation: \"podcast.post_prep_translation\",\n podcast__race_frontier: \"podcast.race_frontier\",\n podcast__relevance_gate: \"podcast.relevance_gate\",\n podcast__roundtable_script: \"podcast.roundtable_script\",\n podcast__script_educational: \"podcast.script_educational\",\n podcast__script_news: \"podcast.script_news\",\n podcast__script_persian: \"podcast.script_persian\",\n podcast__solo_script: \"podcast.solo_script\",\n podcast__title_optimizer: \"podcast.title_optimizer\",\n podcast__video_v1: \"podcast.video_v1\",\n podcast__video_v2: \"podcast.video_v2\",\n podcast_client__blog_writer: \"podcast_client.blog_writer\",\n podcast_client__show_notes: \"podcast_client.show_notes\",\n podcast_client__topic_ideas: \"podcast_client.topic_ideas\",\n podcast_client__web_content_extractor: \"podcast_client.web_content_extractor\",\n podcast_client__youtube_research: \"podcast_client.youtube_research\",\n product_capture__instant_analysis: \"product_capture.instant_analysis\",\n projects__creation_guide: \"projects.creation_guide\",\n proof_runs__judge: \"proof_runs.judge\",\n purpose__writer: \"purpose.writer\",\n rag__chunk_contextualizer: \"rag.chunk_contextualizer\",\n rag__grounded_synthesis: \"rag.grounded_synthesis\",\n rag__grounding_claim_extract: \"rag.grounding_claim_extract\",\n rag__grounding_judge: \"rag.grounding_judge\",\n rag__hyde_generator: \"rag.hyde_generator\",\n rag__image_caption: \"rag.image_caption\",\n rag__pdf_page_cleaner: \"rag.pdf_page_cleaner\",\n rag__query_expander: \"rag.query_expander\",\n rag_kinds__grounded_synthesis: \"rag_kinds.grounded_synthesis\",\n records__enrichment: \"records.enrichment\",\n research__auto_tagger: \"research.auto_tagger\",\n research__condenser_1: \"research.condenser_1\",\n research__condenser_2: \"research.condenser_2\",\n research__coverage_audit: \"research.coverage_audit\",\n research__cross_cutting_tags: \"research.cross_cutting_tags\",\n research__document_assembly: \"research.document_assembly\",\n research__keyword_synthesis: \"research.keyword_synthesis\",\n research__report: \"research.report\",\n research__report_updater: \"research.report_updater\",\n research__source_authority: \"research.source_authority\",\n research__source_triage_decision: \"research.source_triage_decision\",\n research__structured_page_summary: \"research.structured_page_summary\",\n research__suggest_setup: \"research.suggest_setup\",\n research__tag_consolidation: \"research.tag_consolidation\",\n research__topic_deep_research: \"research.topic_deep_research\",\n research_client__output_blog: \"research_client.output_blog\",\n research_client__output_brand_profile: \"research_client.output_brand_profile\",\n research_client__output_competitive_landscape: \"research_client.output_competitive_landscape\",\n research_client__output_gap_analysis: \"research_client.output_gap_analysis\",\n research_client__output_literature_review: \"research_client.output_literature_review\",\n research_client__output_reputation_business: \"research_client.output_reputation_business\",\n research_client__output_reputation_personal: \"research_client.output_reputation_personal\",\n research_client__output_seo: \"research_client.output_seo\",\n research_client__output_slides: \"research_client.output_slides\",\n scraper__fact_check: \"scraper.fact_check\",\n scraper__keyword_analysis: \"scraper.keyword_analysis\",\n scraper__page_fetch_verdict: \"scraper.page_fetch_verdict\",\n seo__ai_visibility_blind_question_writer: \"seo.ai_visibility_blind_question_writer\",\n seo__ai_visibility_buyer_jobs: \"seo.ai_visibility_buyer_jobs\",\n seo__ai_visibility_decision_analyst: \"seo.ai_visibility_decision_analyst\",\n seo__ai_visibility_evidence_icp: \"seo.ai_visibility_evidence_icp\",\n seo__ai_visibility_panel_designer: \"seo.ai_visibility_panel_designer\",\n seo__ai_visibility_panel_report: \"seo.ai_visibility_panel_report\",\n seo__ai_visibility_question_architect: \"seo.ai_visibility_question_architect\",\n seo__ai_visibility_question_qa: \"seo.ai_visibility_question_qa\",\n seo__ai_visibility_writing_audit: \"seo.ai_visibility_writing_audit\",\n seo__backlink_analysis: \"seo.backlink_analysis\",\n seo__backlink_context_assessor: \"seo.backlink_context_assessor\",\n seo__backlink_work_planner: \"seo.backlink_work_planner\",\n seo__business_model_verdict: \"seo.business_model_verdict\",\n seo__competitor_classifier: \"seo.competitor_classifier\",\n seo__competitor_opportunity_autopsy: \"seo.competitor_opportunity_autopsy\",\n seo__competitor_page_autopsy: \"seo.competitor_page_autopsy\",\n seo__coverage_analyst: \"seo.coverage_analyst\",\n seo__digital_pr_reputation_adjudicator: \"seo.digital_pr_reputation_adjudicator\",\n seo__evidence_workbench: \"seo.evidence_workbench\",\n seo__finding_fixer: \"seo.finding_fixer\",\n seo__guidelines_drafter: \"seo.guidelines_drafter\",\n seo__ideal_customer_profile: \"seo.ideal_customer_profile\",\n seo__keyword_classifier: \"seo.keyword_classifier\",\n seo__keyword_expander: \"seo.keyword_expander\",\n seo__keyword_researcher: \"seo.keyword_researcher\",\n seo__keyword_serp_intent_analyst: \"seo.keyword_serp_intent_analyst\",\n seo__landscape_brief: \"seo.landscape_brief\",\n seo__map_author: \"seo.map_author\",\n seo__map_curation: \"seo.map_curation\",\n seo__money_map: \"seo.money_map\",\n seo__offering_extraction: \"seo.offering_extraction\",\n seo__offering_valuation: \"seo.offering_valuation\",\n seo__page_analyzer: \"seo.page_analyzer\",\n seo__page_intent_proposer: \"seo.page_intent_proposer\",\n seo__page_keyword_mapper: \"seo.page_keyword_mapper\",\n seo__page_mapper: \"seo.page_mapper\",\n seo__press_calendar_planner: \"seo.press_calendar_planner\",\n seo__press_clip_reviewer: \"seo.press_clip_reviewer\",\n seo__press_headlines: \"seo.press_headlines\",\n seo__press_moment_researcher: \"seo.press_moment_researcher\",\n seo__press_newsworthiness_check: \"seo.press_newsworthiness_check\",\n seo__press_source_request_responder: \"seo.press_source_request_responder\",\n seo__press_story_analyst: \"seo.press_story_analyst\",\n seo__press_strategist: \"seo.press_strategist\",\n seo__reputation_crisis_holding: \"seo.reputation_crisis_holding\",\n seo__session_rule_writer: \"seo.session_rule_writer\",\n seo__session_stamp_proposer: \"seo.session_stamp_proposer\",\n seo__site_intake: \"seo.site_intake\",\n seo__site_link_authority_router: \"seo.site_link_authority_router\",\n seo__site_strategist: \"seo.site_strategist\",\n seo__starter_pack_proposer: \"seo.starter_pack_proposer\",\n seo__strategy__site_brief__generate: \"seo.strategy.site_brief.generate\",\n seo__topic_assigner: \"seo.topic_assigner\",\n seo__topic_curation: \"seo.topic_curation\",\n sms__owner_beta: \"sms.owner_beta\",\n surfaces_client__binding_mapper: \"surfaces_client.binding_mapper\",\n tasks__triage: \"tasks.triage\",\n tool_viz__component_generator: \"tool_viz.component_generator\",\n tools__summarize_content: \"tools.summarize_content\",\n transcript_studio__document_edit: \"transcript_studio.document_edit\",\n transcript_studio__scribe_live: \"transcript_studio.scribe_live\",\n transcripts__clean_with_context: \"transcripts.clean_with_context\",\n transcripts__clean_with_context_variable: \"transcripts.clean_with_context_variable\",\n transcripts__clean_without_context: \"transcripts.clean_without_context\",\n vision_interview__adversary: \"vision_interview.adversary\",\n vision_interview__amplifier: \"vision_interview.amplifier\",\n vision_interview__answer_tracker: \"vision_interview.answer_tracker\",\n vision_interview__archaeologist: \"vision_interview.archaeologist\",\n vision_interview__architect: \"vision_interview.architect\",\n vision_interview__cartographer: \"vision_interview.cartographer\",\n vision_interview__requirements_author: \"vision_interview.requirements_author\",\n vision_interview__scribe: \"vision_interview.scribe\",\n vision_interview__sounding_board: \"vision_interview.sounding_board\",\n vision_interview__transcript_cleaner: \"vision_interview.transcript_cleaner\",\n vision_interview__vision_author: \"vision_interview.vision_author\",\n voice__communicator: \"voice.communicator\",\n voice__gemini_live: \"voice.gemini_live\",\n voice__intro: \"voice.intro\",\n voice__owner_beta: \"voice.owner_beta\",\n war_room__master: \"war_room.master\",\n war_room__room: \"war_room.room\",\n war_room__thread: \"war_room.thread\",\n web__endpoint_family_judge: \"web.endpoint_family_judge\",\n workflow__complex_research__keyword_synthesis: \"workflow.complex_research.keyword_synthesis\",\n workflow__complex_research__page_summary: \"workflow.complex_research.page_summary\",\n workflow__complex_research__report: \"workflow.complex_research.report\",\n workflow__conductor: \"workflow.conductor\",\n workflow__deep_research__keyword_synthesis: \"workflow.deep_research.keyword_synthesis\",\n workflow__extract_namer: \"workflow.extract_namer\",\n workflow__plan_design: \"workflow.plan_design\",\n workflow__plan_input_kind_authoring: \"workflow.plan_input_kind_authoring\",\n workflow__plan_node_type_recommender: \"workflow.plan_node_type_recommender\",\n workflow__plan_notes_writer: \"workflow.plan_notes_writer\",\n workflow__plan_output_kind_authoring: \"workflow.plan_output_kind_authoring\",\n workflow__recovery_advisor: \"workflow.recovery_advisor\",\n workflow__run_assist_suggester: \"workflow.run_assist_suggester\",\n workflow__step_intelligence: \"workflow.step_intelligence\",\n workflow__steward: \"workflow.steward\",\n workflow__steward__agent_run: \"workflow.steward.agent_run\",\n workflow__steward__data: \"workflow.steward.data\",\n workflow__steward__decision: \"workflow.steward.decision\",\n workflow__steward__user_input: \"workflow.steward.user_input\",\n workflow__wizard__agent_run: \"workflow.wizard.agent_run\",\n} as const;\n\n/** Every key this package version accepts — active plus retiring. */\nexport type MandateKey = (typeof MANDATE_KEYS)[keyof typeof MANDATE_KEYS];\n\n/** The key set as a runtime array, in generated order. */\nexport const ALL_MANDATE_KEYS: readonly MandateKey[] = Object.values(MANDATE_KEYS) as readonly MandateKey[];\n\n/** Keys still in the union but no longer declared (two-phase retire, phase 1). */\nexport const RETIRING_MANDATE_KEYS = {\n} as const;\n\n/**\n * Declared FAMILIES — a prefix the feature's own roster owns, and its members.\n * Emitted from `declared_families()` (aidream `services/mandates/carriers.py`).\n */\nexport const MANDATE_FAMILIES = {\n \"ambient.page_guidance_overrides\": [\n \"data.page_guidance\",\n \"education.admin_guidance\",\n \"education.audio_study_guidance\",\n \"education.classes_guidance\",\n \"education.creator_guidance\",\n \"education.data_guidance\",\n \"education.exam_prep_guidance\",\n \"education.family_guidance\",\n \"education.fastfire_guidance\",\n \"education.features_guidance\",\n \"education.flashcards_guidance\",\n \"education.game_guidance\",\n \"education.grade_work_guidance\",\n \"education.learn_guidance\",\n \"education.levels_guidance\",\n \"education.library_guidance\",\n \"education.media_guidance\",\n \"education.memory_guidance\",\n \"education.mind_maps_guidance\",\n \"education.notes_guidance\",\n \"education.offline_guidance\",\n \"education.page_guidance\",\n \"education.planner_guidance\",\n \"education.practice_oral_guidance\",\n \"education.practice_tests_guidance\",\n \"education.progress_guidance\",\n \"education.quizzes_guidance\",\n \"education.start_guidance\",\n \"education.study_aids_guidance\",\n \"education.subjects_guidance\",\n \"education.summaries_guidance\",\n \"education.tutor_guidance\",\n \"notes.page_guidance\",\n ],\n \"checks.cleanup_bakeoff\": [\n \"checks.cleanup_bakeoff.answer\",\n \"checks.cleanup_bakeoff.judge\",\n ],\n \"content_plan.p6_build\": [\n \"content_plan.p6_build.about\",\n \"content_plan.p6_build.blog\",\n \"content_plan.p6_build.comparison\",\n \"content_plan.p6_build.contact\",\n \"content_plan.p6_build.faq\",\n \"content_plan.p6_build.guide\",\n \"content_plan.p6_build.home\",\n \"content_plan.p6_build.index\",\n \"content_plan.p6_build.location\",\n \"content_plan.p6_build.pillar\",\n \"content_plan.p6_build.pricing\",\n \"content_plan.p6_build.service\",\n ],\n \"content_plan.research_wave\": [\n \"content_plan.research_wave.audience_journey\",\n \"content_plan.research_wave.competitor_coverage\",\n \"content_plan.research_wave.keyword_value\",\n ],\n \"conversation\": [\n \"conversation.action_auditor\",\n \"conversation.decision_ledger\",\n \"conversation.drift_auditor\",\n \"conversation.outcome_summarizer\",\n \"conversation.vision_extractor\",\n \"conversation.vision_interviewer\",\n ],\n \"masterworks.bench\": [\n \"masterworks.bench.a2_loop\",\n \"masterworks.bench.calibration_decoy\",\n \"masterworks.bench.consensus\",\n \"masterworks.bench.extract\",\n \"masterworks.bench.judge\",\n \"masterworks.bench.panel\",\n \"masterworks.bench.raw_arm\",\n ],\n \"masterworks.vanilla_arm\": [\n \"masterworks.vanilla_arm.answer_from_facts\",\n \"masterworks.vanilla_arm.best_work\",\n \"masterworks.vanilla_arm.outcome_case\",\n \"masterworks.vanilla_arm.professional_help\",\n ],\n \"vision_interview\": [\n \"vision_interview.adversary\",\n \"vision_interview.amplifier\",\n \"vision_interview.answer_tracker\",\n \"vision_interview.archaeologist\",\n \"vision_interview.architect\",\n \"vision_interview.cartographer\",\n \"vision_interview.requirements_author\",\n \"vision_interview.scribe\",\n \"vision_interview.sounding_board\",\n \"vision_interview.transcript_cleaner\",\n \"vision_interview.vision_author\",\n ],\n} as const;\n\nexport type MandateFamilyPrefix = keyof typeof MANDATE_FAMILIES;\n\n/** Members of a declared family, typed as real keys. */\nexport type MandateFamilyMember<P extends MandateFamilyPrefix> =\n (typeof MANDATE_FAMILIES)[P][number];\n\n/**\n * THE DYNAMIC FAMILIES — DB-authored (`mandate.definition` origin='user'). No\n * generated union can contain them, so their accessors return a BRANDED\n * `DynamicMandateKey`, deliberately NOT assignable to `MandateKey`: a carrier that\n * demands a declared key still refuses one, and a carrier that accepts either\n * says so in its own signature (`MandateKey | DynamicMandateKey`).\n */\ndeclare const dynamicMandateKeyBrand: unique symbol;\n\nexport type DynamicMandateKey = string & {\n readonly [dynamicMandateKeyBrand]: true;\n};\n\nexport const DYNAMIC_MANDATE_FAMILIES = {\n \"app\": { prefix: \"app\", note: \"One mandate per user-built app (`mandate.definition` origin='user').\" },\n \"shortcut\": { prefix: \"shortcut\", note: \"One mandate per user-authored shortcut (origin='user').\" },\n} as const;\n\nexport type DynamicMandateFamilyPrefix = keyof typeof DYNAMIC_MANDATE_FAMILIES;\n\nconst DYNAMIC_SLUG = /^[a-z0-9]+(?:_[a-z0-9]+)*$/;\n\nfunction dynamicKey(\n prefix: DynamicMandateFamilyPrefix,\n ...slugs: readonly (string | undefined)[]\n): DynamicMandateKey {\n const parts = slugs.filter((slug): slug is string => slug !== undefined);\n if (parts.length === 0) {\n throw new Error(\n `mandate family \"${prefix}\" needs at least a member slug — it was given none.`,\n );\n }\n for (const slug of parts) {\n if (!DYNAMIC_SLUG.test(slug)) {\n throw new Error(\n `mandate family \"${prefix}\" cannot name a member from ` +\n `${JSON.stringify(slug)}: a segment is lowercase words joined by single ` +\n \"underscores. Pass the slug the row carries, never a display name.\",\n );\n }\n }\n return [prefix, ...parts].join(\".\") as DynamicMandateKey;\n}\n\n/**\n * The mandate key of a user-built app. DB-authored — never a declared key.\n * `surfaceSlug` names the per-surface row a few apps carry\n * (`app.<app>.<surface>`); omit it for the app's own mandate.\n */\nexport function mandateKeyOfApp(\n appSlug: string,\n surfaceSlug?: string,\n): DynamicMandateKey {\n return dynamicKey(\"app\", appSlug, surfaceSlug);\n}\n\n/**\n * The mandate key of a user-authored shortcut. DB-authored. `surfaceSlug` names\n * the per-surface row (`shortcut.<shortcut>.<surface>`), which is how most live\n * shortcut rows are keyed; omit it for the shortcut's own mandate.\n */\nexport function mandateKeyOfShortcut(\n shortcutSlug: string,\n surfaceSlug?: string,\n): DynamicMandateKey {\n return dynamicKey(\"shortcut\", shortcutSlug, surfaceSlug);\n}\n","/**\n * `@ai-matrx/agents/mandates` — the ONE place a TypeScript client learns a\n * mandate key.\n *\n * 🚨 **Clients never declare a mandate.** aidream's `declare_mandate` is the\n * only declaration path in the system; this subpath publishes the key set that\n * declaration produced, so a hand-typed `\"seo.keyword_cluster\"` literal, a local\n * `mandates.ts` mirror, or an `as MandateKey` cast is a defect with a real\n * replacement — not a style preference. Every carrier that takes a key should\n * type it `MandateKey` (or `MandateKey | DynamicMandateKey` when it genuinely\n * accepts a DB-authored one) so a wrong key fails type-check instead of failing\n * at run time as a 404 nobody sees.\n *\n * The key data lives in `keys.generated.ts`, emitted by THE ONE GENERATOR\n * (`aidream/scripts/mandates_generate.py`, stage (h)) from the in-process\n * declarations — never edit it. The per-version key set that shipped with each\n * published version is committed beside it under `snapshots/`, so a scan can\n * resolve a client's references against the key set of the version it actually\n * ships (Mandate Declaration & Usage Reporting, DESIGN § 4.5 step 2).\n */\n\nexport {\n ALL_MANDATE_KEYS,\n DYNAMIC_MANDATE_FAMILIES,\n MANDATE_FAMILIES,\n MANDATE_KEYS,\n MANDATE_KEYS_META,\n RETIRING_MANDATE_KEYS,\n mandateKeyOfApp,\n mandateKeyOfShortcut,\n type DynamicMandateFamilyPrefix,\n type DynamicMandateKey,\n type MandateFamilyMember,\n type MandateFamilyPrefix,\n type MandateKey,\n} from \"./keys.generated\";\n\nimport {\n ALL_MANDATE_KEYS,\n MANDATE_KEYS_META,\n type DynamicMandateKey,\n type MandateKey,\n} from \"./keys.generated\";\n\n/**\n * What a carrier accepts when the key may be a declared one OR a DB-authored\n * one (`app.*` / `shortcut.*`, a `mandate.definition` row with origin='user').\n * Carriers that only ever run a declared job stay `MandateKey`.\n *\n * The mandate reference scanner reads a binding of this type as a proven key in\n * flight (`passthrough`), never an `UNRESOLVED_KEY` — so this is THE one\n * definition every client imports, never a local copy.\n */\nexport type AnyMandateKey = MandateKey | DynamicMandateKey;\n\n/**\n * A KEY THE CODE DID NOT CHOOSE, entering the typed world named for what it is:\n * a `mandate_key` column the platform wrote (an agent app's own mandate, a\n * shortcut's, a stored binding row), a stored `mandate:` ref, a saved config.\n *\n * It TYPES and never rejects. The server is the authority on whether the key\n * exists — a key declared after this package version shipped is real there and\n * absent from this build's key set — so narrowing here would send such a key\n * through the wrong door. The server answers an unknown key with a 404 that\n * names it.\n *\n * Never use it on a key your code picks: that key belongs to\n * `MANDATE_KEYS.<id>`, and routing it through here hides a rename from the\n * compiler. For a value that must be PROVEN declared (a URL segment a person\n * could have edited), use `isMandateKey` / `assertMandateKey` instead.\n */\nexport function storedMandateKey(value: string): AnyMandateKey {\n return value as AnyMandateKey;\n}\n\nconst KEY_SET: ReadonlySet<string> = new Set<string>(ALL_MANDATE_KEYS);\n\n/**\n * Narrow an unknown string to a declared `MandateKey`.\n *\n * Use it on anything that crossed a wire — a URL segment, a stored preference,\n * a row's `mandate_key` column. It answers only for the key set THIS package\n * version ships; a key declared after this version was published is correctly\n * `false` here, which is the point of the per-version snapshots.\n */\nexport function isMandateKey(value: unknown): value is MandateKey {\n return typeof value === \"string\" && KEY_SET.has(value);\n}\n\n/**\n * Assert an unknown value is a declared `MandateKey`, or throw with a remedy.\n *\n * Nothing fails silently: the message names the value, the package version its\n * key set came from, and what to do — never a bare \"invalid key\".\n */\nexport function assertMandateKey(\n value: unknown,\n context?: string,\n): asserts value is MandateKey {\n if (isMandateKey(value)) return;\n const where = context ? ` at ${context}` : \"\";\n throw new Error(\n `${JSON.stringify(value)} is not a declared mandate key${where}. ` +\n `@ai-matrx/agents@${MANDATE_KEYS_META.packageVersion} ships ` +\n `${ALL_MANDATE_KEYS.length} keys (aidream ${MANDATE_KEYS_META.aidreamRevision.slice(0, 12)}). ` +\n \"If the key is real, this package is behind — take `latest` and re-check. \" +\n \"If it is a user-built app or shortcut, it is DB-authored: build it with \" +\n \"mandateKeyOfApp() / mandateKeyOfShortcut(), which return DynamicMandateKey.\",\n );\n}\n"],"mappings":"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","names":[]}
@@ -22,6 +22,7 @@ var portable_exports = {};
22
22
  __export(portable_exports, {
23
23
  PORTABLE_AGENT_CONTRACT: () => PORTABLE_AGENT_CONTRACT,
24
24
  fetchPortableAgent: () => fetchPortableAgent,
25
+ fetchPortableAgentSummary: () => fetchPortableAgentSummary,
25
26
  fetchPortableAgentVersions: () => fetchPortableAgentVersions,
26
27
  portableAgentPath: () => portableAgentPath,
27
28
  summarizePortableAgent: () => summarizePortableAgent
@@ -145,6 +146,13 @@ function fetchPortableAgent(transport, target, options = {}) {
145
146
  ...options.signal ? { signal: options.signal } : {}
146
147
  });
147
148
  }
149
+ function fetchPortableAgentSummary(transport, agentId, options = {}) {
150
+ return requestJson(
151
+ transport,
152
+ `/ai/agents/${encodePathSegment(agentId)}/portable/summary`,
153
+ { method: "GET", ...options.signal ? { signal: options.signal } : {} }
154
+ );
155
+ }
148
156
  function fetchPortableAgentVersions(transport, agentId, options = {}) {
149
157
  return requestJson(
150
158
  transport,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../portable/index.ts","../../matrx/transport.ts","../../matrx/internal.ts","../../portable/types.generated.ts"],"sourcesContent":["/**\n * `@ai-matrx/agents/portable` — an AI Matrx agent as pieces a coding CLI loads.\n *\n * `fetchPortableAgent` reads `POST /ai/agents/{id}/portable` (or the version\n * door) and returns the server's `PortableAgentBundle`: the instructions with\n * the person's variable values filled, the skills as Claude `SKILL.md` files,\n * the server tools in MCP shape, and `unavailable[]` — what could not be\n * carried and why. The types are GENERATED from the server's Pydantic models\n * (`types.generated.ts`, `uv run python scripts/generate_types.py portable-agent`\n * in aidream), so the two cannot drift.\n *\n * Pure entry: no React, no Node, no I/O at import. Credentials and the\n * organization travel through the host's `MatrxTransport`\n * (`createMatrxTransport({ credentials, organizationId })`).\n */\n\nimport { encodePathSegment, requestJson } from \"../matrx/internal\";\nimport type { MatrxTransport } from \"../matrx/transport\";\nimport type {\n JsonValue,\n PortableAgentBundle,\n PortableAgentRequest,\n} from \"./types.generated\";\n\nexport * from \"./types.generated\";\n\n/** Which definition to load: the agent's current one, or one immutable version. */\nexport type PortableAgentTarget =\n | { agentId: string; versionId?: undefined }\n | { versionId: string; agentId?: string | undefined };\n\nexport interface FetchPortableAgentOptions {\n /** The person's values, by variable name. Unfilled variables use the agent's defaults. */\n variables?: Record<string, JsonValue>;\n /** The `ui.ui_surface` tools resolve on. Default: the server's coding-session surface. */\n surface?: string;\n signal?: AbortSignal;\n}\n\n/** The server path for a target — exported so a host's tests can assert it. */\nexport function portableAgentPath(target: PortableAgentTarget): string {\n return target.versionId\n ? `/ai/agents/versions/${encodePathSegment(target.versionId)}/portable`\n : `/ai/agents/${encodePathSegment(target.agentId ?? \"\")}/portable`;\n}\n\n/**\n * Load one agent as a portable bundle. Throws `MatrxApiError` on refusal —\n * 401 signed out, 404 not found or not shared with this person.\n */\nexport function fetchPortableAgent(\n transport: MatrxTransport,\n target: PortableAgentTarget,\n options: FetchPortableAgentOptions = {},\n): Promise<PortableAgentBundle> {\n const body: PortableAgentRequest = {\n variables: options.variables ?? {},\n ...(options.surface ? { surface: options.surface } : {}),\n };\n return requestJson<PortableAgentBundle>(transport, portableAgentPath(target), {\n method: \"POST\",\n body,\n ...(options.signal ? { signal: options.signal } : {}),\n });\n}\n\n/** One saved version of an agent (`AgentVersionInfo` server-side). */\nexport interface PortableAgentVersion {\n id: string;\n agent_id: string;\n version_number: number;\n name: string;\n change_note: string | null;\n changed_at: string | null;\n}\n\n/**\n * The agent's saved versions, oldest first (`GET /agent-service/agents/{id}/versions`,\n * authorized through the same viewer rule as the agent). Feeds a version menu.\n */\nexport function fetchPortableAgentVersions(\n transport: MatrxTransport,\n agentId: string,\n options: { signal?: AbortSignal } = {},\n): Promise<PortableAgentVersion[]> {\n return requestJson<PortableAgentVersion[]>(\n transport,\n `/agent-service/agents/${encodePathSegment(agentId)}/versions`,\n { method: \"GET\", ...(options.signal ? { signal: options.signal } : {}) },\n );\n}\n\n/** What a bundle loaded, counted — what a header chip shows. */\nexport interface PortableAgentLoadSummary {\n instructions: boolean;\n skills: { loaded: number; total: number };\n tools: { loaded: number; total: number };\n}\n\n/** Count what a bundle carries against what the agent declares. */\nexport function summarizePortableAgent(bundle: PortableAgentBundle): PortableAgentLoadSummary {\n const missingSkills = bundle.unavailable.filter((u) => u.kind === \"skill\").length;\n const missingTools = bundle.unavailable.filter((u) => u.kind === \"tool\").length;\n return {\n instructions: bundle.instructions.trim().length > 0,\n skills: { loaded: bundle.skills.length, total: bundle.skills.length + missingSkills },\n tools: { loaded: bundle.tools.length, total: bundle.tools.length + missingTools },\n };\n}\n","/**\n * `@ai-matrx/agents/matrx` — the Matrx transport port.\n *\n * The ONE seam between this package's wire semantics and a host's connection\n * policy. This package owns WHAT is said to the AI Matrx server — paths,\n * methods, JSON bodies, streaming Accept headers, the `Last-Event-ID` cursor\n * header — and the host owns HOW the connection is made:\n *\n * - base-URL / backend-channel resolution (global, sandbox override, local\n * engine, EC2-dedicated — whatever ladder the host runs);\n * - credentials (Supabase JWT `Authorization: Bearer`, guest\n * `X-Fingerprint-ID`, or the API-key lane) — NEVER implemented here;\n * - the `X-Organization-Id` context header;\n * - retry policy, network-level timeouts, and diagnostics capture.\n *\n * A host implements the port in a few lines:\n *\n * ```ts\n * const transport: MatrxTransport = {\n * fetch: (path, init) =>\n * fetch(`${baseUrl}${path}`, {\n * ...init,\n * headers: { ...init.headers, ...authHeaders() },\n * }),\n * };\n * ```\n *\n * The port is deliberately structural and `fetch`-shaped so `@ai-matrx/data`'s\n * `/api` transport can implement it without importing this package.\n */\n\n/**\n * The request this package hands the port. A strict subset of `RequestInit`,\n * so a host can spread it straight into `fetch`.\n */\nexport interface MatrxTransportRequest {\n method: \"GET\" | \"POST\";\n /**\n * Wire-semantic headers the CALL requires (`Content-Type`, `Accept`,\n * `Last-Event-ID`). The host merges its policy headers (auth, org) on top;\n * it must not drop these.\n */\n headers: Record<string, string>;\n /** Pre-serialized JSON body, present on POST calls that carry one. */\n body?: string;\n /** Caller cancellation. The host must wire it to the underlying fetch. */\n signal?: AbortSignal;\n}\n\n/**\n * The transport port. `path` is server-relative and always starts with `/`\n * (`/ai/...`, `/runtime/...`); the host prepends its resolved base URL.\n */\nexport interface MatrxTransport {\n fetch(path: string, init: MatrxTransportRequest): Promise<Response>;\n}\n\n/**\n * A non-2xx response from the Matrx API, with the server's structured error\n * body preserved and its richest human-readable message extracted.\n */\nexport class MatrxApiError extends Error {\n override readonly name = \"MatrxApiError\";\n /** HTTP status of the failed response. */\n readonly status: number;\n /** Machine code from the server body (`code`, or `detail.code`), when present. */\n readonly code: string | null;\n /** The parsed server error body, verbatim (undefined when unparsable). */\n readonly serverDetail: unknown;\n /** The request path the failure came from (server-relative). */\n readonly path: string;\n\n constructor(args: {\n status: number;\n path: string;\n serverDetail?: unknown;\n message?: string;\n }) {\n super(\n args.message ??\n extractMatrxErrorMessage(args.serverDetail) ??\n `HTTP ${args.status}`,\n );\n this.status = args.status;\n this.path = args.path;\n this.serverDetail = args.serverDetail;\n this.code = extractMatrxErrorCode(args.serverDetail);\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction nonBlankString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\n/**\n * Extract the richest human-readable message from a Matrx/FastAPI error body.\n *\n * aidream 4xx validation errors look like\n * `{ error, user_message, details: [{ field, message, help }] }`; hand-raised\n * HTTPExceptions carry `{ detail: { code, message } }`; FastAPI's defaults are\n * `{ detail: string | [{ msg }] }`. Preference order: `user_message` →\n * `message` → joined `details[].message` → `detail.message` →\n * `detail` string → joined `detail[].msg`. Returns undefined for\n * unrecognized bodies so callers fall back to the bare status line.\n */\nexport function extractMatrxErrorMessage(\n serverDetail: unknown,\n): string | undefined {\n if (!isRecord(serverDetail)) return undefined;\n\n const userMessage = nonBlankString(serverDetail.user_message);\n if (userMessage) return userMessage;\n const message = nonBlankString(serverDetail.message);\n if (message) return message;\n\n if (Array.isArray(serverDetail.details)) {\n const messages = serverDetail.details\n .map((entry: unknown) => {\n if (!isRecord(entry)) return undefined;\n const detailMessage = nonBlankString(entry.message);\n if (!detailMessage) return undefined;\n const field = nonBlankString(entry.field);\n return field ? `${field}: ${detailMessage}` : detailMessage;\n })\n .filter((m): m is string => typeof m === \"string\");\n if (messages.length > 0) return messages.join(\"; \");\n }\n\n const detail = serverDetail.detail;\n if (isRecord(detail)) {\n const detailMessage =\n nonBlankString(detail.message) ?? nonBlankString(detail.user_message);\n if (detailMessage) return detailMessage;\n }\n if (typeof detail === \"string\" && detail.trim()) return detail;\n if (Array.isArray(detail)) {\n const messages = detail\n .map((entry: unknown) =>\n isRecord(entry) ? nonBlankString(entry.msg) : undefined,\n )\n .filter((m): m is string => typeof m === \"string\");\n if (messages.length > 0) return messages.join(\"; \");\n }\n return undefined;\n}\n\n/**\n * Extract the machine error code from a Matrx error body: top-level `code`,\n * else `detail.code` (the hand-raised HTTPException shape). Null when absent.\n */\nexport function extractMatrxErrorCode(serverDetail: unknown): string | null {\n if (!isRecord(serverDetail)) return null;\n const topLevel = nonBlankString(serverDetail.code);\n if (topLevel) return topLevel;\n const detail = serverDetail.detail;\n if (isRecord(detail)) {\n const nested = nonBlankString(detail.code);\n if (nested) return nested;\n }\n return null;\n}\n","/**\n * Internal request plumbing for `@ai-matrx/agents/matrx`. Not part of the\n * public surface — `matrx/index.ts` deliberately does not re-export this\n * module. Everything here is pure: no globals, no work at import time.\n */\n\nimport {\n readMatrxNdjsonStream,\n type MatrxNdjsonIssue,\n type MatrxStreamEnvelope,\n type MatrxStreamEnvelopeObservation,\n} from \"../stream/ndjson\";\nimport { MatrxApiError, type MatrxTransport } from \"./transport\";\n\n/** Encode one path segment (an id) safely into a server-relative path. */\nexport function encodePathSegment(value: string): string {\n return encodeURIComponent(value);\n}\n\nexport type QueryValue =\n | string\n | number\n | boolean\n | readonly string[]\n | undefined;\n\n/**\n * Build a query string. Array values repeat the key (`kind=a&kind=b` — the\n * FastAPI repeatable-parameter convention); undefined values are omitted.\n * Returns \"\" or a string starting with \"?\".\n */\nexport function buildQuery(params: Record<string, QueryValue>): string {\n const search = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) continue;\n if (Array.isArray(value)) {\n for (const entry of value) search.append(key, entry);\n } else {\n search.append(key, String(value));\n }\n }\n const encoded = search.toString();\n return encoded ? `?${encoded}` : \"\";\n}\n\nasync function readServerDetail(response: Response): Promise<unknown> {\n try {\n return (await response.json()) as unknown;\n } catch {\n return undefined;\n }\n}\n\nasync function throwApiError(path: string, response: Response): Promise<never> {\n throw new MatrxApiError({\n status: response.status,\n path,\n serverDetail: await readServerDetail(response),\n });\n}\n\nexport interface JsonRequestOptions {\n method: \"GET\" | \"POST\";\n body?: unknown;\n signal?: AbortSignal;\n}\n\n/**\n * Execute a JSON request through the transport. Throws `MatrxApiError` on a\n * non-2xx response; resolves with the parsed JSON body otherwise.\n */\nexport async function requestJson<T>(\n transport: MatrxTransport,\n path: string,\n options: JsonRequestOptions,\n): Promise<T> {\n const hasBody = options.method !== \"GET\" && options.body !== undefined;\n const response = await transport.fetch(path, {\n method: options.method,\n headers: hasBody ? { \"Content-Type\": \"application/json\" } : {},\n ...(hasBody ? { body: JSON.stringify(options.body) } : {}),\n ...(options.signal ? { signal: options.signal } : {}),\n });\n if (!response.ok) return throwApiError(path, response);\n return (await response.json()) as T;\n}\n\n/**\n * Options for every streaming call, riding the NDJSON kernel's contract.\n * Public via `./run`'s re-export.\n */\nexport interface MatrxStreamCallOptions {\n /** Abort the fetch and end the events iterator. */\n signal?: AbortSignal;\n /** Bounded background read-ahead (see `stream/ndjson`). */\n maxReadAhead?: number;\n /** Malformed NDJSON is non-fatal but must never disappear silently. */\n onMalformedLine?: (issue: MatrxNdjsonIssue) => void;\n /** Valid JSON with no recognized Matrx envelope. */\n onUnknownEnvelope?: (value: unknown) => void;\n /** Observe every valid envelope in its exact wire form. */\n onValidEnvelope?: (observation: MatrxStreamEnvelopeObservation) => void;\n}\n\n/**\n * A live agent run: the server-assigned ids (from response headers, available\n * BEFORE any event) and the normalized event stream. Public via `./run`.\n */\nexport interface MatrxRunHandle {\n /** `X-Request-ID` — the ONLY id `POST /ai/cancel/{request_id}` accepts. */\n requestId: string | null;\n /** `X-Conversation-ID` — the server's conversation identity. */\n conversationId: string | null;\n /** Normalized `{event, data}` envelopes through the ONE wire kernel. */\n events: AsyncGenerator<MatrxStreamEnvelope, void, undefined>;\n /** The raw response, for hosts that need headers/status beyond the ids. */\n response: Response;\n}\n\n/**\n * Wrap a validated streaming Response into the run handle — the ONE place\n * the id headers are read and the NDJSON kernel is attached (`./run` and\n * `./operations`' rejoin share it).\n */\nexport function toRunHandle(\n response: Response,\n options: MatrxStreamCallOptions,\n): MatrxRunHandle {\n return {\n requestId: response.headers.get(\"X-Request-ID\"),\n conversationId: response.headers.get(\"X-Conversation-ID\"),\n events: readMatrxNdjsonStream(response.body as ReadableStream<Uint8Array>, {\n ...(options.signal ? { signal: options.signal } : {}),\n ...(options.maxReadAhead !== undefined\n ? { maxReadAhead: options.maxReadAhead }\n : {}),\n ...(options.onMalformedLine\n ? { onMalformedLine: options.onMalformedLine }\n : {}),\n ...(options.onUnknownEnvelope\n ? { onUnknownEnvelope: options.onUnknownEnvelope }\n : {}),\n ...(options.onValidEnvelope\n ? { onValidEnvelope: options.onValidEnvelope }\n : {}),\n }),\n response,\n };\n}\n\nexport interface StreamRequestOptions {\n method: \"GET\" | \"POST\";\n body?: unknown;\n /** Extra wire-semantic headers (`Accept`, `Last-Event-ID`). */\n headers?: Record<string, string>;\n signal?: AbortSignal;\n}\n\n/**\n * Execute a streaming request. Throws `MatrxApiError` on a non-2xx response\n * (reading the error body as JSON when possible) or when a 2xx response\n * carries no body; resolves with the validated `Response` otherwise.\n */\nexport async function requestStream(\n transport: MatrxTransport,\n path: string,\n options: StreamRequestOptions,\n): Promise<Response> {\n const hasBody = options.method !== \"GET\" && options.body !== undefined;\n const response = await transport.fetch(path, {\n method: options.method,\n headers: {\n ...(hasBody ? { \"Content-Type\": \"application/json\" } : {}),\n ...options.headers,\n },\n ...(hasBody ? { body: JSON.stringify(options.body) } : {}),\n ...(options.signal ? { signal: options.signal } : {}),\n });\n if (!response.ok) return throwApiError(path, response);\n if (!response.body) {\n throw new MatrxApiError({\n status: response.status,\n path,\n serverDetail: { code: \"missing_response_body\" },\n message: \"The streaming response carried no body.\",\n });\n }\n return response;\n}\n","// AUTO-GENERATED — do not edit by hand.\n// Source: aidream/services/agent_service/portable.py\n// Run: uv run python scripts/generate_types.py portable-agent\n\nexport const PORTABLE_AGENT_CONTRACT = \"portable-agent.v1\";\n\nexport type JsonValue =\n | string\n | number\n | boolean\n | null\n | JsonValue[]\n | { [key: string]: JsonValue };\n\nexport interface PortableAgentRequest {\n variables?: Record<string, JsonValue>;\n surface?: string;\n}\n\nexport interface PortableSkill {\n id: string;\n tier: \"included\" | \"listed\";\n slug: string;\n label: string;\n description: string;\n path: string;\n content: string;\n body: string;\n content_hash: string;\n}\n\nexport interface PortableTool {\n name: string;\n canonical_name: string;\n description: string;\n parameters: Record<string, JsonValue>;\n}\n\nexport interface PortableUnavailable {\n kind: \"tool\" | \"skill\" | \"variable\" | \"message\" | \"mcp_server\" | \"tools\";\n name: string;\n reason: string;\n}\n\nexport interface PortableAgentBundle {\n contract: \"portable-agent.v1\";\n agent_id: string;\n version_id: string | null;\n version_number: number | null;\n is_version: boolean;\n name: string;\n definition_hash: string;\n model_id: string;\n instructions: string;\n variables: Record<string, JsonValue>[];\n filled_variables: string[];\n skills: PortableSkill[];\n tools: PortableTool[];\n surface: string;\n unavailable: PortableUnavailable[];\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../portable/index.ts","../../matrx/transport.ts","../../matrx/internal.ts","../../portable/types.generated.ts"],"sourcesContent":["/**\n * `@ai-matrx/agents/portable` — an AI Matrx agent as pieces a coding CLI loads.\n *\n * `fetchPortableAgent` reads `POST /ai/agents/{id}/portable` (or the version\n * door) and returns the server's `PortableAgentBundle`: the instructions with\n * the person's variable values filled, the skills as Claude `SKILL.md` files,\n * the server tools in MCP shape, and `unavailable[]` — what could not be\n * carried and why. The types are GENERATED from the server's Pydantic models\n * (`types.generated.ts`, `uv run python scripts/generate_types.py portable-agent`\n * in aidream), so the two cannot drift.\n *\n * Pure entry: no React, no Node, no I/O at import. Credentials and the\n * organization travel through the host's `MatrxTransport`\n * (`createMatrxTransport({ credentials, organizationId })`).\n */\n\nimport { encodePathSegment, requestJson } from \"../matrx/internal\";\nimport type { MatrxTransport } from \"../matrx/transport\";\nimport type {\n JsonValue,\n PortableAgentBundle,\n PortableAgentRequest,\n PortableAgentSummary,\n} from \"./types.generated\";\n\nexport * from \"./types.generated\";\n\n/** Which definition to load: the agent's current one, or one immutable version. */\nexport type PortableAgentTarget =\n | { agentId: string; versionId?: undefined }\n | { versionId: string; agentId?: string | undefined };\n\nexport interface FetchPortableAgentOptions {\n /** The person's values, by variable name. Unfilled variables use the agent's defaults. */\n variables?: Record<string, JsonValue>;\n /** The `ui.ui_surface` tools resolve on. Default: the server's coding-session surface. */\n surface?: string;\n signal?: AbortSignal;\n}\n\n/** The server path for a target — exported so a host's tests can assert it. */\nexport function portableAgentPath(target: PortableAgentTarget): string {\n return target.versionId\n ? `/ai/agents/versions/${encodePathSegment(target.versionId)}/portable`\n : `/ai/agents/${encodePathSegment(target.agentId ?? \"\")}/portable`;\n}\n\n/**\n * Load one agent as a portable bundle. Throws `MatrxApiError` on refusal —\n * 401 signed out, 404 not found or not shared with this person.\n */\nexport function fetchPortableAgent(\n transport: MatrxTransport,\n target: PortableAgentTarget,\n options: FetchPortableAgentOptions = {},\n): Promise<PortableAgentBundle> {\n const body: PortableAgentRequest = {\n variables: options.variables ?? {},\n ...(options.surface ? { surface: options.surface } : {}),\n };\n return requestJson<PortableAgentBundle>(transport, portableAgentPath(target), {\n method: \"POST\",\n body,\n ...(options.signal ? { signal: options.signal } : {}),\n });\n}\n\n/**\n * The light read behind an agent picker (`GET /ai/agents/{id}/portable/summary`):\n * name, variable declarations, versions newest first with their hashes. No\n * skills, no tools — call this when a person CHOOSES an agent, and\n * `fetchPortableAgent` only when a session starts.\n */\nexport function fetchPortableAgentSummary(\n transport: MatrxTransport,\n agentId: string,\n options: { signal?: AbortSignal } = {},\n): Promise<PortableAgentSummary> {\n return requestJson<PortableAgentSummary>(\n transport,\n `/ai/agents/${encodePathSegment(agentId)}/portable/summary`,\n { method: \"GET\", ...(options.signal ? { signal: options.signal } : {}) },\n );\n}\n\n/** One saved version of an agent (`AgentVersionInfo` server-side). */\nexport interface PortableAgentVersion {\n id: string;\n agent_id: string;\n version_number: number;\n name: string;\n change_note: string | null;\n changed_at: string | null;\n}\n\n/**\n * The agent's saved versions, oldest first (`GET /agent-service/agents/{id}/versions`,\n * authorized through the same viewer rule as the agent). Feeds a version menu.\n */\nexport function fetchPortableAgentVersions(\n transport: MatrxTransport,\n agentId: string,\n options: { signal?: AbortSignal } = {},\n): Promise<PortableAgentVersion[]> {\n return requestJson<PortableAgentVersion[]>(\n transport,\n `/agent-service/agents/${encodePathSegment(agentId)}/versions`,\n { method: \"GET\", ...(options.signal ? { signal: options.signal } : {}) },\n );\n}\n\n/** What a bundle loaded, counted — what a header chip shows. */\nexport interface PortableAgentLoadSummary {\n instructions: boolean;\n skills: { loaded: number; total: number };\n tools: { loaded: number; total: number };\n}\n\n/** Count what a bundle carries against what the agent declares. */\nexport function summarizePortableAgent(bundle: PortableAgentBundle): PortableAgentLoadSummary {\n const missingSkills = bundle.unavailable.filter((u) => u.kind === \"skill\").length;\n const missingTools = bundle.unavailable.filter((u) => u.kind === \"tool\").length;\n return {\n instructions: bundle.instructions.trim().length > 0,\n skills: { loaded: bundle.skills.length, total: bundle.skills.length + missingSkills },\n tools: { loaded: bundle.tools.length, total: bundle.tools.length + missingTools },\n };\n}\n","/**\n * `@ai-matrx/agents/matrx` — the Matrx transport port.\n *\n * The ONE seam between this package's wire semantics and a host's connection\n * policy. This package owns WHAT is said to the AI Matrx server — paths,\n * methods, JSON bodies, streaming Accept headers, the `Last-Event-ID` cursor\n * header — and the host owns HOW the connection is made:\n *\n * - base-URL / backend-channel resolution (global, sandbox override, local\n * engine, EC2-dedicated — whatever ladder the host runs);\n * - credentials (Supabase JWT `Authorization: Bearer`, guest\n * `X-Fingerprint-ID`, or the API-key lane) — NEVER implemented here;\n * - the `X-Organization-Id` context header;\n * - retry policy, network-level timeouts, and diagnostics capture.\n *\n * A host implements the port in a few lines:\n *\n * ```ts\n * const transport: MatrxTransport = {\n * fetch: (path, init) =>\n * fetch(`${baseUrl}${path}`, {\n * ...init,\n * headers: { ...init.headers, ...authHeaders() },\n * }),\n * };\n * ```\n *\n * The port is deliberately structural and `fetch`-shaped so `@ai-matrx/data`'s\n * `/api` transport can implement it without importing this package.\n */\n\n/**\n * The request this package hands the port. A strict subset of `RequestInit`,\n * so a host can spread it straight into `fetch`.\n */\nexport interface MatrxTransportRequest {\n method: \"GET\" | \"POST\";\n /**\n * Wire-semantic headers the CALL requires (`Content-Type`, `Accept`,\n * `Last-Event-ID`). The host merges its policy headers (auth, org) on top;\n * it must not drop these.\n */\n headers: Record<string, string>;\n /** Pre-serialized JSON body, present on POST calls that carry one. */\n body?: string;\n /** Caller cancellation. The host must wire it to the underlying fetch. */\n signal?: AbortSignal;\n}\n\n/**\n * The transport port. `path` is server-relative and always starts with `/`\n * (`/ai/...`, `/runtime/...`); the host prepends its resolved base URL.\n */\nexport interface MatrxTransport {\n fetch(path: string, init: MatrxTransportRequest): Promise<Response>;\n}\n\n/**\n * A non-2xx response from the Matrx API, with the server's structured error\n * body preserved and its richest human-readable message extracted.\n */\nexport class MatrxApiError extends Error {\n override readonly name = \"MatrxApiError\";\n /** HTTP status of the failed response. */\n readonly status: number;\n /** Machine code from the server body (`code`, or `detail.code`), when present. */\n readonly code: string | null;\n /** The parsed server error body, verbatim (undefined when unparsable). */\n readonly serverDetail: unknown;\n /** The request path the failure came from (server-relative). */\n readonly path: string;\n\n constructor(args: {\n status: number;\n path: string;\n serverDetail?: unknown;\n message?: string;\n }) {\n super(\n args.message ??\n extractMatrxErrorMessage(args.serverDetail) ??\n `HTTP ${args.status}`,\n );\n this.status = args.status;\n this.path = args.path;\n this.serverDetail = args.serverDetail;\n this.code = extractMatrxErrorCode(args.serverDetail);\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction nonBlankString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\n/**\n * Extract the richest human-readable message from a Matrx/FastAPI error body.\n *\n * aidream 4xx validation errors look like\n * `{ error, user_message, details: [{ field, message, help }] }`; hand-raised\n * HTTPExceptions carry `{ detail: { code, message } }`; FastAPI's defaults are\n * `{ detail: string | [{ msg }] }`. Preference order: `user_message` →\n * `message` → joined `details[].message` → `detail.message` →\n * `detail` string → joined `detail[].msg`. Returns undefined for\n * unrecognized bodies so callers fall back to the bare status line.\n */\nexport function extractMatrxErrorMessage(\n serverDetail: unknown,\n): string | undefined {\n if (!isRecord(serverDetail)) return undefined;\n\n const userMessage = nonBlankString(serverDetail.user_message);\n if (userMessage) return userMessage;\n const message = nonBlankString(serverDetail.message);\n if (message) return message;\n\n if (Array.isArray(serverDetail.details)) {\n const messages = serverDetail.details\n .map((entry: unknown) => {\n if (!isRecord(entry)) return undefined;\n const detailMessage = nonBlankString(entry.message);\n if (!detailMessage) return undefined;\n const field = nonBlankString(entry.field);\n return field ? `${field}: ${detailMessage}` : detailMessage;\n })\n .filter((m): m is string => typeof m === \"string\");\n if (messages.length > 0) return messages.join(\"; \");\n }\n\n const detail = serverDetail.detail;\n if (isRecord(detail)) {\n const detailMessage =\n nonBlankString(detail.message) ?? nonBlankString(detail.user_message);\n if (detailMessage) return detailMessage;\n }\n if (typeof detail === \"string\" && detail.trim()) return detail;\n if (Array.isArray(detail)) {\n const messages = detail\n .map((entry: unknown) =>\n isRecord(entry) ? nonBlankString(entry.msg) : undefined,\n )\n .filter((m): m is string => typeof m === \"string\");\n if (messages.length > 0) return messages.join(\"; \");\n }\n return undefined;\n}\n\n/**\n * Extract the machine error code from a Matrx error body: top-level `code`,\n * else `detail.code` (the hand-raised HTTPException shape). Null when absent.\n */\nexport function extractMatrxErrorCode(serverDetail: unknown): string | null {\n if (!isRecord(serverDetail)) return null;\n const topLevel = nonBlankString(serverDetail.code);\n if (topLevel) return topLevel;\n const detail = serverDetail.detail;\n if (isRecord(detail)) {\n const nested = nonBlankString(detail.code);\n if (nested) return nested;\n }\n return null;\n}\n","/**\n * Internal request plumbing for `@ai-matrx/agents/matrx`. Not part of the\n * public surface — `matrx/index.ts` deliberately does not re-export this\n * module. Everything here is pure: no globals, no work at import time.\n */\n\nimport {\n readMatrxNdjsonStream,\n type MatrxNdjsonIssue,\n type MatrxStreamEnvelope,\n type MatrxStreamEnvelopeObservation,\n} from \"../stream/ndjson\";\nimport { MatrxApiError, type MatrxTransport } from \"./transport\";\n\n/** Encode one path segment (an id) safely into a server-relative path. */\nexport function encodePathSegment(value: string): string {\n return encodeURIComponent(value);\n}\n\nexport type QueryValue =\n | string\n | number\n | boolean\n | readonly string[]\n | undefined;\n\n/**\n * Build a query string. Array values repeat the key (`kind=a&kind=b` — the\n * FastAPI repeatable-parameter convention); undefined values are omitted.\n * Returns \"\" or a string starting with \"?\".\n */\nexport function buildQuery(params: Record<string, QueryValue>): string {\n const search = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) continue;\n if (Array.isArray(value)) {\n for (const entry of value) search.append(key, entry);\n } else {\n search.append(key, String(value));\n }\n }\n const encoded = search.toString();\n return encoded ? `?${encoded}` : \"\";\n}\n\nasync function readServerDetail(response: Response): Promise<unknown> {\n try {\n return (await response.json()) as unknown;\n } catch {\n return undefined;\n }\n}\n\nasync function throwApiError(path: string, response: Response): Promise<never> {\n throw new MatrxApiError({\n status: response.status,\n path,\n serverDetail: await readServerDetail(response),\n });\n}\n\nexport interface JsonRequestOptions {\n method: \"GET\" | \"POST\";\n body?: unknown;\n signal?: AbortSignal;\n}\n\n/**\n * Execute a JSON request through the transport. Throws `MatrxApiError` on a\n * non-2xx response; resolves with the parsed JSON body otherwise.\n */\nexport async function requestJson<T>(\n transport: MatrxTransport,\n path: string,\n options: JsonRequestOptions,\n): Promise<T> {\n const hasBody = options.method !== \"GET\" && options.body !== undefined;\n const response = await transport.fetch(path, {\n method: options.method,\n headers: hasBody ? { \"Content-Type\": \"application/json\" } : {},\n ...(hasBody ? { body: JSON.stringify(options.body) } : {}),\n ...(options.signal ? { signal: options.signal } : {}),\n });\n if (!response.ok) return throwApiError(path, response);\n return (await response.json()) as T;\n}\n\n/**\n * Options for every streaming call, riding the NDJSON kernel's contract.\n * Public via `./run`'s re-export.\n */\nexport interface MatrxStreamCallOptions {\n /** Abort the fetch and end the events iterator. */\n signal?: AbortSignal;\n /** Bounded background read-ahead (see `stream/ndjson`). */\n maxReadAhead?: number;\n /** Malformed NDJSON is non-fatal but must never disappear silently. */\n onMalformedLine?: (issue: MatrxNdjsonIssue) => void;\n /** Valid JSON with no recognized Matrx envelope. */\n onUnknownEnvelope?: (value: unknown) => void;\n /** Observe every valid envelope in its exact wire form. */\n onValidEnvelope?: (observation: MatrxStreamEnvelopeObservation) => void;\n}\n\n/**\n * A live agent run: the server-assigned ids (from response headers, available\n * BEFORE any event) and the normalized event stream. Public via `./run`.\n */\nexport interface MatrxRunHandle {\n /** `X-Request-ID` — the ONLY id `POST /ai/cancel/{request_id}` accepts. */\n requestId: string | null;\n /** `X-Conversation-ID` — the server's conversation identity. */\n conversationId: string | null;\n /** Normalized `{event, data}` envelopes through the ONE wire kernel. */\n events: AsyncGenerator<MatrxStreamEnvelope, void, undefined>;\n /** The raw response, for hosts that need headers/status beyond the ids. */\n response: Response;\n}\n\n/**\n * Wrap a validated streaming Response into the run handle — the ONE place\n * the id headers are read and the NDJSON kernel is attached (`./run` and\n * `./operations`' rejoin share it).\n */\nexport function toRunHandle(\n response: Response,\n options: MatrxStreamCallOptions,\n): MatrxRunHandle {\n return {\n requestId: response.headers.get(\"X-Request-ID\"),\n conversationId: response.headers.get(\"X-Conversation-ID\"),\n events: readMatrxNdjsonStream(response.body as ReadableStream<Uint8Array>, {\n ...(options.signal ? { signal: options.signal } : {}),\n ...(options.maxReadAhead !== undefined\n ? { maxReadAhead: options.maxReadAhead }\n : {}),\n ...(options.onMalformedLine\n ? { onMalformedLine: options.onMalformedLine }\n : {}),\n ...(options.onUnknownEnvelope\n ? { onUnknownEnvelope: options.onUnknownEnvelope }\n : {}),\n ...(options.onValidEnvelope\n ? { onValidEnvelope: options.onValidEnvelope }\n : {}),\n }),\n response,\n };\n}\n\nexport interface StreamRequestOptions {\n method: \"GET\" | \"POST\";\n body?: unknown;\n /** Extra wire-semantic headers (`Accept`, `Last-Event-ID`). */\n headers?: Record<string, string>;\n signal?: AbortSignal;\n}\n\n/**\n * Execute a streaming request. Throws `MatrxApiError` on a non-2xx response\n * (reading the error body as JSON when possible) or when a 2xx response\n * carries no body; resolves with the validated `Response` otherwise.\n */\nexport async function requestStream(\n transport: MatrxTransport,\n path: string,\n options: StreamRequestOptions,\n): Promise<Response> {\n const hasBody = options.method !== \"GET\" && options.body !== undefined;\n const response = await transport.fetch(path, {\n method: options.method,\n headers: {\n ...(hasBody ? { \"Content-Type\": \"application/json\" } : {}),\n ...options.headers,\n },\n ...(hasBody ? { body: JSON.stringify(options.body) } : {}),\n ...(options.signal ? { signal: options.signal } : {}),\n });\n if (!response.ok) return throwApiError(path, response);\n if (!response.body) {\n throw new MatrxApiError({\n status: response.status,\n path,\n serverDetail: { code: \"missing_response_body\" },\n message: \"The streaming response carried no body.\",\n });\n }\n return response;\n}\n","// AUTO-GENERATED — do not edit by hand.\n// Source: aidream/services/agent_service/portable.py\n// Run: uv run python scripts/generate_types.py portable-agent\n\nexport const PORTABLE_AGENT_CONTRACT = \"portable-agent.v1\";\n\nexport type JsonValue =\n | string\n | number\n | boolean\n | null\n | JsonValue[]\n | { [key: string]: JsonValue };\n\nexport interface PortableAgentRequest {\n variables?: Record<string, JsonValue>;\n surface?: string;\n}\n\nexport interface PortableSkill {\n id: string;\n tier: \"included\" | \"listed\";\n slug: string;\n label: string;\n description: string;\n path: string;\n content: string;\n body: string;\n content_hash: string;\n}\n\nexport interface PortableTool {\n name: string;\n canonical_name: string;\n description: string;\n parameters: Record<string, JsonValue>;\n}\n\nexport interface PortableUnavailable {\n kind: \"tool\" | \"skill\" | \"variable\" | \"message\" | \"mcp_server\" | \"tools\";\n name: string;\n reason: string;\n}\n\nexport interface PortableAgentBundle {\n contract: \"portable-agent.v1\";\n agent_id: string;\n version_id: string | null;\n version_number: number | null;\n is_version: boolean;\n name: string;\n definition_hash: string;\n model_id: string;\n instructions: string;\n variables: Record<string, JsonValue>[];\n filled_variables: string[];\n skills: PortableSkill[];\n tools: PortableTool[];\n surface: string;\n unavailable: PortableUnavailable[];\n}\n\nexport interface PortableAgentVersion {\n id: string;\n version_number: number;\n changed_at: string | null;\n definition_hash: string | null;\n}\n\nexport interface PortableAgentSummary {\n agent_id: string;\n name: string;\n version_id: string | null;\n version_number: number | null;\n definition_hash: string;\n variables: Record<string, JsonValue>[];\n versions: PortableAgentVersion[];\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import { M as MatrxTransport } from '../transport-CxD0fL8p.cjs';
2
- import { J as JsonValue, P as PortableAgentBundle } from '../types.generated-BydVlqDC.cjs';
3
- export { a as PORTABLE_AGENT_CONTRACT, b as PortableAgentRequest, c as PortableSkill, d as PortableTool, e as PortableUnavailable } from '../types.generated-BydVlqDC.cjs';
2
+ import { J as JsonValue, P as PortableAgentBundle, a as PortableAgentSummary } from '../types.generated-BDphyhqo.cjs';
3
+ export { b as PORTABLE_AGENT_CONTRACT, c as PortableAgentRequest, d as PortableSkill, e as PortableTool, f as PortableUnavailable } from '../types.generated-BDphyhqo.cjs';
4
4
 
5
5
  /**
6
6
  * `@ai-matrx/agents/portable` — an AI Matrx agent as pieces a coding CLI loads.
@@ -40,6 +40,15 @@ declare function portableAgentPath(target: PortableAgentTarget): string;
40
40
  * 401 signed out, 404 not found or not shared with this person.
41
41
  */
42
42
  declare function fetchPortableAgent(transport: MatrxTransport, target: PortableAgentTarget, options?: FetchPortableAgentOptions): Promise<PortableAgentBundle>;
43
+ /**
44
+ * The light read behind an agent picker (`GET /ai/agents/{id}/portable/summary`):
45
+ * name, variable declarations, versions newest first with their hashes. No
46
+ * skills, no tools — call this when a person CHOOSES an agent, and
47
+ * `fetchPortableAgent` only when a session starts.
48
+ */
49
+ declare function fetchPortableAgentSummary(transport: MatrxTransport, agentId: string, options?: {
50
+ signal?: AbortSignal;
51
+ }): Promise<PortableAgentSummary>;
43
52
  /** One saved version of an agent (`AgentVersionInfo` server-side). */
44
53
  interface PortableAgentVersion {
45
54
  id: string;
@@ -71,4 +80,4 @@ interface PortableAgentLoadSummary {
71
80
  /** Count what a bundle carries against what the agent declares. */
72
81
  declare function summarizePortableAgent(bundle: PortableAgentBundle): PortableAgentLoadSummary;
73
82
 
74
- export { type FetchPortableAgentOptions, JsonValue, PortableAgentBundle, type PortableAgentLoadSummary, type PortableAgentTarget, type PortableAgentVersion, fetchPortableAgent, fetchPortableAgentVersions, portableAgentPath, summarizePortableAgent };
83
+ export { type FetchPortableAgentOptions, JsonValue, PortableAgentBundle, type PortableAgentLoadSummary, PortableAgentSummary, type PortableAgentTarget, type PortableAgentVersion, fetchPortableAgent, fetchPortableAgentSummary, fetchPortableAgentVersions, portableAgentPath, summarizePortableAgent };
@@ -1,6 +1,6 @@
1
1
  import { M as MatrxTransport } from '../transport-CxD0fL8p.js';
2
- import { J as JsonValue, P as PortableAgentBundle } from '../types.generated-BydVlqDC.js';
3
- export { a as PORTABLE_AGENT_CONTRACT, b as PortableAgentRequest, c as PortableSkill, d as PortableTool, e as PortableUnavailable } from '../types.generated-BydVlqDC.js';
2
+ import { J as JsonValue, P as PortableAgentBundle, a as PortableAgentSummary } from '../types.generated-BDphyhqo.js';
3
+ export { b as PORTABLE_AGENT_CONTRACT, c as PortableAgentRequest, d as PortableSkill, e as PortableTool, f as PortableUnavailable } from '../types.generated-BDphyhqo.js';
4
4
 
5
5
  /**
6
6
  * `@ai-matrx/agents/portable` — an AI Matrx agent as pieces a coding CLI loads.
@@ -40,6 +40,15 @@ declare function portableAgentPath(target: PortableAgentTarget): string;
40
40
  * 401 signed out, 404 not found or not shared with this person.
41
41
  */
42
42
  declare function fetchPortableAgent(transport: MatrxTransport, target: PortableAgentTarget, options?: FetchPortableAgentOptions): Promise<PortableAgentBundle>;
43
+ /**
44
+ * The light read behind an agent picker (`GET /ai/agents/{id}/portable/summary`):
45
+ * name, variable declarations, versions newest first with their hashes. No
46
+ * skills, no tools — call this when a person CHOOSES an agent, and
47
+ * `fetchPortableAgent` only when a session starts.
48
+ */
49
+ declare function fetchPortableAgentSummary(transport: MatrxTransport, agentId: string, options?: {
50
+ signal?: AbortSignal;
51
+ }): Promise<PortableAgentSummary>;
43
52
  /** One saved version of an agent (`AgentVersionInfo` server-side). */
44
53
  interface PortableAgentVersion {
45
54
  id: string;
@@ -71,4 +80,4 @@ interface PortableAgentLoadSummary {
71
80
  /** Count what a bundle carries against what the agent declares. */
72
81
  declare function summarizePortableAgent(bundle: PortableAgentBundle): PortableAgentLoadSummary;
73
82
 
74
- export { type FetchPortableAgentOptions, JsonValue, PortableAgentBundle, type PortableAgentLoadSummary, type PortableAgentTarget, type PortableAgentVersion, fetchPortableAgent, fetchPortableAgentVersions, portableAgentPath, summarizePortableAgent };
83
+ export { type FetchPortableAgentOptions, JsonValue, PortableAgentBundle, type PortableAgentLoadSummary, PortableAgentSummary, type PortableAgentTarget, type PortableAgentVersion, fetchPortableAgent, fetchPortableAgentSummary, fetchPortableAgentVersions, portableAgentPath, summarizePortableAgent };
@@ -115,6 +115,13 @@ function fetchPortableAgent(transport, target, options = {}) {
115
115
  ...options.signal ? { signal: options.signal } : {}
116
116
  });
117
117
  }
118
+ function fetchPortableAgentSummary(transport, agentId, options = {}) {
119
+ return requestJson(
120
+ transport,
121
+ `/ai/agents/${encodePathSegment(agentId)}/portable/summary`,
122
+ { method: "GET", ...options.signal ? { signal: options.signal } : {} }
123
+ );
124
+ }
118
125
  function fetchPortableAgentVersions(transport, agentId, options = {}) {
119
126
  return requestJson(
120
127
  transport,
@@ -134,6 +141,7 @@ function summarizePortableAgent(bundle) {
134
141
  export {
135
142
  PORTABLE_AGENT_CONTRACT,
136
143
  fetchPortableAgent,
144
+ fetchPortableAgentSummary,
137
145
  fetchPortableAgentVersions,
138
146
  portableAgentPath,
139
147
  summarizePortableAgent