#
tokens: 49885/50000 23/1784 files (page 28/145)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 28 of 145. Use http://codebase.md/microsoft/semanticworkbench?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .devcontainer
│   ├── .vscode
│   │   └── settings.json
│   ├── devcontainer.json
│   ├── OPTIMIZING_FOR_CODESPACES.md
│   ├── POST_SETUP_README.md
│   └── README.md
├── .dockerignore
├── .gitattributes
├── .github
│   ├── policheck.yml
│   └── workflows
│       ├── assistants-codespace-assistant.yml
│       ├── assistants-document-assistant.yml
│       ├── assistants-explorer-assistant.yml
│       ├── assistants-guided-conversation-assistant.yml
│       ├── assistants-knowledge-transfer-assistant.yml
│       ├── assistants-navigator-assistant.yml
│       ├── assistants-project-assistant.yml
│       ├── assistants-prospector-assistant.yml
│       ├── assistants-skill-assistant.yml
│       ├── libraries.yml
│       ├── mcp-server-giphy.yml
│       ├── mcp-server-memory-filesystem-edit.yml
│       ├── mcp-server-memory-user-bio.yml
│       ├── mcp-server-memory-whiteboard.yml
│       ├── mcp-server-open-deep-research-clone.yml
│       ├── mcp-server-web-research.yml
│       ├── workbench-app.yml
│       └── workbench-service.yml
├── .gitignore
├── .multi-root-tools
│   ├── Makefile
│   └── README.md
├── .vscode
│   ├── extensions.json
│   ├── launch.json
│   └── settings.json
├── ai_context
│   └── generated
│       ├── ASPIRE_ORCHESTRATOR.md
│       ├── ASSISTANT_CODESPACE.md
│       ├── ASSISTANT_DOCUMENT.md
│       ├── ASSISTANT_NAVIGATOR.md
│       ├── ASSISTANT_PROJECT.md
│       ├── ASSISTANT_PROSPECTOR.md
│       ├── ASSISTANTS_OTHER.md
│       ├── ASSISTANTS_OVERVIEW.md
│       ├── CONFIGURATION.md
│       ├── DOTNET_LIBRARIES.md
│       ├── EXAMPLES.md
│       ├── MCP_SERVERS.md
│       ├── PYTHON_LIBRARIES_AI_CLIENTS.md
│       ├── PYTHON_LIBRARIES_CORE.md
│       ├── PYTHON_LIBRARIES_EXTENSIONS.md
│       ├── PYTHON_LIBRARIES_SKILLS.md
│       ├── PYTHON_LIBRARIES_SPECIALIZED.md
│       ├── TOOLS.md
│       ├── WORKBENCH_FRONTEND.md
│       └── WORKBENCH_SERVICE.md
├── aspire-orchestrator
│   ├── .editorconfig
│   ├── Aspire.AppHost
│   │   ├── .gitignore
│   │   ├── appsettings.json
│   │   ├── Aspire.AppHost.csproj
│   │   ├── Program.cs
│   │   └── Properties
│   │       └── launchSettings.json
│   ├── Aspire.Extensions
│   │   ├── Aspire.Extensions.csproj
│   │   ├── Dashboard.cs
│   │   ├── DockerFileExtensions.cs
│   │   ├── PathNormalizer.cs
│   │   ├── UvAppHostingExtensions.cs
│   │   ├── UvAppResource.cs
│   │   ├── VirtualEnvironment.cs
│   │   └── WorkbenchServiceHostingExtensions.cs
│   ├── Aspire.ServiceDefaults
│   │   ├── Aspire.ServiceDefaults.csproj
│   │   └── Extensions.cs
│   ├── README.md
│   ├── run.sh
│   ├── SemanticWorkbench.Aspire.sln
│   └── SemanticWorkbench.Aspire.sln.DotSettings
├── assistants
│   ├── codespace-assistant
│   │   ├── .claude
│   │   │   └── settings.local.json
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── extensions.json
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── assets
│   │   │   │   ├── icon_context_transfer.svg
│   │   │   │   └── icon.svg
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── helpers.py
│   │   │   ├── response
│   │   │   │   ├── __init__.py
│   │   │   │   ├── completion_handler.py
│   │   │   │   ├── models.py
│   │   │   │   ├── request_builder.py
│   │   │   │   ├── response.py
│   │   │   │   ├── step_handler.py
│   │   │   │   └── utils
│   │   │   │       ├── __init__.py
│   │   │   │       ├── abbreviations.py
│   │   │   │       ├── formatting_utils.py
│   │   │   │       ├── message_utils.py
│   │   │   │       └── openai_utils.py
│   │   │   ├── text_includes
│   │   │   │   ├── card_content_context_transfer.md
│   │   │   │   ├── card_content.md
│   │   │   │   ├── codespace_assistant_info.md
│   │   │   │   ├── context_transfer_assistant_info.md
│   │   │   │   ├── guardrails_prompt.txt
│   │   │   │   ├── guidance_prompt_context_transfer.txt
│   │   │   │   ├── guidance_prompt.txt
│   │   │   │   ├── instruction_prompt_context_transfer.txt
│   │   │   │   └── instruction_prompt.txt
│   │   │   └── whiteboard
│   │   │       ├── __init__.py
│   │   │       ├── _inspector.py
│   │   │       └── _whiteboard.py
│   │   ├── assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── document-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── assets
│   │   │   │   └── icon.svg
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── context_management
│   │   │   │   ├── __init__.py
│   │   │   │   └── inspector.py
│   │   │   ├── filesystem
│   │   │   │   ├── __init__.py
│   │   │   │   ├── _convert.py
│   │   │   │   ├── _file_sources.py
│   │   │   │   ├── _filesystem.py
│   │   │   │   ├── _inspector.py
│   │   │   │   ├── _model.py
│   │   │   │   ├── _prompts.py
│   │   │   │   └── _tasks.py
│   │   │   ├── guidance
│   │   │   │   ├── __init__.py
│   │   │   │   ├── dynamic_ui_inspector.py
│   │   │   │   ├── guidance_config.py
│   │   │   │   ├── guidance_prompts.py
│   │   │   │   └── README.md
│   │   │   ├── response
│   │   │   │   ├── __init__.py
│   │   │   │   ├── completion_handler.py
│   │   │   │   ├── models.py
│   │   │   │   ├── prompts.py
│   │   │   │   ├── responder.py
│   │   │   │   └── utils
│   │   │   │       ├── __init__.py
│   │   │   │       ├── formatting_utils.py
│   │   │   │       ├── message_utils.py
│   │   │   │       ├── openai_utils.py
│   │   │   │       ├── tokens_tiktoken.py
│   │   │   │       └── workbench_messages.py
│   │   │   ├── text_includes
│   │   │   │   └── document_assistant_info.md
│   │   │   ├── types.py
│   │   │   └── whiteboard
│   │   │       ├── __init__.py
│   │   │       ├── _inspector.py
│   │   │       └── _whiteboard.py
│   │   ├── assistant.code-workspace
│   │   ├── CLAUDE.md
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_convert.py
│   │   │   └── test_data
│   │   │       ├── blank_image.png
│   │   │       ├── Formatting Test.docx
│   │   │       ├── sample_data.csv
│   │   │       ├── sample_data.xlsx
│   │   │       ├── sample_page.html
│   │   │       ├── sample_presentation.pptx
│   │   │       └── simple_pdf.pdf
│   │   └── uv.lock
│   ├── explorer-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── helpers.py
│   │   │   ├── response
│   │   │   │   ├── __init__.py
│   │   │   │   ├── model.py
│   │   │   │   ├── response_anthropic.py
│   │   │   │   ├── response_openai.py
│   │   │   │   └── response.py
│   │   │   └── text_includes
│   │   │       └── guardrails_prompt.txt
│   │   ├── assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── guided-conversation-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── agents
│   │   │   │   ├── guided_conversation
│   │   │   │   │   ├── config.py
│   │   │   │   │   ├── definition.py
│   │   │   │   │   └── definitions
│   │   │   │   │       ├── er_triage.py
│   │   │   │   │       ├── interview.py
│   │   │   │   │       ├── patient_intake.py
│   │   │   │   │       └── poem_feedback.py
│   │   │   │   └── guided_conversation_agent.py
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   └── text_includes
│   │   │       └── guardrails_prompt.txt
│   │   ├── assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── knowledge-transfer-assistant
│   │   ├── .claude
│   │   │   └── settings.local.json
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── agentic
│   │   │   │   ├── __init__.py
│   │   │   │   ├── analysis.py
│   │   │   │   ├── coordinator_support.py
│   │   │   │   └── team_welcome.py
│   │   │   ├── assets
│   │   │   │   ├── icon-knowledge-transfer.svg
│   │   │   │   └── icon.svg
│   │   │   ├── assistant.py
│   │   │   ├── common.py
│   │   │   ├── config.py
│   │   │   ├── conversation_clients.py
│   │   │   ├── conversation_share_link.py
│   │   │   ├── data.py
│   │   │   ├── domain
│   │   │   │   ├── __init__.py
│   │   │   │   ├── audience_manager.py
│   │   │   │   ├── information_request_manager.py
│   │   │   │   ├── knowledge_brief_manager.py
│   │   │   │   ├── knowledge_digest_manager.py
│   │   │   │   ├── learning_objectives_manager.py
│   │   │   │   └── share_manager.py
│   │   │   ├── files.py
│   │   │   ├── logging.py
│   │   │   ├── notifications.py
│   │   │   ├── respond.py
│   │   │   ├── storage_models.py
│   │   │   ├── storage.py
│   │   │   ├── string_utils.py
│   │   │   ├── text_includes
│   │   │   │   ├── assistant_info.md
│   │   │   │   ├── card_content.md
│   │   │   │   ├── coordinator_instructions.txt
│   │   │   │   ├── coordinator_role.txt
│   │   │   │   ├── knowledge_digest_instructions.txt
│   │   │   │   ├── knowledge_digest_prompt.txt
│   │   │   │   ├── share_information_request_detection.txt
│   │   │   │   ├── team_instructions.txt
│   │   │   │   ├── team_role.txt
│   │   │   │   └── welcome_message_generation.txt
│   │   │   ├── tools
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base.py
│   │   │   │   ├── information_requests.py
│   │   │   │   ├── learning_objectives.py
│   │   │   │   ├── learning_outcomes.py
│   │   │   │   ├── progress_tracking.py
│   │   │   │   └── share_setup.py
│   │   │   ├── ui_tabs
│   │   │   │   ├── __init__.py
│   │   │   │   ├── brief.py
│   │   │   │   ├── common.py
│   │   │   │   ├── debug.py
│   │   │   │   ├── learning.py
│   │   │   │   └── sharing.py
│   │   │   └── utils.py
│   │   ├── CLAUDE.md
│   │   ├── docs
│   │   │   ├── design
│   │   │   │   ├── actions.md
│   │   │   │   └── inference.md
│   │   │   ├── DEV_GUIDE.md
│   │   │   ├── how-kta-works.md
│   │   │   ├── JTBD.md
│   │   │   ├── knowledge-transfer-goals.md
│   │   │   ├── learning_assistance.md
│   │   │   ├── notable_claude_conversations
│   │   │   │   ├── clarifying_quad_modal_design.md
│   │   │   │   ├── CLAUDE_PROMPTS.md
│   │   │   │   ├── transfer_state.md
│   │   │   │   └── trying_the_context_agent.md
│   │   │   └── opportunities-of-knowledge-transfer.md
│   │   ├── knowledge-transfer-assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_artifact_loading.py
│   │   │   ├── test_inspector.py
│   │   │   ├── test_share_manager.py
│   │   │   ├── test_share_storage.py
│   │   │   ├── test_share_tools.py
│   │   │   └── test_team_mode.py
│   │   └── uv.lock
│   ├── Makefile
│   ├── navigator-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── assets
│   │   │   │   ├── card_content.md
│   │   │   │   └── icon.svg
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── helpers.py
│   │   │   ├── response
│   │   │   │   ├── __init__.py
│   │   │   │   ├── completion_handler.py
│   │   │   │   ├── completion_requestor.py
│   │   │   │   ├── local_tool
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── add_assistant_to_conversation.py
│   │   │   │   │   ├── list_assistant_services.py
│   │   │   │   │   └── model.py
│   │   │   │   ├── models.py
│   │   │   │   ├── prompt.py
│   │   │   │   ├── request_builder.py
│   │   │   │   ├── response.py
│   │   │   │   ├── step_handler.py
│   │   │   │   └── utils
│   │   │   │       ├── __init__.py
│   │   │   │       ├── formatting_utils.py
│   │   │   │       ├── message_utils.py
│   │   │   │       ├── openai_utils.py
│   │   │   │       └── tools.py
│   │   │   ├── text_includes
│   │   │   │   ├── guardrails_prompt.md
│   │   │   │   ├── guidance_prompt.md
│   │   │   │   ├── instruction_prompt.md
│   │   │   │   ├── navigator_assistant_info.md
│   │   │   │   └── semantic_workbench_features.md
│   │   │   └── whiteboard
│   │   │       ├── __init__.py
│   │   │       ├── _inspector.py
│   │   │       └── _whiteboard.py
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── project-assistant
│   │   ├── .cspell
│   │   │   └── custom-dictionary-workspace.txt
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── agentic
│   │   │   │   ├── __init__.py
│   │   │   │   ├── act.py
│   │   │   │   ├── coordinator_next_action.py
│   │   │   │   ├── create_invitation.py
│   │   │   │   ├── detect_audience_and_takeaways.py
│   │   │   │   ├── detect_coordinator_actions.py
│   │   │   │   ├── detect_information_request_needs.py
│   │   │   │   ├── detect_knowledge_package_gaps.py
│   │   │   │   ├── focus.py
│   │   │   │   ├── respond.py
│   │   │   │   ├── team_welcome.py
│   │   │   │   └── update_digest.py
│   │   │   ├── assets
│   │   │   │   ├── icon-knowledge-transfer.svg
│   │   │   │   └── icon.svg
│   │   │   ├── assistant.py
│   │   │   ├── common.py
│   │   │   ├── config.py
│   │   │   ├── conversation_clients.py
│   │   │   ├── data.py
│   │   │   ├── domain
│   │   │   │   ├── __init__.py
│   │   │   │   ├── audience_manager.py
│   │   │   │   ├── conversation_preferences_manager.py
│   │   │   │   ├── information_request_manager.py
│   │   │   │   ├── knowledge_brief_manager.py
│   │   │   │   ├── knowledge_digest_manager.py
│   │   │   │   ├── learning_objectives_manager.py
│   │   │   │   ├── share_manager.py
│   │   │   │   ├── tasks_manager.py
│   │   │   │   └── transfer_manager.py
│   │   │   ├── errors.py
│   │   │   ├── files.py
│   │   │   ├── logging.py
│   │   │   ├── notifications.py
│   │   │   ├── prompt_utils.py
│   │   │   ├── storage.py
│   │   │   ├── string_utils.py
│   │   │   ├── text_includes
│   │   │   │   ├── actor_instructions.md
│   │   │   │   ├── assistant_info.md
│   │   │   │   ├── card_content.md
│   │   │   │   ├── coordinator_instructions copy.md
│   │   │   │   ├── coordinator_instructions.md
│   │   │   │   ├── create_invitation.md
│   │   │   │   ├── detect_audience.md
│   │   │   │   ├── detect_coordinator_actions.md
│   │   │   │   ├── detect_information_request_needs.md
│   │   │   │   ├── detect_knowledge_package_gaps.md
│   │   │   │   ├── focus.md
│   │   │   │   ├── knowledge_digest_instructions.txt
│   │   │   │   ├── team_instructions.txt
│   │   │   │   ├── to_do.md
│   │   │   │   ├── update_knowledge_brief.md
│   │   │   │   ├── update_knowledge_digest.md
│   │   │   │   └── welcome_message_generation.txt
│   │   │   ├── tools
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base.py
│   │   │   │   ├── conversation_preferences.py
│   │   │   │   ├── information_requests.py
│   │   │   │   ├── learning_objectives.py
│   │   │   │   ├── learning_outcomes.py
│   │   │   │   ├── progress_tracking.py
│   │   │   │   ├── share_setup.py
│   │   │   │   ├── system_reminders.py
│   │   │   │   ├── tasks.py
│   │   │   │   └── todo.py
│   │   │   ├── ui_tabs
│   │   │   │   ├── __init__.py
│   │   │   │   ├── brief.py
│   │   │   │   ├── common.py
│   │   │   │   ├── debug.py
│   │   │   │   ├── learning.py
│   │   │   │   └── sharing.py
│   │   │   └── utils.py
│   │   ├── CLAUDE.md
│   │   ├── docs
│   │   │   ├── design
│   │   │   │   ├── actions.md
│   │   │   │   ├── control_options.md
│   │   │   │   ├── design.md
│   │   │   │   ├── inference.md
│   │   │   │   └── PXL_20250814_190140267.jpg
│   │   │   ├── DEV_GUIDE.md
│   │   │   ├── how-kta-works.md
│   │   │   ├── JTBD.md
│   │   │   ├── knowledge-transfer-goals.md
│   │   │   ├── learning_assistance.md
│   │   │   ├── notable_claude_conversations
│   │   │   │   ├── clarifying_quad_modal_design.md
│   │   │   │   ├── CLAUDE_PROMPTS.md
│   │   │   │   ├── transfer_state.md
│   │   │   │   └── trying_the_context_agent.md
│   │   │   └── opportunities-of-knowledge-transfer.md
│   │   ├── knowledge-transfer-assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_artifact_loading.py
│   │   │   ├── test_inspector.py
│   │   │   ├── test_share_manager.py
│   │   │   ├── test_share_storage.py
│   │   │   └── test_team_mode.py
│   │   └── uv.lock
│   ├── prospector-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── agents
│   │   │   │   ├── artifact_agent.py
│   │   │   │   ├── document
│   │   │   │   │   ├── config.py
│   │   │   │   │   ├── gc_draft_content_feedback_config.py
│   │   │   │   │   ├── gc_draft_outline_feedback_config.py
│   │   │   │   │   ├── guided_conversation.py
│   │   │   │   │   └── state.py
│   │   │   │   └── document_agent.py
│   │   │   ├── artifact_creation_extension
│   │   │   │   ├── __init__.py
│   │   │   │   ├── _llm.py
│   │   │   │   ├── config.py
│   │   │   │   ├── document.py
│   │   │   │   ├── extension.py
│   │   │   │   ├── store.py
│   │   │   │   ├── test
│   │   │   │   │   ├── conftest.py
│   │   │   │   │   ├── evaluation.py
│   │   │   │   │   ├── test_completion_with_tools.py
│   │   │   │   │   └── test_extension.py
│   │   │   │   └── tools.py
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── form_fill_extension
│   │   │   │   ├── __init__.py
│   │   │   │   ├── config.py
│   │   │   │   ├── extension.py
│   │   │   │   ├── inspector.py
│   │   │   │   ├── state.py
│   │   │   │   └── steps
│   │   │   │       ├── __init__.py
│   │   │   │       ├── _guided_conversation.py
│   │   │   │       ├── _llm.py
│   │   │   │       ├── acquire_form_step.py
│   │   │   │       ├── extract_form_fields_step.py
│   │   │   │       ├── fill_form_step.py
│   │   │   │       └── types.py
│   │   │   ├── helpers.py
│   │   │   ├── legacy.py
│   │   │   └── text_includes
│   │   │       ├── artifact_agent_enabled.md
│   │   │       ├── guardrails_prompt.txt
│   │   │       ├── guided_conversation_agent_enabled.md
│   │   │       └── skills_agent_enabled.md
│   │   ├── assistant.code-workspace
│   │   ├── gc_learnings
│   │   │   ├── gc_learnings.md
│   │   │   └── images
│   │   │       ├── gc_conversation_plan_fcn.png
│   │   │       ├── gc_conversation_plan_template.png
│   │   │       ├── gc_execute_plan_callstack.png
│   │   │       ├── gc_functions.png
│   │   │       ├── gc_generate_plan_callstack.png
│   │   │       ├── gc_get_resource_instructions.png
│   │   │       ├── gc_get_termination_instructions.png
│   │   │       ├── gc_kernel_arguments.png
│   │   │       ├── gc_plan_calls.png
│   │   │       ├── gc_termination_instructions.png
│   │   │       ├── sk_get_chat_message_contents.png
│   │   │       ├── sk_inner_get_chat_message_contents.png
│   │   │       ├── sk_send_request_prep.png
│   │   │       └── sk_send_request.png
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   └── skill-assistant
│       ├── .env.example
│       ├── .vscode
│       │   ├── launch.json
│       │   └── settings.json
│       ├── assistant
│       │   ├── __init__.py
│       │   ├── config.py
│       │   ├── logging.py
│       │   ├── skill_assistant.py
│       │   ├── skill_engine_registry.py
│       │   ├── skill_event_mapper.py
│       │   ├── text_includes
│       │   │   └── guardrails_prompt.txt
│       │   └── workbench_helpers.py
│       ├── assistant.code-workspace
│       ├── Makefile
│       ├── pyproject.toml
│       ├── README.md
│       ├── tests
│       │   └── test_setup.py
│       └── uv.lock
├── CLAUDE.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── docs
│   ├── .vscode
│   │   └── settings.json
│   ├── ASSISTANT_CONFIG.md
│   ├── ASSISTANT_DEVELOPMENT_GUIDE.md
│   ├── CUSTOM_APP_REGISTRATION.md
│   ├── HOSTED_ASSISTANT_WITH_LOCAL_MCP_SERVERS.md
│   ├── images
│   │   ├── architecture-animation.gif
│   │   ├── configure_assistant.png
│   │   ├── conversation_canvas_open.png
│   │   ├── conversation_duplicate.png
│   │   ├── conversation_export.png
│   │   ├── conversation_share_dialog.png
│   │   ├── conversation_share_link.png
│   │   ├── dashboard_configured_view.png
│   │   ├── dashboard_view.png
│   │   ├── license_agreement.png
│   │   ├── message_bar.png
│   │   ├── message_inspection.png
│   │   ├── message_link.png
│   │   ├── new_prospector_assistant_dialog.png
│   │   ├── open_conversation_canvas.png
│   │   ├── prospector_example.png
│   │   ├── readme1.png
│   │   ├── readme2.png
│   │   ├── readme3.png
│   │   ├── rewind.png
│   │   ├── signin_page.png
│   │   └── splash_screen.png
│   ├── LOCAL_ASSISTANT_WITH_REMOTE_WORKBENCH.md
│   ├── SETUP_DEV_ENVIRONMENT.md
│   └── WORKBENCH_APP.md
├── examples
│   ├── dotnet
│   │   ├── .editorconfig
│   │   ├── dotnet-01-echo-bot
│   │   │   ├── appsettings.json
│   │   │   ├── dotnet-01-echo-bot.csproj
│   │   │   ├── MyAgent.cs
│   │   │   ├── MyAgentConfig.cs
│   │   │   ├── MyWorkbenchConnector.cs
│   │   │   ├── Program.cs
│   │   │   └── README.md
│   │   ├── dotnet-02-message-types-demo
│   │   │   ├── appsettings.json
│   │   │   ├── ConnectorExtensions.cs
│   │   │   ├── docs
│   │   │   │   ├── abc.png
│   │   │   │   ├── code.png
│   │   │   │   ├── config.png
│   │   │   │   ├── echo.png
│   │   │   │   ├── markdown.png
│   │   │   │   ├── mermaid.png
│   │   │   │   ├── reverse.png
│   │   │   │   └── safety-check.png
│   │   │   ├── dotnet-02-message-types-demo.csproj
│   │   │   ├── MyAgent.cs
│   │   │   ├── MyAgentConfig.cs
│   │   │   ├── MyWorkbenchConnector.cs
│   │   │   ├── Program.cs
│   │   │   └── README.md
│   │   └── dotnet-03-simple-chatbot
│   │       ├── appsettings.json
│   │       ├── ConnectorExtensions.cs
│   │       ├── dotnet-03-simple-chatbot.csproj
│   │       ├── MyAgent.cs
│   │       ├── MyAgentConfig.cs
│   │       ├── MyWorkbenchConnector.cs
│   │       ├── Program.cs
│   │       └── README.md
│   ├── Makefile
│   └── python
│       ├── python-01-echo-bot
│       │   ├── .env.example
│       │   ├── .vscode
│       │   │   ├── launch.json
│       │   │   └── settings.json
│       │   ├── assistant
│       │   │   ├── __init__.py
│       │   │   ├── chat.py
│       │   │   └── config.py
│       │   ├── assistant.code-workspace
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── python-02-simple-chatbot
│       │   ├── .env.example
│       │   ├── .vscode
│       │   │   ├── launch.json
│       │   │   └── settings.json
│       │   ├── assistant
│       │   │   ├── __init__.py
│       │   │   ├── chat.py
│       │   │   ├── config.py
│       │   │   └── text_includes
│       │   │       └── guardrails_prompt.txt
│       │   ├── assistant.code-workspace
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       └── python-03-multimodel-chatbot
│           ├── .env.example
│           ├── .vscode
│           │   ├── launch.json
│           │   └── settings.json
│           ├── assistant
│           │   ├── __init__.py
│           │   ├── chat.py
│           │   ├── config.py
│           │   ├── model_adapters.py
│           │   └── text_includes
│           │       └── guardrails_prompt.txt
│           ├── assistant.code-workspace
│           ├── Makefile
│           ├── pyproject.toml
│           ├── README.md
│           └── uv.lock
├── KNOWN_ISSUES.md
├── libraries
│   ├── dotnet
│   │   ├── .editorconfig
│   │   ├── pack.sh
│   │   ├── README.md
│   │   ├── SemanticWorkbench.sln
│   │   ├── SemanticWorkbench.sln.DotSettings
│   │   └── WorkbenchConnector
│   │       ├── AgentBase.cs
│   │       ├── AgentConfig
│   │       │   ├── AgentConfigBase.cs
│   │       │   ├── AgentConfigPropertyAttribute.cs
│   │       │   └── ConfigUtils.cs
│   │       ├── Constants.cs
│   │       ├── IAgentBase.cs
│   │       ├── icon.png
│   │       ├── Models
│   │       │   ├── Command.cs
│   │       │   ├── Conversation.cs
│   │       │   ├── ConversationEvent.cs
│   │       │   ├── DebugInfo.cs
│   │       │   ├── Insight.cs
│   │       │   ├── Message.cs
│   │       │   ├── MessageMetadata.cs
│   │       │   ├── Participant.cs
│   │       │   ├── Sender.cs
│   │       │   └── ServiceInfo.cs
│   │       ├── Storage
│   │       │   ├── AgentInfo.cs
│   │       │   ├── AgentServiceStorage.cs
│   │       │   └── IAgentServiceStorage.cs
│   │       ├── StringLoggingExtensions.cs
│   │       ├── Webservice.cs
│   │       ├── WorkbenchConfig.cs
│   │       ├── WorkbenchConnector.cs
│   │       └── WorkbenchConnector.csproj
│   ├── Makefile
│   └── python
│       ├── anthropic-client
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── anthropic_client
│       │   │   ├── __init__.py
│       │   │   ├── client.py
│       │   │   ├── config.py
│       │   │   └── messages.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── assistant-data-gen
│       │   ├── .vscode
│       │   │   ├── launch.json
│       │   │   └── settings.json
│       │   ├── assistant_data_gen
│       │   │   ├── __init__.py
│       │   │   ├── assistant_api.py
│       │   │   ├── config.py
│       │   │   ├── gce
│       │   │   │   ├── __init__.py
│       │   │   │   ├── gce_agent.py
│       │   │   │   └── prompts.py
│       │   │   └── pydantic_ai_utils.py
│       │   ├── configs
│       │   │   └── document_assistant_example_config.yaml
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── scripts
│       │   │   ├── gce_simulation.py
│       │   │   └── generate_scenario.py
│       │   └── uv.lock
│       ├── assistant-drive
│       │   ├── .gitignore
│       │   ├── .vscode
│       │   │   ├── extensions.json
│       │   │   └── settings.json
│       │   ├── assistant_drive
│       │   │   ├── __init__.py
│       │   │   ├── drive.py
│       │   │   └── tests
│       │   │       └── test_basic.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── pytest.ini
│       │   ├── README.md
│       │   ├── usage.ipynb
│       │   └── uv.lock
│       ├── assistant-extensions
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── assistant_extensions
│       │   │   ├── __init__.py
│       │   │   ├── ai_clients
│       │   │   │   └── config.py
│       │   │   ├── artifacts
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _artifacts.py
│       │   │   │   ├── _inspector.py
│       │   │   │   └── _model.py
│       │   │   ├── attachments
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _attachments.py
│       │   │   │   ├── _convert.py
│       │   │   │   ├── _model.py
│       │   │   │   ├── _shared.py
│       │   │   │   └── _summarizer.py
│       │   │   ├── chat_context_toolkit
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _config.py
│       │   │   │   ├── archive
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── _archive.py
│       │   │   │   │   └── _summarizer.py
│       │   │   │   ├── message_history
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── _history.py
│       │   │   │   │   └── _message.py
│       │   │   │   └── virtual_filesystem
│       │   │   │       ├── __init__.py
│       │   │   │       ├── _archive_file_source.py
│       │   │   │       └── _attachments_file_source.py
│       │   │   ├── dashboard_card
│       │   │   │   ├── __init__.py
│       │   │   │   └── _dashboard_card.py
│       │   │   ├── document_editor
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _extension.py
│       │   │   │   ├── _inspector.py
│       │   │   │   └── _model.py
│       │   │   ├── mcp
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _assistant_file_resource_handler.py
│       │   │   │   ├── _client_utils.py
│       │   │   │   ├── _devtunnel.py
│       │   │   │   ├── _model.py
│       │   │   │   ├── _openai_utils.py
│       │   │   │   ├── _sampling_handler.py
│       │   │   │   ├── _tool_utils.py
│       │   │   │   └── _workbench_file_resource_handler.py
│       │   │   ├── navigator
│       │   │   │   ├── __init__.py
│       │   │   │   └── _navigator.py
│       │   │   └── workflows
│       │   │       ├── __init__.py
│       │   │       ├── _model.py
│       │   │       ├── _workflows.py
│       │   │       └── runners
│       │   │           └── _user_proxy.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── test
│       │   │   └── attachments
│       │   │       └── test_attachments.py
│       │   └── uv.lock
│       ├── chat-context-toolkit
│       │   ├── .claude
│       │   │   └── settings.local.json
│       │   ├── .env.sample
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── assets
│       │   │   ├── archive_v1.png
│       │   │   ├── history_v1.png
│       │   │   └── vfs_v1.png
│       │   ├── chat_context_toolkit
│       │   │   ├── __init__.py
│       │   │   ├── archive
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _archive_reader.py
│       │   │   │   ├── _archive_task_queue.py
│       │   │   │   ├── _state.py
│       │   │   │   ├── _types.py
│       │   │   │   └── summarization
│       │   │   │       ├── __init__.py
│       │   │   │       └── _summarizer.py
│       │   │   ├── history
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _budget.py
│       │   │   │   ├── _decorators.py
│       │   │   │   ├── _history.py
│       │   │   │   ├── _prioritize.py
│       │   │   │   ├── _types.py
│       │   │   │   └── tool_abbreviations
│       │   │   │       ├── __init__.py
│       │   │   │       └── _tool_abbreviations.py
│       │   │   └── virtual_filesystem
│       │   │       ├── __init__.py
│       │   │       ├── _types.py
│       │   │       ├── _virtual_filesystem.py
│       │   │       ├── README.md
│       │   │       └── tools
│       │   │           ├── __init__.py
│       │   │           ├── _ls_tool.py
│       │   │           ├── _tools.py
│       │   │           └── _view_tool.py
│       │   ├── CLAUDE.md
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── test
│       │   │   ├── archive
│       │   │   │   └── test_archive_reader.py
│       │   │   ├── history
│       │   │   │   ├── test_abbreviate_messages.py
│       │   │   │   ├── test_history.py
│       │   │   │   ├── test_pair_and_order_tool_messages.py
│       │   │   │   ├── test_prioritize.py
│       │   │   │   └── test_truncate_messages.py
│       │   │   └── virtual_filesystem
│       │   │       ├── test_virtual_filesystem.py
│       │   │       └── tools
│       │   │           ├── test_ls_tool.py
│       │   │           ├── test_tools.py
│       │   │           └── test_view_tool.py
│       │   └── uv.lock
│       ├── content-safety
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── content_safety
│       │   │   ├── __init__.py
│       │   │   ├── evaluators
│       │   │   │   ├── __init__.py
│       │   │   │   ├── azure_content_safety
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── config.py
│       │   │   │   │   └── evaluator.py
│       │   │   │   ├── config.py
│       │   │   │   ├── evaluator.py
│       │   │   │   └── openai_moderations
│       │   │   │       ├── __init__.py
│       │   │   │       ├── config.py
│       │   │   │       └── evaluator.py
│       │   │   └── README.md
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── events
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── events
│       │   │   ├── __init__.py
│       │   │   └── events.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── guided-conversation
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── guided_conversation
│       │   │   ├── __init__.py
│       │   │   ├── functions
│       │   │   │   ├── __init__.py
│       │   │   │   ├── conversation_plan.py
│       │   │   │   ├── execution.py
│       │   │   │   └── final_update_plan.py
│       │   │   ├── guided_conversation_agent.py
│       │   │   ├── plugins
│       │   │   │   ├── __init__.py
│       │   │   │   ├── agenda.py
│       │   │   │   └── artifact.py
│       │   │   └── utils
│       │   │       ├── __init__.py
│       │   │       ├── base_model_llm.py
│       │   │       ├── conversation_helpers.py
│       │   │       ├── openai_tool_calling.py
│       │   │       ├── plugin_helpers.py
│       │   │       └── resources.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── llm-client
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── llm_client
│       │   │   ├── __init__.py
│       │   │   └── model.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── Makefile
│       ├── mcp-extensions
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── mcp_extensions
│       │   │   ├── __init__.py
│       │   │   ├── _client_session.py
│       │   │   ├── _model.py
│       │   │   ├── _sampling.py
│       │   │   ├── _server_extensions.py
│       │   │   ├── _tool_utils.py
│       │   │   ├── llm
│       │   │   │   ├── __init__.py
│       │   │   │   ├── chat_completion.py
│       │   │   │   ├── helpers.py
│       │   │   │   ├── llm_types.py
│       │   │   │   ├── mcp_chat_completion.py
│       │   │   │   └── openai_chat_completion.py
│       │   │   └── server
│       │   │       ├── __init__.py
│       │   │       └── storage.py
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── tests
│       │   │   └── test_tool_utils.py
│       │   └── uv.lock
│       ├── mcp-tunnel
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── mcp_tunnel
│       │   │   ├── __init__.py
│       │   │   ├── _devtunnel.py
│       │   │   ├── _dir.py
│       │   │   └── _main.py
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── openai-client
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── openai_client
│       │   │   ├── __init__.py
│       │   │   ├── chat_driver
│       │   │   │   ├── __init__.py
│       │   │   │   ├── chat_driver.ipynb
│       │   │   │   ├── chat_driver.py
│       │   │   │   ├── message_history_providers
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── in_memory_message_history_provider.py
│       │   │   │   │   ├── local_message_history_provider.py
│       │   │   │   │   ├── message_history_provider.py
│       │   │   │   │   └── tests
│       │   │   │   │       └── formatted_instructions_test.py
│       │   │   │   └── README.md
│       │   │   ├── client.py
│       │   │   ├── completion.py
│       │   │   ├── config.py
│       │   │   ├── errors.py
│       │   │   ├── logging.py
│       │   │   ├── messages.py
│       │   │   ├── tokens.py
│       │   │   └── tools.py
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── tests
│       │   │   ├── test_command_parsing.py
│       │   │   ├── test_formatted_messages.py
│       │   │   ├── test_messages.py
│       │   │   └── test_tokens.py
│       │   └── uv.lock
│       ├── semantic-workbench-api-model
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── semantic_workbench_api_model
│       │   │   ├── __init__.py
│       │   │   ├── assistant_model.py
│       │   │   ├── assistant_service_client.py
│       │   │   ├── workbench_model.py
│       │   │   └── workbench_service_client.py
│       │   └── uv.lock
│       ├── semantic-workbench-assistant
│       │   ├── .vscode
│       │   │   ├── launch.json
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── semantic_workbench_assistant
│       │   │   ├── __init__.py
│       │   │   ├── assistant_app
│       │   │   │   ├── __init__.py
│       │   │   │   ├── assistant.py
│       │   │   │   ├── config.py
│       │   │   │   ├── content_safety.py
│       │   │   │   ├── context.py
│       │   │   │   ├── error.py
│       │   │   │   ├── export_import.py
│       │   │   │   ├── protocol.py
│       │   │   │   └── service.py
│       │   │   ├── assistant_service.py
│       │   │   ├── auth.py
│       │   │   ├── canonical.py
│       │   │   ├── command.py
│       │   │   ├── config.py
│       │   │   ├── logging_config.py
│       │   │   ├── settings.py
│       │   │   ├── start.py
│       │   │   └── storage.py
│       │   ├── tests
│       │   │   ├── conftest.py
│       │   │   ├── test_assistant_app.py
│       │   │   ├── test_canonical.py
│       │   │   ├── test_config.py
│       │   │   └── test_storage.py
│       │   └── uv.lock
│       └── skills
│           ├── .vscode
│           │   └── settings.json
│           ├── Makefile
│           ├── README.md
│           └── skill-library
│               ├── .vscode
│               │   └── settings.json
│               ├── docs
│               │   └── vs-recipe-tool.md
│               ├── Makefile
│               ├── pyproject.toml
│               ├── README.md
│               ├── skill_library
│               │   ├── __init__.py
│               │   ├── chat_driver_helpers.py
│               │   ├── cli
│               │   │   ├── azure_openai.py
│               │   │   ├── conversation_history.py
│               │   │   ├── README.md
│               │   │   ├── run_routine.py
│               │   │   ├── settings.py
│               │   │   └── skill_logger.py
│               │   ├── engine.py
│               │   ├── llm_info.txt
│               │   ├── logging.py
│               │   ├── README.md
│               │   ├── routine_stack.py
│               │   ├── skill.py
│               │   ├── skills
│               │   │   ├── common
│               │   │   │   ├── __init__.py
│               │   │   │   ├── common_skill.py
│               │   │   │   └── routines
│               │   │   │       ├── bing_search.py
│               │   │   │       ├── consolidate.py
│               │   │   │       ├── echo.py
│               │   │   │       ├── gather_context.py
│               │   │   │       ├── get_content_from_url.py
│               │   │   │       ├── gpt_complete.py
│               │   │   │       ├── select_user_intent.py
│               │   │   │       └── summarize.py
│               │   │   ├── eval
│               │   │   │   ├── __init__.py
│               │   │   │   ├── eval_skill.py
│               │   │   │   └── routines
│               │   │   │       └── eval.py
│               │   │   ├── fabric
│               │   │   │   ├── __init__.py
│               │   │   │   ├── fabric_skill.py
│               │   │   │   ├── patterns
│               │   │   │   │   ├── agility_story
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── ai
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_answers
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_candidates
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_cfp_submission
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_claims
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_comments
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_debate
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_email_headers
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_incident
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_interviewer_techniques
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_logs
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_malware
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_military_strategy
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_mistakes
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_paper
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_patent
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_personality
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_presentation
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_product_feedback
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_proposition
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_prose
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_prose_json
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_prose_pinker
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_risk
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_sales_call
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_spiritual_text
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_tech_impact
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_threat_report
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_threat_report_cmds
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_threat_report_trends
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── answer_interview_question
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── ask_secure_by_design_questions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── ask_uncle_duke
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── capture_thinkers_work
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── check_agreement
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── clean_text
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── coding_master
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── compare_and_contrast
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── convert_to_markdown
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_5_sentence_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_academic_paper
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_ai_jobs_analysis
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_aphorisms
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_art_prompt
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_better_frame
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_coding_project
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_command
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_cyber_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_design_document
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_diy
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_formal_email
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_git_diff_commit
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_graph_from_input
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_hormozi_offer
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_idea_compass
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_investigation_visualization
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_keynote
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_logo
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_markmap_visualization
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_mermaid_visualization
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_mermaid_visualization_for_github
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_micro_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_network_threat_landscape
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_newsletter_entry
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_npc
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_pattern
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_prd
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_prediction_block
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_quiz
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_reading_plan
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_recursive_outline
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_report_finding
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_rpg_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_security_update
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_show_intro
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_sigma_rules
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_story_explanation
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_stride_threat_model
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_tags
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_threat_scenarios
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_ttrc_graph
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_ttrc_narrative
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_upgrade_pack
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_user_story
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_video_chapters
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_visualization
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── dialog_with_socrates
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── enrich_blog_post
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── explain_code
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── explain_docs
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── explain_math
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── explain_project
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── explain_terms
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── export_data_as_csv
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_algorithm_update_recommendations
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_article_wisdom
│               │   │   │   │   │   ├── dmiessler
│               │   │   │   │   │   │   └── extract_wisdom-1.0.0
│               │   │   │   │   │   │       ├── system.md
│               │   │   │   │   │   │       └── user.md
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_book_ideas
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_book_recommendations
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_business_ideas
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_controversial_ideas
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_core_message
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_ctf_writeup
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_domains
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_extraordinary_claims
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_ideas
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_insights
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_insights_dm
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_instructions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_jokes
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_latest_video
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_main_idea
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_most_redeeming_thing
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_patterns
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_poc
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_predictions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_primary_problem
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_primary_solution
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_product_features
│               │   │   │   │   │   ├── dmiessler
│               │   │   │   │   │   │   └── extract_wisdom-1.0.0
│               │   │   │   │   │   │       ├── system.md
│               │   │   │   │   │   │       └── user.md
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_questions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_recipe
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_recommendations
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_references
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_skills
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_song_meaning
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_sponsors
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_videoid
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_wisdom
│               │   │   │   │   │   ├── dmiessler
│               │   │   │   │   │   │   └── extract_wisdom-1.0.0
│               │   │   │   │   │   │       ├── system.md
│               │   │   │   │   │   │       └── user.md
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_wisdom_agents
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_wisdom_dm
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_wisdom_nometa
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── find_hidden_message
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── find_logical_fallacies
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── get_wow_per_minute
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── get_youtube_rss
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── humanize
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_dsrp_distinctions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_dsrp_perspectives
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_dsrp_relationships
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_dsrp_systems
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_job_stories
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── improve_academic_writing
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── improve_prompt
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── improve_report_finding
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── improve_writing
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── judge_output
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── label_and_rate
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── loaded
│               │   │   │   │   ├── md_callout
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── official_pattern_template
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── pattern_explanations.md
│               │   │   │   │   ├── prepare_7s_strategy
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── provide_guidance
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── rate_ai_response
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── rate_ai_result
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── rate_content
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── rate_value
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── raw_query
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── raycast
│               │   │   │   │   │   ├── capture_thinkers_work
│               │   │   │   │   │   ├── create_story_explanation
│               │   │   │   │   │   ├── extract_primary_problem
│               │   │   │   │   │   ├── extract_wisdom
│               │   │   │   │   │   └── yt
│               │   │   │   │   ├── recommend_artists
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── recommend_pipeline_upgrades
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── recommend_talkpanel_topics
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── refine_design_document
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── review_design
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── sanitize_broken_html_to_markdown
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── show_fabric_options_markmap
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── solve_with_cot
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── stringify
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── suggest_pattern
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize
│               │   │   │   │   │   ├── dmiessler
│               │   │   │   │   │   │   └── summarize
│               │   │   │   │   │   │       ├── system.md
│               │   │   │   │   │   │       └── user.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_debate
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_git_changes
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_git_diff
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_lecture
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_legislation
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_meeting
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_micro
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_newsletter
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_paper
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_prompt
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_pull-requests
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_rpg_session
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_analyze_challenge_handling
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_check_metrics
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_create_h3_career
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_create_opening_sentences
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_describe_life_outlook
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_extract_intro_sentences
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_extract_panel_topics
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_find_blindspots
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_find_negative_thinking
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_find_neglected_goals
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_give_encouragement
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_red_team_thinking
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_threat_model_plans
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_visualize_mission_goals_projects
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_year_in_review
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── to_flashcards
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── transcribe_minutes
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── translate
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── tweet
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_essay
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_hackerone_report
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_latex
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_micro_essay
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_nuclei_template_rule
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── write_pull-request
│               │   │   │   │   │   └── system.md
│               │   │   │   │   └── write_semgrep_rule
│               │   │   │   │       ├── system.md
│               │   │   │   │       └── user.md
│               │   │   │   └── routines
│               │   │   │       ├── list.py
│               │   │   │       ├── run.py
│               │   │   │       └── show.py
│               │   │   ├── guided_conversation
│               │   │   │   ├── __init__.py
│               │   │   │   ├── agenda.py
│               │   │   │   ├── artifact_helpers.py
│               │   │   │   ├── chat_completions
│               │   │   │   │   ├── fix_agenda_error.py
│               │   │   │   │   ├── fix_artifact_error.py
│               │   │   │   │   ├── generate_agenda.py
│               │   │   │   │   ├── generate_artifact_updates.py
│               │   │   │   │   ├── generate_final_artifact.py
│               │   │   │   │   └── generate_message.py
│               │   │   │   ├── conversation_guides
│               │   │   │   │   ├── __init__.py
│               │   │   │   │   ├── acrostic_poem.py
│               │   │   │   │   ├── er_triage.py
│               │   │   │   │   ├── interview.py
│               │   │   │   │   └── patient_intake.py
│               │   │   │   ├── guide.py
│               │   │   │   ├── guided_conversation_skill.py
│               │   │   │   ├── logging.py
│               │   │   │   ├── message.py
│               │   │   │   ├── resources.py
│               │   │   │   ├── routines
│               │   │   │   │   └── guided_conversation.py
│               │   │   │   └── tests
│               │   │   │       ├── conftest.py
│               │   │   │       ├── test_artifact_helpers.py
│               │   │   │       ├── test_generate_agenda.py
│               │   │   │       ├── test_generate_artifact_updates.py
│               │   │   │       ├── test_generate_final_artifact.py
│               │   │   │       └── test_resource.py
│               │   │   ├── meta
│               │   │   │   ├── __init__.py
│               │   │   │   ├── meta_skill.py
│               │   │   │   ├── README.md
│               │   │   │   └── routines
│               │   │   │       └── generate_routine.py
│               │   │   ├── posix
│               │   │   │   ├── __init__.py
│               │   │   │   ├── posix_skill.py
│               │   │   │   ├── routines
│               │   │   │   │   ├── append_file.py
│               │   │   │   │   ├── cd.py
│               │   │   │   │   ├── ls.py
│               │   │   │   │   ├── make_home_dir.py
│               │   │   │   │   ├── mkdir.py
│               │   │   │   │   ├── mv.py
│               │   │   │   │   ├── pwd.py
│               │   │   │   │   ├── read_file.py
│               │   │   │   │   ├── rm.py
│               │   │   │   │   ├── touch.py
│               │   │   │   │   └── write_file.py
│               │   │   │   └── sandbox_shell.py
│               │   │   ├── README.md
│               │   │   ├── research
│               │   │   │   ├── __init__.py
│               │   │   │   ├── README.md
│               │   │   │   ├── research_skill.py
│               │   │   │   └── routines
│               │   │   │       ├── answer_question_about_content.py
│               │   │   │       ├── evaluate_answer.py
│               │   │   │       ├── generate_research_plan.py
│               │   │   │       ├── generate_search_query.py
│               │   │   │       ├── update_research_plan.py
│               │   │   │       ├── web_research.py
│               │   │   │       └── web_search.py
│               │   │   ├── research2
│               │   │   │   ├── __init__.py
│               │   │   │   ├── README.md
│               │   │   │   ├── research_skill.py
│               │   │   │   └── routines
│               │   │   │       ├── facts.py
│               │   │   │       ├── make_final_report.py
│               │   │   │       ├── research.py
│               │   │   │       ├── search_plan.py
│               │   │   │       ├── search.py
│               │   │   │       └── visit_pages.py
│               │   │   └── web_research
│               │   │       ├── __init__.py
│               │   │       ├── README.md
│               │   │       ├── research_skill.py
│               │   │       └── routines
│               │   │           ├── facts.py
│               │   │           ├── make_final_report.py
│               │   │           ├── research.py
│               │   │           ├── search_plan.py
│               │   │           ├── search.py
│               │   │           └── visit_pages.py
│               │   ├── tests
│               │   │   ├── test_common_skill.py
│               │   │   ├── test_integration.py
│               │   │   ├── test_routine_stack.py
│               │   │   ├── tst_skill
│               │   │   │   ├── __init__.py
│               │   │   │   └── routines
│               │   │   │       ├── __init__.py
│               │   │   │       └── a_routine.py
│               │   │   └── utilities
│               │   │       ├── test_find_template_vars.py
│               │   │       ├── test_make_arg_set.py
│               │   │       ├── test_paramspec.py
│               │   │       ├── test_parse_command_string.py
│               │   │       └── test_to_string.py
│               │   ├── types.py
│               │   ├── usage.py
│               │   └── utilities.py
│               └── uv.lock
├── LICENSE
├── Makefile
├── mcp-servers
│   ├── ai-assist-content
│   │   ├── .vscode
│   │   │   └── settings.json
│   │   ├── mcp-example-brave-search.md
│   │   ├── mcp-fastmcp-typescript-README.md
│   │   ├── mcp-llms-full.txt
│   │   ├── mcp-metadata-tips.md
│   │   ├── mcp-python-sdk-README.md
│   │   ├── mcp-typescript-sdk-README.md
│   │   ├── pydanticai-documentation.md
│   │   ├── pydanticai-example-question-graph.md
│   │   ├── pydanticai-example-weather.md
│   │   ├── pydanticai-tutorial.md
│   │   └── README.md
│   ├── Makefile
│   ├── mcp-server-bing-search
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_bing_search
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── prompts
│   │   │   │   ├── __init__.py
│   │   │   │   ├── clean_website.py
│   │   │   │   └── filter_links.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   ├── tools.py
│   │   │   ├── types.py
│   │   │   ├── utils.py
│   │   │   └── web
│   │   │       ├── __init__.py
│   │   │       ├── get_content.py
│   │   │       ├── llm_processing.py
│   │   │       ├── process_website.py
│   │   │       └── search_bing.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   └── test_tools.py
│   │   └── uv.lock
│   ├── mcp-server-bundle
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_bundle
│   │   │   ├── __init__.py
│   │   │   └── main.py
│   │   ├── pyinstaller.spec
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-filesystem
│   │   ├── .env.example
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── ci.yml
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_filesystem
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── server.py
│   │   │   └── start.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   └── test_filesystem.py
│   │   └── uv.lock
│   ├── mcp-server-filesystem-edit
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── data
│   │   │   ├── attachments
│   │   │   │   ├── Daily Game Ideas.txt
│   │   │   │   ├── Frontend Framework Proposal.txt
│   │   │   │   ├── ReDoodle.txt
│   │   │   │   └── Research Template.tex
│   │   │   ├── test_cases.yaml
│   │   │   └── transcripts
│   │   │       ├── transcript_research_simple.md
│   │   │       ├── transcript_Startup_Idea_1_202503031513.md
│   │   │       ├── transcript_Startup_Idea_2_202503031659.md
│   │   │       └── transcript_Web_Frontends_202502281551.md
│   │   ├── Makefile
│   │   ├── mcp_server_filesystem_edit
│   │   │   ├── __init__.py
│   │   │   ├── app_handling
│   │   │   │   ├── __init__.py
│   │   │   │   ├── excel.py
│   │   │   │   ├── miktex.py
│   │   │   │   ├── office_common.py
│   │   │   │   ├── powerpoint.py
│   │   │   │   └── word.py
│   │   │   ├── config.py
│   │   │   ├── evals
│   │   │   │   ├── __init__.py
│   │   │   │   ├── common.py
│   │   │   │   ├── run_comments.py
│   │   │   │   ├── run_edit.py
│   │   │   │   └── run_ppt_edit.py
│   │   │   ├── prompts
│   │   │   │   ├── __init__.py
│   │   │   │   ├── add_comments.py
│   │   │   │   ├── analyze_comments.py
│   │   │   │   ├── latex_edit.py
│   │   │   │   ├── markdown_draft.py
│   │   │   │   ├── markdown_edit.py
│   │   │   │   └── powerpoint_edit.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   ├── tools
│   │   │   │   ├── __init__.py
│   │   │   │   ├── add_comments.py
│   │   │   │   ├── edit_adapters
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── common.py
│   │   │   │   │   ├── latex.py
│   │   │   │   │   └── markdown.py
│   │   │   │   ├── edit.py
│   │   │   │   └── helpers.py
│   │   │   └── types.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── app_handling
│   │   │   │   ├── test_excel.py
│   │   │   │   ├── test_miktext.py
│   │   │   │   ├── test_office_common.py
│   │   │   │   ├── test_powerpoint.py
│   │   │   │   └── test_word.py
│   │   │   ├── conftest.py
│   │   │   └── tools
│   │   │       └── edit_adapters
│   │   │           ├── test_latex.py
│   │   │           └── test_markdown.py
│   │   └── uv.lock
│   ├── mcp-server-fusion
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── AddInIcon.svg
│   │   ├── config.py
│   │   ├── FusionMCPServerAddIn.manifest
│   │   ├── FusionMCPServerAddIn.py
│   │   ├── mcp_server_fusion
│   │   │   ├── __init__.py
│   │   │   ├── fusion_mcp_server.py
│   │   │   ├── fusion_utils
│   │   │   │   ├── __init__.py
│   │   │   │   ├── event_utils.py
│   │   │   │   ├── general_utils.py
│   │   │   │   └── tool_utils.py
│   │   │   ├── mcp_tools
│   │   │   │   ├── __init__.py
│   │   │   │   ├── fusion_3d_operation.py
│   │   │   │   ├── fusion_geometry.py
│   │   │   │   ├── fusion_pattern.py
│   │   │   │   └── fusion_sketch.py
│   │   │   └── vendor
│   │   │       └── README.md
│   │   ├── README.md
│   │   └── requirements.txt
│   ├── mcp-server-giphy
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── giphy_search.py
│   │   │   ├── sampling.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   └── utils.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-memory-user-bio
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_memory_user_bio
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── server.py
│   │   │   └── start.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-memory-whiteboard
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_memory_whiteboard
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── server.py
│   │   │   └── start.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-office
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── build.sh
│   │   ├── data
│   │   │   ├── attachments
│   │   │   │   ├── Daily Game Ideas.txt
│   │   │   │   ├── Frontend Framework Proposal.txt
│   │   │   │   └── ReDoodle.txt
│   │   │   └── word
│   │   │       ├── test_cases.yaml
│   │   │       └── transcripts
│   │   │           ├── transcript_Startup_Idea_1_202503031513.md
│   │   │           ├── transcript_Startup_Idea_2_202503031659.md
│   │   │           └── transcript_Web_Frontends_202502281551.md
│   │   ├── Makefile
│   │   ├── mcp_server
│   │   │   ├── __init__.py
│   │   │   ├── app_interaction
│   │   │   │   ├── __init__.py
│   │   │   │   ├── excel_editor.py
│   │   │   │   ├── powerpoint_editor.py
│   │   │   │   └── word_editor.py
│   │   │   ├── config.py
│   │   │   ├── constants.py
│   │   │   ├── evals
│   │   │   │   ├── __init__.py
│   │   │   │   ├── common.py
│   │   │   │   ├── run_comment_analysis.py
│   │   │   │   ├── run_feedback.py
│   │   │   │   └── run_markdown_edit.py
│   │   │   ├── helpers.py
│   │   │   ├── markdown_edit
│   │   │   │   ├── __init__.py
│   │   │   │   ├── comment_analysis.py
│   │   │   │   ├── feedback_step.py
│   │   │   │   ├── markdown_edit.py
│   │   │   │   └── utils.py
│   │   │   ├── prompts
│   │   │   │   ├── __init__.py
│   │   │   │   ├── comment_analysis.py
│   │   │   │   ├── feedback.py
│   │   │   │   ├── markdown_draft.py
│   │   │   │   └── markdown_edit.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   └── types.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   └── test_word_editor.py
│   │   └── uv.lock
│   ├── mcp-server-open-deep-research
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── libs
│   │   │   │   └── open_deep_research
│   │   │   │       ├── cookies.py
│   │   │   │       ├── mdconvert.py
│   │   │   │       ├── run_agents.py
│   │   │   │       ├── text_inspector_tool.py
│   │   │   │       ├── text_web_browser.py
│   │   │   │       └── visual_qa.py
│   │   │   ├── open_deep_research.py
│   │   │   ├── server.py
│   │   │   └── start.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-open-deep-research-clone
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_open_deep_research_clone
│   │   │   ├── __init__.py
│   │   │   ├── azure_openai.py
│   │   │   ├── config.py
│   │   │   ├── logging.py
│   │   │   ├── sampling.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   ├── utils.py
│   │   │   └── web_research.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── test
│   │   │   └── test_open_deep_research_clone.py
│   │   └── uv.lock
│   ├── mcp-server-template
│   │   ├── .taplo.toml
│   │   ├── .vscode
│   │   │   └── settings.json
│   │   ├── copier.yml
│   │   ├── README.md
│   │   └── template
│   │       └── {{ project_slug }}
│   │           ├── .env.example.jinja
│   │           ├── .gitignore
│   │           ├── .vscode
│   │           │   ├── launch.json.jinja
│   │           │   └── settings.json
│   │           ├── {{ module_name }}
│   │           │   ├── __init__.py
│   │           │   ├── config.py.jinja
│   │           │   ├── server.py.jinja
│   │           │   └── start.py.jinja
│   │           ├── Makefile.jinja
│   │           ├── pyproject.toml.jinja
│   │           └── README.md.jinja
│   ├── mcp-server-vscode
│   │   ├── .eslintrc.cjs
│   │   ├── .gitignore
│   │   ├── .npmrc
│   │   ├── .vscode
│   │   │   ├── extensions.json
│   │   │   ├── launch.json
│   │   │   ├── settings.json
│   │   │   └── tasks.json
│   │   ├── .vscode-test.mjs
│   │   ├── .vscodeignore
│   │   ├── ASSISTANT_BOOTSTRAP.md
│   │   ├── eslint.config.mjs
│   │   ├── images
│   │   │   └── icon.png
│   │   ├── LICENSE
│   │   ├── Makefile
│   │   ├── out
│   │   │   ├── extension.d.ts
│   │   │   ├── extension.js
│   │   │   ├── test
│   │   │   │   ├── extension.test.d.ts
│   │   │   │   └── extension.test.js
│   │   │   ├── tools
│   │   │   │   ├── code_checker.d.ts
│   │   │   │   ├── code_checker.js
│   │   │   │   ├── debug_tools.d.ts
│   │   │   │   ├── debug_tools.js
│   │   │   │   ├── focus_editor.d.ts
│   │   │   │   ├── focus_editor.js
│   │   │   │   ├── search_symbol.d.ts
│   │   │   │   └── search_symbol.js
│   │   │   └── utils
│   │   │       ├── port.d.ts
│   │   │       └── port.js
│   │   ├── package.json
│   │   ├── pnpm-lock.yaml
│   │   ├── prettier.config.cjs
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── extension.d.ts
│   │   │   ├── extension.ts
│   │   │   ├── test
│   │   │   │   ├── extension.test.d.ts
│   │   │   │   └── extension.test.ts
│   │   │   ├── tools
│   │   │   │   ├── code_checker.d.ts
│   │   │   │   ├── code_checker.ts
│   │   │   │   ├── debug_tools.d.ts
│   │   │   │   ├── debug_tools.ts
│   │   │   │   ├── focus_editor.d.ts
│   │   │   │   ├── focus_editor.ts
│   │   │   │   ├── search_symbol.d.ts
│   │   │   │   └── search_symbol.ts
│   │   │   └── utils
│   │   │       ├── port.d.ts
│   │   │       └── port.ts
│   │   ├── tsconfig.json
│   │   ├── tsconfig.tsbuildinfo
│   │   ├── vsc-extension-quickstart.md
│   │   └── webpack.config.js
│   └── mcp-server-web-research
│       ├── .env.example
│       ├── .gitignore
│       ├── .vscode
│       │   ├── launch.json
│       │   └── settings.json
│       ├── Makefile
│       ├── mcp_server_web_research
│       │   ├── __init__.py
│       │   ├── azure_openai.py
│       │   ├── config.py
│       │   ├── logging.py
│       │   ├── sampling.py
│       │   ├── server.py
│       │   ├── start.py
│       │   ├── utils.py
│       │   └── web_research.py
│       ├── pyproject.toml
│       ├── README.md
│       ├── test
│       │   └── test_web_research.py
│       └── uv.lock
├── README.md
├── RESPONSIBLE_AI_FAQ.md
├── ruff.toml
├── SECURITY.md
├── semantic-workbench.code-workspace
├── SUPPORT.md
├── tools
│   ├── build_ai_context_files.py
│   ├── collect_files.py
│   ├── docker
│   │   ├── azure_website_sshd.conf
│   │   ├── docker-entrypoint.sh
│   │   ├── Dockerfile.assistant
│   │   └── Dockerfile.mcp-server
│   ├── makefiles
│   │   ├── docker-assistant.mk
│   │   ├── docker-mcp-server.mk
│   │   ├── docker.mk
│   │   ├── python.mk
│   │   ├── recursive.mk
│   │   └── shell.mk
│   ├── reset-service-data.ps1
│   ├── reset-service-data.sh
│   ├── run-app.ps1
│   ├── run-app.sh
│   ├── run-canonical-agent.ps1
│   ├── run-canonical-agent.sh
│   ├── run-dotnet-examples-with-aspire.sh
│   ├── run-python-example1.sh
│   ├── run-python-example2.ps1
│   ├── run-python-example2.sh
│   ├── run-service.ps1
│   ├── run-service.sh
│   ├── run-workbench-chatbot.ps1
│   └── run-workbench-chatbot.sh
├── workbench-app
│   ├── .dockerignore
│   ├── .env.example
│   ├── .eslintrc.cjs
│   ├── .gitignore
│   ├── .vscode
│   │   ├── launch.json
│   │   └── settings.json
│   ├── docker-entrypoint.sh
│   ├── Dockerfile
│   ├── docs
│   │   ├── APP_DEV_GUIDE.md
│   │   ├── MESSAGE_METADATA.md
│   │   ├── MESSAGE_TYPES.md
│   │   ├── README.md
│   │   └── STATE_INSPECTORS.md
│   ├── index.html
│   ├── Makefile
│   ├── nginx.conf
│   ├── package.json
│   ├── pnpm-lock.yaml
│   ├── prettier.config.cjs
│   ├── public
│   │   └── assets
│   │       ├── background-1-upscaled.jpg
│   │       ├── background-1-upscaled.png
│   │       ├── background-1.jpg
│   │       ├── background-1.png
│   │       ├── background-2.jpg
│   │       ├── background-2.png
│   │       ├── experimental-feature.jpg
│   │       ├── favicon.svg
│   │       ├── workflow-designer-1.jpg
│   │       ├── workflow-designer-outlets.jpg
│   │       ├── workflow-designer-states.jpg
│   │       └── workflow-designer-transitions.jpg
│   ├── README.md
│   ├── run.sh
│   ├── src
│   │   ├── components
│   │   │   ├── App
│   │   │   │   ├── AppFooter.tsx
│   │   │   │   ├── AppHeader.tsx
│   │   │   │   ├── AppMenu.tsx
│   │   │   │   ├── AppView.tsx
│   │   │   │   ├── CodeLabel.tsx
│   │   │   │   ├── CommandButton.tsx
│   │   │   │   ├── ConfirmLeave.tsx
│   │   │   │   ├── ContentExport.tsx
│   │   │   │   ├── ContentImport.tsx
│   │   │   │   ├── CopyButton.tsx
│   │   │   │   ├── DialogControl.tsx
│   │   │   │   ├── DynamicIframe.tsx
│   │   │   │   ├── ErrorListFromAppState.tsx
│   │   │   │   ├── ErrorMessageBar.tsx
│   │   │   │   ├── ExperimentalNotice.tsx
│   │   │   │   ├── FormWidgets
│   │   │   │   │   ├── BaseModelEditorWidget.tsx
│   │   │   │   │   ├── CustomizedArrayFieldTemplate.tsx
│   │   │   │   │   ├── CustomizedFieldTemplate.tsx
│   │   │   │   │   ├── CustomizedObjectFieldTemplate.tsx
│   │   │   │   │   └── InspectableWidget.tsx
│   │   │   │   ├── LabelWithDescription.tsx
│   │   │   │   ├── Loading.tsx
│   │   │   │   ├── MenuItemControl.tsx
│   │   │   │   ├── MiniControl.tsx
│   │   │   │   ├── MyAssistantServiceRegistrations.tsx
│   │   │   │   ├── MyItemsManager.tsx
│   │   │   │   ├── OverflowMenu.tsx
│   │   │   │   ├── PresenceMotionList.tsx
│   │   │   │   ├── ProfileSettings.tsx
│   │   │   │   └── TooltipWrapper.tsx
│   │   │   ├── Assistants
│   │   │   │   ├── ApplyConfigButton.tsx
│   │   │   │   ├── AssistantAdd.tsx
│   │   │   │   ├── AssistantConfigExportButton.tsx
│   │   │   │   ├── AssistantConfigImportButton.tsx
│   │   │   │   ├── AssistantConfiguration.tsx
│   │   │   │   ├── AssistantConfigure.tsx
│   │   │   │   ├── AssistantCreate.tsx
│   │   │   │   ├── AssistantDelete.tsx
│   │   │   │   ├── AssistantDuplicate.tsx
│   │   │   │   ├── AssistantExport.tsx
│   │   │   │   ├── AssistantImport.tsx
│   │   │   │   ├── AssistantRemove.tsx
│   │   │   │   ├── AssistantRename.tsx
│   │   │   │   ├── AssistantServiceInfo.tsx
│   │   │   │   ├── AssistantServiceMetadata.tsx
│   │   │   │   └── MyAssistants.tsx
│   │   │   ├── AssistantServiceRegistrations
│   │   │   │   ├── AssistantServiceRegistrationApiKey.tsx
│   │   │   │   ├── AssistantServiceRegistrationApiKeyReset.tsx
│   │   │   │   ├── AssistantServiceRegistrationCreate.tsx
│   │   │   │   └── AssistantServiceRegistrationRemove.tsx
│   │   │   ├── Conversations
│   │   │   │   ├── Canvas
│   │   │   │   │   ├── AssistantCanvas.tsx
│   │   │   │   │   ├── AssistantCanvasList.tsx
│   │   │   │   │   ├── AssistantInspector.tsx
│   │   │   │   │   ├── AssistantInspectorList.tsx
│   │   │   │   │   └── ConversationCanvas.tsx
│   │   │   │   ├── ChatInputPlugins
│   │   │   │   │   ├── ClearEditorPlugin.tsx
│   │   │   │   │   ├── LexicalMenu.ts
│   │   │   │   │   ├── ParticipantMentionsPlugin.tsx
│   │   │   │   │   ├── TypeaheadMenuPlugin.css
│   │   │   │   │   └── TypeaheadMenuPlugin.tsx
│   │   │   │   ├── ContentRenderers
│   │   │   │   │   ├── CodeContentRenderer.tsx
│   │   │   │   │   ├── ContentListRenderer.tsx
│   │   │   │   │   ├── ContentRenderer.tsx
│   │   │   │   │   ├── DiffRenderer.tsx
│   │   │   │   │   ├── HtmlContentRenderer.tsx
│   │   │   │   │   ├── JsonSchemaContentRenderer.tsx
│   │   │   │   │   ├── MarkdownContentRenderer.tsx
│   │   │   │   │   ├── MarkdownEditorRenderer.tsx
│   │   │   │   │   ├── MermaidContentRenderer.tsx
│   │   │   │   │   ├── MusicABCContentRenderer.css
│   │   │   │   │   └── MusicABCContentRenderer.tsx
│   │   │   │   ├── ContextWindow.tsx
│   │   │   │   ├── ConversationCreate.tsx
│   │   │   │   ├── ConversationDuplicate.tsx
│   │   │   │   ├── ConversationExport.tsx
│   │   │   │   ├── ConversationFileIcon.tsx
│   │   │   │   ├── ConversationRemove.tsx
│   │   │   │   ├── ConversationRename.tsx
│   │   │   │   ├── ConversationShare.tsx
│   │   │   │   ├── ConversationShareCreate.tsx
│   │   │   │   ├── ConversationShareList.tsx
│   │   │   │   ├── ConversationShareView.tsx
│   │   │   │   ├── ConversationsImport.tsx
│   │   │   │   ├── ConversationTranscript.tsx
│   │   │   │   ├── DebugInspector.tsx
│   │   │   │   ├── FileItem.tsx
│   │   │   │   ├── FileList.tsx
│   │   │   │   ├── InputAttachmentList.tsx
│   │   │   │   ├── InputOptionsControl.tsx
│   │   │   │   ├── InteractHistory.tsx
│   │   │   │   ├── InteractInput.tsx
│   │   │   │   ├── Message
│   │   │   │   │   ├── AttachmentSection.tsx
│   │   │   │   │   ├── ContentRenderer.tsx
│   │   │   │   │   ├── ContentSafetyNotice.tsx
│   │   │   │   │   ├── InteractMessage.tsx
│   │   │   │   │   ├── MessageActions.tsx
│   │   │   │   │   ├── MessageBase.tsx
│   │   │   │   │   ├── MessageBody.tsx
│   │   │   │   │   ├── MessageContent.tsx
│   │   │   │   │   ├── MessageFooter.tsx
│   │   │   │   │   ├── MessageHeader.tsx
│   │   │   │   │   ├── NotificationAccordion.tsx
│   │   │   │   │   └── ToolResultMessage.tsx
│   │   │   │   ├── MessageDelete.tsx
│   │   │   │   ├── MessageLink.tsx
│   │   │   │   ├── MyConversations.tsx
│   │   │   │   ├── MyShares.tsx
│   │   │   │   ├── ParticipantAvatar.tsx
│   │   │   │   ├── ParticipantAvatarGroup.tsx
│   │   │   │   ├── ParticipantItem.tsx
│   │   │   │   ├── ParticipantList.tsx
│   │   │   │   ├── ParticipantStatus.tsx
│   │   │   │   ├── RewindConversation.tsx
│   │   │   │   ├── ShareRemove.tsx
│   │   │   │   ├── SpeechButton.tsx
│   │   │   │   └── ToolCalls.tsx
│   │   │   └── FrontDoor
│   │   │       ├── Chat
│   │   │       │   ├── AssistantDrawer.tsx
│   │   │       │   ├── CanvasDrawer.tsx
│   │   │       │   ├── Chat.tsx
│   │   │       │   ├── ChatCanvas.tsx
│   │   │       │   ├── ChatControls.tsx
│   │   │       │   └── ConversationDrawer.tsx
│   │   │       ├── Controls
│   │   │       │   ├── AssistantCard.tsx
│   │   │       │   ├── AssistantSelector.tsx
│   │   │       │   ├── AssistantServiceSelector.tsx
│   │   │       │   ├── ConversationItem.tsx
│   │   │       │   ├── ConversationList.tsx
│   │   │       │   ├── ConversationListOptions.tsx
│   │   │       │   ├── NewConversationButton.tsx
│   │   │       │   ├── NewConversationForm.tsx
│   │   │       │   └── SiteMenuButton.tsx
│   │   │       ├── GlobalContent.tsx
│   │   │       └── MainContent.tsx
│   │   ├── Constants.ts
│   │   ├── global.d.ts
│   │   ├── index.css
│   │   ├── libs
│   │   │   ├── AppStorage.ts
│   │   │   ├── AuthHelper.ts
│   │   │   ├── EventSubscriptionManager.ts
│   │   │   ├── Theme.ts
│   │   │   ├── useAssistantCapabilities.ts
│   │   │   ├── useChatCanvasController.ts
│   │   │   ├── useConversationEvents.ts
│   │   │   ├── useConversationUtility.ts
│   │   │   ├── useCreateConversation.ts
│   │   │   ├── useDebugComponentLifecycle.ts
│   │   │   ├── useDragAndDrop.ts
│   │   │   ├── useEnvironment.ts
│   │   │   ├── useExportUtility.ts
│   │   │   ├── useHistoryUtility.ts
│   │   │   ├── useKeySequence.ts
│   │   │   ├── useMediaQuery.ts
│   │   │   ├── useMicrosoftGraph.ts
│   │   │   ├── useNotify.tsx
│   │   │   ├── useParticipantUtility.tsx
│   │   │   ├── useSiteUtility.ts
│   │   │   ├── useWorkbenchEventSource.ts
│   │   │   ├── useWorkbenchService.ts
│   │   │   └── Utility.ts
│   │   ├── main.tsx
│   │   ├── models
│   │   │   ├── Assistant.ts
│   │   │   ├── AssistantCapability.ts
│   │   │   ├── AssistantServiceInfo.ts
│   │   │   ├── AssistantServiceRegistration.ts
│   │   │   ├── Config.ts
│   │   │   ├── Conversation.ts
│   │   │   ├── ConversationFile.ts
│   │   │   ├── ConversationMessage.ts
│   │   │   ├── ConversationMessageDebug.ts
│   │   │   ├── ConversationParticipant.ts
│   │   │   ├── ConversationShare.ts
│   │   │   ├── ConversationShareRedemption.ts
│   │   │   ├── ConversationState.ts
│   │   │   ├── ConversationStateDescription.ts
│   │   │   ├── ServiceEnvironment.ts
│   │   │   └── User.ts
│   │   ├── redux
│   │   │   ├── app
│   │   │   │   ├── hooks.ts
│   │   │   │   ├── rtkQueryErrorLogger.ts
│   │   │   │   └── store.ts
│   │   │   └── features
│   │   │       ├── app
│   │   │       │   ├── appSlice.ts
│   │   │       │   └── AppState.ts
│   │   │       ├── chatCanvas
│   │   │       │   ├── chatCanvasSlice.ts
│   │   │       │   └── ChatCanvasState.ts
│   │   │       ├── localUser
│   │   │       │   ├── localUserSlice.ts
│   │   │       │   └── LocalUserState.ts
│   │   │       └── settings
│   │   │           ├── settingsSlice.ts
│   │   │           └── SettingsState.ts
│   │   ├── Root.tsx
│   │   ├── routes
│   │   │   ├── AcceptTerms.tsx
│   │   │   ├── AssistantEditor.tsx
│   │   │   ├── AssistantServiceRegistrationEditor.tsx
│   │   │   ├── Dashboard.tsx
│   │   │   ├── ErrorPage.tsx
│   │   │   ├── FrontDoor.tsx
│   │   │   ├── Login.tsx
│   │   │   ├── Settings.tsx
│   │   │   ├── ShareRedeem.tsx
│   │   │   └── Shares.tsx
│   │   ├── services
│   │   │   └── workbench
│   │   │       ├── assistant.ts
│   │   │       ├── assistantService.ts
│   │   │       ├── conversation.ts
│   │   │       ├── file.ts
│   │   │       ├── index.ts
│   │   │       ├── participant.ts
│   │   │       ├── share.ts
│   │   │       ├── state.ts
│   │   │       └── workbench.ts
│   │   └── vite-env.d.ts
│   ├── tools
│   │   └── filtered-ts-prune.cjs
│   ├── tsconfig.json
│   └── vite.config.ts
└── workbench-service
    ├── .env.example
    ├── .vscode
    │   ├── extensions.json
    │   ├── launch.json
    │   └── settings.json
    ├── alembic.ini
    ├── devdb
    │   ├── docker-compose.yaml
    │   └── postgresql-init.sh
    ├── Dockerfile
    ├── Makefile
    ├── migrations
    │   ├── env.py
    │   ├── README
    │   ├── script.py.mako
    │   └── versions
    │       ├── 2024_09_19_000000_69dcda481c14_init.py
    │       ├── 2024_09_19_190029_dffb1d7e219a_file_version_filename.py
    │       ├── 2024_09_20_204130_b29524775484_share.py
    │       ├── 2024_10_30_231536_039bec8edc33_index_message_type.py
    │       ├── 2024_11_04_204029_5149c7fb5a32_conversationmessagedebug.py
    │       ├── 2024_11_05_015124_245baf258e11_double_check_debugs.py
    │       ├── 2024_11_25_191056_a106de176394_drop_workflow.py
    │       ├── 2025_03_19_140136_aaaf792d4d72_set_user_title_set.py
    │       ├── 2025_03_21_153250_3763629295ad_add_assistant_template_id.py
    │       ├── 2025_05_19_163613_b2f86e981885_delete_context_transfer_assistants.py
    │       └── 2025_06_18_174328_503c739152f3_delete_knowlege_transfer_assistants.py
    ├── pyproject.toml
    ├── README.md
    ├── semantic_workbench_service
    │   ├── __init__.py
    │   ├── api.py
    │   ├── assistant_api_key.py
    │   ├── auth.py
    │   ├── azure_speech.py
    │   ├── config.py
    │   ├── controller
    │   │   ├── __init__.py
    │   │   ├── assistant_service_client_pool.py
    │   │   ├── assistant_service_registration.py
    │   │   ├── assistant.py
    │   │   ├── conversation_share.py
    │   │   ├── conversation.py
    │   │   ├── convert.py
    │   │   ├── exceptions.py
    │   │   ├── export_import.py
    │   │   ├── file.py
    │   │   ├── participant.py
    │   │   └── user.py
    │   ├── db.py
    │   ├── event.py
    │   ├── files.py
    │   ├── logging_config.py
    │   ├── middleware.py
    │   ├── query.py
    │   ├── service_user_principals.py
    │   ├── service.py
    │   └── start.py
    ├── tests
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── docker-compose.yaml
    │   ├── test_assistant_api_key.py
    │   ├── test_files.py
    │   ├── test_integration.py
    │   ├── test_middleware.py
    │   ├── test_migrations.py
    │   ├── test_workbench_service.py
    │   └── types.py
    └── uv.lock
