wxcli 1.4.2__tar.gz → 1.4.4__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 (819) hide show
  1. {wxcli-1.4.2/src/wxcli/_playbook → wxcli-1.4.4}/.claude/agents/wxc-calling-builder.md +9 -23
  2. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/settings.json +14 -0
  3. {wxcli-1.4.2/src/wxcli/_playbook → wxcli-1.4.4}/.claude/skills/device-platform/SKILL.md +71 -8
  4. {wxcli-1.4.2/src/wxcli/_playbook/.codex → wxcli-1.4.4/.claude}/skills/query-live/domains/people-and-settings.md +16 -7
  5. {wxcli-1.4.2 → wxcli-1.4.4}/.gitignore +13 -1
  6. {wxcli-1.4.2/src/wxcli/_playbook → wxcli-1.4.4}/CLAUDE.md +41 -0
  7. {wxcli-1.4.2/src/wxcli.egg-info → wxcli-1.4.4}/PKG-INFO +48 -1
  8. {wxcli-1.4.2 → wxcli-1.4.4}/README.md +47 -0
  9. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/devices-platform.md +2 -2
  10. {wxcli-1.4.2 → wxcli-1.4.4/src/wxcli/_playbook}/.claude/agents/wxc-calling-builder.md +9 -23
  11. {wxcli-1.4.2 → wxcli-1.4.4/src/wxcli/_playbook}/.claude/skills/device-platform/SKILL.md +71 -8
  12. {wxcli-1.4.2 → wxcli-1.4.4/src/wxcli/_playbook}/.claude/skills/query-live/domains/people-and-settings.md +16 -7
  13. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/agents/wxc-calling-builder.toml +9 -23
  14. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/device-platform/SKILL.md +71 -8
  15. {wxcli-1.4.2/src/wxcli/_playbook/.claude → wxcli-1.4.4/src/wxcli/_playbook/.codex}/skills/query-live/domains/people-and-settings.md +16 -7
  16. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/AGENTS.md +41 -0
  17. {wxcli-1.4.2 → wxcli-1.4.4/src/wxcli/_playbook}/CLAUDE.md +41 -0
  18. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/devices-platform.md +2 -2
  19. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_version.py +3 -3
  20. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/admin_recordings.py +1 -5
  21. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_agent_greetings.py +1 -5
  22. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_aux_code.py +1 -5
  23. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_desktop_layout.py +1 -5
  24. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_desktop_profile.py +1 -5
  25. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_entry_point.py +1 -5
  26. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_global_vars.py +1 -5
  27. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_journey.py +1 -1
  28. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_multimedia_profile.py +1 -5
  29. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_queue.py +2 -10
  30. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_site.py +1 -5
  31. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_skill.py +1 -5
  32. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_tasks.py +1 -5
  33. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_team.py +1 -5
  34. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_work_types.py +1 -5
  35. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/converged_recordings.py +1 -5
  36. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/location_call_handling.py +1 -1
  37. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_participants.py +1 -5
  38. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_preferences.py +1 -5
  39. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/user_settings.py +2 -2
  40. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/virtual_line_settings.py +2 -2
  41. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/workspace_settings.py +2 -2
  42. {wxcli-1.4.2 → wxcli-1.4.4/src/wxcli.egg-info}/PKG-INFO +48 -1
  43. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli.egg-info/SOURCES.txt +4 -0
  44. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli.egg-info/scm_file_list.json +727 -723
  45. wxcli-1.4.4/src/wxcli.egg-info/scm_version.json +8 -0
  46. wxcli-1.4.4/tests/test_assemble.py +275 -0
  47. wxcli-1.4.4/tests/test_field_overrides.py +429 -0
  48. wxcli-1.4.4/tests/test_readme_distribution.py +27 -0
  49. wxcli-1.4.4/tests/test_release_integrity.py +51 -0
  50. {wxcli-1.4.2 → wxcli-1.4.4}/tools/CLAUDE.md +18 -3
  51. {wxcli-1.4.2 → wxcli-1.4.4}/tools/command_renderer.py +39 -3
  52. {wxcli-1.4.2 → wxcli-1.4.4}/tools/field_overrides.yaml +35 -0
  53. {wxcli-1.4.2 → wxcli-1.4.4}/tools/generate_commands.py +94 -5
  54. {wxcli-1.4.2 → wxcli-1.4.4}/tools/openapi_parser.py +2 -0
  55. {wxcli-1.4.2 → wxcli-1.4.4}/tools/postman_parser.py +51 -0
  56. wxcli-1.4.2/src/wxcli.egg-info/scm_version.json +0 -8
  57. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/agents/migration-advisor.md +0 -0
  58. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/projects/-Users-ahobgood-Documents-webexCalling/memory/feedback_help_gate_for_skills.md +0 -0
  59. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/rules/cleanup.md +0 -0
  60. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/rules/cucm-migration.md +0 -0
  61. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/rules/org-health.md +0 -0
  62. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/audit-compliance/SKILL.md +0 -0
  63. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/call-control/SKILL.md +0 -0
  64. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/configure-features/SKILL.md +0 -0
  65. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/configure-routing/SKILL.md +0 -0
  66. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/contact-center/SKILL.md +0 -0
  67. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/cucm-migrate/SKILL.md +0 -0
  68. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/customer-assist/SKILL.md +0 -0
  69. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/manage-call-settings/SKILL.md +0 -0
  70. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/manage-devices/SKILL.md +0 -0
  71. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/manage-identity/SKILL.md +0 -0
  72. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/manage-licensing/SKILL.md +0 -0
  73. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/manage-meetings/SKILL.md +0 -0
  74. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/messaging-bots/SKILL.md +0 -0
  75. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/messaging-spaces/SKILL.md +0 -0
  76. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/org-health/SKILL.md +0 -0
  77. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/provision-calling/SKILL.md +0 -0
  78. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/query-live/SKILL.md +0 -0
  79. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/query-live/domains/call-flow-trace.md +0 -0
  80. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/query-live/domains/call-history.md +0 -0
  81. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/query-live/domains/features.md +0 -0
  82. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/query-live/domains/numbers.md +0 -0
  83. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/query-live/domains/routing.md +0 -0
  84. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/reporting/SKILL.md +0 -0
  85. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/reporting/references/cdr-recipes.md +0 -0
  86. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/reporting-cc/SKILL.md +0 -0
  87. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/reporting-meetings/SKILL.md +0 -0
  88. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/teardown/SKILL.md +0 -0
  89. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/video-mesh/SKILL.md +0 -0
  90. {wxcli-1.4.2 → wxcli-1.4.4}/.claude/skills/wxc-calling-debug/SKILL.md +0 -0
  91. {wxcli-1.4.2 → wxcli-1.4.4}/.github/workflows/ci.yml +0 -0
  92. {wxcli-1.4.2 → wxcli-1.4.4}/.github/workflows/release.yml +0 -0
  93. {wxcli-1.4.2 → wxcli-1.4.4}/LICENSE +0 -0
  94. {wxcli-1.4.2 → wxcli-1.4.4}/TODO.md +0 -0
  95. {wxcli-1.4.2 → wxcli-1.4.4}/docs/CLAUDE.md +0 -0
  96. {wxcli-1.4.2 → wxcli-1.4.4}/docs/architecture/00-index.md +0 -0
  97. {wxcli-1.4.2 → wxcli-1.4.4}/docs/architecture/01-structural-map.md +0 -0
  98. {wxcli-1.4.2 → wxcli-1.4.4}/docs/architecture/02-decisions.md +0 -0
  99. {wxcli-1.4.2 → wxcli-1.4.4}/docs/architecture/03-behavior.md +0 -0
  100. {wxcli-1.4.2 → wxcli-1.4.4}/docs/architecture/04-operations-and-evolution.md +0 -0
  101. {wxcli-1.4.2 → wxcli-1.4.4}/docs/architecture/05-purpose.md +0 -0
  102. {wxcli-1.4.2 → wxcli-1.4.4}/docs/knowledge-base/migration/kb-css-routing.md +0 -0
  103. {wxcli-1.4.2 → wxcli-1.4.4}/docs/knowledge-base/migration/kb-device-migration.md +0 -0
  104. {wxcli-1.4.2 → wxcli-1.4.4}/docs/knowledge-base/migration/kb-feature-mapping.md +0 -0
  105. {wxcli-1.4.2 → wxcli-1.4.4}/docs/knowledge-base/migration/kb-identity-numbering.md +0 -0
  106. {wxcli-1.4.2 → wxcli-1.4.4}/docs/knowledge-base/migration/kb-location-design.md +0 -0
  107. {wxcli-1.4.2 → wxcli-1.4.4}/docs/knowledge-base/migration/kb-trunk-pstn.md +0 -0
  108. {wxcli-1.4.2 → wxcli-1.4.4}/docs/knowledge-base/migration/kb-user-settings.md +0 -0
  109. {wxcli-1.4.2 → wxcli-1.4.4}/docs/knowledge-base/migration/kb-webex-limits.md +0 -0
  110. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/CLAUDE.md +0 -0
  111. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/TODO.md +0 -0
  112. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/admin-apps-data.md +0 -0
  113. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/admin-audit-security.md +0 -0
  114. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/admin-hybrid.md +0 -0
  115. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/admin-identity-scim.md +0 -0
  116. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/admin-licensing.md +0 -0
  117. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/admin-org-management.md +0 -0
  118. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/admin-partner.md +0 -0
  119. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/archive/wxc-sdk-patterns.md +0 -0
  120. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/archive/wxcadm-advanced.md +0 -0
  121. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/archive/wxcadm-core.md +0 -0
  122. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/archive/wxcadm-devices-workspaces.md +0 -0
  123. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/archive/wxcadm-features.md +0 -0
  124. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/archive/wxcadm-locations.md +0 -0
  125. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/archive/wxcadm-person.md +0 -0
  126. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/archive/wxcadm-routing.md +0 -0
  127. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/authentication.md +0 -0
  128. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/call-control.md +0 -0
  129. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/call-features-additional.md +0 -0
  130. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/call-features-major.md +0 -0
  131. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/call-routing.md +0 -0
  132. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/contact-center-analytics.md +0 -0
  133. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/contact-center-core.md +0 -0
  134. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/contact-center-journey.md +0 -0
  135. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/contact-center-routing.md +0 -0
  136. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/devices-core.md +0 -0
  137. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/devices-dect.md +0 -0
  138. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/devices-workspaces.md +0 -0
  139. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/emergency-services.md +0 -0
  140. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/location-calling-core.md +0 -0
  141. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/location-calling-media.md +0 -0
  142. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/location-recording-advanced.md +0 -0
  143. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/meetings-content.md +0 -0
  144. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/meetings-core.md +0 -0
  145. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/meetings-infrastructure.md +0 -0
  146. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/meetings-settings.md +0 -0
  147. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/messaging-bots.md +0 -0
  148. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/messaging-spaces.md +0 -0
  149. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/migration-spec-template.md +0 -0
  150. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/person-call-settings-behavior.md +0 -0
  151. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/person-call-settings-handling.md +0 -0
  152. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/person-call-settings-media.md +0 -0
  153. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/person-call-settings-permissions.md +0 -0
  154. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/provisioning.md +0 -0
  155. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/reporting-analytics.md +0 -0
  156. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/self-service-call-settings.md +0 -0
  157. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/virtual-lines.md +0 -0
  158. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/webhooks-events.md +0 -0
  159. {wxcli-1.4.2 → wxcli-1.4.4}/docs/reference/wxcadm-xsi-realtime.md +0 -0
  160. {wxcli-1.4.2 → wxcli-1.4.4}/docs/runbooks/cucm-migration/decision-guide.md +0 -0
  161. {wxcli-1.4.2 → wxcli-1.4.4}/docs/runbooks/cucm-migration/operator-runbook.md +0 -0
  162. {wxcli-1.4.2 → wxcli-1.4.4}/docs/runbooks/cucm-migration/self-review-findings.md +0 -0
  163. {wxcli-1.4.2 → wxcli-1.4.4}/docs/runbooks/cucm-migration/tuning-reference.md +0 -0
  164. {wxcli-1.4.2 → wxcli-1.4.4}/docs/templates/deployment-plan.md +0 -0
  165. {wxcli-1.4.2 → wxcli-1.4.4}/docs/templates/execution-report.md +0 -0
  166. {wxcli-1.4.2 → wxcli-1.4.4}/pyproject.toml +0 -0
  167. {wxcli-1.4.2 → wxcli-1.4.4}/setup.cfg +0 -0
  168. {wxcli-1.4.2 → wxcli-1.4.4}/specs/overlays/webex-cloud-calling.overlay.json +0 -0
  169. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-admin.json +0 -0
  170. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-broadworks.json +0 -0
  171. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-cloud-calling.json +0 -0
  172. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-contact-center.json +0 -0
  173. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-device.json +0 -0
  174. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-meetings.json +0 -0
  175. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-messaging.json +0 -0
  176. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-ucm.json +0 -0
  177. {wxcli-1.4.2 → wxcli-1.4.4}/specs/webex-wholesale.json +0 -0
  178. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/__init__.py +0 -0
  179. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/agents/migration-advisor.md +0 -0
  180. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/rules/cleanup.md +0 -0
  181. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/rules/cucm-migration.md +0 -0
  182. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/rules/org-health.md +0 -0
  183. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/settings.json +0 -0
  184. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/audit-compliance/SKILL.md +0 -0
  185. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/call-control/SKILL.md +0 -0
  186. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/configure-features/SKILL.md +0 -0
  187. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/configure-routing/SKILL.md +0 -0
  188. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/contact-center/SKILL.md +0 -0
  189. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/cucm-migrate/SKILL.md +0 -0
  190. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/customer-assist/SKILL.md +0 -0
  191. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/manage-call-settings/SKILL.md +0 -0
  192. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/manage-devices/SKILL.md +0 -0
  193. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/manage-identity/SKILL.md +0 -0
  194. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/manage-licensing/SKILL.md +0 -0
  195. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/manage-meetings/SKILL.md +0 -0
  196. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/messaging-bots/SKILL.md +0 -0
  197. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/messaging-spaces/SKILL.md +0 -0
  198. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/org-health/SKILL.md +0 -0
  199. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/provision-calling/SKILL.md +0 -0
  200. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/query-live/SKILL.md +0 -0
  201. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/query-live/domains/call-flow-trace.md +0 -0
  202. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/query-live/domains/call-history.md +0 -0
  203. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/query-live/domains/features.md +0 -0
  204. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/query-live/domains/numbers.md +0 -0
  205. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/query-live/domains/routing.md +0 -0
  206. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/reporting/SKILL.md +0 -0
  207. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/reporting/references/cdr-recipes.md +0 -0
  208. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/reporting-cc/SKILL.md +0 -0
  209. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/reporting-meetings/SKILL.md +0 -0
  210. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/teardown/SKILL.md +0 -0
  211. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/video-mesh/SKILL.md +0 -0
  212. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.claude/skills/wxc-calling-debug/SKILL.md +0 -0
  213. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/agents/migration-advisor.toml +0 -0
  214. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/config.toml +0 -0
  215. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/rules/cleanup.md +0 -0
  216. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/rules/cucm-migration.md +0 -0
  217. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/rules/org-health.md +0 -0
  218. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/audit-compliance/SKILL.md +0 -0
  219. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/call-control/SKILL.md +0 -0
  220. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/configure-features/SKILL.md +0 -0
  221. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/configure-routing/SKILL.md +0 -0
  222. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/contact-center/SKILL.md +0 -0
  223. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/cucm-migrate/SKILL.md +0 -0
  224. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/customer-assist/SKILL.md +0 -0
  225. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/manage-call-settings/SKILL.md +0 -0
  226. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/manage-devices/SKILL.md +0 -0
  227. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/manage-identity/SKILL.md +0 -0
  228. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/manage-licensing/SKILL.md +0 -0
  229. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/manage-meetings/SKILL.md +0 -0
  230. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/messaging-bots/SKILL.md +0 -0
  231. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/messaging-spaces/SKILL.md +0 -0
  232. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/org-health/SKILL.md +0 -0
  233. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/provision-calling/SKILL.md +0 -0
  234. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/query-live/SKILL.md +0 -0
  235. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/query-live/domains/call-flow-trace.md +0 -0
  236. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/query-live/domains/call-history.md +0 -0
  237. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/query-live/domains/features.md +0 -0
  238. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/query-live/domains/numbers.md +0 -0
  239. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/query-live/domains/routing.md +0 -0
  240. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/reporting/SKILL.md +0 -0
  241. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/reporting/references/cdr-recipes.md +0 -0
  242. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/reporting-cc/SKILL.md +0 -0
  243. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/reporting-meetings/SKILL.md +0 -0
  244. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/teardown/SKILL.md +0 -0
  245. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/video-mesh/SKILL.md +0 -0
  246. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/.codex/skills/wxc-calling-debug/SKILL.md +0 -0
  247. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-css-routing.md +0 -0
  248. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-device-migration.md +0 -0
  249. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-feature-mapping.md +0 -0
  250. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-identity-numbering.md +0 -0
  251. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-location-design.md +0 -0
  252. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-trunk-pstn.md +0 -0
  253. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-user-settings.md +0 -0
  254. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-webex-limits.md +0 -0
  255. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/CLAUDE.md +0 -0
  256. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/admin-apps-data.md +0 -0
  257. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/admin-audit-security.md +0 -0
  258. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/admin-hybrid.md +0 -0
  259. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/admin-identity-scim.md +0 -0
  260. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/admin-licensing.md +0 -0
  261. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/admin-org-management.md +0 -0
  262. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/admin-partner.md +0 -0
  263. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/archive/wxc-sdk-patterns.md +0 -0
  264. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/archive/wxcadm-advanced.md +0 -0
  265. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/archive/wxcadm-core.md +0 -0
  266. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/archive/wxcadm-devices-workspaces.md +0 -0
  267. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/archive/wxcadm-features.md +0 -0
  268. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/archive/wxcadm-locations.md +0 -0
  269. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/archive/wxcadm-person.md +0 -0
  270. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/archive/wxcadm-routing.md +0 -0
  271. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/authentication.md +0 -0
  272. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/call-control.md +0 -0
  273. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/call-features-additional.md +0 -0
  274. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/call-features-major.md +0 -0
  275. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/call-routing.md +0 -0
  276. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/contact-center-analytics.md +0 -0
  277. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/contact-center-core.md +0 -0
  278. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/contact-center-journey.md +0 -0
  279. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/contact-center-routing.md +0 -0
  280. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/devices-core.md +0 -0
  281. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/devices-dect.md +0 -0
  282. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/devices-workspaces.md +0 -0
  283. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/emergency-services.md +0 -0
  284. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/location-calling-core.md +0 -0
  285. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/location-calling-media.md +0 -0
  286. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/location-recording-advanced.md +0 -0
  287. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/meetings-content.md +0 -0
  288. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/meetings-core.md +0 -0
  289. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/meetings-infrastructure.md +0 -0
  290. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/meetings-settings.md +0 -0
  291. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/messaging-bots.md +0 -0
  292. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/messaging-spaces.md +0 -0
  293. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/person-call-settings-behavior.md +0 -0
  294. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/person-call-settings-handling.md +0 -0
  295. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/person-call-settings-media.md +0 -0
  296. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/person-call-settings-permissions.md +0 -0
  297. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/provisioning.md +0 -0
  298. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/reporting-analytics.md +0 -0
  299. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/self-service-call-settings.md +0 -0
  300. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/virtual-lines.md +0 -0
  301. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/webhooks-events.md +0 -0
  302. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/reference/wxcadm-xsi-realtime.md +0 -0
  303. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/runbooks/cucm-migration/decision-guide.md +0 -0
  304. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/runbooks/cucm-migration/operator-runbook.md +0 -0
  305. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/_playbook/docs/runbooks/cucm-migration/tuning-reference.md +0 -0
  306. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/auth.py +0 -0
  307. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/__init__.py +0 -0
  308. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/_registry.py +0 -0
  309. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/activation_email.py +0 -0
  310. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/analytics.py +0 -0
  311. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/announcement_playlists.py +0 -0
  312. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/announcements.py +0 -0
  313. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/archive_users.py +0 -0
  314. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/attachment_actions.py +0 -0
  315. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/audit_events.py +0 -0
  316. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/authorizations.py +0 -0
  317. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/auto_attendant.py +0 -0
  318. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/broadworks_billing_reports.py +0 -0
  319. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/broadworks_enterprises.py +0 -0
  320. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/broadworks_subscribers.py +0 -0
  321. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/broadworks_workspaces.py +0 -0
  322. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/call_controls.py +0 -0
  323. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/call_park.py +0 -0
  324. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/call_pickup.py +0 -0
  325. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/call_queue.py +0 -0
  326. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/call_recording.py +0 -0
  327. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/call_routing.py +0 -0
  328. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/call_settings_for_me_phase_5.py +0 -0
  329. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/caller_reputation.py +0 -0
  330. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/calling_service.py +0 -0
  331. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_address_book.py +0 -0
  332. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_agent_summaries.py +0 -0
  333. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_agent_wellbeing.py +0 -0
  334. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_agents.py +0 -0
  335. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_ai_assistant.py +0 -0
  336. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_ai_feature.py +0 -0
  337. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_audio_files.py +0 -0
  338. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_auto_csat.py +0 -0
  339. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_business_hour.py +0 -0
  340. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_call_monitoring.py +0 -0
  341. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_callbacks.py +0 -0
  342. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_campaign.py +0 -0
  343. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_captures.py +0 -0
  344. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_contact_list.py +0 -0
  345. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_contact_number.py +0 -0
  346. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_data_sources.py +0 -0
  347. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_dial_number.py +0 -0
  348. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_dial_plan.py +0 -0
  349. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_dnc.py +0 -0
  350. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_ewt.py +0 -0
  351. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_flow.py +0 -0
  352. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_holiday_list.py +0 -0
  353. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_legacy_flows.py +0 -0
  354. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_notification.py +0 -0
  355. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_outdial_ani.py +0 -0
  356. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_overrides.py +0 -0
  357. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_queue_stats.py +0 -0
  358. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_realtime.py +0 -0
  359. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_resource_collection.py +0 -0
  360. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_search.py +0 -0
  361. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_skill_profile.py +0 -0
  362. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_subscriptions.py +0 -0
  363. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_summaries.py +0 -0
  364. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_user_profiles.py +0 -0
  365. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cc_users.py +0 -0
  366. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cdr.py +0 -0
  367. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/classifications.py +0 -0
  368. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cleanup.py +0 -0
  369. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/client_settings.py +0 -0
  370. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/conference.py +0 -0
  371. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/configure.py +0 -0
  372. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/converged_recordings_export.py +0 -0
  373. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cq_playlists.py +0 -0
  374. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cucm.py +0 -0
  375. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/cucm_config.py +0 -0
  376. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/customer_assist.py +0 -0
  377. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/data_sources.py +0 -0
  378. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/dect_devices.py +0 -0
  379. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/device_configurations.py +0 -0
  380. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/device_dynamic_settings.py +0 -0
  381. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/device_settings.py +0 -0
  382. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/devices.py +0 -0
  383. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/domains.py +0 -0
  384. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/ecm.py +0 -0
  385. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/emergency_services.py +0 -0
  386. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/events.py +0 -0
  387. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/external_voicemail.py +0 -0
  388. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/groups.py +0 -0
  389. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/guest_management.py +0 -0
  390. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/hds.py +0 -0
  391. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/hot_desk.py +0 -0
  392. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/hot_desking_members.py +0 -0
  393. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/hot_desking_portal.py +0 -0
  394. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/hunt_group.py +0 -0
  395. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/hybrid_clusters.py +0 -0
  396. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/hybrid_connectors.py +0 -0
  397. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/identity_org.py +0 -0
  398. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/init_playbook.py +0 -0
  399. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/licenses.py +0 -0
  400. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/live_monitoring.py +0 -0
  401. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/location_schedules.py +0 -0
  402. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/location_settings.py +0 -0
  403. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/location_voicemail.py +0 -0
  404. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/locations.py +0 -0
  405. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_captions.py +0 -0
  406. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_chats.py +0 -0
  407. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_invitees.py +0 -0
  408. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_messages.py +0 -0
  409. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_polls.py +0 -0
  410. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_qa.py +0 -0
  411. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_qualities.py +0 -0
  412. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_reports.py +0 -0
  413. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_session_types.py +0 -0
  414. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_site.py +0 -0
  415. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_slido.py +0 -0
  416. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_summaries.py +0 -0
  417. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_tracking_codes.py +0 -0
  418. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meeting_transcripts.py +0 -0
  419. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/meetings.py +0 -0
  420. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/memberships.py +0 -0
  421. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/messages.py +0 -0
  422. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/mode_management.py +0 -0
  423. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/my_call_settings.py +0 -0
  424. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/numbers.py +0 -0
  425. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/operating_modes.py +0 -0
  426. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/org_contacts.py +0 -0
  427. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/org_health_cli.py +0 -0
  428. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/org_settings.py +0 -0
  429. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/organizations.py +0 -0
  430. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/paging_group.py +0 -0
  431. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/partner_admins.py +0 -0
  432. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/partner_reports.py +0 -0
  433. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/partner_tags.py +0 -0
  434. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/people.py +0 -0
  435. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/person_call_settings.py +0 -0
  436. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/pstn.py +0 -0
  437. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/recording_report.py +0 -0
  438. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/report_templates.py +0 -0
  439. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/reports.py +0 -0
  440. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/resource_group_memberships.py +0 -0
  441. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/resource_groups.py +0 -0
  442. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/roles.py +0 -0
  443. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/room_tabs.py +0 -0
  444. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/rooms.py +0 -0
  445. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/scim_bulk.py +0 -0
  446. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/scim_groups.py +0 -0
  447. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/scim_schemas.py +0 -0
  448. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/scim_users.py +0 -0
  449. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/security_audit.py +0 -0
  450. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/service_apps.py +0 -0
  451. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/single_number_reach.py +0 -0
  452. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/team_memberships.py +0 -0
  453. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/teams.py +0 -0
  454. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/ucm_profile.py +0 -0
  455. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/update.py +0 -0
  456. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/video_mesh.py +0 -0
  457. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/virtual_extensions.py +0 -0
  458. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/webhooks.py +0 -0
  459. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/wholesale_billing_reports.py +0 -0
  460. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/wholesale_provisioning.py +0 -0
  461. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/workspace_locations.py +0 -0
  462. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/workspace_metrics.py +0 -0
  463. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/workspace_personalization.py +0 -0
  464. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/workspaces.py +0 -0
  465. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/commands/xapi.py +0 -0
  466. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/config.py +0 -0
  467. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/errors.py +0 -0
  468. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/main.py +0 -0
  469. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/CLAUDE.md +0 -0
  470. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/__init__.py +0 -0
  471. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/advisory/CLAUDE.md +0 -0
  472. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/advisory/__init__.py +0 -0
  473. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/advisory/advisor.py +0 -0
  474. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/advisory/advisory_patterns.py +0 -0
  475. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/advisory/recommendation_rules.py +0 -0
  476. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/CLAUDE.md +0 -0
  477. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/__init__.py +0 -0
  478. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/connection.py +0 -0
  479. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/discovery.py +0 -0
  480. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/__init__.py +0 -0
  481. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/announcements.py +0 -0
  482. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/base.py +0 -0
  483. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/device_profiles.py +0 -0
  484. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/devices.py +0 -0
  485. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/e911.py +0 -0
  486. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/features.py +0 -0
  487. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/helpers.py +0 -0
  488. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/informational.py +0 -0
  489. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/locations.py +0 -0
  490. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/moh.py +0 -0
  491. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/remote_destinations.py +0 -0
  492. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/routing.py +0 -0
  493. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/shared_lines.py +0 -0
  494. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/templates.py +0 -0
  495. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/tier4.py +0 -0
  496. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/users.py +0 -0
  497. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/voicemail.py +0 -0
  498. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/extractors/workspaces.py +0 -0
  499. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/cucm/unity_connection.py +0 -0
  500. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/execute/CLAUDE.md +0 -0
  501. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/execute/__init__.py +0 -0
  502. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/execute/batch.py +0 -0
  503. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/execute/dependency.py +0 -0
  504. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/execute/engine.py +0 -0
  505. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/execute/handlers.py +0 -0
  506. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/execute/planner.py +0 -0
  507. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/execute/runtime.py +0 -0
  508. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/export/CLAUDE.md +0 -0
  509. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/export/__init__.py +0 -0
  510. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/export/csv_export.py +0 -0
  511. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/export/deployment_plan.py +0 -0
  512. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/export/json_export.py +0 -0
  513. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/models.py +0 -0
  514. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/phone_models.py +0 -0
  515. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/preflight/CLAUDE.md +0 -0
  516. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/preflight/__init__.py +0 -0
  517. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/preflight/checks.py +0 -0
  518. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/preflight/runner.py +0 -0
  519. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/rate_limiter.py +0 -0
  520. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/CLAUDE.md +0 -0
  521. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/__init__.py +0 -0
  522. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/appendix.py +0 -0
  523. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/assembler.py +0 -0
  524. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/charts.py +0 -0
  525. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/executive.py +0 -0
  526. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/explainer.py +0 -0
  527. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/helpers.py +0 -0
  528. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/ingest.py +0 -0
  529. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/notice_templates.py +0 -0
  530. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/score.py +0 -0
  531. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/styles.py +0 -0
  532. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/user_diff.py +0 -0
  533. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/report/user_notice.py +0 -0
  534. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/state.py +0 -0
  535. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/store.py +0 -0
  536. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/CLAUDE.md +0 -0
  537. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/__init__.py +0 -0
  538. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analysis_pipeline.py +0 -0
  539. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/__init__.py +0 -0
  540. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/css_permission.py +0 -0
  541. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/css_routing.py +0 -0
  542. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/device_compatibility.py +0 -0
  543. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/dn_ambiguity.py +0 -0
  544. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/duplicate_user.py +0 -0
  545. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/extension_conflict.py +0 -0
  546. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/feature_approximation.py +0 -0
  547. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/layout_overflow.py +0 -0
  548. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/location_ambiguity.py +0 -0
  549. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/missing_data.py +0 -0
  550. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/selective_call_handling.py +0 -0
  551. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/shared_line.py +0 -0
  552. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/voicemail_compatibility.py +0 -0
  553. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/analyzers/workspace_license.py +0 -0
  554. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/cross_reference.py +0 -0
  555. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/cucm_pattern.py +0 -0
  556. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/decisions.py +0 -0
  557. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/e164.py +0 -0
  558. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/engine.py +0 -0
  559. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/CLAUDE.md +0 -0
  560. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/__init__.py +0 -0
  561. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/announcement_mapper.py +0 -0
  562. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/base.py +0 -0
  563. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/button_template_mapper.py +0 -0
  564. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/call_forwarding_mapper.py +0 -0
  565. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/call_settings_mapper.py +0 -0
  566. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/css_mapper.py +0 -0
  567. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/dect_mapper.py +0 -0
  568. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/device_layout_mapper.py +0 -0
  569. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/device_mapper.py +0 -0
  570. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/device_profile_mapper.py +0 -0
  571. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/device_settings_mapper.py +0 -0
  572. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/e911_mapper.py +0 -0
  573. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/ecbn_mapper.py +0 -0
  574. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/executive_assistant_mapper.py +0 -0
  575. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/feature_mapper.py +0 -0
  576. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/line_mapper.py +0 -0
  577. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/location_mapper.py +0 -0
  578. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/moh_mapper.py +0 -0
  579. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/monitoring_mapper.py +0 -0
  580. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/receptionist_mapper.py +0 -0
  581. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/routing_mapper.py +0 -0
  582. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/snr_mapper.py +0 -0
  583. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/softkey_mapper.py +0 -0
  584. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/user_mapper.py +0 -0
  585. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/voicemail_group_mapper.py +0 -0
  586. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/voicemail_mapper.py +0 -0
  587. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/mappers/workspace_mapper.py +0 -0
  588. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/normalizers.py +0 -0
  589. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/pattern_converter.py +0 -0
  590. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/pipeline.py +0 -0
  591. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/migration/transform/rules.py +0 -0
  592. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/org_health/CLAUDE.md +0 -0
  593. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/org_health/__init__.py +0 -0
  594. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/org_health/analyze.py +0 -0
  595. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/org_health/checks.py +0 -0
  596. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/org_health/collector.py +0 -0
  597. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/org_health/models.py +0 -0
  598. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/org_health/report.py +0 -0
  599. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/output.py +0 -0
  600. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli/update_check.py +0 -0
  601. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli.egg-info/dependency_links.txt +0 -0
  602. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli.egg-info/entry_points.txt +0 -0
  603. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli.egg-info/requires.txt +0 -0
  604. {wxcli-1.4.2 → wxcli-1.4.4}/src/wxcli.egg-info/top_level.txt +0 -0
  605. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/__init__.py +0 -0
  606. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/__init__.py +0 -0
  607. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_advisor.py +0 -0
  608. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_advisory_executive_assistant.py +0 -0
  609. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_advisory_intercept.py +0 -0
  610. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_advisory_patterns.py +0 -0
  611. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_advisory_selective.py +0 -0
  612. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_foundation.py +0 -0
  613. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_integration.py +0 -0
  614. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_new_patterns.py +0 -0
  615. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_receptionist_advisory.py +0 -0
  616. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_recommendation_rules.py +0 -0
  617. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_recommendation_rules_tier2p2.py +0 -0
  618. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_recommendation_selective.py +0 -0
  619. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/advisory/test_tier4_patterns.py +0 -0
  620. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/__init__.py +0 -0
  621. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/fixtures/__init__.py +0 -0
  622. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_connection.py +0 -0
  623. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_cpc_detail_fetch.py +0 -0
  624. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_device_settings_tags.py +0 -0
  625. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_discovery.py +0 -0
  626. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_executive_assistant_extractor.py +0 -0
  627. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_extractors.py +0 -0
  628. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_informational_extractor.py +0 -0
  629. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_intercept_extractor.py +0 -0
  630. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_template_extractor.py +0 -0
  631. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_tier4_extractor.py +0 -0
  632. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/cucm/test_unity_shared_mailboxes.py +0 -0
  633. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/__init__.py +0 -0
  634. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/conftest.py +0 -0
  635. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_advisory_to_execution_bridge.py +0 -0
  636. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_batch.py +0 -0
  637. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bridge_integration.py +0 -0
  638. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_batch.py +0 -0
  639. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_config.py +0 -0
  640. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_constants.py +0 -0
  641. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_e2e.py +0 -0
  642. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_fallback.py +0 -0
  643. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_handlers.py +0 -0
  644. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_integration.py +0 -0
  645. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_planner.py +0 -0
  646. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_polling.py +0 -0
  647. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_bulk_serialization.py +0 -0
  648. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_cascade_and_retry.py +0 -0
  649. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_dect_handlers.py +0 -0
  650. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_dect_planner.py +0 -0
  651. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_dependency.py +0 -0
  652. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_device_settings_handlers.py +0 -0
  653. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_device_settings_planner.py +0 -0
  654. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_engine.py +0 -0
  655. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_engine_409_recovery.py +0 -0
  656. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_executive_assistant_handlers.py +0 -0
  657. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_handlers.py +0 -0
  658. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_handlers_forwarding.py +0 -0
  659. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_handlers_workspace_settings.py +0 -0
  660. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_hoteling_handlers.py +0 -0
  661. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_phase12a_planner_fixes.py +0 -0
  662. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_planner.py +0 -0
  663. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_planner_forwarding.py +0 -0
  664. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_planner_settings_ops.py +0 -0
  665. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_planner_silent_skip_visibility.py +0 -0
  666. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_receptionist_handler.py +0 -0
  667. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_runtime.py +0 -0
  668. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_silent_failure_wave1.py +0 -0
  669. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_silent_failure_wave2a.py +0 -0
  670. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_silent_failure_wave2b.py +0 -0
  671. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_silent_failure_wave2c.py +0 -0
  672. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_silent_failure_wave3a.py +0 -0
  673. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_silent_failure_wave3b.py +0 -0
  674. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_voicemail_group_handler.py +0 -0
  675. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/execute/test_voicemail_group_planner.py +0 -0
  676. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/export/__init__.py +0 -0
  677. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/export/test_csv_activation_codes.py +0 -0
  678. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/export/test_deployment_plan.py +0 -0
  679. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/preflight/__init__.py +0 -0
  680. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/preflight/test_checks.py +0 -0
  681. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/preflight/test_runner.py +0 -0
  682. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/__init__.py +0 -0
  683. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/conftest.py +0 -0
  684. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_appendix.py +0 -0
  685. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_appendix_selective.py +0 -0
  686. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_appendix_tier2p2.py +0 -0
  687. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_appendix_tier3.py +0 -0
  688. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_assembler.py +0 -0
  689. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_cli_integration.py +0 -0
  690. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_dect_appendix.py +0 -0
  691. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_device_settings_score.py +0 -0
  692. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_e2e.py +0 -0
  693. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_executive.py +0 -0
  694. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_executive_selective.py +0 -0
  695. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_explainer.py +0 -0
  696. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_from_file.py +0 -0
  697. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_helpers.py +0 -0
  698. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_score.py +0 -0
  699. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_tier4_appendix.py +0 -0
  700. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_user_diff.py +0 -0
  701. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/report/test_user_notice.py +0 -0
  702. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_cucm_cli.py +0 -0
  703. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_decision_cli.py +0 -0
  704. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_dect_integration.py +0 -0
  705. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_device_settings_lossy_type.py +0 -0
  706. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_models.py +0 -0
  707. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_models_tier2p2.py +0 -0
  708. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_models_voicemail_group.py +0 -0
  709. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_pipeline_e2e.py +0 -0
  710. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_rate_limiter.py +0 -0
  711. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_state.py +0 -0
  712. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/test_store.py +0 -0
  713. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/__init__.py +0 -0
  714. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/conftest.py +0 -0
  715. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_advisor_routing_coverage.py +0 -0
  716. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_advisory_pattern_coverage.py +0 -0
  717. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_config_key_coverage.py +0 -0
  718. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_decision_type_coverage.py +0 -0
  719. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_default_auto_rules_coverage.py +0 -0
  720. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_recommendation_output_coverage.py +0 -0
  721. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_runbook_cites.py +0 -0
  722. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_runbook_cli_commands.py +0 -0
  723. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_runbook_links.py +0 -0
  724. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_runbook_parsability.py +0 -0
  725. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transferability/test_score_factor_display_names.py +0 -0
  726. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/__init__.py +0 -0
  727. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/analyzers/__init__.py +0 -0
  728. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/analyzers/test_each_analyzer.py +0 -0
  729. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/analyzers/test_layout_overflow.py +0 -0
  730. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/conftest.py +0 -0
  731. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/__init__.py +0 -0
  732. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_announcement_mapper.py +0 -0
  733. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_button_template_mapper.py +0 -0
  734. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_call_forwarding_mapper.py +0 -0
  735. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_call_settings_mapper.py +0 -0
  736. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_call_settings_mapper_intercept.py +0 -0
  737. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_css_mapper.py +0 -0
  738. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_dect_mapper.py +0 -0
  739. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_device_layout_mapper.py +0 -0
  740. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_device_layout_mapper_convertible.py +0 -0
  741. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_device_mapper.py +0 -0
  742. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_device_profile_mapper.py +0 -0
  743. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_device_settings_mapper.py +0 -0
  744. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_e911_mapper.py +0 -0
  745. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_executive_assistant_mapper.py +0 -0
  746. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_feature_mapper.py +0 -0
  747. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_feature_mapper_forwarding.py +0 -0
  748. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_feature_mapper_voicemail_gap.py +0 -0
  749. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_line_mapper.py +0 -0
  750. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_location_mapper.py +0 -0
  751. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_moh_mapper.py +0 -0
  752. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_monitoring_mapper.py +0 -0
  753. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_phase12a_feature_fixes.py +0 -0
  754. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_receptionist_mapper.py +0 -0
  755. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_routing_mapper.py +0 -0
  756. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_snr_mapper.py +0 -0
  757. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_softkey_mapper.py +0 -0
  758. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_user_mapper.py +0 -0
  759. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_voicemail_enrichment.py +0 -0
  760. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_voicemail_group_mapper.py +0 -0
  761. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_voicemail_mapper.py +0 -0
  762. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_workspace_mapper.py +0 -0
  763. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/mappers/test_workspace_mapper_call_settings.py +0 -0
  764. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_analysis_pipeline.py +0 -0
  765. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_classify_decisions.py +0 -0
  766. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_cpc_cross_ref.py +0 -0
  767. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_cross_decision_enrichment.py +0 -0
  768. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_cross_ref_phone_mirror.py +0 -0
  769. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_cross_ref_tier2p2.py +0 -0
  770. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_cross_reference.py +0 -0
  771. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_cucm_pattern.py +0 -0
  772. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_decision_merge.py +0 -0
  773. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_dect_classification.py +0 -0
  774. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_default_auto_rules_field_alignment.py +0 -0
  775. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_e164.py +0 -0
  776. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_engine.py +0 -0
  777. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_executive_assistant_integration.py +0 -0
  778. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_integration.py +0 -0
  779. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_intercept_integration.py +0 -0
  780. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_normalize_phone_device_settings.py +0 -0
  781. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_normalizers.py +0 -0
  782. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_normalizers_executive.py +0 -0
  783. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_normalizers_intercept.py +0 -0
  784. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_normalizers_tier2p2.py +0 -0
  785. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_normalizers_voicemail_group.py +0 -0
  786. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_pattern_converter.py +0 -0
  787. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_phase12a_analyzer_routing_fixes.py +0 -0
  788. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_pipeline.py +0 -0
  789. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_pipeline_common_area.py +0 -0
  790. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_rules.py +0 -0
  791. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_selective_call_handling_analyzer.py +0 -0
  792. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_selective_integration.py +0 -0
  793. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_shared_line_status.py +0 -0
  794. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_voicemail_group_integration.py +0 -0
  795. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_voicemail_group_pipeline.py +0 -0
  796. {wxcli-1.4.2 → wxcli-1.4.4}/tests/migration/transform/test_workspace_call_settings_integration.py +0 -0
  797. {wxcli-1.4.2 → wxcli-1.4.4}/tests/org_health/__init__.py +0 -0
  798. {wxcli-1.4.2 → wxcli-1.4.4}/tests/org_health/conftest.py +0 -0
  799. {wxcli-1.4.2 → wxcli-1.4.4}/tests/org_health/test_analyze.py +0 -0
  800. {wxcli-1.4.2 → wxcli-1.4.4}/tests/org_health/test_checks.py +0 -0
  801. {wxcli-1.4.2 → wxcli-1.4.4}/tests/org_health/test_cli.py +0 -0
  802. {wxcli-1.4.2 → wxcli-1.4.4}/tests/org_health/test_collector.py +0 -0
  803. {wxcli-1.4.2 → wxcli-1.4.4}/tests/org_health/test_models.py +0 -0
  804. {wxcli-1.4.2 → wxcli-1.4.4}/tests/org_health/test_report.py +0 -0
  805. {wxcli-1.4.2 → wxcli-1.4.4}/tools/__init__.py +0 -0
  806. {wxcli-1.4.2 → wxcli-1.4.4}/tools/create_stress_test_db.py +0 -0
  807. {wxcli-1.4.2 → wxcli-1.4.4}/tools/drift_check.py +0 -0
  808. {wxcli-1.4.2 → wxcli-1.4.4}/tools/drift_check_allowlist.txt +0 -0
  809. {wxcli-1.4.2 → wxcli-1.4.4}/tools/expand_cucm_data.py +0 -0
  810. {wxcli-1.4.2 → wxcli-1.4.4}/tools/postman_spec_diff.py +0 -0
  811. {wxcli-1.4.2 → wxcli-1.4.4}/tools/spec_overlay.py +0 -0
  812. {wxcli-1.4.2 → wxcli-1.4.4}/tools/spec_sync.py +0 -0
  813. {wxcli-1.4.2 → wxcli-1.4.4}/tools/update-specs.py +0 -0
  814. {wxcli-1.4.2 → wxcli-1.4.4}/tools/webhook_receiver.py +0 -0
  815. {wxcli-1.4.2 → wxcli-1.4.4}/tools/wheel_playbook_smoke.py +0 -0
  816. {wxcli-1.4.2 → wxcli-1.4.4}/wxcli-dist/assemble.py +0 -0
  817. {wxcli-1.4.2 → wxcli-1.4.4}/wxcli-dist/codex/agents-md-sections.md +0 -0
  818. {wxcli-1.4.2 → wxcli-1.4.4}/wxcli-dist/codex/config.toml +0 -0
  819. {wxcli-1.4.2 → wxcli-1.4.4}/wxcli-dist/settings.bundled.json +0 -0
