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

# Directory Structure

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

# Files

--------------------------------------------------------------------------------
/libraries/python/content-safety/.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 |   // For use with optional extension: "streetsidesoftware.code-spell-checker"
45 |   "cSpell.ignorePaths": [
46 |     ".venv",
47 |     "node_modules",
48 |     "package-lock.json",
49 |     "settings.json",
50 |     "uv.lock"
51 |   ],
52 |   "cSpell.words": [
53 |     "Codespaces",
54 |     "contentsafety",
55 |     "deepmerge",
56 |     "devcontainer",
57 |     "dotenv",
58 |     "endregion",
59 |     "fastapi",
60 |     "jsonschema",
61 |     "Langchain",
62 |     "moderations",
63 |     "multimodel",
64 |     "openai",
65 |     "pydantic",
66 |     "pyproject",
67 |     "tiktoken"
68 |   ]
69 | }
70 | 
```

--------------------------------------------------------------------------------
/examples/python/python-02-simple-chatbot/.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 |   // For use with optional extension: "streetsidesoftware.code-spell-checker"
45 |   "cSpell.ignorePaths": [
46 |     ".venv",
47 |     "node_modules",
48 |     "package-lock.json",
49 |     "settings.json",
50 |     "uv.lock"
51 |   ],
52 |   "cSpell.words": [
53 |     "Codespaces",
54 |     "contentsafety",
55 |     "deepmerge",
56 |     "devcontainer",
57 |     "dotenv",
58 |     "endregion",
59 |     "fastapi",
60 |     "jsonschema",
61 |     "Langchain",
62 |     "moderations",
63 |     "openai",
64 |     "pydantic",
65 |     "pyproject",
66 |     "tiktoken",
67 |     "virtualenvs"
68 |   ]
69 | }
70 | 
```

--------------------------------------------------------------------------------
/libraries/python/chat-context-toolkit/test/virtual_filesystem/tools/test_tools.py:
--------------------------------------------------------------------------------

```python
 1 | import pytest
 2 | from chat_context_toolkit.virtual_filesystem.tools import ToolCollection
 3 | from openai.types.chat import ChatCompletionMessageToolCallParam, ChatCompletionToolParam
 4 | 
 5 | 
 6 | async def test_execute_nonexistent_tool_raises_error():
 7 |     """Test that executing a non-existent tool raises ValueError."""
 8 |     tools = ToolCollection([])
 9 | 
10 |     tool_call = ChatCompletionMessageToolCallParam(
11 |         id="test", function={"name": "nonexistent_tool", "arguments": "{}"}, type="function"
12 |     )
13 | 
14 |     # Non-existent tool should raise ValueError
15 |     with pytest.raises(ValueError, match="Tool not found"):
16 |         await tools.execute_tool(tool_call)
17 | 
18 | 
19 | async def test_execute_tool_delegates_to_tool():
20 |     class Tool1:
21 |         @property
22 |         def tool_param(self) -> ChatCompletionToolParam:
23 |             return {"type": "function", "function": {"name": "tool1", "description": "Tool 1"}}
24 | 
25 |         async def execute(self, args: dict) -> str:
26 |             return "tool1 executed"
27 | 
28 |     class Tool2:
29 |         @property
30 |         def tool_param(self) -> ChatCompletionToolParam:
31 |             return {"type": "function", "function": {"name": "tool2", "description": "Tool 2"}}
32 | 
33 |         async def execute(self, args: dict) -> str:
34 |             return "tool2 executed"
35 | 
36 |     tools = ToolCollection([Tool1(), Tool2()])
37 | 
38 |     # Both tools should be available
39 |     assert len(tools) == 2
40 |     assert tools.has_tool("tool1")
41 |     assert tools.has_tool("tool2")
42 | 
43 |     # Both tools should be executable
44 |     result1 = await tools.execute_tool(
45 |         ChatCompletionMessageToolCallParam(id="test1", function={"name": "tool1", "arguments": "{}"}, type="function")
46 |     )
47 |     assert result1 == "tool1 executed"
48 | 
49 |     result2 = await tools.execute_tool(
50 |         ChatCompletionMessageToolCallParam(id="test2", function={"name": "tool2", "arguments": "{}"}, type="function")
51 |     )
52 |     assert result2 == "tool2 executed"
53 | 
```

--------------------------------------------------------------------------------
/workbench-service/semantic_workbench_service/controller/exceptions.py:
--------------------------------------------------------------------------------

```python
 1 | from typing import Annotated, Any
 2 | 
 3 | from fastapi import HTTPException
 4 | from typing_extensions import Doc
 5 | 
 6 | 
 7 | class Error(HTTPException):
 8 |     pass
 9 | 
10 | 
11 | class RuntimeError(Error):
12 |     def __init__(
13 |         self,
14 |         detail: Annotated[
15 |             Any,
16 |             Doc("""
17 |                 Any data to be sent to the client in the `detail` key of the JSON
18 |                 response.
19 |                 """),
20 |         ] = None,
21 |     ) -> None:
22 |         super().__init__(status_code=500, detail=detail)
23 | 
24 | 
25 | class NotFoundError(Error):
26 |     def __init__(
27 |         self,
28 |         detail: Annotated[
29 |             Any,
30 |             Doc("""
31 |                 Any data to be sent to the client in the `detail` key of the JSON
32 |                 response.
33 |                 """),
34 |         ] = None,
35 |     ) -> None:
36 |         super().__init__(status_code=404, detail=detail)
37 | 
38 | 
39 | class ConflictError(Error):
40 |     def __init__(
41 |         self,
42 |         detail: Annotated[
43 |             Any,
44 |             Doc("""
45 |                 Any data to be sent to the client in the `detail` key of the JSON
46 |                 response.
47 |                 """),
48 |         ] = None,
49 |     ) -> None:
50 |         super().__init__(status_code=409, detail=detail)
51 | 
52 | 
53 | class InvalidArgumentError(Error):
54 |     def __init__(
55 |         self,
56 |         detail: Annotated[
57 |             Any,
58 |             Doc("""
59 |                 Any data to be sent to the client in the `detail` key of the JSON
60 |                 response.
61 |                 """),
62 |         ] = None,
63 |     ) -> None:
64 |         super().__init__(status_code=400, detail=detail)
65 | 
66 | 
67 | class ForbiddenError(Error):
68 |     def __init__(
69 |         self,
70 |         detail: Annotated[
71 |             Any,
72 |             Doc("""
73 |                 Any data to be sent to the client in the `detail` key of the JSON
74 |                 response.
75 |                 """),
76 |         ] = None,
77 |     ) -> None:
78 |         super().__init__(status_code=403, detail=detail)
79 | 
```

--------------------------------------------------------------------------------
/libraries/python/events/.vscode/settings.json:
--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------
/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/command.py:
--------------------------------------------------------------------------------