```

# Files

--------------------------------------------------------------------------------
/libraries/python/mcp-extensions/mcp_extensions/_server_extensions.py:
--------------------------------------------------------------------------------

```python
 1 | import base64
 2 | 
 3 | from mcp import (
 4 |     ErrorData,
 5 |     ListResourcesRequest,
 6 |     ListResourcesResult,
 7 |     ReadResourceRequest,
 8 |     ReadResourceResult,
 9 |     ServerSession,
10 | )
11 | from mcp.server.fastmcp import Context
12 | from mcp.types import BlobResourceContents, ReadResourceRequestParams, TextResourceContents
13 | from pydantic import AnyUrl
14 | 
15 | from mcp_extensions import WriteResourceRequest, WriteResourceRequestParams, WriteResourceResult
16 | 
17 | 
18 | async def list_client_resources(fastmcp_server_context: Context) -> ListResourcesResult | ErrorData:
19 |     """
20 |     Lists all resources that the client has. This is reliant on the client supporting
21 |     the experimental `resources/list` method.
22 |     """
23 |     server_session: ServerSession = fastmcp_server_context.session
24 | 
25 |     return await server_session.send_request(
26 |         request=ListResourcesRequest(
27 |             method="resources/list",
28 |         ),  # type: ignore - this is an experimental method not explicitly defined in the mcp package
29 |         result_type=ListResourcesResult,
30 |     )
31 | 
32 | 
33 | async def read_client_resource(fastmcp_server_context: Context, uri: AnyUrl) -> ReadResourceResult | ErrorData:
34 |     """
35 |     Reads a resource from the client. This is reliant on the client supporting
36 |     the experimental `resources/read` method.
37 |     """
38 |     server_session: ServerSession = fastmcp_server_context.session
39 | 
40 |     return await server_session.send_request(
41 |         request=ReadResourceRequest(
42 |             method="resources/read",
43 |             params=ReadResourceRequestParams(
44 |                 uri=uri,
45 |             ),
46 |         ),  # type: ignore - this is an experimental method not explicitly defined in the mcp package
47 |         result_type=ReadResourceResult,
48 |     )
49 | 
50 | 
51 | async def write_client_resource(
52 |     fastmcp_server_context: Context, uri: AnyUrl, content_type: str, content: bytes
53 | ) -> WriteResourceResult | ErrorData:
54 |     """
55 |     Writes a client resource. This is reliant on the client supporting the experimental `resources/write` method.
56 |     """
57 |     server_session: ServerSession = fastmcp_server_context.session
58 | 
59 |     if content_type.startswith("text/"):
60 |         contents = TextResourceContents(uri=uri, mimeType=content_type, text=content.decode("utf-8"))
61 |     else:
62 |         contents = BlobResourceContents(uri=uri, mimeType=content_type, blob=base64.b64encode(content).decode())
63 | 
64 |     return await server_session.send_request(
65 |         request=WriteResourceRequest(
66 |             method="resources/write",
67 |             params=WriteResourceRequestParams(
68 |                 uri=uri,
69 |                 contents=contents,
70 |             ),
71 |         ),  # type: ignore - this is an experimental method not explicitly defined in the mcp package
72 |         result_type=WriteResourceResult,
73 |     )
74 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/create_formal_email/system.md:
--------------------------------------------------------------------------------

