#
tokens: 49376/50000 31/1784 files (page 17/145)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 17 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

--------------------------------------------------------------------------------
/workbench-service/migrations/versions/2025_03_19_140136_aaaf792d4d72_set_user_title_set.py:
--------------------------------------------------------------------------------

```python
 1 | """set user_title_set
 2 | 
 3 | Revision ID: aaaf792d4d72
 4 | Revises: a106de176394
 5 | Create Date: 2025-03-19 14:01:36.127350
 6 | 
 7 | """
 8 | 
 9 | from typing import Sequence, Union
10 | 
11 | import sqlmodel as sm
12 | from alembic import op
13 | from semantic_workbench_service import db
14 | 
15 | # revision identifiers, used by Alembic.
16 | revision: str = "aaaf792d4d72"
17 | down_revision: Union[str, None] = "a106de176394"
18 | branch_labels: Union[str, Sequence[str], None] = None
19 | depends_on: Union[str, Sequence[str], None] = None
20 | 
21 | 
22 | def upgrade() -> None:
23 |     bind = op.get_bind()
24 | 
25 |     # Add the __user_title_set key to the meta_data of all conversations to prevent
26 |     # auto-retitling for existing conversations
27 |     for conversation_id, meta_data in bind.execute(
28 |         sm.select(db.Conversation.conversation_id, db.Conversation.meta_data)
29 |     ).yield_per(1):
30 |         meta_data = meta_data or {}
31 |         meta_data["__user_title_set"] = True
32 | 
33 |         bind.execute(
34 |             sm.update(db.Conversation)
35 |             .where(sm.col(db.Conversation.conversation_id) == conversation_id)
36 |             .values(meta_data=meta_data)
37 |         )
38 | 
39 | 
40 | def downgrade() -> None:
41 |     bind = op.get_bind()
42 | 
43 |     # Drop the __user_title_set key
44 |     for conversation_id, meta_data in bind.execute(
45 |         sm.select(db.Conversation.conversation_id, db.Conversation.meta_data)
46 |     ).yield_per(1):
47 |         meta_data = meta_data or {}
48 |         if not meta_data.pop("__user_title_set", None):
49 |             continue
50 | 
51 |         bind.execute(
52 |             sm.update(db.Conversation)
53 |             .where(sm.col(db.Conversation.conversation_id) == conversation_id)
54 |             .values(meta_data=meta_data)
55 |         )
56 | 
```

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

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { Caption1, Link, makeStyles, shorthands, tokens } from '@fluentui/react-components';
 4 | import React from 'react';
 5 | 
 6 | const useClasses = makeStyles({
 7 |     root: {
 8 |         display: 'flex',
 9 |         flexDirection: 'row',
10 |         backgroundColor: tokens.colorNeutralBackgroundAlpha,
11 |         alignItems: 'center',
12 |         justifyContent: 'center',
13 |         gap: tokens.spacingVerticalM,
14 |         ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingHorizontalM),
15 |     },
16 | });
17 | 
18 | export const AppFooter: React.FC = () => {
19 |     const classes = useClasses();
20 | 
21 |     return (
22 |         <div className={classes.root}>
23 |             <Link href="https://go.microsoft.com/fwlink/?LinkId=521839" target="_blank">
24 |                 Privacy &amp; Cookies
25 |             </Link>{' '}
26 |             |{' '}
27 |             <Link href="https://go.microsoft.com/fwlink/?linkid=2259814" target="_blank">
28 |                 Consumer Health Privacy
29 |             </Link>{' '}
30 |             |{' '}
31 |             <Link href="https://go.microsoft.com/fwlink/?LinkID=246338" target="_blank">
32 |                 Terms of Use
33 |             </Link>{' '}
34 |             |{' '}
35 |             <Link
36 |                 href="https://www.microsoft.com/en-us/legal/intellectualproperty/Trademarks/EN-US.aspx"
37 |                 target="_blank"
38 |             >
39 |                 Trademarks
40 |             </Link>{' '}
41 |             |{' '}
42 |             <Link href="https://github.com/microsoft/semanticworkbench" target="_blank">
43 |                 @GitHub
44 |             </Link>{' '}
45 |             | <Caption1>© Microsoft 2024</Caption1>
46 |         </div>
47 |     );
48 | };
49 | 
```

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

```python
 1 | import json
 2 | import logging
 3 | from datetime import datetime
 4 | from typing import Any
 5 | from uuid import UUID
 6 | 
 7 | from pydantic import BaseModel
 8 | 
 9 | logger = logging.getLogger("guided-conversation-skill")
10 | logger.addHandler(logging.NullHandler())
11 | logger.setLevel(logging.DEBUG)
12 | 
13 | 
14 | def convert_to_serializable(data: Any) -> Any:
15 |     """
16 |     Recursively convert Pydantic BaseModel instances to dictionaries.
17 |     """
18 |     if isinstance(data, BaseModel):
19 |         return data.model_dump()
20 |     elif isinstance(data, dict):
21 |         return {key: convert_to_serializable(value) for key, value in data.items()}
22 |     elif isinstance(data, list):
23 |         return [convert_to_serializable(item) for item in data]
24 |     elif isinstance(data, tuple):
25 |         return tuple(convert_to_serializable(item) for item in data)
26 |     elif isinstance(data, set):
27 |         return {convert_to_serializable(item) for item in data}
28 |     return data
29 | 
30 | 
31 | class CustomEncoder(json.JSONEncoder):
32 |     def default(self, o):
33 |         if isinstance(o, UUID):
34 |             return str(o)
35 |         if isinstance(o, datetime):
36 |             return o.isoformat()
37 |         return super().default(o)
38 | 
39 | 
40 | def add_serializable_data(data: Any) -> dict[str, Any]:
41 |     """
42 |     Helper function to use when adding extra data to log messages.
43 |     """
44 |     extra = {}
45 | 
46 |     # Convert to serializable.
47 |     data = convert_to_serializable(data)
48 | 
49 |     # Ensure data is a JSON-serializable object.
50 |     try:
51 |         data = json.loads(json.dumps(data, cls=CustomEncoder))
52 |     except Exception as e:
53 |         data = str(e)
54 | 
55 |     if data:
56 |         extra["data"] = data
57 | 
58 |     return extra
59 | 
60 | 
61 | extra_data = add_serializable_data
62 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/components/Conversations/ChatInputPlugins/ClearEditorPlugin.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | // based on code from: https://github.com/facebook/lexical/blob/main/packages/lexical-react/src/LexicalClearEditorPlugin.ts
 3 | 
 4 | import { useLexicalComposerContext } from '@fluentui-copilot/react-copilot';
 5 | import {
 6 |     $createParagraphNode,
 7 |     $getRoot,
 8 |     $getSelection,
 9 |     $isRangeSelection,
10 |     CLEAR_EDITOR_COMMAND,
11 |     COMMAND_PRIORITY_EDITOR,
12 | } from 'lexical';
13 | import React from 'react';
14 | 
15 | interface ClearEditorPluginProps {
16 |     onClear?: () => void;
17 | }
18 | 
19 | export const ClearEditorPlugin = ({ onClear }: ClearEditorPluginProps): JSX.Element | null => {
20 |     const [editor] = useLexicalComposerContext();
21 | 
22 |     React.useLayoutEffect(() => {
23 |         return editor.registerCommand(
24 |             CLEAR_EDITOR_COMMAND,
25 |             () => {
26 |                 editor.update(() => {
27 |                     if (onClear == null) {
28 |                         const root = $getRoot();
29 |                         const selection = $getSelection();
30 |                         const paragraph = $createParagraphNode();
31 |                         root.clear();
32 |                         root.append(paragraph);
33 | 
34 |                         if (selection !== null) {
35 |                             paragraph.select();
36 |                         }
37 |                         if ($isRangeSelection(selection)) {
38 |                             selection.format = 0;
39 |                         }
40 |                     } else {
41 |                         onClear();
42 |                     }
43 |                 });
44 |                 return true;
45 |             },
46 |             COMMAND_PRIORITY_EDITOR,
47 |         );
48 |     }, [editor, onClear]);
49 | 
50 |     return null;
51 | };
52 | 
```

--------------------------------------------------------------------------------
/assistants/project-assistant/assistant/domain/tasks_manager.py:
--------------------------------------------------------------------------------

```python
 1 | from semantic_workbench_assistant.assistant_app import ConversationContext
 2 | 
 3 | from assistant.data import NewTaskInfo, TaskInfo
 4 | from assistant.domain.share_manager import ShareManager
 5 | from assistant.storage import ShareStorage
 6 | 
 7 | 
 8 | class TasksManager:
 9 |     @staticmethod
