#
tokens: 48911/50000 7/1784 files (page 6/145)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 6 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/skills/skill-library/skill_library/skills/fabric/patterns/extract_product_features/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <div align="center">
  2 | 
  3 | <img src="https://beehiiv-images-production.s3.amazonaws.com/uploads/asset/file/2012aa7c-a939-4262-9647-7ab614e02601/extwis-logo-miessler.png?t=1704502975" alt="extwislogo" width="400" height="400"/>
  4 | 
  5 | # `/extractwisdom`
  6 | 
  7 | <h4><code>extractwisdom</code> is a <a href="https://github.com/danielmiessler/fabric" target="_blank">Fabric</a> pattern that <em>extracts wisdom</em> from any text.</h4>
  8 | 
  9 | [Description](#description) •
 10 | [Functionality](#functionality) •
 11 | [Usage](#usage) •
 12 | [Output](#output) •
 13 | [Meta](#meta)
 14 | 
 15 | </div>
 16 | 
 17 | <br />
 18 | 
 19 | ## Description
 20 | 
 21 | **`extractwisdom` addresses the problem of **too much content** and too little time.**
 22 | 
 23 | _Not only that, but it's also too easy to forget the stuff we read, watch, or listen to._
 24 | 
 25 | This pattern _extracts wisdom_ from any content that can be translated into text, for example:
 26 | 
 27 | - Podcast transcripts
 28 | - Academic papers
 29 | - Essays
 30 | - Blog posts
 31 | - Really, anything you can get into text!
 32 | 
 33 | ## Functionality
 34 | 
 35 | When you use `extractwisdom`, it pulls the following content from the input.
 36 | 
 37 | - `IDEAS`
 38 |   - Extracts the best ideas from the content, i.e., what you might have taken notes on if you were doing so manually.
 39 | - `QUOTES`
 40 |   - Some of the best quotes from the content.
 41 | - `REFERENCES`
 42 |   - External writing, art, and other content referenced positively during the content that might be worth following up on.
 43 | - `HABITS`
 44 |   - Habits of the speakers that could be worth replicating.
 45 | - `RECOMMENDATIONS`
 46 |   - A list of things that the content recommends Habits of the speakers.
 47 | 
 48 | ### Use cases
 49 | 
 50 | `extractwisdom` output can help you in multiple ways, including:
 51 | 
 52 | 1. `Time Filtering`<br />
 53 |    Allows you to quickly see if content is worth an in-depth review or not.
 54 | 2. `Note Taking`<br />
 55 |    Can be used as a substitute for taking time-consuming, manual notes on the content.
 56 | 
 57 | ## Usage
 58 | 
 59 | You can reference the `extractwisdom` **system** and **user** content directly like so.
 60 | 
 61 | ### Pull the _system_ prompt directly
 62 | 
 63 | ```sh
 64 | curl -sS https://github.com/danielmiessler/fabric/blob/main/extract-wisdom/dmiessler/extract-wisdom-1.0.0/system.md
 65 | ```
 66 | 
 67 | ### Pull the _user_ prompt directly
 68 | 
 69 | ```sh
 70 | curl -sS https://github.com/danielmiessler/fabric/blob/main/extract-wisdom/dmiessler/extract-wisdom-1.0.0/user.md
 71 | ```
 72 | 
 73 | ## Output
 74 | 
 75 | Here's an abridged output example from `extractwisdom` (limited to only 10 items per section).
 76 | 
 77 | ```markdown
 78 | ## SUMMARY:
 79 | 
 80 | The content features a conversation between two individuals discussing various topics, including the decline of Western culture, the importance of beauty and subtlety in life, the impact of technology and AI, the resonance of Rilke's poetry, the value of deep reading and revisiting texts, the captivating nature of Ayn Rand's writing, the role of philosophy in understanding the world, and the influence of drugs on society. They also touch upon creativity, attention spans, and the importance of introspection.
 81 | 
 82 | ## IDEAS:
 83 | 
 84 | 1. Western culture is perceived to be declining due to a loss of values and an embrace of mediocrity.
 85 | 2. Mass media and technology have contributed to shorter attention spans and a need for constant stimulation.
 86 | 3. Rilke's poetry resonates due to its focus on beauty and ecstasy in everyday objects.
 87 | 4. Subtlety is often overlooked in modern society due to sensory overload.
 88 | 5. The role of technology in shaping music and performance art is significant.
 89 | 6. Reading habits have shifted from deep, repetitive reading to consuming large quantities of new material.
 90 | 7. Revisiting influential books as one ages can lead to new insights based on accumulated wisdom and experiences.
 91 | 8. Fiction can vividly illustrate philosophical concepts through characters and narratives.
 92 | 9. Many influential thinkers have backgrounds in philosophy, highlighting its importance in shaping reasoning skills.
 93 | 10. Philosophy is seen as a bridge between theology and science, asking questions that both fields seek to answer.
 94 | 
 95 | ## QUOTES:
 96 | 
 97 | 1. "You can't necessarily think yourself into the answers. You have to create space for the answers to come to you."
 98 | 2. "The West is dying and we are killing her."
 99 | 3. "The American Dream has been replaced by mass packaged mediocrity porn, encouraging us to revel like happy pigs in our own meekness."
100 | 4. "There's just not that many people who have the courage to reach beyond consensus and go explore new ideas."
101 | 5. "I'll start watching Netflix when I've read the whole of human history."
102 | 6. "Rilke saw beauty in everything... He sees it's in one little thing, a representation of all things that are beautiful."
103 | 7. "Vanilla is a very subtle flavor... it speaks to sort of the sensory overload of the modern age."
104 | 8. "When you memorize chapters [of the Bible], it takes a few months, but you really understand how things are structured."
105 | 9. "As you get older, if there's books that moved you when you were younger, it's worth going back and rereading them."
106 | 10. "She [Ayn Rand] took complicated philosophy and embodied it in a way that anybody could resonate with."
107 | 
108 | ## HABITS:
109 | 
110 | 1. Avoiding mainstream media consumption for deeper engagement with historical texts and personal research.
111 | 2. Regularly revisiting influential books from youth to gain new insights with age.
112 | 3. Engaging in deep reading practices rather than skimming or speed-reading material.
113 | 4. Memorizing entire chapters or passages from significant texts for better understanding.
114 | 5. Disengaging from social media and fast-paced news cycles for more focused thought processes.
115 | 6. Walking long distances as a form of meditation and reflection.
116 | 7. Creating space for thoughts to solidify through introspection and stillness.
117 | 8. Embracing emotions such as grief or anger fully rather than suppressing them.
118 | 9. Seeking out varied experiences across different careers and lifestyles.
119 | 10. Prioritizing curiosity-driven research without specific goals or constraints.
120 | 
121 | ## FACTS:
122 | 
123 | 1. The West is perceived as declining due to cultural shifts away from traditional values.
124 | 2. Attention spans have shortened due to technological advancements and media consumption habits.
125 | 3. Rilke's poetry emphasizes finding beauty in everyday objects through detailed observation.
126 | 4. Modern society often overlooks subtlety due to sensory overload from various stimuli.
127 | 5. Reading habits have evolved from deep engagement with texts to consuming large quantities quickly.
128 | 6. Revisiting influential books can lead to new insights based on accumulated life experiences.
129 | 7. Fiction can effectively illustrate philosophical concepts through character development and narrative arcs.
130 | 8. Philosophy plays a significant role in shaping reasoning skills and understanding complex ideas.
131 | 9. Creativity may be stifled by cultural nihilism and protectionist attitudes within society.
132 | 10. Short-term thinking undermines efforts to create lasting works of beauty or significance.
133 | 
134 | ## REFERENCES:
135 | 
136 | 1. Rainer Maria Rilke's poetry
137 | 2. Netflix
138 | 3. Underworld concert
139 | 4. Katy Perry's theatrical performances
140 | 5. Taylor Swift's performances
141 | 6. Bible study
142 | 7. Atlas Shrugged by Ayn Rand
143 | 8. Robert Pirsig's writings
144 | 9. Bertrand Russell's definition of philosophy
145 | 10. Nietzsche's walks
146 | ```
147 | 
148 | This allows you to quickly extract what's valuable and meaningful from the content for the use cases above.
149 | 
150 | ## Meta
151 | 
152 | - **Author**: Daniel Miessler
153 | - **Version Information**: Daniel's main `extractwisdom` version.
154 | - **Published**: January 5, 2024
155 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/extract_wisdom/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <div align="center">
  2 | 
  3 | <img src="https://beehiiv-images-production.s3.amazonaws.com/uploads/asset/file/2012aa7c-a939-4262-9647-7ab614e02601/extwis-logo-miessler.png?t=1704502975" alt="extwislogo" width="400" height="400"/>
  4 | 
  5 | # `/extractwisdom`
  6 | 
  7 | <h4><code>extractwisdom</code> is a <a href="https://github.com/danielmiessler/fabric" target="_blank">Fabric</a> pattern that <em>extracts wisdom</em> from any text.</h4>
  8 | 
  9 | [Description](#description) •
 10 | [Functionality](#functionality) •
 11 | [Usage](#usage) •
 12 | [Output](#output) •
 13 | [Meta](#meta)
 14 | 
 15 | </div>
 16 | 
 17 | <br />
 18 | 
 19 | ## Description
 20 | 
 21 | **`extractwisdom` addresses the problem of **too much content** and too little time.**
 22 | 
 23 | _Not only that, but it's also too easy to forget the stuff we read, watch, or listen to._
 24 | 
 25 | This pattern _extracts wisdom_ from any content that can be translated into text, for example:
 26 | 
 27 | - Podcast transcripts
 28 | - Academic papers
 29 | - Essays
 30 | - Blog posts
 31 | - Really, anything you can get into text!
 32 | 
 33 | ## Functionality
 34 | 
 35 | When you use `extractwisdom`, it pulls the following content from the input.
 36 | 
 37 | - `IDEAS`
 38 |   - Extracts the best ideas from the content, i.e., what you might have taken notes on if you were doing so manually.
 39 | - `QUOTES`
 40 |   - Some of the best quotes from the content.
 41 | - `REFERENCES`
 42 |   - External writing, art, and other content referenced positively during the content that might be worth following up on.
 43 | - `HABITS`
 44 |   - Habits of the speakers that could be worth replicating.
 45 | - `RECOMMENDATIONS`
 46 |   - A list of things that the content recommends Habits of the speakers.
 47 | 
 48 | ### Use cases
 49 | 
 50 | `extractwisdom` output can help you in multiple ways, including:
 51 | 
 52 | 1. `Time Filtering`<br />
 53 |    Allows you to quickly see if content is worth an in-depth review or not.
 54 | 2. `Note Taking`<br />
 55 |    Can be used as a substitute for taking time-consuming, manual notes on the content.
 56 | 
 57 | ## Usage
 58 | 
 59 | You can reference the `extractwisdom` **system** and **user** content directly like so.
 60 | 
 61 | ### Pull the _system_ prompt directly
 62 | 
 63 | ```sh
 64 | curl -sS https://github.com/danielmiessler/fabric/blob/main/extract-wisdom/dmiessler/extract-wisdom-1.0.0/system.md
 65 | ```
 66 | 
 67 | ### Pull the _user_ prompt directly
 68 | 
 69 | ```sh
 70 | curl -sS https://github.com/danielmiessler/fabric/blob/main/extract-wisdom/dmiessler/extract-wisdom-1.0.0/user.md
 71 | ```
 72 | 
 73 | ## Output
 74 | 
 75 | Here's an abridged output example from `extractwisdom` (limited to only 10 items per section).
 76 | 
 77 | ```markdown
 78 | ## SUMMARY:
 79 | 
 80 | The content features a conversation between two individuals discussing various topics, including the decline of Western culture, the importance of beauty and subtlety in life, the impact of technology and AI, the resonance of Rilke's poetry, the value of deep reading and revisiting texts, the captivating nature of Ayn Rand's writing, the role of philosophy in understanding the world, and the influence of drugs on society. They also touch upon creativity, attention spans, and the importance of introspection.
 81 | 
 82 | ## IDEAS:
 83 | 
 84 | 1. Western culture is perceived to be declining due to a loss of values and an embrace of mediocrity.
 85 | 2. Mass media and technology have contributed to shorter attention spans and a need for constant stimulation.
 86 | 3. Rilke's poetry resonates due to its focus on beauty and ecstasy in everyday objects.
 87 | 4. Subtlety is often overlooked in modern society due to sensory overload.
 88 | 5. The role of technology in shaping music and performance art is significant.
 89 | 6. Reading habits have shifted from deep, repetitive reading to consuming large quantities of new material.
 90 | 7. Revisiting influential books as one ages can lead to new insights based on accumulated wisdom and experiences.
 91 | 8. Fiction can vividly illustrate philosophical concepts through characters and narratives.
 92 | 9. Many influential thinkers have backgrounds in philosophy, highlighting its importance in shaping reasoning skills.
 93 | 10. Philosophy is seen as a bridge between theology and science, asking questions that both fields seek to answer.
 94 | 
 95 | ## QUOTES:
 96 | 
 97 | 1. "You can't necessarily think yourself into the answers. You have to create space for the answers to come to you."
 98 | 2. "The West is dying and we are killing her."
 99 | 3. "The American Dream has been replaced by mass packaged mediocrity porn, encouraging us to revel like happy pigs in our own meekness."
100 | 4. "There's just not that many people who have the courage to reach beyond consensus and go explore new ideas."
101 | 5. "I'll start watching Netflix when I've read the whole of human history."
102 | 6. "Rilke saw beauty in everything... He sees it's in one little thing, a representation of all things that are beautiful."
103 | 7. "Vanilla is a very subtle flavor... it speaks to sort of the sensory overload of the modern age."
104 | 8. "When you memorize chapters [of the Bible], it takes a few months, but you really understand how things are structured."
105 | 9. "As you get older, if there's books that moved you when you were younger, it's worth going back and rereading them."
106 | 10. "She [Ayn Rand] took complicated philosophy and embodied it in a way that anybody could resonate with."
107 | 
108 | ## HABITS:
109 | 
110 | 1. Avoiding mainstream media consumption for deeper engagement with historical texts and personal research.
111 | 2. Regularly revisiting influential books from youth to gain new insights with age.
112 | 3. Engaging in deep reading practices rather than skimming or speed-reading material.
113 | 4. Memorizing entire chapters or passages from significant texts for better understanding.
114 | 5. Disengaging from social media and fast-paced news cycles for more focused thought processes.
115 | 6. Walking long distances as a form of meditation and reflection.
116 | 7. Creating space for thoughts to solidify through introspection and stillness.
117 | 8. Embracing emotions such as grief or anger fully rather than suppressing them.
118 | 9. Seeking out varied experiences across different careers and lifestyles.
119 | 10. Prioritizing curiosity-driven research without specific goals or constraints.
120 | 
121 | ## FACTS:
122 | 
123 | 1. The West is perceived as declining due to cultural shifts away from traditional values.
124 | 2. Attention spans have shortened due to technological advancements and media consumption habits.
125 | 3. Rilke's poetry emphasizes finding beauty in everyday objects through detailed observation.
126 | 4. Modern society often overlooks subtlety due to sensory overload from various stimuli.
127 | 5. Reading habits have evolved from deep engagement with texts to consuming large quantities quickly.
128 | 6. Revisiting influential books can lead to new insights based on accumulated life experiences.
129 | 7. Fiction can effectively illustrate philosophical concepts through character development and narrative arcs.
130 | 8. Philosophy plays a significant role in shaping reasoning skills and understanding complex ideas.
131 | 9. Creativity may be stifled by cultural nihilism and protectionist attitudes within society.
132 | 10. Short-term thinking undermines efforts to create lasting works of beauty or significance.
133 | 
134 | ## REFERENCES:
135 | 
136 | 1. Rainer Maria Rilke's poetry
137 | 2. Netflix
138 | 3. Underworld concert
139 | 4. Katy Perry's theatrical performances
140 | 5. Taylor Swift's performances
141 | 6. Bible study
142 | 7. Atlas Shrugged by Ayn Rand
143 | 8. Robert Pirsig's writings
144 | 9. Bertrand Russell's definition of philosophy
145 | 10. Nietzsche's walks
146 | ```
147 | 
148 | This allows you to quickly extract what's valuable and meaningful from the content for the use cases above.
149 | 
150 | ## Meta
151 | 
152 | - **Author**: Daniel Miessler
153 | - **Version Information**: Daniel's main `extractwisdom` version.
154 | - **Published**: January 5, 2024
155 | 
```

--------------------------------------------------------------------------------
/libraries/python/skills/skill-library/skill_library/skills/fabric/patterns/extract_article_wisdom/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <div align="center">
  2 | 
  3 | <img src="https://beehiiv-images-production.s3.amazonaws.com/uploads/asset/file/2012aa7c-a939-4262-9647-7ab614e02601/extwis-logo-miessler.png?t=1704502975" alt="extwislogo" width="400" height="400"/>
  4 | 
  5 | # `/extractwisdom`
  6 | 
  7 | <h4><code>extractwisdom</code> is a <a href="https://github.com/danielmiessler/fabric" target="_blank">Fabric</a> pattern that <em>extracts wisdom</em> from any text.</h4>
  8 | 
  9 | [Description](#description) •
 10 | [Functionality](#functionality) •
 11 | [Usage](#usage) •
 12 | [Output](#output) •
 13 | [Meta](#meta)
 14 | 
 15 | </div>
 16 | 
 17 | <br />
 18 | 
 19 | ## Description
 20 | 
 21 | **`extractwisdom` addresses the problem of **too much content** and too little time.**
 22 | 
 23 | _Not only that, but it's also too easy to forget the stuff you read, watch, or listen to._
 24 | 
 25 | This pattern _extracts wisdom_ from any content that can be translated into text, for example:
 26 | 
 27 | - Podcast transcripts
 28 | - Academic papers
 29 | - Essays
 30 | - Blog posts
 31 | - Really, anything you can get into text!
 32 | 
 33 | ## Functionality
 34 | 
 35 | When you use `extractwisdom`, it pulls the following content from the input.
 36 | 
 37 | - `IDEAS`
 38 |   - Extracts the best ideas from the content, i.e., what you might have taken notes on if you were doing so manually.
 39 | - `QUOTES`
 40 |   - Some of the best quotes from the content.
 41 | - `REFERENCES`
 42 |   - External writing, art, and other content referenced positively during the content that might be worth following up on.
 43 | - `HABITS`
 44 |   - Habits of the speakers that could be worth replicating.
 45 | - `RECOMMENDATIONS`
 46 |   - A list of things that the content recommends Habits of the speakers.
 47 | 
 48 | ### Use cases
 49 | 
 50 | `extractwisdom` output can help you in multiple ways, including:
 51 | 
 52 | 1. `Time Filtering`<br />
 53 |    Allows you to quickly see if content is worth an in-depth review or not.
 54 | 2. `Note Taking`<br />
 55 |    Can be used as a substitute for taking time-consuming, manual notes on the content.
 56 | 
 57 | ## Usage
 58 | 
 59 | You can reference the `extractwisdom` **system** and **user** content directly like so.
 60 | 
 61 | ### Pull the _system_ prompt directly
 62 | 
 63 | ```sh
 64 | curl -sS https://raw.githubusercontent.com/danielmiessler/fabric/main/patterns/extract_wisdom/dmiessler/extract_wisdom-1.0.0/system.md
 65 | ```
 66 | 
 67 | ### Pull the _user_ prompt directly
 68 | 
 69 | ```sh
 70 | curl -sS https://raw.githubusercontent.com/danielmiessler/fabric/main/patterns/extract_wisdom/dmiessler/extract_wisdom-1.0.0/user.md
 71 | ```
 72 | 
 73 | ## Output
 74 | 
 75 | Here's an abridged output example from `extractwisdom` (limited to only 10 items per section).
 76 | 
 77 | ```markdown
 78 | ## SUMMARY:
 79 | 
 80 | The content features a conversation between two individuals discussing various topics, including the decline of Western culture, the importance of beauty and subtlety in life, the impact of technology and AI, the resonance of Rilke's poetry, the value of deep reading and revisiting texts, the captivating nature of Ayn Rand's writing, the role of philosophy in understanding the world, and the influence of drugs on society. They also touch upon creativity, attention spans, and the importance of introspection.
 81 | 
 82 | ## IDEAS:
 83 | 
 84 | 1. Western culture is perceived to be declining due to a loss of values and an embrace of mediocrity.
 85 | 2. Mass media and technology have contributed to shorter attention spans and a need for constant stimulation.
 86 | 3. Rilke's poetry resonates due to its focus on beauty and ecstasy in everyday objects.
 87 | 4. Subtlety is often overlooked in modern society due to sensory overload.
 88 | 5. The role of technology in shaping music and performance art is significant.
 89 | 6. Reading habits have shifted from deep, repetitive reading to consuming large quantities of new material.
 90 | 7. Revisiting influential books as one ages can lead to new insights based on accumulated wisdom and experiences.
 91 | 8. Fiction can vividly illustrate philosophical concepts through characters and narratives.
 92 | 9. Many influential thinkers have backgrounds in philosophy, highlighting its importance in shaping reasoning skills.
 93 | 10. Philosophy is seen as a bridge between theology and science, asking questions that both fields seek to answer.
 94 | 
 95 | ## QUOTES:
 96 | 
 97 | 1. "You can't necessarily think yourself into the answers. You have to create space for the answers to come to you."
 98 | 2. "The West is dying and we are killing her."
 99 | 3. "The American Dream has been replaced by mass packaged mediocrity porn, encouraging us to revel like happy pigs in our own meekness."
100 | 4. "There's just not that many people who have the courage to reach beyond consensus and go explore new ideas."
101 | 5. "I'll start watching Netflix when I've read the whole of human history."
102 | 6. "Rilke saw beauty in everything... He sees it's in one little thing, a representation of all things that are beautiful."
103 | 7. "Vanilla is a very subtle flavor... it speaks to sort of the sensory overload of the modern age."
104 | 8. "When you memorize chapters [of the Bible], it takes a few months, but you really understand how things are structured."
105 | 9. "As you get older, if there's books that moved you when you were younger, it's worth going back and rereading them."
106 | 10. "She [Ayn Rand] took complicated philosophy and embodied it in a way that anybody could resonate with."
107 | 
108 | ## HABITS:
109 | 
110 | 1. Avoiding mainstream media consumption for deeper engagement with historical texts and personal research.
111 | 2. Regularly revisiting influential books from youth to gain new insights with age.
112 | 3. Engaging in deep reading practices rather than skimming or speed-reading material.
113 | 4. Memorizing entire chapters or passages from significant texts for better understanding.
114 | 5. Disengaging from social media and fast-paced news cycles for more focused thought processes.
115 | 6. Walking long distances as a form of meditation and reflection.
116 | 7. Creating space for thoughts to solidify through introspection and stillness.
117 | 8. Embracing emotions such as grief or anger fully rather than suppressing them.
118 | 9. Seeking out varied experiences across different careers and lifestyles.
119 | 10. Prioritizing curiosity-driven research without specific goals or constraints.
120 | 
121 | ## FACTS:
122 | 
123 | 1. The West is perceived as declining due to cultural shifts away from traditional values.
124 | 2. Attention spans have shortened due to technological advancements and media consumption habits.
125 | 3. Rilke's poetry emphasizes finding beauty in everyday objects through detailed observation.
126 | 4. Modern society often overlooks subtlety due to sensory overload from various stimuli.
127 | 5. Reading habits have evolved from deep engagement with texts to consuming large quantities quickly.
128 | 6. Revisiting influential books can lead to new insights based on accumulated life experiences.
129 | 7. Fiction can effectively illustrate philosophical concepts through character development and narrative arcs.
130 | 8. Philosophy plays a significant role in shaping reasoning skills and understanding complex ideas.
131 | 9. Creativity may be stifled by cultural nihilism and protectionist attitudes within society.
132 | 10. Short-term thinking undermines efforts to create lasting works of beauty or significance.
133 | 
134 | ## REFERENCES:
135 | 
136 | 1. Rainer Maria Rilke's poetry
137 | 2. Netflix
138 | 3. Underworld concert
139 | 4. Katy Perry's theatrical performances
140 | 5. Taylor Swift's performances
141 | 6. Bible study
142 | 7. Atlas Shrugged by Ayn Rand
143 | 8. Robert Pirsig's writings
144 | 9. Bertrand Russell's definition of philosophy
145 | 10. Nietzsche's walks
146 | ```
147 | 
148 | This allows you to quickly extract what's valuable and meaningful from the content for the use cases above.
149 | 
150 | ## Meta
151 | 
152 | - **Author**: Daniel Miessler
153 | - **Version Information**: Daniel's main `extractwisdom` version.
154 | - **Published**: January 5, 2024
155 | 
```

--------------------------------------------------------------------------------
/libraries/python/chat-context-toolkit/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Chat Context Toolkit
  2 | 
  3 | The **Chat Context Toolkit** is a Python library designed to efficiently manage context for most AI agents.
  4 | 
  5 | It provides these three core, modular components:
  6 | - Message History Management: Applies context engineering techniques to ensure that messages fit within a token budget.
  7 | - Archive: A task for archiving and processing chunks of the message history that may no longer fit within a token budget to ensure older data can still be considered.
  8 | - Virtual Filesystem: Creates a common abstraction for LLMs to read, edit, and explore files coming from a variety of disparate sources.
  9 | 
 10 | 
 11 | ## Key Features
 12 | 
 13 | ### History Management
 14 | 
 15 | The primary goal of history management is to ensure that a list of messages is guaranteed to be under a token limit
 16 | and to provide a framework for common prompt engineering techniques to optimize how the messages are reduced to fit within a token budget.
 17 | 
 18 | In the default case, this algorithm is equivalent to the commonly implemented truncation of oldest messages,
 19 | but a user can configure abbreviations which allow for fine-grained control over how message contents can be reduced, rather than eliminated.
 20 | 
 21 | For example, the results of "data" tools, such as ones that query external sources like the web or a database,
 22 | are usually only important until they are "consumed" by a user asking questions or incorporating the results into something else like a document.
 23 | Thus, a common abbreviation for a tool message like this might be: `The content of this tool call result has been removed due to token limits. If you need it, call the tool again.`
 24 | 
 25 | ![](./assets/history_v1.png)
 26 | 
 27 | ### Archiving
 28 | 
 29 | Removing messages from history may be removing valuable data required to effectively address a user’s task.
 30 | We address this by asynchronously storing and extracting important content from chunks of the conversation into a configurable summary.
 31 | The original files could be later retrieved by the model (see the following section on the Virtual Filesystem),
 32 | and the summaries could be used as a form of memory system (although we do not prescribe this – it is up to the user of the library to decide what they want to use the summary for).
 33 | 
 34 | ![](./assets/archive_v1.png)
 35 | 
 36 | ### Virtual File System
 37 | 
 38 | Files are often large, and users usually have many of them that they create, add, or get created as part of working with an agent.
 39 | These files might come from different sources, but to the model it is unnecessary, confusing, or detrimental to present them in different ways.
 40 | To solve for this the virtual filesystem provides the following:
 41 | - A cohesive view of all types of varied data (generated documents, uploaded files, old message histories, etc.) optimized for the model’s understanding.
 42 | - Default tools for retrieval and exploration of that data as one cohesive aggregation of files.
 43 | - A mechanism for editing files that we define as editable.
 44 | 
 45 | ![](./assets/vfs_v1.png)
 46 | 
 47 | ---
 48 | 
 49 | ## Project Structure
 50 | 
 51 | ### `archive` Module
 52 | 
 53 | Handles the archival of message histories into summarized chunks for long-term storage:
 54 | 
 55 | - **`_archive.py`**: Core archiving logic with `ArchiveTask` for periodic archiving and `ArchiveReader` for retrieving archived content.
 56 | - **`_state.py`**: Manages the archive's persistent state using configurable storage providers.
 57 | - **`_types.py`**: Defines archival data structures, protocols, and configurations including `ArchiveContent`, `ArchiveManifest`, `ArchivesState`, and provider protocols.
 58 | 
 59 | ### `history` Module
 60 | 
 61 | Manages in-memory history for active sessions and ensures prioritization within token budgets:
 62 | 
 63 | - **`_history.py`**: Core functionality with `apply_budget_to_history_messages` for token-constrained message processing.
 64 | - **`_prioritize.py`**: Logic for pairing and prioritizing messages (e.g., tool calls and results).
 65 | - **`_budget.py`**: Ensures that token usage remains within the defined budget through abbreviation and truncation.
 66 | - **`_decorators.py`**: Utility decorators for performance logging and timing.
 67 | - **`_types.py`**: Type definitions specific to history management including protocols and data structures.
 68 | 
 69 | ### `virtual_filesystem` Module
 70 | 
 71 | Provides a virtual file system abstraction for LLM interaction with files from multiple sources:
 72 | 
 73 | - **`virtual_filesystem.py`**: Core `VirtualFileSystem` class that manages file source mounts and provides tools for LLM interaction.
 74 | - **`types.py`**: Type definitions including `FileSource`, `DirectoryEntry`, `FileEntry`, and `WriteToolDefinition` protocols.
 75 | - **`README.md`**: Detailed documentation on the virtual file system concept and implementation.
 76 | 
 77 | ---
 78 | 
 79 | ## Installation
 80 | 
 81 | ### Requirements
 82 | 
 83 | - **Python**: 3.11 or higher
 84 | 
 85 | ### Setup
 86 | 
 87 | To use this library, install the necessary dependencies with the **`uv`** dependency manager:
 88 | 
 89 | ```bash
 90 | uv sync --frozen
 91 | ```
 92 | 
 93 | For development with all dependency groups (including examples):
 94 | 
 95 | ```bash
 96 | uv sync --all-extras --all-groups --frozen
 97 | ```
 98 | 
 99 | ---
100 | 
101 | ## Usage
102 | 
103 | ### Example 1: Managing Message History with Token Budgets
104 | 
105 | ```python
106 | from chat_context_toolkit.history import (
107 |     apply_budget_to_history_messages,
108 |     NewTurn,
109 |     HistoryMessageProvider,
110 |     TokenCounter
111 | )
112 | 
113 | # Create a token counter function
114 | def token_counter(messages):
115 |     # Implement your token counting logic
116 |     return sum(len(msg.get("content", "")) for msg in messages)
117 | 
118 | # Create a message provider function
119 | async def message_provider(after_id=None):
120 |     # Implement your message retrieval logic
121 |     # Return a sequence of HistoryMessageProtocol objects
122 |     return your_messages
123 | 
124 | # Apply token budget to message history
125 | turn = NewTurn(high_priority_token_count=5000)
126 | messages = await apply_budget_to_history_messages(
127 |     turn=turn,
128 |     token_budget=10000,
129 |     token_counter=token_counter,
130 |     message_provider=message_provider,
131 | )
132 | ```
133 | 
134 | ### Example 2: Archiving Messages
135 | 
136 | ```python
137 | from chat_context_toolkit.archive import ArchiveTask, ArchiveTaskConfig
138 | 
139 | # Initialize archiving task
140 | archive_task = ArchiveTask(
141 |     storage_provider=your_storage_provider,  # Must implement StorageProvider protocol
142 |     message_provider=your_message_provider,  # Must implement MessageProvider protocol
143 |     token_counter=your_token_counter,        # Must implement TokenCounter protocol
144 |     summarizer=your_summarizer,              # Must implement Summarizer protocol
145 | )
146 | 
147 | # Start archiving with custom configuration
148 | config = ArchiveTaskConfig(
149 |     message_poll_interval_seconds=300,  # Poll every 5 minutes
150 |     chunk_token_count_threshold=50000   # Archive when chunk exceeds 50k tokens
151 | )
152 | task, trigger_fn = archive_task.start(config=config)
153 | 
154 | # Optionally trigger archiving manually
155 | trigger_fn()
156 | ```
157 | 
158 | ### Example 3: Reading Archived Messages
159 | 
160 | ```python
161 | from chat_context_toolkit.archive import ArchiveReader
162 | 
163 | # Create archive reader
164 | reader = ArchiveReader(
165 |     message_provider=your_message_provider,
166 |     storage_provider=your_storage_provider,
167 | )
168 | 
169 | # Get archive state
170 | state = await reader.get_state()
171 | print(f"Most recent archived message: {state.most_recent_archived_message_id}")
172 | 
173 | # List all archived chunks
174 | async for manifest in reader.list():
175 |     print(f"Archive: {manifest.summary}")
176 |     print(f"Messages: {len(manifest.message_ids)}")
177 |     print(f"Date range: {manifest.timestamp_oldest} to {manifest.timestamp_most_recent}")
178 | 
179 | # Read specific archive content
180 | content = await reader.read("archive_filename.json")
181 | if content:
182 |     print(f"Found {len(content.messages)} messages in archive")
183 | ```
184 | 
185 | ### Example 4: Virtual File System
186 | 
187 | ```python
188 | from chat_context_toolkit.virtual_filesystem import VirtualFileSystem
189 | from openai import OpenAI
190 | 
191 | # Create and configure virtual file system
192 | vfs = VirtualFileSystem()
193 | vfs.mount("/docs", your_file_source)  # Must implement FileSource protocol
194 | 
195 | # Get tools for OpenAI chat completion
196 | tools = list(vfs.tools.values())
197 | 
198 | # Use with OpenAI chat completion
199 | client = OpenAI()
200 | messages = [
201 |     {"role": "system", "content": "You have access to files through the virtual file system. Use the ls and view tools to explore and read files."},
202 |     {"role": "user", "content": "What files are available in /docs?"}
203 | ]
204 | 
205 | response = client.chat.completions.create(
206 |     model="gpt-4",
207 |     messages=messages,
208 |     tools=tools
209 | )
210 | 
211 | # Execute tool calls from the response
212 | if response.choices[0].message.tool_calls:
213 |     for tool_call in response.choices[0].message.tool_calls:
214 |         result = await vfs.execute_tool(tool_call)
215 |         print(f"Tool {tool_call.function.name} result: {result}")
216 | ```
217 | 
218 | ---
219 | 
220 | ## Development Setup
221 | 
222 | 1. Install the project dependencies:
223 | 
224 |    ```bash
225 |    make install
226 |    ```
227 | 
228 | 2. Run tests:
229 |    ```bash
230 |    make test
231 |    ```
232 | 
```

--------------------------------------------------------------------------------
/assistants/knowledge-transfer-assistant/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Knowledge Transfer Assistant
  2 | 
  3 | A dual-mode context transfer system that facilitates collaborative knowledge sharing between Coordinators and Team members in the Semantic Workbench.
  4 | 
  5 | ## Overview
  6 | 
  7 | The Knowledge Transfer Assistant is designed to bridge the information gap between Coordinators and Team members by providing a structured communication system with shared artifacts, real-time updates, and bidirectional information flow. It enables:
  8 | 
  9 | - **Knowledge Organization**: Coordinators can structure and organize complex information for sharing
 10 | - **Dual-Mode Operation**: Single assistant with context-aware Coordinator and Team modes
 11 | - **Information Sharing**: Knowledge transfer between separate conversations with automatic synchronization
 12 | - **Information Requests**: Bidirectional communication system for team member questions
 13 | - **Progress Tracking**: Real-time knowledge transfer dashboard updates and completion tracking
 14 | - **Inspector Panels**: Multiple specialized visual dashboards showing knowledge transfer state, learning objectives, and debug information
 15 | 
 16 | ## Terminology
 17 | 
 18 | - **share**: The space enveloping all of the coordinator and team data.
 19 | - **knowledge package**: The information to be transferred from the coordinator(s) to team.
 20 | - **knowledge transfer**: The process of transferring knowledge from the coordinator(s) to team.
 21 | - **assistant mode**: Whether the assistant is currently in helping-coordinator or helping-team-member mode.
 22 | 
 23 | ## Key Features
 24 | 
 25 | ### Conversation Types and Dual Mode Operation
 26 | 
 27 | The Knowledge Transfer Assistant creates and manages three distinct types of conversations:
 28 | 
 29 | 1. **Coordinator Conversation**: The personal conversation used by the knowledge transfer coordinator/owner to create and manage the knowledge base.
 30 | 
 31 | 2. **Shareable Team Conversation**: A template conversation that's automatically created along with a share URL. This conversation is never directly used - it serves as the template for creating individual team conversations when users click the share link.
 32 | 
 33 | 3. **Team Conversation(s)**: Individual conversations for team members, created when they redeem the share URL. Each team member gets their own personal conversation connected to the knowledge transfer.
 34 | 
 35 | The assistant operates in two distinct modes with different capabilities:
 36 | 
 37 | 1. **Coordinator Mode**
 38 |    - Create and organize knowledge briefs with learning objectives
 39 |    - Maintain an auto-updating knowledge digest with critical information
 40 |    - Provide guidance and respond to information requests
 41 |    - Share files and context with team members
 42 |    - Manage knowledge transfer completion tracking
 43 | 
 44 | 2. **Team Mode**
 45 |    - Access knowledge brief and knowledge digest
 46 |    - Request information or assistance from Coordinators
 47 |    - Update knowledge transfer status with progress information
 48 |    - Synchronize shared files from the coordinator
 49 |    - Explore knowledge share context and learning objectives
 50 | 
 51 | ### Key Artifacts
 52 | 
 53 | The system manages several core artifacts that support knowledge transfer operations:
 54 | 
 55 | - **Project Brief**: Details knowledge goals and success criteria
 56 | - **Knowledge Digest**: Dynamically updated information repository that captures key knowledge share context
 57 | - **Learning Objectives**: Structured goals with specific learning outcomes
 58 | - **Information Requests**: Documented information needs from Team members with priority levels
 59 | - **Project Dashboard**: Real-time progress tracking and state information across multiple inspector panels
 60 | 
 61 | ### State Management
 62 | 
 63 | The assistant uses a multi-layered state management approach:
 64 | 
 65 | - **Cross-Conversation Linking**: Connects Coordinator and Team conversations
 66 | - **File Synchronization**: Automatic file sharing between conversations, including when files are uploaded by Coordinators or when team members return to a conversation
 67 | - **Inspector Panel**: Real-time visual status dashboard for knowledge transfer progress
 68 | - **Conversation-Specific Storage**: Each conversation maintains role-specific state
 69 | 
 70 | ## Usage
 71 | 
 72 | 
 73 | ### Workflow
 74 | 
 75 | 1. **Coordinator Preparation**:
 76 |    - Create knowledge brief with learning objectives and outcomes
 77 |    - The knowledge digest automatically updates with key information from conversations
 78 |    - Share invitation link with team members
 79 |    - Upload relevant files for team access
 80 |    - Define knowledge transfer audience and organize knowledge structure
 81 | 
 82 | 2. **Team Operations**:
 83 |    - Join the knowledge transfer using invitation link
 84 |    - Review knowledge brief and knowledge digest content
 85 |    - Request additional information with priority levels
 86 |    - Update knowledge transfer status with progress information
 87 |    - Synchronize files from coordinator automatically
 88 | 
 89 | 3. **Collaborative Cycle**:
 90 |    - Coordinator responds to information requests with detailed resolutions
 91 |    - Team updates knowledge transfer status with progress tracking
 92 |    - Both sides can view knowledge transfer status and progress via multiple inspector panels
 93 |    - Real-time synchronization of knowledge transfer state across all conversations
 94 | 
 95 | ## Development
 96 | 
 97 | ### Project Structure
 98 | 
 99 | - `/assistant/`: Core implementation files
100 |   - `assistant.py`: Main assistant implementation with dual-role event handling
101 |   - `manager.py`: Project state and artifact management (KnowledgeTransferManager)
102 |   - `conversation_share_link.py`: Cross-conversation linking and synchronization
103 |   - `storage.py` & `storage_models.py`: Persistent state management
104 |   - `config.py`: Role-specific prompt templates and configuration
105 |   - `tools.py`: Assistant tools and LLM functions
106 |   - `files.py`: File synchronization and management (ShareManager)
107 |   - `notifications.py`: Cross-conversation notification system
108 |   - `data.py`: Data models for knowledge transfer entities
109 |   - `conversation_clients.py`: Conversation client management
110 |   - `analysis.py`: Analysis functionality
111 |   - `team_welcome.py`: Team welcome message generation
112 |   - `utils.py`: General utility functions
113 |   - `string_utils.py`: String utility functions
114 |   - `common.py`: Common utilities and role detection
115 |   - `respond.py`: Response generation
116 |   - `logging.py`: Logging configuration
117 |   - `inspectors/`: Inspector panel components
118 |     - `brief.py`: Brief inspector for knowledge transfer status
119 |     - `learning.py`: Learning objectives inspector
120 |     - `sharing.py`: Sharing status inspector
121 |     - `debug.py`: Debug inspector
122 |     - `common.py`: Common inspector utilities
123 |   - `text_includes/`: Role-specific prompts and instruction templates
124 |   - `assets/`: SVG icons and visual assets
125 | 
126 | - `/docs/`: Documentation files
127 |   - `DESIGN.md`: System design and architecture
128 |   - `DEV_GUIDE.md`: Development guidelines
129 |   - `JTBD.md`: Jobs-to-be-done analysis
130 |   - `ASSISTANT_LIBRARY_NOTES.md`: Notes on the assistant library
131 |   - `WORKBENCH_NOTES.md`: Workbench state management details
132 |   - `notable_claude_conversations/`: Archived design conversations
133 | 
134 | - `/tests/`: Comprehensive test suite
135 |   - `test_artifact_loading.py`: Artifact loading and management tests
136 |   - `test_inspector.py`: State inspector functionality tests
137 |   - `test_share_manager.py`: File sharing and synchronization tests
138 |   - `test_share_storage.py`: Storage system tests
139 |   - `test_share_tools.py`: Tool functionality tests
140 |   - `test_team_mode.py`: Team mode operation tests
141 | 
142 | ### Development Commands
143 | 
144 | ```bash
145 | # Install dependencies
146 | make install
147 | 
148 | # Run tests
149 | make test
150 | 
151 | # Single test with verbose output
152 | uv run pytest tests/test_file.py::test_function -v
153 | 
154 | # Manual inspector test
155 | python tests/test_inspector.py
156 | 
157 | # Type checking
158 | make type-check
159 | 
160 | # Linting and formatting
161 | make lint
162 | make format
163 | 
164 | # Docker operations
165 | make docker-build
166 | make docker-run-local
167 | 
168 | # Start assistant service
169 | make start
170 | ```
171 | 
172 | ## Architecture
173 | 
174 | The Knowledge Transfer Assistant leverages the Semantic Workbench Assistant library and extends it with:
175 | 
176 | ### Key Dependencies
177 | - `semantic-workbench-assistant`: Core assistant framework
178 | - `assistant-extensions[attachments]`: File attachment support with dashboard cards
179 | - `content-safety`: Content moderation capabilities
180 | - `openai-client`: LLM integration for knowledge digest generation
181 | 
182 | ### Architectural Components
183 | 1. **Cross-Conversation Communication**: Advanced conversation sharing and synchronization
184 | 2. **Artifact Management**: Structured data models for briefs, objectives, and requests
185 | 3. **Multi-Panel State Inspection**: Specialized inspector panels for different knowledge transfer aspects
186 | 4. **Tool-based Interaction**: Comprehensive LLM functions for knowledge transfer operations
187 | 5. **Role-Specific Experiences**: Context-aware interfaces for Coordinator and Team modes
188 | 6. **Auto-Updating Knowledge Digest**: LLM-powered automatic extraction of key information
189 | 7. **File Synchronization**: Automatic file sharing and synchronization across conversations
190 | 
191 | ### Design Philosophy
192 | The system follows a **wabi-sabi philosophy** emphasizing:
193 | - Ruthless simplicity with minimal abstractions
194 | - Present-moment focus rather than future-proofing
195 | - Trust in emergence from simple, well-defined components
196 | - Direct library integration with minimal wrappers
197 | - Pragmatic trust in external systems
198 | 
199 | The architecture uses a centralized artifact storage model with event-driven updates and real-time UI synchronization to keep all conversations coordinated.
200 | 
```

--------------------------------------------------------------------------------
/assistants/project-assistant/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Knowledge Transfer Assistant
  2 | 
  3 | A dual-mode context transfer system that facilitates collaborative knowledge sharing between Coordinators and Team members in the Semantic Workbench.
  4 | 
  5 | ## Overview
  6 | 
  7 | The Knowledge Transfer Assistant is designed to bridge the information gap between Coordinators and Team members by providing a structured communication system with shared artifacts, real-time updates, and bidirectional information flow. It enables:
  8 | 
  9 | - **Knowledge Organization**: Coordinators can structure and organize complex information for sharing
 10 | - **Dual-Mode Operation**: Single assistant with context-aware Coordinator and Team modes
 11 | - **Information Sharing**: Knowledge transfer between separate conversations with automatic synchronization
 12 | - **Information Requests**: Bidirectional communication system for team member questions
 13 | - **Progress Tracking**: Real-time knowledge transfer dashboard updates and completion tracking
 14 | - **Inspector Panels**: Multiple specialized visual dashboards showing knowledge transfer state, learning objectives, and debug information
 15 | 
 16 | ## Terminology
 17 | 
 18 | - **share**: The space enveloping all of the coordinator and team data.
 19 | - **knowledge package**: The information to be transferred from the coordinator(s) to team.
 20 | - **knowledge transfer**: The process of transferring knowledge from the coordinator(s) to team.
 21 | - **assistant mode**: Whether the assistant is currently in helping-coordinator or helping-team-member mode.
 22 | 
 23 | ## Key Features
 24 | 
 25 | ### Conversation Types and Dual Mode Operation
 26 | 
 27 | The Knowledge Transfer Assistant creates and manages three distinct types of conversations:
 28 | 
 29 | 1. **Coordinator Conversation**: The personal conversation used by the knowledge transfer coordinator/owner to create and manage the knowledge base.
 30 | 
 31 | 2. **Shareable Team Conversation**: A template conversation that's automatically created along with a share URL. This conversation is never directly used - it serves as the template for creating individual team conversations when users click the share link.
 32 | 
 33 | 3. **Team Conversation(s)**: Individual conversations for team members, created when they redeem the share URL. Each team member gets their own personal conversation connected to the knowledge transfer.
 34 | 
 35 | The assistant operates in two distinct modes with different capabilities:
 36 | 
 37 | 1. **Coordinator Mode**
 38 |    - Create and organize knowledge briefs with learning objectives
 39 |    - Maintain an auto-updating knowledge digest with critical information
 40 |    - Provide guidance and respond to information requests
 41 |    - Share files and context with team members
 42 |    - Manage knowledge transfer completion tracking
 43 | 
 44 | 2. **Team Mode**
 45 |    - Access knowledge brief and knowledge digest
 46 |    - Request information or assistance from Coordinators
 47 |    - Update knowledge transfer status with progress information
 48 |    - Synchronize shared files from the coordinator
 49 |    - Explore knowledge share context and learning objectives
 50 | 
 51 | ### Key Artifacts
 52 | 
 53 | The system manages several core artifacts that support knowledge transfer operations:
 54 | 
 55 | - **Project Brief**: Details knowledge goals and success criteria
 56 | - **Knowledge Digest**: Dynamically updated information repository that captures key knowledge share context
 57 | - **Learning Objectives**: Structured goals with specific learning outcomes
 58 | - **Information Requests**: Documented information needs from Team members with priority levels
 59 | - **Project Dashboard**: Real-time progress tracking and state information across multiple inspector panels
 60 | 
 61 | ### State Management
 62 | 
 63 | The assistant uses a multi-layered state management approach:
 64 | 
 65 | - **Cross-Conversation Linking**: Connects Coordinator and Team conversations
 66 | - **File Synchronization**: Automatic file sharing between conversations, including when files are uploaded by Coordinators or when team members return to a conversation
 67 | - **Inspector Panel**: Real-time visual status dashboard for knowledge transfer progress
 68 | - **Conversation-Specific Storage**: Each conversation maintains role-specific state
 69 | 
 70 | ## Usage
 71 | 
 72 | 
 73 | ### Workflow
 74 | 
 75 | 1. **Coordinator Preparation**:
 76 |    - Create knowledge brief with learning objectives and outcomes
 77 |    - The knowledge digest automatically updates with key information from conversations
 78 |    - Share invitation link with team members
 79 |    - Upload relevant files for team access
 80 |    - Define knowledge transfer audience and organize knowledge structure
 81 | 
 82 | 2. **Team Operations**:
 83 |    - Join the knowledge transfer using invitation link
 84 |    - Review knowledge brief and knowledge digest content
 85 |    - Request additional information with priority levels
 86 |    - Update knowledge transfer status with progress information
 87 |    - Synchronize files from coordinator automatically
 88 | 
 89 | 3. **Collaborative Cycle**:
 90 |    - Coordinator responds to information requests with detailed resolutions
 91 |    - Team updates knowledge transfer status with progress tracking
 92 |    - Both sides can view knowledge transfer status and progress via multiple inspector panels
 93 |    - Real-time synchronization of knowledge transfer state across all conversations
 94 | 
 95 | ## Development
 96 | 
 97 | ### Project Structure
 98 | 
 99 | - `/assistant/`: Core implementation files
100 |   - `assistant.py`: Main assistant implementation with dual-role event handling
101 |   - `manager.py`: Project state and artifact management (KnowledgeTransferManager)
102 |   - `conversation_share_link.py`: Cross-conversation linking and synchronization
103 |   - `storage.py` & `storage_models.py`: Persistent state management
104 |   - `config.py`: Role-specific prompt templates and configuration
105 |   - `tools.py`: Assistant tools and LLM functions
106 |   - `files.py`: File synchronization and management (ShareManager)
107 |   - `notifications.py`: Cross-conversation notification system
108 |   - `data.py`: Data models for knowledge transfer entities
109 |   - `conversation_clients.py`: Conversation client management
110 |   - `analysis.py`: Analysis functionality
111 |   - `team_welcome.py`: Team welcome message generation
112 |   - `utils.py`: General utility functions
113 |   - `string_utils.py`: String utility functions
114 |   - `common.py`: Common utilities and role detection
115 |   - `respond.py`: Response generation
116 |   - `logging.py`: Logging configuration
117 |   - `inspectors/`: Inspector panel components
118 |     - `brief.py`: Brief inspector for knowledge transfer status
119 |     - `learning.py`: Learning objectives inspector
120 |     - `sharing.py`: Sharing status inspector
121 |     - `debug.py`: Debug inspector
122 |     - `common.py`: Common inspector utilities
123 |   - `text_includes/`: Role-specific prompts and instruction templates
124 |   - `assets/`: SVG icons and visual assets
125 | 
126 | - `/docs/`: Documentation files
127 |   - `DESIGN.md`: System design and architecture
128 |   - `DEV_GUIDE.md`: Development guidelines
129 |   - `JTBD.md`: Jobs-to-be-done analysis
130 |   - `ASSISTANT_LIBRARY_NOTES.md`: Notes on the assistant library
131 |   - `WORKBENCH_NOTES.md`: Workbench state management details
132 |   - `notable_claude_conversations/`: Archived design conversations
133 | 
134 | - `/tests/`: Comprehensive test suite
135 |   - `test_artifact_loading.py`: Artifact loading and management tests
136 |   - `test_inspector.py`: State inspector functionality tests
137 |   - `test_share_manager.py`: File sharing and synchronization tests
138 |   - `test_share_storage.py`: Storage system tests
139 |   - `test_share_tools.py`: Tool functionality tests
140 |   - `test_team_mode.py`: Team mode operation tests
141 | 
142 | ### Development Commands
143 | 
144 | ```bash
145 | # Install dependencies
146 | make install
147 | 
148 | # Run tests
149 | make test
150 | 
151 | # Single test with verbose output
152 | uv run pytest tests/test_file.py::test_function -v
153 | 
154 | # Manual inspector test
155 | python tests/test_inspector.py
156 | 
157 | # Type checking
158 | make type-check
159 | 
160 | # Linting and formatting
161 | make lint
162 | make format
163 | 
164 | # Docker operations
165 | make docker-build
166 | make docker-run-local
167 | 
168 | # Start assistant service
169 | make start
170 | ```
171 | 
172 | ## Architecture
173 | 
174 | The Knowledge Transfer Assistant leverages the Semantic Workbench Assistant library and extends it with:
175 | 
176 | ### Key Dependencies
177 | - `semantic-workbench-assistant`: Core assistant framework
178 | - `assistant-extensions[attachments]`: File attachment support with dashboard cards
179 | - `content-safety`: Content moderation capabilities
180 | - `openai-client`: LLM integration for knowledge digest generation
181 | 
182 | ### Architectural Components
183 | 1. **Cross-Conversation Communication**: Advanced conversation sharing and synchronization
184 | 2. **Artifact Management**: Structured data models for briefs, objectives, and requests
185 | 3. **Multi-Panel State Inspection**: Specialized inspector panels for different knowledge transfer aspects
186 | 4. **Tool-based Interaction**: Comprehensive LLM functions for knowledge transfer operations
187 | 5. **Role-Specific Experiences**: Context-aware interfaces for Coordinator and Team modes
188 | 6. **Auto-Updating Knowledge Digest**: LLM-powered automatic extraction of key information
189 | 7. **File Synchronization**: Automatic file sharing and synchronization across conversations
190 | 
191 | ### Design Philosophy
192 | The system follows a **wabi-sabi philosophy** emphasizing:
193 | - Ruthless simplicity with minimal abstractions
194 | - Present-moment focus rather than future-proofing
195 | - Trust in emergence from simple, well-defined components
196 | - Direct library integration with minimal wrappers
197 | - Pragmatic trust in external systems
198 | 
199 | The architecture uses a centralized artifact storage model with event-driven updates and real-time UI synchronization to keep all conversations coordinated.
200 | 
```

--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Semantic Workbench
  2 | 
  3 | Semantic Workbench is a versatile tool designed to help prototype intelligent assistants quickly.
  4 | It supports the creation of new assistants or the integration of existing ones, all within a
  5 | cohesive interface. The workbench provides a user-friendly UI for creating conversations with one
  6 | or more assistants, configuring settings, and exposing various behaviors.
  7 | 
  8 | The Semantic Workbench is composed of three main components:
  9 | 
 10 | - [Workbench Service](workbench-service/README.md) (Python): The backend service that
 11 |   handles core functionalities.
 12 | - [Workbench App](workbench-app/README.md) (React/Typescript): The frontend web user
 13 |   interface for interacting with workbench and assistants.
 14 | - [Assistant Services](examples) (Python, C#, etc.): any number of assistant services that implement the service protocols/APIs,
 15 |   developed using any framework and programming language of your choice.
 16 | 
 17 | Designed to be agnostic of any agent framework, language, or platform, the Semantic Workbench
 18 | facilitates experimentation, development, testing, and measurement of agent behaviors and workflows.
 19 | Assistants integrate with the workbench via a RESTful API, allowing for flexibility and broad applicability in various development environments.
 20 | 
 21 | ![Semantic Workbench architecture](https://raw.githubusercontent.com/microsoft/semanticworkbench/main/docs/images/architecture-animation.gif)
 22 | 
 23 | # Workbench interface examples
 24 | 
 25 | ![Configured dashboard example](docs/images/dashboard_configured_view.png)
 26 | 
 27 | ![Prospector Assistant example](docs/images/prospector_example.png)
 28 | 
 29 | ![Message debug inspection](docs/images/message_inspection.png)
 30 | 
 31 | ![Mermaid graph example](examples/dotnet/dotnet-02-message-types-demo/docs/mermaid.png)
 32 | 
 33 | ![ABC music example](examples/dotnet/dotnet-02-message-types-demo/docs/abc.png)
 34 | 
 35 | # Quick start (Recommended) - GitHub Codespaces for turn-key development environment
 36 | 
 37 | GitHub Codespaces provides a cloud-based development environment for your repository. It allows you to develop, build, and test your code
 38 | in a consistent environment, without needing to install dependencies or configure your local machine. It works with any system with a web
 39 | browser and internet connection, including Windows, MacOS, Linux, Chromebooks, tablets, and mobile devices.
 40 | 
 41 | See the [GitHub Codespaces / devcontainer README](.devcontainer/README.md) for more information on how to set up and use GitHub Codespaces
 42 | with Semantic Workbench.
 43 | 
 44 | ## Local development environment
 45 | 
 46 | See the [setup guide](docs/SETUP_DEV_ENVIRONMENT.md) on how to configure your dev environment. Or if you have Docker installed you can use dev containers with VS Code which will function similarly to Codespaces.
 47 | 
 48 | ## Using VS Code
 49 | 
 50 | Codespaces will is configured to use `semantic-workbench.code-workspace`, if you are working locally that is recommended over opening the repo root. This ensures that all project configurations, such as tools, formatters, and linters, are correctly applied in VS Code. This avoids issues like incorrect error reporting and non-functional tools.
 51 | 
 52 | Workspace files allow us to manage multiple projects within a monorepo more effectively. Each project can use its own virtual environment (venv), maintaining isolation and avoiding dependency conflicts. Multi-root workspaces (\*.code-workspace files) can point to multiple projects, each configured with its own Python interpreter, ensuring seamless functionality of Python tools and extensions.
 53 | 
 54 | ### Start the app and service
 55 | 
 56 | - Use VS Code > `Run and Debug` (Ctrl/Cmd+Shift+D) > `semantic-workbench` to start the project
 57 | - Open your browser and navigate to `https://127.0.0.1:4000`
 58 |   - You may receive a warning about the app not being secure; click `Advanced` and `Proceed to localhost` to continue
 59 | - You can now interact with the app and service in the browser
 60 | 
 61 | ### Start an assistant service:
 62 | 
 63 | - Launch an example an [example](examples/) assistant service:
 64 |   - No llm api keys needed
 65 |     - Use VS Code > `Run and Debug` (Ctrl/Cmd+Shift+D) > `examples: python-01-echo-bot` to start the example assistant that echos your messages. This is a good base to understand the basics of building your own assistant.
 66 |   - Bring your own llm api keys
 67 |     - Use VS Code > `Run and Debug` (Ctrl/Cmd+Shift+D) > `examples: python-02-simple-chatbot` to start the example chatbot assistant. Either set your keys in your .env file or after creating the assistant as described below, select it and provide the keys in the configuration page.
 68 | 
 69 | ## Open the Workbench and create an Assistant
 70 | 
 71 | Open the app in your browser at [`https://localhost:4000`](https://localhost:4000). When you first log into the Semantic Workbench, follow these steps to get started:
 72 | 
 73 | 1. **Create an Assistant**: On the dashboard, click the `New Assistant` button. Select a template from the available assistant services, provide a name, and click `Save`.
 74 | 
 75 | 2. **Start a Conversation**: On the dashboard, click the `New Conversation` button. Provide a title for the conversation and click `Save`.
 76 | 
 77 | 3. **Add the Assistant**: In the conversation window, click the conversation canvas icon and add your assistant to the conversation from the conversation canvas. Now you can converse with your assistant using the message box at the bottom of the conversation window.
 78 | 
 79 |    ![Open Conversation Canvas](docs/images/conversation_canvas_open.png)
 80 | 
 81 |    ![Open Canvas](docs/images/open_conversation_canvas.png)
 82 | 
 83 | Expected: You get a response from your assistant!
 84 | 
 85 | Note that the workbench provides capabilities that not all examples use, for example providing attachments. See the [Semantic Workbench](docs/WORKBENCH_APP.md) for more details.
 86 | 
 87 | # Developing your own assistants
 88 | 
 89 | To develop new assistants and connect existing ones, see the [Assistant Development Guide](docs/ASSISTANT_DEVELOPMENT_GUIDE.md) or any check out one of the [examples](examples).
 90 | 
 91 | - [Python example 1](examples/python/python-01-echo-bot/README.md): a simple assistant echoing text back.
 92 | - [Python example 2](examples/python/python-02-simple-chatbot/README.md): a simple chatbot implementing metaprompt guardrails and content moderation.
 93 | - [Python example 3](examples/python/python-03-multimodel-chatbot/README.md): an extension of the simple chatbot that supports configuration against additional llms.
 94 | - [.NET example 1](examples/dotnet/dotnet-01-echo-bot/README.md): a simple agent with echo and support for a basic `/say` command.
 95 | - [.NET example 2](examples/dotnet/dotnet-02-message-types-demo/README.md): a simple assistants showcasing Azure AI Content Safety integration and some workbench features like Mermaid graphs.
 96 | - [.NET example 3](examples/dotnet/dotnet-03-simple-chatbot/README.md): a functional chatbot implementing metaprompt guardrails and content moderation.
 97 | 
 98 | ## Starting the workbench from the command line
 99 | 
100 | - Run the script `tools\run-workbench-chatbot.sh` or `tools\run-workbench-chatbot.ps` which does the following:
101 |   - Starts the backend service, see [here for instructions](workbench-service/README.md).
102 |   - Starts the frontend app, see [here for instructions](workbench-app/README.md).
103 |   - Starts the [Python chatbot example](examples/python/python-02-simple-chatbot/README.md)
104 | 
105 | ## Refreshing Dev Environment
106 | 
107 | - Use the `tools\reset-service-data.sh` or `tools\reset-service-data.sh` script to reset all service data. You can also delete `~/workbench-service/.data` or specific files if you know which one(s).
108 | - From repo root, run `make clean install`.
109 |   - This will perform a `git clean` and run installs in all sub-directories
110 | - Or a faster option if you just want to install semantic workbench related stuff:
111 |   - From repo root, run `make clean`
112 |   - From `~/workbench-app`, run `make install`
113 |   - From `~/workbench-service`, run `make install`
114 | 
115 | # Contributing
116 | 
117 | This project welcomes contributions and suggestions. Most contributions require you to agree to a
118 | Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
119 | the rights to use your contribution. For details, visit <https://cla.opensource.microsoft.com>.
120 | 
121 | When you submit a pull request, a CLA bot will automatically determine whether you need to provide
122 | a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
123 | provided by the bot. You will only need to do this once across all repos using our CLA.
124 | 
125 | Please see the detailed [contributing guide](CONTRIBUTING.md) for more information on how you can get involved.
126 | 
127 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
128 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
129 | contact [[email protected]](mailto:[email protected]) with any additional questions or comments.
130 | 
131 | # Trademarks
132 | 
133 | This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
134 | trademarks or logos is subject to and must follow
135 | [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
136 | Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
137 | Any use of third-party trademarks or logos are subject to those third-party's policies.
138 | 
```
Page 6/145FirstPrevNextLast