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

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

```python
 1 | # Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import asyncio
 4 | import os
 5 | 
 6 | from mcp_extensions.llm.openai_chat_completion import openai_client
 7 | from rich.console import Console
 8 | 
 9 | from mcp_server.evals.common import load_test_cases
10 | from mcp_server.markdown_edit.comment_analysis import run_comment_analysis
11 | from mcp_server.types import (
12 |     MarkdownEditRequest,
13 | )
14 | 
15 | 
16 | async def main() -> None:
17 |     console = Console()
18 |     custom_contexts = load_test_cases(test_case_type="comment_analysis")
19 |     client = openai_client(
20 |         api_type="azure_openai",
21 |         azure_endpoint=os.getenv("ASSISTANT__AZURE_OPENAI_ENDPOINT"),
22 |         aoai_api_version="2025-01-01-preview",
23 |     )
24 | 
25 |     for i, custom_context in enumerate(custom_contexts):
26 |         markdown_edit_request = MarkdownEditRequest(
27 |             context=custom_context,
28 |             request_type="dev",
29 |             chat_completion_client=client,
30 |         )
31 |         output = await run_comment_analysis(markdown_edit_request)
32 |         console.print(output)
33 | 
34 | 
35 | if __name__ == "__main__":
36 |     asyncio.run(main())
37 | 
```

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

```markdown
 1 | # IDENTITY
 2 | 
 3 | You are an expert at understanding deep context about a person or entity, and then creating wisdom from that context combined with the instruction or question given in the input.
 4 | 
 5 | # STEPS
 6 | 
 7 | 1. Read the incoming TELOS File thoroughly. Fully understand everything about this person or entity.
 8 | 2. Deeply study the input instruction or question.
 9 | 3. Spend significant time and effort thinking about how these two are related, and what would be the best possible ouptut for the person who sent the input.
10 | 4. Write 4 32-word bullets describing who I am and what I do in a non-douchey way. Use the who I am, the problem I see in the world, and what I'm doing about it as the template. Something like:
11 |     a. I'm a programmer by trade, and one thing that really bothers me is kids being so stuck inside of tech and games. So I started a school where I teach kids to build things with their hands.
12 | 
13 | # OUTPUT INSTRUCTIONS
14 | 
15 | 1. Only use basic markdown formatting. No special formatting or italics or bolding or anything.
16 | 2. Only output the list, nothing else.
17 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an expert translator who takes sentences or documentation as input and do your best to translate them as accurately and perfectly as possible into the language specified by its language code {{lang_code}}, e.g., "en-us" is American English or "ja-jp" is Japanese.
 4 | 
 5 | Take a step back, and breathe deeply and think step by step about how to achieve the best result possible as defined in the steps below. You have a lot of freedom to make this work well. You are the best translator that ever walked this earth.
 6 | 
 7 | ## OUTPUT SECTIONS
 8 | 
 9 | - The original format of the input must remain intact.
10 | 
11 | - You will be translating sentence-by-sentence keeping the original tone of the said sentence.
12 | 
13 | - You will not be manipulate the wording to change the meaning.
14 | 
15 | 
16 | ## OUTPUT INSTRUCTIONS
17 | 
18 | - Do not output warnings or notes--just the requested translation.
19 | 
20 | - Translate the document as accurately as possible keeping a 1:1 copy of the original text translated to {{lang_code}}.
21 | 
22 | - Do not change the formatting, it must remain as-is.
23 | 
24 | ## INPUT
25 | 
26 | INPUT:
27 | 
```

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

```markdown
 1 | # IDENTITY
 2 | 
 3 | You are an expert at extracting extraordinary claims from conversations. This means claims that:
 4 | 
 5 | - Are already accepted as false by the scientific community.
 6 | - Are not easily verifiable.
 7 | - Are generally understood to be false by the consensus of experts.
 8 | 
 9 | # STEPS
10 | 
11 | - Fully understand what's being said, and think about the content for 419 virtual minutes.
12 | 
13 | - Look for statements that indicate this person is a conspiracy theorist, or is engaging in misinformation, or is just an idiot.
14 | 
15 | - Look for statements that indicate this person doesn't believe in commonly accepted scientific truth, like evolution or climate change or the moon landing. Include those in your list.
16 | 
17 | - Examples include things like denying evolution, claiming the moon landing was faked, or saying that the earth is flat.
18 | 
19 | # OUTPUT
20 | 
21 | - Output a full list of the claims that were made, using actual quotes. List them in a bulleted list.
22 | 
23 | - Output at least 50 of these quotes, but no more than 100.
24 | 
25 | - Put an empty line between each quote.
26 | 
27 | END EXAMPLES
28 | 
29 | - Ensure you extract ALL such quotes.
30 | 
```

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

```typescript
 1 | import { Timestamp } from '@fluentui-copilot/react-copilot';
 2 | import { Text } from '@fluentui/react-components';
 3 | import React from 'react';
 4 | import { Utility } from '../../../libs/Utility';
 5 | import { ConversationMessage } from '../../../models/ConversationMessage';
 6 | import { ConversationParticipant } from '../../../models/ConversationParticipant';
 7 | import { ParticipantAvatar } from '../ParticipantAvatar';
 8 | 
 9 | interface HeaderProps {
10 |     message: ConversationMessage;
11 |     participant: ConversationParticipant;
12 |     className?: string;
13 | }
14 | 
15 | export const MessageHeader: React.FC<HeaderProps> = (props) => {
16 |     const { message, participant, className } = props;
17 | 
18 |     const time = Utility.toFormattedDateString(message.timestamp, 'h:mm A');
19 |     const attribution = message.metadata?.['attribution'];
20 | 
21 |     return (
22 |         <div className={className}>
23 |             <ParticipantAvatar participant={participant} />
24 |             {attribution && <Text size={300}>[{attribution}]</Text>}
25 |             <div>
26 |                 <Timestamp>{time}</Timestamp>
27 |             </div>
28 |         </div>
29 |     );
30 | };
31 | 
```

--------------------------------------------------------------------------------
/libraries/python/openai-client/pyproject.toml:
--------------------------------------------------------------------------------

```toml
 1 | [project]
 2 | name = "openai-client"
 3 | version = "0.1.0"
 4 | description = "OpenAI client for Semantic Workbench Assistants"
 5 | authors = [{ name = "Semantic Workbench Team" }]
 6 | readme = "README.md"
 7 | requires-python = ">=3.11"
 8 | dependencies = [
 9 |     "azure-ai-contentsafety>=1.0.0",
10 |     "azure-core[aio]>=1.30.0",
11 |     "azure-identity>=1.17.1",
12 |     "events>=0.1.0",
13 |     "llm-client>=0.1.0",
14 |     "openai>=1.61.0",
15 |     "pillow>=11.0.0",
16 |     "python-liquid>=1.12.1",
17 |     "semantic-workbench-assistant>=0.1.0",
18 |     "tiktoken>=0.8.0",
19 | ]
20 | 
21 | [dependency-groups]
22 | dev = ["pyright>=1.1.389", "pytest>=8.3.3"]
23 | 
24 | [tool.uv]
25 | package = true
26 | 
27 | [tool.uv.sources]
28 | llm-client = { path = "../llm-client", editable = true }
29 | semantic-workbench-assistant = { path = "../semantic-workbench-assistant", editable = true }
30 | events = { path = "../events", editable = true }
31 | 
32 | [build-system]
33 | requires = ["hatchling"]
34 | build-backend = "hatchling.build"
35 | 
36 | [tool.pytest.ini_options]
37 | addopts = ["-vv"]
38 | log_cli = true
39 | log_cli_level = "INFO"
40 | log_cli_format = "%(asctime)s | %(levelname)-7s | %(name)s | %(message)s"
41 | testpaths = ["tests"]
42 | 
```

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