```python
 1 | import argparse
 2 | import shlex
 3 | from typing import NoReturn
 4 | 
 5 | 
 6 | class CommandArgumentParser(argparse.ArgumentParser):
 7 |     """
 8 |     argparse.ArgumentParser sub-class for parsing assistant commands.
 9 |     - Raises argparse.ArgumentError for all parsing failures instead of exiting the
10 |       process.
11 |     - Adds a --help option to show the help message.
12 |     """
13 | 
14 |     def __init__(self, command: str, description: str, add_help=True):
15 |         super().__init__(
16 |             prog=command,
17 |             description=description,
18 |             exit_on_error=False,
19 |             add_help=False,
20 |             formatter_class=argparse.ArgumentDefaultsHelpFormatter,
21 |         )
22 | 
23 |         if add_help:
24 |             self.add_argument("-h", "--help", action="help", help="show this help message")
25 | 
26 |     @property
27 |     def command(self) -> str:
28 |         return self.prog
29 | 
30 |     def error(self, message) -> NoReturn:
31 |         self._error_message = message
32 |         raise argparse.ArgumentError(None, message)
33 | 
34 |     def parse_args(self, arg_string: str) -> argparse.Namespace:  # type: ignore
35 |         try:
36 |             sys_args_like = shlex.split(arg_string)
37 |         except ValueError as e:
38 |             raise argparse.ArgumentError(None, f"Invalid command arguments: {e}")
39 | 
40 |         self._error_message = None
41 |         try:
42 |             result = super().parse_args(args=sys_args_like)
43 |             if self._error_message:
44 |                 raise argparse.ArgumentError(None, self._error_message)
45 |             return result
46 | 
47 |         except argparse.ArgumentError as e:
48 |             message = f"{self.prog}: error: {e}\n\n{self.format_help()}"
49 |             raise argparse.ArgumentError(None, message)
50 | 
51 |         except SystemExit:
52 |             message = self.format_help()
53 |             if self._error_message:
54 |                 message = f"{self.prog}: error: {self._error_message}\n\n{message}"
55 |             raise argparse.ArgumentError(None, message)
56 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an expert at creating concise security updates for newsletters according to the STEPS below.
 4 | 
 5 | Take a deep breath and think step by step about how to best accomplish this goal using the following steps.
 6 | 
 7 | # STEPS
 8 | 
 9 | - Read all the content and think deeply about it.
10 | 
11 | - Organize all the content on a virtual whiteboard in your mind.
12 | 
13 | # OUTPUT SECTIONS
14 | 
15 | - Output a section called Threats, Advisories, and Vulnerabilities with the following structure of content.
16 | 
17 | Stories: (interesting cybersecurity developments)
18 | 
19 | - A 15-word or less description of the story. $MORE$
20 | - Next one $MORE$
21 | - Next one $MORE$
22 | - Up to 10 stories
23 | 
24 | Threats & Advisories: (things people should be worried about)
25 | 
26 | - A 10-word or less description of the situation. $MORE$
27 | - Next one $MORE$
28 | - Next one $MORE$
29 | - Up to 10 of them
30 | 
31 | New Vulnerabilities: (the highest criticality new vulnerabilities)
32 | 
33 | - A 10-word or less description of the vulnerability. | $CVE NUMBER$ | $CVSS SCORE$ | $MORE$
34 | - Next one $CVE NUMBER$ | $CVSS SCORE$ | $MORE$
35 | - Next one $CVE NUMBER$ | $CVSS SCORE$ | $MORE$
36 | - Up to 10 vulnerabilities
37 | 
38 | A 1-3 sentence summary of the most important issues talked about in the output above. Do not give analysis, just give an overview of the top items.
39 | 
40 | # OUTPUT INSTRUCTIONS
41 | 
42 | - Each $MORE$ item above should be replaced with a MORE link like so: <a href="https://www.example.com">MORE</a> with the best link for that item from the input.
43 | - For sections like $CVE NUMBER$ and $CVSS SCORE$, if they aren't included in the input, don't output anything, and remove the extra | symbol.
44 | - Do not create fake links for the $MORE$ links. If you can't create a full URL just link to a placeholder or the top level domain.
45 | - Do not output warnings or notes—just the requested sections.
46 | - Do not repeat items in the output sections.
47 | - Do not start items with the same opening words.
48 | 
49 | # INPUT:
50 | 
51 | INPUT:
52 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-vscode/webpack.config.js:
--------------------------------------------------------------------------------

```javascript
 1 | //@ts-check
 2 | 
 3 | 'use strict';
 4 | 
 5 | /** @typedef {import('webpack').Configuration} WebpackConfig **/
 6 | 
 7 | const path = require('path');
 8 | 
 9 | /** @type WebpackConfig */
10 | const extensionConfig = {
11 |     target: 'node', // VS Code extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/
12 |     mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production')
13 | 
14 |     entry: './src/extension.ts', // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/
15 |     output: {
16 |         // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/
17 |         path: path.resolve(__dirname, 'dist'),
18 |         filename: 'extension.js',
19 |         libraryTarget: 'commonjs2',
20 |     },
21 |     externals: {
22 |         vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/
23 |         // modules added here also need to be added in the .vscodeignore file
24 |     },
25 |     resolve: {
26 |         // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader
27 |         extensions: ['.ts', '.js'],
28 |     },
29 |     module: {
30 |         rules: [
31 |             {
32 |                 test: /\.ts$/,
33 |                 exclude: /node_modules/,
34 |                 use: [
35 |                     {
36 |                         loader: 'ts-loader',
37 |                     },
38 |                 ],
39 |             },
40 |         ],
41 |     },
42 |     devtool: 'nosources-source-map',
43 |     infrastructureLogging: {
44 |         level: 'log', // enables logging required for problem matchers
45 |     },
46 | };
47 | 
48 | extensionConfig.ignoreWarnings = [
49 |     {
50 |         module: /express\//,
51 |         message: /the request of a dependency is an expression/,
52 |     },
53 | ];
54 | 
55 | module.exports = [extensionConfig];
56 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an advanced AI with a 2,128 IQ and you are an expert in understanding and analyzing thinking patterns, mistakes that came out of them, and anticipating additional mistakes that could exist in current thinking.
 4 | 
 5 | # STEPS
 6 | 
 7 | 1. Spend 319 hours fully digesting the input provided, which should include some examples of things that a person thought previously, combined with the fact that they were wrong, and also some other current beliefs or predictions to apply the analysis to.
 8 | 
 9 | 2. Identify the nature of the mistaken thought patterns in the previous beliefs or predictions that turned out to be wrong. Map those in 32,000 dimensional space.