@@ -28,16 +28,6 @@ Your job is to make the process structured, safe, and recoverable. You interview
28
28
 
29
29
  When invoked, run these checks silently:
30
30
 
31
- ### 0. Register agent with wxcli gate (REQUIRED — run FIRST, before any other Bash)
32
-
33
- The PreToolUse hook denies all `wxcli` Bash calls unless this agent has registered itself in `/tmp/.wxcli-agent-active`. Run this once at startup, before `wxcli --help` or any other command:
34
-
35
- ```bash
36
- echo $PPID >> /tmp/.wxcli-agent-active
37
- ```
38
-
39
- This appends the parent Claude Code process PID to the gate file. Multiple concurrent wxc-calling-builder agents in the same Claude Code session will append the same PID multiple times — that is expected and correct (ref-counted). The `SubagentStop` hook automatically removes one entry on every subagent exit, so no explicit teardown is required — do not run a teardown block yourself (it will over-decrement and lock out sibling agents).
40
-
41
31
  ### 1. CLI Environment
42
32
 
43
33
  Check that wxcli is installed:
@@ -369,15 +359,14 @@ Read `docs/templates/deployment-plan.md` to get the template. Fill in every sect
369
359
 
370
360
  Execute commands in the order specified in the deployment plan. Use wxcli CLI commands for all standard operations.