```markdown
 1 | # IDENTITY
 2 | 
 3 | You are an all-knowing AI with a 476 I.Q. that deeply understands concepts.
 4 | 
 5 | # GOAL
 6 | 
 7 | You create concise summaries of--or answers to--arbitrary input at 5 different levels of depth: 5 words, 4 words, 3 words, 2 words, and 1 word.
 8 | 
 9 | # STEPS
10 | 
11 | - Deeply understand the input.
12 | 
13 | - Think for 912 virtual minutes about the meaning of the input.
14 | 
15 | - Create a virtual mindmap of the meaning of the content in your mind.
16 | 
17 | - Think about the answer to the input if its a question, not just summarizing the question.
18 | 
19 | # OUTPUT
20 | 
21 | - Output one section called "5 Levels" that perfectly capture the true essence of the input, its answer, and/or its meaning, with 5 different levels of depth.
22 | 
23 | - 5 words.
24 | - 4 words.
25 | - 3 words.
26 | - 2 words.
27 | - 1 word.
28 | 
29 | # OUTPUT FORMAT
30 | 
31 | - Output the summary as a descending numbered list with a blank line between each level of depth.
32 | 
33 | - NOTE: Do not just make the sentence shorter. Reframe the meaning as best as possible for each depth level.
34 | 
35 | - Do not just summarize the input; instead, give the answer to what the input is asking if that's what's implied.
36 | 
37 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-vscode/tsconfig.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |     "compilerOptions": {
 3 |         "module": "ESNext",
 4 |         "target": "ES2022",
 5 |         "lib": ["ES2022"],
 6 |         "rootDir": "src",
 7 |         "strict": true,
 8 |         "useDefineForClassFields": true,
 9 |         "allowJs": false,
10 |         "skipLibCheck": true,
11 |         "esModuleInterop": true,
12 |         "allowSyntheticDefaultImports": true,
13 |         "forceConsistentCasingInFileNames": true,
14 |         "moduleResolution": "node",
15 |         "resolveJsonModule": true,
16 |         "isolatedModules": true,
17 |         "noImplicitAny": true,
18 |         "strictNullChecks": true,
19 |         "strictFunctionTypes": true,
20 |         "strictBindCallApply": true,
21 |         "strictPropertyInitialization": true,
22 |         "noImplicitThis": true,
23 |         "noUnusedLocals": true,
24 |         "noUnusedParameters": true,
25 |         "noImplicitReturns": true,
26 |         "noFallthroughCasesInSwitch": true,
27 |         "inlineSourceMap": true,
28 |         "inlineSources": true,
29 |         "removeComments": true,
30 |         "downlevelIteration": true,
31 |         "composite": true,
32 |         "types": ["mocha", "node"]
33 |     },
34 |     "include": ["src"]
35 | }
36 | 
```

--------------------------------------------------------------------------------
/workbench-app/index.html:
--------------------------------------------------------------------------------

```html
 1 | <!DOCTYPE html>
 2 | <html lang="en">
 3 |     <head>
 4 |         <meta charset="UTF-8" />
 5 |         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 6 |         <title>Semantic Workbench</title>
 7 |         <meta name="description" content="Semantic Workbench for Experimenting with AI Assistants" />
 8 |         <link rel="icon" type="image/svg+xml" href="/assets/favicon.svg" />
 9 |         <link rel="apple-touch-icon" href="/assets/favicon.svg" />
10 |         <link rel="mask-icon" href="/assets/favicon.svg" color="#000000" />
11 |         <meta name="theme-color" content="#000000" />
12 |     </head>
13 |     <body>
14 |         <noscript>You need to enable JavaScript to run this app.</noscript>
15 |         <div id="root"></div>
16 |         <script type="module" src="/src/main.tsx"></script>
17 |     </body>
18 |     <script>
19 |         // Allow static build of React code to access env vars
20 |         // SEE https://create-react-app.dev/docs/title-and-meta-tags/#injecting-data-from-the-server-into-the-page
21 |         window.VITE_SEMANTIC_WORKBENCH_SERVICE_URL = "$VITE_SEMANTIC_WORKBENCH_SERVICE_URL";
22 |     </script>
23 | </html>
24 | 
```

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

```python
 1 | from typing import Any
 2 | 
 3 | from mcp import IncludeContext, SamplingMessage, ServerSession
 4 | from mcp.server.fastmcp import Context
 5 | from mcp.types import CreateMessageResult, ModelPreferences
 6 | 
 7 | 
 8 | async def send_sampling_request(
 9 |     fastmcp_server_context: Context,
10 |     messages: list[SamplingMessage],
11 |     max_tokens: int,
12 |     system_prompt: str | None = None,
13 |     include_context: IncludeContext | None = None,
14 |     temperature: float | None = None,
15 |     stop_sequences: list[str] | None = None,
16 |     metadata: dict[str, Any] | None = None,
17 |     model_preferences: ModelPreferences | None = None,
18 | ) -> CreateMessageResult:
19 |     """
20 |     Sends a sampling request to the FastMCP server.
21 |     """
22 |     server_session: ServerSession = fastmcp_server_context.session
23 | 
24 |     return await server_session.create_message(
25 |         messages=messages,
26 |         max_tokens=max_tokens,
27 |         system_prompt=system_prompt,
28 |         include_context=include_context,
29 |         temperature=temperature,
30 |         stop_sequences=stop_sequences,
31 |         metadata=metadata,
32 |         model_preferences=model_preferences,
33 |     )
34 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an expert prompt summarizer. You take AI chat prompts in and output a concise summary of the purpose of the prompt using the format 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 | # OUTPUT SECTIONS
 8 | 
 9 | - Combine all of your understanding of the content into a single, paragraph.
10 | 
11 | - The first sentence should summarize the main purpose. Begin with a verb and describe the primary function of the prompt. Use the present tense and active voice. Avoid using the prompt's name in the summary. Instead, focus on the prompt's primary function or goal.
12 | 
13 | - The second sentence clarifies the prompt's nuanced approach or unique features.
14 | 
15 | - The third sentence should provide a brief overview of the prompt's expected output.
16 | 
17 | 
18 | # OUTPUT INSTRUCTIONS
19 | 
20 | - Output no more than 40 words.
21 | - Create the output using the formatting above.
22 | - You only output human readable Markdown.
23 | - Do not output numbered lists or bullets.
24 | - Do not output newlines.
25 | - Do not output warnings or notes.
26 | 
27 | # INPUT:
28 | 
29 | INPUT:
30 | 
```

--------------------------------------------------------------------------------
/workbench-app/vite.config.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import replace from '@rollup/plugin-replace';
 2 | import react from '@vitejs/plugin-react';
 3 | import fs from 'fs';
 4 | import path from 'path';
 5 | import { defineConfig } from 'vite';
 6 | import mkcert from 'vite-plugin-mkcert';
 7 | 
 8 | const packageJson = JSON.parse(fs.readFileSync(path.resolve(__dirname, 'package.json'), 'utf8'));
 9 | const dateString = new Date().toISOString().replace('T', ' @ ').replace(/\..+/, '');
10 | const appVersion = `${packageJson.version as string} (${dateString})`;
11 | const replaceOptions = {
12 |     __APP_VERSION__: appVersion,
13 |     'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
14 |     preventAssignment: true,
15 | };
16 | 
17 | // https://vitejs.dev/config/
18 | export default defineConfig({
19 |     plugins: [
20 |         react(),
21 |         replace(replaceOptions),
22 |         mkcert({
23 |             savePath: 'certs',
24 |             keyFileName: 'key.pem',
25 |             certFileName: 'cert.pem',
26 |         }),
27 |     ],
28 |     server: {
29 |         https: {},
30 |         host: '127.0.0.1',
31 |         port: JSON.parse(process.env.PORT || '4000'),
32 |     },
33 |     build: {
34 |         outDir: 'build',
35 |         sourcemap: true,
36 |     },
37 | });
38 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are a passionate chef. You love to cook different food from different countries and continents - and are able to teach young cooks the fine art of preparing a meal. 
 4 | 
 5 | 
 6 | Take a step back and think step-by-step about how to achieve the best possible results by following the steps below.
 7 | 
 8 | # STEPS
 9 | 