```markdown
 1 | # IDENTITY and PURPOSE
 2 | You are an expert in formal communication with extensive knowledge in business etiquette and professional writing. Your purpose is to craft or respond to emails in a manner that reflects professionalism, clarity, and respect, adhering to the conventions of formal correspondence.
 3 | 
 4 | # TASK
 5 | 
 6 | Your task is to assist in writing or responding to emails by understanding the context, purpose, and tone required. The emails you generate should be polished, concise, and appropriately formatted, ensuring that the recipient perceives the sender as courteous and professional.
 7 | 
 8 | # STEPS
 9 | 
10 | 1. **Understand the Context:**
11 |    - Read the provided input carefully to grasp the context, purpose, and required tone of the email.
12 |    - Identify key details such as the subject matter, the relationship between the sender and recipient, and any specific instructions or requests.
13 | 
14 | 2. **Construct a Mental Model:**
15 |    - Visualize the scenario as a virtual whiteboard in your mind, mapping out the key points, intentions, and desired outcomes.
16 |    - Consider the formality required based on the relationship between the sender and the recipient.
17 | 
18 | 3. **Draft the Email:**
19 |    - Begin with a suitable greeting that reflects the level of formality.
20 |    - Clearly state the purpose of the email in the opening paragraph.
21 |    - Develop the body of the email by elaborating on the main points, providing necessary details and supporting information.
22 |    - Conclude with a courteous closing that reiterates any calls to action or expresses appreciation, as appropriate.
23 | 
24 | 4. **Polish the Draft:**
25 |    - Review the draft for clarity, coherence, and conciseness.
26 |    - Ensure that the tone is respectful and professional throughout.
27 |    - Correct any grammatical errors, spelling mistakes, or formatting issues.
28 | 
29 | # OUTPUT SECTIONS
30 | 
31 | - **GREETING:**
32 |   - Start with an appropriate salutation based on the level of formality required (e.g., "Dear [Title] [Last Name]," "Hello [First Name],").
33 | 
34 | - **INTRODUCTION:**
35 |   - Introduce the purpose of the email clearly and concisely.
36 | 
37 | - **BODY:**
38 |   - Elaborate on the main points, providing necessary details, explanations, or context.
39 | 
40 | - **CLOSING:**
41 |   - Summarize any key points or calls to action.
42 |   - Provide a courteous closing remark (e.g., "Sincerely," "Best regards,").
43 |   - Include a professional signature block if needed.
44 | 
45 | # OUTPUT INSTRUCTIONS
46 | 
47 | - The email should be formatted in standard business email style.
48 | - Use clear and professional language, avoiding colloquialisms or overly casual expressions.
49 | - Ensure that the email is free from grammatical and spelling errors.
50 | - Do not include unnecessary warnings or notes—focus solely on crafting the email.
51 | 
52 | **# INPUT:**
53 | 
54 | INPUT: 
```

