|
25 | 25 | from smallestai.atoms.helpers import as_page |
26 | 26 |
|
27 | 27 |
|
| 28 | +def _id_of(obj) -> str: |
| 29 | + """Resource id — agents expose `_id`, versions expose `id`.""" |
| 30 | + return getattr(obj, "id", None) or getattr(obj, "_id", None) |
| 31 | + |
| 32 | + |
28 | 33 | def make_client() -> SmallestAI: |
29 | 34 | api_key = os.environ["SMALLEST_API_KEY"] |
30 | 35 | base = os.environ.get("SMALLEST_BASE_URL") |
@@ -73,25 +78,25 @@ def main() -> None: |
73 | 78 | print("5. draft a new version from the active one") |
74 | 79 | versions = as_page(c.atoms.agent_versioning_versions.list_published_versions(id=agent_id)) |
75 | 80 | active = next((v for v in versions.items if getattr(v, "is_active", False)), None) or versions.items[0] |
76 | | - src_version_id = getattr(active, "_id", None) or getattr(active, "id", None) |
| 81 | + src_version_id = _id_of(active) |
77 | 82 | print(" source version:", src_version_id) |
78 | 83 | draft = c.atoms.agent_versioning_drafts.create_a_draft(id=agent_id, source_version_id=src_version_id) |
79 | | - draft_id = getattr(draft.data, "draft_id", None) or getattr(draft.data, "_id", None) |
| 84 | + draft_id = getattr(draft.data, "draft_id", None) or _id_of(draft.data) |
80 | 85 | print(" draft id:", draft_id) |
81 | 86 |
|
82 | 87 | print("6. publish the draft with activate=True (go live)") |
83 | 88 | published = c.atoms.agent_versioning_drafts.publish_a_draft( |
84 | 89 | id=agent_id, draft_id=draft_id, label="v2-live", activate=True |
85 | 90 | ) |
86 | | - new_version_id = getattr(published.data, "_id", None) |
| 91 | + new_version_id = _id_of(published.data) |
87 | 92 | print(" published version:", new_version_id, "— waiting for it to go live...") |
88 | 93 |
|
89 | 94 | print("7. poll until the new version is active") |
90 | 95 | live = False |
91 | 96 | for i in range(10): |
92 | 97 | time.sleep(4) |
93 | 98 | vs = as_page(c.atoms.agent_versioning_versions.list_published_versions(id=agent_id)) |
94 | | - v = next((x for x in vs.items if getattr(x, "_id", None) == new_version_id), None) |
| 99 | + v = next((x for x in vs.items if _id_of(x) == new_version_id), None) |
95 | 100 | sc = getattr(v, "security_check", None) |
96 | 101 | status = getattr(sc, "status", None) if sc else None |
97 | 102 | is_active = getattr(v, "is_active", None) if v else None |
|
0 commit comments