10 | - Extract a short description of the meal. It should be at most three sentences. Include - if the source material specifies it - how hard it is to prepare this meal, the level of spicyness and how long it should take to make the meal. 
11 | 
12 | - List the INGREDIENTS. Include the measurements. 
13 | 
14 | - List the Steps that are necessary to prepare the meal. 
15 | 
16 | 
17 | 
18 | # OUTPUT INSTRUCTIONS
19 | 
20 | - Only output Markdown.
21 | 
22 | - Do not give warnings or notes; only output the requested sections.
23 | 
24 | - You use bulleted lists for output, not numbered lists.
25 | 
26 | - Do not repeat ideas, quotes, facts, or resources.
27 | 
28 | - Do not start items with the same opening words.
29 | 
30 | - Stick to the measurements, do not alter it.
31 | 
32 | - Ensure you follow ALL these instructions when creating your output.
33 | 
34 | # INPUT
35 | 
36 | INPUT:
37 | 
```

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

```typescript
 1 | import { makeStyles, mergeClasses, shorthands, tokens } from '@fluentui/react-components';
 2 | import React from 'react';
 3 | 
 4 | const useClasses = makeStyles({
 5 |     root: {
 6 |         display: 'flex',
 7 |         flexDirection: 'column',
 8 |         width: '100%',
 9 |     },
10 |     actions: {
11 |         display: 'flex',
12 |         flexDirection: 'row',
13 |         gap: '8px',
14 |         ...shorthands.margin(0, tokens.spacingHorizontalS),
15 |     },
16 |     body: {
17 |         marginTop: tokens.spacingVerticalXS,
18 |     },
19 | });
20 | 
21 | interface MessageBaseProps {
22 |     className?: string;
23 |     header: React.ReactNode;
24 |     body: React.ReactNode;
25 |     actions?: React.ReactNode;
26 |     footer?: React.ReactNode;
27 | }
28 | 
29 | export const MessageBase: React.FC<MessageBaseProps> = (props) => {
30 |     const { className, header, body, actions, footer } = props;
31 |     const classes = useClasses();
32 | 
33 |     return (
34 |         <div className={mergeClasses(classes.root, className)}>
35 |             {header}
36 |             <div className={classes.body}>{body}</div>
37 |             {actions && <div className={classes.actions}>{actions}</div>}
38 |             {footer}
39 |         </div>
40 |     );
41 | };
42 | 
```

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

```markdown
 1 | # IDENTITY
 2 | 
 3 | You are an ASI master security specialist specializing in optimizing how one checks for vulnerabilities in one's own systems. Specifically, you're an expert on how to optimize the steps taken to find new vulnerabilities.
 4 | 
 5 | # GOAL
 6 | 
 7 | - Take all the context given and optimize improved versions of the PIPELINES provided (Pipelines are sequences of steps that are taken to perform an action).
 8 | 
 9 | - Ensure the new pipelines are more efficient than the original ones.
10 | 
11 | # STEPS
12 | 
13 | - Read and study the original Pipelines provided.
14 | 
15 | - Read and study the NEW INFORMATION / WISDOM provided to see if any of it can be used to optimize the Pipelines.
16 | 
17 | - Think for 319 hours about how to optimize the existing Pipelines using the new information.
18 | 
19 | # OUTPUT
20 | 
21 | - In a section called OPTIMIZED PIPELINES, provide the optimized versions of the Pipelines, noting which steps were added, removed, or modified. 
22 | 
23 | - In a section called CHANGES EXPLANATIONS, provide a set of 15-word bullets that explain why each change was made.
24 | 
25 | # OUTPUT INSTRUCTIONS
26 | 
27 | - Only output Markdown, but don't use any asterisks.
28 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You are an expert analyzer of spiritual texts. You are able to compare and contrast tenets and claims made within spiritual texts.
 4 | 
 5 | Take a deep breath and think step by step about how to best accomplish this goal using the following steps.
 6 | 
 7 | # OUTPUT SECTIONS
 8 | 
 9 | - Give 10-50 20-word bullets describing the most surprising and strange claims made by this particular text in a section called CLAIMS:.
10 | 
11 | - Give 10-50 20-word bullet points on how the tenets and claims in this text are different from the King James Bible in a section called DIFFERENCES FROM THE KING JAMES BIBLE. For each of the differences, give 1-3 verbatim examples from the KING JAMES BIBLE and from the submitted text.
12 | 
13 | # OUTPUT INSTRUCTIONS
14 | 
15 | - Create the output using the formatting above.
16 | - Put the examples under each item, not in a separate section.
17 | - For each example, give text from the KING JAMES BIBLE, and then text from the given text, in order to show the contrast.
18 | - You only output human-readable Markdown.
19 | - Do not output warnings or notes —- just the requested sections.
20 | 
21 | # INPUT:
22 | 
23 | INPUT:
24 | 
```

--------------------------------------------------------------------------------
/assistants/knowledge-transfer-assistant/assistant/ui_tabs/common.py:
--------------------------------------------------------------------------------

```python
 1 | """
 2 | Common utilities for inspector modules.
 3 | """
 4 | 
 5 | from assistant.data import RequestPriority, RequestStatus
 6 | 
 7 | 
 8 | def get_status_emoji(status: RequestStatus) -> str:
 9 |     """Get emoji representation for request status."""
10 |     status_emojis = {
11 |         RequestStatus.NEW: "🆕",  # New
12 |         RequestStatus.ACKNOWLEDGED: "👀",  # Acknowledged/Seen
13 |         RequestStatus.IN_PROGRESS: "⚡",  # In Progress
14 |         RequestStatus.RESOLVED: "✅",  # Resolved/Complete
15 |         RequestStatus.DEFERRED: "⏸️",  # Deferred/Paused
16 |     }
17 |     return status_emojis.get(status, "❓")  # Unknown status fallback
18 | 
19 | 
20 | def get_priority_emoji(priority: RequestPriority) -> str:
21 |     """Get emoji representation for request priority."""
22 |     priority_emojis = {
23 |         RequestPriority.LOW: "🔹",  # Low priority - blue diamond
24 |         RequestPriority.MEDIUM: "🔶",  # Medium priority - orange diamond
25 |         RequestPriority.HIGH: "🔴",  # High priority - red circle
26 |         RequestPriority.CRITICAL: "⚠️",  # Critical priority - warning sign
27 |     }
28 |     return priority_emojis.get(priority, "🔹")  # Default to low priority emoji
29 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-filesystem-edit/mcp_server_filesystem_edit/app_handling/miktex.py:
--------------------------------------------------------------------------------

```python
 1 | # Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import subprocess
 4 | from pathlib import Path
 5 | 
 6 | 
 7 | def compile_tex_to_pdf(tex_file: Path) -> tuple[bool, str]:
 8 |     # Get the last modified time of the pdf file, if it exists
 9 |     pdf_file = tex_file.with_suffix(".pdf")
10 |     if pdf_file.exists():
11 |         last_modified_time = pdf_file.stat().st_mtime
12 |     else:
13 |         last_modified_time = 0
14 | 
15 |     output_dir = tex_file.parent
16 | 
17 |     cmd = f'pdflatex -interaction=nonstopmode -output-directory="{output_dir}" "{str(tex_file)}"'
18 | 
19 |     try:
20 |         process = subprocess.run(
21 |             cmd,
22 |             capture_output=True,
23 |             text=True,
24 |             encoding="utf-8",
25 |             check=False,
26 |         )
27 |         output = process.stdout + "\n" + process.stderr
28 | 
29 |         # Check if the pdf changed (by comparing the last modified time)
30 |         if pdf_file.exists() and pdf_file.stat().st_mtime > last_modified_time:
31 |             return True, output
32 |         else:
33 |             return False, output
34 |     except Exception as e:
35 |         output = f"Error running pdflatex: {str(e)}"
36 |         return False, output
37 | 
```

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

```markdown
 1 | # IDENTITY
 2 | 
 3 | You are an expert at reading internet comments and characterizing their sentiments, praise, and criticisms of the content they're about.
 4 | 
 5 | # GOAL
 6 | 
 7 | Produce an unbiased and accurate assessment of the comments for a given piece of content.
 8 | 
 9 | # STEPS
10 | 
11 | Read all the comments. For each comment, determine if it's positive, negative, or neutral. If it's positive, record the sentiment and the reason for the sentiment. If it's negative, record the sentiment and the reason for the sentiment. If it's neutral, record the sentiment and the reason for the sentiment.
12 | 
13 | # OUTPUT
14 | 
15 | In a section called COMMENTS SENTIMENT, give your assessment of how the commenters liked the content on a scale of HATED, DISLIKED, NEUTRAL, LIKED, LOVED. 
16 | 
17 | In a section called POSITIVES, give 5 bullets of the things that commenters liked about the content in 15-word sentences.
18 | 
19 | In a section called NEGATIVES, give 5 bullets of the things that commenters disliked about the content in 15-word sentences.
20 | 
21 | In a section called SUMMARY, give a 15-word general assessment of the content through the eyes of the commenters.
22 | 
23 | 
```