10 | 
11 | 4. Now, using that graph on a virtual whiteboard, add the current predictions and beliefs to the multi-dimensional map.
12 | 
13 | 5. Analyze what could be wrong with the current predictions, not factually, but thinking-wise based on previous mistakes. E.g. "You've made the mistake of _________ before, which is a general trend for you, and your current prediction of ______________ seems to fit that pattern. So maybe adjust your probability on that down by 25%.
14 | 
15 | # OUTPUT
16 | 
17 | - In a section called PAST MISTAKEN THOUGHT PATTERNS, create a list 15-word bullets outlining the main mental mistakes that were being made before.
18 | 
19 | - In a section called POSSIBLE CURRENT ERRORS, create a list of 15-word bullets indicating where similar thinking mistakes could be causing or affecting current beliefs or predictions.
20 | 
21 | - In a section called RECOMMENDATIONS, create a list of 15-word bullets recommending how to adjust current beliefs and/or predictions to be more accurate and grounded.
22 | 
23 | # OUTPUT INSTRUCTIONS
24 | 
25 | - Only output Markdown.
26 | - Do not give warnings or notes; only output the requested sections.
27 | - Do not start items with the same opening words.
28 | - Ensure you follow ALL these instructions when creating your output.
29 | 
30 | # INPUT
31 | 
32 | INPUT:
33 | 
34 | 
```

--------------------------------------------------------------------------------
/assistants/knowledge-transfer-assistant/assistant/text_includes/knowledge_digest_prompt.txt:
--------------------------------------------------------------------------------

```
 1 | You, the assistant, maintain a "knowledge digest". Based on the last chat message, it is time to update the knowledge digest.
 2 | 
 3 | ## What the knowledge digest is
 4 | 
 5 | - The knowledge digest contains an outline of the knowledge contained within a knowledge share. It is not a summary, but an organized projection of all knowledge added to the packet from the coordinator's conversation and attachments.
 6 | - The digest has a high information density. The digest contains no filler words or unnecessary content.
 7 | - The digest includes all relevant information from the chat history: questions and answers, key concepts, decisions made during the knowledge transfer process, links, codes, and specific facts.
 8 | - When handed off to another assistant to help the team understand the content of the knowledge share, this digest is the primary source of information.
 9 | - Think of the digest as your personal memory about this knowledge share - a concise reference that helps track important facts, decisions, and context.
10 | 
11 | ## Knowledge digest instructions
12 | 
13 | - Provide updated content based upon information extracted from the chat history.
14 | - Maintain an accessible knowledge reference that helps others understand the shared information.
15 | - Organize knowledge share facts and concepts.
16 | - Maintain an outline of the content at all times. If the latest message suggests a new or expanded outline, update the existing outline to reflect the new content.
17 | - Do NOT supplement the knowledge share with your own information.
18 | - Use brief, clear explanations of complex topics.
19 | - Preserve critical context and decisions.
20 | - Remove information that is no longer relevant.
21 | - Do not include objectives and outcomes in the knowledge digest. They are maintained separately.
22 | - It's OK to leave the knowledge digest blank if there's nothing important to capture.
23 | - Your output format must be: <KNOWLEDGE_DIGEST>{content}</KNOWLEDGE_DIGEST>
24 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-vscode/eslint.config.mjs:
--------------------------------------------------------------------------------

```
 1 | import typescriptEslint from '@typescript-eslint/eslint-plugin';
 2 | import tsParser from '@typescript-eslint/parser';
 3 | import importPlugin from 'eslint-plugin-import';
 4 | 
 5 | export default [
 6 |     {
 7 |         files: ['**/*.ts'],
 8 |     },
 9 |     {
10 |         ignorePatterns: ['dist', '.*.js', '*.config.js', 'node_modules'],
11 | 
12 |         plugins: {
13 |             '@typescript-eslint': typescriptEslint,
14 |             import: importPlugin,
15 |         },
16 | 
17 |         languageOptions: {
18 |             parser: tsParser,
19 |             ecmaVersion: 2022,
20 |             sourceType: 'module',
21 |         },
22 | 
23 |         rules: {
24 |             '@typescript-eslint/naming-convention': [
25 |                 'warn',
26 |                 {
27 |                     selector: 'import',
28 |                     format: ['camelCase', 'PascalCase'],
29 |                 },
30 |             ],
31 |             '@typescript-eslint/brace-style': ['off'],
32 |             '@typescript-eslint/space-before-function-paren': [
33 |                 'error',
34 |                 { anonymous: 'always', named: 'never', asyncArrow: 'always' },
35 |             ],
36 |             '@typescript-eslint/semi': ['error', 'always'],
37 |             '@typescript-eslint/triple-slash-reference': ['error', { types: 'prefer-import' }],
38 |             '@typescript-eslint/indent': ['off'],
39 |             '@typescript-eslint/comma-dangle': ['error', 'always-multiline'],
40 |             '@typescript-eslint/strict-boolean-expressions': 'off',
41 |             '@typescript-eslint/member-delimiter-style': [
42 |                 'error',
43 |                 {
44 |                     multiline: {
45 |                         delimiter: 'semi',
46 |                         requireLast: true,
47 |                     },
48 |                     singleline: {
49 |                         delimiter: 'semi',
50 |                         requireLast: false,
51 |                     },
52 |                 },
53 |             ],
54 |             '@typescript-eslint/explicit-function-return-type': 'off',
55 |         },
56 |     },
57 | ];
58 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/components/Conversations/Message/MessageBody.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import React from 'react';
 4 | import { Link } from 'react-router-dom';
 5 | 
 6 | import { Conversation } from '../../../models/Conversation';
 7 | import { ConversationMessage } from '../../../models/ConversationMessage';
 8 | 
 9 | import { makeStyles, tokens } from '@fluentui/react-components';
10 | import { ContentRenderer } from './ContentRenderer';
11 | import { ContentSafetyNotice } from './ContentSafetyNotice';
12 | 
13 | interface InteractMessageProps {
14 |     conversation: Conversation;
15 |     message: ConversationMessage;
16 | }
17 | 
18 | const useClasses = makeStyles({
19 |     help: {
20 |         backgroundColor: '#e3ecef',
21 |         padding: tokens.spacingVerticalS,
22 |         borderRadius: tokens.borderRadiusMedium,
23 |         marginTop: tokens.spacingVerticalL,
24 |         fontColor: '#707a7d',
25 |         '& h3': {
26 |             marginTop: 0,
27 |             marginBottom: 0,
28 |             fontSize: tokens.fontSizeBase200,
29 |             fontWeight: tokens.fontWeightSemibold,
30 |         },
31 |         '& p': {
32 |             marginTop: 0,
33 |             marginBottom: 0,
34 |             fontSize: tokens.fontSizeBase200,
35 |             lineHeight: tokens.lineHeightBase300,
36 |             fontStyle: 'italic',
37 |         },
38 |     },
39 | });
40 | 
41 | export const MessageBody: React.FC<InteractMessageProps> = (props) => {
42 |     const { conversation, message } = props;
43 |     const classes = useClasses();
44 |     const body = (
45 |         <>
46 |             <ContentSafetyNotice contentSafety={message.metadata?.['content_safety']} />
47 |             <ContentRenderer conversation={conversation} message={message} />
48 |             {message.metadata?.['help'] && (
49 |                 <div className={classes.help}>
50 |                     <h3>Next step?</h3>
51 |                     <p>{message.metadata['help']}</p>
52 |                 </div>
53 |             )}
54 |         </>
55 |     );
56 | 
57 |     if (message.metadata?.href) {
58 |         return <Link to={message.metadata.href}>{body}</Link>;
59 |     }
60 |     return body;
61 | };
62 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/research2/routines/visit_pages.py:
--------------------------------------------------------------------------------

```python
 1 | from typing import Any
 2 | 
 3 | from openai_client import (
 4 |     CompletionError,
 5 |     format_with_liquid,
 6 | )
 7 | from skill_library import AskUserFn, EmitFn, RunContext, RunRoutineFn
 8 | from skill_library.logging import logger
 9 | 
