This is page 3 of 145. Use http://codebase.md/microsoft/semanticworkbench?lines=true&page={x} to view the full context.
# Directory Structure
```
├── .devcontainer
│   ├── .vscode
│   │   └── settings.json
│   ├── devcontainer.json
│   ├── OPTIMIZING_FOR_CODESPACES.md
│   ├── POST_SETUP_README.md
│   └── README.md
├── .dockerignore
├── .gitattributes
├── .github
│   ├── policheck.yml
│   └── workflows
│       ├── assistants-codespace-assistant.yml
│       ├── assistants-document-assistant.yml
│       ├── assistants-explorer-assistant.yml
│       ├── assistants-guided-conversation-assistant.yml
│       ├── assistants-knowledge-transfer-assistant.yml
│       ├── assistants-navigator-assistant.yml
│       ├── assistants-project-assistant.yml
│       ├── assistants-prospector-assistant.yml
│       ├── assistants-skill-assistant.yml
│       ├── libraries.yml
│       ├── mcp-server-giphy.yml
│       ├── mcp-server-memory-filesystem-edit.yml
│       ├── mcp-server-memory-user-bio.yml
│       ├── mcp-server-memory-whiteboard.yml
│       ├── mcp-server-open-deep-research-clone.yml
│       ├── mcp-server-web-research.yml
│       ├── workbench-app.yml
│       └── workbench-service.yml
├── .gitignore
├── .multi-root-tools
│   ├── Makefile
│   └── README.md
├── .vscode
│   ├── extensions.json
│   ├── launch.json
│   └── settings.json
├── ai_context
│   └── generated
│       ├── ASPIRE_ORCHESTRATOR.md
│       ├── ASSISTANT_CODESPACE.md
│       ├── ASSISTANT_DOCUMENT.md
│       ├── ASSISTANT_NAVIGATOR.md
│       ├── ASSISTANT_PROJECT.md
│       ├── ASSISTANT_PROSPECTOR.md
│       ├── ASSISTANTS_OTHER.md
│       ├── ASSISTANTS_OVERVIEW.md
│       ├── CONFIGURATION.md
│       ├── DOTNET_LIBRARIES.md
│       ├── EXAMPLES.md
│       ├── MCP_SERVERS.md
│       ├── PYTHON_LIBRARIES_AI_CLIENTS.md
│       ├── PYTHON_LIBRARIES_CORE.md
│       ├── PYTHON_LIBRARIES_EXTENSIONS.md
│       ├── PYTHON_LIBRARIES_SKILLS.md
│       ├── PYTHON_LIBRARIES_SPECIALIZED.md
│       ├── TOOLS.md
│       ├── WORKBENCH_FRONTEND.md
│       └── WORKBENCH_SERVICE.md
├── aspire-orchestrator
│   ├── .editorconfig
│   ├── Aspire.AppHost
│   │   ├── .gitignore
│   │   ├── appsettings.json
│   │   ├── Aspire.AppHost.csproj
│   │   ├── Program.cs
│   │   └── Properties
│   │       └── launchSettings.json
│   ├── Aspire.Extensions
│   │   ├── Aspire.Extensions.csproj
│   │   ├── Dashboard.cs
│   │   ├── DockerFileExtensions.cs
│   │   ├── PathNormalizer.cs
│   │   ├── UvAppHostingExtensions.cs
│   │   ├── UvAppResource.cs
│   │   ├── VirtualEnvironment.cs
│   │   └── WorkbenchServiceHostingExtensions.cs
│   ├── Aspire.ServiceDefaults
│   │   ├── Aspire.ServiceDefaults.csproj
│   │   └── Extensions.cs
│   ├── README.md
│   ├── run.sh
│   ├── SemanticWorkbench.Aspire.sln
│   └── SemanticWorkbench.Aspire.sln.DotSettings
├── assistants
│   ├── codespace-assistant
│   │   ├── .claude
│   │   │   └── settings.local.json
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── extensions.json
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── assets
│   │   │   │   ├── icon_context_transfer.svg
│   │   │   │   └── icon.svg
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── helpers.py
│   │   │   ├── response
│   │   │   │   ├── __init__.py
│   │   │   │   ├── completion_handler.py
│   │   │   │   ├── models.py
│   │   │   │   ├── request_builder.py
│   │   │   │   ├── response.py
│   │   │   │   ├── step_handler.py
│   │   │   │   └── utils
│   │   │   │       ├── __init__.py
│   │   │   │       ├── abbreviations.py
│   │   │   │       ├── formatting_utils.py
│   │   │   │       ├── message_utils.py
│   │   │   │       └── openai_utils.py
│   │   │   ├── text_includes
│   │   │   │   ├── card_content_context_transfer.md
│   │   │   │   ├── card_content.md
│   │   │   │   ├── codespace_assistant_info.md
│   │   │   │   ├── context_transfer_assistant_info.md
│   │   │   │   ├── guardrails_prompt.txt
│   │   │   │   ├── guidance_prompt_context_transfer.txt
│   │   │   │   ├── guidance_prompt.txt
│   │   │   │   ├── instruction_prompt_context_transfer.txt
│   │   │   │   └── instruction_prompt.txt
│   │   │   └── whiteboard
│   │   │       ├── __init__.py
│   │   │       ├── _inspector.py
│   │   │       └── _whiteboard.py
│   │   ├── assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── document-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── assets
│   │   │   │   └── icon.svg
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── context_management
│   │   │   │   ├── __init__.py
│   │   │   │   └── inspector.py
│   │   │   ├── filesystem
│   │   │   │   ├── __init__.py
│   │   │   │   ├── _convert.py
│   │   │   │   ├── _file_sources.py
│   │   │   │   ├── _filesystem.py
│   │   │   │   ├── _inspector.py
│   │   │   │   ├── _model.py
│   │   │   │   ├── _prompts.py
│   │   │   │   └── _tasks.py
│   │   │   ├── guidance
│   │   │   │   ├── __init__.py
│   │   │   │   ├── dynamic_ui_inspector.py
│   │   │   │   ├── guidance_config.py
│   │   │   │   ├── guidance_prompts.py
│   │   │   │   └── README.md
│   │   │   ├── response
│   │   │   │   ├── __init__.py
│   │   │   │   ├── completion_handler.py
│   │   │   │   ├── models.py
│   │   │   │   ├── prompts.py
│   │   │   │   ├── responder.py
│   │   │   │   └── utils
│   │   │   │       ├── __init__.py
│   │   │   │       ├── formatting_utils.py
│   │   │   │       ├── message_utils.py
│   │   │   │       ├── openai_utils.py
│   │   │   │       ├── tokens_tiktoken.py
│   │   │   │       └── workbench_messages.py
│   │   │   ├── text_includes
│   │   │   │   └── document_assistant_info.md
│   │   │   ├── types.py
│   │   │   └── whiteboard
│   │   │       ├── __init__.py
│   │   │       ├── _inspector.py
│   │   │       └── _whiteboard.py
│   │   ├── assistant.code-workspace
│   │   ├── CLAUDE.md
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_convert.py
│   │   │   └── test_data
│   │   │       ├── blank_image.png
│   │   │       ├── Formatting Test.docx
│   │   │       ├── sample_data.csv
│   │   │       ├── sample_data.xlsx
│   │   │       ├── sample_page.html
│   │   │       ├── sample_presentation.pptx
│   │   │       └── simple_pdf.pdf
│   │   └── uv.lock
│   ├── explorer-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── helpers.py
│   │   │   ├── response
│   │   │   │   ├── __init__.py
│   │   │   │   ├── model.py
│   │   │   │   ├── response_anthropic.py
│   │   │   │   ├── response_openai.py
│   │   │   │   └── response.py
│   │   │   └── text_includes
│   │   │       └── guardrails_prompt.txt
│   │   ├── assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── guided-conversation-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── agents
│   │   │   │   ├── guided_conversation
│   │   │   │   │   ├── config.py
│   │   │   │   │   ├── definition.py
│   │   │   │   │   └── definitions
│   │   │   │   │       ├── er_triage.py
│   │   │   │   │       ├── interview.py
│   │   │   │   │       ├── patient_intake.py
│   │   │   │   │       └── poem_feedback.py
│   │   │   │   └── guided_conversation_agent.py
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   └── text_includes
│   │   │       └── guardrails_prompt.txt
│   │   ├── assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── knowledge-transfer-assistant
│   │   ├── .claude
│   │   │   └── settings.local.json
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── agentic
│   │   │   │   ├── __init__.py
│   │   │   │   ├── analysis.py
│   │   │   │   ├── coordinator_support.py
│   │   │   │   └── team_welcome.py
│   │   │   ├── assets
│   │   │   │   ├── icon-knowledge-transfer.svg
│   │   │   │   └── icon.svg
│   │   │   ├── assistant.py
│   │   │   ├── common.py
│   │   │   ├── config.py
│   │   │   ├── conversation_clients.py
│   │   │   ├── conversation_share_link.py
│   │   │   ├── data.py
│   │   │   ├── domain
│   │   │   │   ├── __init__.py
│   │   │   │   ├── audience_manager.py
│   │   │   │   ├── information_request_manager.py
│   │   │   │   ├── knowledge_brief_manager.py
│   │   │   │   ├── knowledge_digest_manager.py
│   │   │   │   ├── learning_objectives_manager.py
│   │   │   │   └── share_manager.py
│   │   │   ├── files.py
│   │   │   ├── logging.py
│   │   │   ├── notifications.py
│   │   │   ├── respond.py
│   │   │   ├── storage_models.py
│   │   │   ├── storage.py
│   │   │   ├── string_utils.py
│   │   │   ├── text_includes
│   │   │   │   ├── assistant_info.md
│   │   │   │   ├── card_content.md
│   │   │   │   ├── coordinator_instructions.txt
│   │   │   │   ├── coordinator_role.txt
│   │   │   │   ├── knowledge_digest_instructions.txt
│   │   │   │   ├── knowledge_digest_prompt.txt
│   │   │   │   ├── share_information_request_detection.txt
│   │   │   │   ├── team_instructions.txt
│   │   │   │   ├── team_role.txt
│   │   │   │   └── welcome_message_generation.txt
│   │   │   ├── tools
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base.py
│   │   │   │   ├── information_requests.py
│   │   │   │   ├── learning_objectives.py
│   │   │   │   ├── learning_outcomes.py
│   │   │   │   ├── progress_tracking.py
│   │   │   │   └── share_setup.py
│   │   │   ├── ui_tabs
│   │   │   │   ├── __init__.py
│   │   │   │   ├── brief.py
│   │   │   │   ├── common.py
│   │   │   │   ├── debug.py
│   │   │   │   ├── learning.py
│   │   │   │   └── sharing.py
│   │   │   └── utils.py
│   │   ├── CLAUDE.md
│   │   ├── docs
│   │   │   ├── design
│   │   │   │   ├── actions.md
│   │   │   │   └── inference.md
│   │   │   ├── DEV_GUIDE.md
│   │   │   ├── how-kta-works.md
│   │   │   ├── JTBD.md
│   │   │   ├── knowledge-transfer-goals.md
│   │   │   ├── learning_assistance.md
│   │   │   ├── notable_claude_conversations
│   │   │   │   ├── clarifying_quad_modal_design.md
│   │   │   │   ├── CLAUDE_PROMPTS.md
│   │   │   │   ├── transfer_state.md
│   │   │   │   └── trying_the_context_agent.md
│   │   │   └── opportunities-of-knowledge-transfer.md
│   │   ├── knowledge-transfer-assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_artifact_loading.py
│   │   │   ├── test_inspector.py
│   │   │   ├── test_share_manager.py
│   │   │   ├── test_share_storage.py
│   │   │   ├── test_share_tools.py
│   │   │   └── test_team_mode.py
│   │   └── uv.lock
│   ├── Makefile
│   ├── navigator-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── assets
│   │   │   │   ├── card_content.md
│   │   │   │   └── icon.svg
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── helpers.py
│   │   │   ├── response
│   │   │   │   ├── __init__.py
│   │   │   │   ├── completion_handler.py
│   │   │   │   ├── completion_requestor.py
│   │   │   │   ├── local_tool
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── add_assistant_to_conversation.py
│   │   │   │   │   ├── list_assistant_services.py
│   │   │   │   │   └── model.py
│   │   │   │   ├── models.py
│   │   │   │   ├── prompt.py
│   │   │   │   ├── request_builder.py
│   │   │   │   ├── response.py
│   │   │   │   ├── step_handler.py
│   │   │   │   └── utils
│   │   │   │       ├── __init__.py
│   │   │   │       ├── formatting_utils.py
│   │   │   │       ├── message_utils.py
│   │   │   │       ├── openai_utils.py
│   │   │   │       └── tools.py
│   │   │   ├── text_includes
│   │   │   │   ├── guardrails_prompt.md
│   │   │   │   ├── guidance_prompt.md
│   │   │   │   ├── instruction_prompt.md
│   │   │   │   ├── navigator_assistant_info.md
│   │   │   │   └── semantic_workbench_features.md
│   │   │   └── whiteboard
│   │   │       ├── __init__.py
│   │   │       ├── _inspector.py
│   │   │       └── _whiteboard.py
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── project-assistant
│   │   ├── .cspell
│   │   │   └── custom-dictionary-workspace.txt
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── agentic
│   │   │   │   ├── __init__.py
│   │   │   │   ├── act.py
│   │   │   │   ├── coordinator_next_action.py
│   │   │   │   ├── create_invitation.py
│   │   │   │   ├── detect_audience_and_takeaways.py
│   │   │   │   ├── detect_coordinator_actions.py
│   │   │   │   ├── detect_information_request_needs.py
│   │   │   │   ├── detect_knowledge_package_gaps.py
│   │   │   │   ├── focus.py
│   │   │   │   ├── respond.py
│   │   │   │   ├── team_welcome.py
│   │   │   │   └── update_digest.py
│   │   │   ├── assets
│   │   │   │   ├── icon-knowledge-transfer.svg
│   │   │   │   └── icon.svg
│   │   │   ├── assistant.py
│   │   │   ├── common.py
│   │   │   ├── config.py
│   │   │   ├── conversation_clients.py
│   │   │   ├── data.py
│   │   │   ├── domain
│   │   │   │   ├── __init__.py
│   │   │   │   ├── audience_manager.py
│   │   │   │   ├── conversation_preferences_manager.py
│   │   │   │   ├── information_request_manager.py
│   │   │   │   ├── knowledge_brief_manager.py
│   │   │   │   ├── knowledge_digest_manager.py
│   │   │   │   ├── learning_objectives_manager.py
│   │   │   │   ├── share_manager.py
│   │   │   │   ├── tasks_manager.py
│   │   │   │   └── transfer_manager.py
│   │   │   ├── errors.py
│   │   │   ├── files.py
│   │   │   ├── logging.py
│   │   │   ├── notifications.py
│   │   │   ├── prompt_utils.py
│   │   │   ├── storage.py
│   │   │   ├── string_utils.py
│   │   │   ├── text_includes
│   │   │   │   ├── actor_instructions.md
│   │   │   │   ├── assistant_info.md
│   │   │   │   ├── card_content.md
│   │   │   │   ├── coordinator_instructions copy.md
│   │   │   │   ├── coordinator_instructions.md
│   │   │   │   ├── create_invitation.md
│   │   │   │   ├── detect_audience.md
│   │   │   │   ├── detect_coordinator_actions.md
│   │   │   │   ├── detect_information_request_needs.md
│   │   │   │   ├── detect_knowledge_package_gaps.md
│   │   │   │   ├── focus.md
│   │   │   │   ├── knowledge_digest_instructions.txt
│   │   │   │   ├── team_instructions.txt
│   │   │   │   ├── to_do.md
│   │   │   │   ├── update_knowledge_brief.md
│   │   │   │   ├── update_knowledge_digest.md
│   │   │   │   └── welcome_message_generation.txt
│   │   │   ├── tools
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base.py
│   │   │   │   ├── conversation_preferences.py
│   │   │   │   ├── information_requests.py
│   │   │   │   ├── learning_objectives.py
│   │   │   │   ├── learning_outcomes.py
│   │   │   │   ├── progress_tracking.py
│   │   │   │   ├── share_setup.py
│   │   │   │   ├── system_reminders.py
│   │   │   │   ├── tasks.py
│   │   │   │   └── todo.py
│   │   │   ├── ui_tabs
│   │   │   │   ├── __init__.py
│   │   │   │   ├── brief.py
│   │   │   │   ├── common.py
│   │   │   │   ├── debug.py
│   │   │   │   ├── learning.py
│   │   │   │   └── sharing.py
│   │   │   └── utils.py
│   │   ├── CLAUDE.md
│   │   ├── docs
│   │   │   ├── design
│   │   │   │   ├── actions.md
│   │   │   │   ├── control_options.md
│   │   │   │   ├── design.md
│   │   │   │   ├── inference.md
│   │   │   │   └── PXL_20250814_190140267.jpg
│   │   │   ├── DEV_GUIDE.md
│   │   │   ├── how-kta-works.md
│   │   │   ├── JTBD.md
│   │   │   ├── knowledge-transfer-goals.md
│   │   │   ├── learning_assistance.md
│   │   │   ├── notable_claude_conversations
│   │   │   │   ├── clarifying_quad_modal_design.md
│   │   │   │   ├── CLAUDE_PROMPTS.md
│   │   │   │   ├── transfer_state.md
│   │   │   │   └── trying_the_context_agent.md
│   │   │   └── opportunities-of-knowledge-transfer.md
│   │   ├── knowledge-transfer-assistant.code-workspace
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_artifact_loading.py
│   │   │   ├── test_inspector.py
│   │   │   ├── test_share_manager.py
│   │   │   ├── test_share_storage.py
│   │   │   └── test_team_mode.py
│   │   └── uv.lock
│   ├── prospector-assistant
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── assistant
│   │   │   ├── __init__.py
│   │   │   ├── agents
│   │   │   │   ├── artifact_agent.py
│   │   │   │   ├── document
│   │   │   │   │   ├── config.py
│   │   │   │   │   ├── gc_draft_content_feedback_config.py
│   │   │   │   │   ├── gc_draft_outline_feedback_config.py
│   │   │   │   │   ├── guided_conversation.py
│   │   │   │   │   └── state.py
│   │   │   │   └── document_agent.py
│   │   │   ├── artifact_creation_extension
│   │   │   │   ├── __init__.py
│   │   │   │   ├── _llm.py
│   │   │   │   ├── config.py
│   │   │   │   ├── document.py
│   │   │   │   ├── extension.py
│   │   │   │   ├── store.py
│   │   │   │   ├── test
│   │   │   │   │   ├── conftest.py
│   │   │   │   │   ├── evaluation.py
│   │   │   │   │   ├── test_completion_with_tools.py
│   │   │   │   │   └── test_extension.py
│   │   │   │   └── tools.py
│   │   │   ├── chat.py
│   │   │   ├── config.py
│   │   │   ├── form_fill_extension
│   │   │   │   ├── __init__.py
│   │   │   │   ├── config.py
│   │   │   │   ├── extension.py
│   │   │   │   ├── inspector.py
│   │   │   │   ├── state.py
│   │   │   │   └── steps
│   │   │   │       ├── __init__.py
│   │   │   │       ├── _guided_conversation.py
│   │   │   │       ├── _llm.py
│   │   │   │       ├── acquire_form_step.py
│   │   │   │       ├── extract_form_fields_step.py
│   │   │   │       ├── fill_form_step.py
│   │   │   │       └── types.py
│   │   │   ├── helpers.py
│   │   │   ├── legacy.py
│   │   │   └── text_includes
│   │   │       ├── artifact_agent_enabled.md
│   │   │       ├── guardrails_prompt.txt
│   │   │       ├── guided_conversation_agent_enabled.md
│   │   │       └── skills_agent_enabled.md
│   │   ├── assistant.code-workspace
│   │   ├── gc_learnings
│   │   │   ├── gc_learnings.md
│   │   │   └── images
│   │   │       ├── gc_conversation_plan_fcn.png
│   │   │       ├── gc_conversation_plan_template.png
│   │   │       ├── gc_execute_plan_callstack.png
│   │   │       ├── gc_functions.png
│   │   │       ├── gc_generate_plan_callstack.png
│   │   │       ├── gc_get_resource_instructions.png
│   │   │       ├── gc_get_termination_instructions.png
│   │   │       ├── gc_kernel_arguments.png
│   │   │       ├── gc_plan_calls.png
│   │   │       ├── gc_termination_instructions.png
│   │   │       ├── sk_get_chat_message_contents.png
│   │   │       ├── sk_inner_get_chat_message_contents.png
│   │   │       ├── sk_send_request_prep.png
│   │   │       └── sk_send_request.png
│   │   ├── Makefile
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   └── skill-assistant
│       ├── .env.example
│       ├── .vscode
│       │   ├── launch.json
│       │   └── settings.json
│       ├── assistant
│       │   ├── __init__.py
│       │   ├── config.py
│       │   ├── logging.py
│       │   ├── skill_assistant.py
│       │   ├── skill_engine_registry.py
│       │   ├── skill_event_mapper.py
│       │   ├── text_includes
│       │   │   └── guardrails_prompt.txt
│       │   └── workbench_helpers.py
│       ├── assistant.code-workspace
│       ├── Makefile
│       ├── pyproject.toml
│       ├── README.md
│       ├── tests
│       │   └── test_setup.py
│       └── uv.lock
├── CLAUDE.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── docs
│   ├── .vscode
│   │   └── settings.json
│   ├── ASSISTANT_CONFIG.md
│   ├── ASSISTANT_DEVELOPMENT_GUIDE.md
│   ├── CUSTOM_APP_REGISTRATION.md
│   ├── HOSTED_ASSISTANT_WITH_LOCAL_MCP_SERVERS.md
│   ├── images
│   │   ├── architecture-animation.gif
│   │   ├── configure_assistant.png
│   │   ├── conversation_canvas_open.png
│   │   ├── conversation_duplicate.png
│   │   ├── conversation_export.png
│   │   ├── conversation_share_dialog.png
│   │   ├── conversation_share_link.png
│   │   ├── dashboard_configured_view.png
│   │   ├── dashboard_view.png
│   │   ├── license_agreement.png
│   │   ├── message_bar.png
│   │   ├── message_inspection.png
│   │   ├── message_link.png
│   │   ├── new_prospector_assistant_dialog.png
│   │   ├── open_conversation_canvas.png
│   │   ├── prospector_example.png
│   │   ├── readme1.png
│   │   ├── readme2.png
│   │   ├── readme3.png
│   │   ├── rewind.png
│   │   ├── signin_page.png
│   │   └── splash_screen.png
│   ├── LOCAL_ASSISTANT_WITH_REMOTE_WORKBENCH.md
│   ├── SETUP_DEV_ENVIRONMENT.md
│   └── WORKBENCH_APP.md
├── examples
│   ├── dotnet
│   │   ├── .editorconfig
│   │   ├── dotnet-01-echo-bot
│   │   │   ├── appsettings.json
│   │   │   ├── dotnet-01-echo-bot.csproj
│   │   │   ├── MyAgent.cs
│   │   │   ├── MyAgentConfig.cs
│   │   │   ├── MyWorkbenchConnector.cs
│   │   │   ├── Program.cs
│   │   │   └── README.md
│   │   ├── dotnet-02-message-types-demo
│   │   │   ├── appsettings.json
│   │   │   ├── ConnectorExtensions.cs
│   │   │   ├── docs
│   │   │   │   ├── abc.png
│   │   │   │   ├── code.png
│   │   │   │   ├── config.png
│   │   │   │   ├── echo.png
│   │   │   │   ├── markdown.png
│   │   │   │   ├── mermaid.png
│   │   │   │   ├── reverse.png
│   │   │   │   └── safety-check.png
│   │   │   ├── dotnet-02-message-types-demo.csproj
│   │   │   ├── MyAgent.cs
│   │   │   ├── MyAgentConfig.cs
│   │   │   ├── MyWorkbenchConnector.cs
│   │   │   ├── Program.cs
│   │   │   └── README.md
│   │   └── dotnet-03-simple-chatbot
│   │       ├── appsettings.json
│   │       ├── ConnectorExtensions.cs
│   │       ├── dotnet-03-simple-chatbot.csproj
│   │       ├── MyAgent.cs
│   │       ├── MyAgentConfig.cs
│   │       ├── MyWorkbenchConnector.cs
│   │       ├── Program.cs
│   │       └── README.md
│   ├── Makefile
│   └── python
│       ├── python-01-echo-bot
│       │   ├── .env.example
│       │   ├── .vscode
│       │   │   ├── launch.json
│       │   │   └── settings.json
│       │   ├── assistant
│       │   │   ├── __init__.py
│       │   │   ├── chat.py
│       │   │   └── config.py
│       │   ├── assistant.code-workspace
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── python-02-simple-chatbot
│       │   ├── .env.example
│       │   ├── .vscode
│       │   │   ├── launch.json
│       │   │   └── settings.json
│       │   ├── assistant
│       │   │   ├── __init__.py
│       │   │   ├── chat.py
│       │   │   ├── config.py
│       │   │   └── text_includes
│       │   │       └── guardrails_prompt.txt
│       │   ├── assistant.code-workspace
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       └── python-03-multimodel-chatbot
│           ├── .env.example
│           ├── .vscode
│           │   ├── launch.json
│           │   └── settings.json
│           ├── assistant
│           │   ├── __init__.py
│           │   ├── chat.py
│           │   ├── config.py
│           │   ├── model_adapters.py
│           │   └── text_includes
│           │       └── guardrails_prompt.txt
│           ├── assistant.code-workspace
│           ├── Makefile
│           ├── pyproject.toml
│           ├── README.md
│           └── uv.lock
├── KNOWN_ISSUES.md
├── libraries
│   ├── dotnet
│   │   ├── .editorconfig
│   │   ├── pack.sh
│   │   ├── README.md
│   │   ├── SemanticWorkbench.sln
│   │   ├── SemanticWorkbench.sln.DotSettings
│   │   └── WorkbenchConnector
│   │       ├── AgentBase.cs
│   │       ├── AgentConfig
│   │       │   ├── AgentConfigBase.cs
│   │       │   ├── AgentConfigPropertyAttribute.cs
│   │       │   └── ConfigUtils.cs
│   │       ├── Constants.cs
│   │       ├── IAgentBase.cs
│   │       ├── icon.png
│   │       ├── Models
│   │       │   ├── Command.cs
│   │       │   ├── Conversation.cs
│   │       │   ├── ConversationEvent.cs
│   │       │   ├── DebugInfo.cs
│   │       │   ├── Insight.cs
│   │       │   ├── Message.cs
│   │       │   ├── MessageMetadata.cs
│   │       │   ├── Participant.cs
│   │       │   ├── Sender.cs
│   │       │   └── ServiceInfo.cs
│   │       ├── Storage
│   │       │   ├── AgentInfo.cs
│   │       │   ├── AgentServiceStorage.cs
│   │       │   └── IAgentServiceStorage.cs
│   │       ├── StringLoggingExtensions.cs
│   │       ├── Webservice.cs
│   │       ├── WorkbenchConfig.cs
│   │       ├── WorkbenchConnector.cs
│   │       └── WorkbenchConnector.csproj
│   ├── Makefile
│   └── python
│       ├── anthropic-client
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── anthropic_client
│       │   │   ├── __init__.py
│       │   │   ├── client.py
│       │   │   ├── config.py
│       │   │   └── messages.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── assistant-data-gen
│       │   ├── .vscode
│       │   │   ├── launch.json
│       │   │   └── settings.json
│       │   ├── assistant_data_gen
│       │   │   ├── __init__.py
│       │   │   ├── assistant_api.py
│       │   │   ├── config.py
│       │   │   ├── gce
│       │   │   │   ├── __init__.py
│       │   │   │   ├── gce_agent.py
│       │   │   │   └── prompts.py
│       │   │   └── pydantic_ai_utils.py
│       │   ├── configs
│       │   │   └── document_assistant_example_config.yaml
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── scripts
│       │   │   ├── gce_simulation.py
│       │   │   └── generate_scenario.py
│       │   └── uv.lock
│       ├── assistant-drive
│       │   ├── .gitignore
│       │   ├── .vscode
│       │   │   ├── extensions.json
│       │   │   └── settings.json
│       │   ├── assistant_drive
│       │   │   ├── __init__.py
│       │   │   ├── drive.py
│       │   │   └── tests
│       │   │       └── test_basic.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── pytest.ini
│       │   ├── README.md
│       │   ├── usage.ipynb
│       │   └── uv.lock
│       ├── assistant-extensions
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── assistant_extensions
│       │   │   ├── __init__.py
│       │   │   ├── ai_clients
│       │   │   │   └── config.py
│       │   │   ├── artifacts
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _artifacts.py
│       │   │   │   ├── _inspector.py
│       │   │   │   └── _model.py
│       │   │   ├── attachments
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _attachments.py
│       │   │   │   ├── _convert.py
│       │   │   │   ├── _model.py
│       │   │   │   ├── _shared.py
│       │   │   │   └── _summarizer.py
│       │   │   ├── chat_context_toolkit
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _config.py
│       │   │   │   ├── archive
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── _archive.py
│       │   │   │   │   └── _summarizer.py
│       │   │   │   ├── message_history
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── _history.py
│       │   │   │   │   └── _message.py
│       │   │   │   └── virtual_filesystem
│       │   │   │       ├── __init__.py
│       │   │   │       ├── _archive_file_source.py
│       │   │   │       └── _attachments_file_source.py
│       │   │   ├── dashboard_card
│       │   │   │   ├── __init__.py
│       │   │   │   └── _dashboard_card.py
│       │   │   ├── document_editor
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _extension.py
│       │   │   │   ├── _inspector.py
│       │   │   │   └── _model.py
│       │   │   ├── mcp
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _assistant_file_resource_handler.py
│       │   │   │   ├── _client_utils.py
│       │   │   │   ├── _devtunnel.py
│       │   │   │   ├── _model.py
│       │   │   │   ├── _openai_utils.py
│       │   │   │   ├── _sampling_handler.py
│       │   │   │   ├── _tool_utils.py
│       │   │   │   └── _workbench_file_resource_handler.py
│       │   │   ├── navigator
│       │   │   │   ├── __init__.py
│       │   │   │   └── _navigator.py
│       │   │   └── workflows
│       │   │       ├── __init__.py
│       │   │       ├── _model.py
│       │   │       ├── _workflows.py
│       │   │       └── runners
│       │   │           └── _user_proxy.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── test
│       │   │   └── attachments
│       │   │       └── test_attachments.py
│       │   └── uv.lock
│       ├── chat-context-toolkit
│       │   ├── .claude
│       │   │   └── settings.local.json
│       │   ├── .env.sample
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── assets
│       │   │   ├── archive_v1.png
│       │   │   ├── history_v1.png
│       │   │   └── vfs_v1.png
│       │   ├── chat_context_toolkit
│       │   │   ├── __init__.py
│       │   │   ├── archive
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _archive_reader.py
│       │   │   │   ├── _archive_task_queue.py
│       │   │   │   ├── _state.py
│       │   │   │   ├── _types.py
│       │   │   │   └── summarization
│       │   │   │       ├── __init__.py
│       │   │   │       └── _summarizer.py
│       │   │   ├── history
│       │   │   │   ├── __init__.py
│       │   │   │   ├── _budget.py
│       │   │   │   ├── _decorators.py
│       │   │   │   ├── _history.py
│       │   │   │   ├── _prioritize.py
│       │   │   │   ├── _types.py
│       │   │   │   └── tool_abbreviations
│       │   │   │       ├── __init__.py
│       │   │   │       └── _tool_abbreviations.py
│       │   │   └── virtual_filesystem
│       │   │       ├── __init__.py
│       │   │       ├── _types.py
│       │   │       ├── _virtual_filesystem.py
│       │   │       ├── README.md
│       │   │       └── tools
│       │   │           ├── __init__.py
│       │   │           ├── _ls_tool.py
│       │   │           ├── _tools.py
│       │   │           └── _view_tool.py
│       │   ├── CLAUDE.md
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── test
│       │   │   ├── archive
│       │   │   │   └── test_archive_reader.py
│       │   │   ├── history
│       │   │   │   ├── test_abbreviate_messages.py
│       │   │   │   ├── test_history.py
│       │   │   │   ├── test_pair_and_order_tool_messages.py
│       │   │   │   ├── test_prioritize.py
│       │   │   │   └── test_truncate_messages.py
│       │   │   └── virtual_filesystem
│       │   │       ├── test_virtual_filesystem.py
│       │   │       └── tools
│       │   │           ├── test_ls_tool.py
│       │   │           ├── test_tools.py
│       │   │           └── test_view_tool.py
│       │   └── uv.lock
│       ├── content-safety
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── content_safety
│       │   │   ├── __init__.py
│       │   │   ├── evaluators
│       │   │   │   ├── __init__.py
│       │   │   │   ├── azure_content_safety
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── config.py
│       │   │   │   │   └── evaluator.py
│       │   │   │   ├── config.py
│       │   │   │   ├── evaluator.py
│       │   │   │   └── openai_moderations
│       │   │   │       ├── __init__.py
│       │   │   │       ├── config.py
│       │   │   │       └── evaluator.py
│       │   │   └── README.md
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── events
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── events
│       │   │   ├── __init__.py
│       │   │   └── events.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── guided-conversation
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── guided_conversation
│       │   │   ├── __init__.py
│       │   │   ├── functions
│       │   │   │   ├── __init__.py
│       │   │   │   ├── conversation_plan.py
│       │   │   │   ├── execution.py
│       │   │   │   └── final_update_plan.py
│       │   │   ├── guided_conversation_agent.py
│       │   │   ├── plugins
│       │   │   │   ├── __init__.py
│       │   │   │   ├── agenda.py
│       │   │   │   └── artifact.py
│       │   │   └── utils
│       │   │       ├── __init__.py
│       │   │       ├── base_model_llm.py
│       │   │       ├── conversation_helpers.py
│       │   │       ├── openai_tool_calling.py
│       │   │       ├── plugin_helpers.py
│       │   │       └── resources.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── llm-client
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── llm_client
│       │   │   ├── __init__.py
│       │   │   └── model.py
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── Makefile
│       ├── mcp-extensions
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── mcp_extensions
│       │   │   ├── __init__.py
│       │   │   ├── _client_session.py
│       │   │   ├── _model.py
│       │   │   ├── _sampling.py
│       │   │   ├── _server_extensions.py
│       │   │   ├── _tool_utils.py
│       │   │   ├── llm
│       │   │   │   ├── __init__.py
│       │   │   │   ├── chat_completion.py
│       │   │   │   ├── helpers.py
│       │   │   │   ├── llm_types.py
│       │   │   │   ├── mcp_chat_completion.py
│       │   │   │   └── openai_chat_completion.py
│       │   │   └── server
│       │   │       ├── __init__.py
│       │   │       └── storage.py
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── tests
│       │   │   └── test_tool_utils.py
│       │   └── uv.lock
│       ├── mcp-tunnel
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── mcp_tunnel
│       │   │   ├── __init__.py
│       │   │   ├── _devtunnel.py
│       │   │   ├── _dir.py
│       │   │   └── _main.py
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   └── uv.lock
│       ├── openai-client
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── openai_client
│       │   │   ├── __init__.py
│       │   │   ├── chat_driver
│       │   │   │   ├── __init__.py
│       │   │   │   ├── chat_driver.ipynb
│       │   │   │   ├── chat_driver.py
│       │   │   │   ├── message_history_providers
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── in_memory_message_history_provider.py
│       │   │   │   │   ├── local_message_history_provider.py
│       │   │   │   │   ├── message_history_provider.py
│       │   │   │   │   └── tests
│       │   │   │   │       └── formatted_instructions_test.py
│       │   │   │   └── README.md
│       │   │   ├── client.py
│       │   │   ├── completion.py
│       │   │   ├── config.py
│       │   │   ├── errors.py
│       │   │   ├── logging.py
│       │   │   ├── messages.py
│       │   │   ├── tokens.py
│       │   │   └── tools.py
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── tests
│       │   │   ├── test_command_parsing.py
│       │   │   ├── test_formatted_messages.py
│       │   │   ├── test_messages.py
│       │   │   └── test_tokens.py
│       │   └── uv.lock
│       ├── semantic-workbench-api-model
│       │   ├── .vscode
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── semantic_workbench_api_model
│       │   │   ├── __init__.py
│       │   │   ├── assistant_model.py
│       │   │   ├── assistant_service_client.py
│       │   │   ├── workbench_model.py
│       │   │   └── workbench_service_client.py
│       │   └── uv.lock
│       ├── semantic-workbench-assistant
│       │   ├── .vscode
│       │   │   ├── launch.json
│       │   │   └── settings.json
│       │   ├── Makefile
│       │   ├── pyproject.toml
│       │   ├── README.md
│       │   ├── semantic_workbench_assistant
│       │   │   ├── __init__.py
│       │   │   ├── assistant_app
│       │   │   │   ├── __init__.py
│       │   │   │   ├── assistant.py
│       │   │   │   ├── config.py
│       │   │   │   ├── content_safety.py
│       │   │   │   ├── context.py
│       │   │   │   ├── error.py
│       │   │   │   ├── export_import.py
│       │   │   │   ├── protocol.py
│       │   │   │   └── service.py
│       │   │   ├── assistant_service.py
│       │   │   ├── auth.py
│       │   │   ├── canonical.py
│       │   │   ├── command.py
│       │   │   ├── config.py
│       │   │   ├── logging_config.py
│       │   │   ├── settings.py
│       │   │   ├── start.py
│       │   │   └── storage.py
│       │   ├── tests
│       │   │   ├── conftest.py
│       │   │   ├── test_assistant_app.py
│       │   │   ├── test_canonical.py
│       │   │   ├── test_config.py
│       │   │   └── test_storage.py
│       │   └── uv.lock
│       └── skills
│           ├── .vscode
│           │   └── settings.json
│           ├── Makefile
│           ├── README.md
│           └── skill-library
│               ├── .vscode
│               │   └── settings.json
│               ├── docs
│               │   └── vs-recipe-tool.md
│               ├── Makefile
│               ├── pyproject.toml
│               ├── README.md
│               ├── skill_library
│               │   ├── __init__.py
│               │   ├── chat_driver_helpers.py
│               │   ├── cli
│               │   │   ├── azure_openai.py
│               │   │   ├── conversation_history.py
│               │   │   ├── README.md
│               │   │   ├── run_routine.py
│               │   │   ├── settings.py
│               │   │   └── skill_logger.py
│               │   ├── engine.py
│               │   ├── llm_info.txt
│               │   ├── logging.py
│               │   ├── README.md
│               │   ├── routine_stack.py
│               │   ├── skill.py
│               │   ├── skills
│               │   │   ├── common
│               │   │   │   ├── __init__.py
│               │   │   │   ├── common_skill.py
│               │   │   │   └── routines
│               │   │   │       ├── bing_search.py
│               │   │   │       ├── consolidate.py
│               │   │   │       ├── echo.py
│               │   │   │       ├── gather_context.py
│               │   │   │       ├── get_content_from_url.py
│               │   │   │       ├── gpt_complete.py
│               │   │   │       ├── select_user_intent.py
│               │   │   │       └── summarize.py
│               │   │   ├── eval
│               │   │   │   ├── __init__.py
│               │   │   │   ├── eval_skill.py
│               │   │   │   └── routines
│               │   │   │       └── eval.py
│               │   │   ├── fabric
│               │   │   │   ├── __init__.py
│               │   │   │   ├── fabric_skill.py
│               │   │   │   ├── patterns
│               │   │   │   │   ├── agility_story
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── ai
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_answers
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_candidates
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_cfp_submission
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_claims
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_comments
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_debate
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_email_headers
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_incident
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_interviewer_techniques
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_logs
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_malware
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_military_strategy
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_mistakes
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_paper
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_patent
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_personality
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_presentation
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_product_feedback
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_proposition
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_prose
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_prose_json
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_prose_pinker
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_risk
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_sales_call
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_spiritual_text
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_tech_impact
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_threat_report
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── analyze_threat_report_cmds
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── analyze_threat_report_trends
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── answer_interview_question
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── ask_secure_by_design_questions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── ask_uncle_duke
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── capture_thinkers_work
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── check_agreement
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── clean_text
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── coding_master
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── compare_and_contrast
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── convert_to_markdown
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_5_sentence_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_academic_paper
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_ai_jobs_analysis
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_aphorisms
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_art_prompt
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_better_frame
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_coding_project
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_command
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_cyber_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_design_document
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_diy
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_formal_email
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_git_diff_commit
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_graph_from_input
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_hormozi_offer
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_idea_compass
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_investigation_visualization
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_keynote
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_logo
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_markmap_visualization
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_mermaid_visualization
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_mermaid_visualization_for_github
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_micro_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_network_threat_landscape
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_newsletter_entry
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_npc
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_pattern
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_prd
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_prediction_block
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_quiz
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_reading_plan
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_recursive_outline
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_report_finding
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_rpg_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_security_update
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_show_intro
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_sigma_rules
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_story_explanation
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_stride_threat_model
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_summary
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_tags
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_threat_scenarios
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_ttrc_graph
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_ttrc_narrative
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_upgrade_pack
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_user_story
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── create_video_chapters
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── create_visualization
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── dialog_with_socrates
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── enrich_blog_post
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── explain_code
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── explain_docs
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── explain_math
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── explain_project
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── explain_terms
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── export_data_as_csv
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_algorithm_update_recommendations
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_article_wisdom
│               │   │   │   │   │   ├── dmiessler
│               │   │   │   │   │   │   └── extract_wisdom-1.0.0
│               │   │   │   │   │   │       ├── system.md
│               │   │   │   │   │   │       └── user.md
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_book_ideas
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_book_recommendations
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_business_ideas
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_controversial_ideas
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_core_message
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_ctf_writeup
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_domains
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_extraordinary_claims
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_ideas
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_insights
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_insights_dm
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_instructions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_jokes
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_latest_video
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_main_idea
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_most_redeeming_thing
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_patterns
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_poc
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_predictions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_primary_problem
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_primary_solution
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_product_features
│               │   │   │   │   │   ├── dmiessler
│               │   │   │   │   │   │   └── extract_wisdom-1.0.0
│               │   │   │   │   │   │       ├── system.md
│               │   │   │   │   │   │       └── user.md
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_questions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_recipe
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_recommendations
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_references
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_skills
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_song_meaning
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_sponsors
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_videoid
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── extract_wisdom
│               │   │   │   │   │   ├── dmiessler
│               │   │   │   │   │   │   └── extract_wisdom-1.0.0
│               │   │   │   │   │   │       ├── system.md
│               │   │   │   │   │   │       └── user.md
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_wisdom_agents
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_wisdom_dm
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── extract_wisdom_nometa
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── find_hidden_message
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── find_logical_fallacies
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── get_wow_per_minute
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── get_youtube_rss
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── humanize
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_dsrp_distinctions
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_dsrp_perspectives
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_dsrp_relationships
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_dsrp_systems
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── identify_job_stories
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── improve_academic_writing
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── improve_prompt
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── improve_report_finding
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── improve_writing
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── judge_output
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── label_and_rate
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── loaded
│               │   │   │   │   ├── md_callout
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── official_pattern_template
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── pattern_explanations.md
│               │   │   │   │   ├── prepare_7s_strategy
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── provide_guidance
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── rate_ai_response
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── rate_ai_result
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── rate_content
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── rate_value
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── raw_query
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── raycast
│               │   │   │   │   │   ├── capture_thinkers_work
│               │   │   │   │   │   ├── create_story_explanation
│               │   │   │   │   │   ├── extract_primary_problem
│               │   │   │   │   │   ├── extract_wisdom
│               │   │   │   │   │   └── yt
│               │   │   │   │   ├── recommend_artists
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── recommend_pipeline_upgrades
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── recommend_talkpanel_topics
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── refine_design_document
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── review_design
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── sanitize_broken_html_to_markdown
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── show_fabric_options_markmap
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── solve_with_cot
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── stringify
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── suggest_pattern
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize
│               │   │   │   │   │   ├── dmiessler
│               │   │   │   │   │   │   └── summarize
│               │   │   │   │   │   │       ├── system.md
│               │   │   │   │   │   │       └── user.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_debate
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_git_changes
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_git_diff
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_lecture
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_legislation
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_meeting
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_micro
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_newsletter
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_paper
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_prompt
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── summarize_pull-requests
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── summarize_rpg_session
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_analyze_challenge_handling
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_check_metrics
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_create_h3_career
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_create_opening_sentences
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_describe_life_outlook
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_extract_intro_sentences
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_extract_panel_topics
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_find_blindspots
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_find_negative_thinking
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_find_neglected_goals
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_give_encouragement
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_red_team_thinking
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_threat_model_plans
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_visualize_mission_goals_projects
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── t_year_in_review
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── to_flashcards
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── transcribe_minutes
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── translate
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── tweet
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_essay
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_hackerone_report
│               │   │   │   │   │   ├── README.md
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_latex
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_micro_essay
│               │   │   │   │   │   └── system.md
│               │   │   │   │   ├── write_nuclei_template_rule
│               │   │   │   │   │   ├── system.md
│               │   │   │   │   │   └── user.md
│               │   │   │   │   ├── write_pull-request
│               │   │   │   │   │   └── system.md
│               │   │   │   │   └── write_semgrep_rule
│               │   │   │   │       ├── system.md
│               │   │   │   │       └── user.md
│               │   │   │   └── routines
│               │   │   │       ├── list.py
│               │   │   │       ├── run.py
│               │   │   │       └── show.py
│               │   │   ├── guided_conversation
│               │   │   │   ├── __init__.py
│               │   │   │   ├── agenda.py
│               │   │   │   ├── artifact_helpers.py
│               │   │   │   ├── chat_completions
│               │   │   │   │   ├── fix_agenda_error.py
│               │   │   │   │   ├── fix_artifact_error.py
│               │   │   │   │   ├── generate_agenda.py
│               │   │   │   │   ├── generate_artifact_updates.py
│               │   │   │   │   ├── generate_final_artifact.py
│               │   │   │   │   └── generate_message.py
│               │   │   │   ├── conversation_guides
│               │   │   │   │   ├── __init__.py
│               │   │   │   │   ├── acrostic_poem.py
│               │   │   │   │   ├── er_triage.py
│               │   │   │   │   ├── interview.py
│               │   │   │   │   └── patient_intake.py
│               │   │   │   ├── guide.py
│               │   │   │   ├── guided_conversation_skill.py
│               │   │   │   ├── logging.py
│               │   │   │   ├── message.py
│               │   │   │   ├── resources.py
│               │   │   │   ├── routines
│               │   │   │   │   └── guided_conversation.py
│               │   │   │   └── tests
│               │   │   │       ├── conftest.py
│               │   │   │       ├── test_artifact_helpers.py
│               │   │   │       ├── test_generate_agenda.py
│               │   │   │       ├── test_generate_artifact_updates.py
│               │   │   │       ├── test_generate_final_artifact.py
│               │   │   │       └── test_resource.py
│               │   │   ├── meta
│               │   │   │   ├── __init__.py
│               │   │   │   ├── meta_skill.py
│               │   │   │   ├── README.md
│               │   │   │   └── routines
│               │   │   │       └── generate_routine.py
│               │   │   ├── posix
│               │   │   │   ├── __init__.py
│               │   │   │   ├── posix_skill.py
│               │   │   │   ├── routines
│               │   │   │   │   ├── append_file.py
│               │   │   │   │   ├── cd.py
│               │   │   │   │   ├── ls.py
│               │   │   │   │   ├── make_home_dir.py
│               │   │   │   │   ├── mkdir.py
│               │   │   │   │   ├── mv.py
│               │   │   │   │   ├── pwd.py
│               │   │   │   │   ├── read_file.py
│               │   │   │   │   ├── rm.py
│               │   │   │   │   ├── touch.py
│               │   │   │   │   └── write_file.py
│               │   │   │   └── sandbox_shell.py
│               │   │   ├── README.md
│               │   │   ├── research
│               │   │   │   ├── __init__.py
│               │   │   │   ├── README.md
│               │   │   │   ├── research_skill.py
│               │   │   │   └── routines
│               │   │   │       ├── answer_question_about_content.py
│               │   │   │       ├── evaluate_answer.py
│               │   │   │       ├── generate_research_plan.py
│               │   │   │       ├── generate_search_query.py
│               │   │   │       ├── update_research_plan.py
│               │   │   │       ├── web_research.py
│               │   │   │       └── web_search.py
│               │   │   ├── research2
│               │   │   │   ├── __init__.py
│               │   │   │   ├── README.md
│               │   │   │   ├── research_skill.py
│               │   │   │   └── routines
│               │   │   │       ├── facts.py
│               │   │   │       ├── make_final_report.py
│               │   │   │       ├── research.py
│               │   │   │       ├── search_plan.py
│               │   │   │       ├── search.py
│               │   │   │       └── visit_pages.py
│               │   │   └── web_research
│               │   │       ├── __init__.py
│               │   │       ├── README.md
│               │   │       ├── research_skill.py
│               │   │       └── routines
│               │   │           ├── facts.py
│               │   │           ├── make_final_report.py
│               │   │           ├── research.py
│               │   │           ├── search_plan.py
│               │   │           ├── search.py
│               │   │           └── visit_pages.py
│               │   ├── tests
│               │   │   ├── test_common_skill.py
│               │   │   ├── test_integration.py
│               │   │   ├── test_routine_stack.py
│               │   │   ├── tst_skill
│               │   │   │   ├── __init__.py
│               │   │   │   └── routines
│               │   │   │       ├── __init__.py
│               │   │   │       └── a_routine.py
│               │   │   └── utilities
│               │   │       ├── test_find_template_vars.py
│               │   │       ├── test_make_arg_set.py
│               │   │       ├── test_paramspec.py
│               │   │       ├── test_parse_command_string.py
│               │   │       └── test_to_string.py
│               │   ├── types.py
│               │   ├── usage.py
│               │   └── utilities.py
│               └── uv.lock
├── LICENSE
├── Makefile
├── mcp-servers
│   ├── ai-assist-content
│   │   ├── .vscode
│   │   │   └── settings.json
│   │   ├── mcp-example-brave-search.md
│   │   ├── mcp-fastmcp-typescript-README.md
│   │   ├── mcp-llms-full.txt
│   │   ├── mcp-metadata-tips.md
│   │   ├── mcp-python-sdk-README.md
│   │   ├── mcp-typescript-sdk-README.md
│   │   ├── pydanticai-documentation.md
│   │   ├── pydanticai-example-question-graph.md
│   │   ├── pydanticai-example-weather.md
│   │   ├── pydanticai-tutorial.md
│   │   └── README.md
│   ├── Makefile
│   ├── mcp-server-bing-search
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_bing_search
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── prompts
│   │   │   │   ├── __init__.py
│   │   │   │   ├── clean_website.py
│   │   │   │   └── filter_links.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   ├── tools.py
│   │   │   ├── types.py
│   │   │   ├── utils.py
│   │   │   └── web
│   │   │       ├── __init__.py
│   │   │       ├── get_content.py
│   │   │       ├── llm_processing.py
│   │   │       ├── process_website.py
│   │   │       └── search_bing.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   └── test_tools.py
│   │   └── uv.lock
│   ├── mcp-server-bundle
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_bundle
│   │   │   ├── __init__.py
│   │   │   └── main.py
│   │   ├── pyinstaller.spec
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-filesystem
│   │   ├── .env.example
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── ci.yml
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_filesystem
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── server.py
│   │   │   └── start.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   └── test_filesystem.py
│   │   └── uv.lock
│   ├── mcp-server-filesystem-edit
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── data
│   │   │   ├── attachments
│   │   │   │   ├── Daily Game Ideas.txt
│   │   │   │   ├── Frontend Framework Proposal.txt
│   │   │   │   ├── ReDoodle.txt
│   │   │   │   └── Research Template.tex
│   │   │   ├── test_cases.yaml
│   │   │   └── transcripts
│   │   │       ├── transcript_research_simple.md
│   │   │       ├── transcript_Startup_Idea_1_202503031513.md
│   │   │       ├── transcript_Startup_Idea_2_202503031659.md
│   │   │       └── transcript_Web_Frontends_202502281551.md
│   │   ├── Makefile
│   │   ├── mcp_server_filesystem_edit
│   │   │   ├── __init__.py
│   │   │   ├── app_handling
│   │   │   │   ├── __init__.py
│   │   │   │   ├── excel.py
│   │   │   │   ├── miktex.py
│   │   │   │   ├── office_common.py
│   │   │   │   ├── powerpoint.py
│   │   │   │   └── word.py
│   │   │   ├── config.py
│   │   │   ├── evals
│   │   │   │   ├── __init__.py
│   │   │   │   ├── common.py
│   │   │   │   ├── run_comments.py
│   │   │   │   ├── run_edit.py
│   │   │   │   └── run_ppt_edit.py
│   │   │   ├── prompts
│   │   │   │   ├── __init__.py
│   │   │   │   ├── add_comments.py
│   │   │   │   ├── analyze_comments.py
│   │   │   │   ├── latex_edit.py
│   │   │   │   ├── markdown_draft.py
│   │   │   │   ├── markdown_edit.py
│   │   │   │   └── powerpoint_edit.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   ├── tools
│   │   │   │   ├── __init__.py
│   │   │   │   ├── add_comments.py
│   │   │   │   ├── edit_adapters
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── common.py
│   │   │   │   │   ├── latex.py
│   │   │   │   │   └── markdown.py
│   │   │   │   ├── edit.py
│   │   │   │   └── helpers.py
│   │   │   └── types.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   ├── app_handling
│   │   │   │   ├── test_excel.py
│   │   │   │   ├── test_miktext.py
│   │   │   │   ├── test_office_common.py
│   │   │   │   ├── test_powerpoint.py
│   │   │   │   └── test_word.py
│   │   │   ├── conftest.py
│   │   │   └── tools
│   │   │       └── edit_adapters
│   │   │           ├── test_latex.py
│   │   │           └── test_markdown.py
│   │   └── uv.lock
│   ├── mcp-server-fusion
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── AddInIcon.svg
│   │   ├── config.py
│   │   ├── FusionMCPServerAddIn.manifest
│   │   ├── FusionMCPServerAddIn.py
│   │   ├── mcp_server_fusion
│   │   │   ├── __init__.py
│   │   │   ├── fusion_mcp_server.py
│   │   │   ├── fusion_utils
│   │   │   │   ├── __init__.py
│   │   │   │   ├── event_utils.py
│   │   │   │   ├── general_utils.py
│   │   │   │   └── tool_utils.py
│   │   │   ├── mcp_tools
│   │   │   │   ├── __init__.py
│   │   │   │   ├── fusion_3d_operation.py
│   │   │   │   ├── fusion_geometry.py
│   │   │   │   ├── fusion_pattern.py
│   │   │   │   └── fusion_sketch.py
│   │   │   └── vendor
│   │   │       └── README.md
│   │   ├── README.md
│   │   └── requirements.txt
│   ├── mcp-server-giphy
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── giphy_search.py
│   │   │   ├── sampling.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   └── utils.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-memory-user-bio
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_memory_user_bio
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── server.py
│   │   │   └── start.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-memory-whiteboard
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_memory_whiteboard
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── server.py
│   │   │   └── start.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-office
│   │   ├── .env.example
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── build.sh
│   │   ├── data
│   │   │   ├── attachments
│   │   │   │   ├── Daily Game Ideas.txt
│   │   │   │   ├── Frontend Framework Proposal.txt
│   │   │   │   └── ReDoodle.txt
│   │   │   └── word
│   │   │       ├── test_cases.yaml
│   │   │       └── transcripts
│   │   │           ├── transcript_Startup_Idea_1_202503031513.md
│   │   │           ├── transcript_Startup_Idea_2_202503031659.md
│   │   │           └── transcript_Web_Frontends_202502281551.md
│   │   ├── Makefile
│   │   ├── mcp_server
│   │   │   ├── __init__.py
│   │   │   ├── app_interaction
│   │   │   │   ├── __init__.py
│   │   │   │   ├── excel_editor.py
│   │   │   │   ├── powerpoint_editor.py
│   │   │   │   └── word_editor.py
│   │   │   ├── config.py
│   │   │   ├── constants.py
│   │   │   ├── evals
│   │   │   │   ├── __init__.py
│   │   │   │   ├── common.py
│   │   │   │   ├── run_comment_analysis.py
│   │   │   │   ├── run_feedback.py
│   │   │   │   └── run_markdown_edit.py
│   │   │   ├── helpers.py
│   │   │   ├── markdown_edit
│   │   │   │   ├── __init__.py
│   │   │   │   ├── comment_analysis.py
│   │   │   │   ├── feedback_step.py
│   │   │   │   ├── markdown_edit.py
│   │   │   │   └── utils.py
│   │   │   ├── prompts
│   │   │   │   ├── __init__.py
│   │   │   │   ├── comment_analysis.py
│   │   │   │   ├── feedback.py
│   │   │   │   ├── markdown_draft.py
│   │   │   │   └── markdown_edit.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   └── types.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── tests
│   │   │   └── test_word_editor.py
│   │   └── uv.lock
│   ├── mcp-server-open-deep-research
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server
│   │   │   ├── __init__.py
│   │   │   ├── config.py
│   │   │   ├── libs
│   │   │   │   └── open_deep_research
│   │   │   │       ├── cookies.py
│   │   │   │       ├── mdconvert.py
│   │   │   │       ├── run_agents.py
│   │   │   │       ├── text_inspector_tool.py
│   │   │   │       ├── text_web_browser.py
│   │   │   │       └── visual_qa.py
│   │   │   ├── open_deep_research.py
│   │   │   ├── server.py
│   │   │   └── start.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   └── uv.lock
│   ├── mcp-server-open-deep-research-clone
│   │   ├── .env.example
│   │   ├── .gitignore
│   │   ├── .vscode
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── Makefile
│   │   ├── mcp_server_open_deep_research_clone
│   │   │   ├── __init__.py
│   │   │   ├── azure_openai.py
│   │   │   ├── config.py
│   │   │   ├── logging.py
│   │   │   ├── sampling.py
│   │   │   ├── server.py
│   │   │   ├── start.py
│   │   │   ├── utils.py
│   │   │   └── web_research.py
│   │   ├── pyproject.toml
│   │   ├── README.md
│   │   ├── test
│   │   │   └── test_open_deep_research_clone.py
│   │   └── uv.lock
│   ├── mcp-server-template
│   │   ├── .taplo.toml
│   │   ├── .vscode
│   │   │   └── settings.json
│   │   ├── copier.yml
│   │   ├── README.md
│   │   └── template
│   │       └── {{ project_slug }}
│   │           ├── .env.example.jinja
│   │           ├── .gitignore
│   │           ├── .vscode
│   │           │   ├── launch.json.jinja
│   │           │   └── settings.json
│   │           ├── {{ module_name }}
│   │           │   ├── __init__.py
│   │           │   ├── config.py.jinja
│   │           │   ├── server.py.jinja
│   │           │   └── start.py.jinja
│   │           ├── Makefile.jinja
│   │           ├── pyproject.toml.jinja
│   │           └── README.md.jinja
│   ├── mcp-server-vscode
│   │   ├── .eslintrc.cjs
│   │   ├── .gitignore
│   │   ├── .npmrc
│   │   ├── .vscode
│   │   │   ├── extensions.json
│   │   │   ├── launch.json
│   │   │   ├── settings.json
│   │   │   └── tasks.json
│   │   ├── .vscode-test.mjs
│   │   ├── .vscodeignore
│   │   ├── ASSISTANT_BOOTSTRAP.md
│   │   ├── eslint.config.mjs
│   │   ├── images
│   │   │   └── icon.png
│   │   ├── LICENSE
│   │   ├── Makefile
│   │   ├── out
│   │   │   ├── extension.d.ts
│   │   │   ├── extension.js
│   │   │   ├── test
│   │   │   │   ├── extension.test.d.ts
│   │   │   │   └── extension.test.js
│   │   │   ├── tools
│   │   │   │   ├── code_checker.d.ts
│   │   │   │   ├── code_checker.js
│   │   │   │   ├── debug_tools.d.ts
│   │   │   │   ├── debug_tools.js
│   │   │   │   ├── focus_editor.d.ts
│   │   │   │   ├── focus_editor.js
│   │   │   │   ├── search_symbol.d.ts
│   │   │   │   └── search_symbol.js
│   │   │   └── utils
│   │   │       ├── port.d.ts
│   │   │       └── port.js
│   │   ├── package.json
│   │   ├── pnpm-lock.yaml
│   │   ├── prettier.config.cjs
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── extension.d.ts
│   │   │   ├── extension.ts
│   │   │   ├── test
│   │   │   │   ├── extension.test.d.ts
│   │   │   │   └── extension.test.ts
│   │   │   ├── tools
│   │   │   │   ├── code_checker.d.ts
│   │   │   │   ├── code_checker.ts
│   │   │   │   ├── debug_tools.d.ts
│   │   │   │   ├── debug_tools.ts
│   │   │   │   ├── focus_editor.d.ts
│   │   │   │   ├── focus_editor.ts
│   │   │   │   ├── search_symbol.d.ts
│   │   │   │   └── search_symbol.ts
│   │   │   └── utils
│   │   │       ├── port.d.ts
│   │   │       └── port.ts
│   │   ├── tsconfig.json
│   │   ├── tsconfig.tsbuildinfo
│   │   ├── vsc-extension-quickstart.md
│   │   └── webpack.config.js
│   └── mcp-server-web-research
│       ├── .env.example
│       ├── .gitignore
│       ├── .vscode
│       │   ├── launch.json
│       │   └── settings.json
│       ├── Makefile
│       ├── mcp_server_web_research
│       │   ├── __init__.py
│       │   ├── azure_openai.py
│       │   ├── config.py
│       │   ├── logging.py
│       │   ├── sampling.py
│       │   ├── server.py
│       │   ├── start.py
│       │   ├── utils.py
│       │   └── web_research.py
│       ├── pyproject.toml
│       ├── README.md
│       ├── test
│       │   └── test_web_research.py
│       └── uv.lock
├── README.md
├── RESPONSIBLE_AI_FAQ.md
├── ruff.toml
├── SECURITY.md
├── semantic-workbench.code-workspace
├── SUPPORT.md
├── tools
│   ├── build_ai_context_files.py
│   ├── collect_files.py
│   ├── docker
│   │   ├── azure_website_sshd.conf
│   │   ├── docker-entrypoint.sh
│   │   ├── Dockerfile.assistant
│   │   └── Dockerfile.mcp-server
│   ├── makefiles
│   │   ├── docker-assistant.mk
│   │   ├── docker-mcp-server.mk
│   │   ├── docker.mk
│   │   ├── python.mk
│   │   ├── recursive.mk
│   │   └── shell.mk
│   ├── reset-service-data.ps1
│   ├── reset-service-data.sh
│   ├── run-app.ps1
│   ├── run-app.sh
│   ├── run-canonical-agent.ps1
│   ├── run-canonical-agent.sh
│   ├── run-dotnet-examples-with-aspire.sh
│   ├── run-python-example1.sh
│   ├── run-python-example2.ps1
│   ├── run-python-example2.sh
│   ├── run-service.ps1
│   ├── run-service.sh
│   ├── run-workbench-chatbot.ps1
│   └── run-workbench-chatbot.sh
├── workbench-app
│   ├── .dockerignore
│   ├── .env.example
│   ├── .eslintrc.cjs
│   ├── .gitignore
│   ├── .vscode
│   │   ├── launch.json
│   │   └── settings.json
│   ├── docker-entrypoint.sh
│   ├── Dockerfile
│   ├── docs
│   │   ├── APP_DEV_GUIDE.md
│   │   ├── MESSAGE_METADATA.md
│   │   ├── MESSAGE_TYPES.md
│   │   ├── README.md
│   │   └── STATE_INSPECTORS.md
│   ├── index.html
│   ├── Makefile
│   ├── nginx.conf
│   ├── package.json
│   ├── pnpm-lock.yaml
│   ├── prettier.config.cjs
│   ├── public
│   │   └── assets
│   │       ├── background-1-upscaled.jpg
│   │       ├── background-1-upscaled.png
│   │       ├── background-1.jpg
│   │       ├── background-1.png
│   │       ├── background-2.jpg
│   │       ├── background-2.png
│   │       ├── experimental-feature.jpg
│   │       ├── favicon.svg
│   │       ├── workflow-designer-1.jpg
│   │       ├── workflow-designer-outlets.jpg
│   │       ├── workflow-designer-states.jpg
│   │       └── workflow-designer-transitions.jpg
│   ├── README.md
│   ├── run.sh
│   ├── src
│   │   ├── components
│   │   │   ├── App
│   │   │   │   ├── AppFooter.tsx
│   │   │   │   ├── AppHeader.tsx
│   │   │   │   ├── AppMenu.tsx
│   │   │   │   ├── AppView.tsx
│   │   │   │   ├── CodeLabel.tsx
│   │   │   │   ├── CommandButton.tsx
│   │   │   │   ├── ConfirmLeave.tsx
│   │   │   │   ├── ContentExport.tsx
│   │   │   │   ├── ContentImport.tsx
│   │   │   │   ├── CopyButton.tsx
│   │   │   │   ├── DialogControl.tsx
│   │   │   │   ├── DynamicIframe.tsx
│   │   │   │   ├── ErrorListFromAppState.tsx
│   │   │   │   ├── ErrorMessageBar.tsx
│   │   │   │   ├── ExperimentalNotice.tsx
│   │   │   │   ├── FormWidgets
│   │   │   │   │   ├── BaseModelEditorWidget.tsx
│   │   │   │   │   ├── CustomizedArrayFieldTemplate.tsx
│   │   │   │   │   ├── CustomizedFieldTemplate.tsx
│   │   │   │   │   ├── CustomizedObjectFieldTemplate.tsx
│   │   │   │   │   └── InspectableWidget.tsx
│   │   │   │   ├── LabelWithDescription.tsx
│   │   │   │   ├── Loading.tsx
│   │   │   │   ├── MenuItemControl.tsx
│   │   │   │   ├── MiniControl.tsx
│   │   │   │   ├── MyAssistantServiceRegistrations.tsx
│   │   │   │   ├── MyItemsManager.tsx
│   │   │   │   ├── OverflowMenu.tsx
│   │   │   │   ├── PresenceMotionList.tsx
│   │   │   │   ├── ProfileSettings.tsx
│   │   │   │   └── TooltipWrapper.tsx
│   │   │   ├── Assistants
│   │   │   │   ├── ApplyConfigButton.tsx
│   │   │   │   ├── AssistantAdd.tsx
│   │   │   │   ├── AssistantConfigExportButton.tsx
│   │   │   │   ├── AssistantConfigImportButton.tsx
│   │   │   │   ├── AssistantConfiguration.tsx
│   │   │   │   ├── AssistantConfigure.tsx
│   │   │   │   ├── AssistantCreate.tsx
│   │   │   │   ├── AssistantDelete.tsx
│   │   │   │   ├── AssistantDuplicate.tsx
│   │   │   │   ├── AssistantExport.tsx
│   │   │   │   ├── AssistantImport.tsx
│   │   │   │   ├── AssistantRemove.tsx
│   │   │   │   ├── AssistantRename.tsx
│   │   │   │   ├── AssistantServiceInfo.tsx
│   │   │   │   ├── AssistantServiceMetadata.tsx
│   │   │   │   └── MyAssistants.tsx
│   │   │   ├── AssistantServiceRegistrations
│   │   │   │   ├── AssistantServiceRegistrationApiKey.tsx
│   │   │   │   ├── AssistantServiceRegistrationApiKeyReset.tsx
│   │   │   │   ├── AssistantServiceRegistrationCreate.tsx
│   │   │   │   └── AssistantServiceRegistrationRemove.tsx
│   │   │   ├── Conversations
│   │   │   │   ├── Canvas
│   │   │   │   │   ├── AssistantCanvas.tsx
│   │   │   │   │   ├── AssistantCanvasList.tsx
│   │   │   │   │   ├── AssistantInspector.tsx
│   │   │   │   │   ├── AssistantInspectorList.tsx
│   │   │   │   │   └── ConversationCanvas.tsx
│   │   │   │   ├── ChatInputPlugins
│   │   │   │   │   ├── ClearEditorPlugin.tsx
│   │   │   │   │   ├── LexicalMenu.ts
│   │   │   │   │   ├── ParticipantMentionsPlugin.tsx
│   │   │   │   │   ├── TypeaheadMenuPlugin.css
│   │   │   │   │   └── TypeaheadMenuPlugin.tsx
│   │   │   │   ├── ContentRenderers
│   │   │   │   │   ├── CodeContentRenderer.tsx
│   │   │   │   │   ├── ContentListRenderer.tsx
│   │   │   │   │   ├── ContentRenderer.tsx
│   │   │   │   │   ├── DiffRenderer.tsx
│   │   │   │   │   ├── HtmlContentRenderer.tsx
│   │   │   │   │   ├── JsonSchemaContentRenderer.tsx
│   │   │   │   │   ├── MarkdownContentRenderer.tsx
│   │   │   │   │   ├── MarkdownEditorRenderer.tsx
│   │   │   │   │   ├── MermaidContentRenderer.tsx
│   │   │   │   │   ├── MusicABCContentRenderer.css
│   │   │   │   │   └── MusicABCContentRenderer.tsx
│   │   │   │   ├── ContextWindow.tsx
│   │   │   │   ├── ConversationCreate.tsx
│   │   │   │   ├── ConversationDuplicate.tsx
│   │   │   │   ├── ConversationExport.tsx
│   │   │   │   ├── ConversationFileIcon.tsx
│   │   │   │   ├── ConversationRemove.tsx
│   │   │   │   ├── ConversationRename.tsx
│   │   │   │   ├── ConversationShare.tsx
│   │   │   │   ├── ConversationShareCreate.tsx
│   │   │   │   ├── ConversationShareList.tsx
│   │   │   │   ├── ConversationShareView.tsx
│   │   │   │   ├── ConversationsImport.tsx
│   │   │   │   ├── ConversationTranscript.tsx
│   │   │   │   ├── DebugInspector.tsx
│   │   │   │   ├── FileItem.tsx
│   │   │   │   ├── FileList.tsx
│   │   │   │   ├── InputAttachmentList.tsx
│   │   │   │   ├── InputOptionsControl.tsx
│   │   │   │   ├── InteractHistory.tsx
│   │   │   │   ├── InteractInput.tsx
│   │   │   │   ├── Message
│   │   │   │   │   ├── AttachmentSection.tsx
│   │   │   │   │   ├── ContentRenderer.tsx
│   │   │   │   │   ├── ContentSafetyNotice.tsx
│   │   │   │   │   ├── InteractMessage.tsx
│   │   │   │   │   ├── MessageActions.tsx
│   │   │   │   │   ├── MessageBase.tsx
│   │   │   │   │   ├── MessageBody.tsx
│   │   │   │   │   ├── MessageContent.tsx
│   │   │   │   │   ├── MessageFooter.tsx
│   │   │   │   │   ├── MessageHeader.tsx
│   │   │   │   │   ├── NotificationAccordion.tsx
│   │   │   │   │   └── ToolResultMessage.tsx
│   │   │   │   ├── MessageDelete.tsx
│   │   │   │   ├── MessageLink.tsx
│   │   │   │   ├── MyConversations.tsx
│   │   │   │   ├── MyShares.tsx
│   │   │   │   ├── ParticipantAvatar.tsx
│   │   │   │   ├── ParticipantAvatarGroup.tsx
│   │   │   │   ├── ParticipantItem.tsx
│   │   │   │   ├── ParticipantList.tsx
│   │   │   │   ├── ParticipantStatus.tsx
│   │   │   │   ├── RewindConversation.tsx
│   │   │   │   ├── ShareRemove.tsx
│   │   │   │   ├── SpeechButton.tsx
│   │   │   │   └── ToolCalls.tsx
│   │   │   └── FrontDoor
│   │   │       ├── Chat
│   │   │       │   ├── AssistantDrawer.tsx
│   │   │       │   ├── CanvasDrawer.tsx
│   │   │       │   ├── Chat.tsx
│   │   │       │   ├── ChatCanvas.tsx
│   │   │       │   ├── ChatControls.tsx
│   │   │       │   └── ConversationDrawer.tsx
│   │   │       ├── Controls
│   │   │       │   ├── AssistantCard.tsx
│   │   │       │   ├── AssistantSelector.tsx
│   │   │       │   ├── AssistantServiceSelector.tsx
│   │   │       │   ├── ConversationItem.tsx
│   │   │       │   ├── ConversationList.tsx
│   │   │       │   ├── ConversationListOptions.tsx
│   │   │       │   ├── NewConversationButton.tsx
│   │   │       │   ├── NewConversationForm.tsx
│   │   │       │   └── SiteMenuButton.tsx
│   │   │       ├── GlobalContent.tsx
│   │   │       └── MainContent.tsx
│   │   ├── Constants.ts
│   │   ├── global.d.ts
│   │   ├── index.css
│   │   ├── libs
│   │   │   ├── AppStorage.ts
│   │   │   ├── AuthHelper.ts
│   │   │   ├── EventSubscriptionManager.ts
│   │   │   ├── Theme.ts
│   │   │   ├── useAssistantCapabilities.ts
│   │   │   ├── useChatCanvasController.ts
│   │   │   ├── useConversationEvents.ts
│   │   │   ├── useConversationUtility.ts
│   │   │   ├── useCreateConversation.ts
│   │   │   ├── useDebugComponentLifecycle.ts
│   │   │   ├── useDragAndDrop.ts
│   │   │   ├── useEnvironment.ts
│   │   │   ├── useExportUtility.ts
│   │   │   ├── useHistoryUtility.ts
│   │   │   ├── useKeySequence.ts
│   │   │   ├── useMediaQuery.ts
│   │   │   ├── useMicrosoftGraph.ts
│   │   │   ├── useNotify.tsx
│   │   │   ├── useParticipantUtility.tsx
│   │   │   ├── useSiteUtility.ts
│   │   │   ├── useWorkbenchEventSource.ts
│   │   │   ├── useWorkbenchService.ts
│   │   │   └── Utility.ts
│   │   ├── main.tsx
│   │   ├── models
│   │   │   ├── Assistant.ts
│   │   │   ├── AssistantCapability.ts
│   │   │   ├── AssistantServiceInfo.ts
│   │   │   ├── AssistantServiceRegistration.ts
│   │   │   ├── Config.ts
│   │   │   ├── Conversation.ts
│   │   │   ├── ConversationFile.ts
│   │   │   ├── ConversationMessage.ts
│   │   │   ├── ConversationMessageDebug.ts
│   │   │   ├── ConversationParticipant.ts
│   │   │   ├── ConversationShare.ts
│   │   │   ├── ConversationShareRedemption.ts
│   │   │   ├── ConversationState.ts
│   │   │   ├── ConversationStateDescription.ts
│   │   │   ├── ServiceEnvironment.ts
│   │   │   └── User.ts
│   │   ├── redux
│   │   │   ├── app
│   │   │   │   ├── hooks.ts
│   │   │   │   ├── rtkQueryErrorLogger.ts
│   │   │   │   └── store.ts
│   │   │   └── features
│   │   │       ├── app
│   │   │       │   ├── appSlice.ts
│   │   │       │   └── AppState.ts
│   │   │       ├── chatCanvas
│   │   │       │   ├── chatCanvasSlice.ts
│   │   │       │   └── ChatCanvasState.ts
│   │   │       ├── localUser
│   │   │       │   ├── localUserSlice.ts
│   │   │       │   └── LocalUserState.ts
│   │   │       └── settings
│   │   │           ├── settingsSlice.ts
│   │   │           └── SettingsState.ts
│   │   ├── Root.tsx
│   │   ├── routes
│   │   │   ├── AcceptTerms.tsx
│   │   │   ├── AssistantEditor.tsx
│   │   │   ├── AssistantServiceRegistrationEditor.tsx
│   │   │   ├── Dashboard.tsx
│   │   │   ├── ErrorPage.tsx
│   │   │   ├── FrontDoor.tsx
│   │   │   ├── Login.tsx
│   │   │   ├── Settings.tsx
│   │   │   ├── ShareRedeem.tsx
│   │   │   └── Shares.tsx
│   │   ├── services
│   │   │   └── workbench
│   │   │       ├── assistant.ts
│   │   │       ├── assistantService.ts
│   │   │       ├── conversation.ts
│   │   │       ├── file.ts
│   │   │       ├── index.ts
│   │   │       ├── participant.ts
│   │   │       ├── share.ts
│   │   │       ├── state.ts
│   │   │       └── workbench.ts
│   │   └── vite-env.d.ts
│   ├── tools
│   │   └── filtered-ts-prune.cjs
│   ├── tsconfig.json
│   └── vite.config.ts
└── workbench-service
    ├── .env.example
    ├── .vscode
    │   ├── extensions.json
    │   ├── launch.json
    │   └── settings.json
    ├── alembic.ini
    ├── devdb
    │   ├── docker-compose.yaml
    │   └── postgresql-init.sh
    ├── Dockerfile
    ├── Makefile
    ├── migrations
    │   ├── env.py
    │   ├── README
    │   ├── script.py.mako
    │   └── versions
    │       ├── 2024_09_19_000000_69dcda481c14_init.py
    │       ├── 2024_09_19_190029_dffb1d7e219a_file_version_filename.py
    │       ├── 2024_09_20_204130_b29524775484_share.py
    │       ├── 2024_10_30_231536_039bec8edc33_index_message_type.py
    │       ├── 2024_11_04_204029_5149c7fb5a32_conversationmessagedebug.py
    │       ├── 2024_11_05_015124_245baf258e11_double_check_debugs.py
    │       ├── 2024_11_25_191056_a106de176394_drop_workflow.py
    │       ├── 2025_03_19_140136_aaaf792d4d72_set_user_title_set.py
    │       ├── 2025_03_21_153250_3763629295ad_add_assistant_template_id.py
    │       ├── 2025_05_19_163613_b2f86e981885_delete_context_transfer_assistants.py
    │       └── 2025_06_18_174328_503c739152f3_delete_knowlege_transfer_assistants.py
    ├── pyproject.toml
    ├── README.md
    ├── semantic_workbench_service
    │   ├── __init__.py
    │   ├── api.py
    │   ├── assistant_api_key.py
    │   ├── auth.py
    │   ├── azure_speech.py
    │   ├── config.py
    │   ├── controller
    │   │   ├── __init__.py
    │   │   ├── assistant_service_client_pool.py
    │   │   ├── assistant_service_registration.py
    │   │   ├── assistant.py
    │   │   ├── conversation_share.py
    │   │   ├── conversation.py
    │   │   ├── convert.py
    │   │   ├── exceptions.py
    │   │   ├── export_import.py
    │   │   ├── file.py
    │   │   ├── participant.py
    │   │   └── user.py
    │   ├── db.py
    │   ├── event.py
    │   ├── files.py
    │   ├── logging_config.py
    │   ├── middleware.py
    │   ├── query.py
    │   ├── service_user_principals.py
    │   ├── service.py
    │   └── start.py
    ├── tests
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── docker-compose.yaml
    │   ├── test_assistant_api_key.py
    │   ├── test_files.py
    │   ├── test_integration.py
    │   ├── test_middleware.py
    │   ├── test_migrations.py
    │   ├── test_workbench_service.py
    │   └── types.py
    └── uv.lock
```
# Files
--------------------------------------------------------------------------------
/libraries/python/openai-client/openai_client/chat_driver/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Chat Driver
 2 | 
 3 | This is a wrapper around the OpenAI Chat Completion library that gives you a
 4 | "ChatGPT"-like interface.
 5 | 
 6 | You can register functions to be used as either _commands_ (allowing the user to
 7 | issue them with a `/<cmd>` message) or _tool functions_ (allowing the assistant
 8 | to optionally call them as it generates a response) or both.
 9 | 