--------------------------------------------------------------------------------
/assistants/project-assistant/assistant/text_includes/welcome_message_generation.txt:
--------------------------------------------------------------------------------

```
 1 | Create a welcome message specific to this shared knowledge package. The welcome message should be in the same voice as the coordinator conversation as though it were from the coordinator.
 2 | 
 3 | - Be welcoming.
 4 | - Speak plainly. Use no filler words or unnecessary content.
 5 | - The welcome message should tell a person to read detailed information about the intended takeaways and the shared knowledge in knowledge brief in the side panel. Don't repeat detailed information in the welcome message. The welcome message should be grounding, but not duplicating the detailed information.
 6 | - Provide a top-level summary of what this shared knowledge is about (in a single sentence, a larger summary is included in the side panel)
 7 | - Provide a top-level summary of the intended takeaways (in a single sentence, they can read more details in the side panel).
 8 | - Let the user know what you can do for them and suggest how the user should continue the conversation with you.
 9 | - Your output format should be markdown. Do NOT include any other commentary. Do NOT include backticks. Do NOT surround your response with quotes.
10 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-memory-user-bio/mcp_server_memory_user_bio/start.py:
--------------------------------------------------------------------------------

```python
 1 | # Main entry point for the MCP Server
 2 | 
 3 | import argparse
 4 | 
 5 | from . import config
 6 | from .server import create_mcp_server
 7 | 
 8 | 
 9 | def main() -> None:
10 |     # Command-line arguments for transport and port
11 |     parse_args = argparse.ArgumentParser(description="Start the MCP server.")
12 |     parse_args.add_argument(
13 |         "--transport",
14 |         default="stdio",
15 |         choices=["stdio", "sse"],
16 |         help="Transport protocol to use ('stdio' or 'sse'). Default is 'stdio'.",
17 |     )
18 |     parse_args.add_argument("--port", type=int, default=34737, help="Port to use for SSE (default is 34737).")
19 |     parse_args.add_argument(
20 |         "--enable-client-roots",
21 |         action="store_true",
22 |         default=config.settings.enable_client_roots,
23 |         help="Enable querying of client Roots, which are only supported by some MCP clients.",
24 |     )
25 |     args = parse_args.parse_args()
26 | 
27 |     config.settings.enable_client_roots = args.enable_client_roots
28 | 
29 |     mcp = create_mcp_server()
30 |     if args.transport == "sse":
31 |         mcp.settings.port = args.port
32 | 
33 |     mcp.run(transport=args.transport)
34 | 
35 | 
36 | if __name__ == "__main__":
37 |     main()
38 | 
```

--------------------------------------------------------------------------------
/tools/makefiles/docker-assistant.mk:
--------------------------------------------------------------------------------

```
 1 | repo_root = $(shell git rev-parse --show-toplevel)
 2 | mkfile_dir = $(patsubst %/,%,$(dir $(realpath $(lastword $(MAKEFILE_LIST)))))
 3 | 
 4 | # the directory containing the assistant's Makefile is expected to be
 5 | # the directory of the assistant
 6 | invoking_makefile_directory = $(notdir $(patsubst %/,%,$(dir $(realpath $(firstword $(MAKEFILE_LIST))))))
 7 | 
 8 | ASSISTANT_APP ?= assistant:app
 9 | ASSISTANT_PACKAGE ?= $(invoking_makefile_directory)
10 | ASSISTANT_IMAGE_NAME ?= $(subst -,_,$(invoking_makefile_directory))
11 | 
12 | DOCKER_PATH = $(repo_root)
13 | DOCKER_FILE = $(repo_root)/tools/docker/Dockerfile.assistant
14 | DOCKER_BUILD_ARGS = app=$(ASSISTANT_APP) package=$(ASSISTANT_PACKAGE)
15 | DOCKER_IMAGE_NAME = $(ASSISTANT_IMAGE_NAME)
16 | 
17 | AZURE_WEBSITE_NAME ?= $(ASSISTANT_PACKAGE)-service
18 | 
19 | include $(mkfile_dir)/docker.mk
20 | 
21 | 
22 | ASSISTANT__WORKBENCH_SERVICE_URL ?= http://host.docker.internal:3000
23 | 
24 | docker-run-local: docker-build
25 | 	docker run --rm -it --add-host=host.docker.internal:host-gateway --env assistant__workbench_service_url=$(ASSISTANT__WORKBENCH_SERVICE_URL) $(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)
26 | 
27 | 
28 | .PHONY: start
29 | start:
30 | 	uv run start-assistant
31 | 
```

--------------------------------------------------------------------------------
/libraries/python/assistant-extensions/assistant_extensions/chat_context_toolkit/_config.py:
--------------------------------------------------------------------------------

```python
 1 | from typing import Annotated
 2 | 
 3 | from pydantic import BaseModel, Field
 4 | 
 5 | 
 6 | class ChatContextConfigModel(BaseModel):
 7 |     """
 8 |     Configuration model for chat context toolkit settings. This model is provided as a convenience for assistants
 9 |     that want to use the chat context toolkit features, and provide configuration for users to edit.
10 |     Assistants can leverage this model by adding a field of this type to their configuration model.
11 | 
12 |     ex:
13 |     ```python
14 |     class MyAssistantConfig(BaseModel):
15 |         chat_context: ChatContextConfigModel = ChatContextConfigModel()
16 |     ```
17 |     """
18 | 
19 |     high_priority_token_count: Annotated[
20 |         int,
21 |         Field(
22 |             title="High Priority Token Count",
23 |             description="The number of tokens to consider high priority when abbreviating message history.",
24 |         ),
25 |     ] = 30_000
26 | 
27 |     archive_token_threshold: Annotated[
28 |         int,
29 |         Field(
30 |             title="Token threshold for conversation archiving",
31 |             description="The number of tokens to include in archive chunks when archiving the conversation history.",
32 |         ),
33 |     ] = 20_000
34 | 
```

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

```markdown
 1 | # IDENTITY
 2 | 
 3 | You are an advanced AI with a 419 IQ that excels at extracting all of the questions asked by an interviewer within a conversation.
 4 | 
 5 | # GOAL
 6 | 
 7 | - Extract all the questions asked by an interviewer in the input. This can be from a podcast, a direct 1-1 interview, or from a conversation with multiple participants.
 8 | 
 9 | - Ensure you get them word for word, because that matters.
10 | 
11 | # STEPS
12 | 
13 | - Deeply study the content and analyze the flow of the conversation so that you can see the interplay between the various people. This will help you determine who the interviewer is and who is being interviewed.
14 | 
15 | - Extract all the questions asked by the interviewer.
16 | 
17 | # OUTPUT
18 | 
19 | - In a section called QUESTIONS, list all questions by the interviewer listed as a series of bullet points.
20 | 
21 | # OUTPUT INSTRUCTIONS
22 | 
23 | - Only output the list of questions asked by the interviewer. Don't add analysis or commentary or anything else. Just the questions.
24 | 
25 | - Output the list in a simple bulleted Markdown list. No formatting—just the list of questions.
26 | 
27 | - Don't miss any questions. Do your analysis 1124 times to make sure you got them all.
28 | 
```

--------------------------------------------------------------------------------
/workbench-app/tsconfig.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |     "compilerOptions": {
 3 |         "noImplicitAny": true,
 4 |         "strictNullChecks": true,
 5 |         "strictFunctionTypes": true,
 6 |         "strictBindCallApply": true,
 7 |         "strictPropertyInitialization": true,
 8 |         "noImplicitThis": true,
 9 |         "noUnusedLocals": true,
10 |         "noUnusedParameters": true,
11 |         "noImplicitReturns": true,
12 |         "noFallthroughCasesInSwitch": true,
13 |         "inlineSourceMap": true,
14 |         "inlineSources": true,
15 |         "removeComments": true,
16 |         "downlevelIteration": true,
17 |         "target": "ES6",
18 |         "useDefineForClassFields": true,
19 |         "lib": ["DOM", "DOM.Iterable", "ESNext", "ES6", "WebWorker"],
20 |         "allowJs": false,
21 |         "skipLibCheck": true,
22 |         "esModuleInterop": false,
23 |         "allowSyntheticDefaultImports": true,
24 |         "strict": true,
25 |         "forceConsistentCasingInFileNames": true,
26 |         "module": "ESNext",
27 |         "moduleResolution": "Node",
28 |         "resolveJsonModule": true,
29 |         "isolatedModules": true,
30 |         "noEmit": true,
31 |         "jsx": "react-jsx",
32 |         "composite": true
33 |     },
34 |     "include": ["src", "vite.config.ts"]
35 | }
36 | 
```

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