10 |     async def get_tasks(
11 |         context: ConversationContext,
12 |     ) -> list[TaskInfo]:
13 |         share_id = await ShareManager.get_share_id(context)
14 |         if not share_id:
15 |             return []
16 |         return ShareStorage.read_tasks(share_id)
17 | 
18 |     @staticmethod
19 |     async def add_tasks(
20 |         context: ConversationContext,
21 |         tasks: list[NewTaskInfo],
22 |     ) -> None:
23 |         share_id = await ShareManager.get_share_id(context)
24 |         if not share_id:
25 |             return
26 |         ShareStorage.add_tasks(share_id, tasks)
27 | 
28 |     @staticmethod
29 |     async def update_task(
30 |         context: ConversationContext,
31 |         task: TaskInfo,
32 |     ) -> None:
33 |         share_id = await ShareManager.get_share_id(context)
34 |         if not share_id:
35 |             return
36 |         ShareStorage.update_task(share_id, task)
37 | 
38 |     @staticmethod
39 |     async def remove_task(
40 |         context: ConversationContext,
41 |         task_id: str,
42 |     ) -> None:
43 |         share_id = await ShareManager.get_share_id(context)
44 |         if not share_id:
45 |             return
46 |         ShareStorage.remove_task(share_id, task_id)
47 | 
48 |     @staticmethod
49 |     async def set_task_list(
50 |         context: ConversationContext,
51 |         tasks: list[TaskInfo],
52 |     ) -> None:
53 |         share_id = await ShareManager.get_share_id(context)
54 |         if not share_id:
55 |             return
56 |         ShareStorage.set_all_tasks(share_id, tasks)
57 | 
```

--------------------------------------------------------------------------------
/libraries/dotnet/WorkbenchConnector/WorkbenchConfig.cs:
--------------------------------------------------------------------------------

```csharp
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | using System;
 4 | 
 5 | namespace Microsoft.SemanticWorkbench.Connector;
 6 | 
 7 | public class WorkbenchConfig
 8 | {
 9 |     /// <summary>
10 |     /// Semantic Workbench endpoint.
11 |     /// </summary>
12 |     public string WorkbenchEndpoint { get; set; } = "http://127.0.0.1:3000";
13 | 
14 |     /// <summary>
15 |     /// The host where the connector receives requests sent by the workbench.
16 |     /// Locally, this is usually "http://127.0.0.1:[some port]"
17 |     /// On Azure, this will be something like "https://contoso.azurewebsites.net"
18 |     /// Leave this setting empty to use "127.0.0.1" and autodetect the port in use.
19 |     /// You can use an env var to set this value, e.g. Workbench__ConnectorHost=https://contoso.azurewebsites.net
20 |     /// </summary>
21 |     public string ConnectorHost { get; set; } = string.Empty;
22 | 
23 |     /// <summary>
24 |     /// This is the prefix of all the endpoints exposed by the connector
25 |     /// </summary>
26 |     public string ConnectorApiPrefix { get; set; } = "/myagents";
27 | 
28 |     /// <summary>
29 |     /// Unique ID of the service. Semantic Workbench will store this event to identify the server
30 |     /// so you should keep the value fixed to match the conversations tracked across service restarts.
31 |     /// </summary>
32 |     public string ConnectorId { get; set; } = Guid.NewGuid().ToString("D");
33 | 
34 |     /// <summary>
35 |     /// Name of your agent service
36 |     /// </summary>
37 |     public string ConnectorName { get; set; } = ".NET Multi Agent Service";
38 | 
39 |     /// <summary>
40 |     /// Description of your agent service.
41 |     /// </summary>
42 |     public string ConnectorDescription { get; set; } = "Multi-agent service for .NET agents";
43 | }
44 | 
```

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

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { Card, Text, Title3, makeStyles, tokens } from '@fluentui/react-components';
 4 | import React from 'react';
 5 | import { PresenceMotionList } from '../App/PresenceMotionList';
 6 | 
 7 | const useClasses = makeStyles({
 8 |     root: {
 9 |         backgroundImage: `linear-gradient(to right, ${tokens.colorNeutralBackground1}, ${tokens.colorBrandBackground2})`,
10 |     },
11 |     actions: {
12 |         display: 'flex',
13 |         justifyContent: 'space-between',
14 |         alignItems: 'center',
15 |         gap: tokens.spacingVerticalS,
16 |     },
17 | });
18 | 
19 | interface MyItemsManagerProps {
20 |     items?: JSX.Element[];
21 |     title: string;
22 |     itemLabel: string;
23 |     hideInstruction?: boolean;
24 |     actions: JSX.Element;
25 | }
26 | 
27 | export const MyItemsManager: React.FC<MyItemsManagerProps> = (props) => {
28 |     const { items, title, itemLabel, hideInstruction, actions } = props;
29 |     const classes = useClasses();
30 | 
31 |     return (
32 |         <Card className={classes.root}>
33 |             <Text size={400} weight="semibold">
34 |                 {title}
35 |             </Text>
36 |             <div className={classes.actions}>{actions}</div>
37 |             {items?.length === 0 && (
38 |                 <>
39 |                     <Title3>No {itemLabel.toLowerCase()}s found.</Title3>
40 |                     {!hideInstruction && (
41 |                         <Text>
42 |                             Create a new {itemLabel.toLowerCase()} by clicking the <strong>New {itemLabel}</strong>{' '}
43 |                             button above.
44 |                         </Text>
45 |                     )}
46 |                 </>
47 |             )}
48 |             <PresenceMotionList items={items} />
49 |         </Card>
50 |     );
51 | };
52 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-filesystem-edit/mcp_server_filesystem_edit/config.py:
--------------------------------------------------------------------------------

```python
 1 | # Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import os
 4 | import sys
 5 | from typing import Annotated
 6 | 
 7 | import pendulum
 8 | from pydantic import Field
 9 | from pydantic_settings import BaseSettings
10 | 
11 | log_level = os.environ.get("LOG_LEVEL", "INFO")
12 | 
13 | 
14 | def load_required_env_var(env_var_name: str) -> str:
15 |     value = os.environ.get(env_var_name, "")
16 |     if not value:
17 |         raise ValueError(f"Missing required environment variable: {env_var_name}")
18 |     return value
19 | 
20 | 
21 | class Settings(BaseSettings):
22 |     log_level: str = log_level
23 |     allowed_directories: list[str] = []
24 |     include_hidden_paths: bool = False
25 |     pdflatex_enabled: bool = False
26 |     office_support_enabled: Annotated[bool, Field(default_factory=lambda: sys.platform == "win32")] = False
27 | 
28 |     # LLM and prompt related settings
29 |     comment_author: str = "Feedback Tool"
30 |     doc_editor_prefix: str = "[Document Editor]: "
31 |     feedback_tool_prefix: str = "[Feedback Tool]: "
32 |     file_tool_prefix: str = "[File Tool]: "
33 |     rewrite_threshold: int = 250  # Tokens above this will trigger document edits instead of a rewrite
34 | 
35 |     # Model choices. NOTE: When using MCP sampling, the value here != what might actually be used.
36 |     draft_path_model: str = "gpt-4.1"
37 |     edit_model: str = "o4-mini"
38 |     convert_tool_calls_model: str = "gpt-4.1"
39 |     summarization_model: str = "gpt-4.1"
40 |     comment_model: str = "o4-mini"
41 |     comment_analysis_model: str = "gpt-4.1"
42 |     knowledge_cutoff: str = "2024-05"
43 | 
44 |     def current_date_func(self) -> str:
45 |         """Return the current date in Eastern US timezone formatted as YYYY-MM-DD."""
46 |         return pendulum.now(tz="America/Los_Angeles").format("YYYY-MM-DD")
47 | 
```

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

```markdown
 1 | <identity>
 2 | 
 3 | You are an expert format converter specializing in converting content to clean Markdown. Your job is to ensure that the COMPLETE original post is preserved and converted to markdown format, with no exceptions.
 4 | 
 5 | </identity>
 6 | 
 7 | <steps>
 8 | 
 9 | 1. Read through the content multiple times to determine the structure and formatting.
