ms-tau-sdk 1.2.9.dev17__tar.gz → 1.2.10.dev18__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.
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/CHANGELOG.md +8 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/PKG-INFO +1 -1
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/pyproject.toml +1 -1
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/api/a2a.py +48 -22
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/.gitignore +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/README.md +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/app.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/cli.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/config.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/env_file.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/logs.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/proxy.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/state.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/static/BULMA-LICENSE.txt +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/static/app.js +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/static/board.css +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/static/bulma.min.css +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/static/index.html +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/agent_skills/tau_a2a_runtime_adapter/SKILL.md +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/agent_skills/tau_local_development/SKILL.md +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/agent_skills/tau_project_customization/SKILL.md +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/agent_skills/tau_repository_integration/SKILL.md +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/api/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/api/chat.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/api/dependencies.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/api/health.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/api/inspection.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/api/models.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/api/sessions.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/app.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/application.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/backend/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/backend/auth.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/backend/client.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/backend/local.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/backend/mcp.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/backend/models.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/backend/routes.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/cli.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/errors.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/logging.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/protocols/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/protocols/a2a_failure.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/protocols/a2a_message.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/protocols/a2a_roles.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/protocols/assistant_ui.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/protocols/strict_json.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/providers/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/providers/definitions.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/providers/factory.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/resources/SYSTEM.md +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/resources/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/resources/loader.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/resources/prompts/review-code-repository.md +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/deployment_health.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/events.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/extensions.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/failures.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/manager.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/observability.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/provenance.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/session.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/snapshots.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/task_context.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/sessions/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/sessions/storage.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/settings.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/skills.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/tools/__init__.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/tools/mainsequence_mcp.py +0 -0
- {ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/tools/task_control.py +0 -0
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.2.10 — 2026-09-26
|
|
4
|
+
|
|
5
|
+
- Restored the managed A2A Task creation and continuation adapter removed before the 1.2.9
|
|
6
|
+
release. It sends Django's required snake_case `message_id` and `reference_task_ids` fields
|
|
7
|
+
and omits empty `extensions`, which the backend defaults. Local Task messages retain the
|
|
8
|
+
complete A2A binding shape. A nonempty extension URI list on a managed Task returns HTTP 400
|
|
9
|
+
until the backend can persist it. A clean-wheel check now guards this contract. Fixes #42.
|
|
10
|
+
|
|
3
11
|
## 1.2.9 — 2026-09-26
|
|
4
12
|
|
|
5
13
|
- Added bounded A2A Task Message history with hard-cut A2A v1 role projection, canonical durable
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: ms-tau-sdk
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.10.dev18
|
|
4
4
|
Summary: Workspace-bound Tau application primitives for Main Sequence projects
|
|
5
5
|
Project-URL: Changelog, https://github.com/mainsequence-sdk/ms-tau-sdk/blob/development/CHANGELOG.md
|
|
6
6
|
Project-URL: Documentation, https://github.com/mainsequence-sdk/ms-tau-sdk/tree/development/docs
|
|
@@ -783,15 +783,53 @@ async def _collect_validated_turn(
|
|
|
783
783
|
raise AssertionError("strict JSON repair loop did not terminate")
|
|
784
784
|
|
|
785
785
|
|
|
786
|
+
def _task_message_for_backend(
|
|
787
|
+
message: dict[str, Any],
|
|
788
|
+
*,
|
|
789
|
+
context_id: str,
|
|
790
|
+
task_id: str,
|
|
791
|
+
local_mode: bool,
|
|
792
|
+
) -> dict[str, Any]:
|
|
793
|
+
extensions = message.get("extensions", [])
|
|
794
|
+
if local_mode:
|
|
795
|
+
return {
|
|
796
|
+
"messageId": message["messageId"],
|
|
797
|
+
"contextId": context_id,
|
|
798
|
+
"taskId": task_id,
|
|
799
|
+
"role": A2AMessageDirection.REQUESTER.value,
|
|
800
|
+
"parts": message["parts"],
|
|
801
|
+
"metadata": message.get("metadata", {}),
|
|
802
|
+
"extensions": extensions,
|
|
803
|
+
"referenceTaskIds": message.get("referenceTaskIds", []),
|
|
804
|
+
}
|
|
805
|
+
if extensions:
|
|
806
|
+
raise HTTPException(
|
|
807
|
+
status_code=400,
|
|
808
|
+
detail="message.extensions is not supported for managed Tasks",
|
|
809
|
+
)
|
|
810
|
+
# Django's AgentTaskInitialMessageSerializer requires message_id and defaults
|
|
811
|
+
# optional extensions. Omission works with both its dictionary and URI-list forms.
|
|
812
|
+
return {
|
|
813
|
+
"message_id": message["messageId"],
|
|
814
|
+
"parts": message["parts"],
|
|
815
|
+
"metadata": message.get("metadata", {}),
|
|
816
|
+
"reference_task_ids": message.get("referenceTaskIds", []),
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
|
|
786
820
|
async def _create_backend_task(
|
|
787
821
|
client: MainSequenceClient,
|
|
788
822
|
*,
|
|
789
823
|
message: dict[str, Any],
|
|
790
824
|
task_id: str,
|
|
825
|
+
local_mode: bool,
|
|
791
826
|
output_contract: StrictJsonContract | None = None,
|
|
792
827
|
provenance: TurnProvenance | None = None,
|
|
793
828
|
) -> AgentTaskCreateResult:
|
|
794
829
|
context_id = str(message["contextId"])
|
|
830
|
+
initial_message = _task_message_for_backend(
|
|
831
|
+
message, context_id=context_id, task_id=task_id, local_mode=local_mode
|
|
832
|
+
)
|
|
795
833
|
session = await client.get_session(context_id)
|
|
796
834
|
if not session.agent_uid:
|
|
797
835
|
raise HTTPException(status_code=409, detail="Session has no bound agent")
|
|
@@ -801,16 +839,7 @@ async def _create_backend_task(
|
|
|
801
839
|
"agent_session_uid": context_id,
|
|
802
840
|
"context_id": context_id,
|
|
803
841
|
"task_id": task_id,
|
|
804
|
-
"initial_message":
|
|
805
|
-
"messageId": message["messageId"],
|
|
806
|
-
"contextId": context_id,
|
|
807
|
-
"taskId": task_id,
|
|
808
|
-
"role": A2AMessageDirection.REQUESTER.value,
|
|
809
|
-
"parts": message["parts"],
|
|
810
|
-
"metadata": message.get("metadata", {}),
|
|
811
|
-
"extensions": message.get("extensions", []),
|
|
812
|
-
"referenceTaskIds": message.get("referenceTaskIds", []),
|
|
813
|
-
},
|
|
842
|
+
"initial_message": initial_message,
|
|
814
843
|
"metadata": {
|
|
815
844
|
"transport": "a2a",
|
|
816
845
|
"execution": {
|
|
@@ -2205,19 +2234,13 @@ async def message_send(
|
|
|
2205
2234
|
detail="A Task continuation requires configuration.responseKind 'task'",
|
|
2206
2235
|
)
|
|
2207
2236
|
existing_task = await client.get_task_by_protocol_id(continuation_task_id)
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
"taskId": existing_task.task_id,
|
|
2214
|
-
"role": A2AMessageDirection.REQUESTER.value,
|
|
2215
|
-
"parts": message["parts"],
|
|
2216
|
-
"metadata": message.get("metadata", {}),
|
|
2217
|
-
"extensions": message.get("extensions", []),
|
|
2218
|
-
"referenceTaskIds": message.get("referenceTaskIds", []),
|
|
2219
|
-
},
|
|
2237
|
+
continued_message = _task_message_for_backend(
|
|
2238
|
+
message,
|
|
2239
|
+
context_id=existing_task.context_id,
|
|
2240
|
+
task_id=existing_task.task_id,
|
|
2241
|
+
local_mode=config.local_mode,
|
|
2220
2242
|
)
|
|
2243
|
+
task = await client.continue_task(existing_task.uid, continued_message)
|
|
2221
2244
|
if config.local_mode:
|
|
2222
2245
|
task = await _persist_local_recovery_contract(
|
|
2223
2246
|
client,
|
|
@@ -2251,6 +2274,7 @@ async def message_send(
|
|
|
2251
2274
|
client,
|
|
2252
2275
|
message=message,
|
|
2253
2276
|
task_id=_task_id(body),
|
|
2277
|
+
local_mode=config.local_mode,
|
|
2254
2278
|
output_contract=output_contract,
|
|
2255
2279
|
provenance=provenance,
|
|
2256
2280
|
)
|
|
@@ -2348,6 +2372,7 @@ async def message_stream(
|
|
|
2348
2372
|
client,
|
|
2349
2373
|
message=message,
|
|
2350
2374
|
task_id=_task_id(body),
|
|
2375
|
+
local_mode=config.local_mode,
|
|
2351
2376
|
output_contract=output_contract,
|
|
2352
2377
|
provenance=provenance,
|
|
2353
2378
|
)
|
|
@@ -2571,6 +2596,7 @@ async def json_rpc(
|
|
|
2571
2596
|
client,
|
|
2572
2597
|
message=message,
|
|
2573
2598
|
task_id=_task_id(params),
|
|
2599
|
+
local_mode=config.local_mode,
|
|
2574
2600
|
output_contract=output_contract,
|
|
2575
2601
|
provenance=provenance,
|
|
2576
2602
|
)
|
|
File without changes
|
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/__init__.py
RENAMED
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/app.py
RENAMED
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/cli.py
RENAMED
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/config.py
RENAMED
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/env_file.py
RENAMED
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/logs.py
RENAMED
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/proxy.py
RENAMED
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/state.py
RENAMED
|
File without changes
|
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/packages/tau-board/src/ms_tau_board/static/app.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ms_tau_sdk-1.2.9.dev17 → ms_tau_sdk-1.2.10.dev18}/src/ms_tau_sdk/runtime/deployment_health.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|