```python
 1 | from typing import Any, Awaitable, Callable, Concatenate, ParamSpec
 2 | 
 3 | P = ParamSpec("P")
 4 | RunActionType = Callable[Concatenate[str, P], Awaitable[Any]]
 5 | 
 6 | 
 7 | # Implementation.
 8 | async def run_action(designation: str, *args: Any, **kwargs: Any) -> Any:
 9 |     return designation, args, kwargs
10 | 
11 | 
12 | # Assignment.
13 | run_action_var: RunActionType = run_action
14 | 
15 | 
16 | async def test_paramspec():
17 |     result = await run_action_var(
18 |         "test_designation",
19 |         1,
20 |         2,
21 |         3,
22 |         key1="value1",
23 |         key2=42,
24 |     )
25 |     assert result == ("test_designation", (1, 2, 3), {"key1": "value1", "key2": 42})
26 | 
27 | 
28 | async def test_paramspec_with_dictionary():
29 |     result = await run_action_var(
30 |         "test_designation",
31 |         1,
32 |         2,
33 |         3,
34 |         **{"key1": "value1", "key2": 42},
35 |     )
36 |     assert result == ("test_designation", (1, 2, 3), {"key1": "value1", "key2": 42})
37 | 
38 | 
39 | async def test_paramspec_with_no_args():
40 |     d: dict[str, Any] = {"key1": "value1", "key2": 42}
41 |     result = await run_action_var(
42 |         "test_designation",
43 |         **d,
44 |     )
45 |     assert result == ("test_designation", (), {"key1": "value1", "key2": 42})
46 | 
```

--------------------------------------------------------------------------------
/libraries/python/chat-context-toolkit/chat_context_toolkit/history/_decorators.py:
--------------------------------------------------------------------------------

```python
 1 | import datetime
 2 | import logging
 3 | from functools import wraps
 4 | from inspect import iscoroutinefunction
 5 | from time import perf_counter
 6 | 
 7 | timing_logger = logging.getLogger("history.timing")
 8 | 
 9 | 
10 | def log_timing(func):
11 |     if iscoroutinefunction(func):
12 |         # If the function is a coroutine, we need to use an async wrapper
13 |         @wraps(func)
14 |         async def async_wrapper(*args, **kwargs):
15 |             start_time = perf_counter()
16 |             result = await func(*args, **kwargs)
17 |             end_time = perf_counter()
18 |             timing_logger.info(
19 |                 "function timing; name: %s, duration: %s",
20 |                 func.__name__,
21 |                 datetime.timedelta(seconds=end_time - start_time),
22 |             )
23 |             return result
24 | 
25 |         return async_wrapper
26 | 
27 |     @wraps(func)
28 |     def wrapper(*args, **kwargs):
29 |         start_time = perf_counter()
30 |         result = func(*args, **kwargs)
31 |         end_time = perf_counter()
32 |         timing_logger.info(
33 |             "function timing; name: %s, duration: %s", func.__name__, datetime.timedelta(seconds=end_time - start_time)
34 |         )
35 |         return result
36 | 
37 |     return wrapper
38 | 
```

--------------------------------------------------------------------------------
/.github/policheck.yml:
--------------------------------------------------------------------------------

```yaml
 1 | name: $(Date:yyMMdd)$(Rev:.r)
 2 | 
 3 | trigger: none
 4 | pr: none
 5 | 
 6 | pool:
 7 |   vmImage: 'windows-latest'
 8 | 
 9 | stages:
10 | - stage: Stage1
11 |   displayName: All steps
12 |   jobs:
13 |   - job: Policheck
14 |     displayName: Run policheck
15 | 
16 |     workspace:
17 |       clean: all
18 | 
19 |     steps:
20 | 
21 |     - task: PoliCheck@2
22 |       displayName: 'Run PoliCheck'
23 |       inputs:
24 |         targetType: F
25 |         targetArgument: '$(Build.SourcesDirectory)'
26 |         termTypeT: 0029a9
27 |         toolVersion: Latest
28 |         optionsPE: '1|2|3|4'
29 |         # optionsUEPATH: '$(Build.SourcesDirectory)\.github\policheck-exclusions.xml'
30 |         # optionsRulesDBPath: '$(Build.SourcesDirectory)\.github\policheck-exclusions.mdb'
31 |     - task: PostAnalysis@2
32 |       displayName: 'Policheck Break Build'
33 |       inputs:
34 |         GdnBreakAllTools: false
35 |         GdnBreakGdnToolPoliCheck: true
36 |         GdnBreakGdnToolPoliCheckSeverity: Warning 
37 | 
38 |     - task: PublishSecurityAnalysisLogs@3
39 |       displayName: 'Save PoliCheck logs'
40 |       inputs:
41 |         ArtifactName: 'CodeAnalysisLogs'
42 |         ArtifactType: 'Container'
43 |         PublishProcessedResults: true
44 |         AllTools: true
45 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-vscode/src/utils/port.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import getPort from 'get-port';
 2 | import * as vscode from 'vscode';
 3 | 
 4 | export async function resolvePort(desiredPort: number): Promise<number> {
 5 |     // Try to get the desired port or the next available port
 6 |     const availablePort = await getPort({ port: desiredPort });
 7 | 
 8 |     // If the available port is not the same as the desired port, prompt the user
 9 |     if (availablePort !== desiredPort) {
10 |         const userInput = await vscode.window.showInputBox({
11 |             prompt: `Port ${desiredPort} is in use. Enter a new port or press Enter to use the available port (${availablePort}):`,
12 |             value: String(availablePort),
13 |             validateInput: (input) => {
14 |                 const num = Number(input);
15 |                 if (isNaN(num) || num < 1 || num > 65535) {
16 |                     return 'Please enter a valid port number (1-65535).';
17 |                 }
18 |                 return null;
19 |             },
20 |         });
21 |         if (userInput && userInput.trim().length > 0) {
22 |             const newPort = Number(userInput);
23 |             return resolvePort(newPort);
24 |         }
25 |         return availablePort;
26 |     }
27 |     return availablePort;
28 | }
29 | 
```

--------------------------------------------------------------------------------
/assistants/project-assistant/assistant/agentic/__init__.py:
--------------------------------------------------------------------------------