10 | 2. Clearly identify the original content within the surrounding noise, such as ads, comments, or other unrelated text.
11 | 3. Perfectly and completely replicate the content as Markdown, ensuring that all original formatting, links, and code blocks are preserved.
12 | 4. Output the COMPLETE original content in Markdown format.
13 | 
14 | </steps>
15 | 
16 | <instructions>
17 | 
18 | - DO NOT abridge, truncate, or otherwise alter the original content in any way. Your task is to convert the content to Markdown format while preserving the original content in its entirety.
19 | 
20 | - DO NOT insert placeholders such as "content continues below" or any other similar text. ALWAYS output the COMPLETE original content.
21 | 
22 | - When you're done outputting the content in Markdown format, check the original content and ensure that you have not truncated or altered any part of it.
23 | 
24 | </instructions>
25 | 
26 | 
27 | <notes>
28 | 
29 | - Keep all original content wording exactly as it was
30 | - Keep all original punctuation exactly as it is 
31 | - Keep all original links
32 | - Keep all original quotes and code blocks
33 | - ONLY convert the content to markdown format
34 | - CRITICAL: Your output will be compared against the work of an expert human performing the same exact task. Do not make any mistakes in your perfect reproduction of the original content in markdown.
35 | 
36 | </notes>
37 | 
38 | <content>
39 | 
40 | INPUT
41 | 
42 | </content>
43 | 
44 | 
```

--------------------------------------------------------------------------------
/workbench-service/migrations/versions/2024_09_19_190029_dffb1d7e219a_file_version_filename.py:
--------------------------------------------------------------------------------

```python
 1 | """upgrades file version storage filename
 2 | 
 3 | Revision ID: dffb1d7e219a
 4 | Revises: 69dcda481c14
 5 | Create Date: 2024-09-19 19:00:29.233114
 6 | 
 7 | """
 8 | 
 9 | from typing import Sequence, Union
10 | 
11 | import sqlalchemy as sa
12 | import sqlmodel
13 | from alembic import op
14 | from semantic_workbench_service import db
15 | from sqlalchemy.ext.asyncio import AsyncConnection
16 | from sqlmodel import select
17 | 
18 | # revision identifiers, used by Alembic.
19 | revision: str = "dffb1d7e219a"
20 | down_revision: Union[str, None] = "69dcda481c14"
21 | branch_labels: Union[str, Sequence[str], None] = None
22 | depends_on: Union[str, Sequence[str], None] = None
23 | 
24 | 
25 | async def upgrade_file_versions(conn: AsyncConnection) -> None:
26 |     file_version_details = []
27 |     for row in await conn.execute(
28 |         select(db.File.file_id, db.File.filename, db.FileVersion.version).join(db.FileVersion)
29 |     ):
30 |         file_version_details.append((row[0], row[1], row[2]))
31 | 
32 |     for file_id, filename, version in file_version_details:
33 |         await conn.execute(
34 |             sa.update(db.FileVersion)
35 |             .where(db.FileVersion.file_id == file_id)
36 |             .where(db.FileVersion.version == version)
37 |             .values(storage_filename=f"{file_id.hex}:{filename}:{str(version).zfill(7)}")
38 |         )
39 | 
40 | 
41 | def upgrade() -> None:
42 |     op.add_column("fileversion", sa.Column("storage_filename", sqlmodel.AutoString(), nullable=True))
43 |     op.execute("UPDATE fileversion SET storage_filename = ''")
44 |     op.run_async(upgrade_file_versions)
45 |     with op.batch_alter_table("fileversion") as batch_op:
46 |         batch_op.alter_column("storage_filename", nullable=False)
47 | 
48 | 
49 | def downgrade() -> None:
50 |     op.drop_column("fileversion", "storage_filename")
51 | 
```

--------------------------------------------------------------------------------
/libraries/python/assistant-extensions/.vscode/settings.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "editor.bracketPairColorization.enabled": true,
 3 |   "editor.codeActionsOnSave": {
 4 |     "source.organizeImports": "explicit",
 5 |     "source.fixAll": "explicit"
 6 |   },
 7 |   "editor.guides.bracketPairs": "active",
 8 |   "editor.formatOnPaste": true,
 9 |   "editor.formatOnType": true,
10 |   "editor.formatOnSave": true,
11 |   "files.eol": "\n",
12 |   "files.trimTrailingWhitespace": true,
13 |   "python.analysis.autoFormatStrings": true,
14 |   "python.analysis.autoImportCompletions": true,
15 |   "python.analysis.diagnosticMode": "workspace",
16 |   "python.analysis.fixAll": ["source.unusedImports"],
17 |   "python.analysis.inlayHints.functionReturnTypes": true,
18 |   "python.analysis.typeCheckingMode": "standard",
19 |   "python.defaultInterpreterPath": "${workspaceFolder}/.venv",
20 |   "python.testing.pytestEnabled": true,
21 |   "[python]": {
22 |     "editor.defaultFormatter": "charliermarsh.ruff",
23 |     "editor.formatOnSave": true,
24 |     "editor.codeActionsOnSave": {
25 |       "source.fixAll": "explicit",
26 |       "source.unusedImports": "explicit",
27 |       "source.organizeImports": "explicit",
28 |       "source.formatDocument": "explicit"
29 |     }
30 |   },
31 |   "ruff.nativeServer": "on",
32 |   "search.exclude": {
33 |     "**/.venv": true,
34 |     "**/.data": true,
35 |     "**/__pycache__": true
36 |   },
37 |   // For use with optional extension: "streetsidesoftware.code-spell-checker"
38 |   "cSpell.ignorePaths": [
39 |     ".venv",
40 |     "node_modules",
41 |     "package-lock.json",
42 |     "settings.json",
43 |     "uv.lock"
44 |   ],
45 |   "cSpell.words": [
46 |     "asyncio",
47 |     "deepmerge",
48 |     "DMAIC",
49 |     "endregion",
50 |     "Excalidraw",
51 |     "giphy",
52 |     "modelcontextprotocol",
53 |     "openai",
54 |     "pdfplumber",
55 |     "pydantic",
56 |     "pyright",
57 |     "pytest",
58 |     "semanticworkbench"
59 |   ]
60 | }
61 | 
```

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

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { Card, Label, makeStyles, shorthands, tokens } from '@fluentui/react-components';
 4 | import React from 'react';
 5 | import { Link } from 'react-router-dom';
 6 | import { TooltipWrapper } from './TooltipWrapper';
 7 | 
 8 | const useClasses = makeStyles({
 9 |     header: {
10 |         display: 'flex',
11 |         flexDirection: 'row',
12 |         alignItems: 'center',
13 |         color: 'inherit',
14 |         gap: tokens.spacingHorizontalS,
15 |         ...shorthands.textDecoration('none'),
16 |     },
17 |     link: {
18 |         cursor: 'pointer',
19 |     },
20 |     body: {
21 |         display: 'flex',
22 |         flexDirection: 'row',
23 |         alignItems: 'center',
24 |         justifyContent: 'space-between',
25 |         gap: tokens.spacingVerticalM,
26 |     },
27 |     actions: {
28 |         display: 'flex',
29 |         flexDirection: 'row',
30 |         gap: tokens.spacingHorizontalS,
31 |     },
32 | });
33 | 
34 | interface MiniControlProps {
35 |     icon: JSX.Element;
36 |     label: string;
37 |     linkUrl: string;
38 |     actions?: JSX.Element;
39 |     tooltip?: string;
40 | }
41 | 
42 | export const MiniControl: React.FC<MiniControlProps> = (props) => {
43 |     const { icon, label, linkUrl, actions, tooltip } = props;
44 |     const classes = useClasses();
45 | 
46 |     const link = (
47 |         <Link className={classes.header} to={linkUrl}>
48 |             {icon}
49 |             <Label className={classes.link} size="large">
50 |                 {label}
51 |             </Label>
52 |         </Link>
53 |     );
54 | 
55 |     return (
56 |         <Card>
57 |             <div className={classes.body}>
58 |                 {tooltip ? <TooltipWrapper content={tooltip}>{link}</TooltipWrapper> : link}
59 |                 <div className={classes.actions}>{actions}</div>
60 |             </div>
61 |         </Card>
62 |     );
63 | };
64 | 
```

--------------------------------------------------------------------------------
/assistants/skill-assistant/assistant/logging.py:
--------------------------------------------------------------------------------

```python
 1 | import json
 2 | import logging
 3 | from datetime import datetime
 4 | from typing import Any
 5 | from uuid import UUID
 6 | 
 7 | from pydantic import BaseModel
 8 | 
 9 | logger = logging.getLogger("skill-assistant")