10 | ASPECT_PROMPT = """
11 | We are conduction a research project on the topic: {{TOPIC}}
12 | 
13 | Our research plan is:
14 | 
15 | ```
16 | {{PLAN}}
17 | ```
18 | 
19 | So far we have gathered the following facts:
20 | 
21 | ```
22 | {{FACTS}}
23 | ```
24 | 
25 | We have made the following observations:
26 | 
27 | ```
28 | {{OBSERVATIONS}}
29 | ```
30 | 
31 | We are visiting a page to gather more information about the topic to fill out remaining facts.
32 | """
33 | 
34 | 
35 | async def main(
36 |     context: RunContext,
37 |     routine_state: dict[str, Any],
38 |     emit: EmitFn,
39 |     run: RunRoutineFn,
40 |     ask_user: AskUserFn,
41 |     topic: str,
42 |     plan: str,
43 |     facts: str,
44 |     observations: list[str],
45 |     urls: list[str] = [],
46 | ) -> str:
47 |     """Gather the content from a list of URLs and summarize them according to a particular research project."""
48 | 
49 |     aspect = format_with_liquid(
50 |         ASPECT_PROMPT, vars={"TOPIC": topic, "PLAN": plan, "FACTS": facts, "OBSERVATIONS": "\n- ".join(observations)}
51 |     )
52 | 
53 |     metadata = {}
54 |     results = {}
55 |     for url in urls[:3]:
56 |         try:
57 |             content = await run("common.get_content_from_url", url, 10000)
58 |         except CompletionError as e:
59 |             logger.error(f"Error getting content from {url}: {e}")
60 |             metadata[url] = {"fetch error": str(e)}
61 |             continue
62 | 
63 |         try:
64 |             summary = await run("common.summarize", content=content, aspect=aspect)
65 |         except CompletionError as e:
66 |             logger.error(f"Error summarizing content from {url}: {e}")
67 |             metadata[url] = {"summarization error": str(e)}
68 |             continue
69 | 
70 |         results[url] = summary
71 |         metadata[url] = {"summary": summary}
72 | 
73 |     context.log("visit_pages", metadata)
74 |     return "\n".join([f"{url}: {summary}" for url, summary in results.items()])
75 | 
```

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

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { ArrowDownload24Regular } from '@fluentui/react-icons';
 4 | import React from 'react';
 5 | import { useWorkbenchService } from '../../libs/useWorkbenchService';
 6 | import { Conversation } from '../../models/Conversation';
 7 | import { ConversationParticipant } from '../../models/ConversationParticipant';
 8 | import { CommandButton } from '../App/CommandButton';
 9 | 
10 | interface ConversationTranscriptProps {
11 |     conversation: Conversation;
12 |     participants: ConversationParticipant[];
13 |     iconOnly?: boolean;
14 |     asToolbarButton?: boolean;
15 | }
16 | 
17 | export const ConversationTranscript: React.FC<ConversationTranscriptProps> = (props) => {
18 |     const { conversation, participants, iconOnly, asToolbarButton } = props;
19 |     const workbenchService = useWorkbenchService();
20 |     const [submitted, setSubmitted] = React.useState(false);
21 | 
22 |     const getTranscript = React.useCallback(async () => {
23 |         if (submitted) {
24 |             return;
25 |         }
26 |         setSubmitted(true);
27 | 
28 |         try {
29 |             const { blob, filename } = await workbenchService.exportTranscriptAsync(conversation, participants);
30 |             const url = URL.createObjectURL(blob);
31 |             const a = document.createElement('a');
32 |             a.href = url;
33 |             a.download = filename;
34 |             a.click();
35 |             URL.revokeObjectURL(url);
36 |         } finally {
37 |             setSubmitted(false);
38 |         }
39 |     }, [submitted, workbenchService, conversation, participants]);
40 | 
41 |     return (
42 |         <div>
43 |             <CommandButton
44 |                 description={`Download transcript`}
45 |                 icon={<ArrowDownload24Regular />}
46 |                 iconOnly={iconOnly}
47 |                 asToolbarButton={asToolbarButton}
48 |                 disabled={submitted}
49 |                 label={submitted ? 'Downloading...' : 'Download'}
50 |                 onClick={getTranscript}
51 |             />
52 |         </div>
53 |     );
54 | };
55 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/common/routines/bing_search.py:
--------------------------------------------------------------------------------

```python
 1 | import os
 2 | from typing import Any, Optional, cast
 3 | 
 4 | import requests
 5 | from dotenv import load_dotenv
 6 | from skill_library import AskUserFn, EmitFn, RunContext, RunRoutineFn
 7 | from skill_library.skills.common.common_skill import CommonSkill
 8 | 
 9 | 