```python
 1 | from types import SimpleNamespace
 2 | 
 3 | from .act import act
 4 | from .coordinator_next_action import get_coordinator_next_action_suggestion
 5 | from .create_invitation import create_invitation
 6 | from .detect_audience_and_takeaways import detect_audience_and_takeaways
 7 | from .detect_coordinator_actions import detect_coordinator_actions
 8 | from .detect_information_request_needs import detect_information_request_needs
 9 | from .detect_knowledge_package_gaps import detect_knowledge_package_gaps
10 | from .focus import focus
11 | from .team_welcome import generate_team_welcome_message
12 | from .update_digest import update_digest
13 | 
14 | agentic = SimpleNamespace(
15 |     act=act,
16 |     create_invitation=create_invitation,
17 |     detect_audience_and_takeaways=detect_audience_and_takeaways,
18 |     detect_coordinator_actions=detect_coordinator_actions,
19 |     detect_information_request_needs=detect_information_request_needs,
20 |     detect_knowledge_package_gaps=detect_knowledge_package_gaps,
21 |     focus=focus,
22 |     generate_team_welcome_message=generate_team_welcome_message,
23 |     get_coordinator_next_action_suggestion=get_coordinator_next_action_suggestion,
24 |     update_digest=update_digest,
25 | )
26 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/components/Conversations/ContentRenderers/ContentRenderer.tsx:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import React from 'react';
 4 | import { CodeContentRenderer } from './CodeContentRenderer';
 5 | import { HtmlContentRenderer } from './HtmlContentRenderer';
 6 | import { JsonSchemaContentRenderer } from './JsonSchemaContentRenderer';
 7 | import { MarkdownContentRenderer } from './MarkdownContentRenderer';
 8 | 
 9 | interface ContentRenderProps {
10 |     content: string;
11 |     contentType?: string;
12 |     metadata?: Record<string, unknown>;
13 |     onSubmit?: (data: string) => Promise<void>;
14 | }
15 | 
16 | export const ContentRenderer: React.FC<ContentRenderProps> = (props) => {
17 |     const { content, contentType, metadata, onSubmit } = props;
18 | 
19 |     if (contentType === 'application/json') {
20 |         if (metadata?.json_schema) {
21 |             return <JsonSchemaContentRenderer content={content} metadata={metadata} onSubmit={onSubmit} />;
22 |         }
23 |         return <CodeContentRenderer content={content} language="json" />;
24 |     }
25 | 
26 |     if (content.includes('```html')) {
27 |         return <HtmlContentRenderer content={content} displayNonHtmlContent />;
28 |     }
29 | 
30 |     // Default to markdown
31 |     return <MarkdownContentRenderer content={content} />;
32 | };
33 | 
```

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

```markdown
 1 | # IDENTITY
 2 | 
 3 | You are an expert at looking at an input and extracting the most redeeming thing about them, even if they're mostly horrible.
 4 | 
 5 | # GOAL
 6 | 
 7 | - Produce the most redeeming thing about the thing given in input.
 8 | 
 9 | # EXAMPLE
10 | 
11 | If the body of work is all of Ted Kazcynski's writings, then the most redeeming thing him would be:
12 | 
13 | He really stuck to his convictions by living in a cabin in the woods.
14 | 
15 | END EXAMPLE
16 | 
17 | # STEPS
18 | 
19 | - Fully digest the input. 
20 | 
21 | - Determine if the input is a single text or a body of work.
22 | 
23 | - Based on which it is, parse the thing that's supposed to be parsed.
24 | 
25 | - Extract the most redeeming thing with the world from the parsed text into a single sentence.
26 | 
27 | # OUTPUT
28 | 
29 | - Output a single, 15-word sentence that perfectly articulates the most redeeming thing with the world as presented in the input.
30 | 
31 | # OUTPUT INSTRUCTIONS
32 | 
33 | - The sentence should be a single sentence that is 16 words or fewer, with no special formatting or anything else.
34 | 
35 | - Do not include any setup to the sentence, e.g., "The most redeeming thing…", etc. Just list the redeeming thing and nothing else.
36 | 
37 | - Do not ask questions or complain in any way about the task.
38 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/libs/useKeySequence.ts:
--------------------------------------------------------------------------------

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | import React from 'react';
 3 | 
 4 | export const useKeySequence = (sequence: string[], onKeySequenceComplete: () => void) => {
 5 |     const buffer = React.useRef<string[]>([]);
 6 | 
 7 |     const keySequence = React.useCallback(
 8 |         (event: KeyboardEvent) => {
 9 |             if (event.defaultPrevented) return;
10 | 
11 |             if (event.key === sequence[buffer.current.length]) {
12 |                 buffer.current = [...buffer.current, event.key];
13 |             } else {
14 |                 buffer.current = [];
15 |             }
16 | 
17 |             if (buffer.current.length === sequence.length) {
18 |                 const bufferString = buffer.current.toString();
19 |                 const sequenceString = sequence.toString();
20 | 
21 |                 if (sequenceString === bufferString) {
22 |                     buffer.current = [];
23 |                     onKeySequenceComplete();
24 |                 }
25 |             }
26 |         },
27 |         [onKeySequenceComplete, sequence],
28 |     );
29 | 
30 |     React.useEffect(() => {
31 |         document.addEventListener('keydown', keySequence);
32 |         return () => document.removeEventListener('keydown', keySequence);
33 |     }, [keySequence]);
34 | };
35 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-filesystem-edit/data/transcripts/transcript_research_simple.md:
--------------------------------------------------------------------------------

```markdown
 1 | ### [Monday, March 3 3:01 PM] User:
 2 | 
 3 | notice: User created the conversation
 4 | 
 5 | ----------------------------------
 6 | 
 7 | 
 8 | ### [Monday, March 3 3:01 PM] User:
 9 | 
10 | notice: Codespace Assistant 2-26 added to conversation
11 | 
12 | ----------------------------------
13 | 
14 | 
15 | ### [Monday, March 3 3:01 PM] Assistant:
16 | 
17 | Hello! I am an assistant that can help you with coding projects within the context of the Semantic Workbench.Let's get started by having a conversation about your project. You can ask me questions, request code snippets, or ask for help with debugging. I can also help you with markdown, code snippets, and other types of content. You can also attach .docx, text, and image files to your chat messages to help me better understand the context of our conversation. Where would you like to start?
18 | 
19 | ----------------------------------
20 | 
21 | 
22 | ### [Monday, March 3 3:05 PM] User:
23 | 
24 | Hello! I am writing a research paper in LaTeX on the history of asteroids.
25 | 
26 | ----------------------------------
27 | 
28 | 
29 | ### [Monday, March 3 3:06 PM] Assistant:
30 | 
31 | That sounds great! What specific topic or question do you need help with regarding your research paper in LaTeX?
32 | 
33 | ----------------------------------
34 | 
```

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

```typescript
 1 | // Copyright (c) Microsoft. All rights reserved.
 2 | 
 3 | import { Button, MessageBar, MessageBarActions, MessageBarBody, MessageBarTitle } from '@fluentui/react-components';
 4 | import { DismissRegular } from '@fluentui/react-icons';
 5 | import React from 'react';
 6 | import { Utility } from '../../libs/Utility';
 7 | 
 8 | interface ErrorMessageBarProps {
 9 |     title?: string;
10 |     error?: Record<string, any> | string;
11 |     onDismiss?: () => void;
12 | }
13 | 
14 | export const ErrorMessageBar: React.FC<ErrorMessageBarProps> = (props) => {
15 |     const { title, error, onDismiss } = props;
16 | 
17 |     let message = Utility.errorToMessageString(error);
18 |     if (!title && !message) {
19 |         message = 'An unknown error occurred';
20 |     }
21 | 
22 |     return (
23 |         <MessageBar intent="error" layout="multiline">
24 |             <MessageBarBody>
25 |                 <MessageBarTitle>{title ?? 'Error'}:</MessageBarTitle>
26 |                 {message}
27 |             </MessageBarBody>
28 |             {onDismiss && (
29 |                 <MessageBarActions
30 |                     containerAction={<Button appearance="transparent" icon={<DismissRegular />} onClick={onDismiss} />}
31 |                 />
32 |             )}
33 |         </MessageBar>
34 |     );
35 | };
36 | 
```

--------------------------------------------------------------------------------
/mcp-servers/mcp-server-filesystem-edit/pyproject.toml:
--------------------------------------------------------------------------------

```toml
 1 | [project]
 2 | name = "mcp-server-filesystem-edit"
 3 | version = "0.1.0"
 4 | description = "Allows for robust editing of files like Markdown and LaTeX"
 5 | authors = [{ name = "Semantic Workbench Team" }]
 6 | readme = "README.md"
 7 | requires-python = ">=3.11,<3.13"
 8 | dependencies = [
 9 |     "mcp-extensions[llm,openai]>=0.1.0",
10 |     "pendulum>=3.0,<4.0",
11 |     "pydantic>=2.10,<3.0",
12 |     "python-dotenv>=1.0.1,<2.0",
13 |     "pyyaml>=6.0,<7.0",
14 |     "pywin32==308; platform_system == 'Windows'",
15 |     "rich>=13.9,<14.0",
16 |     "tiktoken>=0.9,<1.0",
17 | ]
18 | 
19 | [dependency-groups]
20 | dev = [
21 |     "pyinstaller>=6.11",
22 |     "pyright>=1.1.389",
23 |     "pytest>=8.0",
24 |     "pytest-asyncio>=0.25",
25 | ]
26 | 
27 | [tool.uv]
28 | package = true
29 | 
30 | [tool.uv.sources]
31 | mcp-extensions = { path = "../../libraries/python/mcp-extensions", editable = true }
32 | 
33 | [project.scripts]
34 | mcp-server-filesystem-edit = "mcp_server_filesystem_edit.start:main"
35 | 
36 | [build-system]
37 | requires = ["hatchling"]
38 | build-backend = "hatchling.build"
39 | 
40 | [tool.pytest.ini_options]
41 | addopts = "-vv"
42 | log_cli = true
43 | log_cli_level = "WARNING"
44 | log_cli_format = "%(asctime)s | %(levelname)-7s | %(name)s | %(message)s"
45 | asyncio_mode = "auto"
46 | asyncio_default_fixture_loop_scope = "function"
47 | 
```