371
361
 
372
- ### Discovery-First Rule (applies to ALL phases, not just execution)
362
+ ### Discovery-First Rule
373
363
 
374
- When checking whether a capability, config key, API field, or setting exists — discover first, act second:
364
+ Discover first, act second — one broad query, evaluate, stop within 3 commands; accept a
365
+ negative result rather than hunting for workarounds. The rule and its false-negative guard
366
+ live in CLAUDE.md (§ Discovery-First Rule), which you already have in context. It applies to
367
+ reads and queries too, which is why it is no longer duplicated here.
375
368
 
376
- 1. **One broad query** — enumerate what's available (e.g., `wxcli device-configurations show --device-id X --key "Lines.*"`)
377
- 2. **Evaluate the result** — is the target in the response?
378
- 3. **If yes** → proceed. **If no** → report what you found and **stop within 3 total commands**.
379
-
380
- **Anti-pattern: refusing a negative result.** If a broad query shows the target doesn't exist, accept it. Do not try alternate key names, narrower/broader filters, the same query on a different device, speculative writes, or workaround paths. Report the negative finding — that IS the answer. Three total commands max before reporting back.
369
+ Example of a broad query in this domain: `wxcli device-configurations show --device-id X --key "Lines.*"`
381
370
 
382
371
  ### Progress Reporting