10 | logger.setLevel(logging.DEBUG)
11 | # logger.addHandler(NullHandler())
12 | 
13 | 
14 | def convert_to_serializable(data: Any) -> Any:
15 |     """
16 |     Recursively convert Pydantic BaseModel instances to dictionaries.
17 |     """
18 |     if isinstance(data, BaseModel):
19 |         return data.model_dump()
20 |     elif isinstance(data, dict):
21 |         return {key: convert_to_serializable(value) for key, value in data.items()}
22 |     elif isinstance(data, list):
23 |         return [convert_to_serializable(item) for item in data]
24 |     elif isinstance(data, tuple):
25 |         return tuple(convert_to_serializable(item) for item in data)
26 |     elif isinstance(data, set):
27 |         return {convert_to_serializable(item) for item in data}
28 |     return data
29 | 
30 | 
31 | class CustomEncoder(json.JSONEncoder):
32 |     def default(self, o):
33 |         if isinstance(o, UUID):
34 |             return str(o)
35 |         if isinstance(o, datetime):
36 |             return o.isoformat()
37 |         return super().default(o)
38 | 
39 | 
40 | def add_serializable_data(data: Any) -> dict[str, Any]:
41 |     """
42 |     Helper function to use when adding extra data to log messages. Data will
43 |     attempt to be put into a serializable format.
44 |     """
45 |     extra = {}
46 | 
47 |     # Convert to serializable.
48 |     data = convert_to_serializable(data)
49 | 
50 |     # Ensure data is a JSON-serializable object.
51 |     try:
52 |         data = json.loads(json.dumps(data, cls=CustomEncoder))
53 |     except Exception as e:
54 |         data = str(e)
55 | 
56 |     if data:
57 |         extra["data"] = data
58 | 
59 |     return extra
60 | 
61 | 
62 | extra_data = add_serializable_data
63 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-giphy/.vscode/settings.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "editor.bracketPairColorization.enabled": true,
 3 |   "editor.codeActionsOnSave": {
 4 |     "source.organizeImports": "explicit",
 5 |     "source.fixAll": "explicit"
 6 |   },
 7 |   "editor.guides.bracketPairs": "active",
 8 |   "editor.formatOnPaste": true,
 9 |   "editor.formatOnType": true,
10 |   "editor.formatOnSave": true,
11 |   "files.eol": "\n",
12 |   "files.trimTrailingWhitespace": true,
13 |   "[json]": {
14 |     "editor.defaultFormatter": "esbenp.prettier-vscode",
15 |     "editor.formatOnSave": true
16 |   },
17 |   "[jsonc]": {
18 |     "editor.defaultFormatter": "esbenp.prettier-vscode",
19 |     "editor.formatOnSave": true
20 |   },
21 |   "python.analysis.autoFormatStrings": true,
22 |   "python.analysis.autoImportCompletions": true,
23 |   "python.analysis.diagnosticMode": "workspace",
24 |   "python.analysis.fixAll": ["source.unusedImports"],
25 |   "python.analysis.inlayHints.functionReturnTypes": true,
26 |   "python.analysis.typeCheckingMode": "standard",
27 |   "python.defaultInterpreterPath": "${workspaceFolder}/.venv",
28 |   "[python]": {
29 |     "editor.defaultFormatter": "charliermarsh.ruff",
30 |     "editor.formatOnSave": true,
31 |     "editor.codeActionsOnSave": {
32 |       "source.fixAll": "explicit",
33 |       "source.unusedImports": "explicit",
34 |       "source.organizeImports": "explicit",
35 |       "source.formatDocument": "explicit"
36 |     }
37 |   },
38 |   "ruff.nativeServer": "on",
39 |   "search.exclude": {
40 |     "**/.venv": true,
41 |     "**/.data": true
42 |   },
43 |   // For use with optional extension: "streetsidesoftware.code-spell-checker"
44 |   "cSpell.ignorePaths": [
45 |     ".venv",
46 |     "node_modules",
47 |     "package-lock.json",
48 |     "settings.json",
49 |     "uv.lock"
50 |   ],
51 |   "cSpell.words": [
52 |     "debugpy",
53 |     "dotenv",
54 |     "fastmcp",
55 |     "GIPHY",
56 |     "pyright",
57 |     "toplevel"
58 |   ]
59 | }
60 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/redux/features/localUser/localUserSlice.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 { LocalUserState } from './LocalUserState';
 6 | 
 7 | const storageKeys = {
 8 |     id: 'local-user.id',
 9 |     name: 'local-user.name',
10 |     email: 'local-user.email',
11 |     avatarName: 'local-user.avatar.name',
12 |     avatarImage: 'local-user.avatar.image',
13 | };
14 | 
15 | const initialState: LocalUserState = {
16 |     id: AppStorage.getInstance().loadObject<string>(storageKeys.id),
17 |     name: AppStorage.getInstance().loadObject<string>(storageKeys.name),
18 |     email: AppStorage.getInstance().loadObject<string>(storageKeys.email),
19 |     avatar: {
20 |         name: AppStorage.getInstance().loadObject<string>(storageKeys.avatarName),
21 |         image: AppStorage.getInstance().loadObject<{
22 |             src: string;
23 |         }>(storageKeys.avatarImage),
24 |     },
25 | };
26 | 
27 | export const localUserSlice = createSlice({
28 |     name: 'localUser',
29 |     initialState,
30 |     reducers: {
31 |         setLocalUser: (state: LocalUserState, action: PayloadAction<LocalUserState>) => {
32 |             Object.assign(state, action.payload);
33 |             AppStorage.getInstance().saveObject(storageKeys.id, state.id);
34 |             AppStorage.getInstance().saveObject(storageKeys.name, state.name);
35 |             AppStorage.getInstance().saveObject(storageKeys.email, state.email);
36 |             AppStorage.getInstance().saveObject(storageKeys.avatarName, state.avatar.name);
37 |             AppStorage.getInstance().saveObject(storageKeys.avatarImage, state.avatar.image);
38 |         },
39 |     },
40 | });
41 | 
42 | export const { setLocalUser } = localUserSlice.actions;
43 | 
44 | export default localUserSlice.reducer;
45 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/tests/utilities/test_make_arg_set.py:
--------------------------------------------------------------------------------

```python
 1 | from skill_library.utilities import make_arg_set
 2 | 
 3 | 
 4 | def test_make_arg_set():
 5 |     expected_variables = ["a", "b", "c"]
 6 |     args = (1, 2)
 7 |     kwargs = {"c": 3}
 8 | 
 9 |     arg_set = make_arg_set(expected_variables, args, kwargs)
10 |     assert arg_set == {"a": 1, "b": 2, "c": 3}
11 | 
12 | 
13 | def test_make_arg_set_no_args():
14 |     expected_variables = ["a", "b", "c"]
15 |     args = ()
16 |     kwargs = {"a": 1, "b": 2, "c": 3}
17 | 
18 |     arg_set = make_arg_set(expected_variables, args, kwargs)
19 |     assert arg_set == {"a": 1, "b": 2, "c": 3}
20 | 
21 | 
22 | def test_make_arg_set_no_kwargs():
23 |     expected_variables = ["a", "b", "c"]
24 |     args = (1, 2, 3)
25 |     kwargs = {}
26 | 
27 |     arg_set = make_arg_set(expected_variables, args, kwargs)
28 |     assert arg_set == {"a": 1, "b": 2, "c": 3}
29 | 
30 | 
31 | def test_make_arg_set_no_args_or_kwargs():
32 |     expected_variables = ["a", "b", "c"]
33 |     args = ()
34 |     kwargs = {}
35 | 
36 |     arg_set = make_arg_set(expected_variables, args, kwargs)
37 |     assert arg_set == {}
38 | 
39 | 
40 | def test_make_arg_set_extra_args():
41 |     expected_variables = ["a", "b", "c"]
42 |     args = (1, 2, 3, 4)
43 |     kwargs = {}
44 | 
45 |     arg_set = make_arg_set(expected_variables, args, kwargs)
46 |     assert arg_set == {"a": 1, "b": 2, "c": 3}
47 | 
48 | 
49 | def test_make_arg_set_extra_kwargs():
50 |     expected_variables = ["a", "b", "c"]
51 |     args = ()
52 |     kwargs = {"a": 1, "b": 2, "c": 3, "d": 4}
53 | 
54 |     arg_set = make_arg_set(expected_variables, args, kwargs)
55 |     assert arg_set == {"a": 1, "b": 2, "c": 3}
56 | 
57 | 
58 | def test_make_arg_set_extra_args_and_kwargs():
59 |     expected_variables = ["a", "b", "c"]
60 |     args = (1, 2, 3, 4)
61 |     kwargs = {"a": "m", "b": "n", "c": "o", "d": "p"}
62 | 
63 |     arg_set = make_arg_set(expected_variables, args, kwargs)
64 |     assert arg_set == {"a": "m", "b": "n", "c": "o"}
65 | 
```