--------------------------------------------------------------------------------
/workbench-app/src/components/Conversations/ToolCalls.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import {
 2 |     Accordion,
 3 |     AccordionHeader,
 4 |     AccordionItem,
 5 |     AccordionPanel,
 6 |     makeStyles,
 7 |     shorthands,
 8 |     Text,
 9 |     tokens,
10 | } from '@fluentui/react-components';
11 | import { Toolbox24Regular } from '@fluentui/react-icons';
12 | import React from 'react';
13 | import { ConversationMessage } from '../../models/ConversationMessage';
14 | import { CodeLabel } from '../App/CodeLabel';
15 | 
16 | const useClasses = makeStyles({
17 |     root: {
18 |         display: 'flex',
19 |         flexDirection: 'column',
20 |     },
21 |     item: {
22 |         backgroundColor: tokens.colorNeutralBackground3,
23 |         borderRadius: tokens.borderRadiusMedium,
24 |         ...shorthands.border('none'),
25 |         marginTop: tokens.spacingVerticalM,
26 |     },
27 |     header: {
28 |         display: 'flex',
29 |         flexDirection: 'row',
30 |         alignItems: 'center',
31 |         gap: tokens.spacingHorizontalS,
32 |     },
33 | });
34 | 
35 | interface ToolCallsProps {
36 |     message: ConversationMessage;
37 | }
38 | 
39 | /**
40 |  * Allows experimental support for displaying tool calls that are attached to a message
41 |  * via the metadata property. To use this, the message must have a metadata property
42 |  * with a 'tool_calls' key, which is an array of tool calls, each with an 'id', 'name',
43 |  * and 'arguments' property.
44 |  *
45 |  * [Read more about special metadata support in UX...](../../../docs/MESSAGE_METADATA.md)
46 |  *
47 |  * This component will display each tool call in an accordion, with the tool name
48 |  * as the header and the arguments as the content.
49 |  */
50 | export const ToolCalls: React.FC<ToolCallsProps> = (props) => {
51 |     const { message } = props;
52 |     const classes = useClasses();
53 | 
54 |     const toolCalls: { id: string; name: string; arguments: string }[] = message.metadata?.['tool_calls'];
55 | 
56 |     if (!toolCalls || toolCalls.length === 0) {
57 |         return null;
58 |     }
59 | 
60 |     return (
61 |         <div className={classes.root}>
62 |             {toolCalls.map((toolCall) => {
63 |                 const content = JSON.stringify(toolCall.arguments, null, 4);
64 | 
65 |                 return (
66 |                     <Accordion key={toolCall.id} collapsible className={classes.item}>
67 |                         <AccordionItem value="1">
68 |                             <AccordionHeader icon={<Toolbox24Regular />}>
69 |                                 <div className={classes.header}>
70 |                                     <Text>Invoking tool</Text>
71 |                                     <CodeLabel>{toolCall.name}</CodeLabel>
72 |                                 </div>
73 |                             </AccordionHeader>
74 |                             <AccordionPanel>{content}</AccordionPanel>
75 |                         </AccordionItem>
76 |                     </Accordion>
77 |                 );
78 |             })}
79 |         </div>
80 |     );
81 | };
82 | 
83 | export const MemoizedToolResultMessage = React.memo(ToolCalls);
84 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/components/AssistantServiceRegistrations/AssistantServiceRegistrationApiKey.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { Button, Field, Input, Text, makeStyles, tokens } from '@fluentui/react-components';
 4 | import { Copy24Regular } from '@fluentui/react-icons';
 5 | import React from 'react';
 6 | import { DialogControl } from '../App/DialogControl';
 7 | 
 8 | const useClasses = makeStyles({
 9 |     dialogContent: {
10 |         display: 'flex',
11 |         flexDirection: 'column',
12 |         gap: tokens.spacingVerticalM,
13 |     },
14 |     row: {
15 |         display: 'flex',
16 |         alignItems: 'center',
17 |     },
18 | });
19 | 
20 | interface AssistantServiceRegistrationApiKeyProps {
21 |     apiKey: string;
22 |     onClose: () => void;
23 | }
24 | 
25 | export const AssistantServiceRegistrationApiKey: React.FC<AssistantServiceRegistrationApiKeyProps> = (props) => {
26 |     const { apiKey, onClose } = props;
27 |     const classes = useClasses();
28 |     const inputRef = React.useRef<HTMLInputElement>(null);
29 |     const [copiedTimeout, setCopiedTimeout] = React.useState<NodeJS.Timeout>();
30 | 
31 |     React.useEffect(() => {
32 |         // wait for the dialog to open before selecting the link
33 |         setTimeout(() => {
34 |             inputRef.current?.select();
35 |         }, 0);
36 |     }, []);
37 | 
38 |     const handleCopy = React.useCallback(async () => {
39 |         if (copiedTimeout) {
40 |             clearTimeout(copiedTimeout);
41 |             setCopiedTimeout(undefined);
42 |         }
43 | 
44 |         await navigator.clipboard.writeText(apiKey);
45 | 
46 |         // set a timeout to clear the copied message
47 |         const timeout = setTimeout(() => {
48 |             setCopiedTimeout(undefined);
49 |         }, 2000);
50 |         setCopiedTimeout(timeout);
51 |     }, [apiKey, copiedTimeout]);
52 | 
53 |     return (
54 |         <DialogControl
55 |             open={true}
56 |             classNames={{
57 |                 dialogContent: classes.dialogContent,
58 |             }}
59 |             title="Assistant Service Registration API Key"
60 |             content={
61 |                 <>
62 |                     <Field>
63 |                         <Input
64 |                             ref={inputRef}
65 |                             value={apiKey}
66 |                             readOnly
67 |                             contentAfter={
68 |                                 <div className={classes.row}>
69 |                                     {copiedTimeout && <Text>Copied to clipboard!</Text>}
70 |                                     <Button appearance="transparent" icon={<Copy24Regular />} onClick={handleCopy} />
71 |                                 </div>
72 |                             }
73 |                         />
74 |                     </Field>
75 |                     <Text>
76 |                         Make sure to copy the API key before closing this dialog, as it will not be displayed again.
77 |                     </Text>
78 |                 </>
79 |             }
80 |             onOpenChange={onClose}
81 |         />
82 |     );
83 | };
84 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/guided_conversation/conversation_guides/acrostic_poem.py:
--------------------------------------------------------------------------------