383
372
 
@@ -581,12 +570,9 @@ Each row names what the skill contains that is NOT in your training data. Do NOT
581
570
 
582
571
  ### Source of Truth Precedence
583
572
 
584
- When information conflicts between sources, trust them in this order:
585
-
586
- 1. **`wxcli <command> --help`** — the running code; always current
587
- 2. **Skills** — verified against live APIs; contain exact command examples
588
- 3. **Reference docs** — comprehensive but can lag behind skill and CLI updates
589
- 4. **Your training data** — least reliable; NEVER trust over the above three
573
+ `--help` > skills > reference docs > training data. The full rule lives in CLAUDE.md
574
+ (§ Source of Truth Precedence), which you already have in context; it applies to every
575
+ caller of `wxcli`, not just this agent, so it is no longer duplicated here.
590
576
 
591
577
  Example: if a reference doc says `wxcli locations-api list` but the skill says `wxcli locations list`, run `wxcli locations list --help` to see which exists. If `--help` confirms `locations list` works, use that regardless of what the reference doc says.
592
578
 
@@ -12,5 +12,19 @@
12
12
  "Bash(python3.11:*)",
13
13
  "Bash(PYTHONPATH=.:*)"
14
14
  ]
15
+ },
16
+ "hooks": {
17
+ "PreToolUse": [
18
+ {
19
+ "matcher": "Bash",
20
+ "hooks": [
21
+ {
22
+ "type": "command",
23
+ "command": "sh /Users/ahobgood/Documents/webexCalling/.claude/hooks/wxcli-gate.sh",
24
+ "timeout": 5
25
+ }
26
+ ]
27
+ }
28
+ ]
15
29
  }