--------------------------------------------------------------------------------
/aspire-orchestrator/Aspire.Extensions/VirtualEnvironment.cs:
--------------------------------------------------------------------------------

```csharp
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | namespace Aspire.Hosting.ComponentModel;
 4 | 
 5 | internal sealed class VirtualEnvironment(string virtualEnvironmentPath)
 6 | {
 7 |     /// <summary>
 8 |     /// Locates an executable in the virtual environment.
 9 |     /// </summary>
10 |     /// <param name="name">The name of the executable.</param>
11 |     /// <returns>Returns the path to the executable if it exists in the virtual environment.</returns>
12 |     public string? GetExecutable(string name)
13 |     {
14 |         if (OperatingSystem.IsWindows())
15 |         {
16 |             string[] allowedExtensions = [".exe", ".cmd", ".bat"];
17 | 
18 |             return allowedExtensions
19 |                 .Select(allowedExtension => Path.Join(virtualEnvironmentPath, "Scripts", name + allowedExtension))
20 |                 .FirstOrDefault(File.Exists);
21 |         }
22 | 
23 |         var executablePath = Path.Join(virtualEnvironmentPath, "bin", name);
24 |         return File.Exists(executablePath) ? executablePath : null;
25 |     }
26 | 
27 |     /// <summary>
28 |     /// Locates a required executable in the virtual environment.
29 |     /// </summary>
30 |     /// <param name="name">The name of the executable.</param>
31 |     /// <returns>The path to the executable in the virtual environment.</returns>
32 |     /// <exception cref="DistributedApplicationException">Gets thrown when the executable couldn't be located.</exception>
33 |     public string GetRequiredExecutable(string name)
34 |     {
35 |         return this.GetExecutable(name) ?? throw new DistributedApplicationException(
36 |             $"The executable {name} could not be found in the virtual environment at '{virtualEnvironmentPath}' . " +
37 |             "Make sure the virtual environment is initialized and the executable is installed.");
38 |     }
39 | }
40 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/redux/features/settings/settingsSlice.ts:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { createSlice, PayloadAction } from '@reduxjs/toolkit';
 4 | import { Constants } from '../../../Constants';
 5 | import { AppStorage } from '../../../libs/AppStorage';
 6 | import { SettingsState } from './SettingsState';
 7 | 
 8 | const storageKeys = {
 9 |     theme: 'settings.theme',
10 |     environmentId: 'settings.environment-id',
11 | };
12 | 
13 | const initialState: SettingsState = {
14 |     theme: AppStorage.getInstance().loadObject<string>(storageKeys.theme) ?? Constants.app.defaultTheme,
15 |     environmentId:
16 |         AppStorage.getInstance().loadObject<string>(storageKeys.environmentId) ??
17 |         Constants.service.defaultEnvironmentId,
18 | };
19 | 
20 | export const settingsSlice = createSlice({
21 |     name: 'settings',
22 |     initialState,
23 |     reducers: {
24 |         setTheme: (state: SettingsState, action: PayloadAction<string>) => {
25 |             AppStorage.getInstance().saveObject(storageKeys.theme, action.payload);
26 |             state.theme = action.payload;
27 |         },
28 |         setEnvironmentId: (state: SettingsState, action: PayloadAction<string>) => {
29 |             const needsReload = state.environmentId !== action.payload;
30 |             if (action.payload === Constants.service.defaultEnvironmentId) {
31 |                 AppStorage.getInstance().saveObject(storageKeys.environmentId, undefined);
32 |             } else {
33 |                 AppStorage.getInstance().saveObject(storageKeys.environmentId, action.payload);
34 |             }
35 |             state.environmentId = action.payload;
36 |             if (needsReload) {
37 |                 window.location.reload();
38 |             }
39 |         },
40 |     },
41 | });
42 | 
43 | export const { setTheme, setEnvironmentId } = settingsSlice.actions;
44 | 
45 | export default settingsSlice.reducer;
46 | 
```

--------------------------------------------------------------------------------
/libraries/python/assistant-extensions/pyproject.toml:
--------------------------------------------------------------------------------

```toml
 1 | [project]
 2 | name = "assistant-extensions"
 3 | version = "0.1.0"
 4 | description = "Extensions for the Semantic Workbench OpenAI assistant."
 5 | authors = [{ name = "Semantic Workbench Team" }]
 6 | readme = "README.md"
 7 | requires-python = ">=3.11"
 8 | dependencies = [
 9 |     "anthropic>=0.40.0",
10 |     "anthropic-client>=0.1.0",
11 |     "assistant-drive>=0.1.0",
12 |     "deepmerge>=2.0",
13 |     "chat-context-toolkit>=0.1.0",
14 |     "openai>=1.61.0",
15 |     "openai-client>=0.1.0",
16 |     "requests-sse>=0.3.2",
17 |     "semantic-workbench-assistant>=0.1.0",
18 | ]
19 | 
20 | [project.optional-dependencies]
21 | # For any of the above dependencies that are specific to a single extension, it'd be good
22 | # to consider moving them to the optional-dependencies section. This way, the dependencies
23 | # are only installed when the specific extension is installed, to reduce the overall size
24 | # of the package installation, especially when bundling larger dependencies.
25 | attachments = ["docx2txt>=0.8", "pdfplumber>=0.11.2"]
26 | mcp = ["mcp-extensions[openai]>=0.1.0"]
27 | 
28 | [dependency-groups]
29 | dev = ["pyright>=1.1.389", "pytest>=8.3.1", "pytest-asyncio>=0.23.8"]
30 | 
31 | [tool.uv.sources]
32 | anthropic-client = { path = "../anthropic-client", editable = true }
33 | assistant-drive = { path = "../assistant-drive", editable = true }
34 | mcp-extensions = { path = "../mcp-extensions", editable = true }
35 | openai-client = { path = "../openai-client", editable = true }
36 | semantic-workbench-assistant = { path = "../semantic-workbench-assistant", editable = true }
37 | chat-context-toolkit = { path = "../chat-context-toolkit", editable = true }
38 | 
39 | [build-system]
40 | requires = ["hatchling"]
41 | build-backend = "hatchling.build"
42 | 
43 | 
44 | [tool.pytest.ini_options]
45 | asyncio_default_fixture_loop_scope = "function"
46 | asyncio_mode = "auto"
47 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/guided_conversation/tests/test_generate_agenda.py:
--------------------------------------------------------------------------------

```python
 1 | import pytest
 2 | from skill_library.skills.guided_conversation.agenda import Agenda
 3 | from skill_library.skills.guided_conversation.chat_completions.generate_agenda import generate_agenda, resource_phrase
 4 | from skill_library.skills.guided_conversation.conversation_guides import acrostic_poem
 5 | from skill_library.skills.guided_conversation.message import Conversation
 6 | from skill_library.skills.guided_conversation.resources import ConversationResource, ResourceConstraintUnit
 7 | from skill_library.types import LanguageModel
 8 | 
 9 | 
10 | @pytest.mark.skip("For manual testing.")
11 | async def test_generate_agenda(client: LanguageModel) -> None:
12 |     conversation = Conversation().add_user_message("Hi!")
13 |     agenda = Agenda()
14 |     artifact = {}
15 |     definition = acrostic_poem.definition
16 |     resource = ConversationResource(resource_constraint=definition.resource_constraint)
17 |     agenda, is_done = await generate_agenda(
18 |         client,
19 |         definition,
20 |         conversation,
21 |         agenda,
22 |         artifact,
23 |         resource,
24 |     )
25 |     assert agenda is not None
26 |     assert not is_done
27 | 
28 | 
29 | def test_format_resource():
30 |     assert resource_phrase(1, ResourceConstraintUnit.TURNS) == "1 turn"
31 |     assert resource_phrase(1, ResourceConstraintUnit.SECONDS) == "1 second"
32 |     assert resource_phrase(1, ResourceConstraintUnit.MINUTES) == "1 minute"
33 |     assert resource_phrase(2, ResourceConstraintUnit.TURNS) == "2 turns"
34 |     assert resource_phrase(2, ResourceConstraintUnit.SECONDS) == "2 seconds"
35 |     assert resource_phrase(2, ResourceConstraintUnit.MINUTES) == "2 minutes"
36 |     assert resource_phrase(1.5, ResourceConstraintUnit.SECONDS) == "2 seconds"
37 |     assert resource_phrase(1.5, ResourceConstraintUnit.MINUTES) == "2 minutes"
38 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-open-deep-research-clone/mcp_server_open_deep_research_clone/logging.py:
--------------------------------------------------------------------------------

