city-cli 0.9.76__tar.gz → 0.9.78__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 (96) hide show
  1. {city_cli-0.9.76 → city_cli-0.9.78}/PKG-INFO +2 -2
  2. city_cli-0.9.78/VERSION +1 -0
  3. {city_cli-0.9.76 → city_cli-0.9.78}/pyproject.toml +2 -2
  4. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/service.py +7 -8
  5. city_cli-0.9.76/VERSION +0 -1
  6. {city_cli-0.9.76 → city_cli-0.9.78}/.gitignore +0 -0
  7. {city_cli-0.9.76 → city_cli-0.9.78}/README.md +0 -0
  8. {city_cli-0.9.76 → city_cli-0.9.78}/src/city/__init__.py +0 -0
  9. {city_cli-0.9.76 → city_cli-0.9.78}/src/city/testkit/__init__.py +0 -0
  10. {city_cli-0.9.76 → city_cli-0.9.78}/src/city/testkit/keys.py +0 -0
  11. {city_cli-0.9.76 → city_cli-0.9.78}/src/city/testkit/py.typed +0 -0
  12. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/__init__.py +0 -0
  13. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/__main__.py +0 -0
  14. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/agent.py +0 -0
  15. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/minimarket.py +0 -0
  16. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/remote.py +0 -0
  17. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/report.py +0 -0
  18. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/runner.py +0 -0
  19. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/stages.py +0 -0
  20. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_conform/world.py +0 -0
  21. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/__init__.py +0 -0
  22. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/__main__.py +0 -0
  23. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/api.py +0 -0
  24. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/build.py +0 -0
  25. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/card_schema.py +0 -0
  26. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/citizen_grant.py +0 -0
  27. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/cli.py +0 -0
  28. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/clock.py +0 -0
  29. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/conform.py +0 -0
  30. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/controller.py +0 -0
  31. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/errors.py +0 -0
  32. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/image.py +0 -0
  33. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/local.py +0 -0
  34. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/loopback.py +0 -0
  35. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/purge.py +0 -0
  36. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/quota.py +0 -0
  37. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/receipt.py +0 -0
  38. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/registry.py +0 -0
  39. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/rosters.py +0 -0
  40. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/runtime.py +0 -0
  41. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/schemas/cap/card.json +0 -0
  42. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/schemas/profiles/mhm/1.0/card.json +0 -0
  43. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/secrets.py +0 -0
  44. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/serve.py +0 -0
  45. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/skeleton.py +0 -0
  46. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/state.py +0 -0
  47. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/store.py +0 -0
  48. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/style.py +0 -0
  49. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/team_llm.py +0 -0
  50. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/teams.py +0 -0
  51. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/b2b/Dockerfile +0 -0
  52. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/b2b/SKILL.md +0 -0
  53. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/b2b/agent/agent.py +0 -0
  54. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/b2b/card.yaml +0 -0
  55. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/b2b/city.yaml +0 -0
  56. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/consultorio/Dockerfile +0 -0
  57. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/consultorio/SKILL.md +0 -0
  58. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/consultorio/agent/agent.py +0 -0
  59. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/consultorio/card.yaml +0 -0
  60. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/consultorio/city.yaml +0 -0
  61. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/cup/Dockerfile +0 -0
  62. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/cup/SKILL.md +0 -0
  63. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/cup/agent/agent.py +0 -0
  64. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/cup/card.yaml +0 -0
  65. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/cup/city.yaml +0 -0
  66. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/facility/Dockerfile +0 -0
  67. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/facility/SKILL.md +0 -0
  68. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/facility/agent/agent.py +0 -0
  69. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/facility/card.yaml +0 -0
  70. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/facility/city.yaml +0 -0
  71. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/mmg/Dockerfile +0 -0
  72. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/mmg/SKILL.md +0 -0
  73. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/mmg/agent/agent.py +0 -0
  74. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/mmg/card.yaml +0 -0
  75. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/mmg/city.yaml +0 -0
  76. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/specialist/Dockerfile +0 -0
  77. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/specialist/SKILL.md +0 -0
  78. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/specialist/agent/agent.py +0 -0
  79. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/specialist/card.yaml +0 -0
  80. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/templates/specialist/city.yaml +0 -0
  81. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_deploy/urls.py +0 -0
  82. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/__init__.py +0 -0
  83. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/__main__.py +0 -0
  84. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/app.py +0 -0
  85. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/auth.py +0 -0
  86. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/cache.py +0 -0
  87. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/catalog.py +0 -0
  88. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/citizens.py +0 -0
  89. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/events.py +0 -0
  90. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/families.py +0 -0
  91. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/model.py +0 -0
  92. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/ports.py +0 -0
  93. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/query.py +0 -0
  94. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/service.py +0 -0
  95. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/visibility.py +0 -0
  96. {city_cli-0.9.76 → city_cli-0.9.78}/src/city_index/watch.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: city-cli