--------------------------------------------------------------------------------
/workbench-app/src/index.css:
--------------------------------------------------------------------------------

```css
 1 | :root {
 2 |     text-rendering: optimizeLegibility;
 3 |     -webkit-font-smoothing: antialiased;
 4 |     -moz-osx-font-smoothing: grayscale;
 5 |     -webkit-text-size-adjust: 100%;
 6 | }
 7 | 
 8 | body {
 9 |     margin: 0;
10 |     overscroll-behavior: none;
11 |     background-size: cover;
12 |     background-repeat: no-repeat;
13 |     background-position: center;
14 | }
15 | 
16 | html,
17 | body,
18 | #root,
19 | #root > .app-container {
20 |     height: 100%;
21 |     background-color: rgba(255, 255, 255, 0.3);
22 | }
23 | 
24 | ::-webkit-scrollbar {
25 |     width: 1em;
26 | }
27 | ::-webkit-scrollbar-track {
28 |     -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.2);
29 | }
30 | ::-webkit-scrollbar-thumb {
31 |     background-color: rgba(0, 0, 0, 0.1);
32 |     outline: 1px solid rgba(0, 0, 0, 0.1);
33 |     border-radius: 2px;
34 | }
35 | 
36 | /* Themed scroll bars - make sure to update the colors to match your theme brands */
37 | .brand-scrollbar-light::-webkit-scrollbar-thumb {
38 |     background-color: '#1D6BB9';
39 | }
40 | 
41 | .brand-scrollbar-orange::-webkit-scrollbar-thumb {
42 |     background-color: '#C02D09';
43 | }
44 | 
45 | .brand-scrollbar-purple::-webkit-scrollbar-thumb {
46 |     background-color: '#AB12D9';
47 | }
48 | 
49 | .user-avatar .fui-Avatar {
50 |     margin-right: unset;
51 | }
52 | 
53 | #root .fui-Card {
54 |     overflow: visible;
55 |     margin: 2px 0;
56 | }
57 | 
```

--------------------------------------------------------------------------------
/tools/run-app.sh:
--------------------------------------------------------------------------------

```bash
 1 | #!/usr/bin/env bash
 2 | 
 3 | set -e
 4 | ROOT="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && cd .. && pwd)"
 5 | cd $ROOT
 6 | # ================================================================
 7 | 
 8 | cd workbench-app
 9 | 
10 | # Check node version, it must be major version 20 (any minor), otherwise show an error and exit
11 | NODE_VERSION=$(node -v)
12 | if [[ ! $NODE_VERSION =~ ^v(1[8-9]|[2-9][0-9]).* ]]; then
13 |     echo "Node version is $NODE_VERSION, expected 18.x.x or higher."
14 | 
15 |   # Attempt to source nvm
16 |   if [ -s "$NVM_DIR/nvm.sh" ]; then
17 |     . "$NVM_DIR/nvm.sh"
18 |   elif [ -s "$HOME/.nvm/nvm.sh" ]; then
19 |     export NVM_DIR="$HOME/.nvm"
20 |     . "$NVM_DIR/nvm.sh"
21 |   else
22 |     echo "nvm not found. Please install Node 18 or higher manually."
23 |     echo "See also README.md for instructions."
24 |     exit 1
25 |   fi
26 | 
27 |   echo "Installing latest LTS Node version via nvm..."
28 |   nvm install --lts
29 |   nvm use --lts
30 | 
31 |   NODE_VERSION=$(node -v)
32 |   if [[ ! $NODE_VERSION =~ ^v(1[8-9]|[2-9][0-9]).* ]]; then
33 |     echo "Failed to switch to Node 18 or higher via nvm. You have $NODE_VERSION."
34 |     exit 1
35 |   fi
36 | fi
37 | 
38 | echo "Starting the Semantic Workbench app, open https://localhost:4000 in your browser when ready"
39 | 
40 | pnpm install
41 | pnpm start
42 | 
```

--------------------------------------------------------------------------------
/assistants/project-assistant/assistant/tools/conversation_preferences.py:
--------------------------------------------------------------------------------

```python
 1 | """
 2 | Project setup tools for Knowledge Transfer Assistant.
 3 | 
 4 | Tools for configuring knowledge shares.
 5 | """
 6 | 
 7 | from assistant.domain.conversation_preferences_manager import ConversationPreferencesManager
 8 | 
 9 | from .base import ToolsBase
10 | 
11 | 
12 | class ConversationPreferencesTools(ToolsBase):
13 |     async def update_preferred_communication_style(self, style: str) -> str:
14 |         """
15 |         Update the preferred communication style for the conversation.
16 | 
17 |         Args:
18 |             style: The preferred communication style to set. This should include all of the users instructions about how the assistant should communicate with the user. It is not just a single style, but a comprehensive set of instructions.
19 | 
20 |         Returns:
21 |             A message indicating success or failure
22 |         """  # noqa: E501
23 |         try:
24 |             await ConversationPreferencesManager.update_preferred_communication_style(
25 |                 context=self.context,
26 |                 preferred_communication_style=style,
27 |             )
28 |             return "Preferred conversation style updated successfully"
29 |         except Exception as e:
30 |             return f"Failed to update preferred conversation style: {e!s}"
31 | 
```

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

```markdown
 1 | # IDENTITY and PURPOSE
 2 | 
 3 | You take a book name as an input and output a full summary of the book's most important content using the steps and instructions below.
 4 | 
 5 | Take a step back and think step-by-step about how to achieve the best possible results by following the steps below.
 6 | 
 7 | # STEPS
 8 | 
 9 | - Scour your memory for everything you know about this book. 
10 | 
11 | - Extract 50 to 100 of the most surprising, insightful, and/or interesting ideas from the input in a section called IDEAS:. If there are less than 50 then collect all of them. Make sure you extract at least 20.
12 | 
13 | # OUTPUT INSTRUCTIONS
14 | 
15 | - Only output Markdown.
16 | 
17 | - Order the ideas by the most interesting, surprising, and insightful first.
18 | 
19 | - Extract at least 50 IDEAS from the content.
20 | 
21 | - Extract up to 100 IDEAS.
22 | 
23 | - Limit each bullet to a maximum of 20 words.
24 | 
25 | - Do not give warnings or notes; only output the requested sections.
26 | 
27 | - You use bulleted lists for output, not numbered lists.
28 | 
29 | - Do not repeat IDEAS.
30 | 
31 | - Vary the wording of the IDEAS.
32 | 
33 | - Don't repeat the same IDEAS over and over, even if you're using different wording.
34 | 
35 | - Ensure you follow ALL these instructions when creating your output.
36 | 
37 | # INPUT
38 | 
39 | INPUT:
40 | 
```

--------------------------------------------------------------------------------
/assistants/guided-conversation-assistant/assistant/agents/guided_conversation/config.py:
--------------------------------------------------------------------------------

```python
 1 | from typing import Annotated
 2 | 
 3 | from pydantic import BaseModel, Field
 4 | from semantic_workbench_assistant.config import UISchema
 5 | 
 6 | from .definition import GuidedConversationDefinition
 7 | from .definitions.er_triage import er_triage
 8 | from .definitions.interview import interview
 9 | from .definitions.patient_intake import patient_intake
10 | from .definitions.poem_feedback import poem_feedback
11 | 
12 | #
13 | # region Models
14 | #
15 | 
16 | 
17 | class GuidedConversationAgentConfigModel(BaseModel):
18 |     definition: Annotated[
19 |         GuidedConversationDefinition,
20 |         Field(
21 |             title="Definition",
22 |             description="The definition of the guided conversation agent.",
23 |         ),
24 |         UISchema(
25 |             schema={
26 |                 "ui:options": {
27 |                     "configurations": {
28 |                         "Poem Feedback": poem_feedback.model_dump(mode="json"),
29 |                         "Interview": interview.model_dump(mode="json"),
30 |                         "Patient Intake": patient_intake.model_dump(mode="json"),
31 |                         "ER Triage": er_triage.model_dump(mode="json"),
32 |                     },
33 |                 },
34 |             },
35 |         ),
36 |     ] = poem_feedback
37 | 
38 | 
39 | # endregion
40 | 
```

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

