mainsequence 9.0.13.dev54__tar.gz → 9.0.14__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 (104) hide show
  1. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/PKG-INFO +1 -1
  2. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/models_user.py +31 -18
  3. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence.egg-info/PKG-INFO +1 -1
  4. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/pyproject.toml +1 -1
  5. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/LICENSE +0 -0
  6. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/README.md +0 -0
  7. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/AGENTS.md +0 -0
  8. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
  9. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
  10. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/mainsequence-inference/SKILL.md +0 -0
  11. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
  12. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md +0 -0
  13. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/maintenance/metatables_transition/SKILL.md +0 -0
  14. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
  15. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
  16. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +0 -0
  17. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/__init__.py +0 -0
  18. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/__main__.py +0 -0
  19. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/_request_identity.py +0 -0
  20. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/bootstrap.py +0 -0
  21. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/__init__.py +0 -0
  22. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/api.py +0 -0
  23. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/browser_auth.py +0 -0
  24. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/cli.py +0 -0
  25. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/code_repository_status.py +0 -0
  26. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/config.py +0 -0
  27. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/docker_utils.py +0 -0
  28. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/doctor.py +0 -0
  29. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/local_ops.py +0 -0
  30. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/model_filters.py +0 -0
  31. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/pydantic_cli.py +0 -0
  32. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/sdk_utils.py +0 -0
  33. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/ssh_utils.py +0 -0
  34. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/cli/ui.py +0 -0
  35. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/__init__.py +0 -0
  36. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/_transport.py +0 -0
  37. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/agent_runtime_models.py +0 -0
  38. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/base.py +0 -0
  39. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/client.py +0 -0
  40. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/compute_validation.py +0 -0
  41. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/exceptions.py +0 -0
  42. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/github_issues.py +0 -0
  43. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/inference.py +0 -0
  44. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/models_foundry.py +0 -0
  45. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/models_helpers.py +0 -0
  46. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/observability.py +0 -0
  47. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/utils.py +0 -0
  48. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/client/value_sets.py +0 -0
  49. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/code_repository_context.py +0 -0
  50. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/code_repository_skills.py +0 -0
  51. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/defaults.py +0 -0
  52. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/instrumentation/__init__.py +0 -0
  53. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/instrumentation/utils.py +0 -0
  54. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/logconf.py +0 -0
  55. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/repository_identity_security.py +0 -0
  56. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/runtime_credential_exchange.py +0 -0
  57. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/runtime_flags.py +0 -0
  58. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/scaffold_skills.py +0 -0
  59. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/server/__init__.py +0 -0
  60. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/server/caller_assertions.py +0 -0
  61. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence/server/fastapi.py +0 -0
  62. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence.egg-info/SOURCES.txt +0 -0
  63. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence.egg-info/dependency_links.txt +0 -0
  64. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence.egg-info/entry_points.txt +0 -0
  65. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence.egg-info/requires.txt +0 -0
  66. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/mainsequence.egg-info/top_level.txt +0 -0
  67. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/setup.cfg +0 -0
  68. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_auth_bootstrap.py +0 -0
  69. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_auth_precedence.py +0 -0
  70. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_caller_assertions.py +0 -0
  71. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_canonical_api_route_contract.py +0 -0
  72. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_cli_auth_contract.py +0 -0
  73. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_cli_browser_auth.py +0 -0
  74. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_cli_secure_storage.py +0 -0
  75. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_client.py +0 -0
  76. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_code_repository_branch_contract.py +0 -0
  77. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_code_repository_documentation_contract.py +0 -0
  78. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_code_repository_runtime_context.py +0 -0
  79. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_code_repository_skills.py +0 -0
  80. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_credential_repr.py +0 -0
  81. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_dependency_extras.py +0 -0
  82. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_dev_release_version.py +0 -0
  83. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_environment_resource_context.py +0 -0
  84. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_environment_response_contracts.py +0 -0
  85. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_fastapi_request_identity.py +0 -0
  86. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_github_issues_client.py +0 -0
  87. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_http_retry_budget.py +0 -0
  88. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_independent_context.py +0 -0
  89. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_inference_client.py +0 -0
  90. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_instrumentation.py +0 -0
  91. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_job_client.py +0 -0
  92. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_local_ops.py +0 -0
  93. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_logconf.py +0 -0
  94. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_models_user_request_bound_auth.py +0 -0
  95. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_notification_uid_contract.py +0 -0
  96. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_observability_client.py +0 -0
  97. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_runtime_credential_exchange.py +0 -0
  98. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_scaffold_skills.py +0 -0
  99. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_secret_client_model.py +0 -0
  100. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_source_ownership.py +0 -0
  101. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_ssh_utils.py +0 -0
  102. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_tolerant_response_reading.py +0 -0
  103. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_tolerant_value_sets.py +0 -0
  104. {mainsequence-9.0.13.dev54 → mainsequence-9.0.14}/tests/test_user_application_facts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 9.0.13.dev54