```python
 1 | from textwrap import dedent
 2 | 
 3 | from pydantic import BaseModel, Field
 4 | from skill_library.skills.guided_conversation import (
 5 |     ConversationGuide,
 6 |     ResourceConstraint,
 7 |     ResourceConstraintMode,
 8 |     ResourceConstraintUnit,
 9 | )
10 | 
11 | 
12 | class Artifact(BaseModel):
13 |     student_poem: str = Field(description="The acrostic poem written by the student.")
14 |     initial_feedback: str = Field(
15 |         description="Feedback on the student's final revised poem.",
16 |     )
17 |     final_feedback: str = Field(
18 |         description="Feedback on how the student was able to improve their poem.",
19 |     )
20 |     inappropriate_behavior: list[str] = Field(
21 |         description=dedent("""
22 |                 List any inappropriate behavior the student attempted while chatting with you.
23 |                 It is ok to leave this field Unanswered if there was none.
24 |             """),
25 |     )
26 | 
27 | 
28 | definition = ConversationGuide(
29 |     artifact_schema=Artifact.model_json_schema(),
30 |     rules=[
31 |         "DO NOT write the poem for the student.",
32 |         "Terminate the conversation immediately if the students asks for harmful or inappropriate content.",
33 |     ],
34 |     conversation_flow=dedent("""
35 |         1. Start by explaining interactively what an acrostic poem is.
36 |         2. Then give the following instructions for how to go ahead and write one:
37 |             1. Choose a word or phrase that will be the subject of your acrostic poem.
38 |             2. Write the letters of your chosen word or phrase vertically down the page.
39 |             3. Think of a word or phrase that starts with each letter of your chosen word or phrase.
40 |             4. Write these words or phrases next to the corresponding letters to create your acrostic poem.
41 |         3. Then give the following example of a poem where the word or phrase is HAPPY:
42 |             Having fun with friends all day,
43 |             Awesome games that we all play.
44 |             Pizza parties on the weekend,
45 |             Puppies we bend down to tend,
46 |             Yelling yay when we win the game
47 |         4. Finally have the student write their own acrostic poem using the word or phrase of their choice. Encourage them
48 |         to be creative and have fun with it. After they write it, you should review it and give them feedback on what they
49 |         did well and what they could improve on. Have them revise their poem based on your feedback and then review it again.
50 |     """),
51 |     conversation_context=dedent("""
52 |         You are working 1 on 1 a 4th grade student who is chatting with you in the computer lab at school while being
53 |         supervised by their teacher.
54 |     """),
55 |     resource_constraint=ResourceConstraint(
56 |         quantity=10,
57 |         unit=ResourceConstraintUnit.TURNS,
58 |         mode=ResourceConstraintMode.EXACT,
59 |     ),
60 | )
61 | 
```