16
30
  }
@@ -14,10 +14,12 @@ argument-hint: [device-platform-operation]
14
14
  # Device Platform Workflow
15
15
 
16
16
  **Checkpoint — do NOT proceed until you can answer these:**
17
- 1. Do 9800-series phones (9811/9821/9841/9851/9861/9871) use telephony device settings or RoomOS config keys? (Answer: RoomOS config keys — they are NOT configured via `wxcli device-settings` or telephony settings APIs.)
18
- 2. What CLI group handles xAPI commands for device control? (Answer: `wxcli xapi` — covers both command execution and status queries on devices.)
17
+ 1. Do 9800-series phones (9811/9821/9841/9851/9861/9871) use telephony device settings or PhoneOS config keys? (Answer: PhoneOS config keys via the Device Configurations API (`wxcli device-configurations`) — they are NOT configured via `wxcli device-settings` or telephony settings APIs.)
18
+ 2. What CLI group handles xAPI commands for device control? (Answer: `wxcli xapi` — covers schema discovery (`list`), status queries (`show`), and command execution (`create`).)
19
+ 3. You need a key name (command, status, or config) and don't know it. What do you do FIRST? (Answer: dump the device's full namespace to disk with `"*"` and grep it — see 6c. Do NOT guess a namespace, do NOT use training data, do NOT send the user to a website.)
20
+ 4. You grep all three dumps and the key isn't there. What do you report? (Answer: "this device does not expose it" — NOT "the feature doesn't exist." Coverage varies by model and firmware.)
19
21
 