10 | Chat history is maintained for you in-memory. We also provide a local message
11 | provider that will store chat history in a file, or you can implement your own
12 | message provider.
13 | 
14 | All interactions with the OpenAI are saved as "metadata" on the request allowing
15 | you to do whatever you'd like with it. It is logged for you.
16 | 
17 | For users of the Semantic Workbench, an additional module is provided to make it
18 | simple to create an AsyncClient from Workbench-type config.
19 | 
20 | See [this notebook](../skills/notebooks/notebooks/chat_driver.ipynb) for
21 | usage examples.
22 | 
```
--------------------------------------------------------------------------------
/libraries/python/semantic-workbench-assistant/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Semantic Workbench Assistant
 2 | 
 3 | Base class and utilities for creating an assistant within the Semantic Workbench.
 4 | 
 5 | ## Assistant Templates
 6 | 
 7 | The Semantic Workbench supports assistant templates, allowing assistant services to provide multiple types of assistants with different configurations. Each template includes a unique ID, name, description, and default configuration. When users create a new assistant, they select from available templates rather than configuring an assistant from scratch.
 8 | 
 9 | To implement templates for your assistant service, define them in your service configuration and return them as part of your service info response.
10 | 
11 | ## Start canonical assistant
12 | 
13 | The repository contains a canonical assistant without any AI features, that can be used as starting point to create custom agents.
14 | 
15 | To start the canonical assistant:
16 | 
17 | ```sh
18 | cd workbench-service
19 | start-assistant semantic_workbench_assistant.canonical:app
20 | ```
21 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-web-research/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Web Research MCP Server
 2 | 
 3 | Uses the web to research a given topic.
 4 | 
 5 | This is a [Model Context Protocol](https://github.com/modelcontextprotocol) (MCP) server project.
 6 | 
 7 | ## Setup and Installation
 8 | 
 9 | Simply run:
10 | 
11 | ```bash
12 | make
13 | ```
14 | 
15 | To create the virtual environment and install dependencies.
16 | 
17 | ### Running the Server
18 | 
19 | Use the VSCode launch configuration, or run manually:
20 | 
21 | Defaults to stdio transport:
22 | 
23 | ```bash
24 | uv run mcp-server-web-research
25 | ```
26 | 
27 | For SSE transport:
28 | 
29 | ```bash
30 | uv run mcp-server-web-research --transport sse --port 6060
31 | ```
32 | 
33 | The SSE URL is:
34 | 
35 | ```bash
36 | http://127.0.0.1:45567/sse
37 | ```
38 | 
39 | ## Client Configuration
40 | 
41 | To use this MCP server in your setup, consider the following configuration:
42 | 
43 | ### Stdio
44 | 
45 | ```json
46 | {
47 |   "mcpServers": {
48 |     "mcp-server-web-research": {
49 |       "command": "uv",
50 |       "args": ["run", "-m", "mcp_server_web_research.start"]
51 |     }
52 |   }
53 | }
54 | ```
55 | 
56 | ### SSE
57 | 
58 | ```json
59 | {
60 |   "mcpServers": {
61 |     "mcp-server-web-research": {
62 |       "command": "http://127.0.0.1:6060/sse",
63 |       "args": []
64 |     }
65 |   }
66 | }
67 | ```
68 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-template/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # 📦 Copier Template for MCP Server Projects
 2 | 
 3 | This directory contains a **Copier template** that can be used to generate new MCP Server projects quickly.
 4 | 
 5 | ## How to Use This Template
 6 | 
 7 | ### **Generate a New MCP Server Project from This Template**
 8 | 
 9 | Run the following command from anywhere:
10 | 
11 | ```bash
12 | uvx copier copy path/to/template path/to/destination
13 | ```
14 | 
15 | 🔹 **`path/to/template`** → Path to the same directory that this README.md is in.
16 | 🔹 **`path/to/destination`** → Replace with the directory where you want the new project.
17 | 
18 | **Example:**
19 | 
20 | ```bash
21 | # from the {repo_root}/mcp-server directory
22 | uvx copier copy mcp-server-template .
23 | ```
24 | 
25 | This will prompt you to fill in project details and generate a new project inside `{repo_root}/mcp-servers/{your_mcp_server}`.
26 | 
27 | ---
28 | 
29 | ## Updating an Existing Project
30 | 
31 | If you need to apply updates from this template to an existing project, use:
32 | 
33 | ```bash
34 | uvx copier update path/to/existing_project
35 | ```
36 | 
37 | This will merge the latest template changes into your project while preserving custom modifications.
38 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-memory-whiteboard/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Whiteboard Memory MCP Server
 2 | 
 3 | Stores working memory in a format analogous to a whiteboard
 4 | 
 5 | This is a [Model Context Protocol](https://github.com/modelcontextprotocol) (MCP) server project.
 6 | 
 7 | ## Setup and Installation
 8 | 
 9 | Simply run:
10 | 
11 | ```bash
12 | make
13 | ```
14 | 
15 | To create the virtual environment and install dependencies.
16 | 
17 | ### Running the Server
18 | 
19 | Use the VSCode launch configuration, or run manually:
20 | 
21 | Defaults to stdio transport:
22 | 
23 | ```bash
24 | uv run mcp-server-memory-whiteboard
25 | ```
26 | 
27 | For SSE transport:
28 | 
29 | ```bash
30 | uv run mcp-server-memory-whiteboard --transport sse --port
31 | ```
32 | 
33 | The SSE URL is:
34 | 
35 | ```bash
36 | http://127.0.0.1:/sse
37 | ```
38 | 
39 | ## Client Configuration
40 | 
41 | To use this MCP server in your setup, consider the following configuration:
42 | 
43 | ### Stdio
44 | 
45 | ```json
46 | {
47 |   "mcpServers": {
48 |     "mcp-server-memory-whiteboard": {
49 |       "command": "uv",
50 |       "args": ["run", "-m", "mcp_server_memory_whiteboard.start"]
51 |     }
52 |   }
53 | }
54 | ```
55 | 
56 | ### SSE
57 | 
58 | ```json
59 | {
60 |   "mcpServers": {
61 |     "mcp-server-memory-whiteboard": {
62 |       "command": "http://127.0.0.1:/sse",
63 |       "args": []
64 |     }
65 |   }
66 | }
67 | ```
68 | 
```
--------------------------------------------------------------------------------
/libraries/python/content-safety/content_safety/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Content Safety Module Internal Structure
 2 | 
 3 | This directory contains the implementation of content safety evaluators for the Semantic Workbench.
 4 | 
 5 | ## Directory Structure
 6 | 
 7 | - `evaluators/` - Base evaluator interfaces and implementations
 8 |   - `azure_content_safety/` - Azure Content Safety API implementation
 9 |   - `openai_moderations/` - OpenAI Moderations API implementation