3
- Version: 0.9.76
3
+ Version: 0.9.78
4
4
  Summary: Milano Agentic City CLI (city): init, dev, conform, and deploy.
5
5
  Project-URL: Homepage, https://github.com/projectnandaitaly/agentic-city
6
6
  Project-URL: Repository, https://github.com/projectnandaitaly/agentic-city
@@ -17,7 +17,7 @@ Classifier: Programming Language :: Python :: 3.12
17
17
  Classifier: Topic :: Software Development :: Libraries
18
18
  Classifier: Typing :: Typed
19
19
  Requires-Python: >=3.12
20
- Requires-Dist: city-sdk>=0.9.76
20
+ Requires-Dist: city-sdk>=0.9.78
21
21
  Requires-Dist: cryptography>=43
22
22
  Requires-Dist: fastapi>=0.115
23
23
  Requires-Dist: httpx>=0.27
@@ -0,0 +1 @@
1
+ 0.9.78
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "city-cli"
3
- version = "0.9.76"
3
+ version = "0.9.78"
4
4
  description = "Milano Agentic City CLI (city): init, dev, conform, and deploy."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -17,7 +17,7 @@ classifiers = [
17
17
  "Typing :: Typed",
18
18
  ]
19
19
  dependencies = [
20
- "city-sdk>=0.9.76",
20
+ "city-sdk>=0.9.78",
21
21
  "cryptography>=43",
22
22
  "fastapi>=0.115",
23
23
  "httpx>=0.27",
@@ -713,20 +713,19 @@ class DeployService:
713
713
  serving = self.runtime.serving(agent_id)
714
714
  scale = self.runtime.scales.get(agent_id)
715
715
  visibility = None if record is None else record.visibility
716
+ # Prefer the live revision; fall back to Index so a replica without the
717
+ # runtime book still reports the published version (not "deployed no · visible").
716
718
  version = None if serving is None else serving.version
719
+ if version is None and record is not None and record.active_version:
720
+ version = record.active_version
717
721
  keyed = self.ring.current_x(agent_id) is not None
718
722
  has_deploy = any(item.agent_id == agent_id for item in self.deployments.values())
719
723
  initialized = keyed or record is not None or has_deploy
720
724
  deployed = visibility == "visible" and version is not None
721
725
  rating_count = 0 if record is None else record.rating_count
722
- messaged = (
723
- agent_id in self.runtime.smoked
724
- or rating_count > 0
725
- or any(
726
- item.agent_id == agent_id and item.outcome == "PASS" and item.status == "promoted"
727
- for item in self.deployments.values()
728
- )
729
- )
726
+ # A visible release always went through conformance, which exchanges
727
+ # messages with city agents — do not depend on per-replica smoked state.
728
+ messaged = deployed or rating_count > 0 or agent_id in self.runtime.smoked
730
729
  body: dict[str, Any] = {
731
730
  "agent_id": agent_id,
732
731
  "visibility": visibility,
city_cli-0.9.76/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.9.76
File without changes
File without changes