20
- If you cannot answer both, you skipped reading this skill. Go back and read it.
22
+ If you cannot answer all four, you skipped reading this skill. Go back and read it.
21
23
 
22
24
  ## Step 1: Load references
23
25
 
@@ -202,7 +204,68 @@ wxcli workspace-personalization show WORKSPACE_ID
202
204
  - Common error: "Device is offline" -- the workspace device must be online and registered
203
205
  - **Do not tell the user it is done until `show` returns `success: true`**
204
206
 
205
- ### 6c. xAPI -- Status Queries
207
+ ### 6c. Discover the Namespace -- Dump, Then Grep
208
+
209
+ **Do this FIRST whenever you do not already know the exact key name. Do NOT guess a namespace, and do NOT rely on your training data for xAPI key names.**
210
+
211
+ The device reports its own complete namespace. Dump all three surfaces to disk, then grep locally:
212
+
213
+ **One device per dump. Always namespace the filenames by device.** Namespaces differ by model and firmware — a key on one device may be absent on the next.
214
+
215
+ ```bash
216
+ # Pick a short unique tag per device (e.g. its displayName, slugified). ONE device per file.
217
+ TAG=roombarpro # <- change per device; never reuse across devices
218
+
219
+ wxcli xapi list --device-id DEVICE_ID --status "*" -o json > /tmp/${TAG}_status.json
220
+ wxcli xapi list --device-id DEVICE_ID --command "*" -o json > /tmp/${TAG}_commands.json
221
+
222
+ # Configurations -- DIFFERENT API, see the surface table below
223
+ wxcli device-configurations show --device-id DEVICE_ID -o json > /tmp/${TAG}_configs.json
224
+
225
+ # Search ONE device's dumps at a time -- never glob across devices
226
+ grep -io '"[A-Za-z][A-Za-z0-9._[]]*Background[A-Za-z0-9._[]]*"' /tmp/${TAG}_*.json | sort -u
227
+ ```
228
+
229
+ **NEVER `Read` these dumps.** Verified live on a Room Bar Pro: 535 statuses + 453 commands + 1,218 configs, ~1.4 MB combined (~350k tokens). Grep them; never open them.
230
+
231
+ **Multi-device rules — violating these is how you execute against the wrong box:**
232
+
233
+ - **Never grep across devices** (no `/tmp/*_status.json` globs). A hit tells you a key exists *somewhere*, not on the device you're about to call. Re-grep that device's own dump before executing.
234
+ - `--device-id` accepts up to **5 device IDs** per request, and the response is an array where each item carries its own `deviceId`. If you ever query more than one at a time, you **must** parse per `deviceId` — a flat grep destroys the attribution the API gave you.
235
+ - **Fleet-wide work:** dump each device separately, grep each separately, and treat "device A has it" as zero evidence about device B. Report per-device results, not a single fleet-wide answer.
236
+ - **Mixed fleets: xAPI is RoomOS-only.** Room/Board/Desk series support xAPI; PhoneOS 9800-series and MPP phones do not. On a 9800-series phone, skip the `xapi` dumps entirely and use `device-configurations` (6a) — that API serves both RoomOS and PhoneOS. A failed xAPI call on a phone is expected, not a bug; do not report it as the device being broken, and do not retry it.
237
+
238
+ **Why dump instead of filter:** filtering requires guessing the first word, and that guess is a coin flip. `Camera.*` and `Cameras.*` are BOTH real, distinct namespaces on the same device — a filtered query on the wrong one returns a confident, complete-looking, wrong answer. Dumping has no such failure mode. Once you know the namespace, filtering (`--command "Camera.*"`) is a fine optimization.
239
+
240
+ **Three surfaces, two APIs — a key lives in exactly one:**
241
+
242
+ | Surface | API | Command | Example |
243
+ |---------|-----|---------|---------|
244
+ | Command (do a thing) | xAPI | `wxcli xapi list --command`, `xapi create` | `Camera.PositionReset` |
245
+ | Status (read a live value) | xAPI | `wxcli xapi list --status`, `xapi show` | `SystemUnit.ProductPlatform` |
246
+ | Configuration (persistent setting) | Device Configurations | `wxcli device-configurations show/update` (6a) | `Video.Input.CameraConfigMode` |
247
+
248
+ `xapi list` **cannot see configurations** — `/xapi/schema` accepts only `--status` and `--command`. If you search only xAPI for a setting, you will wrongly conclude it does not exist. Search all three dumps.
249
+
250
+ **Verified behaviors — do not re-derive these:**
251
+
252
+ - **`-o json` is mandatory.** The default table output renders a single `Device Id` column and silently drops every command, argument, and schema. It does not error — it just looks like the device has nothing.
253
+ - **The dumps contain NO descriptions.** Checked across all 2,206 keys on a live device: zero `description`/`help`/`summary`/`doc` fields. A command returns only `arguments` (each with `required` + a JSON Schema) and a `resultSchema`; a config returns only `value`, `source`, `sources`, `valueSpace`, `appliedConfigurationValue`. **The device tells you a key's shape, never its meaning.** Do not tell the user what a key does based on a dump alone — say you have the name and shape but not the semantics.
254
+ - `--device-id` is required (max 5 per request). Discovery needs a live, online, cloud-registered device.
255
+ - Scopes differ: `spark:xapi_commands` for `--command`, `spark:xapi_statuses` for `--status`. Configurations use `spark-admin:devices_read/write`.
256
+
257
+ **Absence in a dump means "not on THIS device" — never "does not exist."**
258
+ Coverage varies sharply by model and firmware. A real example: the virtual-background keys (`Cameras.Background.*`) exist on Cisco hardware but are absent from a Room Bar Pro's dump entirely. If you grep and find nothing, report *"this device does not expose it"* and name the device — do NOT tell the user the feature does not exist. A confident false negative is worse than no answer.
259
+
260
+ **Worked example -- "reset the camera position on device XYZ":**
261
+
262
+ 1. Dump + grep: `grep -io '"Camera[^"]*"' /tmp/dev_commands.json | sort -u` -> finds `Camera.PositionReset`
263
+ 2. Read that key's object: `CameraId` (required, integer 1-15) and `Axis` (optional enum `All`/`Focus`/`PanTilt`/`Zoom`, default `All`). *(Verified live.)*
264
+ 3. Execute: `wxcli xapi create Camera.PositionReset --device-id XYZ --json-body '{"deviceId": "XYZ", "arguments": {"CameraId": 1}}'`
265
+
266
+ Argument names and value ranges vary by model and firmware. Trust the dump for the device in front of you over any example in this skill.
267
+
268
+ ### 6d. xAPI -- Status Queries
206
269
 
207
270
  ```bash
208
271
  # Query a single status value
@@ -227,7 +290,7 @@ wxcli xapi show --device-id DEVICE_ID --name "Audio.Volume,SystemUnit.State.Numb
227
290
  | `Peripherals.ConnectedDevice[*].Name` | Connected peripherals |
228
291
  | `Standby.State` | Standby/active state |
229
292
 
230
- ### 6d. xAPI -- Command Execution
293
+ ### 6e. xAPI -- Command Execution
231
294
 
232
295
  ```bash
233
296
  # Simple command with no arguments (deviceId auto-populated from --device-id)
@@ -260,7 +323,7 @@ wxcli xapi create UserInterface.Message.Alert.Display --device-id DEVICE_ID --js
260
323
  | `Message.Send` | `Text` | Display on-screen message |
261
324
  | `UserInterface.Message.Alert.Display` | `Title`, `Text`, `Duration` | Show alert popup |
262
325
 
263
- **Do not enumerate the full xAPI namespace.** The namespace is huge. Ask the user what they want to DO, then look up the specific command name. Point them to https://roomos.cisco.com/xapi for the full reference.
326
+ **Do not paste the namespace into context — but do dump it.** An unfiltered `xapi list` returns hundreds of keys (~350k tokens across all three surfaces). Redirect it to a file and grep (6c); never `Read` it. https://roomos.cisco.com/xapi documents the namespace for humans and is the only source of *prose* for what a key means, but it is not a substitute for 6c — only the device knows what it actually exposes.
264
327
 
265
328
  ### Error handling
266
329
 
@@ -268,7 +331,7 @@ wxcli xapi create UserInterface.Message.Alert.Display --device-id DEVICE_ID --js
268
331
  |-------|-------|-----|
269
332
  | 401/403 | Token expired or insufficient scopes | Run `wxcli configure` to re-authenticate |
270
333
  | 400 "device not found" | Invalid device ID or device not cloud-registered | Verify with `wxcli devices list` |
271
- | 400 on xAPI command | Device offline, wrong command name, or missing arguments | Check device is online, verify command name at roomos.cisco.com/xapi |
334
+ | 400 on xAPI command | Device offline, wrong command name, or missing arguments | Check device is online, then confirm the command name and its required arguments against the device with a filtered `wxcli xapi list` (6c) |
272
335
  | 400 on device-configurations update | Invalid path, bad JSON Patch format, or non-editable key | Verify path ends in `/sources/configured/value`, check key is editable |
273
336
  | Personalization "Device is offline" | Workspace device not online | Device must be powered on and cloud-registered |
274
337
 
@@ -355,7 +418,7 @@ Next steps:
355
418
 
356
419
  6. **Configuration update PATCH content type.** The API uses `application/json-patch+json`, not `application/json`. The CLI handles this automatically. If the user falls back to raw HTTP (curl), they must set the `Content-Type` header correctly.
357
420
 
358
- 7. **Do not enumerate xAPI commands.** The xAPI namespace is huge. Ask the user what they want to DO, then look up the specific command name. Point them to https://roomos.cisco.com/xapi for the full command reference.
421
+ 7. **Never guess a key name — dump the device's namespace and grep it (6c).** Filtering on a guessed namespace is a coin flip: `Camera.*` and `Cameras.*` are both real and distinct, so a wrong guess returns a confident, complete-looking, wrong answer. Dump all three surfaces with `"*"` to disk and grep. Never `Read` the dumps (~350k tokens). Do not substitute training data or a link to roomos.cisco.com for the lookup. The device is authoritative for its own model and firmware — but only about itself: absence means "not on this device," not "does not exist."
359
422
 