10 | async def main(
11 |     context: RunContext,
12 |     routine_state: dict[str, Any],
13 |     emit: EmitFn,
14 |     run: RunRoutineFn,
15 |     ask_user: AskUserFn,
16 |     q: str,
17 |     num_results: Optional[int] = 7,
18 | ) -> list[str]:
19 |     """Search Bing with the given query, return the first num_results URLs."""
20 | 
21 |     common_skill = cast(CommonSkill, context.skills["common"])
22 |     subscription_key = common_skill.config.bing_subscription_key
23 |     search_url = common_skill.config.bing_search_url or "https://api.bing.microsoft.com/v7.0/search"
24 | 
25 |     # Load Bing config from environment variables (backwards compat for old code).
26 |     if not subscription_key:
27 |         load_dotenv()
28 |         subscription_key = os.getenv("BING_SUBSCRIPTION_KEY")
29 |         if not subscription_key:
30 |             raise Exception("BING_SUBSCRIPTION_KEY not found in .env.")
31 |         search_url = search_url or os.getenv("BING_SEARCH_URL") or "https://api.bing.microsoft.com/v7.0/search"
32 | 
33 |     # Search Bing.
34 |     headers = {"Ocp-Apim-Subscription-Key": subscription_key}
35 |     params = {"q": q}
36 | 
37 |     try:
38 |         response = requests.get(search_url, headers=headers, params=params)
39 |         response.raise_for_status()
40 |     except requests.exceptions.RequestException as e:
41 |         key_hint = f"{subscription_key[0:3]}...{subscription_key[-3:]}"
42 |         context.log("Error during Bing search.", {"exception": e.strerror, "url": search_url, "key": key_hint})
43 |         raise e
44 | 
45 |     # Unpack results.
46 |     search_results = response.json()
47 |     values = search_results.get("webPages", {}).get("value", "")
48 |     urls = [str(v["url"]) for v in values]
49 | 
50 |     # Limit number of results.
51 |     if num_results:
52 |         urls = urls[:num_results]
53 | 
54 |     return urls
55 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-open-deep-research/.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 |     // General paths
48 |     ".git",
49 |     ".gitignore",
50 |     ".vscode",
51 |     ".venv",
52 |     "node_modules",
53 |     "package-lock.json",
54 |     "pyproject.toml",
55 |     "settings.json",
56 |     "uv.lock",
57 |     // Project specific paths
58 |     "libs"
59 |   ],
60 |   "cSpell.words": [
61 |     "dotenv",
62 |     "fastmcp",
63 |     "huggingface",
64 |     "KHTML",
65 |     "pubchempy",
66 |     "SERP",
67 |     "serpapi",
68 |     "smolagents",
69 |     "toplevel"
70 |   ]
71 | }
72 | 
```

--------------------------------------------------------------------------------
/examples/dotnet/dotnet-01-echo-bot/appsettings.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   // Semantic Workbench connector settings
 3 |   "Workbench": {
 4 |     // Unique ID of the service. Semantic Workbench will store this event to identify the server
 5 |     // so you should keep the value fixed to match the conversations tracked across service restarts.
 6 |     "ConnectorId": "AgentExample01",
 7 |     // The host where the connector receives requests sent by the workbench.
 8 |     // Locally, this is usually "http://127.0.0.1:<some port>"
 9 |     // On Azure, this will be something like "https://contoso.azurewebsites.net"
10 |     // Leave this setting empty to use "127.0.0.1" and autodetect the port in use.
11 |     // You can use an env var to set this value, e.g. Workbench__ConnectorHost=https://contoso.azurewebsites.net
12 |     "ConnectorHost": "",
13 |     // This is the prefix of all the endpoints exposed by the connector
14 |     "ConnectorApiPrefix": "/myagents",
15 |     // Semantic Workbench endpoint.
16 |     "WorkbenchEndpoint": "http://127.0.0.1:3000",
17 |     // Name of your agent service
18 |     "ConnectorName": ".NET Multi Agent Service",
19 |     // Description of your agent service.
20 |     "ConnectorDescription": "Multi-agent service for .NET agents",
21 |     // Where to store agents settings and conversations
22 |     // See AgentServiceStorage class.
23 |     "StoragePathLinux": "/tmp/.sw",
24 |     "StoragePathWindows": "$tmp\\.sw"
25 |   },
26 |   // You agent settings
27 |   "Agent": {
28 |     "Name": "Agent1",
29 |     "ReplyToAgents": false,
30 |     "CommandsEnabled": true
31 |   },
32 |   // .NET Logger settings
33 |   "Logging": {
34 |     "LogLevel": {
35 |       "Default": "Information",
36 |       "Microsoft.AspNetCore": "Information"
37 |     },
38 |     "Console": {
39 |       "LogToStandardErrorThreshold": "Critical",
40 |       "FormatterName": "simple",
41 |       "FormatterOptions": {
42 |         "TimestampFormat": "[HH:mm:ss.fff] ",
43 |         "SingleLine": true,
44 |         "UseUtcTimestamp": false,
45 |         "IncludeScopes": false,
46 |         "JsonWriterOptions": {
47 |           "Indented": true
48 |         }
49 |       }
50 |     }
51 |   }
52 | }
```

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

```markdown
 1 | # IDENTITY
 2 | 
 3 | You are an advanced AI specialized in securely building anything, from bridges to web applications. You deeply understand the fundamentals of secure design and the details of how to apply those fundamentals to specific situations.
 4 | 
 5 | You take input and output a perfect set of secure_by_design questions to help the builder ensure the thing is created securely.
 6 | 
 7 | # GOAL
 8 | 
 9 | Create a perfect set of questions to ask in order to address the security of the component/system at the fundamental design level.
10 | 
11 | # STEPS
12 | 
13 | - Slowly listen to the input given, and spend 4 hours of virtual time thinking about what they were probably thinking when they created the input.
14 | 
15 | - Conceptualize what they want to build and break those components out on a virtual whiteboard in your mind.
16 | 
17 | - Think deeply about the security of this component or system. Think about the real-world ways it'll be used, and the security that will be needed as a result.
18 | 
19 | - Think about what secure by design components and considerations will be needed to secure the project.
20 | 
21 | # OUTPUT
22 | 
23 | - In a section called OVERVIEW, give a 25-word summary of what the input was discussing, and why it's important to secure it.
24 | 
25 | - In a section called SECURE BY DESIGN QUESTIONS, create a prioritized, bulleted list of 15-25-word questions that should be asked to ensure the project is being built with security by design in mind.
26 | 
27 | - Questions should be grouped into themes that have capitalized headers, e.g.,:
28 | 
29 | ARCHITECTURE: 
30 | 
31 | - What protocol and version will the client use to communicate with the server?
32 | - Next question
33 | - Next question
34 | - Etc
35 | - As many as necessary
36 | 
37 | AUTHENTICATION: 
38 | 
39 | - Question
40 | - Question
41 | - Etc
42 | - As many as necessary
43 | 
44 | END EXAMPLES
45 | 
46 | - There should be at least 15 questions and up to 50.
47 | 
48 | # OUTPUT INSTRUCTIONS
49 | 
50 | - Ensure the list of questions covers the most important secure by design questions that need to be asked for the project.
51 | 
52 | # INPUT
53 | 
54 | INPUT:
55 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an AI assistant specialized in analyzing meeting transcripts and extracting key information. Your goal is to provide comprehensive yet concise summaries that capture the essential elements of meetings in a structured format.
 4 | 
 5 | # STEPS
 6 | 
 7 | - Extract a brief overview of the meeting in 25 words or less, including the purpose and key participants into a section called OVERVIEW.
 8 | 
 9 | - Extract 10-20 of the most important discussion points from the meeting into a section called KEY POINTS. Focus on core topics, debates, and significant ideas discussed.
10 | 
11 | - Extract all action items and assignments mentioned in the meeting into a section called TASKS. Include responsible parties and deadlines where specified.
12 | 
13 | - Extract 5-10 of the most important decisions made during the meeting into a section called DECISIONS.
14 | 
15 | - Extract any notable challenges, risks, or concerns raised during the meeting into a section called CHALLENGES.
16 | 
17 | - Extract all deadlines, important dates, and milestones mentioned into a section called TIMELINE.
18 | 
19 | - Extract all references to documents, tools, projects, or resources mentioned into a section called REFERENCES.
20 | 
21 | - Extract 5-10 of the most important follow-up items or next steps into a section called NEXT STEPS.
22 | 
23 | # OUTPUT INSTRUCTIONS
24 | 
25 | - Only output Markdown.
26 | 
27 | - Write the KEY POINTS bullets as exactly 16 words.
28 | 
29 | - Write the TASKS bullets as exactly 16 words.
30 | 
31 | - Write the DECISIONS bullets as exactly 16 words.
32 | 
33 | - Write the NEXT STEPS bullets as exactly 16 words.
34 | 
35 | - Use bulleted lists for all sections, not numbered lists.
36 | 
37 | - Do not repeat information across sections.
38 | 
39 | - Do not start items with the same opening words.
40 | 
41 | - If information for a section is not available in the transcript, write "No information available".
42 | 
43 | - Do not include warnings or notes; only output the requested sections.
44 | 
45 | - Format each section header in bold using markdown.
46 | 
47 | # INPUT
48 | 
49 | INPUT:
50 | 
```