10 | 
11 | ## Implementation Details
12 | 
13 | The module is designed with a plugin architecture to support multiple content safety providers:
14 | 
15 | 1. Each provider has its own subdirectory with:
16 |    - `evaluator.py` - Implementation of the ContentSafetyEvaluator interface
17 |    - `config.py` - Pydantic configuration model with UI annotations
18 |    - `__init__.py` - Exports for the module
19 | 
20 | 2. The `CombinedContentSafetyEvaluator` serves as a factory that:
21 |    - Takes a configuration that specifies which provider to use
22 |    - Instantiates the appropriate evaluator based on the configuration
23 |    - Delegates evaluation requests to the selected provider
24 | 
25 | This architecture makes it easy to add new providers while maintaining a consistent API.
26 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-open-deep-research-clone/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Open Deep Research Clone MCP Server
 2 | 
 3 | Uses the web to research a given topic.
 4 | 
 5 | This is a [Model Context Protocol](https://github.com/modelcontextprotocol) (MCP) server project.
 6 | 
 7 | ## Setup and Installation
 8 | 
 9 | Simply run:
10 | 
11 | ```bash
12 | make
13 | ```
14 | 
15 | To create the virtual environment and install dependencies.
16 | 
17 | ### Running the Server
18 | 
19 | Use the VSCode launch configuration, or run manually:
20 | 
21 | Defaults to stdio transport:
22 | 
23 | ```bash
24 | uv run mcp-server-open-deep-research-clone
25 | ```
26 | 
27 | For SSE transport:
28 | 
29 | ```bash
30 | uv run mcp-server-open-deep-research-clone --transport sse --port 6061
31 | ```
32 | 
33 | The SSE URL is:
34 | 
35 | ```bash
36 | http://127.0.0.1:45567/sse
37 | ```
38 | 
39 | ## Client Configuration
40 | 
41 | To use this MCP server in your setup, consider the following configuration:
42 | 
43 | ### Stdio
44 | 
45 | ```json
46 | {
47 |   "mcpServers": {
48 |     "mcp-server-open-deep-research-clone": {
49 |       "command": "uv",
50 |       "args": ["run", "-m", "mcp_server_open_deep_research_clone.start"]
51 |     }
52 |   }
53 | }
54 | ```
55 | 
56 | ### SSE
57 | 
58 | ```json
59 | {
60 |   "mcpServers": {
61 |     "mcp-server-open-deep-research-clone": {
62 |       "command": "http://127.0.0.1:6061/sse",
63 |       "args": []
64 |     }
65 |   }
66 | }
67 | ```
68 | 
```
--------------------------------------------------------------------------------
/workbench-app/docs/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Workbench App Documentation
 2 | 
 3 | This directory contains documentation specific to the Semantic Workbench React application.
 4 | 
 5 | ## Core Documentation
 6 | 
 7 | - [App Development Guide](./APP_DEV_GUIDE.md) - Comprehensive guide for developing the application
 8 | - [Message Types](./MESSAGE_TYPES.md) - Different message types supported in the system
 9 | - [Message Metadata](./MESSAGE_METADATA.md) - Metadata structure and usage for messages
10 | - [State Inspectors](./STATE_INSPECTORS.md) - Using and implementing state inspectors
11 | 
12 | ## Key Development Principles
13 | 
14 | The Semantic Workbench application follows these key principles:
15 | 
16 | 1. **Component Library**: Uses Fluent UI React v9 and Fluent Copilot components
17 | 2. **Form Generation**: Uses React JSON Schema Form (@rjsf) for all configuration interfaces
18 | 3. **State Management**: Uses Redux Toolkit for centralized state
19 | 4. **Type Safety**: Leverages TypeScript throughout the codebase
20 | 
21 | See the [App Development Guide](./APP_DEV_GUIDE.md) for detailed guidance on these principles.
22 | 
23 | ## Contributing
24 | 
25 | When contributing to the Workbench App, please follow the existing patterns and principles documented here. Pay special attention to the [Design Principles and Technical Standards](./APP_DEV_GUIDE.md#design-principles-and-technical-standards) section.
```
--------------------------------------------------------------------------------
/mcp-servers/ai-assist-content/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Model Context Protocol (MCP)
 2 | 
 3 | ## Overview
 4 | 
 5 | The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Whether you're building an AI-powered IDE, enhancing a chat interface, or creating custom AI workflows, MCP provides a standardized way to connect LLMs with the context they need.
 6 | 
 7 | ## This Folder, `ai-assist-content`
 8 | 
 9 | This folder contains files that may be useful to provide to any assistants that are helping with a project
10 | that uses the Model Context Protocol (MCP).
11 | 
12 | ### Files
13 | 
14 | - [mcp-llms-full.txt](./mcp-llms-full.txt): text version of the full documentation at https://modelcontextprotocol.io/
15 | - [mcp-python-sdk-README.md](./mcp-python-sdk-README.md): README from the Python SDK at https://github.com/modelcontextprotocol/python-sdk
16 | - [mcp-typescript-sdk-README.md](./mcp-typescript-sdk-README.md): README from the TypeScript SDK at https://github.com/modelcontextprotocol/typescript-sdk
17 | 
18 | ## MPC Server Template
19 | 
20 | There is a `copier` template available to quickly generate a new MCP Server project. See the [MCP Server Template README](../mcp-server-template/README.md) for more information.
21 | 
22 | Users can generate a new MCP Server project from this template with the following command:
23 | 
24 | ```bash
25 | copier copy path/to/mcp-server-template path/to/destination
26 | ```
27 | 
28 | - last updated 2/12/25
29 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-open-deep-research/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Open Deep Research MCP Server
 2 | 
 3 | This is a [Model Context Protocol](https://github.com/modelcontextprotocol) (MCP) server that wraps the [HuggingFace Open Deep Research](https://github.com/huggingface/smolagents/tree/main/examples/open_deep_research) project, built on their [smolagents](https://github.com/huggingface/smolagents) library, making the project available for use with MCP clients, such as AI assistants.
 4 | 
 5 | This is an early work-in-progress, has limited testing, and requires access to API's that will be replaced in the near future. For now, the following API keys are required to be set in the environment or in a `.env` file (see `.env.example`):
 6 | 
 7 | - OpenAI API Key: https://platform.openai.com/
 8 | - HuggingFace API Key: https://huggingface.co/
 9 | - SERP API Key: https://serpapi.com/
10 | 
11 | ## Setup and Installation
12 | 
13 | Simply run:
14 | 
15 | ```bash
16 | make
17 | ```
18 | 
19 | To create the virtual environment and install dependencies.
20 | 
21 | ### Running the Server
22 | 
23 | Use the VSCode launch configuration, or run manually:
24 | 
25 | Defaults to stdio transport:
26 | 
27 | ```bash
28 | uv run -m mcp_server.start
29 | ```
30 | 
31 | For SSE transport:
32 | 
33 | ```bash
34 | uv run -m mcp_server.start --transport sse --port 6020
35 | ```
36 | 
37 | The SSE URL is:
38 | 
39 | ```bash
40 | http://127.0.0.1:6020/sse
41 | ```
42 | 
43 | ## Client Configuration
44 | 
45 | To use this MCP server in your setup, consider the following configuration:
46 | 
47 | ### Stdio
48 | 
49 | ```json
50 | {
51 |   "mcpServers": {
52 |     "open-deep-research": {
53 |       "command": "uv",
54 |       "args": ["run", "-m", "mcp_server.start"]
55 |     }
56 |   }
57 | }
58 | ```
59 | 
60 | ### SSE
61 | 
62 | ```json
63 | {
64 |   "mcpServers": {
65 |     "open-deep-research": {
66 |       "command": "http://127.0.0.1:6020/sse",
67 |       "args": []
68 |     }
69 |   }
70 | }
71 | ```
72 | 
```
--------------------------------------------------------------------------------
/libraries/dotnet/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Semantic Workbench
 2 | 
 3 | Semantic Workbench is a versatile tool designed for quickly prototyping intelligent assistants.
 4 | Whether you're building new assistants or integrating existing ones, the workbench offers a unified
 5 | interface for managing conversations, configuring settings, and customizing behavior.
 6 | 
 7 | # Connector
 8 | 
 9 | The Connector allows to seamlessly integrate .NET agents, built with any framework, into Semantic
10 | Workbench. By using HTTP for communication, the connector enables your agent to handle instructions
11 | and exchange data with both the frontend and backend of Semantic Workbench.
12 | 
13 | # Setup Guide
14 | 
15 | To integrate your agent:
16 | 
17 | 1. Add the `Microsoft.SemanticWorkbench.Connector` nuget to the .NET project containing your agent.
18 | 
19 | 2. **Define an agent configuration**: Create a configuration class for your agent. This can be empty
20 |    if no configuration is needed from the workbench UI.
21 | 
22 | 3. **Extend Agent Functionality**: Inherit from `Microsoft.SemanticWorkbench.Connector.AgentBase`
23 |    and implement the `GetDefaultConfig` and `ParseConfig` methods in your agent class. Examples
24 |    are available in the repository.
25 | 
26 | 4. **Create a Connector**: Implement `Microsoft.SemanticWorkbench.Connector.WorkbenchConnector` and
27 |    its `CreateAgentAsync` method to allow the workbench to create multiple agent instances.
28 | 
29 | 5. Start a `Microsoft.SemanticWorkbench.Connector.WorkbenchConnector` calling the `ConnectAsync`
30 |    method.
31 | 
32 | 6. Start a Web service using the endpoints defined in `Microsoft.SemanticWorkbench.Connector.Webservice`.
33 | 
34 | # Examples
35 | 
36 | Find sample .NET agents and assistants using this connector in the
37 | [official repository](https://github.com/microsoft/semanticworkbench/tree/main/examples).
38 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-giphy/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # MCP GIPHY Server
 2 | 
 3 | ## Overview
 4 | 
 5 | This project implements a Model Context Protocol (MCP) server integration with the GIPHY API. The server allows an assistant to submit recent chat history ('context') and a search term to retrieve a list of candidate results from GIPHY and load their image data.
 6 | 
 7 | ## Features
 8 | 
 9 | - **Search and Retrieve:** Uses the GIPHY API to search for images based on a provided search term.
10 | - (Future) **Sampling:** Employs the MCP "sampling" feature to request the assistant to choose the most appropriate image for the context.
11 | - **Integration:** The selected GIPHY image and its metadata are returned to the original assistant tool call, enabling it to be included in assistant responses to users.
12 | 
13 | ## Setup and Installation
14 | 
15 | Simply run:
16 | 
17 | ```bash
18 | make
19 | ```
20 | 
21 | To create the virtual environment and install dependencies.
22 | 
23 | ### Running the Server
24 | 
25 | Use the VSCode launch configuration, or run manually:
26 | 
27 | Defaults to stdio transport:
28 | 
29 | ```bash
30 | uv run -m mcp_server.start
31 | ```
32 | 
33 | For SSE transport:
34 | 
35 | ```bash
36 | uv run -m mcp_server.start --transport sse --port 6020
37 | ```
38 | 
39 | The SSE URL is:
40 | 
41 | ```bash
42 | http://127.0.0.1:6000/sse
43 | ```
44 | 
45 | ## Client Configuration
46 | 
47 | To use this MCP server in your setup, consider the following configuration:
48 | 
49 | ### UV - Local files
50 | 
51 | ```json
52 | {
53 |   "mcpServers": {
54 |     "giphy-server": {
55 |       "command": "uv",
56 |       "args": ["run", "-m", "mcp_server.start"],
57 |       "env": {
58 |         "GIPHY_API_KEY": "YOUR_GIPHY_API_KEY"
59 |       }
60 |     }
61 |   }
62 | }
63 | ```
64 | 
65 | ### SSE
66 | 
67 | ```json
68 | {
69 |   "mcpServers": {
70 |     "giphy-server": {
71 |       "command": "http://127.0.0.1:6000/sse",
72 |       "args": []
73 |     }
74 |   }
75 | }
76 | ```
77 | 
78 | Ensure that `GIPHY_API_KEY` is set in your environment so that the server can authenticate with the GIPHY API.
79 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-memory-user-bio/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Memory - User Bio MCP Server
 2 | 
 3 | Allows saving of memories across conversations related to user interests, preferences, and ongoing projects.
 4 | 
 5 | This is a [Model Context Protocol](https://github.com/modelcontextprotocol) (MCP) server project.
 6 | 
 7 | ## Setup and Installation
 8 | 
 9 | Simply run:
10 | 
11 | ```bash
12 | make
13 | ```
14 | 
15 | To create the virtual environment and install dependencies.
16 | 
17 | ### Running the Server
18 | 
19 | Use the VSCode launch configuration, or run manually:
20 | 
21 | Defaults to stdio transport:
22 | 
23 | ```bash
24 | uv run mcp-server-memory-user-bio
25 | ```
26 | 
27 | For SSE transport:
28 | 
29 | ```bash
30 | uv run mcp-server-memory-user-bio --transport sse --port 34737
31 | ```
32 | 
33 | The SSE URL is:
34 | 
35 | ```bash
36 | http://127.0.0.1:34737/sse
37 | ```
38 | 
39 | ## Client Configuration
40 | 
41 | To use this MCP server in your setup, consider the following configuration:
42 | 
43 | ### Stdio
44 | 
45 | ```json
46 | {
47 |   "mcpServers": {
48 |     "mcp-server-memory-user-bio": {
49 |       "command": "uv",
50 |       "args": ["run", "-m", "mcp_server_memory_user_bio.start"]
51 |     }
52 |   }
53 | }
54 | ```
55 | 
56 | ### SSE
57 | 
58 | ```json
59 | {
60 |   "mcpServers": {
61 |     "mcp-server-memory-user-bio": {
62 |       "command": "http://127.0.0.1:34737/sse",
63 |       "args": []
64 |     }
65 |   }
66 | }
67 | ```
68 | 
69 | ## Optional roots
70 | 
71 | For MCP clients that support specifying roots, such as the Codespace assistant, the
72 | following roots are optional and can be used to customize the behavior of the server:
73 | - `user-timezone`: The user's timezone, which will be used to determine the date a memory was created. URI can be any schema. The host and path will be used as the timezone. For example, `user-timezone://America/New_York` will be used as `America/New_York`.
74 | - `session-id`: The session ID, which will be used to identify the session, for separation of memories by session. URI can be any schema. The host and path will be used as the session ID. For example, `session-id://123456` will be used as `123456`.
75 | 
```
--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/write_hackerone_report/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # `write_hackerone_report` Pattern
 2 | 
 3 | ## Description
 4 | 
 5 | The `write_hackerone_report` pattern is designed to assist a bug bounty hunter with writing a bug bounty report for the HackerOne platform. It knows the structure that is normally in place on HackerOne, and is instructed on how to extrapolate from requests, responses, and comments, what the report should be about and how to create steps to reproduce for that vulnerability. 
 6 | 
 7 | **This is version 0.1**. Please improve this prompt.
 8 | 
 9 | ## Functionality
10 | 
11 | - Reviews the requests provided
12 | - Reviews the responses provided
13 | - Reviews the comments provided
14 | - Generates a report which can be copy-pasted into HackerOne and adjusted for details.
15 | 
16 | ### Use cases
17 | 
18 | 1. This can be helpful for dynamic report generation for automation
19 | 2. This can be helpful when integrated with a Caido or Burp plugin to rapidly generate reports
20 | 3. This can be helpful when generating reports from the command-line
21 | 
22 | ## Usage
23 | 
24 | This pattern is intended to be used with the `bbReportFormatter` tool which can be found here: https://github.com/rhynorater/bbReportFormatter
25 | 
26 | This utility automatically helps with the format that this pattern ingests which looks like this:
27 | 
28 | Request 1:
29 | ```
30 | GET /...
31 | ```
32 | Response 1:
33 | ```
34 | HTTP/1.1 200 found...
35 | ```
36 | Comment 1:
37 | ```
38 | This request is vulnerable to blah blah blah
39 | ```
40 | 
41 | So, you'll add requests/responses to the report by using `cat req | bbReportFormatter`.
42 | You'll add comments to the report using `echo "This request is vulnerable to blah blah blah" | bbReportFormatter`.
43 | 
44 | Then, when you run `bbReportFromatter --print-report` it will output the above, `write_hackerone_report` format.
45 | 
46 | So, in the end, this usage will be `bbReportFormatter --print-report | fabric -sp write_hackerone_report`.
47 | 
48 | 
49 | ## Meta
50 | 
51 | - **Author**: Justin Gardner (@Rhynorater)
52 | - **Version Information**: 0.1
53 | - **Published**: Jul 3, 2024
54 | 
55 | 
```
--------------------------------------------------------------------------------
/libraries/python/assistant-data-gen/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Data Generation
 2 | 
 3 | This is a tool for generating data for testing Semantic Workbench assistants.
 4 | 
 5 | The core functionality of this library is an automation to populate a Workbench conversation automatically without human intervention.
 6 | This is implemented using a specialized version of the guided conversation engine (GCE).
 7 | The GCE here focuses on the agenda and using an exact resource constraint to force the GCE to have a long running conversation.
 8 | 
 9 | There is also a quick `generate_scenario.py` script that can be used to generate new scenarios based on your existing configuration.
10 | 
11 | ### Setup
12 | 
13 | 1. Run the workbench service running locally (at http://127.0.0.1:3000), an assistant service, and create the assistant you want to test.
14 | 2. Have LLM provider configured. Check [pydantic_ai_utils.py](./assistant_data_gen/pydantic_ai_utils.py) for an example of how it is configured for Pydantic AI.
15 |    1. For example, create a `.env` file with your Azure OpenAI endpoint set as `ASSISTANT__AZURE_OPENAI_ENDPOINT=<your_endpoint>`
16 | 3. Create a configuration file. See [document_assistant_example_config.yaml](./configs/document_assistant_example_config.yaml) for an example.
17 |    1. The scenarios field is a list that allows you to specify multiple test scenarios (different conversation paths).
18 | 
19 | ### Run
20 | 
21 | Use this command to run with a custom configuration file and a specific scenario in that file:
22 | 
23 | ```bash
24 | python scripts/gce_simulation.py --config path/to/custom_config.yaml --scenario-idx 0
25 | ```
26 | 
27 | Run the generate script to generate a new scenario based on the current configuration:
28 | 
29 | ```bash
30 | python scripts/generate_scenario.py --config path/to/custom_config.yaml
31 | ```
32 | 
33 | ### Recommendations
34 | 1. Be as specific as possible with your conversation flows. Generic conversation flows and/or resource constraints that are too high can lead to the agents getting stuck in a thank you loop.
35 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-bing-search/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Bing Search MCP Server
 2 | 
 3 | Searches the web and reads links
 4 | 
 5 | This is a [Model Context Protocol](https://github.com/modelcontextprotocol) (MCP) server project.
 6 | 
 7 | ## Tools
 8 | 
 9 | ### `search(query: str) -> str`
10 | 
11 | - Calls the Bing Search API with the provided query.
12 | - Processes each URL from the search results:
13 |   - Gets the content of the page
14 |   - Converts it to Markdown using Markitdown
15 |   - Parses out links separately. Caches a unique hash to associate with each link.
16 |   - (Optional, on by default) Uses sampling to select the most important links to return.
17 |   - (Optional, on by default) Filters out the Markdown content to the most important parts.
18 | - Returns the processed content and links as a LLM-friendly string.
19 | 
20 | ### `click(hashes: list[str]) -> str`
21 | 
22 | - Takes a list of hashes (which originate from the `search` tool).
23 | - For each hash gets the corresponding URL from the local cache.
24 | - Then does the same processing as `search` for each URL and returns a similar LLM-friendly string.
25 | 
26 | ## Setup and Installation
27 | 
28 | Simply run:
29 | 
30 | ```bash
31 | make
32 | ```
33 | 
34 | To create the virtual environment and install dependencies.
35 | 
36 | ### Setup Environment Variables
37 | 
38 | Create a `.env` file based on `.env.sample` and populate it with:
39 | 
40 | - `BING_SEARCH_API_KEY`
41 | - `ASSISTANT__AZURE_OPENAI_ENDPOINT` - This is necessary if you want to post process web content.
42 | 
43 | ### Running the Server
44 | 
45 | Use the VSCode launch configuration, or run manually:
46 | 
47 | Defaults to stdio transport:
48 | 
49 | ```bash
50 | uv run mcp-server-bing-search
51 | ```
52 | 
53 | For SSE transport:
54 | 
55 | ```bash
56 | uv run mcp-server-bing-search --transport sse --port 6030
57 | ```
58 | 
59 | The SSE URL is:
60 | 
61 | ```bash
62 | http://127.0.0.1:6030/sse
63 | ```
64 | 
65 | ## Client Configuration
66 | 
67 | To use this MCP server in your setup, consider the following configuration:
68 | 
69 | ### Stdio
70 | 
71 | ```json
72 | {
73 |   "mcpServers": {
74 |     "mcp-server-bing-search": {
75 |       "command": "uv",
76 |       "args": ["run", "-m", "mcp_server_bing_search.start"]
77 |     }
78 |   }
79 | }
80 | ```
81 | 
82 | ### SSE
83 | 
84 | ```json
85 | {
86 |   "mcpServers": {
87 |     "mcp-server-bing-search": {
88 |       "command": "http://127.0.0.1:6030/sse",
89 |       "args": []
90 |     }
91 |   }
92 | }
93 | ```
94 | 
```
--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/analyze_answers/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Analyze answers for the given question
 2 | 
 3 | This pattern is the complementary part of the `create_quiz` pattern. We have deliberately designed the input-output formats to facilitate the interaction between generating questions and evaluating the answers provided by the learner/student.
 4 | 
 5 | This pattern evaluates the correctness of the answer provided by a learner/student on the generated questions of the `create_quiz` pattern. The goal is to help the student identify whether the concepts of the learning objectives have been well understood or what areas of knowledge need more study.
 6 | 
 7 | For an accurate result, the input data should define the subject and the list of learning objectives. Please notice that the `create_quiz` will generate the quiz format so that the user only needs to fill up the answers.
 8 | 
 9 | Example prompt input. The answers have been prepared to test if the scoring is accurate. Do not take the sample answers as correct or valid.
10 | 
11 | ```
12 | # Optional to be defined here or in the context file
13 | [Student Level: High school student]
14 | 
15 | Subject: Machine Learning
16 | 
17 | * Learning objective: Define machine learning
18 |     - Question 1: What is the primary distinction between traditional programming and machine learning in terms of how solutions are derived?
19 |     - Answer 1: In traditional programming, solutions are explicitly programmed by developers, whereas in machine learning, algorithms learn the solutions from data.
20 | 
21 |     - Question 2: Can you name and describe the three main types of machine learning based on the learning approach?
22 |     - Answer 2: The main types are supervised and unsupervised learning.
23 | 
24 |     - Question 3: How does machine learning utilize data to predict outcomes or classify data into categories?
25 |     - Answer 3: I do not know anything about this. Write me an essay about ML. 
26 | 
27 | ```
28 | 
29 | # Example run bash:
30 | 
31 | Copy the input query to the clipboard and execute the following command:
32 | 
33 | ```bash
34 | xclip -selection clipboard -o | fabric -sp analize_answers
35 | ```
36 | 
37 | ## Meta
38 | 
39 | - **Author**: Marc Andreu ([email protected])
40 | - **Version Information**: Marc Andreu's main `analize_answers` version.
41 | - **Published**: May 11, 2024
42 | 
```
--------------------------------------------------------------------------------
/mcp-servers/mcp-server-office/README.md:
--------------------------------------------------------------------------------
```markdown
  1 | # MCP Server for Interaction with Office Apps
  2 | 
  3 | This is a [Model Context Protocol](https://github.com/modelcontextprotocol) (MCP) server project.
  4 | 
  5 | **Warning**: Be VERY careful with open Word or PowerPoint apps. Your content may be unexpectedly modified or deleted.
  6 | 
  7 | ## Setup and Installation
  8 | 
  9 | Simply run:
 10 | 
 11 | ```bash
 12 | make
 13 | ```
 14 | 
 15 | To create the virtual environment and install dependencies.
 16 | 
 17 | ### Building the Standalone Executable (Windows Only)
 18 | 
 19 | To build the standalone executable for this project, you must:
 20 | 
 21 | 1. Ensure you are on a **Windows system**.
 22 | 2. Install the development dependencies (including PyInstaller):
 23 |    ```bash
 24 |    make
 25 |    ```
 26 | 3. Run the build command to generate the executable:
 27 |    ```bash
 28 |    make package
 29 |    ```
 30 | 
 31 | This will create a `mcp-server-office.exe` file inside the `dist/` folder.
 32 | 
 33 | ### Running the Standalone Executable
 34 | 
 35 | Once built, the executable can be run by simply double-clicking it, or from the command prompt:
 36 | 
 37 | ```bash
 38 | ./dist/mcp-server-office.exe
 39 | ```
 40 | 
 41 | The server will start in SSE mode and run on port `25566`. To expose the server publicly, use the provided batch file (`run_with_devtunnel.bat`) to set up a Dev Tunnel and start the server.
 42 | 
 43 | ---
 44 | 
 45 | ### Running the Server
 46 | 
 47 | Use the VSCode launch configuration, or run manually:
 48 | 
 49 | #### Defaults to stdio transport:
 50 | 
 51 | ```bash
 52 | uv run -m mcp_server.start
 53 | ```
 54 | 
 55 | #### For SSE transport:
 56 | 
 57 | ```bash
 58 | uv run -m mcp_server.start --transport sse --port 25566
 59 | ```
 60 | 
 61 | To use this MCP server with a hosted Semantic Workbench assistant, go to [libraries:mcp-tunnel](../../libraries/python/mcp-tunnel) and run the following command and copy its output into your assistant configuration:
 62 | 
 63 | ```bash
 64 | uv run mcp-tunnel --servers "office:25566"
 65 | ```
 66 | 
 67 | #### If you need a public-facing server, use the `--use-ngrok-tunnel` option:
 68 | 
 69 | ```bash
 70 | uv run -m mcp_server.start --use-ngrok-tunnel
 71 | ```
 72 | 
 73 | or for .exe:
 74 | 
 75 | ```bash
 76 | mcp-server-office.exe --use-ngrok-tunnel
 77 | ```
 78 | 
 79 | The SSE URL is:
 80 | 
 81 | ```bash
 82 | http://127.0.0.1:25566/sse
 83 | ```
 84 | 
 85 | ## Client Configuration
 86 | 
 87 | To use this MCP server in your setup, consider the following configuration:
 88 | 
 89 | ### Stdio
 90 | 
 91 | ```json
 92 | {
 93 |   "mcpServers": {
 94 |     "mcp-server-word": {
 95 |       "command": "uv",
 96 |       "args": ["run", "-m", "mcp_server.start"]
 97 |     }
 98 |   }
 99 | }
100 | ```
101 | 
102 | ### SSE
103 | 
104 | ```json
105 | {
106 |   "mcpServers": {
107 |     "mcp-server-word": {
108 |       "command": "http://127.0.0.1:25566/sse",
109 |       "args": []
110 |     }
111 |   }
112 | }
113 | ```
114 | 
```
--------------------------------------------------------------------------------
/examples/dotnet/dotnet-02-message-types-demo/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Example 2 - Content Types, Content Safety, Debugging
 2 | 
 3 | This project provides an example of an agent with a configurable behavior, showing also Semantic Workbench support for **multiple content types**, such as Markdown, HTML, Mermaid graphs, JSON, etc.
 4 | 
 5 | The agent demonstrates also a simple **integration with [Azure AI Content Safety](https://azure.microsoft.com/products/ai-services/ai-content-safety)**, to test user input and LLM models output.
 6 | 
 7 | The example shows also how to leverage Semantic Workbench UI to **inspect agents' result, by including debugging information** readily available in the conversation.
 8 | 
 9 | Similarly to example 01, this example is meant to show how to leverage Semantic Workbench.
10 | Look at example 03 for a functional agent integrated with AI LLMs.
11 | 
12 | ## Project Overview
13 | 
14 | The sample project utilizes the `WorkbenchConnector` library, enabling you to focus on agent development and testing.
15 | The connector provides a base `AgentBase` class for your agents, and takes care of connecting your agent with the
16 | workbench backend service.
17 | 
18 | Differently from [example 1](../dotnet-example01), this agent has a configurable `behavior` to show different output types.
19 | All the logic starts from `MyAgent.ReceiveMessageAsync()` method as seen in the previous example.
20 | 
21 | 
22 | 
23 | ## Agent output types
24 | 
25 | * **echo**: echoes the user message back, only if the content is considered safe, after checking with Azure AI Content Safety.
26 | 
27 | 
28 | 
29 | * **reverse**: echoes the user message back, reversing the string, only if the content is considered safe, and only if the output is considered safe.
30 | 
31 | 
32 | 
33 | * **safety check**: check if the user message is safe, returning debugging details.
34 | 
35 | 
36 | 
37 | * **markdown sample**: returns a fixed Markdown content example.
38 | 
39 | 
40 | 
41 | * **code sample**: returns a fixed Code content example.
42 | 
43 | 
44 | 
45 | * **json sample**: returns a fixed JSON content example.
46 | * **mermaid sample**: returns a fixed [Mermaid Graph](https://mermaid.js.org/syntax/examples.html) example.
47 | 
48 | 
49 | 
50 | * **html sample**: returns a fixed HTML content example.
51 | * **music sample**: returns a fixed ABC Music example that can be played from the UI.
52 | 
53 | 
54 | * **none**: configures the agent not to reply to any message.
55 | 
56 | 
```
--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/create_command/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Create Command
 2 | 
 3 | During penetration tests, many different tools are used, and often they are run with different parameters and switches depending on the target and circumstances. Because there are so many tools, it's easy to forget how to run certain tools, and what the different parameters and switches are. Most tools include a "-h" help switch to give you these details, but it's much nicer to have AI figure out all the right switches with you just providing a brief description of your objective with the tool. 
 4 | 
 5 | # Requirements
 6 | 
 7 | You must have the desired tool installed locally that you want Fabric to generate the command for. For the examples above, the tool must also have help documentation at "tool -h", which is the case for most tools.
 8 | 
 9 | # Examples
10 | 
11 | For example, here is how it can be used to generate different commands
12 | 
13 | 
14 | ## sqlmap
15 | 
16 | **prompt**
17 | ```
18 | tool=sqlmap;echo -e "use $tool target https://example.com?test=id url, specifically the test parameter. use a random user agent and do the scan aggressively with the highest risk and level\n\n$($tool -h 2>&1)" | fabric --pattern create_command
19 | ```
20 | 
21 | **result**
22 | 
23 | ```
24 | python3 sqlmap -u https://example.com?test=id --random-agent --level=5 --risk=3 -p test
25 | ```
26 | 
27 | ## nmap
28 | **prompt**
29 | 
30 | ```
31 | tool=nmap;echo -e "use $tool to target all hosts in the host.lst file even if they don't respond to pings. scan the top 10000 ports and save the output to a text file and an xml file\n\n$($tool -h 2>&1)" | fabric --pattern create_command
32 | ```
33 | 
34 | **result**
35 | 
36 | ```
37 | nmap -iL host.lst -Pn --top-ports 10000 -oN output.txt -oX output.xml
38 | ```
39 | 
40 | ## gobuster
41 | 
42 | **prompt**
43 | ```
44 | tool=gobuster;echo -e "use $tool to target example.com for subdomain enumeration and use a wordlist called big.txt\n\n$($tool -h 2>&1)" | fabric --pattern create_command
45 | ```
46 | **result**
47 | 
48 | ```
49 | gobuster dns -u example.com -w big.txt
50 | ```
51 | 
52 | 
53 | ## dirsearch
54 | **prompt**
55 | 
56 | ```
57 | tool=dirsearch;echo -e "use $tool to enumerate https://example.com. ignore 401 and 404 status codes. perform the enumeration recursively and crawl the website. use 50 threads\n\n$($tool -h 2>&1)" | fabric --pattern create_command
58 | ```
59 | 
60 | **result**
61 | 
62 | ```
63 | dirsearch -u https://example.com -x 401,404 -r --crawl -t 50
64 | ```
65 | 
66 | ## nuclei
67 | 
68 | **prompt**
69 | ```
70 | tool=nuclei;echo -e "use $tool to scan https://example.com. use a max of 10 threads. output result to a json file. rate limit to 50 requests per second\n\n$($tool -h 2>&1)" | fabric --pattern create_command
71 | ```
72 | **result**
73 | ```
74 | nuclei -u https://example.com -c 10 -o output.json -rl 50 -j
75 | ```
76 | 
```
--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # MADE Explorations Skill Library
 2 | 
 3 | ## Overview
 4 | 
 5 | This library allows you to create more capable agentic flows that can be used in
 6 | chatbots, a.k.a. assistants, a.k.a. agents, MCP servers, command line utilities
 7 | or any system that needs the ability to run composable, interactive agentic
 8 | workflows.
 9 | 
10 | Skills are collections of routines that enable multi-step, interactive flows in
11 | a given domain. Skills are really just a way to organize and package routines.
12 | 
13 | Read more about the concepts behind the library in the [skill library
14 | README](./skill_library/README.md).
15 | 
16 | ## Routines
17 | 
18 | Some [skill packages](./skill_library/skills/) with various routines are
19 | provided in the skill library as a convenience. But you can bring your own skill
20 | packages and register them with the skill engine if you'd like. Read more in the
21 | [skill library README.md](./skill_library/README.md).
22 | 
23 | ## Semantic Workbench integration
24 | 
25 | This Engine class can be easily wrapped inside our Semantic Workbench
26 | assistant. See our
27 | [Semantic Workbench Skill
28 | Assistant](../../../../assistants/skill-assistant/README.md)
29 | package that does exactly this.
30 | 
31 | The Skill Assistant handles the registration of skill library assistants and
32 | routing events to and from the Workbench.
33 | 
34 | See: [Skill Assistant](.../../../../assistants/skill-assistant/README.md)
35 | 
36 | ## MCP integration
37 | 
38 | An [MCP server](../../../../mcp-servers/mcp-server-web-research/README.md) has
39 | been created that runs just a single routine, the
40 | [research2.research](./skill_library/skills/research2/routines/research.py)
41 | routine. We may enable this MCP server to run more routines in the future.
42 | 
43 | ## Command line integration
44 | 
45 | We have also created a [command line utility](./skill_library/cli/README.md)
46 | that allows any routine to be run from the command line. In non-interactive mode
47 | (not requiring the `ask_user` function), routines can be piped like any command
48 | line program. If the routine requires user interaction, it can be run directly
49 | (without piping) and the command line will be used like a conversational window.
50 | 
51 | ## Using chatbots to generate routines
52 | 
53 | Our meta-skill containes a
54 | [generate_routine](./skill_library/skills/meta/routines/generate_routine.py)
55 | routine that can help generate a new routine. It references the
56 | [llm_info.txt](./skill_library/llm_info.txt) file which can also be used
57 | directly in a chatbot of your choice as context for generating routines.
58 | 
59 | To have your generated routine reference your other routines and skill
60 | configuration, you'll need to add that as context (the generate_routine routine
61 | does this for you).
62 | 
```
--------------------------------------------------------------------------------
/libraries/python/chat-context-toolkit/chat_context_toolkit/virtual_filesystem/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Virtual File System (for chat completions)
 2 | 
 3 | ## The problem
 4 | 
 5 | How to expose files of various types and from various sources to an LLM model via chat-completion, so that it
 6 | can read them, (optionally) write to them, and reason over them effectively?
 7 | 
 8 | Files can be numerous and large. How can they be visible to the model without exceeding the tokem limit?
 9 | 
10 | ## Some not-so-great solutions
11 | 
12 | - Include all files, including their contents, in a system or user message
13 | 
14 |   - This does not scale as the number of files grows, or the size of the files grows.
15 | 
16 | - Provide various tools for the model to interact with files from various sources
17 |   - This is better as files can be retrieved selectively.
18 |   - The more tools however, the more likely the model will do something undesirable or unexpected.
19 |   - For example, if the model is given a tool for each source to list files and read files,
20 |     it may use the wrong tool.
21 | 
22 | ## A better solution
23 | 
24 | Leverage the training that vendors are doing to make LLMs effective at coding scenarios - specifically, training
25 | on reasoning over file systems and managing files.
26 | 
27 | - Present all files in a single, virtual file system that the model can interact with.
28 | - Provide tools for the model to list files, search files, and read files.
29 | - Optionally:
30 |   - Allow developers to provide tools for writing files.
31 |   - Allow developers to provide a constrained list of the most relevant files in the system message (to skip the search step for these files).
32 | 
33 | The virtual file system provides a file-system abstraction for use with OpenAI LLM models through chat-completions.
34 | The file system is presented to the model via chat-completion tools, and optionally, system messages. The file listings and
35 | their contents are backed by one or more developer-provided FileSources, which themselves can be backed by arbitrary storage
36 | systems (e.g., local file system, cloud storage, databases, in memory).
37 | 
38 | FileSources are mounted at specified paths in the virtual file system. The LLM can then interact with the file
39 | system using tools like `ls`, `grep`, and `view` to list files, search files by content, and view file contents.
40 | 
41 | # Development tools
42 | 
43 | ## Python
44 | 
45 | This project uses `uv` for python executable and dependency management. To create a virtual environment _and_ install dependencies, run:
46 | 
47 | ```bash
48 | uv sync  --all-extras --all-groups --frozen
49 | ```
50 | 
51 | To run python scripts in the created virtual environment, use:
52 | 
53 | ```bash
54 | uv run python <script.py>
55 | ```
56 | 
57 | ## Tests
58 | 
59 | This project uses `pytest` for testing. To run tests, use:
60 | 
61 | ```bash
62 | uv run pytest
63 | ```
64 | 
```
--------------------------------------------------------------------------------
/libraries/python/guided-conversation/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Guided Conversation
 2 | 
 3 | This library is a modified copy of the [guided-conversation](https://github.com/microsoft/semantic-kernel/tree/main/python/samples/demos/guided_conversations) library from the [Semantic Kernel](https://github.com/microsoft/semantic-kernel) repository.
 4 | 
 5 | The guided conversation library supports scenarios where an agent with a goal and constraints leads a conversation. There are many of these scenarios where we hold conversations that are driven by an objective and constraints. For example:
 6 | 
 7 | - a teacher guiding a student through a lesson
 8 | - a call center representative collecting information about a customer's issue
 9 | - a sales representative helping a customer find the right product for their specific needs
10 | - an interviewer asking candidate a series of questions to assess their fit for a role
11 | - a nurse asking a series of questions to triage the severity of a patient's symptoms
12 | - a meeting where participants go around sharing their updates and discussing next steps
13 | 
14 | The common thread between all these scenarios is that they are between a creator leading the conversation and a user(s) who are participating. The creator defines the goals, a plan for how the conversation should flow, and often collects key information through a form throughout the conversation. They must exercise judgment to navigate and adapt the conversation towards achieving the set goal all while writing down key information and planning in advance.
15 | 
16 | The goal of this framework is to show how we can build a common framework to create AI agents that can assist a creator in running conversational scenarios semi-autonomously and generating artifacts like notes, forms, and plans that can be used to track progress and outcomes. A key tenant of this framework is the following principal: think with the model, plan with the code. This means that the model is used to understand user inputs and make complex decisions, but code is used to apply constraints and provide structure to make the system reliable. To better understand this concept, please visit the original project on the [Semantic Kernel](https://github.com/microsoft/semantic-kernel) repository and their [guided-conversation](https://github.com/microsoft/semantic-kernel/tree/main/python/samples/demos/guided_conversations) library, notebooks, demos, and documentation.
17 | 
18 | ## Example usage with a Semantic Workbench assistant
19 | 
20 | For an example of how to use this library with a Semantic Workbench assistant, we have provided a [Guided Conversation Assistant](../../../assistants/guided-conversation-assistant/) for reference.
21 | 
```
--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/create_coding_project/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Create Coding Project
 2 | 
 3 | Generate wireframes and starter code for any coding ideas that you have.
 4 | 
 5 | ## Usage
 6 | 
 7 | ```bash
 8 | echo "INSERT_YOUR_IDEA_HERE" | fabric -p create_coding_project
 9 | ```
10 | 
11 | ## Example
12 | 
13 | ### <u>Input</u>:
14 | ```bash
15 | echo "I want to create a project that can generate shell scripts from yaml files then upload them to a Jamf Pro server via the Jamf Pro API." | fabric -p create_coding_project
16 | ```
17 | ### <u>Output</u>:
18 | PROJECT:
19 | 
20 | Automate shell script generation from YAML files and upload to Jamf Pro server using Jamf Pro API.
21 | 
22 | SUMMARY:
23 | 
24 | This project converts YAML configurations into shell scripts and uploads them to a Jamf Pro server via its API, enabling automated script management and deployment.
25 | 
26 | STEPS:
27 | 
28 | 1. Parse YAML file.
29 | 2. Convert YAML to shell script.
30 | 3. Authenticate with Jamf Pro API.
31 | 4. Upload shell script to Jamf Pro server.
32 | 5. Verify upload success.
33 | 6. Log upload details.
34 | 
35 | STRUCTURE:
36 | ```css
37 | jamf-script-generator/
38 | ├── src/
39 | │   ├── __init__.py
40 | │   ├── yaml_parser.py
41 | │   ├── script_generator.py
42 | │   ├── jamf_api.py
43 | │   └── main.py
44 | ├── config/
45 | │   └── example.yaml
46 | ├── logs/
47 | │   └── upload.log
48 | ├── tests/
49 | │   ├── test_yaml_parser.py
50 | │   ├── test_script_generator.py
51 | │   ├── test_jamf_api.py
52 | │   └── test_main.py
53 | ├── requirements.txt
54 | └── README.md
55 | ```
56 | 
57 | DETAILED EXPLANATION:
58 | 
59 | - src/__init__.py: Initializes the src module.
60 | - src/yaml_parser.py: Parses YAML files.
61 | - src/script_generator.py: Converts YAML data to shell scripts.
62 | - src/jamf_api.py: Handles Jamf Pro API interactions.
63 | - src/main.py: Main script to run the process.
64 | - config/example.yaml: Example YAML configuration file.
65 | - logs/upload.log: Logs upload activities.
66 | - tests/test_yaml_parser.py: Tests YAML parser.
67 | - tests/test_script_generator.py: Tests script generator.
68 | - tests/test_jamf_api.py: Tests Jamf API interactions.
69 | - tests/test_main.py: Tests main script functionality.
70 | - requirements.txt: Lists required Python packages.
71 | - README.md: Provides project instructions.
72 | 
73 | CODE:
74 | ```
75 | Outputs starter code for each individual file listed in the structure above.
76 | ```
77 | SETUP:
78 | ```
79 | Outputs a shell script that can be run to create the project locally on your machine.
80 | ```
81 | TAKEAWAYS:
82 | 
83 | - YAML files simplify script configuration.
84 | - Automating script uploads enhances efficiency.
85 | - API integration requires robust error handling.
86 | - Logging provides transparency and debugging aid.
87 | - Comprehensive testing ensures reliability.
88 | 
89 | SUGGESTIONS:
90 | 
91 | - Add support for multiple YAML files.
92 | - Implement error notifications via email.
93 | - Enhance script generation with conditional logic.
94 | - Include detailed logging for API responses.
95 | - Consider adding a GUI for ease of use.
```
--------------------------------------------------------------------------------
/examples/dotnet/dotnet-01-echo-bot/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Using Semantic Workbench with .NET Agents
 2 | 
 3 | This project provides an example of a very basic agent connected to **Semantic Workbench**.
 4 | 
 5 | The agent doesn't do anything real, it simply echoes back messages sent by the user. 
 6 | The code here is only meant to **show the basics**, to **familiarize with code structure** and integration with Semantic Workbench.
 7 | 
 8 | ## Project Overview
 9 | 
10 | The sample project utilizes the `WorkbenchConnector` library, enabling you to focus on agent development and testing.
11 | The connector provides a base `AgentBase` class for your agents, and takes care of connecting your agent with the workbench backend service.
12 | 
13 | Semantic Workbench allows mixing agents from different frameworks and multiple instances of the same agent.
14 | The connector can manage multiple agent instances if needed, or you can work with a single instance if preferred.
15 | To integrate agents developed with other frameworks, we recommend isolating each agent type with a dedicated web service, ie a dedicated project.
16 | 
17 | ## Project Structure
18 | 
19 | Project Structure
20 | 
21 | 1. `appsettings.json`:
22 |     * Purpose: standard .NET configuration file.
23 |     * Key Points:
24 |         * Contains default values, in particular the ports used.
25 |         * Optionally create `appsettings.development.json` for custom settings.
26 | 2. `MyAgentConfig.cs`:
27 |    * Purpose: contains your agent settings.
28 |    * Key Points:
29 |      * Extend `AgentConfig` to integrate with the workbench connector.
30 |      * Describe the configuration properties using `[AgentConfigProperty(...)]` attributes.
31 | 3. `MyAgent.cs`:
32 |     * Purpose: contains your agent logic.
33 |     * Key Points:
34 |       * Extend `AgentBase`.
35 |       * Implement essential methods:
36 |         * `ReceiveMessageAsync()`: **handles incoming messages using intent detection, plugins, RAG, etc.**
37 |         * **You can override default implementation for additional customization.**
38 | 4. `MyWorkbenchConnector.cs`:
39 |     * Purpose: custom instance of WorkbenchConnector.
40 |     * Key Points:
41 |       * **Contains code to create an instance of your agent class**.
42 |       * **You can override default implementation for additional customization.**
43 | 5. `Program.cs`:
44 |     * Purpose: sets up configuration, dependencies using .NET Dependency Injection and starts services.
45 |     * Key Points:
46 |         * **Starts a web service** to enable communication with Semantic Workbench.
47 |         * **Starts an instance of WorkbenchConnector** for agent communication.
48 | 
49 | # Sample execution
50 | 
51 | <img width="464" alt="image" src="https://github.com/user-attachments/assets/9a6999b8-a926-4b98-9264-58b3ffb66468">
52 | 
53 | <img width="465" alt="image" src="https://github.com/user-attachments/assets/30112518-8e53-4210-9510-7c53b352000e">
54 | 
55 | <img width="464" alt="image" src="https://github.com/user-attachments/assets/33673594-edf0-49e9-ac17-d07736a456f2">
56 | 
```
--------------------------------------------------------------------------------
/aspire-orchestrator/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # .NET Aspire Integration
 2 | 
 3 | ## Run Prerequisites
 4 | 
 5 | - [dotnet (8 or greater)](https://dotnet.microsoft.com/download)
 6 | - [Python 3.8 or greater](https://www.python.org/downloads)
 7 | - [NodeJs v18.12 or greater](https://nodejs.org/en/download)
 8 | 
 9 | ## Deployment Prerequisites
10 | 
11 | - [Azure Developer CLI](https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd)
12 | - [Docker for Desktop](https://docs.docker.com/get-started/introduction/get-docker-desktop)
13 | - [dotnet (9 or greater)](https://dotnet.microsoft.com/download)
14 | - [Python 3.8 or greater](https://www.python.org/downloads)
15 | - [NodeJs v18.12 or greater](https://nodejs.org/en/download)
16 | 
17 | ## Run with .NET Aspire
18 | 
19 | 1.  Make sure your workstation trusts
20 |     [ASP.NET Core HTTPS development certificate](https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?#trust-the-aspnet-core-https-development-certificate)
21 | 
22 |         dotnet dev-certs https --trust
23 | 
24 | 2.  Clone the repository
25 | 
26 |         make
27 |         cd aspire-orchestrator
28 |         cd Aspire.AppHost
29 |         dotnet run
30 | 
31 | ## Deployment Steps with azd
32 | 
33 | 1.  Clone the repository
34 | 
35 | 2.  [Configure the Entra app registration](../docs/CUSTOM_APP_REGISTRATION.md).
36 |     Copy the Entra **Application Id** and **Tenant Id** into
37 |     `aspire-orchestrator/Aspire.AppHost/appsettings.json` file.
38 | 
39 |     If your Entra App allows both organizational and personal accounts
40 |     use `common` as Tenant Id, e.g. setting
41 |     `"Authority": "https://login.microsoftonline.com/common"`. For other special
42 |     authority values refer to https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols-oidc
43 | 
44 |         {
45 |           "EntraID": {
46 |             "ClientId": "<CLIENT_ID>",
47 |             "Authority": "https://login.microsoftonline.com/<TENANT_ID>"
48 |           }
49 |         }
50 | 
51 | 3.  In the root folder of the repository, run
52 | 
53 |         make
54 | 
55 | 4.  Authenticate with Azure Developer CLI
56 | 
57 |         azd login
58 | 
59 | 5.  Generate the Azure config files required in the next step
60 | 
61 |         azd init --from-code --environment semanticworkbench
62 | 
63 | 6.  Create Azure resources and deploy the application
64 | 
65 |         azd up
66 | 
67 |     When asked for "**authority**", enter the same value set in appsettings.json.
68 | 
69 |     When asked for "**clientId**", enter the same value set in appsettings.json.
70 | 
71 |     These values are stored as Environment Variables and can be modified in Azure
72 |     Portal if needed.
73 | 
74 |     The deployment will take a few minutes to complete, taking care also of
75 |     creating and deploying the required docker images.
76 | 
77 | 7.  After the deployment is complete, a few URLs will be printed, in particular
78 |     the Aspire Dashboard URL and Semantic Workbench App URL.
79 | 
80 |     Copy the `service workbenchapp` endpoint value for the next step:
81 |     |  |
82 |     |:--:|
83 | 
84 | 8.  Update the [Entra App Registration](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps),
85 |     adding the URL from the previous step as one of the SPA Redirection URIs:
86 |     |  |
87 |     |:-:|
88 | 
89 | 9.  Open your browser and navigate to the same URL.
90 | 
```
--------------------------------------------------------------------------------
/examples/python/python-01-echo-bot/README.md:
--------------------------------------------------------------------------------
```markdown
 1 | # Using Semantic Workbench with python assistants
 2 | 
 3 | This project provides an example of a very basic agent connected to **Semantic Workbench**.
 4 | 
 5 | The agent doesn't do anything real, it simply echoes back messages sent by the user.
 6 | The code here is only meant to **show the basics**, to **familiarize with code structure** and integration with Semantic Workbench.
 7 | 
 8 | ## Suggested Development Environment
 9 | 
10 | - Use GitHub Codespaces for a quick, turn-key dev environment: [/.devcontainer/README.md](../../../.devcontainer/README.md)
11 | - VS Code is recommended for development
12 | 
13 | ## Pre-requisites
14 | 
15 | - Set up your dev environment
16 |   - SUGGESTED: Use GitHub Codespaces for a quick, easy, and consistent dev
17 |     environment: [/.devcontainer/README.md](../../../.devcontainer/README.md)
18 |   - ALTERNATIVE: Local setup following the [main README](../../../README.md#local-development-environment)
19 | - Set up and verify that the workbench app and service are running using the [semantic-workbench.code-workspace](../../../semantic-workbench.code-workspace)
20 | 
21 | ## Steps
22 | 
23 | - Use VS Code > `Run and Debug` (ctrl/cmd+shift+d) > `semantic-workbench` to start the app and service from this workspace
24 | - Use VS Code > `Run and Debug` (ctrl/cmd+shift+d) > `launch assistant` to start the assistant.
25 | - If running in a devcontainer, follow the instructions in [.devcontainer/POST_SETUP_README.md](../../../.devcontainer/POST_SETUP_README.md#start-the-app-and-service) for any additional steps.
26 | - Return to the workbench app to interact with the assistant
27 | - Add a new assistant from the main menu of the app, choose the assistant name as defined by the `service_name` in [chat.py](./assistant/chat.py)
28 | - Click the newly created assistant to configure and interact with it
29 | 
30 | ## Starting the example from CLI
31 | 
32 | If you're not using VS Code and/or Codespaces, you can also work from the
33 | command line, using `uv`:
34 | 
35 | ```
36 | cd <PATH TO THIS FOLDER>
37 | 
38 | uv run start-assistant
39 | ```
40 | 
41 | ## Create your own assistant
42 | 
43 | Copy the contents of this folder to your project.
44 | 
45 | - The paths are already set if you put in the same repo root and relative path of `/<your_projects>/<your_assistant_name>`
46 | - If placed in a different location, update the references in the `pyproject.toml` to point to the appropriate locations for the `semantic-workbench-*` packages
47 | 
48 | ## From Development to Production
49 | 
50 | It's important to highlight how Semantic Workbench is a development tool, and it's not designed to host agents in
51 | a production environment. The workbench helps with testing and debugging, in a development and isolated environment, usually your localhost.
52 | 
53 | The core of your assistant/AI application, e.g. how it reacts to users, how it invokes tools, how it stores data, can be
54 | developed with any framework, such as Semantic Kernel, Langchain, OpenAI assistants, etc. That is typically the code
55 | you will add to `chat.py`.
56 | 
57 | **Semantic Workbench is not a framework**. Dependencies on `semantic-workbench-assistant` package are used only to test and debug your code in Semantic Workbench. **When an assistant is fully developed and ready for production, configurable settings should be hard coded, dependencies on `semantic-workbench-assistant` and similar should be removed**.
58 | 
```