360
423
  8. **Scope mismatch between device-configurations and xAPI.** Device configurations use admin scopes (`spark-admin:devices_read`/`spark-admin:devices_write`). xAPI uses user-level scopes (`spark:xapi_statuses`/`spark:xapi_commands`). A token may have one set but not the other. Diagnose scope issues early in Step 2.
361
424
 
@@ -16,17 +16,25 @@
16
16
  ## Command Recipes
17
17
 
18
18
  ### List users (org-wide or filtered)
19
+
20
+ **Always pass `--calling-data true` when the question touches extension, location, or
21
+ any calling attribute.** Without it the API omits those fields entirely — the command
22
+ still exits 0 and returns every person, so a count built from it silently reports zero.
23
+
19
24
  ```bash
20
- wxcli people list -o json
21
- wxcli people list --location-id LOCATION_ID -o json
22
- wxcli people list --display-name "John Smith" -o json
23
- wxcli people list --email "john@example.com" -o json
25
+ wxcli people list --calling-data true -o json
26
+ wxcli people list --calling-data true --location-id LOCATION_ID -o json
27
+ wxcli people list --calling-data true --display-name "John Smith" -o json
28
+ wxcli people list --calling-data true --email "john@example.com" -o json
24
29
  ```
25
30
 
31
+ Omit `--calling-data` only for pure directory questions (name, email, roles, licenses).
32
+
26
33
  ### Show a specific user
27
34
  ```bash
28
- wxcli people show PERSON_ID -o json
35
+ wxcli people show PERSON_ID --calling-data true -o json
29
36
  ```
37
+ Same rule as `list`: without `--calling-data true`, `extension` and `locationId` are absent.
30
38
 
31
39
  ### Voicemail settings