3
+ Version: 9.0.14
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -198,36 +198,48 @@ class Group(BasePydanticModel):
198
198
 
199
199
 
200
200
  class UserSummary(BasePydanticModel):
201
+ """A person or workload identity in a team or sharing response.
202
+
203
+ Personal fields are ``None`` for workload identities or when not supplied.
204
+ Team responses carry ``member_kind`` to distinguish people from workloads.
205
+ """
206
+
201
207
  uid: str | None = Field(
202
208
  None,
203
209
  title="User UID",
204
210
  description="Stable public unique identifier of the user.",
205
211
  examples=["8f5d6b54-2f5e-4a8b-bb10-0b17f3f4c123"],
206
212
  )
207
- first_name: str = Field(
208
- ...,
213
+ first_name: str | None = Field(
214
+ None,
209
215
  title="First Name",
210
- description="User's given name.",
216
+ description="User's given name; None for workloads or when not supplied.",
211
217
  examples=["Jose"],
212
218
  )
213
- last_name: str = Field(
214
- ...,
219
+ last_name: str | None = Field(
220
+ None,
215
221
  title="Last Name",
216
- description="User's family name.",
222
+ description="User's family name; None for workloads or when not supplied.",
217
223
  examples=["Ambrosino"],
218
224
  )
219
- username: str = Field(
220
- ...,
225
+ username: str | None = Field(
226
+ None,
221
227
  title="Username",
222
- description="Unique username used to identify the user in the platform.",
228
+ description="Platform username; None for workloads or when not supplied.",
223
229
  examples=["jose@main-sequence.io"],
224
230
  )
225
- email: str = Field(
226
- ...,
231
+ email: str | None = Field(
232
+ None,
227
233
  title="Email",
228
- description="Primary email address of the user.",
234
+ description="Primary email address; None for workloads or when not supplied.",
229
235
  examples=["jose@main-sequence.io"],
230
236
  )
237
+ member_kind: OpenValueSet[Literal["person", "workload"]] | None = Field(
238
+ None,
239
+ title="Member Kind",
240
+ description="Kind of identity in a team response; None when not supplied.",
241
+ examples=["workload"],
242
+ )
231
243
  phone_number: str | None = Field(
232
244
  None,
233
245
  title="Phone Number",
@@ -983,10 +995,11 @@ class User(_CallerDirectoryReadMixin, UserApiBaseObjectOrm, BasePydanticModel):
983
995
  ``User.filter(identity_type="workload")``. Its row carries ``uid``,
984
996
  ``identity_type`` (``"workload"``), ``is_active`` and the UID of its
985
997
  workload in ``job_uid``, ``resource_release_uid`` or ``agent_uid``, without
986
- a username, email, join date or person's name. A listed row of a workload
987
- the caller can view also carries ``workload_name``, the name of that Job,
988
- release or Agent; a lookup by UID does not. Fields the row does not carry
989
- are ``None``, or empty for lists.
998
+ a username, email, join date or person's name. Both listed rows and UID
999
+ lookups carry ``workload_name``, the name of that Job, release or Agent,
1000
+ when the caller can view the workload. It is ``None`` for a workload the
1001
+ caller cannot view, for a person, or when the response does not carry it.
1002
+ Other fields the row does not carry are ``None``, or empty for lists.
990
1003
 
991
1004
  The reverse direction is ``workload_user_uid`` on ``Job``,
992
1005
  ``ResourceRelease`` and ``Agent``: the UID of the User that workload runs
@@ -1066,8 +1079,8 @@ class User(_CallerDirectoryReadMixin, UserApiBaseObjectOrm, BasePydanticModel):
1066
1079
  title="Workload Name",
1067
1080
  description=(
1068
1081
  "Name of the Job, release or Agent a workload identity belongs to, on a "
1069
- "listed row of a workload the caller can view. None otherwise, including "
1070
- "on a lookup by UID and on a person."
1082
+ "listed row or UID lookup when the caller can view the workload. None "
1083
+ "for a workload the caller cannot view, for a person, or when not supplied."
1071
1084
  ),
1072
1085
  examples=["nightly-prices"],
1073
1086
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 9.0.13.dev54
3
+ Version: 9.0.14
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence"
7
- version = "9.0.13.dev54"
7
+ version = "9.0.14"
8
8
  description = "Main Sequence SDK"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"