--------------------------------------------------------------------------------
/examples/python/python-03-multimodel-chatbot/.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 |   // For use with optional extension: "streetsidesoftware.code-spell-checker"
45 |   "cSpell.ignorePaths": [
46 |     ".venv",
47 |     "node_modules",
48 |     "package-lock.json",
49 |     "settings.json",
50 |     "uv.lock"
51 |   ],
52 |   "cSpell.words": [
53 |     "Codespaces",
54 |     "contentsafety",
55 |     "deepmerge",
56 |     "devcontainer",
57 |     "dotenv",
58 |     "endregion",
59 |     "fastapi",
60 |     "genai",
61 |     "generativeai",
62 |     "jsonschema",
63 |     "Langchain",
64 |     "moderations",
65 |     "multimodel",
66 |     "Ollama",
67 |     "openai",
68 |     "pydantic",
69 |     "pyproject",
70 |     "pyright",
71 |     "tiktoken"
72 |   ]
73 | }
74 | 
```

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

```csharp
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | using System.Text.Json;
 4 | using Microsoft.AspNetCore.Hosting.Server;
 5 | using Microsoft.Extensions.Logging.Abstractions;
 6 | using Microsoft.SemanticWorkbench.Connector;
 7 | 
 8 | namespace AgentExample;
 9 | 
10 | public sealed class MyWorkbenchConnector : WorkbenchConnector<MyAgentConfig>
11 | {
12 |     private readonly IServiceProvider _sp;
13 | 
14 |     public MyWorkbenchConnector(
15 |         IServiceProvider sp,
16 |         IConfiguration appConfig,
17 |         IAgentServiceStorage storage,
18 |         IServer httpServer,
19 |         ILoggerFactory? loggerFactory = null)
20 |         : base(
21 |             workbenchConfig: appConfig.GetSection("Workbench").Get<WorkbenchConfig>(),
22 |             defaultAgentConfig: appConfig.GetSection("Agent").Get<MyAgentConfig>(),
23 |             storage,
24 |             httpServer: httpServer,
25 |             loggerFactory?.CreateLogger<MyWorkbenchConnector>() ?? new NullLogger<MyWorkbenchConnector>())
26 |     {
27 |         this._sp = sp;
28 |     }
29 | 
30 |     /// <inheritdoc />
31 |     public override async Task CreateAgentAsync(
32 |         string agentId,
33 |         string? name,
34 |         object? configData,
35 |         CancellationToken cancellationToken = default)
36 |     {
37 |         if (this.GetAgent(agentId) != null) { return; }
38 | 
39 |         this.Log.LogDebug("Creating agent '{0}'", agentId);
40 | 
41 |         MyAgentConfig config = this.DefaultAgentConfig;
42 |         if (configData != null)
43 |         {
44 |             var newCfg = JsonSerializer.Deserialize<MyAgentConfig>(JsonSerializer.Serialize(configData));
45 |             if (newCfg != null) { config = newCfg; }
46 |         }
47 | 
48 |         // Instantiate using .NET Service Provider so that dependencies are automatically injected
49 |         var agent = ActivatorUtilities.CreateInstance<MyAgent>(
50 |             this._sp,
51 |             agentId,
52 |             name ?? agentId,
53 |             config);
54 | 
55 |         await agent.StartAsync(cancellationToken).ConfigureAwait(false);
56 |         this.Agents.TryAdd(agentId, agent);
57 |     }
58 | }
59 | 
```

--------------------------------------------------------------------------------
/examples/dotnet/dotnet-02-message-types-demo/MyWorkbenchConnector.cs:
--------------------------------------------------------------------------------

```csharp
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | using System.Text.Json;
 4 | using Microsoft.AspNetCore.Hosting.Server;
 5 | using Microsoft.Extensions.Logging.Abstractions;
 6 | using Microsoft.SemanticWorkbench.Connector;
 7 | 
 8 | namespace AgentExample;
 9 | 