32
40
  ```bash
@@ -92,13 +100,14 @@ wxcli user-settings show-hoteling PERSON_ID -o json
92
100
 
93
101
  **Finding users at a location by name:**
94
102
  1. `wxcli locations list -o json` → search for location name → get ID
95
- 2. `wxcli people list --location-id <locationId> -o json`
103
+ 2. `wxcli people list --calling-data true --location-id <locationId> -o json`
96
104
 
97
105
  ## Join Patterns
98
106
 
99
107
  **Audit query** ("Which users at Austin don't have voicemail?"):
100
108
  1. Resolve location name → ID: `wxcli locations list -o json`
101
- 2. List users at location: `wxcli people list --location-id <locationId> -o json`
109
+ 2. List users at location: `wxcli people list --calling-data true --location-id <locationId> -o json`
110
+ (`--calling-data true` is required — the audit report prints each user's extension)
102
111
  3. For each user, fetch setting: `wxcli user-settings show-voicemail <personId> -o json`
103
112
  4. Filter to matches (enabled=false or missing)
104
113
  5. Format as audit table
@@ -46,12 +46,21 @@ docs/arch/
46
46
  docs/webex-api-feedback.html
47
47
  docs/webex-api-feedback-for-cisco-collab-bu.md
48
48
 
49
- # Tests (dev-only, except the actively-maintained migration/org-health suites)
49
+ # Tests (dev-only, except the actively-maintained migration/org-health suites
50
+ # and the artifact guards below)
50
51
  tests/*
51
52
  !tests/migration/
52
53
  !tests/migration/**
53
54
  !tests/org_health/
54
55
  !tests/org_health/**
56
+ # Artifact guards: these assert on files that ship (settings.bundled.json,
57
+ # field_overrides.yaml, README.md, ci.yml). They caught real drift while CI
58
+ # could not see them, so they are tracked and run on every PR. They import only
59
+ # stdlib/pytest/yaml plus in-repo modules — no network, no live API, and no
60
+ # dependency on the untracked tests/conftest.py.
61
+ !tests/test_assemble.py
62
+ !tests/test_field_overrides.py
63
+ !tests/test_readme_distribution.py
55
64
  !tests/test_release_integrity.py
56
65
  tests/migration/**/__pycache__/
57
66
  tests/org_health/**/__pycache__/
@@ -89,6 +98,9 @@ tools/reassign_dids_to_cc.py
89
98
  README.md.bak
90
99
  src/wxcli/_version.py
91
100
 
101
+ # Org-health scan output (contains live org data — person IDs, numbers, devices)
102
+ org-health-output/
103
+
92
104
  # Remotion video production (local build artifact)
93
105
  remotion-video/
94
106
 
@@ -15,6 +15,47 @@ For every question — capability, configuration, behavior, limits, or anything
15
15
 
16
16
  The reference docs and skills are the authoritative source for this project. Training data about Cisco/Webex products is unreliable — product tiers get conflated, feature names change, and capabilities vary by license. If the answer isn't in the docs or skills, say so explicitly rather than filling the gap from training data.
17
17
 
18
+ ## Source of Truth Precedence
19
+
20
+ Applies to everyone touching `wxcli` — main session, skills, and agents alike. When
21
+ sources conflict, trust them in this order:
22
+
23
+ 1. **`wxcli <command> --help`** — the running code; always current
24
+ 2. **Skills** — verified against live APIs; contain exact command examples
25
+ 3. **Reference docs** — comprehensive but can lag behind skill and CLI updates
26
+ 4. **Your training data** — least reliable; NEVER trust over the above three
27
+
28
+ This refines the grounding rule above: skills and docs outrank your training, but
29
+ `--help` outranks *them*. A skill's recipe is a starting point, not a guarantee — recipes
30
+ are hand-written and drift as the CLI regenerates. When a recipe and `--help` disagree,
31
+ `--help` wins, and the stale recipe should be fixed, not worked around.
32
+
33
+ **A read-only command can be silently wrong.** Real case: the query-live recipe said
34
+ `wxcli people list -o json`, but Webex omits `extension` and `locationId` unless
35
+ `--calling-data true` is passed. The command exits 0 and returns every user, so
36
+ "how many users have extensions?" answers **0** instead of the true count. No error, no
37
+ warning. Before trusting a read, confirm via `--help` that the command was actually
38
+ capable of returning the field you are about to draw a conclusion from.
39
+
40
+ ## Discovery-First Rule
41
+
42
+ Applies to ALL work — reads, queries, and builds — not just execution. When checking
43
+ whether a capability, config key, API field, or setting exists, discover first, act second:
44
+
45
+ 1. **One broad query** — enumerate what's available
46
+ 2. **Evaluate the result** — is the target in the response?
47
+ 3. **If yes** → proceed. **If no** → report what you found and **stop within 3 total commands**.
48
+
49
+ **Anti-pattern: refusing a negative result.** If a broad query shows the target doesn't
50
+ exist, accept it. Do not try alternate key names, narrower/broader filters, the same query
51
+ on a different resource, speculative writes, or workaround paths. Report the negative
52
+ finding — that IS the answer. Three total commands max before reporting back.
53
+
54
+ **Guard on that rule: only accept a negative once the query could have returned a positive.**
55
+ An absent field may mean "not configured" or may mean "you didn't ask for it" (see the
56
+ `--calling-data` case above). Confirm the command surfaces the field before reporting
57
+ "none found" — a false negative delivered confidently is worse than no answer.
58
+
18
59
  ## Plain-English Communication Rule
19
60
 
20
61
  The target user has ZERO platform experience. When explaining findings, trade-offs, or decisions — or asking the user to choose between options — do NOT lead with jargon, acronyms, or internal feature-names. Instead:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wxcli
3
- Version: 1.4.2
3
+ Version: 1.4.4
4
4
  Summary: Webex Calling CLI — terminal-based provisioning for Webex APIs
5
5
  Author: Adam Hobgood
6
6
  License: Apache-2.0
@@ -41,6 +41,13 @@ A command-line tool and AI-assisted playbook for provisioning, managing, migrati
41
41
 
42
42
  > **Unofficial community CLI — not affiliated with or endorsed by Cisco.**
43
43
 
44
+ > **Use at your own risk.** This software is provided "AS IS", without warranty
45
+ > of any kind, and the authors accept no liability for any damage, data loss, or
46
+ > service disruption arising from its use (see [LICENSE](LICENSE), Apache 2.0
47
+ > §7–8). It performs **write and delete operations against live production
48
+ > Webex Calling and CUCM environments**, driven in part by non-deterministic AI.
49
+ > You are responsible for reviewing every action before it runs.
50
+
44
51
  ## What It Does
45
52
 
46
53
  - **176 CLI command groups** — provision locations, users, call features, devices, routing, PSTN, messaging, meetings, and contact center resources from the terminal
@@ -493,6 +500,46 @@ The CLI covers 176 command groups across calling, admin, device, messaging, meet
493
500
 
494
501
  See [`docs/reference/authentication.md`](docs/reference/authentication.md) for full details on token types, OAuth flows, and scope requirements per endpoint.
495
502
 
503
+ ## Disclaimer & Safe Use
504
+
505
+ wxcli is an unofficial, community-maintained tool. It is **not affiliated with,
506
+ endorsed by, or supported by Cisco.** "Webex", "Webex Calling", and "CUCM" are
507
+ Cisco trademarks, used here only to describe interoperability.
508
+
509
+ **This tool changes and deletes real telephony configuration.** The AI playbook
510
+ reasons and orchestrates using a large language model, which is non-deterministic:
511
+ the same prompt can produce different actions, and the agent can select the wrong
512
+ resource. The layered design (docs → skills → tested CLI, with read-back
513
+ verification) is built to reduce this, but **cannot eliminate it.**
514
+
515
+ Before running anything against a production org:
516
+
517
+ - **Preview first.** Use `--dry-run` (cleanup, migration) and review the plan.
518
+ - **Verify emergency services.** E911 / emergency-callback misconfiguration is a
519
+ life-safety risk. Independently confirm every emergency address and ECBN after
520
+ any change — do not rely on the tool's read-back alone.
521
+ - **`cleanup run --all` is irreversible** and deletes an entire org's calling
522
+ config. There is no undo.
523
+ - **Test in a lab or sandbox org first**, especially for CUCM migrations.
524
+ - **You are the operator of record.** You are responsible for reviewing and
525
+ authorizing every action, and for compliance with your own change-control,
526
+ regulatory (e.g. Kari's Law / RAY BAUM's Act), and data-handling obligations.
527
+
528
+ By using this tool you accept these risks and the terms of the Apache 2.0 License.
529
+
530
+ ### Credentials, secrets, and API usage
531
+
532
+ - **Tokens are stored locally in plaintext** in your wxcli config file. Treat that
533
+ file like a password — it grants full admin access to your Webex org. Personal
534
+ access tokens expire after 12 hours; OAuth/service-app tokens live longer, so
535
+ guard them accordingly.
536
+ - **CUCM AXL credentials** passed inline to `wxcli cucm discover --username/--password`
537
+ land in your shell history. Prefer a prompt-based flow or a throwaway shell, and
538
+ clear the history afterward.
539
+ - **The AI playbook can generate many API calls in a loop.** Long agent runs and
540
+ large migrations may hit Webex API rate limits; the tool retries, but you own the
541
+ API-usage footprint against your org.
542
+
496
543
  ## License
497
544
 
498
545
  Apache 2.0 — see LICENSE.
@@ -4,6 +4,13 @@ A command-line tool and AI-assisted playbook for provisioning, managing, migrati
4
4
 
5
5
  > **Unofficial community CLI — not affiliated with or endorsed by Cisco.**
6
6
 
7
+ > **Use at your own risk.** This software is provided "AS IS", without warranty
8
+ > of any kind, and the authors accept no liability for any damage, data loss, or
9
+ > service disruption arising from its use (see [LICENSE](LICENSE), Apache 2.0
10
+ > §7–8). It performs **write and delete operations against live production
11
+ > Webex Calling and CUCM environments**, driven in part by non-deterministic AI.
12
+ > You are responsible for reviewing every action before it runs.
13
+
7
14
  ## What It Does
8
15
 
9
16
  - **176 CLI command groups** — provision locations, users, call features, devices, routing, PSTN, messaging, meetings, and contact center resources from the terminal
@@ -456,6 +463,46 @@ The CLI covers 176 command groups across calling, admin, device, messaging, meet
456
463
 
457
464
  See [`docs/reference/authentication.md`](docs/reference/authentication.md) for full details on token types, OAuth flows, and scope requirements per endpoint.
458
465
 
466
+ ## Disclaimer & Safe Use
467
+
468
+ wxcli is an unofficial, community-maintained tool. It is **not affiliated with,
469
+ endorsed by, or supported by Cisco.** "Webex", "Webex Calling", and "CUCM" are
470
+ Cisco trademarks, used here only to describe interoperability.
471
+
472
+ **This tool changes and deletes real telephony configuration.** The AI playbook
473
+ reasons and orchestrates using a large language model, which is non-deterministic:
474
+ the same prompt can produce different actions, and the agent can select the wrong
475
+ resource. The layered design (docs → skills → tested CLI, with read-back
476
+ verification) is built to reduce this, but **cannot eliminate it.**
477
+
478
+ Before running anything against a production org:
479
+
480
+ - **Preview first.** Use `--dry-run` (cleanup, migration) and review the plan.
481
+ - **Verify emergency services.** E911 / emergency-callback misconfiguration is a
482
+ life-safety risk. Independently confirm every emergency address and ECBN after
483
+ any change — do not rely on the tool's read-back alone.
484
+ - **`cleanup run --all` is irreversible** and deletes an entire org's calling
485
+ config. There is no undo.
486
+ - **Test in a lab or sandbox org first**, especially for CUCM migrations.
487
+ - **You are the operator of record.** You are responsible for reviewing and
488
+ authorizing every action, and for compliance with your own change-control,
489
+ regulatory (e.g. Kari's Law / RAY BAUM's Act), and data-handling obligations.
490
+
491
+ By using this tool you accept these risks and the terms of the Apache 2.0 License.
492
+
493
+ ### Credentials, secrets, and API usage
494
+
495
+ - **Tokens are stored locally in plaintext** in your wxcli config file. Treat that
496
+ file like a password — it grants full admin access to your Webex org. Personal
497
+ access tokens expire after 12 hours; OAuth/service-app tokens live longer, so
498
+ guard them accordingly.
499
+ - **CUCM AXL credentials** passed inline to `wxcli cucm discover --username/--password`
500
+ land in your shell history. Prefer a prompt-based flow or a throwaway shell, and
501
+ clear the history afterward.
502
+ - **The AI playbook can generate many API calls in a loop.** Long agent runs and
503
+ large migrations may hit Webex API rate limits; the tool retries, but you own the
504
+ API-usage footprint against your org.
505
+
459
506
  ## License
460
507
 
461
508
  Apache 2.0 — see LICENSE.
@@ -24,7 +24,7 @@ Before using any of the three APIs documented here, you need:
24
24
 
25
25
  1. **A working auth token.** Verify with `wxcli whoami`. Token type (admin, user, service app) affects which scopes are available — see the Scopes section below.
26
26
 
27
- 2. **At least one cloud-registered RoomOS device** (for device-configurations and xAPI). This means a Cisco Room, Board, or Desk series device registered to Webex cloud. MPP phones do not support device-configurations key management or xAPI.
27
+ 2. **At least one cloud-registered RoomOS device or PhoneOS 9800-series phone.** Device-configurations works on either: a Cisco Room, Board, or Desk series device (RoomOS) or a 9800-series phone (9811/9821/9841/9851/9861/9871, PhoneOS) registered to Webex cloud. xAPI requires a RoomOS device specifically. MPP phones (68xx/78xx/88xx) support neither — they use the telephony device settings API instead (see [devices-core.md](devices-core.md)).
28
28
 
29
29
  3. **At least one workspace with a device** (for workspace-personalization). The workspace must already exist and have a device assigned to it.
30
30
 
@@ -61,7 +61,7 @@ The Device Configurations API reads and writes RoomOS configuration keys on a sp
61
61
 
62
62
  Changes are applied via JSON Patch operations (`replace` to set a value, `remove` to revert to the schema default). The API supports filtering by key name, wildcard patterns, and index ranges.
63
63
 
64
- This API targets RoomOS devices only (Room, Board, Desk series). MPP phones do not expose configuration keys through this interface.
64
+ This API targets RoomOS devices (Room, Board, Desk series) and PhoneOS 9800-series phones. The API surface is shared between the two platforms, but the reported config-key schemas differ by platform and firmware (see gotcha #11). MPP phones do not expose configuration keys through this interface.
65
65
 
66
66
  ### CLI Commands
67
67
 
@@ -28,16 +28,6 @@ Your job is to make the process structured, safe, and recoverable. You interview
28
28
 
29
29
  When invoked, run these checks silently:
30
30
 
31
- ### 0. Register agent with wxcli gate (REQUIRED — run FIRST, before any other Bash)
32
-
33
- The PreToolUse hook denies all `wxcli` Bash calls unless this agent has registered itself in `/tmp/.wxcli-agent-active`. Run this once at startup, before `wxcli --help` or any other command:
34
-
35
- ```bash
36
- echo $PPID >> /tmp/.wxcli-agent-active
37
- ```
38
-
39
- This appends the parent Claude Code process PID to the gate file. Multiple concurrent wxc-calling-builder agents in the same Claude Code session will append the same PID multiple times — that is expected and correct (ref-counted). The `SubagentStop` hook automatically removes one entry on every subagent exit, so no explicit teardown is required — do not run a teardown block yourself (it will over-decrement and lock out sibling agents).
40
-
41
31
  ### 1. CLI Environment
42
32
 
43
33
  Check that wxcli is installed:
@@ -369,15 +359,14 @@ Read `docs/templates/deployment-plan.md` to get the template. Fill in every sect
369
359
 
370
360
  Execute commands in the order specified in the deployment plan. Use wxcli CLI commands for all standard operations.
371
361
 
372
- ### Discovery-First Rule (applies to ALL phases, not just execution)
362
+ ### Discovery-First Rule
373
363
 
374
- When checking whether a capability, config key, API field, or setting exists — discover first, act second:
364
+ Discover first, act second — one broad query, evaluate, stop within 3 commands; accept a
365
+ negative result rather than hunting for workarounds. The rule and its false-negative guard
366
+ live in CLAUDE.md (§ Discovery-First Rule), which you already have in context. It applies to
367
+ reads and queries too, which is why it is no longer duplicated here.
375
368
 
376
- 1. **One broad query** — enumerate what's available (e.g., `wxcli device-configurations show --device-id X --key "Lines.*"`)
377
- 2. **Evaluate the result** — is the target in the response?
378
- 3. **If yes** → proceed. **If no** → report what you found and **stop within 3 total commands**.
379
-
380
- **Anti-pattern: refusing a negative result.** If a broad query shows the target doesn't exist, accept it. Do not try alternate key names, narrower/broader filters, the same query on a different device, speculative writes, or workaround paths. Report the negative finding — that IS the answer. Three total commands max before reporting back.
369
+ Example of a broad query in this domain: `wxcli device-configurations show --device-id X --key "Lines.*"`
381
370
 
382
371
  ### Progress Reporting
383
372
 
@@ -581,12 +570,9 @@ Each row names what the skill contains that is NOT in your training data. Do NOT
581
570
 
582
571
  ### Source of Truth Precedence
583
572
 
584
- When information conflicts between sources, trust them in this order:
585
-
586
- 1. **`wxcli <command> --help`** — the running code; always current
587
- 2. **Skills** — verified against live APIs; contain exact command examples
588
- 3. **Reference docs** — comprehensive but can lag behind skill and CLI updates
589
- 4. **Your training data** — least reliable; NEVER trust over the above three
573
+ `--help` > skills > reference docs > training data. The full rule lives in CLAUDE.md
574
+ (§ Source of Truth Precedence), which you already have in context; it applies to every
575
+ caller of `wxcli`, not just this agent, so it is no longer duplicated here.
590
576
 
591
577
  Example: if a reference doc says `wxcli locations-api list` but the skill says `wxcli locations list`, run `wxcli locations list --help` to see which exists. If `--help` confirms `locations list` works, use that regardless of what the reference doc says.
592
578