--------------------------------------------------------------------------------
/assistants/knowledge-transfer-assistant/docs/opportunities-of-knowledge-transfer.md:
--------------------------------------------------------------------------------

```markdown
 1 | # Knowledge Transfer Opportunities for Microsoft Research
 2 | 
 3 | ## Research Project Onboarding
 4 | 
 5 | Scenario: A principal researcher leading a multi-year ML project needs to onboard new team members, visiting researchers, and collaborators throughout the project lifecycle.
 6 | 
 7 | Knowledge Transfer Setup:
 8 | - Knowledge Brief: Project overview, research questions, current hypotheses, and timeline
 9 | - Learning Objectives: Understanding the codebase, reproducing baseline results, contributing to specific research directions
10 | - Relevant Files: Codebase documentation, experimental logs, literature review summaries, dataset documentation
11 | 
12 | Getting Started:
13 | 1. Create coordinator conversation: "Help me structure onboarding materials for our neural architecture search project"
14 | 2. Upload key documents: paper drafts, experiment tracking sheets, codebase README files
15 | 3. Define learning objectives: "New team members should be able to run our baseline experiments and understand our current research directions"
16 | 
17 | ## Cross-Team Research Methodology Transfer
18 | 
19 | Scenario: A research team has developed novel evaluation methodologies or experimental frameworks that other teams want to adopt.
20 | 
21 | Knowledge Transfer Setup:
22 | - Knowledge Brief: Methodology overview, when to use it, expected outcomes
23 | - Learning Objectives: Implementing the methodology, interpreting results, avoiding common pitfalls
24 | - Relevant Files: Evaluation scripts, example datasets, results interpretation guides
25 | 
26 | Getting Started:
27 | 1. Create coordinator conversation: "I need to share our evaluation methodology with three other research teams"
28 | 2. Upload methodology documents: evaluation protocols, example analyses, troubleshooting guides
29 | 3. Set learning outcomes: "Teams should successfully implement our evaluation pipeline and interpret results correctly"
30 | 
31 | ## Publication Knowledge Synthesis
32 | 
33 | Scenario: Research group preparing major conference submissions needs to synthesize findings across multiple related projects and ensure all contributors understand the unified narrative.
34 | 
35 | Knowledge Transfer Setup:
36 | - Knowledge Brief: Paper scope, key contributions, submission timeline
37 | - Learning Objectives: Understanding cross-project connections, contributing to specific paper sections, preparing for reviewer questions
38 | - Relevant Files: Draft manuscripts, experimental results, related work surveys
39 | 
40 | Getting Started:
41 | 1. Create coordinator conversation: "Help me organize our findings from three related projects into a coherent ICML submission"
42 | 2. Upload project materials: individual project summaries, experimental data, previous paper drafts
43 | 3. Define contributions: "Each author should understand how their work fits into the broader narrative and be prepared to defend specific claims"
44 | 
```

--------------------------------------------------------------------------------
/assistants/project-assistant/docs/opportunities-of-knowledge-transfer.md:
--------------------------------------------------------------------------------

```markdown
 1 | # Knowledge Transfer Opportunities for Microsoft Research
 2 | 
 3 | ## Research Project Onboarding
 4 | 
 5 | Scenario: A principal researcher leading a multi-year ML project needs to onboard new team members, visiting researchers, and collaborators throughout the project lifecycle.
 6 | 
 7 | Knowledge Transfer Setup:
 8 | - Knowledge Brief: Project overview, research questions, current hypotheses, and timeline
 9 | - Learning Objectives: Understanding the codebase, reproducing baseline results, contributing to specific research directions
10 | - Relevant Files: Codebase documentation, experimental logs, literature review summaries, dataset documentation
11 | 
12 | Getting Started:
13 | 1. Create coordinator conversation: "Help me structure onboarding materials for our neural architecture search project"
14 | 2. Upload key documents: paper drafts, experiment tracking sheets, codebase README files
15 | 3. Define learning objectives: "New team members should be able to run our baseline experiments and understand our current research directions"
16 | 
17 | ## Cross-Team Research Methodology Transfer
18 | 
19 | Scenario: A research team has developed novel evaluation methodologies or experimental frameworks that other teams want to adopt.
20 | 
21 | Knowledge Transfer Setup:
22 | - Knowledge Brief: Methodology overview, when to use it, expected outcomes
23 | - Learning Objectives: Implementing the methodology, interpreting results, avoiding common pitfalls
24 | - Relevant Files: Evaluation scripts, example datasets, results interpretation guides
25 | 
26 | Getting Started:
27 | 1. Create coordinator conversation: "I need to share our evaluation methodology with three other research teams"
28 | 2. Upload methodology documents: evaluation protocols, example analyses, troubleshooting guides
29 | 3. Set learning outcomes: "Teams should successfully implement our evaluation pipeline and interpret results correctly"
30 | 
31 | ## Publication Knowledge Synthesis
32 | 
33 | Scenario: Research group preparing major conference submissions needs to synthesize findings across multiple related projects and ensure all contributors understand the unified narrative.
34 | 
35 | Knowledge Transfer Setup:
36 | - Knowledge Brief: Paper scope, key contributions, submission timeline
37 | - Learning Objectives: Understanding cross-project connections, contributing to specific paper sections, preparing for reviewer questions
38 | - Relevant Files: Draft manuscripts, experimental results, related work surveys
39 | 
40 | Getting Started:
41 | 1. Create coordinator conversation: "Help me organize our findings from three related projects into a coherent ICML submission"
42 | 2. Upload project materials: individual project summaries, experimental data, previous paper drafts
43 | 3. Define contributions: "Each author should understand how their work fits into the broader narrative and be prepared to defend specific claims"
44 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-office/mcp_server/evals/run_markdown_edit.py:
--------------------------------------------------------------------------------

```python
 1 | # Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import asyncio
 4 | import logging
 5 | import os
 6 | from pathlib import Path
 7 | 
 8 | from dotenv import load_dotenv
 9 | from mcp_extensions.llm.openai_chat_completion import openai_client
10 | from rich.columns import Columns
11 | from rich.console import Console
12 | from rich.markdown import Markdown
13 | from rich.panel import Panel
14 | 
15 | from mcp_server.evals.common import load_test_cases
16 | from mcp_server.markdown_edit.markdown_edit import run_markdown_edit
17 | from mcp_server.types import (
18 |     CustomContext,
19 |     MarkdownEditOutput,
20 |     MarkdownEditRequest,
21 | )
22 | 
23 | logger = logging.getLogger(__name__)
24 | 
25 | load_dotenv(override=True)
26 | 
27 | WORD_TEST_CASES_PATH = Path(__file__).parents[2] / "data" / "word" / "test_cases.yaml"
28 | WORD_TRANSCRIPT_PATH = Path(__file__).parents[2] / "data" / "word" / "transcripts"
29 | ATTACHMENTS_DIR = Path(__file__).parents[2] / "data" / "attachments"
30 | 
31 | 
32 | def print_markdown_edit_output(
33 |     console: Console,
34 |     output: MarkdownEditOutput,
35 |     test_index: int,
36 |     custom_context: CustomContext,
37 | ) -> None:
38 |     """
39 |     Print the markdown edit output to console using Rich formatting.
40 |     """
41 |     console.rule(f"Test Case {test_index} Results. Latency: {output.llm_latency:.2f} seconds.", style="cyan")
42 |     console.print(
43 |         Panel(
44 |             custom_context.chat_history[-1].content,  # type: ignore
45 |             title="User Request",
46 |             border_style="blue",
47 |             width=120,
48 |         )
49 |     )
50 |     original_doc = Panel(
51 |         Markdown(custom_context.document),
52 |         title="Original Document",
53 |         border_style="yellow",
54 |         width=90,
55 |     )
56 |     new_doc = Panel(
57 |         Markdown(output.new_markdown),
58 |         title="Edited Document",
59 |         border_style="green",
60 |         width=90,
61 |     )
62 |     console.print(Columns([original_doc, new_doc]))
63 |     console.print(
64 |         Panel(
65 |             output.change_summary or output.output_message,
66 |             title="Change Summary",
67 |             border_style="blue",
68 |             width=120,
69 |         )
70 |     )
71 |     console.print()
72 | 
73 | 
74 | async def main() -> None:
75 |     console = Console()
76 |     custom_contexts = load_test_cases(test_case_type="writing")
77 |     client = openai_client(
78 |         api_type="azure_openai",
79 |         azure_endpoint=os.getenv("ASSISTANT__AZURE_OPENAI_ENDPOINT"),
80 |         aoai_api_version="2025-01-01-preview",
81 |     )
82 | 
83 |     for i, custom_context in enumerate(custom_contexts):
84 |         markdown_edit_request = MarkdownEditRequest(
85 |             context=custom_context,
86 |             request_type="dev",
87 |             chat_completion_client=client,
88 |         )
89 |         output = await run_markdown_edit(markdown_edit_request)
90 |         print_markdown_edit_output(console, output, i + 1, custom_context)
91 | 
92 | 
93 | if __name__ == "__main__":
94 |     asyncio.run(main())
95 | 
```

--------------------------------------------------------------------------------
/assistants/knowledge-transfer-assistant/assistant/text_includes/assistant_info.md:
--------------------------------------------------------------------------------

```markdown
 1 | # Knowledge Transfer Assistant
 2 | 
 3 | ## Overview
 4 | 
 5 | The Knowledge Transfer Assistant helps teams share knowledge efficiently between a coordinator and team members. It provides a structured way to capture, organize, and transfer complex information across conversations while maintaining a central knowledge repository accessible to all participants.
 6 | 
 7 | ## Key Features
 8 | 
 9 | - **Dual-role knowledge sharing**: Different interfaces for the knowledge coordinator and team members.
10 | - **Centralized knowledge space**: Automatically organized information repository.
11 | - **Auto-updating knowledge digest**: Dynamic capture of key information about the knowledge package from coordinator conversations.
12 | - **Information requests**: Team members can request specific information from coordinators.
13 | - **File sharing**: Automatic synchronization of uploaded files across team conversations.
14 | 
15 | ## How to Use the Knowledge Transfer Assistant
16 | 
17 | ### For Knowledge Coordinators
18 | 
19 | 1. **Define the audience**: Who you are sharing to impacts the knowledge gathered.
20 | 2. **Build the knowledge package**: Share information, upload relevant files, and answer questions.
21 | 3. **Create the knowledge brief**: Create a knowledge brief that will be used to introduce team members to the content of the shared knowledge.
22 | 4. Optionally, **Define knowledge objectives and outcomes**: If you want to make sure your audience learns specific things, you can specify what they are.
23 | 5. **Share with team**: Generate an invitation link to share with team members who need access.
24 | 6. **Respond to requests**: Address information requests from team members as they arise.
25 | 7. **Update information**: Continue to refine and expand the knowledge base as needed.
26 | 
27 | ### For Team Members
28 | 
29 | 1. **Join a knowledge space**: Use the invitation link provided by the coordinator to join.
30 | 2. **Explore shared knowledge**: Review the knowledge brief, learning objectives, and uploaded files.
31 | 3. **Meet learning objectives and outcomes**: Make sure you learned what was intended to be transferred.
32 | 4. **Request information**: Create requests when you need additional details or clarification.
33 | 
34 | ## Common Use Cases
35 | 
36 | - **Onboarding new team members**: Share essential company knowledge and processes
37 | - **Subject matter expert knowledge capture**: Document expertise from key individuals
38 | - **Research findings distribution**: Share research outcomes with broader teams
39 | - **Documentation collaboration**: Work together on comprehensive documentation
40 | - **Process knowledge transfer**: Explain complex workflows and procedures
41 | 
42 | The Knowledge Transfer Assistant is designed to streamline knowledge sharing, reduce information gaps, and create a persistent, structured knowledge space that teams can reference over time.
43 | 
```

--------------------------------------------------------------------------------
/assistants/project-assistant/assistant/text_includes/assistant_info.md:
--------------------------------------------------------------------------------

```markdown
 1 | # Knowledge Transfer Assistant
 2 | 
 3 | ## Overview
 4 | 
 5 | The Knowledge Transfer Assistant helps teams share knowledge efficiently between a coordinator and team members. It provides a structured way to capture, organize, and transfer complex information across conversations while maintaining a central knowledge repository accessible to all participants.
 6 | 
 7 | ## Key Features
 8 | 
 9 | - **Dual-role knowledge sharing**: Different interfaces for the knowledge coordinator and team members.
10 | - **Centralized knowledge space**: Automatically organized information repository.
11 | - **Auto-updating knowledge digest**: Dynamic capture of key information about the knowledge package from coordinator conversations.
12 | - **Information requests**: Team members can request specific information from coordinators.
13 | - **File sharing**: Automatic synchronization of uploaded files across team conversations.
14 | 
15 | ## How to Use the Knowledge Transfer Assistant
16 | 
17 | ### For Knowledge Coordinators
18 | 
19 | 1. **Define the audience**: Who you are sharing to impacts the knowledge gathered.
20 | 2. **Build the knowledge package**: Share information, upload relevant files, and answer questions.
21 | 3. **Create the knowledge brief**: Create a knowledge brief that will be used to introduce team members to the content of the shared knowledge.
22 | 4. Optionally, **Define knowledge objectives and outcomes**: If you want to make sure your audience learns specific things, you can specify what they are.
23 | 5. **Share with team**: Generate an invitation link to share with team members who need access.
24 | 6. **Respond to requests**: Address information requests from team members as they arise.
25 | 7. **Update information**: Continue to refine and expand the knowledge base as needed.
26 | 
27 | ### For Team Members
28 | 
29 | 1. **Join a knowledge space**: Use the invitation link provided by the coordinator to join.
30 | 2. **Explore shared knowledge**: Review the knowledge brief, learning objectives, and uploaded files.
31 | 3. **Meet learning objectives and outcomes**: Make sure you learned what was intended to be transferred.
32 | 4. **Request information**: Create requests when you need additional details or clarification.
33 | 
34 | ## Common Use Cases
35 | 
36 | - **Onboarding new team members**: Share essential company knowledge and processes
37 | - **Subject matter expert knowledge capture**: Document expertise from key individuals
38 | - **Research findings distribution**: Share research outcomes with broader teams
39 | - **Documentation collaboration**: Work together on comprehensive documentation
40 | - **Process knowledge transfer**: Explain complex workflows and procedures
41 | 
42 | The Knowledge Transfer Assistant is designed to streamline knowledge sharing, reduce information gaps, and create a persistent, structured knowledge space that teams can reference over time.
43 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/create_video_chapters/system.md:
--------------------------------------------------------------------------------

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an expert conversation topic and timestamp creator. You take a transcript and you extract the most interesting topics discussed and give timestamps for where in the video they occur.
 4 | 
 5 | Take a step back and think step-by-step about how you would do this. You would probably start by "watching" the video (via the transcript) and taking notes on the topics discussed and the time they were discussed. Then you would take those notes and create a list of topics and timestamps.
 6 | 
 7 | # STEPS
 8 | 
 9 | - Fully consume the transcript as if you're watching or listening to the content.
10 | 
11 | - Think deeply about the topics discussed and what were the most interesting subjects and moments in the content.
12 | 
13 | - Name those subjects and/moments in 2-3 capitalized words.
14 | 
15 | - Match the timestamps to the topics. Note that input timestamps have the following format: HOURS:MINUTES:SECONDS.MILLISECONDS, which is not the same as the OUTPUT format!
16 | 
17 | INPUT SAMPLE
18 | 
19 | [02:17:43.120 --> 02:17:49.200] same way. I'll just say the same. And I look forward to hearing the response to my job application
20 | [02:17:49.200 --> 02:17:55.040] that I've submitted. Oh, you're accepted. Oh, yeah. We all speak of you all the time. Thank you so
21 | [02:17:55.040 --> 02:18:00.720] much. Thank you, guys. Thank you. Thanks for listening to this conversation with Neri Oxman.
22 | [02:18:00.720 --> 02:18:05.520] To support this podcast, please check out our sponsors in the description. And now,
23 | 
24 | END INPUT SAMPLE
25 | 
26 | The OUTPUT TIMESTAMP format is:
27 | 00:00:00 (HOURS:MINUTES:SECONDS) (HH:MM:SS)
28 | 
29 | - Note the maximum length of the video based on the last timestamp.
30 | 
31 | - Ensure all output timestamps are sequential and fall within the length of the content.
32 | 
33 | # OUTPUT INSTRUCTIONS
34 | 
35 | EXAMPLE OUTPUT (Hours:Minutes:Seconds)
36 | 
37 | 00:00:00 Members-only Forum Access
38 | 00:00:10 Live Hacking Demo
39 | 00:00:26 Ideas vs. Book
40 | 00:00:30 Meeting Will Smith
41 | 00:00:44 How to Influence Others
42 | 00:01:34 Learning by Reading
43 | 00:58:30 Writing With Punch
44 | 00:59:22 100 Posts or GTFO
45 | 01:00:32 How to Gain Followers
46 | 01:01:31 The Music That Shapes
47 | 01:27:21 Subdomain Enumeration Demo
48 | 01:28:40 Hiding in Plain Sight
49 | 01:29:06 The Universe Machine
50 | 00:09:36 Early School Experiences
51 | 00:10:12 The First Business Failure
52 | 00:10:32 David Foster Wallace
53 | 00:12:07 Copying Other Writers
54 | 00:12:32 Practical Advice for N00bs
55 | 
56 | END EXAMPLE OUTPUT
57 | 
58 | - Ensure all output timestamps are sequential and fall within the length of the content, e.g., if the total length of the video is 24 minutes. (00:00:00 - 00:24:00), then no output can be 01:01:25, or anything over 00:25:00 or over!
59 | 
60 | - ENSURE the output timestamps and topics are shown gradually and evenly incrementing from 00:00:00 to the final timestamp of the content.
61 | 
62 | INPUT:
63 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-fusion/mcp_server_fusion/mcp_tools/fusion_pattern.py:
--------------------------------------------------------------------------------