10 | public sealed class MyWorkbenchConnector : WorkbenchConnector<MyAgentConfig>
11 | {
12 |     private readonly IServiceProvider _sp;
13 | 
14 |     public MyWorkbenchConnector(
15 |         IServiceProvider sp,
16 |         IConfiguration appConfig,
17 |         IAgentServiceStorage storage,
18 |         IServer httpServer,
19 |         ILoggerFactory? loggerFactory = null)
20 |         : base(
21 |             workbenchConfig: appConfig.GetSection("Workbench").Get<WorkbenchConfig>(),
22 |             defaultAgentConfig: appConfig.GetSection("Agent").Get<MyAgentConfig>(),
23 |             storage,
24 |             httpServer: httpServer,
25 |             loggerFactory?.CreateLogger<MyWorkbenchConnector>() ?? new NullLogger<MyWorkbenchConnector>())
26 |     {
27 |         this._sp = sp;
28 |     }
29 | 
30 |     /// <inheritdoc />
31 |     public override async Task CreateAgentAsync(
32 |         string agentId,
33 |         string? name,
34 |         object? configData,
35 |         CancellationToken cancellationToken = default)
36 |     {
37 |         if (this.GetAgent(agentId) != null) { return; }
38 | 
39 |         this.Log.LogDebug("Creating agent '{0}'", agentId);
40 | 
41 |         MyAgentConfig config = this.DefaultAgentConfig;
42 |         if (configData != null)
43 |         {
44 |             var newCfg = JsonSerializer.Deserialize<MyAgentConfig>(JsonSerializer.Serialize(configData));
45 |             if (newCfg != null) { config = newCfg; }
46 |         }
47 | 
48 |         // Instantiate using .NET Service Provider so that dependencies are automatically injected
49 |         var agent = ActivatorUtilities.CreateInstance<MyAgent>(
50 |             this._sp,
51 |             agentId,
52 |             name ?? agentId,
53 |             config);
54 | 
55 |         await agent.StartAsync(cancellationToken).ConfigureAwait(false);
56 |         this.Agents.TryAdd(agentId, agent);
57 |     }
58 | }
59 | 
```

--------------------------------------------------------------------------------
/assistants/explorer-assistant/.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 |   // For use with optional extension: "streetsidesoftware.code-spell-checker"
45 |   "cSpell.ignorePaths": [
46 |     ".venv",
47 |     "node_modules",
48 |     "package-lock.json",
49 |     "settings.json",
50 |     "uv.lock"
51 |   ],
52 |   "cSpell.words": [
53 |     "Codespaces",
54 |     "contentsafety",
55 |     "deepmerge",
56 |     "devcontainer",
57 |     "dotenv",
58 |     "endregion",
59 |     "Excalidraw",
60 |     "fastapi",
61 |     "jsonschema",
62 |     "Langchain",
63 |     "moderations",
64 |     "openai",
65 |     "pdfplumber",
66 |     "pydantic",
67 |     "pyproject",
68 |     "pyright",
69 |     "tiktoken",
70 |     "updown",
71 |     "virtualenvs"
72 |   ]
73 | }
74 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-bing-search/mcp_server_bing_search/prompts/filter_links.py:
--------------------------------------------------------------------------------

```python
 1 | # Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | from mcp_extensions.llm.llm_types import SystemMessage, UserMessage
 4 | 
 5 | FILTER_LINKS_SYSTEM_PROMPT = SystemMessage(
 6 |     content="""You are analyzing the links in the Markdown content of a website and identifying the most important URLs for traversing the web.
 7 | You will be provided the entire Markdown content of a website, including the links embedded within the content. \
 8 | At the end you will also be separately provided the possible links to choose from alongside their ids. \
 9 | You should return up to {{max_links}}, **in order of importance**, according to these criteria:
10 | - Form a diverse set of URLs. Do not just return links in order that they appear.
11 | - Are not (near) duplicates
12 | - Are not things like images, videos, or other media
13 | - If the links are traversing a directory-like structure, be sure to choose enough to facilitate traversal, especially ones that would lead to further documentation.
14 | - If you're unsure whether to include a URL, add it anyway since it might lead to novel and interesting content.
15 | - Under no circumstances should you include URLs that may contain harmful, malicious, or otherwise unsafe content."""
16 | )
17 | 
18 | FILTER_LINKS_USER_PROMPT = UserMessage(
19 |     content="""<website_content>
20 | {{content}}
21 | </website_content>
22 | <links>
23 | {{links}}
24 | </links>"""
25 | )
26 | 
27 | FILTER_LINKS_MESSAGES = [
28 |     FILTER_LINKS_SYSTEM_PROMPT,
29 |     FILTER_LINKS_USER_PROMPT,
30 | ]
31 | 
32 | LINKS_SCHEMA = {
33 |     "name": "links_filter",
34 |     "schema": {
35 |         "type": "object",
36 |         "properties": {
37 |             "chosen_links": {
38 |                 "type": "array",
39 |                 "items": {
40 |                     "type": "integer",
41 |                     "description": "id of a chosen link",
42 |                 },
43 |                 "description": "In order of importance, the ids of chosen links.",
44 |             }
45 |         },
46 |         "required": ["chosen_links"],
47 |         "additionalProperties": False,
48 |     },
49 |     "strict": True,
50 | }
51 | 
```

--------------------------------------------------------------------------------
/libraries/python/guided-conversation/guided_conversation/utils/base_model_llm.py:
--------------------------------------------------------------------------------

```python
 1 | # Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | # FIXME: Copied code from Semantic Kernel repo, using as-is despite type errors
 4 | # type: ignore
 5 | 
 6 | import ast
 7 | from types import NoneType
 8 | from typing import get_args
 9 | 
10 | from pydantic import BaseModel, ConfigDict, ValidationInfo, field_validator
11 | 
12 | 
13 | class BaseModelLLM(BaseModel):
14 |     """A Pydantic base class for use when an LLM is completing fields. Provides a custom field validator and Pydantic Config."""
15 | 
16 |     @field_validator("*", mode="before")
17 |     def parse_literal_eval(cls, value: str, info: ValidationInfo):  # noqa: N805
18 |         """An LLM will always result in a string (e.g. '["x", "y"]'), so we need to parse it to the correct type"""
19 |         # Get the type hints for the field
20 |         annotation = cls.model_fields[info.field_name].annotation
21 |         typehints = get_args(annotation)
22 |         if len(typehints) == 0:
23 |             typehints = [annotation]
24 | 
25 |         # Usually fields that are NoneType have another type hint as well, e.g. str | None
26 |         # if the LLM returns "None" and the field allows NoneType, we should return None
27 |         # without this code, the next if-block would leave the string "None" as the value
28 |         if (NoneType in typehints) and (value == "None"):
29 |             return None
30 | 
31 |         # If the field allows strings, we don't parse it - otherwise a validation error might be raised
32 |         # e.g. phone_number = "1234567890" should not be converted to an int if the type hint is str
33 |         if str in typehints:
34 |             return value
35 |         try:
36 |             evaluated_value = ast.literal_eval(value)
37 |             return evaluated_value
38 |         except Exception:
39 |             return value
40 | 
41 |     model_config = ConfigDict(
42 |         # Ensure that validation happens every time a field is updated, not just when the artifact is created
43 |         validate_assignment=True,
44 |         # Do not allow extra fields to be added to the artifact
45 |         extra="forbid",
46 |     )
47 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are a technology impact analysis service, focused on determining the societal impact of technology projects. Your goal is to break down the project's intentions, outcomes, and its broader implications for society, including any ethical considerations.
 4 | 
 5 | Take a moment to think about how to best achieve this goal using the following steps.
 6 | 
 7 | ## OUTPUT SECTIONS
 8 | 
 9 | - Summarize the technology project and its primary objectives in a 25-word sentence in a section called SUMMARY.
10 | 
11 | - List the key technologies and innovations utilized in the project in a section called TECHNOLOGIES USED.
12 | 
13 | - Identify the target audience or beneficiaries of the project in a section called TARGET AUDIENCE.
14 | 
15 | - Outline the project's anticipated or achieved outcomes in a section called OUTCOMES. Use a bulleted list with each bullet not exceeding 25 words.
16 | 
17 | - Analyze the potential or observed societal impact of the project in a section called SOCIETAL IMPACT. Consider both positive and negative impacts.
18 | 
19 | - Examine any ethical considerations or controversies associated with the project in a section called ETHICAL CONSIDERATIONS. Rate the severity of ethical concerns as NONE, LOW, MEDIUM, HIGH, or CRITICAL.
20 | 
21 | - Discuss the sustainability of the technology or project from an environmental, economic, and social perspective in a section called SUSTAINABILITY.
22 | 
23 | - Based on all the analysis performed above, output a 25-word summary evaluating the overall benefit of the project to society and its sustainability. Rate the project's societal benefit and sustainability on a scale from VERY LOW, LOW, MEDIUM, HIGH, to VERY HIGH in a section called SUMMARY and RATING.
24 | 
25 | ## OUTPUT INSTRUCTIONS
26 | 
27 | - You only output Markdown.
28 | - Create the output using the formatting above.
29 | - In the markdown, don't use formatting like bold or italics. Make the output maximally readable in plain text.
30 | - Do not output warnings or notes—just the requested sections.
31 | 
32 | 
```

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

```markdown
 1 | # Instructional Video Transcript Extraction
 2 | 
 3 | ## Identity
 4 | You are an expert at extracting clear, concise step-by-step instructions from instructional video transcripts.
 5 | 
 6 | ## Goal
 7 | Extract and present the key instructions from the given transcript in an easy-to-follow format.
 8 | 
 9 | ## Process