```python
 1 | import json
 2 | import logging
 3 | from datetime import datetime
 4 | from typing import Any
 5 | from uuid import UUID
 6 | from .config import settings
 7 | 
 8 | from pydantic import BaseModel
 9 | 
10 | 
11 | logging.root.setLevel(logging.getLevelNamesMapping()[settings.log_level.upper()])
12 | 
13 | logger = logging.getLogger("skill-assistant")
14 | 
15 | 
16 | def convert_to_serializable(data: Any) -> Any:
17 |     """
18 |     Recursively convert Pydantic BaseModel instances to dictionaries.
19 |     """
20 |     if isinstance(data, BaseModel):
21 |         return data.model_dump()
22 |     elif isinstance(data, dict):
23 |         return {key: convert_to_serializable(value) for key, value in data.items()}
24 |     elif isinstance(data, list):
25 |         return [convert_to_serializable(item) for item in data]
26 |     elif isinstance(data, tuple):
27 |         return tuple(convert_to_serializable(item) for item in data)
28 |     elif isinstance(data, set):
29 |         return {convert_to_serializable(item) for item in data}
30 |     return data
31 | 
32 | 
33 | class CustomEncoder(json.JSONEncoder):
34 |     def default(self, o):
35 |         if isinstance(o, UUID):
36 |             return str(o)
37 |         if isinstance(o, datetime):
38 |             return o.isoformat()
39 |         return super().default(o)
40 | 
41 | 
42 | def add_serializable_data(data: Any) -> dict[str, Any]:
43 |     """
44 |     Helper function to use when adding extra data to log messages. Data will
45 |     attempt to be put into a serializable format.
46 |     """
47 |     extra = {}
48 | 
49 |     # Convert to serializable.
50 |     data = convert_to_serializable(data)
51 | 
52 |     # Ensure data is a JSON-serializable object.
53 |     try:
54 |         data = json.loads(json.dumps(data, cls=CustomEncoder))
55 |     except Exception as e:
56 |         data = str(e)
57 | 
58 |     if data:
59 |         extra["data"] = data
60 | 
61 |     return extra
62 | 
63 | 
64 | extra_data = add_serializable_data
65 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-web-research/mcp_server_web_research/logging.py:
--------------------------------------------------------------------------------

```python
 1 | import json
 2 | import logging
 3 | from datetime import datetime
 4 | from typing import Any
 5 | from uuid import UUID
 6 | from .config import settings
 7 | 
 8 | from pydantic import BaseModel
 9 | 
10 | 
11 | logging.root.setLevel(logging.getLevelNamesMapping()[settings.log_level.upper()])
12 | 
13 | logger = logging.getLogger("skill-assistant")
14 | 
15 | 
16 | def convert_to_serializable(data: Any) -> Any:
17 |     """
18 |     Recursively convert Pydantic BaseModel instances to dictionaries.
19 |     """
20 |     if isinstance(data, BaseModel):
21 |         return data.model_dump()
22 |     elif isinstance(data, dict):
23 |         return {key: convert_to_serializable(value) for key, value in data.items()}
24 |     elif isinstance(data, list):
25 |         return [convert_to_serializable(item) for item in data]
26 |     elif isinstance(data, tuple):
27 |         return tuple(convert_to_serializable(item) for item in data)
28 |     elif isinstance(data, set):
29 |         return {convert_to_serializable(item) for item in data}
30 |     return data
31 | 
32 | 
33 | class CustomEncoder(json.JSONEncoder):
34 |     def default(self, o):
35 |         if isinstance(o, UUID):
36 |             return str(o)
37 |         if isinstance(o, datetime):
38 |             return o.isoformat()
39 |         return super().default(o)
40 | 
41 | 
42 | def add_serializable_data(data: Any) -> dict[str, Any]:
43 |     """
44 |     Helper function to use when adding extra data to log messages. Data will
45 |     attempt to be put into a serializable format.
46 |     """
47 |     extra = {}
48 | 
49 |     # Convert to serializable.
50 |     data = convert_to_serializable(data)
51 | 
52 |     # Ensure data is a JSON-serializable object.
53 |     try:
54 |         data = json.loads(json.dumps(data, cls=CustomEncoder))
55 |     except Exception as e:
56 |         data = str(e)
57 | 
58 |     if data:
59 |         extra["data"] = data
60 | 
61 |     return extra
62 | 
63 | 
64 | extra_data = add_serializable_data
65 | 
```

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

```markdown
 1 | You are an AI assistant helping a user assemble a knowledge package for an audience. Your job right now is to ensure the audience is well defined.
 2 | 
 3 | It is important that the audience and the intended takeaways for the audience are well defined so that we can make sure all the information required for knowledge transfer has been captured.
 4 | 
 5 | The audience is defined from messages in the COORDINATOR_CONVERSATION and its associated attachments.
 6 | 
 7 | Add a task to your task list on these conditions:
 8 | 
 9 | - If the audience has not been clearly defined, add a task to define it.
10 | - If the audience has been defined but no specific intended takeaways for that audience have been defined, add a task to define the intended takeaways.
11 | - If the audience or takeaways have been defined but are too general, add a task to make them more specific and concrete.
12 | - If recent messages give additional information about the intended audience, add a task to update the audience with additional information (provide the specific information that needs to be added in the task).
13 | - If recent messages give additional information about the intended audience takeaways, add a task to update the audience takeaways (provide the specific takeaway information to be updated in the task)
14 | 
15 | UNDER ALL OTHER CIRCUMSTANCES, you should not add tasks. Just reply with an empty list. Oftentimes there will be nothing related to the audience or takeaways in new messages. This is quite common in a conversation. Return with an empty list in this case.
16 | 
17 | IMPORTANT! If there are already tasks related to audience or audience takeaway definition, you don't need to add another task.
18 | 
19 | Respond with a list of new tasks for audience or audience takeaways in JSON.
20 | 
```

--------------------------------------------------------------------------------
/examples/dotnet/dotnet-01-echo-bot/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | using Microsoft.SemanticWorkbench.Connector;
 4 | 
 5 | namespace AgentExample;
 6 | 
 7 | internal static class Program
 8 | {
 9 |     private const string CORSPolicyName = "MY-CORS";
10 | 
11 |     internal static async Task Main(string[] args)
12 |     {
13 |         // Setup
14 |         var appBuilder = WebApplication.CreateBuilder(args);
15 | 
16 |         // Load settings from files and env vars
17 |         appBuilder.Configuration
18 |             .AddJsonFile("appsettings.json")
19 |             .AddJsonFile("appsettings.Development.json", optional: true)
20 |             .AddJsonFile("appsettings.development.json", optional: true)
21 |             .AddEnvironmentVariables();
22 | 
23 |         // Storage layer to persist agents configuration and conversations
24 |         appBuilder.Services.AddSingleton<IAgentServiceStorage, AgentServiceStorage>();
25 | 
26 |         // Agent service to support multiple agent instances
27 |         appBuilder.Services.AddSingleton<WorkbenchConnector<MyAgentConfig>, MyWorkbenchConnector>();
28 | 
29 |         // Misc
30 |         appBuilder.Services.AddLogging()
31 |             .AddCors(opt => opt.AddPolicy(CORSPolicyName, pol => pol.WithMethods("GET", "POST", "PUT", "DELETE")));
32 | 
33 |         // Build
34 |         WebApplication app = appBuilder.Build();
35 |         app.UseCors(CORSPolicyName);
36 | 
37 |         // Connect to workbench backend, keep alive, and accept incoming requests
38 |         var connectorApiPrefix = app.Configuration.GetSection("Workbench").Get<WorkbenchConfig>()!.ConnectorApiPrefix;
39 |         using var agentService = app.UseAgentWebservice<MyAgentConfig>(connectorApiPrefix, true);
40 |         await agentService.ConnectAsync().ConfigureAwait(false);
41 | 
42 |         // Start app and webservice
43 |         await app.RunAsync().ConfigureAwait(false);
44 |     }
45 | }
46 | 
```

