ms-tau-sdk 2.0.24.dev76__tar.gz → 2.0.26.dev77__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-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/CHANGELOG.md +14 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/PKG-INFO +6 -2
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/README.md +4 -1
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/pyproject.toml +2 -1
- ms_tau_sdk-2.0.26.dev77/src/ms_tau_sdk/agent_skills/design-agent-icons-and-motion/SKILL.md +42 -0
- ms_tau_sdk-2.0.26.dev77/src/ms_tau_sdk/agent_skills/design-agent-icons-and-motion/agents/openai.yaml +4 -0
- ms_tau_sdk-2.0.26.dev77/src/ms_tau_sdk/agent_skills/design-agent-icons-and-motion/references/metatables-example.html +146 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/agent_skills/tau_project_customization/SKILL.md +6 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/.gitignore +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/app.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/cli.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/config.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/env_file.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/logs.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/proxy.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/state.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/static/BULMA-LICENSE.txt +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/static/app.js +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/static/board.css +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/static/bulma.min.css +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/static/index.html +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/agent_skills/tau_a2a_runtime_adapter/SKILL.md +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/agent_skills/tau_local_development/SKILL.md +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/agent_skills/tau_repository_integration/SKILL.md +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/agent_skills/tau_security_and_access/SKILL.md +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/a2a.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/chat.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/conversations.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/dependencies.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/health.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/inspection.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/local_chat.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/models.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/request_identity.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/api/sessions.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/app.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/application.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/assertions.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/auth.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/client.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/local.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/mcp.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/models.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/routes.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/team_memberships.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/cli.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/errors.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/logging.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/a2a_failure.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/a2a_message.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/a2a_roles.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/assistant_ui.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/chat_history.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/strict_json.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/providers/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/providers/definitions.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/providers/factory.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/providers/tau_compat.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/resources/SYSTEM.md +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/resources/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/resources/loader.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/resources/prompts/review-code-repository.md +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/deployment_health.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/events.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/extensions.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/failures.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/live_turns.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/manager.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/observability.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/provenance.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/requester.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/session.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/snapshots.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/runtime/task_context.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/sessions/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/sessions/storage.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/settings.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/skills.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/tools/__init__.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/tools/mainsequence_mcp.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/tools/mcp_applications.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/tools/mcp_connection.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/tools/skill_read.py +0 -0
- {ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/tools/task_control.py +0 -0
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
- Move the advisory `design-agent-icons-and-motion` skill and its worked MetaTables visual
|
|
6
|
+
example into the SDK-owned skill bundle. `ms-tau skills sync` installs both under
|
|
7
|
+
`.agents/skills/ms_tau_sdk/`; project artwork remains in its owning repository. No runtime
|
|
8
|
+
behavior or rendering changes.
|
|
9
|
+
|
|
10
|
+
## 2.0.25 — 2026-10-22
|
|
11
|
+
|
|
12
|
+
- Require certifi 2026.10.19 or newer so downstream installs receive the corrected
|
|
13
|
+
CA bundle; refresh the matching lock pins.
|
|
14
|
+
- Use Python 3.13.17 and patched pip/uv bootstrapping in CI. This release changes
|
|
15
|
+
dependency security requirements without changing application APIs.
|
|
16
|
+
|
|
3
17
|
## 2.0.24 — 2026-10-22
|
|
4
18
|
|
|
5
19
|
- **Agent deployment and recovery guidance uses the repository workflow.** The runtime
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: ms-tau-sdk
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.26.dev77
|
|
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
|
|
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Requires-Python: >=3.13
|
|
15
15
|
Requires-Dist: anyio>=4.10
|
|
16
|
+
Requires-Dist: certifi>=2026.10.19
|
|
16
17
|
Requires-Dist: concurrent-log-handler<1,>=0.9.28
|
|
17
18
|
Requires-Dist: cryptography>=42
|
|
18
19
|
Requires-Dist: fastapi>=0.116
|
|
@@ -118,7 +119,10 @@ uv run ms-tau skills sync --path .
|
|
|
118
119
|
```
|
|
119
120
|
|
|
120
121
|
This explicit command owns only `.agents/skills/ms_tau_sdk/`; package installation and runtime
|
|
121
|
-
startup never modify the repository automatically.
|
|
122
|
+
startup never modify the repository automatically. The bundle includes
|
|
123
|
+
[`design-agent-icons-and-motion`](src/ms_tau_sdk/agent_skills/design-agent-icons-and-motion/SKILL.md):
|
|
124
|
+
advisory composition and animation guidance with a self-contained MetaTables visual example.
|
|
125
|
+
Each agent's artwork and build files remain in its owning project.
|
|
122
126
|
|
|
123
127
|
The credential pair is exchanged for short-lived Main Sequence access tokens. Do not commit it or
|
|
124
128
|
place it in `.tau` configuration. For an embedded ASGI deployment, construct the same application
|
|
@@ -85,7 +85,10 @@ uv run ms-tau skills sync --path .
|
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
This explicit command owns only `.agents/skills/ms_tau_sdk/`; package installation and runtime
|
|
88
|
-
startup never modify the repository automatically.
|
|
88
|
+
startup never modify the repository automatically. The bundle includes
|
|
89
|
+
[`design-agent-icons-and-motion`](src/ms_tau_sdk/agent_skills/design-agent-icons-and-motion/SKILL.md):
|
|
90
|
+
advisory composition and animation guidance with a self-contained MetaTables visual example.
|
|
91
|
+
Each agent's artwork and build files remain in its owning project.
|
|
89
92
|
|
|
90
93
|
The credential pair is exchanged for short-lived Main Sequence access tokens. Do not commit it or
|
|
91
94
|
place it in `.tau` configuration. For an embedded ASGI deployment, construct the same application
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ms-tau-sdk"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.26.dev77"
|
|
8
8
|
description = "Workspace-bound Tau application primitives for Main Sequence projects"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -16,6 +16,7 @@ classifiers = [
|
|
|
16
16
|
"Programming Language :: Python :: 3.13",
|
|
17
17
|
]
|
|
18
18
|
dependencies = [
|
|
19
|
+
"certifi>=2026.10.19",
|
|
19
20
|
"anyio>=4.10",
|
|
20
21
|
"concurrent-log-handler>=0.9.28,<1",
|
|
21
22
|
"cryptography>=42",
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-agent-icons-and-motion
|
|
3
|
+
description: Offer general composition and motion guidance when designing or reviewing agent icons. Use for visual identity work, not conversation or session implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Icon Composition and Motion
|
|
7
|
+
|
|
8
|
+
These are suggestions. Adapt them to the user's direction, the project's identity and the host.
|
|
9
|
+
|
|
10
|
+
Keep each agent's artwork, animations and build files in its owning project. `ms-tau-sdk`
|
|
11
|
+
distributes general guidance and this worked example; it does not own project or provider assets.
|
|
12
|
+
|
|
13
|
+
## Composition
|
|
14
|
+
|
|
15
|
+
- Start with the project's or provider's actual logo and preserve its recognisable shape.
|
|
16
|
+
- Keep one clear visual focus, balanced spacing and enough empty space for motion.
|
|
17
|
+
- Use consistent proportions, stroke weight and restrained accents to relate a family without
|
|
18
|
+
making its members indistinguishable. Avoid adding detail that disappears at display size.
|
|
19
|
+
- Fit the host's typography, colours and surfaces; check contrast in both themes.
|
|
20
|
+
|
|
21
|
+
## Motion
|
|
22
|
+
|
|
23
|
+
- Consider animation for every agent, with quiet idle motion and distinct activity motion.
|
|
24
|
+
- Keep the identity readable while a supporting element communicates activity.
|
|
25
|
+
- Let motion reflect the agent's purpose and reported state; never imply unreported progress
|
|
26
|
+
or success. Prefer restrained movement and smooth loop seams.
|
|
27
|
+
- Provide a useful still and respect reduced motion.
|
|
28
|
+
|
|
29
|
+
## Worked Example: MetaTables
|
|
30
|
+
|
|
31
|
+
Read or open [the visual walkthrough and editable source](references/metatables-example.html).
|
|
32
|
+
It builds the real logo into three layers, shows four animated states and actual display sizes,
|
|
33
|
+
and includes light/dark and reduced-motion checks. Expand its source section to see the SVG
|
|
34
|
+
composition and CSS that draw those same previews.
|
|
35
|
+
|
|
36
|
+
Follow the walkthrough's adaptation steps: preserve the next project's identity, reserve space
|
|
37
|
+
for activity, and design an accent that reflects its purpose. The example's coordinates and
|
|
38
|
+
row-scanning motif explain one solution; they are not a template every agent must copy.
|
|
39
|
+
|
|
40
|
+
Review at the actual display size, checking recognition, spacing, clipping and both themes.
|
|
41
|
+
Check the target renderer's supported formats, size limits and states before integration. Keep
|
|
42
|
+
this design work within the requested scope; it does not itself publish or replace live icons.
|
ms_tau_sdk-2.0.26.dev77/src/ms_tau_sdk/agent_skills/design-agent-icons-and-motion/agents/openai.yaml
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Agent Icons and Motion"
|
|
3
|
+
short_description: "Optional guidance for agent logos and action motion"
|
|
4
|
+
default_prompt: "Use $design-agent-icons-and-motion to suggest an agent icon family using existing logos and action-specific motion, adapted to the host and the user's preferences."
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>MetaTables — a worked icon composition</title>
|
|
7
|
+
<style id="example-styles">
|
|
8
|
+
:root { color-scheme: dark; --bg:#191919; --surface:#222222; --ink:#eeeae4; --muted:#aaa7a2; --line:#383838; }
|
|
9
|
+
:root[data-theme="light"] { color-scheme:light; --bg:#f7f6f3; --surface:#fff; --ink:#292928; --muted:#65635f; --line:#dedcd7; }
|
|
10
|
+
* { box-sizing:border-box; }
|
|
11
|
+
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
|
|
12
|
+
main { max-width:1080px; margin:auto; padding:36px 28px 48px; }
|
|
13
|
+
header { display:flex; justify-content:space-between; align-items:center; gap:16px; }
|
|
14
|
+
.eyebrow { color:var(--muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
|
|
15
|
+
.controls { display:flex; gap:8px; }
|
|
16
|
+
button, summary { font:inherit; cursor:pointer; }
|
|
17
|
+
button { color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:7px 14px; }
|
|
18
|
+
button:hover { border-color:var(--muted); }
|
|
19
|
+
button:focus-visible, summary:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
|
|
20
|
+
button:disabled { cursor:default; opacity:.65; }
|
|
21
|
+
h1 { font-size:36px; font-weight:550; line-height:1.2; letter-spacing:-.035em; margin:32px 0 10px; }
|
|
22
|
+
h2 { font-size:20px; font-weight:550; margin:30px 0 14px; letter-spacing:-.02em; }
|
|
23
|
+
h3 { font-size:15px; font-weight:550; margin:10px 0 4px; }
|
|
24
|
+
p { margin:0 0 12px; }
|
|
25
|
+
.intro { color:var(--muted); max-width:780px; }
|
|
26
|
+
.build { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
|
|
27
|
+
.card { border:1px solid var(--line); background:var(--surface); border-radius:16px; padding:18px 20px; }
|
|
28
|
+
.step { font:11px ui-monospace,SFMono-Regular,monospace; color:var(--muted); }
|
|
29
|
+
.diagram { display:flex; justify-content:center; align-items:center; height:145px; }
|
|
30
|
+
.diagram svg { width:128px; height:128px; overflow:visible; }
|
|
31
|
+
.caption { color:var(--muted); font-size:13px; }
|
|
32
|
+
code { font-family:ui-monospace,SFMono-Regular,monospace; font-size:.86em; }
|
|
33
|
+
.measure { stroke:currentColor; opacity:.16; fill:none; stroke-width:.35; stroke-dasharray:1 1; }
|
|
34
|
+
.states { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
|
|
35
|
+
.state { padding:16px 18px; }
|
|
36
|
+
.state svg { display:block; width:72px; height:72px; margin:6px 0 12px; }
|
|
37
|
+
.state p { color:var(--muted); font-size:12px; margin:0; }
|
|
38
|
+
.samples { display:flex; align-items:center; gap:26px; padding:18px 0; flex-wrap:wrap; }
|
|
39
|
+
.sample { display:flex; align-items:center; gap:10px; }
|
|
40
|
+
.sample span { font-size:12px; color:var(--muted); }
|
|
41
|
+
.sample svg { display:block; }
|
|
42
|
+
.note { color:var(--muted); font-size:12px; border-top:1px solid var(--line); padding-top:14px; }
|
|
43
|
+
details { border:1px solid var(--line); border-radius:12px; padding:14px 18px; margin-top:18px; }
|
|
44
|
+
summary { font-size:14px; }
|
|
45
|
+
pre { background:var(--surface); border-radius:8px; padding:16px; font-size:11px; line-height:1.65; overflow:auto; max-height:400px; }
|
|
46
|
+
.recipe { padding-left:20px; font-size:13px; }
|
|
47
|
+
.recipe li { padding-left:4px; margin:10px 0; }
|
|
48
|
+
/* Only supporting marks animate. The logo and lower-left signature stay fixed. */
|
|
49
|
+
.icon { color:var(--ink); }
|
|
50
|
+
.signature { fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; }
|
|
51
|
+
.node { fill:currentColor; }
|
|
52
|
+
.pulse { animation:breathe 4.8s ease-in-out infinite; }
|
|
53
|
+
.orbit { transform-origin:35.5px 4.5px; animation:gather 2.4s linear infinite; }
|
|
54
|
+
.rows { fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; opacity:.2; }
|
|
55
|
+
.scan { fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; animation:scan-rows 2.4s steps(1,end) infinite; }
|
|
56
|
+
.attention { fill:none; stroke:currentColor; stroke-width:1.4; animation:breathe 2.4s ease-in-out infinite; }
|
|
57
|
+
@keyframes breathe { 0%,100% { opacity:.5; } 50% { opacity:1; } }
|
|
58
|
+
@keyframes gather { to { transform:rotate(360deg); } }
|
|
59
|
+
@keyframes scan-rows { 0% { transform:translateY(0); } 33.333% { transform:translateY(2.2px); } 66.667% { transform:translateY(4.4px); } }
|
|
60
|
+
[data-paused="true"] .pulse, [data-paused="true"] .orbit, [data-paused="true"] .scan, [data-paused="true"] .attention { animation-play-state:paused; }
|
|
61
|
+
@media (prefers-reduced-motion:reduce) { .pulse,.orbit,.scan,.attention { animation:none; } }
|
|
62
|
+
@media(max-width:700px) { main { padding:24px 16px; } header { align-items:flex-start; flex-direction:column; } h1 { font-size:30px; } .build { grid-template-columns:1fr; } .diagram { height:130px; } .states { grid-template-columns:repeat(2,1fr); } }
|
|
63
|
+
</style>
|
|
64
|
+
</head>
|
|
65
|
+
<body>
|
|
66
|
+
<!-- Original project geometry; fill uses the surrounding host ink. Teaching reference only. -->
|
|
67
|
+
<svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs>
|
|
68
|
+
<symbol id="metatables-mark" viewBox="0 0 64 64">
|
|
69
|
+
<circle cx="11" cy="13" r="5" fill="currentColor"/>
|
|
70
|
+
<circle cx="11" cy="51" r="5" fill="currentColor"/>
|
|
71
|
+
<circle cx="26" cy="32" r="4.5" fill="currentColor"/>
|
|
72
|
+
<path fill="currentColor" d="M10.86 16.97 13.15 15.03 24.15 28.03 21.86 29.97Z"/>
|
|
73
|
+
<path fill="currentColor" d="M10.86 47.03 13.15 48.97 24.15 35.97 21.86 34.03Z"/>
|
|
74
|
+
<path fill="currentColor" fill-rule="evenodd" d="M32 20h25v24H32Z M35 23h5v4h-5Z M42 23h5v4h-5Z M49 23h5v4h-5Z M35 29h5v5h-5Z M42 29h5v5h-5Z M49 29h5v5h-5Z M35 36h5v5h-5Z M42 36h5v5h-5Z M49 36h5v5h-5Z"/>
|
|
75
|
+
</symbol>
|
|
76
|
+
</defs></svg>
|
|
77
|
+
<main>
|
|
78
|
+
<header><span class="eyebrow">MainSequence / Composition reference</span><div class="controls"><button id="theme" type="button">Use light theme</button><button id="motion" type="button" aria-pressed="false">Pause motion</button></div></header>
|
|
79
|
+
<h1>Build the MetaTables icon.</h1>
|
|
80
|
+
<p class="intro">One worked example: preserve the project mark, compose a quiet family signature, then add a separate activity layer. The dimensions below explain this composition; adapt them to the next logo.</p>
|
|
81
|
+
<h2>1. Build three layers</h2>
|
|
82
|
+
<section class="build" aria-label="Composition walkthrough">
|
|
83
|
+
<article class="card"><span class="step">01 / IDENTITY</span><div class="diagram" id="identity"></div><h3>Keep the real mark</h3><p class="caption">Place the unchanged logo in a <code>26 × 26</code> box at <code>(7, 7)</code> on a <code>40 × 40</code> canvas. The table cells and relationship nodes stay legible.</p></article>
|
|
84
|
+
<article class="card"><span class="step">02 / FAMILY SIGNATURE</span><div class="diagram" id="composition"></div><h3>Balance the corners</h3><p class="caption">Add a detached node at <code>(35.5, 4.5)</code> and a short lower-left diagonal. Keep both outside the logo. Dashed boxes show the reserved space.</p></article>
|
|
85
|
+
<article class="card"><span class="step">03 / ACTIVITY</span><div class="diagram" id="activity"></div><h3>Scan below the identity</h3><p class="caption">Reserve <code>y = 34.2…38.6</code> for three short rows. Highlight one row at a time while working. The logo stays fixed; the accent carries the motion.</p></article>
|
|
86
|
+
</section>
|
|
87
|
+
<h2>2. Change the accent with the state</h2>
|
|
88
|
+
<section class="states" aria-label="Animated states">
|
|
89
|
+
<article class="card state"><div data-state="idle"></div><h3>Idle</h3><p>Node opacity breathes over 4.8 s. Identity stays still.</p></article>
|
|
90
|
+
<article class="card state"><div data-state="thinking"></div><h3>Thinking</h3><p>Three small signals orbit the node. No table scan yet.</p></article>
|
|
91
|
+
<article class="card state"><div data-state="working"></div><h3>Working</h3><p>A highlight scans three rows over 2.4 s. Activity, not progress.</p></article>
|
|
92
|
+
<article class="card state"><div data-state="error"></div><h3>Needs attention</h3><p>The node becomes a gently pulsing diamond. No flashing.</p></article>
|
|
93
|
+
</section>
|
|
94
|
+
<div class="samples" aria-label="Working icon at actual display sizes"><span class="eyebrow">Check at display size</span><div class="sample" data-size="24"></div><div class="sample" data-size="32"></div><div class="sample" data-size="48"></div></div>
|
|
95
|
+
<p class="note" id="motion-note">Motion here demonstrates design states. In the host, use reported agent activity. Pause and reduced motion preserve a readable frame.</p>
|
|
96
|
+
<details open><summary>3. Adapt this composition to another project</summary><ol class="recipe"><li><strong>Replace the identity layer.</strong> Keep that project's real mark and adjust its optical size. Do not copy MetaTables' table imagery to an unrelated agent.</li><li><strong>Keep a clear activity area.</strong> This example uses the lower band. A wider or taller logo may need another placement or less detail.</li><li><strong>Choose one relevant action.</strong> The moving row communicates the work of this agent. Design the next project's accent around its own purpose.</li><li><strong>Verify the result.</strong> Inspect both themes, small sizes, stills and the loop. This HTML uses SVG/CSS for explanation; export the owning project's assets in the target host's supported format.</li></ol></details>
|
|
97
|
+
<details><summary>Editable source: logo, composition and animation</summary><p class="caption" style="margin-top:14px">This file is the complete runnable example. The excerpts below are read from the same source that draws the previews.</p><h3>Original logo geometry</h3><pre><code id="source-logo"></code></pre><h3>Composition and state selection</h3><pre><code id="source-composition"></code></pre><h3>Motion rules</h3><pre><code id="source-motion"></code></pre></details>
|
|
98
|
+
<p class="note" style="margin-top:20px">Source mark: MetaTables project's <code>public/navigation-icon.svg</code>, reproduced here as a teaching reference with its geometry preserved and fill set to <code>currentColor</code>. Production artwork and build tooling belong to the owning project. This example makes no backend requests and changes no installed icons.</p>
|
|
99
|
+
</main>
|
|
100
|
+
<script>
|
|
101
|
+
function drawIcon(state, {guides=false, layer='activity', size=128}={}) {
|
|
102
|
+
const identity = '<use data-layer="identity" href="#metatables-mark" x="7" y="7" width="26" height="26"/>';
|
|
103
|
+
const signature = '<path class="signature" d="M4.5 35.5l3-3"/>';
|
|
104
|
+
const node = '<circle class="node" cx="35.5" cy="4.5" r="2"/>';
|
|
105
|
+
const accent = {
|
|
106
|
+
idle:'<circle class="node pulse" cx="35.5" cy="4.5" r="2"/>',
|
|
107
|
+
thinking:'<g class="orbit"><circle class="node" cx="37.6" cy="4.5" r="1.2"/><circle class="node" cx="34.45" cy="6.32" r=".8" opacity=".65"/><circle class="node" cx="34.45" cy="2.68" r=".8" opacity=".4"/></g>',
|
|
108
|
+
working:node+'<path class="rows" d="M14 34.2h14m-14 2.2h14m-14 2.2h14"/><path class="scan" d="M14 34.2h14"/>',
|
|
109
|
+
error:'<path class="attention" d="m35.5 1.2 3.3 3.3-3.3 3.3-3.3-3.3Z"/>'
|
|
110
|
+
}[state];
|
|
111
|
+
const grid = guides ? '<rect class="measure" x=".5" y=".5" width="39" height="39"/><rect class="measure" x="7" y="7" width="26" height="26"/>' : '';
|
|
112
|
+
const accents = layer === 'identity' ? '' : signature + (layer === 'signature' ? node : accent);
|
|
113
|
+
return `<svg class="icon" viewBox="0 0 40 40" width="${size}" height="${size}" role="img" aria-label="MetaTables ${state}">${grid}${identity}<g data-layer="activity">${accents}</g></svg>`;
|
|
114
|
+
}
|
|
115
|
+
document.querySelector('#identity').innerHTML=drawIcon('idle',{guides:true,layer:'identity'});
|
|
116
|
+
document.querySelector('#composition').innerHTML=drawIcon('idle',{guides:true,layer:'signature'});
|
|
117
|
+
document.querySelector('#activity').innerHTML=drawIcon('working',{guides:true});
|
|
118
|
+
document.querySelectorAll('[data-state]').forEach(el=>el.innerHTML=drawIcon(el.dataset.state));
|
|
119
|
+
document.querySelectorAll('[data-size]').forEach(el=>el.innerHTML=drawIcon('working',{size:Number(el.dataset.size)})+`<span>${el.dataset.size} px</span>`);
|
|
120
|
+
document.querySelector('#source-logo').textContent=document.querySelector('#metatables-mark').outerHTML;
|
|
121
|
+
document.querySelector('#source-composition').textContent=drawIcon.toString();
|
|
122
|
+
document.querySelector('#source-motion').textContent=document.querySelector('#example-styles').textContent.split('/* Only supporting marks animate. The logo and lower-left signature stay fixed. */')[1].split('@media(max-width:700px)')[0];
|
|
123
|
+
const root=document.documentElement;
|
|
124
|
+
document.querySelector('#theme').onclick=()=>{
|
|
125
|
+
root.dataset.theme=root.dataset.theme==='dark'?'light':'dark';
|
|
126
|
+
document.querySelector('#theme').textContent=`Use ${root.dataset.theme==='dark'?'light':'dark'} theme`;
|
|
127
|
+
};
|
|
128
|
+
const motion=document.querySelector('#motion');
|
|
129
|
+
const reduced=matchMedia('(prefers-reduced-motion: reduce)');
|
|
130
|
+
function applyPreference(){
|
|
131
|
+
motion.disabled=reduced.matches;
|
|
132
|
+
root.dataset.paused=String(reduced.matches);
|
|
133
|
+
motion.setAttribute('aria-pressed',String(reduced.matches));
|
|
134
|
+
motion.textContent=reduced.matches?'Reduced motion':'Pause motion';
|
|
135
|
+
}
|
|
136
|
+
motion.onclick=()=>{
|
|
137
|
+
const paused=root.dataset.paused!=='true';
|
|
138
|
+
root.dataset.paused=String(paused);
|
|
139
|
+
motion.setAttribute('aria-pressed',String(paused));
|
|
140
|
+
motion.textContent=paused?'Play motion':'Pause motion';
|
|
141
|
+
};
|
|
142
|
+
reduced.addEventListener('change',applyPreference);
|
|
143
|
+
applyPreference();
|
|
144
|
+
</script>
|
|
145
|
+
</body>
|
|
146
|
+
</html>
|
|
@@ -34,6 +34,12 @@ Tau reads skills in `.tau/skills/` and `.agents/skills/` at any depth: a folder
|
|
|
34
34
|
application can publish with the mainsequence SDK's skills publisher. The managed skills in
|
|
35
35
|
`.agents/skills/ms_tau_sdk/` are read too.
|
|
36
36
|
|
|
37
|
+
## Agent artwork
|
|
38
|
+
|
|
39
|
+
For optional icon composition and motion guidance, use `design-agent-icons-and-motion` from
|
|
40
|
+
this SDK's skill bundle. It includes a worked visual example; project artwork and animations
|
|
41
|
+
remain owned by the project.
|
|
42
|
+
|
|
37
43
|
## Extension ownership
|
|
38
44
|
|
|
39
45
|
Project extensions belong under `.tau/extensions/` and may add tools, hooks, and lifecycle
|
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/__init__.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/app.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/cli.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/config.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/env_file.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/logs.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/proxy.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/packages/tau-board/src/ms_tau_board/state.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
|
|
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-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/backend/team_memberships.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
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/assistant_ui.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/protocols/chat_history.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
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/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
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/tools/mainsequence_mcp.py
RENAMED
|
File without changes
|
{ms_tau_sdk-2.0.24.dev76 → ms_tau_sdk-2.0.26.dev77}/src/ms_tau_sdk/tools/mcp_applications.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|