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.
Files changed (198) hide show
  1. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/MANIFEST.in +0 -1
  2. {microsoft_agent-2.3.4/microsoft_agent.egg-info → microsoft_agent-2.3.6}/PKG-INFO +4 -6
  3. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/README.md +1 -3
  4. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/_version.py +1 -1
  5. microsoft_agent-2.3.6/microsoft_agent/connector_sources.py +83 -0
  6. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/certification.json +0 -3
  7. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/microsoft.ttl +7 -11
  8. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/prompts/collaboration_specialist.json +0 -2
  9. microsoft_agent-2.3.6/microsoft_agent/skills/microsoft-agent-development/SKILL.md +102 -0
  10. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6/microsoft_agent.egg-info}/PKG-INFO +4 -6
  11. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/SOURCES.txt +3 -5
  12. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/requires.txt +2 -2
  13. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/pyproject.toml +4 -6
  14. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_main.py +0 -2
  15. microsoft_agent-2.3.6/tests/test_publication_workflow.py +95 -0
  16. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_startup.py +0 -2
  17. microsoft_agent-2.3.4/.env.example +0 -100
  18. microsoft_agent-2.3.4/connector_manifest.yml +0 -180
  19. microsoft_agent-2.3.4/microsoft_agent/connectors/mcp_source_presets.json +0 -39
  20. microsoft_agent-2.3.4/microsoft_agent/connectors/tool_schema_fingerprints.json +0 -8
  21. microsoft_agent-2.3.4/mkdocs.yml +0 -90
  22. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/LICENSE +0 -0
  23. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/README.md +0 -0
  24. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/control-plane.sample.json +0 -0
  25. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/nginx/windows-control-plane.conf +0 -0
  26. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/systemd/microsoft-windows-control-plane.env +0 -0
  27. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/control-plane/systemd/microsoft-windows-control-plane.service +0 -0
  28. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/entra/New-MicrosoftAgentApp.ps1 +0 -0
  29. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/entra/New-WindowsControlPlaneEntraResources.ps1 +0 -0
  30. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/entra/README.md +0 -0
  31. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/entra/permission-profiles.json +0 -0
  32. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/integrations.example.json +0 -0
  33. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/Install-WindowsCompanion.ps1 +0 -0
  34. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/README.md +0 -0
  35. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/Run-WindowsCompanion.ps1 +0 -0
  36. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/Test-WindowsCompanionDeployment.ps1 +0 -0
  37. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/Uninstall-WindowsCompanion.ps1 +0 -0
  38. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/deployment/windows/windows-companion.sample.json +0 -0
  39. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/authentication.md +0 -0
  40. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/concepts.md +0 -0
  41. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/configuration.md +0 -0
  42. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/deployment.md +0 -0
  43. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/enrollment-checklist.md +0 -0
  44. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/index.md +0 -0
  45. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/installation.md +0 -0
  46. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/integrations.md +0 -0
  47. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/office-addin.md +0 -0
  48. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/overview.md +0 -0
  49. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/usage.md +0 -0
  50. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/docs/windows-companion.md +0 -0
  51. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/__init__.py +0 -0
  52. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/__main__.py +0 -0
  53. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/__init__.py +0 -0
  54. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/_graph_models.py +0 -0
  55. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_admin.py +0 -0
  56. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_apps.py +0 -0
  57. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_base.py +0 -0
  58. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_calendar.py +0 -0
  59. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_directory.py +0 -0
  60. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_drive.py +0 -0
  61. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_mail.py +0 -0
  62. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_other.py +0 -0
  63. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api/api_client_system.py +0 -0
  64. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/api_client.py +0 -0
  65. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/auth.py +0 -0
  66. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/config_cli.py +0 -0
  67. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/connectors/__init__.py +0 -0
  68. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/credential_adapter.py +0 -0
  69. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/document_service.py +0 -0
  70. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/graph_file_service.py +0 -0
  71. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/integration_adapters.py +0 -0
  72. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/integration_auth.py +0 -0
  73. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/integration_config.py +0 -0
  74. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/integration_tools.py +0 -0
  75. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/intune_service.py +0 -0
  76. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/kg_ingest.py +0 -0
  77. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/__init__.py +0 -0
  78. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_admin.py +0 -0
  79. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_agreements.py +0 -0
  80. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_applications.py +0 -0
  81. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_audit.py +0 -0
  82. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_auth.py +0 -0
  83. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_calendar.py +0 -0
  84. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_chat.py +0 -0
  85. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_communications.py +0 -0
  86. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_connections.py +0 -0
  87. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_contacts.py +0 -0
  88. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_devices.py +0 -0
  89. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_directory.py +0 -0
  90. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_domains.py +0 -0
  91. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_education.py +0 -0
  92. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_employee_experience.py +0 -0
  93. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_files.py +0 -0
  94. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_groups.py +0 -0
  95. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_identity.py +0 -0
  96. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_mail.py +0 -0
  97. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_meta.py +0 -0
  98. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_notes.py +0 -0
  99. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_organization.py +0 -0
  100. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_places.py +0 -0
  101. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_policies.py +0 -0
  102. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_print.py +0 -0
  103. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_privacy.py +0 -0
  104. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_reports.py +0 -0
  105. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_search.py +0 -0
  106. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_security.py +0 -0
  107. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_sites.py +0 -0
  108. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_solutions.py +0 -0
  109. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_storage.py +0 -0
  110. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_subscriptions.py +0 -0
  111. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_tasks.py +0 -0
  112. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_teams.py +0 -0
  113. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp/mcp_user.py +0 -0
  114. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp_config.json +0 -0
  115. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/mcp_server.py +0 -0
  116. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/office_bridge.py +0 -0
  117. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/__init__.py +0 -0
  118. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/fixtures/records.json +0 -0
  119. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/mappings/source.yaml +0 -0
  120. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/migrations/manifest.json +0 -0
  121. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/ontology/shapes/connector.shacl.ttl +0 -0
  122. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/power_platform.py +0 -0
  123. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/prompts/__init__.py +0 -0
  124. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/settings.py +0 -0
  125. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/__init__.py +0 -0
  126. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-agent-operations/SKILL.md +0 -0
  127. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-agent-operations/agents/openai.yaml +0 -0
  128. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-agent-operations/references/catalog.md +0 -0
  129. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-calendar-scheduling/SKILL.md +0 -0
  130. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-mail-operations/SKILL.md +0 -0
  131. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/skills/microsoft-teams-messaging/SKILL.md +0 -0
  132. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/tool_policy.py +0 -0
  133. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/universal_print.py +0 -0
  134. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_companion.py +0 -0
  135. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_companion_service.py +0 -0
  136. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_control_plane.py +0 -0
  137. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_control_plane_service.py +0 -0
  138. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent/windows_runtime.py +0 -0
  139. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/dependency_links.txt +0 -0
  140. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/entry_points.txt +0 -0
  141. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/microsoft_agent.egg-info/top_level.txt +0 -0
  142. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/README.md +0 -0
  143. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/manifest.xml +0 -0
  144. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/package-lock.json +0 -0
  145. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/package.json +0 -0
  146. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/assets/icon.png.b64 +0 -0
  147. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/assets/icon.svg +0 -0
  148. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/config.json +0 -0
  149. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/styles.css +0 -0
  150. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/public/taskpane.html +0 -0
  151. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/scripts/validate_manifest.py +0 -0
  152. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/backend-client.ts +0 -0
  153. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/office-bridge.ts +0 -0
  154. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/office-operations.ts +0 -0
  155. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/taskpane.ts +0 -0
  156. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/src/validation.ts +0 -0
  157. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/tests/backend-client.test.ts +0 -0
  158. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/tests/office-bridge.test.ts +0 -0
  159. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/tests/validation.test.ts +0 -0
  160. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/tsconfig.json +0 -0
  161. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/vitest.config.ts +0 -0
  162. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/office_addin/webpack.config.cjs +0 -0
  163. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/setup.cfg +0 -0
  164. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_api_client_extended.py +0 -0
  165. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_auth.py +0 -0
  166. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_auth_coverage.py +0 -0
  167. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_bug_cx_046_ctx_info_awaited.py +0 -0
  168. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_config_cli.py +0 -0
  169. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_credential_adapter.py +0 -0
  170. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_default_content_surfaces.py +0 -0
  171. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_document_service.py +0 -0
  172. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_generate_code.py +0 -0
  173. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_graph_file_service.py +0 -0
  174. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_graph_reliability.py +0 -0
  175. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_graph_transport.py +0 -0
  176. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_init_dynamics.py +0 -0
  177. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_integration_adapters.py +0 -0
  178. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_integration_auth.py +0 -0
  179. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_integration_config_and_tools.py +0 -0
  180. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_intune_service.py +0 -0
  181. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_kg_ingest.py +0 -0
  182. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_mcp_comprehensive.py +0 -0
  183. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_mcp_server.py +0 -0
  184. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_office_bridge.py +0 -0
  185. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_office_manifest.py +0 -0
  186. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_onenote_sharepoint_print.py +0 -0
  187. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_placeholder.py +0 -0
  188. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_power_platform.py +0 -0
  189. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_sdk_centralization.py +0 -0
  190. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_settings_and_policy.py +0 -0
  191. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_teams_reliability.py +0 -0
  192. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_transport_migration.py +0 -0
  193. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_transport_tls.py +0 -0
  194. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_verify_api_integration.py +0 -0
  195. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_windows_companion.py +0 -0
  196. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_windows_control_plane.py +0 -0
  197. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_windows_control_plane_service.py +0 -0
  198. {microsoft_agent-2.3.4 → microsoft_agent-2.3.6}/tests/test_windows_runtime.py +0 -0
@@ -1,5 +1,4 @@
1
1
  include README.md LICENSE
2
- include .env.example connector_manifest.yml mkdocs.yml
3
2
  recursive-include microsoft_agent *.py *.json *.md *.ttl *.yaml
4
3
  recursive-include docs *.md
5
4
  recursive-include deployment *.json *.md *.ps1 *.conf *.service *.env
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: microsoft-agent
3
- Version: 2.3.4
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.3.18
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.3.18; extra == "mcp"
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.4**
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.4**
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
 
@@ -1,3 +1,3 @@
1
1
  """Single package version authority."""
2
2
 
3
- __version__ = "2.3.4"
3
+ __version__ = "2.3.6"
@@ -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
- :File a owl:Class ;
18
- rdfs:label "Opaque Microsoft file reference" ;
19
- rdfs:comment "A content-free keyed reference to a OneDrive or SharePoint item." .
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.4
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.3.18
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.3.18; extra == "mcp"
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.4**
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.3.18
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.3.18
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
- dynamic = ["version"]
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.3.18,<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",]
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.3.18,<1.0.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
 
@@ -2,5 +2,3 @@ import runpy
2
2
  from unittest.mock import patch
3
3
 
4
4
  import pytest
5
-
6
-
@@ -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