--------------------------------------------------------------------------------
/libraries/python/events/events/events.py:
--------------------------------------------------------------------------------

```python
 1 | """
 2 | Chat drivers integrate with other systems primarily by emitting events. The
 3 | driver consumer is responsible for handling all events emitted by the driver.
 4 | 
 5 | When integrating a driver with the the Semantic Workbench, you may find it
 6 | helpful to handle all Information, or Error, or Status events in particular
 7 | Semantic Workbench ways by default. For that reason, the driver should generally
 8 | prefer to emit events (from its functions) that inherit from one of these
 9 | events.
10 | """
11 | 
12 | from datetime import datetime
13 | from typing import Any, Callable, Optional, Protocol, TypeVar
14 | from uuid import UUID, uuid4
15 | 
16 | from pydantic import BaseModel, Field
17 | 
18 | 
19 | class EventProtocol(Protocol):
20 |     id: UUID
21 |     session_id: Optional[str]
22 |     timestamp: datetime
23 |     message: Optional[str]
24 |     metadata: dict[str, Any]
25 |     to_json: Callable[[], str]
26 | 
27 | 
28 | TEvent = TypeVar("TEvent", covariant=True, bound=EventProtocol)
29 | 
30 | 
31 | class BaseEvent(BaseModel):
32 |     """
33 |     All events inherit from the `BaseEvent` class. The `BaseEvent` class defines
34 |     the common fields that, by convention,  all events must have.
35 |     """
36 | 
37 |     id: UUID = Field(default_factory=uuid4)
38 |     session_id: str | None = Field(default=None)
39 |     timestamp: datetime = Field(default_factory=datetime.now)
40 |     message: str | None = Field(default=None)
41 |     metadata: dict[str, Any] = Field(default_factory=dict)
42 | 
43 |     def __str__(self) -> str:
44 |         return f"{self.__class__.__name__}: {self.message}"
45 | 
46 |     def to_json(self) -> str:
47 |         return self.model_dump_json(indent=2)
48 | 
49 | 
50 | class InformationEvent(BaseEvent):
51 |     pass
52 | 
53 | 
54 | class ErrorEvent(BaseEvent):
55 |     pass
56 | 
57 | 
58 | class StatusUpdatedEvent(BaseEvent):
59 |     pass
60 | 
61 | 
62 | class MessageEvent(BaseEvent):
63 |     pass
64 | 
65 | 
66 | class NoticeEvent(BaseEvent):
67 |     pass
68 | 
```

--------------------------------------------------------------------------------
/examples/python/python-01-echo-bot/.vscode/settings.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "editor.bracketPairColorization.enabled": true,
 3 |   "editor.codeActionsOnSave": {
 4 |     "source.organizeImports": "explicit",
 5 |     "source.fixAll": "explicit"
 6 |   },
 7 |   "editor.guides.bracketPairs": "active",
 8 |   "editor.formatOnPaste": true,
 9 |   "editor.formatOnType": true,
10 |   "editor.formatOnSave": true,
11 |   "files.eol": "\n",
12 |   "files.trimTrailingWhitespace": true,
13 |   "[json]": {
14 |     "editor.defaultFormatter": "esbenp.prettier-vscode",
15 |     "editor.formatOnSave": true
16 |   },
17 |   "[jsonc]": {
18 |     "editor.defaultFormatter": "esbenp.prettier-vscode",
19 |     "editor.formatOnSave": true
20 |   },
21 |   "python.analysis.autoFormatStrings": true,
22 |   "python.analysis.autoImportCompletions": true,
23 |   "python.analysis.diagnosticMode": "workspace",
24 |   "python.analysis.fixAll": ["source.unusedImports"],
25 |   "python.analysis.inlayHints.functionReturnTypes": true,
26 |   "python.analysis.typeCheckingMode": "standard",
27 |   "python.defaultInterpreterPath": "${workspaceFolder}/.venv",
28 |   "[python]": {
29 |     "editor.defaultFormatter": "charliermarsh.ruff",
30 |     "editor.formatOnSave": true,
31 |     "editor.codeActionsOnSave": {
32 |       "source.fixAll": "explicit",
33 |       "source.unusedImports": "explicit",
34 |       "source.organizeImports": "explicit",
35 |       "source.formatDocument": "explicit"
36 |     }
37 |   },
38 |   "ruff.nativeServer": "on",
39 |   "search.exclude": {
40 |     "**/.venv": true,
41 |     "**/.data": true,
42 |     "**/__pycache__": true
43 |   },
44 |   "cSpell.ignorePaths": [
45 |     ".venv",
46 |     "node_modules",
47 |     "package-lock.json",
48 |     "settings.json",
49 |     "uv.lock"
50 |   ],
51 |   "cSpell.words": [
52 |     "Codespaces",
53 |     "deepmerge",
54 |     "devcontainer",
55 |     "dyanmic",
56 |     "endregion",
57 |     "fastapi",
58 |     "jsonschema",
59 |     "Langchain",
60 |     "pydantic",
61 |     "pyproject",
62 |     "tiktoken",
63 |     "virtualenvs"
64 |   ]
65 | }
66 | 
```

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

```markdown
 1 | # IDENTITY AND GOAL
 2 | 
 3 | You are an expert in intelligence investigations and data visualization using GraphViz. You create full, detailed graphviz visualizations of the input you're given that show the most interesting, surprising, and useful aspects of the input.
 4 | 
 5 | # STEPS
 6 | 
 7 | - Fully understand the input you were given.
 8 | 
 9 | - Spend 3,503 virtual hours taking notes on and organizing your understanding of the input.
10 | 
11 | - Capture all your understanding of the input on a virtual whiteboard in your mind.
12 | 
13 | - Think about how you would graph your deep understanding of the concepts in the input into a Graphviz output.
14 | 
15 | # OUTPUT
16 | 
17 | - Create a full Graphviz output of all the most interesting aspects of the input.
18 | 
19 | - Use different shapes and colors to represent different types of nodes.
20 | 
21 | - Label all nodes, connections, and edges with the most relevant information.
22 | 
23 | - In the diagram and labels, make the verbs and subjects are clear, e.g., "called on phone, met in person, accessed the database."
24 | 
25 | - Ensure all the activities in the investigation are represented, including research, data sources, interviews, conversations, timelines, and conclusions.
26 | 
27 | - Ensure the final diagram is so clear and well annotated that even a journalist new to the story can follow it, and that it could be used to explain the situation to a jury.
28 | 
29 | - In a section called ANALYSIS, write up to 10 bullet points of 16 words each giving the most important information from the input and what you learned.
30 | 
31 | - In a section called CONCLUSION, give a single 25-word statement about your assessment of what happened, who did it, whether the proposition was true or not, or whatever is most relevant. In the final sentence give the CIA rating of certainty for your conclusion.
32 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/libs/useParticipantUtility.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | import { AvatarProps } from '@fluentui/react-components';
 2 | import { AppGenericRegular, BotRegular, PersonRegular } from '@fluentui/react-icons';
 3 | import React from 'react';
 4 | import { ConversationParticipant } from '../models/ConversationParticipant';
 5 | import { useAppSelector } from '../redux/app/hooks';
 6 | 
 7 | export const useParticipantUtility = () => {
 8 |     const localUserState = useAppSelector((state) => state.localUser);
 9 | 
10 |     const getAvatarData = React.useCallback(
11 |         (participant: ConversationParticipant | 'localUser') => {
12 |             if (participant === 'localUser') {
13 |                 return localUserState.avatar;
14 |             }
15 | 
16 |             const { id, name, image, role } = participant;
17 | 
18 |             if (id === localUserState.id) {
19 |                 return localUserState.avatar;
20 |             }
21 | 
22 |             let avatar: AvatarProps = {
23 |                 name: role === 'user' ? name : '',
24 |                 color: role !== 'user' ? 'neutral' : undefined,
25 |                 icon: {
26 |                     user: <PersonRegular />,
27 |                     assistant: <BotRegular />,
28 |                     service: <AppGenericRegular />,
29 |                 }[role],
30 |             };
31 | 
32 |             if (image) {
33 |                 avatar = { ...avatar, image: { src: image } };
34 |             }
35 | 
36 |             return avatar;
37 |         },
38 |         [localUserState.avatar, localUserState.id],
39 |     );
40 | 
41 |     const sortParticipants = React.useCallback((participants: ConversationParticipant[], includeInactive?: boolean) => {
42 |         return participants
43 |             .filter((participant) => includeInactive || participant.active)
44 |             .sort((a, b) => a.name.localeCompare(b.name));
45 |     }, []);
46 | 
47 |     return {
48 |         getAvatarData,
49 |         sortParticipants,
50 |     };
51 | };
52 | 
```

--------------------------------------------------------------------------------
/libraries/python/assistant-extensions/assistant_extensions/mcp/__init__.py:
--------------------------------------------------------------------------------

```python
 1 | from ._assistant_file_resource_handler import AssistantFileResourceHandler
 2 | from ._client_utils import (
 3 |     MCPServerConnectionError,
 4 |     establish_mcp_sessions,
 5 |     get_enabled_mcp_server_configs,
 6 |     get_mcp_server_prompts,
 7 |     list_roots_callback_for,
 8 |     refresh_mcp_sessions,
 9 | )