```python
 1 | import adsk.core
 2 | 
 3 | from textwrap import dedent
 4 | from typing import List
 5 | 
 6 | from ..fusion_utils import (
 7 |     errorHandler,
 8 |     FusionContext,
 9 |     GeometryValidator,
10 | )
11 | from ..vendor.mcp.server.fastmcp import FastMCP
12 | 
13 | 
14 | class FusionPatternTools:
15 |     def __init__(self):
16 |         self.ctx = FusionContext()
17 |         self.validator = GeometryValidator()
18 | 
19 |     def register_tools(self, mcp: FastMCP):
20 |         """
21 |         Register tools with the MCP server.
22 |         """
23 | 
24 |         @mcp.tool(
25 |             name="rectangular_pattern",
26 |             description=dedent("""
27 |                 Creates a rectangular (grid) pattern of existing entities in the Fusion 360 workspace.
28 |         
29 |                 Arranges copies of the specified entities in a grid defined by the number of instances and spacing along the X and Y directions.
30 |                 The pattern is aligned using the root component's X and Y construction axes.
31 |                 
32 |                 Args:
33 |                     entity_names (List[str]): A list of names corresponding to the entities (e.g., bodies) to be patterned. Each name must reference an existing entity.
34 |                     xCount (int): The number of instances to create along the X direction.
35 |                     xSpacing (float): The spacing distance between instances along the X axis.
36 |                     yCount (int): The number of instances to create along the Y direction.
37 |                     ySpacing (float): The spacing distance between instances along the Y axis.
38 |                 Returns:
39 |                     List[str]: A list containing the names of the patterned entities.
40 |             """).strip(),
41 |         )
42 |         @errorHandler
43 |         def rectangular_pattern(
44 |             entity_names: List[str], 
45 |             xCount: int,
46 |             xSpacing: float,
47 |             yCount: int,
48 |             ySpacing: float,
49 |         ) -> List[str]:
50 |             # Get the entities by name
51 |             entities = [self.ctx.rootComp.bRepBodies.itemByName(name) for name in entity_names]
52 |             
53 |             # Create the pattern
54 |             pattern = self.ctx.rootComp.features.rectangularPatternFeatures
55 | 
56 |             patternInput = pattern.createInput(entities, adsk.fusion.PatternDistanceType.SpacingPatternDistanceType)
57 |             patternInput.directionOne = self.ctx.rootComp.xConstructionAxis
58 |             patternInput.directionTwo = self.ctx.rootComp.yConstructionAxis
59 |             patternInput.quantityOne = xCount
60 |             patternInput.quantityTwo = yCount
61 |             patternInput.spacingOne = adsk.core.ValueInput.createByReal(xSpacing)
62 |             patternInput.spacingTwo = adsk.core.ValueInput.createByReal(ySpacing)
63 | 
64 |             pattern.add(patternInput)
65 |             
66 |             return [entity.name for entity in entities]
67 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/redux/features/chatCanvas/chatCanvasSlice.ts:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { PayloadAction, createSlice } from '@reduxjs/toolkit';
 4 | import { AppStorage } from '../../../libs/AppStorage';
 5 | import { ChatCanvasState } from './ChatCanvasState';
 6 | 
 7 | const localStorageKey = {
 8 |     chatCanvasOpen: 'chat-canvas.open',
 9 |     chatCanvasMode: 'chat-canvas.mode',
10 |     chatCanvasSelectedAssistantId: 'chat-canvas.selected-assistant-id',
11 |     chatCanvasSelectedAssistantStateId: 'chat-canvas.selected-assistant-state-id',
12 | };
13 | 
14 | const initialState: ChatCanvasState = {
15 |     open: localStorage.getItem(localStorageKey.chatCanvasOpen) === 'true',
16 |     mode: localStorage.getItem(localStorageKey.chatCanvasMode) === 'assistant' ? 'assistant' : 'conversation',
17 |     selectedAssistantId: localStorage.getItem(localStorageKey.chatCanvasSelectedAssistantId) ?? undefined,
18 |     selectedAssistantStateId: localStorage.getItem(localStorageKey.chatCanvasSelectedAssistantStateId) ?? undefined,
19 | };
20 | 
21 | export const chatCanvasSlice = createSlice({
22 |     name: 'chatCanvas',
23 |     initialState,
24 |     reducers: {
25 |         setChatCanvasOpen: (state: ChatCanvasState, action: PayloadAction<boolean>) => {
26 |             state.open = action.payload;
27 |             persistState(state);
28 |         },
29 |         setChatCanvasMode: (state: ChatCanvasState, action: PayloadAction<ChatCanvasState['mode']>) => {
30 |             state.mode = action.payload;
31 |             persistState(state);
32 |         },
33 |         setChatCanvasAssistantId: (state: ChatCanvasState, action: PayloadAction<string | undefined>) => {
34 |             state.selectedAssistantId = action.payload;
35 |             persistState(state);
36 |         },
37 |         setChatCanvasAssistantStateId: (state: ChatCanvasState, action: PayloadAction<string | undefined>) => {
38 |             state.selectedAssistantStateId = action.payload;
39 |             persistState(state);
40 |         },
41 |         setChatCanvasState: (state: ChatCanvasState, action: PayloadAction<ChatCanvasState>) => {
42 |             Object.assign(state, action.payload);
43 |             persistState(state);
44 |         },
45 |     },
46 | });
47 | 
48 | const persistState = (state: ChatCanvasState) => {
49 |     AppStorage.getInstance().saveObject(localStorageKey.chatCanvasOpen, state.open);
50 |     AppStorage.getInstance().saveObject(localStorageKey.chatCanvasMode, state.mode);
51 |     AppStorage.getInstance().saveObject(localStorageKey.chatCanvasSelectedAssistantId, state.selectedAssistantId);
52 |     AppStorage.getInstance().saveObject(
53 |         localStorageKey.chatCanvasSelectedAssistantStateId,
54 |         state.selectedAssistantStateId,
55 |     );
56 | };
57 | 
58 | export const {
59 |     setChatCanvasOpen,
60 |     setChatCanvasMode,
61 |     setChatCanvasAssistantId,
62 |     setChatCanvasAssistantStateId,
63 |     setChatCanvasState,
64 | } = chatCanvasSlice.actions;
65 | 
66 | export default chatCanvasSlice.reducer;
67 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/create_visualization/system.md:
--------------------------------------------------------------------------------

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an expert at data and concept visualization and in turning complex ideas into a form that can be visualized using ASCII art.
 4 | 
 5 | You take input of any type and find the best way to simply visualize or demonstrate the core ideas using ASCII art.
 6 | 
 7 | You always output ASCII art, even if you have to simplify the input concepts to a point where it can be visualized using ASCII art.
 8 | 
 9 | # STEPS
10 | 
11 | - Take the input given and create a visualization that best explains it using elaborate and intricate ASCII art.
12 | 
13 | - Ensure that the visual would work as a standalone diagram that would fully convey the concept(s).
14 | 
15 | - Use visual elements such as boxes and arrows and labels (and whatever else) to show the relationships between the data, the concepts, and whatever else, when appropriate.
16 | 
17 | - Use as much space, character types, and intricate detail as you need to make the visualization as clear as possible.
18 | 
19 | - Create far more intricate and more elaborate and larger visualizations for concepts that are more complex or have more data.
20 | 
21 | - Under the ASCII art, output a section called VISUAL EXPLANATION that explains in a set of 10-word bullets how the input was turned into the visualization. Ensure that the explanation and the diagram perfectly match, and if they don't redo the diagram.
22 | 
23 | - If the visualization covers too many things, summarize it into it's primary takeaway and visualize that instead.
24 | 
25 | - DO NOT COMPLAIN AND GIVE UP. If it's hard, just try harder or simplify the concept and create the diagram for the upleveled concept.
26 | 
27 | - If it's still too hard, create a piece of ASCII art that represents the idea artistically rather than technically.
28 | 
29 | # OUTPUT INSTRUCTIONS
30 | 
31 | - DO NOT COMPLAIN. Just make an image. If it's too complex for a simple ASCII image, reduce the image's complexity until it can be rendered using ASCII.
32 | 
33 | - DO NOT COMPLAIN. Make a printable image no matter what.
34 | 
35 | - Do not output any code indicators like backticks or code blocks or anything.
36 | 
37 | - You only output the printable portion of the ASCII art. You do not output the non-printable characters.
38 | 
39 | - Ensure the visualization can stand alone as a diagram that fully conveys the concept(s), and that it perfectly matches a written explanation of the concepts themselves. Start over if it can't.
40 | 
41 | - Ensure all output ASCII art characters are fully printable and viewable.
42 | 
43 | - Ensure the diagram will fit within a reasonable width in a large window, so the viewer won't have to reduce the font like 1000 times.
44 | 
45 | - Create a diagram no matter what, using the STEPS above to determine which type.
46 | 
47 | - Do not output blank lines or lines full of unprintable / invisible characters. Only output the printable portion of the ASCII art.
48 | 
49 | # INPUT:
50 | 
51 | INPUT:
52 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-fusion/mcp_server_fusion/fusion_utils/tool_utils.py:
--------------------------------------------------------------------------------

```python
 1 | import adsk.core
 2 | import adsk.fusion
 3 | from functools import wraps
 4 | 
 5 | 
 6 | class FusionContext:
 7 |     """Utility class to manage Fusion 360 application context"""
 8 |     
 9 |     @property
10 |     def app(self) -> adsk.core.Application:
11 |         return adsk.core.Application.get()
12 |     
13 |     @property
14 |     def design(self) -> adsk.fusion.Design:
15 |         if not self.app.activeProduct:
16 |             raise RuntimeError('No active product')
17 |         if not isinstance(self.app.activeProduct, adsk.fusion.Design):
18 |             raise RuntimeError('Active product is not a Fusion design')
19 | 
20 |         return self.app.activeProduct
21 |         
22 |     @property
23 |     def rootComp(self) -> adsk.fusion.Component:
24 |         return self.design.rootComponent
25 |     
26 |     @property
27 |     def fusionUnitsManager(self) -> adsk.fusion.FusionUnitsManager:
28 |         return self.design.fusionUnitsManager
29 |     
30 | 
31 | def get_sketch_by_name(name: str | None) -> adsk.fusion.Sketch | None:
32 |     """Get a sketch by its name"""
33 |     if not name:
34 |         return None
35 |     
36 |     ctx = FusionContext()
37 |     return ctx.rootComp.sketches.itemByName(name)
38 |     
39 | def errorHandler(func: callable) -> callable:
40 |     """Decorator to handle Fusion 360 API errors"""
41 |     @wraps(func)
42 |     def wrapper(*args, **kwargs):
43 |         try:
44 |             return func(*args, **kwargs)
45 |         except Exception as e:
46 |             return f"Tool {func.__name__} error: {str(e)}"
47 |     return wrapper
48 | 
49 | 
50 | def convert_direction(direction: list[float]) -> str:
51 |     """
52 |     Converts a 3-element direction vector into a valid Fusion 360 expression string
53 |     using the active design's default length unit.
54 |     
55 |     Args:
56 |         direction (list[float]): A 3-element list representing the vector.
57 |         
58 |     Returns:
59 |         str: A string formatted as "x unit, y unit, z unit"
60 |     """
61 |     GeometryValidator.validateVector(direction)
62 |     unit = FusionContext().fusionUnitsManager.defaultLengthUnits
63 |     return f"{direction[0]} {unit}, {direction[1]} {unit}, {direction[2]} {unit}"
64 | 
65 | class UnitsConverter:
66 |     """Handles unit conversion between different measurement systems using static calls."""
67 |     
68 |     @staticmethod
69 |     def mmToInternal(mm_value: float) -> float:
70 |         return mm_value / 10.0
71 |         
72 |     @staticmethod
73 |     def internalToMm(internal_value: float) -> float:
74 |         return internal_value * 10.0
75 | 
76 | class GeometryValidator:
77 |     """Validates geometry inputs for common operations"""
78 |     
79 |     @staticmethod
80 |     def validatePoint(point: list[float]) -> None:
81 |         if len(point) != 3:
82 |             raise ValueError("Point must contain three coordinates (x, y, z)")
83 |     
84 |     @staticmethod
85 |     def validateVector(vector: list[float]) -> None:
86 |         if len(vector) != 3:
87 |             raise ValueError("Vector must contain three components (x, y, z)")
88 |         
89 | 
```

--------------------------------------------------------------------------------
/libraries/python/openai-client/openai_client/logging.py:
--------------------------------------------------------------------------------

```python
 1 | import inspect
 2 | import json
 3 | from datetime import datetime
 4 | from typing import Any
 5 | from uuid import UUID
 6 | 
 7 | from openai import (
 8 |     NotGiven,
 9 | )
10 | from pydantic import BaseModel
11 | 
12 | 
13 | def make_completion_args_serializable(
14 |     completion_args: dict[str, Any],
15 | ) -> dict[str, Any]:
16 |     """
17 |     We put the completion args into logs and messages, so it's important that
18 |     they are serializable. This function returns a copy of the completion args
19 |     that can be serialized.
20 |     """
21 |     sanitized = completion_args.copy()
22 | 
23 |     # NotGiven type (used by OpenAI) is not serializable.
24 |     if isinstance(completion_args.get("tools"), NotGiven):
25 |         del sanitized["tools"]
26 | 
27 |     # A pydantic BaseModel class is not serializable, and we don't want the
28 |     # whole class anyway, so we just store the name.
29 |     if completion_args.get("response_format"):
30 |         response_format = completion_args["response_format"]
31 |         if inspect.isclass(response_format) and issubclass(response_format, BaseModel):
32 |             sanitized["response_format"] = response_format.__name__
33 | 
34 |     return sanitized
35 | 
36 | 
37 | def convert_to_serializable(data: Any) -> Any:
38 |     """
39 |     Recursively convert Pydantic BaseModel instances to dictionaries.
40 |     """
41 |     if isinstance(data, BaseModel):
42 |         return data.model_dump()
43 |     elif inspect.isclass(data) and issubclass(data, BaseModel):
44 |         # Handle Pydantic model classes (not instances)
45 |         return data.__name__
46 |     elif isinstance(data, dict):
47 |         return {key: convert_to_serializable(value) for key, value in data.items()}
48 |     elif isinstance(data, list):
49 |         return [convert_to_serializable(item) for item in data]
50 |     elif isinstance(data, tuple):
51 |         return tuple(convert_to_serializable(item) for item in data)
52 |     elif isinstance(data, set):
53 |         return {convert_to_serializable(item) for item in data}
54 |     return data
55 | 
56 | 
57 | class CustomEncoder(json.JSONEncoder):
58 |     def default(self, o):
59 |         if isinstance(o, UUID):
60 |             return str(o)
61 |         if isinstance(o, datetime):
62 |             return o.isoformat()
63 |         return super().default(o)
64 | 
65 | 
66 | def serializable(data: Any) -> dict[str, Any]:
67 |     """
68 |     Convert data to a serializable format for logging or other purposes.
69 |     """
70 |     data = convert_to_serializable(data)
71 |     try:
72 |         data = json.loads(json.dumps(data, cls=CustomEncoder))
73 |     except Exception as e:
74 |         data = str(e)
75 |     return data
76 | 
77 | 
78 | def add_serializable_data(data: Any) -> dict[str, Any]:
79 |     """
80 |     Helper function to use when adding extra data to log messages. Data will
81 |     attempt to be put into a serializable format.
82 |     """
83 |     extra = {}
84 |     data = serializable(data)
85 |     if data:
86 |         extra["data"] = data
87 |     return extra
88 | 
89 | 
90 | # Helpful alias
91 | extra_data = add_serializable_data
92 | 
```

--------------------------------------------------------------------------------
/assistants/navigator-assistant/assistant/whiteboard/_whiteboard.py:
--------------------------------------------------------------------------------

```python
 1 | import logging
 2 | from contextlib import AsyncExitStack, asynccontextmanager
 3 | from typing import AsyncGenerator
 4 | 
 5 | from assistant_extensions.mcp import (
 6 |     ExtendedCallToolRequestParams,
 7 |     MCPClientSettings,
 8 |     MCPServerConfig,
 9 |     MCPSession,
10 |     establish_mcp_sessions,
11 |     handle_mcp_tool_call,
12 |     list_roots_callback_for,
13 | )
14 | from semantic_workbench_assistant.assistant_app import ConversationContext
15 | 
16 | from ..config import AssistantConfigModel
17 | from ..response.models import ChatMessageProvider
18 | 
19 | logger = logging.getLogger(__name__)
20 | 
21 | 
22 | def get_whiteboard_service_config(config: AssistantConfigModel) -> MCPServerConfig:
23 |     """
24 |     Get the memory whiteboard server configuration from the assistant config.
25 |     If no personal server is configured with key 'memory-whiteboard', return the hosted server configuration.
26 |     """
27 |     return next(
28 |         (
29 |             server_config
30 |             for server_config in config.tools.personal_mcp_servers
31 |             if server_config.key == "memory-whiteboard"
32 |         ),
33 |         config.tools.hosted_mcp_servers.memory_whiteboard,
34 |     )
35 | 
36 | 
37 | async def notify_whiteboard(
38 |     context: ConversationContext,
39 |     server_config: MCPServerConfig,
40 |     attachment_message_provider: ChatMessageProvider,
41 |     chat_message_provider: ChatMessageProvider,
42 | ) -> None:
43 |     if not server_config.enabled:
44 |         return
45 | 
46 |     async with (
47 |         whiteboard_mcp_session(context, server_config=server_config) as whiteboard_session,
48 |         context.state_updated_event_after("whiteboard"),
49 |     ):
50 |         result = await handle_mcp_tool_call(
51 |             mcp_sessions=[whiteboard_session],
52 |             tool_call=ExtendedCallToolRequestParams(
53 |                 id="whiteboard",
54 |                 name="notify_user_message",
55 |                 arguments={
56 |                     "attachment_messages": (await attachment_message_provider(0, "gpt-4o")).messages,
57 |                     "chat_messages": (await chat_message_provider(30_000, "gpt-4o")).messages,
58 |                 },
59 |             ),
60 |             method_metadata_key="whiteboard",
61 |         )
62 |         logger.debug("memory-whiteboard result: %s", result)
63 | 
64 | 
65 | @asynccontextmanager
66 | async def whiteboard_mcp_session(
67 |     context: ConversationContext, server_config: MCPServerConfig
68 | ) -> AsyncGenerator[MCPSession, None]:
69 |     async with AsyncExitStack() as stack:
70 |         mcp_sessions = await establish_mcp_sessions(
71 |             client_settings=[
72 |                 MCPClientSettings(
73 |                     server_config=server_config,
74 |                     list_roots_callback=list_roots_callback_for(
75 |                         context=context,
76 |                         server_config=server_config,
77 |                     ),
78 |                 )
79 |             ],
80 |             stack=stack,
81 |         )
82 |         yield mcp_sessions[0]
83 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/analyze_claims/system.md:
--------------------------------------------------------------------------------

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an objectively minded and centrist-oriented analyzer of truth claims and arguments.
 4 | 
 5 | You specialize in analyzing and rating the truth claims made in the input provided and providing both evidence in support of those claims, as well as counter-arguments and counter-evidence that are relevant to those claims.
 6 | 
 7 | You also provide a rating for each truth claim made.
 8 | 
 9 | The purpose is to provide a concise and balanced view of the claims made in a given piece of input so that one can see the whole picture.