10 | 1. Read the entire transcript carefully to understand the video's objectives.
11 | 2. Identify and extract the main actionable steps and important details.
12 | 3. Organize the extracted information into a logical, step-by-step format.
13 | 4. Summarize the video's main objectives in brief bullet points.
14 | 5. Present the instructions in a clear, numbered list.
15 | 
16 | ## Output Format
17 | 
18 | ### Objectives
19 | - [List 3-10 main objectives of the video in 15-word bullet points]
20 | 
21 | ### Instructions
22 | 1. [First step]
23 | 2. [Second step]
24 | 3. [Third step]
25 |    - [Sub-step if applicable]
26 | 4. [Continue numbering as needed]
27 | 
28 | ## Guidelines
29 | - Ensure each step is clear, concise, and actionable.
30 | - Use simple language that's easy to understand.
31 | - Include any crucial details or warnings mentioned in the video.
32 | - Maintain the original order of steps as presented in the video.
33 | - Limit each step to one main action or concept.
34 | 
35 | ## Example Output
36 | 
37 | ### Objectives
38 | - Learn to make a perfect omelet using the French technique
39 | - Understand the importance of proper pan preparation and heat control
40 | 
41 | ### Instructions
42 | 1. Crack 2-3 eggs into a bowl and beat until well combined.
43 | 2. Heat a non-stick pan over medium heat.
44 | 3. Add a small amount of butter to the pan and swirl to coat.
45 | 4. Pour the beaten eggs into the pan.
46 | 5. Using a spatula, gently push the edges of the egg towards the center.
47 | 6. Tilt the pan to allow uncooked egg to flow to the edges.
48 | 7. When the omelet is mostly set but still slightly wet on top, add fillings if desired.
49 | 8. Fold one-third of the omelet over the center.
50 | 9. Slide the omelet onto a plate, using the pan to flip and fold the final third.
51 | 10. Serve immediately.
52 | 
53 | [Insert transcript here]
54 | 
```

--------------------------------------------------------------------------------
/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/settings.py:
--------------------------------------------------------------------------------

```python
 1 | from pydantic import Field, HttpUrl
 2 | from pydantic_settings import BaseSettings, SettingsConfigDict
 3 | 
 4 | from semantic_workbench_assistant.logging_config import LoggingSettings
 5 | 
 6 | from .storage import FileStorageSettings
 7 | 
 8 | 
 9 | class Settings(BaseSettings):
10 |     model_config = SettingsConfigDict(
11 |         env_prefix="assistant__", env_nested_delimiter="__", env_file=".env", extra="allow"
12 |     )
13 | 
14 |     storage: FileStorageSettings = FileStorageSettings(root=".data/assistants")
15 |     logging: LoggingSettings = LoggingSettings()
16 | 
17 |     workbench_service_url: HttpUrl = HttpUrl("http://127.0.0.1:3000")
18 |     workbench_service_api_key: str = ""
19 |     workbench_service_ping_interval_seconds: float = 30.0
20 | 
21 |     assistant_service_id: str | None = None
22 |     assistant_service_name: str | None = None
23 |     assistant_service_description: str | None = None
24 | 
25 |     assistant_service_url: HttpUrl | None = None
26 | 
27 |     host: str = "127.0.0.1"
28 |     port: int = 0
29 | 
30 |     website_protocol: str = Field(alias="WEBSITE_PROTOCOL", default="https")
31 |     website_port: int | None = Field(alias="WEBSITE_PORT", default=None)
32 |     # this env var is set by the Azure App Service
33 |     website_hostname: str = Field(alias="WEBSITE_HOSTNAME", default="")
34 | 
35 |     anonymous_paths: list[str] = ["/", "/docs", "/openapi.json"]
36 | 
37 |     @property
38 |     def callback_url(self) -> str:
39 |         # use the configured assistant service url if available
40 |         if self.assistant_service_url:
41 |             return str(self.assistant_service_url)
42 | 
43 |         # use config from Azure App Service if available
44 |         if self.website_hostname:
45 |             url = f"{self.website_protocol}://{self.website_hostname}"
46 |             if self.website_port is None:
47 |                 return url
48 |             return f"{url}:{self.website_port}"
49 | 
50 |         # finally, fallback to the host name/ip and port the app is running on
51 |         url = f"http://{self.host}"
52 |         if self.port is None:
53 |             return url
54 |         return f"{url}:{self.port}"
55 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/routes/Login.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { useMsal } from '@azure/msal-react';
 4 | import { Button, Label, MessageBar } from '@fluentui/react-components';
 5 | import debug from 'debug';
 6 | import React from 'react';
 7 | import { Constants } from '../Constants';
 8 | import { AppView } from '../components/App/AppView';
 9 | import { AuthHelper } from '../libs/AuthHelper';
10 | import { useSiteUtility } from '../libs/useSiteUtility';
11 | 
12 | const log = debug(Constants.debug.root).extend('login');
13 | 
14 | export const Login: React.FC = () => {
15 |     const { instance } = useMsal();
16 |     const siteUtility = useSiteUtility();
17 |     const [errorMessage, setErrorMessage] = React.useState<string>();
18 | 
19 |     siteUtility.setDocumentTitle('Login');
20 | 
21 |     const handleSignIn = () => {
22 |         void (async () => {
23 |             try {
24 |                 await AuthHelper.loginAsync(instance);
25 |             } catch (error) {
26 |                 log(error);
27 |                 setErrorMessage((error as Error).message);
28 |             }
29 |         })();
30 |     };
31 | 
32 |     return (
33 |         <AppView title="Login" actions={{ items: [], replaceExisting: true, hideProfileSettings: true }}>
34 |             <div>
35 |                 <Button appearance="primary" onClick={handleSignIn}>
36 |                     Sign In
37 |                 </Button>
38 |             </div>
39 |             <Label>
40 |                 Note: Semantic Workbench can be deployed as a multi-user application, requiring user sign-in even when
41 |                 running locally as a single-user instance. By default, it uses Microsoft accounts and a sample app
42 |                 registration for quick setup. You can modify the configuration in the code by editing `Constants.ts` and
43 |                 `AuthSettings` in `semantic_workbench_settings.config.py`.
44 |             </Label>
45 |             {errorMessage && (
46 |                 <MessageBar intent="error" layout="multiline">
47 |                     {errorMessage}
48 |                 </MessageBar>
49 |             )}
50 |         </AppView>
51 |     );
52 | };
53 | 
```
Page 19/145FirstPrevNextLast