10 | from ._model import (
11 |     ExtendedCallToolRequestParams,
12 |     ExtendedCallToolResult,
13 |     HostedMCPServerConfig,
14 |     MCPClientRoot,
15 |     MCPClientSettings,
16 |     MCPErrorHandler,
17 |     MCPSamplingMessageHandler,
18 |     MCPServerConfig,
19 |     MCPServerEnvConfig,
20 |     MCPSession,
21 | )
22 | from ._openai_utils import (
23 |     OpenAISamplingHandler,
24 |     SamplingChatMessageProvider,
25 |     sampling_message_to_chat_completion_message,
26 | )
27 | from ._tool_utils import (
28 |     execute_tool,
29 |     handle_mcp_tool_call,
30 |     retrieve_mcp_tools_and_sessions_from_sessions,
31 |     retrieve_mcp_tools_from_sessions,
32 | )
33 | from ._workbench_file_resource_handler import WorkbenchFileClientResourceHandler
34 | 
35 | __all__ = [
36 |     "ExtendedCallToolRequestParams",
37 |     "ExtendedCallToolResult",
38 |     "MCPErrorHandler",
39 |     "MCPSamplingMessageHandler",
40 |     "MCPServerConfig",
41 |     "MCPClientSettings",
42 |     "HostedMCPServerConfig",
43 |     "list_roots_callback_for",
44 |     "MCPSession",
45 |     "MCPClientRoot",
46 |     "MCPServerConnectionError",
47 |     "MCPServerEnvConfig",
48 |     "OpenAISamplingHandler",
49 |     "establish_mcp_sessions",
50 |     "get_mcp_server_prompts",
51 |     "get_enabled_mcp_server_configs",
52 |     "handle_mcp_tool_call",
53 |     "refresh_mcp_sessions",
54 |     "retrieve_mcp_tools_from_sessions",
55 |     "sampling_message_to_chat_completion_message",
56 |     "AssistantFileResourceHandler",
57 |     "WorkbenchFileClientResourceHandler",
58 |     "execute_tool",
59 |     "retrieve_mcp_tools_and_sessions_from_sessions",
60 |     "SamplingChatMessageProvider",
61 | ]
62 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-memory-user-bio/.vscode/settings.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "editor.bracketPairColorization.enabled": true,
 3 |   "editor.codeActionsOnSave": {
 4 |     "source.organizeImports": "explicit",
 5 |     "source.fixAll": "explicit"
 6 |   },
 7 |   "editor.guides.bracketPairs": "active",
 8 |   "editor.formatOnPaste": true,
 9 |   "editor.formatOnType": true,
10 |   "editor.formatOnSave": true,
11 |   "files.eol": "\n",
12 |   "files.trimTrailingWhitespace": true,
13 |   "[json]": {
14 |     "editor.defaultFormatter": "esbenp.prettier-vscode",
15 |     "editor.formatOnSave": true
16 |   },
17 |   "[jsonc]": {
18 |     "editor.defaultFormatter": "esbenp.prettier-vscode",
19 |     "editor.formatOnSave": true
20 |   },
21 |   "python.analysis.autoFormatStrings": true,
22 |   "python.analysis.autoImportCompletions": true,
23 |   "python.analysis.diagnosticMode": "workspace",
24 |   "python.analysis.fixAll": ["source.unusedImports"],
25 |   // Project specific paths
26 |   "python.analysis.ignore": ["libs"],
27 |   "python.analysis.inlayHints.functionReturnTypes": true,
28 |   "python.analysis.typeCheckingMode": "standard",
29 |   "python.defaultInterpreterPath": "${workspaceFolder}/.venv",
30 |   "[python]": {
31 |     "editor.defaultFormatter": "charliermarsh.ruff",
32 |     "editor.formatOnSave": true,
33 |     "editor.codeActionsOnSave": {
34 |       "source.fixAll": "explicit",
35 |       "source.unusedImports": "explicit",
36 |       "source.organizeImports": "explicit",
37 |       "source.formatDocument": "explicit"
38 |     }
39 |   },
40 |   "ruff.nativeServer": "on",
41 |   "search.exclude": {
42 |     "**/.venv": true,
43 |     "**/.data": true
44 |   },
45 |   // For use with optional extension: "streetsidesoftware.code-spell-checker"
46 |   "cSpell.ignorePaths": [
47 |     ".git",
48 |     ".gitignore",
49 |     ".vscode",
50 |     ".venv",
51 |     "node_modules",
52 |     "package-lock.json",
53 |     "pyproject.toml",
54 |     "settings.json",
55 |     "uv.lock"
56 |   ],
57 |   "cSpell.words": ["dotenv", "fastmcp", "toplevel"]
58 | }
59 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-memory-whiteboard/.vscode/settings.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "editor.bracketPairColorization.enabled": true,
 3 |   "editor.codeActionsOnSave": {
 4 |     "source.organizeImports": "explicit",
 5 |     "source.fixAll": "explicit"
 6 |   },
 7 |   "editor.guides.bracketPairs": "active",
 8 |   "editor.formatOnPaste": true,
 9 |   "editor.formatOnType": true,
10 |   "editor.formatOnSave": true,
11 |   "files.eol": "\n",
12 |   "files.trimTrailingWhitespace": true,
13 |   "[json]": {
14 |     "editor.defaultFormatter": "esbenp.prettier-vscode",
15 |     "editor.formatOnSave": true
16 |   },
17 |   "[jsonc]": {
18 |     "editor.defaultFormatter": "esbenp.prettier-vscode",
19 |     "editor.formatOnSave": true
20 |   },
21 |   "python.analysis.autoFormatStrings": true,
22 |   "python.analysis.autoImportCompletions": true,
23 |   "python.analysis.diagnosticMode": "workspace",
24 |   "python.analysis.fixAll": ["source.unusedImports"],
25 |   // Project specific paths
26 |   "python.analysis.ignore": ["libs"],
27 |   "python.analysis.inlayHints.functionReturnTypes": true,
28 |   "python.analysis.typeCheckingMode": "standard",
29 |   "python.defaultInterpreterPath": "${workspaceFolder}/.venv",
30 |   "[python]": {
31 |     "editor.defaultFormatter": "charliermarsh.ruff",
32 |     "editor.formatOnSave": true,
33 |     "editor.codeActionsOnSave": {
34 |       "source.fixAll": "explicit",
35 |       "source.unusedImports": "explicit",
36 |       "source.organizeImports": "explicit",
37 |       "source.formatDocument": "explicit"
38 |     }
39 |   },
40 |   "ruff.nativeServer": "on",
41 |   "search.exclude": {
42 |     "**/.venv": true,
43 |     "**/.data": true
44 |   },
45 |   // For use with optional extension: "streetsidesoftware.code-spell-checker"
46 |   "cSpell.ignorePaths": [
47 |     ".git",
48 |     ".gitignore",
49 |     ".vscode",
50 |     ".venv",
51 |     "node_modules",
52 |     "package-lock.json",
53 |     "pyproject.toml",
54 |     "settings.json",
55 |     "uv.lock"
56 |   ],
57 |   "cSpell.words": ["dotenv", "fastmcp", "toplevel"]
58 | }
59 | 
```
Page 17/145FirstPrevNextLast