microsoft-agent 2.3.4__tar.gz → 2.3.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/MANIFEST.in +0 -1
- {microsoft_agent-2.3.4/microsoft_agent.egg-info → microsoft_agent-2.3.6}/PKG-INFO +4 -6
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/README.md +1 -3
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/_version.py +1 -1
- microsoft_agent-2.3.6/microsoft_agent/connector_sources.py +83 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/certification.json +0 -3
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/microsoft.ttl +7 -11
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/prompts/collaboration_specialist.json +0 -2
- microsoft_agent-2.3.6/microsoft_agent/skills/microsoft-agent-development/SKILL.md +102 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6/microsoft_agent.egg-info}/PKG-INFO +4 -6
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/SOURCES.txt +3 -5
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/requires.txt +2 -2
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/pyproject.toml +4 -6
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_main.py +0 -2
- microsoft_agent-2.3.6/tests/test_publication_workflow.py +95 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_startup.py +0 -2
- microsoft_agent-2.3.4/.env.example +0 -100
- microsoft_agent-2.3.4/connector_manifest.yml +0 -180
- microsoft_agent-2.3.4/microsoft_agent/connectors/mcp_source_presets.json +0 -39
- microsoft_agent-2.3.4/microsoft_agent/connectors/tool_schema_fingerprints.json +0 -8
- microsoft_agent-2.3.4/mkdocs.yml +0 -90
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/LICENSE +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/README.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/control-plane.sample.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/nginx/windows-control-plane.conf +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/systemd/microsoft-windows-control-plane.env +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/systemd/microsoft-windows-control-plane.service +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/entra/New-MicrosoftAgentApp.ps1 +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/entra/New-WindowsControlPlaneEntraResources.ps1 +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/entra/README.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/entra/permission-profiles.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/integrations.example.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/Install-WindowsCompanion.ps1 +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/README.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/Run-WindowsCompanion.ps1 +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/Test-WindowsCompanionDeployment.ps1 +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/Uninstall-WindowsCompanion.ps1 +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/windows-companion.sample.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/authentication.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/concepts.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/configuration.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/deployment.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/enrollment-checklist.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/index.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/installation.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/integrations.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/office-addin.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/overview.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/usage.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/windows-companion.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/__init__.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/__main__.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/__init__.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/_graph_models.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_admin.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_apps.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_base.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_calendar.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_directory.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_drive.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_mail.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_other.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_system.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api_client.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/auth.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/config_cli.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/connectors/__init__.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/credential_adapter.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/document_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/graph_file_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/integration_adapters.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/integration_auth.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/integration_config.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/integration_tools.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/intune_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/kg_ingest.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/__init__.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_admin.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_agreements.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_applications.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_audit.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_auth.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_calendar.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_chat.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_communications.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_connections.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_contacts.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_devices.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_directory.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_domains.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_education.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_employee_experience.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_files.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_groups.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_identity.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_mail.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_meta.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_notes.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_organization.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_places.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_policies.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_print.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_privacy.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_reports.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_search.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_security.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_sites.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_solutions.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_storage.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_subscriptions.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_tasks.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_teams.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_user.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp_config.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp_server.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/office_bridge.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/__init__.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/fixtures/records.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/mappings/source.yaml +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/migrations/manifest.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/shapes/connector.shacl.ttl +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/power_platform.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/prompts/__init__.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/settings.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/__init__.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-agent-operations/SKILL.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-agent-operations/agents/openai.yaml +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-agent-operations/references/catalog.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-calendar-scheduling/SKILL.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-mail-operations/SKILL.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-teams-messaging/SKILL.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/tool_policy.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/universal_print.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_companion.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_companion_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_control_plane.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_control_plane_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_runtime.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/dependency_links.txt +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/entry_points.txt +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/top_level.txt +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/README.md +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/manifest.xml +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/package-lock.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/package.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/assets/icon.png.b64 +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/assets/icon.svg +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/config.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/styles.css +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/taskpane.html +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/scripts/validate_manifest.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/backend-client.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/office-bridge.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/office-operations.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/taskpane.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/validation.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/tests/backend-client.test.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/tests/office-bridge.test.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/tests/validation.test.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/tsconfig.json +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/vitest.config.ts +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/webpack.config.cjs +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/setup.cfg +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_api_client_extended.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_auth.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_auth_coverage.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_bug_cx_046_ctx_info_awaited.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_config_cli.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_credential_adapter.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_default_content_surfaces.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_document_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_generate_code.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_graph_file_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_graph_reliability.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_graph_transport.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_init_dynamics.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_integration_adapters.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_integration_auth.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_integration_config_and_tools.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_intune_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_kg_ingest.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_mcp_comprehensive.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_mcp_server.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_office_bridge.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_office_manifest.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_onenote_sharepoint_print.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_placeholder.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_power_platform.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_sdk_centralization.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_settings_and_policy.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_teams_reliability.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_transport_migration.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_transport_tls.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_verify_api_integration.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_windows_companion.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_windows_control_plane.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_windows_control_plane_service.py +0 -0
- {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_windows_runtime.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: microsoft-agent
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.6
|
|
4
4
|
Summary: Governed Microsoft Graph agent and MCP server
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
11
11
|
Requires-Python: >=3.12
|
|
12
12
|
Description-Content-Type: text/markdown
|
|
13
13
|
License-File: LICENSE
|
|
14
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
14
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.1
|
|
15
15
|
Requires-Dist: azure-core>=1.41.0
|
|
16
16
|
Requires-Dist: httpx>=0.28.1
|
|
17
17
|
Requires-Dist: keyring>=25.7.0
|
|
@@ -19,7 +19,7 @@ Requires-Dist: msal>=1.39.0
|
|
|
19
19
|
Requires-Dist: msgraph-sdk>=1.64.0
|
|
20
20
|
Requires-Dist: pydantic>=2.14.1
|
|
21
21
|
Provides-Extra: mcp
|
|
22
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
22
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.1; extra == "mcp"
|
|
23
23
|
Provides-Extra: documents
|
|
24
24
|
Requires-Dist: python-docx>=1.2.0; extra == "documents"
|
|
25
25
|
Requires-Dist: python-pptx>=1.0.2; extra == "documents"
|
|
@@ -71,7 +71,7 @@ Dynamic: license-file
|
|
|
71
71
|
agent. It uses Agent Connector SDK for MCP, identity propagation, intent delegation,
|
|
72
72
|
configuration, telemetry, and graph integration.
|
|
73
73
|
|
|
74
|
-
Current package version: **2.3.
|
|
74
|
+
Current package version: **2.3.6**
|
|
75
75
|
|
|
76
76
|
## Capabilities
|
|
77
77
|
|
|
@@ -890,8 +890,6 @@ _Auto-generated from the code-read env surface (`MCP_TOOL_MODE` + package vars)
|
|
|
890
890
|
|
|
891
891
|
The provider contributes:
|
|
892
892
|
|
|
893
|
-
- `microsoft_agent/connectors/mcp_source_presets.json`
|
|
894
|
-
- `connector_manifest.yml`
|
|
895
893
|
- `microsoft_agent/ontology/microsoft.ttl`
|
|
896
894
|
- SHACL, mapping, fixture, migration, schema-fingerprint, and certification assets
|
|
897
895
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
agent. It uses Agent Connector SDK for MCP, identity propagation, intent delegation,
|
|
4
4
|
configuration, telemetry, and graph integration.
|
|
5
5
|
|
|
6
|
-
Current package version: **2.3.
|
|
6
|
+
Current package version: **2.3.6**
|
|
7
7
|
|
|
8
8
|
## Capabilities
|
|
9
9
|
|
|
@@ -822,8 +822,6 @@ _Auto-generated from the code-read env surface (`MCP_TOOL_MODE` + package vars)
|
|
|
822
822
|
|
|
823
823
|
The provider contributes:
|
|
824
824
|
|
|
825
|
-
- `microsoft_agent/connectors/mcp_source_presets.json`
|
|
826
|
-
- `connector_manifest.yml`
|
|
827
825
|
- `microsoft_agent/ontology/microsoft.ttl`
|
|
828
826
|
- SHACL, mapping, fixture, migration, schema-fingerprint, and certification assets
|
|
829
827
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"""Data sources of this connector, declared by tool name (generated by connector-ontology-map migrate).
|
|
2
|
+
|
|
3
|
+
Served live as ``connector://resources``. Regenerate by editing the declarations, not the tools.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
# ruff: noqa: E501
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from agent_connector_sdk.ingest.live_declaration import source_meta
|
|
10
|
+
from agent_connector_sdk.ingest.sources import IngestSourceDeclaration, IngestSourceSpec
|
|
11
|
+
|
|
12
|
+
CONNECTOR = "microsoft-mcp"
|
|
13
|
+
|
|
14
|
+
SOURCES = (
|
|
15
|
+
source_meta(
|
|
16
|
+
tool="list_microsoft_ingestion_projection",
|
|
17
|
+
source_id="microsoft-user-structure",
|
|
18
|
+
record_type="microsoft-person-reference",
|
|
19
|
+
id_field="id",
|
|
20
|
+
preset={
|
|
21
|
+
"doc_type": "microsoft-person-reference",
|
|
22
|
+
"params": {
|
|
23
|
+
"kind": "users",
|
|
24
|
+
"params_json": '{"$top":100}',
|
|
25
|
+
},
|
|
26
|
+
"params_style": "args",
|
|
27
|
+
},
|
|
28
|
+
records_path="records",
|
|
29
|
+
server="microsoft-mcp",
|
|
30
|
+
),
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
SCHEMA_MAPPINGS = {
|
|
34
|
+
"Event": {
|
|
35
|
+
"fields": {},
|
|
36
|
+
"ontology_class": "Event",
|
|
37
|
+
},
|
|
38
|
+
"File": {
|
|
39
|
+
"fields": {},
|
|
40
|
+
"ontology_class": "File",
|
|
41
|
+
},
|
|
42
|
+
"Message": {
|
|
43
|
+
"fields": {},
|
|
44
|
+
"ontology_class": None,
|
|
45
|
+
},
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
RESOURCES = (
|
|
49
|
+
{
|
|
50
|
+
"id_prefix": "event",
|
|
51
|
+
"label": "Opaque Microsoft event reference",
|
|
52
|
+
"name": "Event",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id_prefix": "file",
|
|
56
|
+
"label": "Opaque Microsoft file reference",
|
|
57
|
+
"name": "File",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id_prefix": "message",
|
|
61
|
+
"label": "Opaque Microsoft message reference",
|
|
62
|
+
"name": "Message",
|
|
63
|
+
},
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def declaration() -> IngestSourceDeclaration:
|
|
68
|
+
"""The declaration the server assembles from this module."""
|
|
69
|
+
specs = []
|
|
70
|
+
for item in SOURCES:
|
|
71
|
+
for entry in item["connector_sources"]:
|
|
72
|
+
body = {k: v for k, v in entry.items() if k not in ("tool", "mapping")}
|
|
73
|
+
specs.append(
|
|
74
|
+
IngestSourceSpec.model_validate({**body, "tools": (entry["tool"],)})
|
|
75
|
+
)
|
|
76
|
+
return IngestSourceDeclaration.model_validate(
|
|
77
|
+
{
|
|
78
|
+
"connector": CONNECTOR,
|
|
79
|
+
"sources": specs,
|
|
80
|
+
"schema_mappings": SCHEMA_MAPPINGS,
|
|
81
|
+
"resources": RESOURCES,
|
|
82
|
+
}
|
|
83
|
+
)
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"api_version": "arbora.io/v1",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"connector_manifest.yml": "94e1b83cc0204930640440603a90a619a22c6bcc8651aa41967d5b820b535a3a",
|
|
5
|
-
"microsoft_agent/connectors/mcp_source_presets.json": "62d90f36250ff984665e62862566d0b2be2ffca69b35ebc394a1a5bce074cc32",
|
|
6
|
-
"microsoft_agent/connectors/tool_schema_fingerprints.json": "8e0f365e0b660836d7f331174b812d382ba30a9f3be65a621d07bf030086dd64",
|
|
7
4
|
"microsoft_agent/ontology/fixtures/records.json": "b29cde0f53b0625dc50c3941d745092f2712044bfd31b9565301c6a314f60adc",
|
|
8
5
|
"microsoft_agent/ontology/mappings/source.yaml": "c9834a4cec0b3d9eea10f40e26ea647d848b08174d9fd34ab2e468db52a90497",
|
|
9
6
|
"microsoft_agent/ontology/microsoft.ttl": "b2c0937318954ef2c5d2a01ad14c097581885cf5670e94de99e90c9143351b00",
|
|
@@ -6,17 +6,14 @@
|
|
|
6
6
|
# identifiers. Provider identifiers, names, addresses, content, filenames, URLs,
|
|
7
7
|
# timestamps, and attachment bytes are not properties in this ontology.
|
|
8
8
|
|
|
9
|
-
:Message a owl:Class
|
|
10
|
-
rdfs:label "Opaque Microsoft message reference" ;
|
|
11
|
-
rdfs:comment "A content-free keyed reference to an Outlook or Teams message." .
|
|
9
|
+
:Message a owl:Class .
|
|
12
10
|
|
|
13
|
-
:Event a owl:Class ;
|
|
14
|
-
rdfs:label "Opaque Microsoft event reference" ;
|
|
15
|
-
rdfs:comment "A content-free keyed reference to a calendar event or meeting." .
|
|
16
11
|
|
|
17
|
-
:
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
:Event a owl:Class .
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
:File a owl:Class .
|
|
16
|
+
|
|
20
17
|
|
|
21
18
|
:sentBy a owl:ObjectProperty ;
|
|
22
19
|
rdfs:label "sent by" ;
|
|
@@ -45,5 +42,4 @@
|
|
|
45
42
|
|
|
46
43
|
<http://knuckles.team/kg/microsoft> a owl:Ontology ;
|
|
47
44
|
rdfs:label "Microsoft Graph zero-PII structural ontology" ;
|
|
48
|
-
rdfs:comment "Keyed opaque message, event, file, and person relationships for governed Microsoft Graph ingestion."
|
|
49
|
-
owl:imports <http://knuckles.team/kg> .
|
|
45
|
+
rdfs:comment "Keyed opaque message, event, file, and person relationships for governed Microsoft Graph ingestion." .
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
"task": "microsoft_collaboration_specialist",
|
|
5
5
|
"type": "prompt",
|
|
6
6
|
"source": "microsoft-agent",
|
|
7
|
-
"extends": "agent-connector-sdk:base",
|
|
8
|
-
"compose": "append",
|
|
9
7
|
"description": "Governed Microsoft Graph operations through the current Microsoft Agent MCP provider.",
|
|
10
8
|
"metadata": {
|
|
11
9
|
"topic": "Microsoft Graph operations",
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsoft-agent-development
|
|
3
|
+
skill_type: skill
|
|
4
|
+
domain: development
|
|
5
|
+
description: >-
|
|
6
|
+
Develop, test, gate, and release the microsoft-agent connector. Use this skill
|
|
7
|
+
when changing Microsoft Graph integrations, governed MCP tools, packaged
|
|
8
|
+
connector content, documentation, or repository gates.
|
|
9
|
+
license: MIT
|
|
10
|
+
tags: [microsoft, graph, development, connector, test, gates]
|
|
11
|
+
tier: repository
|
|
12
|
+
metadata:
|
|
13
|
+
author: Genius
|
|
14
|
+
version: '0.1.0'
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# microsoft-agent development
|
|
18
|
+
|
|
19
|
+
This repository owns the Microsoft Graph client, authentication boundary,
|
|
20
|
+
action-routed MCP tools, provider mappings, ontology, and packaged connector
|
|
21
|
+
content. Shared connector contracts and transports belong to
|
|
22
|
+
`agent-connector-sdk`; admission, serving, and durable graph state belong to
|
|
23
|
+
their owning repositories. Read `AGENTS.md` before changing code. Keep tenant
|
|
24
|
+
identifiers, credentials, private endpoints, provider records, and raw
|
|
25
|
+
personal data out of source, logs, fixtures, and packaged skill content.
|
|
26
|
+
|
|
27
|
+
## Rapid delivery: the 5-minute contract
|
|
28
|
+
|
|
29
|
+
Specs are already designed. Deliver small, reviewable slices and cite the
|
|
30
|
+
owning spec row in the commit trailer.
|
|
31
|
+
|
|
32
|
+
- Find the owning row first with `git grep -n "<term>" -- specs` and extend the
|
|
33
|
+
existing spec before adding requirement text.
|
|
34
|
+
- Reuse the one SDK `Connector`, the existing Graph client, auth/settings
|
|
35
|
+
boundary, and action-routed tool modules. Do not create a second MCP,
|
|
36
|
+
authentication, graph-ingest, or safety plane.
|
|
37
|
+
- Preserve fail-closed read/write/destructive policy, tenant and provenance
|
|
38
|
+
checks, TLS verification, and the existing condensed and verbose tool
|
|
39
|
+
surfaces. Provider calls remain mocked in local tests.
|
|
40
|
+
- Bind every delivered requirement to a focused test. Generated
|
|
41
|
+
`specs/*/status.json` files come from the shared hooks; never hand-edit them.
|
|
42
|
+
- Keep `skills/**`, `ontology/**`, `connectors/**`, prompts, manifests, and
|
|
43
|
+
package-data declarations coherent. Put `Spec: <ID>` and the assisting-agent
|
|
44
|
+
trailer on consecutive final commit message lines.
|
|
45
|
+
|
|
46
|
+
## Setup and gates
|
|
47
|
+
|
|
48
|
+
Use the pinned environment and shared gates from the checkout root:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
uv sync --locked
|
|
52
|
+
uvx pre-commit run --all-files
|
|
53
|
+
uvx pre-commit run --all-files --hook-stage pre-push
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
For focused feedback, use tests that exercise the actual connector paths:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
/var/tmp/arbora-delivery/scale/run-narrow-test-slot.sh \
|
|
60
|
+
uv run --locked --extra test pytest -q \
|
|
61
|
+
tests/test_publication_workflow.py \
|
|
62
|
+
tests/test_default_content_surfaces.py \
|
|
63
|
+
tests/test_startup.py \
|
|
64
|
+
tests/test_mcp_server.py \
|
|
65
|
+
tests/test_auth.py
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Do not call Microsoft Graph or require tenant credentials in local gates.
|
|
69
|
+
Preserve the existing Graph client composition, MSAL identity modes, optional
|
|
70
|
+
Office/Power Platform/Intune/Windows integrations, and governed KG ingestion
|
|
71
|
+
when changing a provider module.
|
|
72
|
+
|
|
73
|
+
## Packaging and publication
|
|
74
|
+
|
|
75
|
+
Keep `microsoft_agent/skills/`, `microsoft_agent/ontology/`,
|
|
76
|
+
`microsoft_agent/connectors/`, prompts, and manifests in the package-data and
|
|
77
|
+
entry-point contracts. Build locally with `uv build` and inspect the wheel for
|
|
78
|
+
`microsoft_agent/skills/microsoft-agent-development/SKILL.md` before a release.
|
|
79
|
+
The canonical Pages publisher is `.github/workflows/pages.yml`; it calls the
|
|
80
|
+
shared Pipelines workflow with `.config/spec-dashboard.json`, keeps manual
|
|
81
|
+
dispatch and the docs/spec/config/workflow path filters, and publishes the
|
|
82
|
+
source-backed dashboard at `spec-delivery/`. Do not add a second documentation
|
|
83
|
+
publisher or claim Pages publication from a local build.
|
|
84
|
+
|
|
85
|
+
Keep package version mirrors and `uv.lock` coherent for a genuine packaged
|
|
86
|
+
content release. Central generation owns connector manifests and release
|
|
87
|
+
container artifacts; preserve this package's existing runtime, auth, and port
|
|
88
|
+
semantics while inspecting generated output before making claims.
|
|
89
|
+
|
|
90
|
+
## Change discipline
|
|
91
|
+
|
|
92
|
+
- Keep Microsoft Graph calls, mappings, ontology, source declarations, and MCP
|
|
93
|
+
schemas under this repository's connector boundary. SDK transport, shared
|
|
94
|
+
ingest contracts, and Arbora admission belong to their owner repositories.
|
|
95
|
+
- Use deployment-owned `MICROSOFT_*` identity and policy configuration only;
|
|
96
|
+
never print or commit credentials, token caches, private endpoints, or tenant
|
|
97
|
+
profiles. Preserve mandatory TLS verification and fail-closed authorization.
|
|
98
|
+
- For mutations, inspect current state first, require explicit approval where
|
|
99
|
+
the existing procedure calls for it, and verify the result. Keep KG
|
|
100
|
+
ingestion governed by the signed source and ChangeEnvelope path.
|
|
101
|
+
- Keep generated status changes and central promotion with the Pipelines/status
|
|
102
|
+
owner. Do not claim a row is landed or verified from a local edit alone.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: microsoft-agent
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.6
|
|
4
4
|
Summary: Governed Microsoft Graph agent and MCP server
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
11
11
|
Requires-Python: >=3.12
|
|
12
12
|
Description-Content-Type: text/markdown
|
|
13
13
|
License-File: LICENSE
|
|
14
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
14
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.1
|
|
15
15
|
Requires-Dist: azure-core>=1.41.0
|
|
16
16
|
Requires-Dist: httpx>=0.28.1
|
|
17
17
|
Requires-Dist: keyring>=25.7.0
|
|
@@ -19,7 +19,7 @@ Requires-Dist: msal>=1.39.0
|
|
|
19
19
|
Requires-Dist: msgraph-sdk>=1.64.0
|
|
20
20
|
Requires-Dist: pydantic>=2.14.1
|
|
21
21
|
Provides-Extra: mcp
|
|
22
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
22
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.1; extra == "mcp"
|
|
23
23
|
Provides-Extra: documents
|
|
24
24
|
Requires-Dist: python-docx>=1.2.0; extra == "documents"
|
|
25
25
|
Requires-Dist: python-pptx>=1.0.2; extra == "documents"
|
|
@@ -71,7 +71,7 @@ Dynamic: license-file
|
|
|
71
71
|
agent. It uses Agent Connector SDK for MCP, identity propagation, intent delegation,
|
|
72
72
|
configuration, telemetry, and graph integration.
|
|
73
73
|
|
|
74
|
-
Current package version: **2.3.
|
|
74
|
+
Current package version: **2.3.6**
|
|
75
75
|
|
|
76
76
|
## Capabilities
|
|
77
77
|
|
|
@@ -890,8 +890,6 @@ _Auto-generated from the code-read env surface (`MCP_TOOL_MODE` + package vars)
|
|
|
890
890
|
|
|
891
891
|
The provider contributes:
|
|
892
892
|
|
|
893
|
-
- `microsoft_agent/connectors/mcp_source_presets.json`
|
|
894
|
-
- `connector_manifest.yml`
|
|
895
893
|
- `microsoft_agent/ontology/microsoft.ttl`
|
|
896
894
|
- SHACL, mapping, fixture, migration, schema-fingerprint, and certification assets
|
|
897
895
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
.env.example
|
|
2
1
|
LICENSE
|
|
3
2
|
MANIFEST.in
|
|
4
3
|
README.md
|
|
5
|
-
connector_manifest.yml
|
|
6
|
-
mkdocs.yml
|
|
7
4
|
pyproject.toml
|
|
8
5
|
deployment/integrations.example.json
|
|
9
6
|
deployment/control-plane/README.md
|
|
@@ -39,6 +36,7 @@ microsoft_agent/_version.py
|
|
|
39
36
|
microsoft_agent/api_client.py
|
|
40
37
|
microsoft_agent/auth.py
|
|
41
38
|
microsoft_agent/config_cli.py
|
|
39
|
+
microsoft_agent/connector_sources.py
|
|
42
40
|
microsoft_agent/credential_adapter.py
|
|
43
41
|
microsoft_agent/document_service.py
|
|
44
42
|
microsoft_agent/graph_file_service.py
|
|
@@ -78,8 +76,6 @@ microsoft_agent/api/api_client_mail.py
|
|
|
78
76
|
microsoft_agent/api/api_client_other.py
|
|
79
77
|
microsoft_agent/api/api_client_system.py
|
|
80
78
|
microsoft_agent/connectors/__init__.py
|
|
81
|
-
microsoft_agent/connectors/mcp_source_presets.json
|
|
82
|
-
microsoft_agent/connectors/tool_schema_fingerprints.json
|
|
83
79
|
microsoft_agent/mcp/__init__.py
|
|
84
80
|
microsoft_agent/mcp/mcp_admin.py
|
|
85
81
|
microsoft_agent/mcp/mcp_agreements.py
|
|
@@ -127,6 +123,7 @@ microsoft_agent/ontology/shapes/connector.shacl.ttl
|
|
|
127
123
|
microsoft_agent/prompts/__init__.py
|
|
128
124
|
microsoft_agent/prompts/collaboration_specialist.json
|
|
129
125
|
microsoft_agent/skills/__init__.py
|
|
126
|
+
microsoft_agent/skills/microsoft-agent-development/SKILL.md
|
|
130
127
|
microsoft_agent/skills/microsoft-agent-operations/SKILL.md
|
|
131
128
|
microsoft_agent/skills/microsoft-agent-operations/agents/openai.yaml
|
|
132
129
|
microsoft_agent/skills/microsoft-agent-operations/references/catalog.md
|
|
@@ -180,6 +177,7 @@ tests/test_office_manifest.py
|
|
|
180
177
|
tests/test_onenote_sharepoint_print.py
|
|
181
178
|
tests/test_placeholder.py
|
|
182
179
|
tests/test_power_platform.py
|
|
180
|
+
tests/test_publication_workflow.py
|
|
183
181
|
tests/test_sdk_centralization.py
|
|
184
182
|
tests/test_settings_and_policy.py
|
|
185
183
|
tests/test_startup.py
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
1
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.4.1
|
|
2
2
|
azure-core>=1.41.0
|
|
3
3
|
httpx>=0.28.1
|
|
4
4
|
keyring>=25.7.0
|
|
@@ -40,7 +40,7 @@ python-docx>=1.2.0
|
|
|
40
40
|
python-pptx>=1.0.2
|
|
41
41
|
|
|
42
42
|
[mcp]
|
|
43
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
43
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.4.1
|
|
44
44
|
|
|
45
45
|
[test]
|
|
46
46
|
cryptography>=50.0.2
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "microsoft-agent"
|
|
7
|
-
|
|
7
|
+
version = "2.3.6"
|
|
8
8
|
description = "Governed Microsoft Graph agent and MCP server"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -14,7 +14,7 @@ classifiers = [
|
|
|
14
14
|
"Operating System :: OS Independent",
|
|
15
15
|
"Programming Language :: Python :: 3",
|
|
16
16
|
]
|
|
17
|
-
dependencies = [ "agent-connector-sdk[mcp]>=0.
|
|
17
|
+
dependencies = [ "agent-connector-sdk[mcp]>=0.4.1,<1.0.0", "azure-core>=1.41.0", "httpx>=0.28.1", "keyring>=25.7.0", "msal>=1.39.0", "msgraph-sdk>=1.64.0", "pydantic>=2.14.1",]
|
|
18
18
|
license = "MIT"
|
|
19
19
|
|
|
20
20
|
[[project.authors]]
|
|
@@ -22,7 +22,7 @@ name = "Project Maintainers"
|
|
|
22
22
|
email = "maintainers@users.noreply.github.com"
|
|
23
23
|
|
|
24
24
|
[project.optional-dependencies]
|
|
25
|
-
mcp = [ "agent-connector-sdk[mcp]>=0.
|
|
25
|
+
mcp = [ "agent-connector-sdk[mcp]>=0.4.1,<1.0.0",]
|
|
26
26
|
documents = ["python-docx>=1.2.0", "python-pptx>=1.0.2"]
|
|
27
27
|
cloud = ["azure-identity>=1.26.0", "httpx>=0.28.1"]
|
|
28
28
|
windows = [
|
|
@@ -87,6 +87,7 @@ microsoft-agent = "microsoft_agent.prompts"
|
|
|
87
87
|
|
|
88
88
|
[dependency-groups]
|
|
89
89
|
dev = [
|
|
90
|
+
"bump2version>=1.0.1,<2",
|
|
90
91
|
"mypy>=2.4.0,<3",
|
|
91
92
|
"pytest>=9.1.1,<10",
|
|
92
93
|
"pytest-asyncio>=1.4.0,<2",
|
|
@@ -106,9 +107,6 @@ members = ["."]
|
|
|
106
107
|
[tool.setuptools]
|
|
107
108
|
include-package-data = false
|
|
108
109
|
|
|
109
|
-
[tool.setuptools.dynamic]
|
|
110
|
-
version = {attr = "microsoft_agent._version.__version__"}
|
|
111
|
-
|
|
112
110
|
[tool.setuptools.package-data]
|
|
113
111
|
microsoft_agent = ["connectors/**", "ontology/**", "prompts/**", "skills/**"]
|
|
114
112
|
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"""Keep the connector's canonical Pages and packaged skill contract explicit."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
import re
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
9
|
+
import yaml
|
|
10
|
+
|
|
11
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _workflow(name: str):
|
|
15
|
+
return yaml.safe_load((ROOT / ".github/workflows" / name).read_text())
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _actions_on(workflow: dict):
|
|
19
|
+
# PyYAML's YAML 1.1 reader represents the Actions ``on`` key as True.
|
|
20
|
+
return workflow["on"] if "on" in workflow else workflow[True]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def test_pages_publishes_spec_dashboard_and_supports_manual_refresh():
|
|
24
|
+
workflow = _workflow("pages.yml")
|
|
25
|
+
publisher = workflow["jobs"]["publish-pages"]
|
|
26
|
+
actions = _actions_on(workflow)
|
|
27
|
+
|
|
28
|
+
assert publisher["uses"] == (
|
|
29
|
+
"Knuckles-Team/pipelines/.github/workflows/pages_pipeline.yml@main"
|
|
30
|
+
)
|
|
31
|
+
assert publisher["with"] == {
|
|
32
|
+
"content_source": "docs",
|
|
33
|
+
"spec_dashboard_enabled": True,
|
|
34
|
+
"spec_dashboard_config": ".config/spec-dashboard.json",
|
|
35
|
+
}
|
|
36
|
+
assert "workflow_dispatch" in actions
|
|
37
|
+
assert {
|
|
38
|
+
"docs/**",
|
|
39
|
+
"mkdocs.yml",
|
|
40
|
+
"README.md",
|
|
41
|
+
"specs/**",
|
|
42
|
+
".config/spec-dashboard.json",
|
|
43
|
+
".github/workflows/pages.yml",
|
|
44
|
+
} <= set(actions["push"]["paths"])
|
|
45
|
+
|
|
46
|
+
config = json.loads((ROOT / ".config/spec-dashboard.json").read_text())
|
|
47
|
+
assert config == {
|
|
48
|
+
"version": 1,
|
|
49
|
+
"sources": [{"glob": "specs/*/status.json", "kind": "spec"}],
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_single_pages_publisher_has_no_legacy_docs_workflow():
|
|
54
|
+
assert not (ROOT / ".github/workflows/docs.yml").exists()
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def test_development_skill_names_actual_runtime_and_focused_tests():
|
|
58
|
+
skill = ROOT / "microsoft_agent/skills/microsoft-agent-development/SKILL.md"
|
|
59
|
+
content = skill.read_text()
|
|
60
|
+
|
|
61
|
+
assert "name: microsoft-agent-development" in content
|
|
62
|
+
assert "## Rapid delivery: the 5-minute contract" in content
|
|
63
|
+
for path in (
|
|
64
|
+
"microsoft_agent/__init__.py",
|
|
65
|
+
"microsoft_agent/auth.py",
|
|
66
|
+
"microsoft_agent/api_client.py",
|
|
67
|
+
"microsoft_agent/mcp_server.py",
|
|
68
|
+
"tests/test_publication_workflow.py",
|
|
69
|
+
"tests/test_default_content_surfaces.py",
|
|
70
|
+
"tests/test_startup.py",
|
|
71
|
+
"tests/test_mcp_server.py",
|
|
72
|
+
"tests/test_auth.py",
|
|
73
|
+
):
|
|
74
|
+
assert (ROOT / path).exists(), path
|
|
75
|
+
for runtime_name in (
|
|
76
|
+
"agent-connector-sdk",
|
|
77
|
+
"MICROSOFT_",
|
|
78
|
+
"Microsoft Graph",
|
|
79
|
+
"ChangeEnvelope",
|
|
80
|
+
"TLS",
|
|
81
|
+
):
|
|
82
|
+
assert runtime_name in content
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def test_packaged_skill_and_version_contract_are_coherent():
|
|
86
|
+
version_text = (ROOT / "microsoft_agent/_version.py").read_text()
|
|
87
|
+
version = re.search(r'__version__ = "([^"]+)"', version_text)
|
|
88
|
+
assert version is not None
|
|
89
|
+
lock = (ROOT / "uv.lock").read_text()
|
|
90
|
+
assert 'name = "microsoft-agent"' in lock
|
|
91
|
+
package_data = (ROOT / "pyproject.toml").read_text()
|
|
92
|
+
assert 'microsoft_agent = ["connectors/**", "ontology/**", "prompts/**", "skills/**"]' in package_data
|
|
93
|
+
assert (
|
|
94
|
+
ROOT / "microsoft_agent/skills/microsoft-agent-development/SKILL.md"
|
|
95
|
+
).is_file()
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# Microsoft identity (values intentionally blank; supply them after app enrollment)
|
|
2
|
-
MICROSOFT_TENANT_ID=
|
|
3
|
-
MICROSOFT_CLIENT_ID=
|
|
4
|
-
MICROSOFT_AUTHORITY_HOST=https://login.microsoftonline.com
|
|
5
|
-
MICROSOFT_GRAPH_BASE_URL=https://graph.microsoft.com/v1.0
|
|
6
|
-
MICROSOFT_GRAPH_TLS_PROFILE=
|
|
7
|
-
MICROSOFT_GRAPH_TLS_PROFILE_REF=
|
|
8
|
-
|
|
9
|
-
# delegated | application | on_behalf_of | external_token |
|
|
10
|
-
# managed_identity | workload_identity
|
|
11
|
-
MICROSOFT_AUTH_MODE=delegated
|
|
12
|
-
MICROSOFT_LOGIN_METHOD=auto
|
|
13
|
-
MICROSOFT_ENABLE_BROKER=true
|
|
14
|
-
MICROSOFT_ALLOW_DEVICE_CODE=false
|
|
15
|
-
MICROSOFT_REQUIRE_SECURE_CACHE=true
|
|
16
|
-
|
|
17
|
-
# Named least-privilege bundles. Add device_read/device_admin only for Intune.
|
|
18
|
-
MICROSOFT_PERMISSION_PROFILES=productivity,collaboration
|
|
19
|
-
MICROSOFT_GRAPH_SCOPES=
|
|
20
|
-
|
|
21
|
-
# Tools are registered, but side effects remain disabled until explicitly enabled.
|
|
22
|
-
MICROSOFT_ENABLED_TOOL_GROUPS=misc,auth,meta,mail,files,calendar,notes,tasks,contacts,user,chat,teams,sites,search,groups,communications,documents,power_platform,windows,intune
|
|
23
|
-
MICROSOFT_ALLOW_WRITES=false
|
|
24
|
-
MICROSOFT_ALLOW_DESTRUCTIVE=false
|
|
25
|
-
|
|
26
|
-
# Required only for graph projection/ingestion. Resolve from AgentConfig or a
|
|
27
|
-
# secret store; use at least 32 bytes and never reuse an identity credential.
|
|
28
|
-
MICROSOFT_INGESTION_PSEUDONYMIZATION_KEY_REF=
|
|
29
|
-
|
|
30
|
-
# Complex Power Platform, Intune, and Windows companion allowlists.
|
|
31
|
-
MICROSOFT_INTEGRATIONS_CONFIG_PATH=
|
|
32
|
-
MICROSOFT_DOCUMENT_ARTIFACT_ROOT=
|
|
33
|
-
MICROSOFT_DOCUMENT_TEMPLATE_ROOT=
|
|
34
|
-
MICROSOFT_DATAVERSE_ENVIRONMENT_URL=
|
|
35
|
-
MICROSOFT_DATAVERSE_AUDIENCE=
|
|
36
|
-
MICROSOFT_POWER_AUTOMATE_NAMED_FLOWS_JSON={}
|
|
37
|
-
MICROSOFT_POWER_PLATFORM_ALLOW_LIFECYCLE_CHANGES=false
|
|
38
|
-
MICROSOFT_OFFICE_ADDIN_ORIGINS=
|
|
39
|
-
|
|
40
|
-
# Confidential modes: prefer a certificate, managed identity, or workload identity.
|
|
41
|
-
MICROSOFT_CLIENT_CERTIFICATE_PATH=
|
|
42
|
-
MICROSOFT_CLIENT_CERTIFICATE_THUMBPRINT=
|
|
43
|
-
MICROSOFT_CLIENT_CERTIFICATE_PASSWORD_REF=
|
|
44
|
-
MICROSOFT_CLIENT_SECRET_REF=
|
|
45
|
-
MICROSOFT_MANAGED_IDENTITY_CLIENT_ID=
|
|
46
|
-
MICROSOFT_WORKLOAD_IDENTITY_TOKEN_FILE=
|
|
47
|
-
AZURE_FEDERATED_TOKEN_FILE=
|
|
48
|
-
|
|
49
|
-
# Companion relay TLS uses the same deployment-owned trust-profile contract.
|
|
50
|
-
MICROSOFT_COMPANION_TLS_PROFILE=
|
|
51
|
-
MICROSOFT_COMPANION_TLS_PROFILE_REF=
|
|
52
|
-
|
|
53
|
-
# Per-domain tool registration toggles. Set false to suppress a domain.
|
|
54
|
-
ADMINTOOL=true
|
|
55
|
-
AGREEMENTSTOOL=true
|
|
56
|
-
APPLICATIONSTOOL=true
|
|
57
|
-
AUDITTOOL=true
|
|
58
|
-
AUTHTOOL=true
|
|
59
|
-
CALENDARTOOL=true
|
|
60
|
-
CHATTOOL=true
|
|
61
|
-
COMMUNICATIONSTOOL=true
|
|
62
|
-
CONNECTIONSTOOL=true
|
|
63
|
-
CONTACTSTOOL=true
|
|
64
|
-
DEVICESTOOL=true
|
|
65
|
-
DIRECTORYTOOL=true
|
|
66
|
-
DOCUMENTTOOL=true
|
|
67
|
-
DOMAINSTOOL=true
|
|
68
|
-
EDUCATIONTOOL=true
|
|
69
|
-
EMPLOYEE_EXPERIENCETOOL=true
|
|
70
|
-
FILESTOOL=true
|
|
71
|
-
GROUPSTOOL=true
|
|
72
|
-
IDENTITYTOOL=true
|
|
73
|
-
INTUNETOOL=true
|
|
74
|
-
KGTOOL=true
|
|
75
|
-
MAILTOOL=true
|
|
76
|
-
METATOOL=true
|
|
77
|
-
NOTESTOOL=true
|
|
78
|
-
ORGANIZATIONTOOL=true
|
|
79
|
-
PLACESTOOL=true
|
|
80
|
-
POLICIESTOOL=true
|
|
81
|
-
POWER_PLATFORMTOOL=true
|
|
82
|
-
PRINTTOOL=true
|
|
83
|
-
PRIVACYTOOL=true
|
|
84
|
-
REPORTSTOOL=true
|
|
85
|
-
SEARCHTOOL=true
|
|
86
|
-
SECURITYTOOL=true
|
|
87
|
-
SITESTOOL=true
|
|
88
|
-
SOLUTIONSTOOL=true
|
|
89
|
-
STORAGETOOL=true
|
|
90
|
-
SUBSCRIPTIONSTOOL=true
|
|
91
|
-
TASKSTOOL=true
|
|
92
|
-
TEAMSTOOL=true
|
|
93
|
-
USERTOOL=true
|
|
94
|
-
WINDOWS_COMPANIONTOOL=true
|
|
95
|
-
|
|
96
|
-
# Local MCP defaults. Require an authenticated transport before non-loopback use.
|
|
97
|
-
TRANSPORT=stdio
|
|
98
|
-
HOST=127.0.0.1
|
|
99
|
-
PORT=8000
|
|
100
|
-
AUTH_TYPE=oidc
|