```markdown
 1 | IDENTITY and GOAL:
 2 | 
 3 | You are an ultra-wise and brilliant classifier and judge of content. You create a markdown callout based on the provided text.
 4 | 
 5 | Take a deep breath and think step by step about how to perform the following to get the best outcome.
 6 | 
 7 | STEPS:
 8 | 
 9 | 1. You determine which callout type is going to best identify the content you are working with.
10 | 
11 | CALLOUT OPTIONS TO SELECT FROM (Select one that applies best):
12 | 
13 | > [!NOTE]
14 | > This is a note callout for general information.
15 | 
16 | > [!TIP]
17 | > Here's a helpful tip for users.
18 | 
19 | > [!IMPORTANT]
20 | > This information is crucial for success.
21 | 
22 | > [!WARNING]
23 | > Be cautious! This action has potential risks.
24 | 
25 | > [!CAUTION]
26 | > This action may have negative consequences.
27 | 
28 | END OF CALLOUT OPTIONS
29 | 
30 | 2. Take the text I gave you and place it in the appropriate callout format.
31 | 
32 | OUTPUT:
33 | 
34 | The output should look like the following:
35 | 
36 | ```md
37 | > [!CHOSEN CALLOUT]
38 | > The text I gave you goes here.
39 | ```
40 | 
41 | OUTPUT FORMAT:
42 | 
43 | ```md
44 | > [!CHOSEN CALLOUT]
45 | > The text I gave you goes here.
46 | ```
47 | 
48 | OUTPUT INSTRUCTIONS
49 | 
50 | - ONLY generate the chosen callout
51 | 
52 | - ONLY OUTPUT THE MARKDOWN CALLOUT ABOVE.
53 | 
54 | - Do not output the ```md container. Just the markdown itself.
55 | 
56 | INPUT:
57 | 
```

--------------------------------------------------------------------------------
/workbench-app/Dockerfile:
--------------------------------------------------------------------------------

```dockerfile
 1 | ARG VITE_SEMANTIC_WORKBENCH_AUTHORITY
 2 | ARG VITE_SEMANTIC_WORKBENCH_CLIENT_ID
 3 | 
 4 | # Stage 1: Build the React application
 5 | FROM node:18-alpine AS build
 6 | WORKDIR /app
 7 | 
 8 | ARG VITE_SEMANTIC_WORKBENCH_AUTHORITY
 9 | ARG VITE_SEMANTIC_WORKBENCH_CLIENT_ID
10 | 
11 | # Install pnpm
12 | RUN npm install -g pnpm
13 | 
14 | # Copy package.json and pnpm-lock.yaml
15 | COPY package.json pnpm-lock.yaml ./
16 | 
17 | # Install dependencies
18 | RUN pnpm install
19 | 
20 | # Copy the rest of the application code
21 | COPY . .
22 | 
23 | ENV VITE_SEMANTIC_WORKBENCH_AUTHORITY=${VITE_SEMANTIC_WORKBENCH_AUTHORITY}
24 | ENV VITE_SEMANTIC_WORKBENCH_CLIENT_ID=${VITE_SEMANTIC_WORKBENCH_CLIENT_ID}
25 | 
26 | # Build the application
27 | RUN NODE_OPTIONS=--max-old-space-size=4096 pnpm run build
28 | 
29 | # Stage 2: Serve the app with Nginx
30 | FROM nginx:alpine
31 | RUN apk add --no-cache gettext
32 | WORKDIR /usr/share/nginx/html
33 | 
34 | # Remove default Nginx static files
35 | RUN rm -rf ./*
36 | 
37 | # Copy build artifacts from the previous stage
38 | COPY --from=build /app/build .
39 | 
40 | # Copy custom entrypoint script
41 | COPY docker-entrypoint.sh /usr/bin/
42 | RUN chmod +x /usr/bin/docker-entrypoint.sh
43 | 
44 | # Copy Nginx configuration
45 | COPY nginx.conf /etc/nginx/conf.d/default.conf
46 | 
47 | ENTRYPOINT ["docker-entrypoint.sh"]
48 | CMD ["nginx", "-g", "daemon off;"]
```

--------------------------------------------------------------------------------
/workbench-service/tests/test_migrations.py:
--------------------------------------------------------------------------------

```python
 1 | import pytest
 2 | import semantic_workbench_service
 3 | from alembic import command
 4 | from alembic.config import Config
 5 | from semantic_workbench_service import db
 6 | from semantic_workbench_service.config import DBSettings
 7 | 
 8 | 
 9 | @pytest.fixture
10 | async def bootstrapped_db_settings(db_settings: DBSettings) -> DBSettings:
11 |     async with db.create_engine(db_settings) as engine:
12 |         await db.bootstrap_db(engine, settings=db_settings)
13 | 
14 |     return db_settings
15 | 
16 | 
17 | @pytest.fixture
18 | def alembic_config(bootstrapped_db_settings: DBSettings, monkeypatch: pytest.MonkeyPatch) -> Config:
19 |     monkeypatch.setattr(semantic_workbench_service.settings, "db", bootstrapped_db_settings)
20 |     return Config(bootstrapped_db_settings.alembic_config_path)
21 | 
22 | 
23 | def test_migration_cycle(alembic_config: Config) -> None:
24 |     """Test that all migrations can downgrade and upgrade without error."""
25 | 
26 |     # check that there are no schema differences from head
27 |     command.check(alembic_config)
28 | 
29 |     # downgrade to base
30 |     command.downgrade(alembic_config, "base")
31 | 
32 |     # and upgrade back to head
33 |     command.upgrade(alembic_config, "head")
34 | 
35 |     # check that the current revision is head
36 |     command.check(
37 |         alembic_config,
38 |     )
39 | 
```

--------------------------------------------------------------------------------
/assistants/guided-conversation-assistant/pyproject.toml:
--------------------------------------------------------------------------------

```toml
 1 | [project]
 2 | name = "assistant"
 3 | version = "0.1.0"
 4 | description = "An assistant that will guide users through a conversation towards a specific goal."
 5 | authors = [{ name = "Semantic Workbench Team" }]
 6 | readme = "README.md"
 7 | requires-python = ">=3.11"
 8 | dependencies = [
 9 |     "deepmerge>=2.0",
10 |     "docx2txt>=0.8",
11 |     "html2docx>=1.6.0",
12 |     "markdown>=3.6",
13 |     "openai>=1.61.0",
14 |     "pdfplumber>=0.11.2",
15 |     "tiktoken>=0.8.0",
16 |     "semantic-workbench-assistant>=0.1.0",
17 |     "content-safety>=0.1.0",
18 |     "semantic-kernel>=1.11.0",
19 |     "guided-conversation>=0.1.0",
20 |     "openai-client>=0.1.0",
21 | ]
22 | 
23 | [tool.uv]
24 | package = true
25 | 
26 | [tool.uv.sources]
27 | semantic-workbench-assistant = { path = "../../libraries/python/semantic-workbench-assistant", editable = true }
28 | content-safety = { path = "../../libraries/python/content-safety/", editable = true }
29 | guided-conversation = { path = "../../libraries/python/guided-conversation", editable = true }
30 | openai-client = { path = "../../libraries/python/openai-client", editable = true }
31 | 
32 | [build-system]
33 | requires = ["hatchling"]
34 | build-backend = "hatchling.build"
35 | 
36 | [dependency-groups]
37 | dev = ["pyright>=1.1.389"]
38 | 
39 | [tool.pyright]
40 | exclude = ["**/.venv", "**/.data", "**/__pycache__"]
41 | 
```
Page 13/145FirstPrevNextLast