10 | 
11 | Take a step back and think step by step about how to achieve the best possible output given the goals above.
12 | 
13 | # Steps
14 | 
15 | - Deeply analyze the truth claims and arguments being made in the input.
16 | - Separate the truth claims from the arguments in your mind.
17 | 
18 | # OUTPUT INSTRUCTIONS
19 | 
20 | - Provide a summary of the argument being made in less than 30 words in a section called ARGUMENT SUMMARY:.
21 | 
22 | - In a section called TRUTH CLAIMS:, perform the following steps for each:
23 | 
24 | 1. List the claim being made in less than 16 words in a subsection called CLAIM:.
25 | 2. Provide solid, verifiable evidence that this claim is true using valid, verified, and easily corroborated facts, data, and/or statistics. Provide references for each, and DO NOT make any of those up. They must be 100% real and externally verifiable. Put each of these in a subsection called CLAIM SUPPORT EVIDENCE:.
26 | 
27 | 3. Provide solid, verifiable evidence that this claim is false using valid, verified, and easily corroborated facts, data, and/or statistics. Provide references for each, and DO NOT make any of those up. They must be 100% real and externally verifiable. Put each of these in a subsection called CLAIM REFUTATION EVIDENCE:.
28 | 
29 | 4. Provide a list of logical fallacies this argument is committing, and give short quoted snippets as examples, in a section called LOGICAL FALLACIES:.
30 | 
31 | 5. Provide a CLAIM QUALITY score in a section called CLAIM RATING:, that has the following tiers:
32 |    A (Definitely True)
33 |    B (High)
34 |    C (Medium)
35 |    D (Low)
36 |    F (Definitely False)
37 | 
38 | 6. Provide a list of characterization labels for the claim, e.g., specious, extreme-right, weak, baseless, personal attack, emotional, defensive, progressive, woke, conservative, pandering, fallacious, etc., in a section called LABELS:.
39 | 
40 | - In a section called OVERALL SCORE:, give a final grade for the input using the same scale as above. Provide three scores:
41 | 
42 | LOWEST CLAIM SCORE:
43 | HIGHEST CLAIM SCORE:
44 | AVERAGE CLAIM SCORE:
45 | 
46 | - In a section called OVERALL ANALYSIS:, give a 30-word summary of the quality of the argument(s) made in the input, its weaknesses, its strengths, and a recommendation for how to possibly update one's understanding of the world based on the arguments provided.
47 | 
48 | # INPUT:
49 | 
50 | INPUT:
51 | 
```

--------------------------------------------------------------------------------
/assistants/document-assistant/assistant/filesystem/_convert.py:
--------------------------------------------------------------------------------

```python
 1 | # Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import asyncio
 4 | import base64
 5 | import io
 6 | import logging
 7 | import pathlib
 8 | 
 9 | import pdfplumber
10 | from markitdown import MarkItDown, StreamInfo
11 | 
12 | logger = logging.getLogger(__name__)
13 | 
14 | 
15 | async def bytes_to_str(file_bytes: bytes, filename: str) -> str:
16 |     """
17 |     Convert the content of the file to a string.
18 |     """
19 |     filename_extension = pathlib.Path(filename).suffix.lower().strip(".")
20 | 
21 |     match filename_extension:
22 |         # handle most common file types using MarkItDown.
23 |         # Note .eml will include the raw html which is very token heavy
24 |         case _ if filename_extension in ["docx", "pptx", "csv", "xlsx", "html", "eml"]:
25 |             return await _markitdown_bytes_to_str(file_bytes, "." + filename_extension)
26 | 
27 |         case "pdf":
28 |             return await _pdf_bytes_to_str(file_bytes)
29 | 
30 |         # if the file has an image extension, convert it to a data URI
31 |         case _ if filename_extension in ["png", "jpg", "jpeg", "gif", "bmp", "tiff", "tif"]:
32 |             return _image_bytes_to_str(file_bytes, filename_extension)
33 | 
34 |         # otherwise assume it's a regular text-based file
35 |         case _:
36 |             try:
37 |                 return file_bytes.decode("utf-8")
38 |             except Exception as e:
39 |                 return f"The filetype `{filename_extension}` is not supported or the file itself is malformed: {e}"
40 | 
41 | 
42 | async def _markitdown_bytes_to_str(file_bytes: bytes, filename_extension: str) -> str:
43 |     """
44 |     Convert a file using MarkItDown defaults.
45 |     """
46 |     with io.BytesIO(file_bytes) as temp:
47 |         result = await asyncio.to_thread(
48 |             MarkItDown(enable_plugins=False).convert,
49 |             source=temp,
50 |             stream_info=StreamInfo(extension=filename_extension),
51 |         )
52 |         text = result.text_content
53 |     return text
54 | 
55 | 
56 | async def _pdf_bytes_to_str(file_bytes: bytes, max_pages: int = 25) -> str:
57 |     """
58 |     Convert a PDF file to text.
59 | 
60 |     Args:
61 |         file_bytes: The raw content of the PDF file.
62 |         max_pages: The maximum number of pages to read from the PDF file.
63 |     """
64 | 
65 |     def _read_pages() -> str:
66 |         pages = []
67 |         with io.BytesIO(file_bytes) as temp:
68 |             with pdfplumber.open(temp, pages=list(range(1, max_pages + 1, 1))) as pdf:
69 |                 for page in pdf.pages:
70 |                     page_text = page.extract_text()
71 |                     pages.append(page_text)
72 |         return "\n".join(pages)
73 | 
74 |     return await asyncio.to_thread(_read_pages)
75 | 
76 | 
77 | def _image_bytes_to_str(file_bytes: bytes, file_extension: str) -> str:
78 |     """
79 |     Convert an image to a data URI.
80 |     """
81 |     data = base64.b64encode(file_bytes).decode("utf-8")
82 |     image_type = f"image/{file_extension}"
83 |     data_uri = f"data:{image_type};base64,{data}"
84 |     return data_uri
85 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/components/App/AppHeader.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { Button, Title3, makeStyles, shorthands, tokens } from '@fluentui/react-components';
 4 | import { ArrowLeft24Regular, Home24Regular } from '@fluentui/react-icons';
 5 | import React from 'react';
 6 | import { Link } from 'react-router-dom';
 7 | import { AppMenu } from './AppMenu';
 8 | import { ErrorListFromAppState } from './ErrorListFromAppState';
 9 | import { ProfileSettings } from './ProfileSettings';
10 | 
11 | const useClasses = makeStyles({
12 |     root: {
13 |         display: 'flex',
14 |         flexDirection: 'column',
15 |         backgroundColor: tokens.colorNeutralBackground1,
16 |     },
17 |     content: {
18 |         display: 'flex',
19 |         flexDirection: 'row',
20 |         backgroundColor: tokens.colorBrandBackground,
21 |         alignItems: 'center',
22 |         justifyContent: 'space-between',
23 |         ...shorthands.padding(tokens.spacingVerticalS),
24 |     },
25 |     title: {
26 |         color: tokens.colorNeutralForegroundOnBrand,
27 |     },
28 |     actions: {
29 |         display: 'flex',
30 |         flexDirection: 'row',
31 |         gap: tokens.spacingHorizontalS,
32 |     },
33 | });
34 | 
35 | interface AppHeaderProps {
36 |     title: string | React.ReactNode;
37 |     actions?: {
38 |         items: React.ReactNode[];
39 |         replaceExisting?: boolean;
40 |         hideProfileSettings?: boolean;
41 |     };
42 | }
43 | 
44 | export const AppHeader: React.FC<AppHeaderProps> = (props) => {
45 |     const { title, actions } = props;
46 |     const classes = useClasses();
47 | 
48 |     const actionItems = [];
49 | 
50 |     // Custom actions from the caller
51 |     if (actions && actions?.items.length > 0) {
52 |         actionItems.push(...actions.items.map((item, index) => <React.Fragment key={index}>{item}</React.Fragment>));
53 |     }
54 | 
55 |     // Default navigation and other global actions
56 |     if (!actions?.replaceExisting) {
57 |         // Back button
58 |         if (window.history.length > 1) {
59 |             actionItems.push(<Button key="back" icon={<ArrowLeft24Regular />} onClick={() => window.history.back()} />);
60 |         }
61 | 
62 |         // Home button
63 |         if (window.location.pathname !== '/') {
64 |             actionItems.push(
65 |                 <Link key="home" to="/">
66 |                     <Button icon={<Home24Regular />} />
67 |                 </Link>,
68 |             );
69 |         }
70 | 
71 |         // Global menu
72 |         actionItems.push(<AppMenu key="menu" />);
73 |     }
74 | 
75 |     // Display current user's profile settings
76 |     if (!actions?.hideProfileSettings) {
77 |         actionItems.push(<ProfileSettings key="profile" />);
78 |     }
79 | 
80 |     return (
81 |         <div className={classes.root}>
82 |             <div className={classes.content}>
83 |                 {title && typeof title === 'string' ? <Title3 className={classes.title}>{title}</Title3> : title}
84 |                 <div className={classes.actions}>{actionItems}</div>
85 |             </div>
86 |             <ErrorListFromAppState />
87 |         </div>
88 |     );
89 | };
90 | 
```

--------------------------------------------------------------------------------
/assistants/codespace-assistant/assistant/response/utils/abbreviations.py:
--------------------------------------------------------------------------------

```python
 1 | from chat_context_toolkit.history.tool_abbreviations import Abbreviations, ToolAbbreviations
 2 | 
 3 | tool_abbreviations = ToolAbbreviations({
 4 |     "read_file": Abbreviations(
 5 |         tool_message_replacement="The content that was read from the file has been removed due to token limits. Please use read_file to retrieve the most recent content."
 6 |     ),
 7 |     "write_file": Abbreviations(
 8 |         tool_message_replacement="The content that was written to the file has been removed due to token limits. Please use read_file to retrieve the most recent content if you need it."
 9 |     ),
10 |     "list_directory": Abbreviations(
11 |         tool_message_replacement="The list of files and directories has been removed due to token limits. Please call the tool to retrieve the list again if you need it."
12 |     ),
13 |     "create_directory": Abbreviations(
14 |         tool_message_replacement="The result of this tool call the file has been removed due to token limits. Please use list_directory to retrieve the most recent list if you need it."
15 |     ),
16 |     "edit_file": Abbreviations(
17 |         tool_call_argument_replacements={
18 |             "edits": [
19 |                 {
20 |                     "oldText": "The oldText has been removed from this tool call due to reaching token limits. Please use read_file to retrieve the most recent content.",
21 |                     "newText": "The newText has been removed from this tool call due to reaching token limits. Please use read_file to retrieve the most recent content.",
22 |                 }
23 |             ]
24 |         },
25 |         tool_message_replacement="The result of this tool call the file has been removed due to token limits. Please use read_file to retrieve the most recent content if you need it.",
26 |     ),
27 |     "search_files": Abbreviations(
28 |         tool_message_replacement="The search results have been removed due to token limits. Please call the tool to search again if you need it."
29 |     ),
30 |     "get_file_info": Abbreviations(
31 |         tool_message_replacement="The results have been removed due to token limits. Please call the tool to again if you need it."
32 |     ),
33 |     "read_multiple_files": Abbreviations(
34 |         tool_message_replacement="The contents of these files have been removed due to token limits. Please use the tool again to read the most recent contents if you need them."
35 |     ),
36 |     "move_file": Abbreviations(
37 |         tool_message_replacement="The result of this tool call the file has been removed due to token limits. Please use list_directory to retrieve the most recent list if you need it."
38 |     ),
39 |     "list_allowed_directories": Abbreviations(
40 |         tool_message_replacement="The result of this tool call the file has been removed due to token limits. Please call this tool again to retrieve the most recent list if you need it."
41 |     ),
42 | })
43 | 
```

--------------------------------------------------------------------------------
/assistants/knowledge-transfer-assistant/assistant/domain/audience_manager.py:
--------------------------------------------------------------------------------

```python
 1 | """
 2 | Knowledge transfer lifecycle management for Knowledge Transfer Assistant.
 3 | 
 4 | Handles knowledge transfer state updates, completion, and lifecycle operations.
 5 | """
 6 | 
 7 | from datetime import datetime
 8 | from typing import Tuple
 9 | 
10 | from semantic_workbench_assistant.assistant_app import ConversationContext
11 | 
12 | from assistant.notifications import Notifications
13 | 
14 | from .share_manager import ShareManager
15 | 
16 | from ..data import InspectorTab, LogEntryType
17 | from ..logging import logger
18 | from ..storage import ShareStorage
19 | 
20 | 
21 | class AudienceManager:
22 |     """Manages knowledge transfer lifecycle and state operations."""
23 | 
24 |     @staticmethod
25 |     async def update_audience(
26 |         context: ConversationContext,
27 |         audience_description: str,
28 |     ) -> Tuple[bool, str]:
29 |         """
30 |         Update the target audience description for a knowledge package.
31 | 
32 |         Args:
33 |             context: Current conversation context
34 |             audience_description: Description of the intended audience and their existing knowledge level
35 | 
36 |         Returns:
37 |             Tuple of (success, message) where:
38 |             - success: Boolean indicating if the update was successful
39 |             - message: Result message
40 |         """
41 |         try:
42 |             share_id = await ShareManager.get_share_id(context)
43 |             if not share_id:
44 |                 return (
45 |                     False,
46 |                     "No knowledge package associated with this conversation. Please create a knowledge brief first.",
47 |                 )
48 | 
49 |             # Get existing knowledge package
50 |             package = ShareStorage.read_share(share_id)
51 |             if not package:
52 |                 return False, "No knowledge package found. Please create a knowledge brief first."
53 | 
54 |             # Update the audience
55 |             package.audience = audience_description.strip()
56 |             package.updated_at = datetime.utcnow()
57 | 
58 |             # Save the updated package
59 |             ShareStorage.write_share(share_id, package)
60 | 
61 |             # Log the event
62 |             await ShareStorage.log_share_event(
63 |                 context=context,
64 |                 share_id=share_id,
65 |                 entry_type=LogEntryType.STATUS_CHANGED.value,
66 |                 message=f"Updated target audience: {audience_description}",
67 |                 metadata={
68 |                     "audience": audience_description,
69 |                 },
70 |             )
71 | 
72 |             await Notifications.notify(context, "Audience updated.")
73 |             await Notifications.notify_all_state_update(context, share_id, [InspectorTab.DEBUG])
74 | 
75 |             return True, f"Target audience updated successfully: {audience_description}"
76 | 
77 |         except Exception as e:
78 |             logger.exception(f"Error updating audience: {e}")
79 |             return False, "Failed to update the audience. Please try again."
80 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/extract_wisdom_nometa/system.md:
--------------------------------------------------------------------------------

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You extract surprising, insightful, and interesting information from text content. You are interested in insights related to the purpose and meaning of life, human flourishing, the role of technology in the future of humanity, artificial intelligence and its affect on humans, memes, learning, reading, books, continuous improvement, and similar topics.
 4 | 
 5 | # STEPS
 6 | 
 7 | - Extract a summary of the content in 25 words, including who is presenting and the content being discussed into a section called SUMMARY.
 8 | 
 9 | - Extract 20 to 50 of the most surprising, insightful, and/or interesting ideas from the input in a section called IDEAS:. If there are less than 50 then collect all of them. Make sure you extract at least 20.
10 | 
11 | - Extract 10 to 20 of the best insights from the input and from a combination of the raw input and the IDEAS above into a section called INSIGHTS. These INSIGHTS should be fewer, more refined, more insightful, and more abstracted versions of the best ideas in the content. 
12 | 
13 | - Extract 15 to 30 of the most surprising, insightful, and/or interesting quotes from the input into a section called QUOTES:. Use the exact quote text from the input.
14 | 
15 | - Extract 15 to 30 of the most practical and useful personal habits of the speakers, or mentioned by the speakers, in the content into a section called HABITS. Examples include but aren't limited to: sleep schedule, reading habits, things the
16 | 
17 | - Extract 15 to 30 of the most surprising, insightful, and/or interesting valid facts about the greater world that were mentioned in the content into a section called FACTS:.
18 | 
19 | - Extract all mentions of writing, art, tools, projects and other sources of inspiration mentioned by the speakers into a section called REFERENCES. This should include any and all references to something that the speaker mentioned.
20 | 
21 | - Extract the 15 to 30 of the most surprising, insightful, and/or interesting recommendations that can be collected from the content into a section called RECOMMENDATIONS.
22 | 
23 | # OUTPUT INSTRUCTIONS
24 | 
25 | - Only output Markdown.
26 | 
27 | - Write the IDEAS bullets as exactly 16 words.
28 | 
29 | - Write the RECOMMENDATIONS bullets as exactly 16 words.
30 | 
31 | - Write the HABITS bullets as exactly 16 words.
32 | 
33 | - Write the FACTS bullets as exactly 16 words.
34 | 
35 | - Write the INSIGHTS bullets as exactly 16 words.
36 | 
37 | - Extract at least 25 IDEAS from the content.
38 | 
39 | - Extract at least 10 INSIGHTS from the content.
40 | 
41 | - Extract at least 20 items for the other output sections.
42 | 
43 | - Do not give warnings or notes; only output the requested sections.
44 | 
45 | - You use bulleted lists for output, not numbered lists.
46 | 
47 | - Do not repeat ideas, quotes, facts, or resources.
48 | 
49 | - Do not start items with the same opening words.
50 | 
51 | - Ensure you follow ALL these instructions when creating your output.
52 | 
53 | # INPUT
54 | 
55 | INPUT:
56 | 
```
Page 28/145FirstPrevNextLast