mainsequence 6.0.46__tar.gz → 6.0.48__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.
- {mainsequence-6.0.46 → mainsequence-6.0.48}/PKG-INFO +1 -1
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +24 -2
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/api.py +208 -10
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/cli.py +323 -21
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/__init__.py +1 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/agent_runtime_models.py +318 -16
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/base.py +5 -13
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/metatables/core.py +15 -19
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/models_foundry.py +10 -10
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/models_helpers.py +43 -33
- mainsequence-6.0.48/mainsequence/client/observability.py +283 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/project_context.py +7 -7
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence.egg-info/PKG-INFO +1 -1
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence.egg-info/SOURCES.txt +2 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/pyproject.toml +1 -1
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_cli.py +100 -31
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_cli_migrations.py +1 -1
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_environment_resource_context.py +21 -21
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_environment_response_contracts.py +17 -2
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_filter_normalization.py +178 -53
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_meta_tables_client_models.py +16 -16
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_meta_tables_sqlalchemy_contracts.py +1 -1
- mainsequence-6.0.48/tests/test_observability_client.py +221 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_project_branch_contract.py +2 -2
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_project_runtime_context.py +7 -7
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_scheduler_client_model.py +7 -7
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_secret_client_model.py +4 -4
- {mainsequence-6.0.46 → mainsequence-6.0.48}/LICENSE +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/README.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/AGENTS.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/maintenance/project-maintenance/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/agent_scaffold/skills/sdk_project_execution/SKILL.md +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/__main__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/bootstrap.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/config.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/project_status.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/cli/ui.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/client.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/models_user.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/client/utils.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/defaults.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/logconf.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/data_nodes/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/data_nodes/build_operations.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/data_nodes/data_nodes.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/data_nodes/models.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/data_nodes/namespacing.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/data_nodes/persist_managers.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/data_nodes/run_operations.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/data_nodes/utils.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/alembic.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/env.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/provider.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/registry.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/project_skills.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/setup.cfg +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_auth_precedence.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_build_operations_hashing.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_canonical_api_route_contract.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_client.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_data_access_mixin_dimension_audit.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_data_node_storage_dimension_queries.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_data_node_update_flow.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_dependency_extras.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_instrumentation.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_local_ops.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_logconf.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_notification_uid_contract.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_project_batch_jobs_from_file.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_project_skills.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_run_configuration.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_scaffold_skills.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_schema_names.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_ssh_utils.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_update_statistics.py +0 -0
- {mainsequence-6.0.46 → mainsequence-6.0.48}/tests/test_update_uid_guards.py +0 -0
|
@@ -63,8 +63,9 @@ This skill must not claim ownership of:
|
|
|
63
63
|
1. `docs/tutorial/scheduling_jobs.md`
|
|
64
64
|
2. `docs/knowledge/infrastructure/scheduling_jobs.md`
|
|
65
65
|
3. `docs/knowledge/infrastructure/artifacts.md`
|
|
66
|
-
4. `docs/
|
|
67
|
-
5. `docs/
|
|
66
|
+
4. `docs/knowledge/infrastructure/owner_observability.md` when inspecting logs or resource usage
|
|
67
|
+
5. `docs/tutorial/dashboards/streamlit/streamlit_integration_2.md` when deploying or verifying a Streamlit dashboard
|
|
68
|
+
6. `docs/knowledge/dashboards/streamlit/index.md` when deployment metadata or SDK/dashboard boundary questions matter
|
|
68
69
|
|
|
69
70
|
If the task touches deployed FastAPI APIs, also read the relevant API skill/docs before changing the operational workflow.
|
|
70
71
|
|
|
@@ -184,6 +185,27 @@ Verify:
|
|
|
184
185
|
- the run was triggered manually when immediate validation matters, or has already been triggered by the scheduler
|
|
185
186
|
- the logs and run status match expectations
|
|
186
187
|
|
|
188
|
+
Use owner-scoped observability rather than infrastructure discovery:
|
|
189
|
+
|
|
190
|
+
- `JobRun.get_logs()` and `JobRun.get_resource_usage()`
|
|
191
|
+
- `ResourceRelease.get_logs()` and `ResourceRelease.get_resource_usage()`
|
|
192
|
+
- `Agent.get_logs()` and `Agent.get_resource_usage()`
|
|
193
|
+
- `AgentSession.get_logs()` for one fixed session
|
|
194
|
+
- `mainsequence project jobs runs logs <JOB_RUN_UID>`
|
|
195
|
+
- `mainsequence project jobs runs resource-usage <JOB_RUN_UID>`
|
|
196
|
+
- `mainsequence project project_resource logs <RESOURCE_RELEASE_UID>`
|
|
197
|
+
- `mainsequence project project_resource resource-usage <RESOURCE_RELEASE_UID>`
|
|
198
|
+
- `mainsequence agent logs <AGENT_UID>`
|
|
199
|
+
- `mainsequence agent resource-usage <AGENT_UID>`
|
|
200
|
+
- `mainsequence agent session logs <AGENT_SESSION_UID>`
|
|
201
|
+
|
|
202
|
+
Do not ask the user for an Environment UID for these owner operations. The SDK
|
|
203
|
+
preserves the backend-owned capability scope. Do not discover Knative services,
|
|
204
|
+
revisions, pods, namespaces, or provider resources to retrieve telemetry.
|
|
205
|
+
|
|
206
|
+
DeploymentRun build and orchestration logs remain a separate product surface;
|
|
207
|
+
do not parse them as application-runtime `OwnerLogPage` rows.
|
|
208
|
+
|
|
187
209
|
### 4. Workflow application is backend-owned
|
|
188
210
|
|
|
189
211
|
Repository events apply valid workflow files independently. An invalid file is
|
|
@@ -1159,7 +1159,7 @@ def delete_organization_team(
|
|
|
1159
1159
|
|
|
1160
1160
|
def list_agents(
|
|
1161
1161
|
*,
|
|
1162
|
-
|
|
1162
|
+
organization_environment_uid: str,
|
|
1163
1163
|
timeout: int | None = None,
|
|
1164
1164
|
filters: dict[str, Any] | None = None,
|
|
1165
1165
|
) -> list[dict[str, Any]]:
|
|
@@ -1168,7 +1168,7 @@ def list_agents(
|
|
|
1168
1168
|
"""
|
|
1169
1169
|
try:
|
|
1170
1170
|
read_params = dict(filters or {})
|
|
1171
|
-
read_params["
|
|
1171
|
+
read_params["organization_environment_uid"] = organization_environment_uid
|
|
1172
1172
|
payload = _run_sdk_model_operation(
|
|
1173
1173
|
module_name="mainsequence.client.agent_runtime_models",
|
|
1174
1174
|
class_name="Agent",
|
|
@@ -1205,10 +1205,93 @@ def get_agent(
|
|
|
1205
1205
|
raise ApiError(f"Agent fetch failed: {e}") from e
|
|
1206
1206
|
|
|
1207
1207
|
|
|
1208
|
+
def _get_owner_observability(
|
|
1209
|
+
*,
|
|
1210
|
+
module_name: str,
|
|
1211
|
+
class_name: str,
|
|
1212
|
+
owner_uid: str,
|
|
1213
|
+
action_name: str,
|
|
1214
|
+
action_kwargs: dict[str, Any],
|
|
1215
|
+
timeout: int | None,
|
|
1216
|
+
) -> dict[str, Any]:
|
|
1217
|
+
"""Run one SDK owner-observability action through the authenticated CLI client."""
|
|
1218
|
+
|
|
1219
|
+
try:
|
|
1220
|
+
|
|
1221
|
+
def _run(ClientModel):
|
|
1222
|
+
owner = ClientModel.get(pk=str(owner_uid), timeout=timeout)
|
|
1223
|
+
result = getattr(owner, action_name)(timeout=timeout, **action_kwargs)
|
|
1224
|
+
return _sdk_object_to_dict(result)
|
|
1225
|
+
|
|
1226
|
+
return _run_sdk_model_operation(
|
|
1227
|
+
module_name=module_name,
|
|
1228
|
+
class_name=class_name,
|
|
1229
|
+
operation=_run,
|
|
1230
|
+
)
|
|
1231
|
+
except Exception as e:
|
|
1232
|
+
err_name = type(e).__name__
|
|
1233
|
+
if err_name == "NotFoundError":
|
|
1234
|
+
raise ApiError(f"{class_name} not found: {owner_uid}") from e
|
|
1235
|
+
if isinstance(e, (ApiError, NotLoggedIn)):
|
|
1236
|
+
raise
|
|
1237
|
+
raise ApiError(f"{class_name} {action_name} failed: {e}") from e
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
def get_agent_logs(
|
|
1241
|
+
agent_uid: str,
|
|
1242
|
+
*,
|
|
1243
|
+
start: int | float | None = None,
|
|
1244
|
+
end: int | float | None = None,
|
|
1245
|
+
cursor: str | None = None,
|
|
1246
|
+
limit: int | None = None,
|
|
1247
|
+
severity: str | None = None,
|
|
1248
|
+
request_id: str | None = None,
|
|
1249
|
+
event: str | None = None,
|
|
1250
|
+
outcome: str | None = None,
|
|
1251
|
+
agent_session_uid: str | None = None,
|
|
1252
|
+
timeout: int | None = None,
|
|
1253
|
+
) -> dict[str, Any]:
|
|
1254
|
+
return _get_owner_observability(
|
|
1255
|
+
module_name="mainsequence.client.agent_runtime_models",
|
|
1256
|
+
class_name="Agent",
|
|
1257
|
+
owner_uid=agent_uid,
|
|
1258
|
+
action_name="get_logs",
|
|
1259
|
+
action_kwargs={
|
|
1260
|
+
"start": start,
|
|
1261
|
+
"end": end,
|
|
1262
|
+
"cursor": cursor,
|
|
1263
|
+
"limit": limit,
|
|
1264
|
+
"severity": severity,
|
|
1265
|
+
"request_id": request_id,
|
|
1266
|
+
"event": event,
|
|
1267
|
+
"outcome": outcome,
|
|
1268
|
+
"agent_session_uid": agent_session_uid,
|
|
1269
|
+
},
|
|
1270
|
+
timeout=timeout,
|
|
1271
|
+
)
|
|
1272
|
+
|
|
1273
|
+
|
|
1274
|
+
def get_agent_resource_usage(
|
|
1275
|
+
agent_uid: str,
|
|
1276
|
+
*,
|
|
1277
|
+
start: int | float | None = None,
|
|
1278
|
+
end: int | float | None = None,
|
|
1279
|
+
timeout: int | None = None,
|
|
1280
|
+
) -> dict[str, Any]:
|
|
1281
|
+
return _get_owner_observability(
|
|
1282
|
+
module_name="mainsequence.client.agent_runtime_models",
|
|
1283
|
+
class_name="Agent",
|
|
1284
|
+
owner_uid=agent_uid,
|
|
1285
|
+
action_name="get_resource_usage",
|
|
1286
|
+
action_kwargs={"start": start, "end": end},
|
|
1287
|
+
timeout=timeout,
|
|
1288
|
+
)
|
|
1289
|
+
|
|
1290
|
+
|
|
1208
1291
|
def semantic_search_agents(
|
|
1209
1292
|
q: str,
|
|
1210
1293
|
*,
|
|
1211
|
-
|
|
1294
|
+
organization_environment_uid: str,
|
|
1212
1295
|
limit: int = 20,
|
|
1213
1296
|
timeout: int | None = None,
|
|
1214
1297
|
) -> list[dict[str, Any]]:
|
|
@@ -1221,7 +1304,7 @@ def semantic_search_agents(
|
|
|
1221
1304
|
class_name="Agent",
|
|
1222
1305
|
operation=lambda ClientAgent: ClientAgent.semantic_search(
|
|
1223
1306
|
q,
|
|
1224
|
-
|
|
1307
|
+
organization_environment_uid=organization_environment_uid,
|
|
1225
1308
|
limit=limit,
|
|
1226
1309
|
timeout=timeout,
|
|
1227
1310
|
),
|
|
@@ -1409,6 +1492,38 @@ def get_agent_session(
|
|
|
1409
1492
|
raise ApiError(f"Agent session fetch failed: {e}") from e
|
|
1410
1493
|
|
|
1411
1494
|
|
|
1495
|
+
def get_agent_session_logs(
|
|
1496
|
+
agent_session_uid: str,
|
|
1497
|
+
*,
|
|
1498
|
+
start: int | float | None = None,
|
|
1499
|
+
end: int | float | None = None,
|
|
1500
|
+
cursor: str | None = None,
|
|
1501
|
+
limit: int | None = None,
|
|
1502
|
+
severity: str | None = None,
|
|
1503
|
+
request_id: str | None = None,
|
|
1504
|
+
event: str | None = None,
|
|
1505
|
+
outcome: str | None = None,
|
|
1506
|
+
timeout: int | None = None,
|
|
1507
|
+
) -> dict[str, Any]:
|
|
1508
|
+
return _get_owner_observability(
|
|
1509
|
+
module_name="mainsequence.client.agent_runtime_models",
|
|
1510
|
+
class_name="AgentSession",
|
|
1511
|
+
owner_uid=agent_session_uid,
|
|
1512
|
+
action_name="get_logs",
|
|
1513
|
+
action_kwargs={
|
|
1514
|
+
"start": start,
|
|
1515
|
+
"end": end,
|
|
1516
|
+
"cursor": cursor,
|
|
1517
|
+
"limit": limit,
|
|
1518
|
+
"severity": severity,
|
|
1519
|
+
"request_id": request_id,
|
|
1520
|
+
"event": event,
|
|
1521
|
+
"outcome": outcome,
|
|
1522
|
+
},
|
|
1523
|
+
timeout=timeout,
|
|
1524
|
+
)
|
|
1525
|
+
|
|
1526
|
+
|
|
1412
1527
|
def send_agent_session_a2a_message(
|
|
1413
1528
|
agent_session_uid: str,
|
|
1414
1529
|
*,
|
|
@@ -2406,6 +2521,55 @@ def get_resource_release(
|
|
|
2406
2521
|
raise ApiError(f"Resource release fetch failed: {e}") from e
|
|
2407
2522
|
|
|
2408
2523
|
|
|
2524
|
+
def get_resource_release_logs(
|
|
2525
|
+
release_uid: str,
|
|
2526
|
+
*,
|
|
2527
|
+
start: int | float | None = None,
|
|
2528
|
+
end: int | float | None = None,
|
|
2529
|
+
cursor: str | None = None,
|
|
2530
|
+
limit: int | None = None,
|
|
2531
|
+
severity: str | None = None,
|
|
2532
|
+
request_id: str | None = None,
|
|
2533
|
+
event: str | None = None,
|
|
2534
|
+
outcome: str | None = None,
|
|
2535
|
+
timeout: int | None = None,
|
|
2536
|
+
) -> dict[str, Any]:
|
|
2537
|
+
return _get_owner_observability(
|
|
2538
|
+
module_name="mainsequence.client.models_helpers",
|
|
2539
|
+
class_name="ResourceRelease",
|
|
2540
|
+
owner_uid=release_uid,
|
|
2541
|
+
action_name="get_logs",
|
|
2542
|
+
action_kwargs={
|
|
2543
|
+
"start": start,
|
|
2544
|
+
"end": end,
|
|
2545
|
+
"cursor": cursor,
|
|
2546
|
+
"limit": limit,
|
|
2547
|
+
"severity": severity,
|
|
2548
|
+
"request_id": request_id,
|
|
2549
|
+
"event": event,
|
|
2550
|
+
"outcome": outcome,
|
|
2551
|
+
},
|
|
2552
|
+
timeout=timeout,
|
|
2553
|
+
)
|
|
2554
|
+
|
|
2555
|
+
|
|
2556
|
+
def get_resource_release_resource_usage(
|
|
2557
|
+
release_uid: str,
|
|
2558
|
+
*,
|
|
2559
|
+
start: int | float | None = None,
|
|
2560
|
+
end: int | float | None = None,
|
|
2561
|
+
timeout: int | None = None,
|
|
2562
|
+
) -> dict[str, Any]:
|
|
2563
|
+
return _get_owner_observability(
|
|
2564
|
+
module_name="mainsequence.client.models_helpers",
|
|
2565
|
+
class_name="ResourceRelease",
|
|
2566
|
+
owner_uid=release_uid,
|
|
2567
|
+
action_name="get_resource_usage",
|
|
2568
|
+
action_kwargs={"start": start, "end": end},
|
|
2569
|
+
timeout=timeout,
|
|
2570
|
+
)
|
|
2571
|
+
|
|
2572
|
+
|
|
2409
2573
|
def delete_resource_release(
|
|
2410
2574
|
*,
|
|
2411
2575
|
release_uid: str,
|
|
@@ -4733,6 +4897,14 @@ def list_project_job_runs(
|
|
|
4733
4897
|
def get_project_job_run_logs(
|
|
4734
4898
|
job_run_uid: str,
|
|
4735
4899
|
*,
|
|
4900
|
+
start: int | float | None = None,
|
|
4901
|
+
end: int | float | None = None,
|
|
4902
|
+
cursor: str | None = None,
|
|
4903
|
+
limit: int | None = None,
|
|
4904
|
+
severity: str | None = None,
|
|
4905
|
+
request_id: str | None = None,
|
|
4906
|
+
event: str | None = None,
|
|
4907
|
+
outcome: str | None = None,
|
|
4736
4908
|
timeout: int | None = None,
|
|
4737
4909
|
) -> dict[str, Any]:
|
|
4738
4910
|
"""
|
|
@@ -4787,12 +4959,21 @@ def get_project_job_run_logs(
|
|
|
4787
4959
|
ClientJobRun.ROOT_URL = root_url
|
|
4788
4960
|
|
|
4789
4961
|
job_run = ClientJobRun.get(pk=job_run_uid, timeout=timeout)
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4962
|
+
result = job_run.get_logs(
|
|
4963
|
+
start=start,
|
|
4964
|
+
end=end,
|
|
4965
|
+
cursor=cursor,
|
|
4966
|
+
limit=limit,
|
|
4967
|
+
severity=severity,
|
|
4968
|
+
request_id=request_id,
|
|
4969
|
+
event=event,
|
|
4970
|
+
outcome=outcome,
|
|
4971
|
+
timeout=timeout,
|
|
4972
|
+
)
|
|
4973
|
+
payload = _sdk_object_to_dict(result)
|
|
4974
|
+
payload["job_run_uid"] = str(job_run.uid or job_run_uid)
|
|
4975
|
+
payload["status"] = job_run.status
|
|
4976
|
+
return payload
|
|
4796
4977
|
|
|
4797
4978
|
except Exception as e:
|
|
4798
4979
|
err_name = type(e).__name__
|
|
@@ -4829,6 +5010,23 @@ def get_project_job_run_logs(
|
|
|
4829
5010
|
os.environ[k] = v
|
|
4830
5011
|
|
|
4831
5012
|
|
|
5013
|
+
def get_project_job_run_resource_usage(
|
|
5014
|
+
job_run_uid: str,
|
|
5015
|
+
*,
|
|
5016
|
+
start: int | float | None = None,
|
|
5017
|
+
end: int | float | None = None,
|
|
5018
|
+
timeout: int | None = None,
|
|
5019
|
+
) -> dict[str, Any]:
|
|
5020
|
+
return _get_owner_observability(
|
|
5021
|
+
module_name="mainsequence.client.models_helpers",
|
|
5022
|
+
class_name="JobRun",
|
|
5023
|
+
owner_uid=job_run_uid,
|
|
5024
|
+
action_name="get_resource_usage",
|
|
5025
|
+
action_kwargs={"start": start, "end": end},
|
|
5026
|
+
timeout=timeout,
|
|
5027
|
+
)
|
|
5028
|
+
|
|
5029
|
+
|
|
4832
5030
|
def _json_results(r: requests.Response) -> list[dict]:
|
|
4833
5031
|
"""
|
|
4834
5032
|
Return list-like API payloads for DRF list endpoints.
|