mainsequence 9.0.23.dev66__tar.gz → 9.0.24.dev67__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-9.0.23.dev66 → mainsequence-9.0.24.dev67}/PKG-INFO +3 -2
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/README.md +2 -1
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +1 -1
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md +20 -16
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +1 -1
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +1 -1
- mainsequence-9.0.24.dev67/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +131 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/cli.py +2 -191
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence.egg-info/PKG-INFO +3 -2
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence.egg-info/SOURCES.txt +0 -1
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/pyproject.toml +2 -2
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_code_repository_documentation_contract.py +3 -8
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_code_repository_skills.py +0 -1
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_scaffold_skills.py +1 -1
- mainsequence-9.0.23.dev66/agent_scaffold/AGENTS.md +0 -122
- mainsequence-9.0.23.dev66/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +0 -241
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/LICENSE +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/agent_scaffold/skills/mainsequence-inference/SKILL.md +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/agent_scaffold/skills/maintenance/metatables_transition/SKILL.md +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/__init__.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/__main__.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/_request_identity.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/_transport.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/bootstrap.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/api.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/code_repository_status.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/config.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/cli/ui.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/__init__.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/base.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/client.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/github_issues.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/inference.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/models_foundry.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/models_user.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/observability.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/utils.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/client/value_sets.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/code_repository_context.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/code_repository_skills.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/defaults.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/logconf.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/repository_identity_security.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/runtime_credential_exchange.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/server/__init__.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/server/_mcp_skills_upstream/__init__.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/server/_mcp_skills_upstream/server.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/server/_mcp_skills_upstream/shared.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/server/caller_assertions.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/server/fastapi.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence/server/mcp_skills.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/setup.cfg +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_auth_bootstrap.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_auth_precedence.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_caller_assertions.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_canonical_api_route_contract.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_cli_auth_contract.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_cli_request_budget.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_cli_secure_storage.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_client.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_code_repository_branch_contract.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_code_repository_runtime_context.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_credential_repr.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_dependency_extras.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_dev_release_version.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_environment_resource_context.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_environment_response_contracts.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_fastapi_mcp.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_fastapi_request_identity.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_github_issues_client.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_http_retry_budget.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_independent_context.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_inference_client.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_instrumentation.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_job_client.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_local_ops.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_logconf.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_mcp_skills.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_notification_uid_contract.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_observability_client.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_runtime_credential_exchange.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_secret_client_model.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_source_ownership.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_ssh_utils.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_tolerant_response_reading.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_tolerant_value_sets.py +0 -0
- {mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/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.
|
|
3
|
+
Version: 9.0.24.dev67
|
|
4
4
|
Summary: Main Sequence SDK
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -82,7 +82,8 @@ Main package areas:
|
|
|
82
82
|
|
|
83
83
|
Repository areas:
|
|
84
84
|
|
|
85
|
-
- `agent_scaffold/`: version-matched SDK
|
|
85
|
+
- `agent_scaffold/skills/`: version-matched SDK guidance and domain skills;
|
|
86
|
+
repository-owned `AGENTS.md` files are never scaffolded or updated
|
|
86
87
|
- `docs/`: knowledge guides, CLI docs, architecture decisions, and generated
|
|
87
88
|
reference docs
|
|
88
89
|
- `tests/`: offline tests plus explicitly marked live-backend tests
|
|
@@ -45,7 +45,8 @@ Main package areas:
|
|
|
45
45
|
|
|
46
46
|
Repository areas:
|
|
47
47
|
|
|
48
|
-
- `agent_scaffold/`: version-matched SDK
|
|
48
|
+
- `agent_scaffold/skills/`: version-matched SDK guidance and domain skills;
|
|
49
|
+
repository-owned `AGENTS.md` files are never scaffolded or updated
|
|
49
50
|
- `docs/`: knowledge guides, CLI docs, architecture decisions, and generated
|
|
50
51
|
reference docs
|
|
51
52
|
- `tests/`: offline tests plus explicitly marked live-backend tests
|
|
@@ -67,7 +67,7 @@ This skill audits. It does not implement by default.
|
|
|
67
67
|
|
|
68
68
|
## Read First
|
|
69
69
|
|
|
70
|
-
1. `AGENTS.md`
|
|
70
|
+
1. Repository instructions, including `AGENTS.md` when present.
|
|
71
71
|
2. the relevant installed skill and version-aligned documentation for the failing workflow
|
|
72
72
|
|
|
73
73
|
## Inputs This Skill Needs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mainsequence-code-repository-maintenance
|
|
3
|
-
description: Maintain an existing Main Sequence CodeRepository checkout using the SDK-version-matched CLI. Use for inspecting repository state, building or repairing .venv, refreshing local authentication, performing explicitly requested SDK
|
|
3
|
+
description: Maintain an existing Main Sequence CodeRepository checkout using the SDK-version-matched CLI. Use for inspecting repository state, building or repairing .venv, refreshing local authentication, performing explicitly requested SDK or skill updates, refreshing dependency files with CodeRepository sync, publishing changes with Git, or diagnosing a partially completed maintenance workflow.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Main Sequence CodeRepository Maintenance
|
|
@@ -16,7 +16,7 @@ workflows.
|
|
|
16
16
|
Own:
|
|
17
17
|
|
|
18
18
|
- local CodeRepository inspection and maintenance sequencing;
|
|
19
|
-
- `.venv`, SDK, managed skill,
|
|
19
|
+
- `.venv`, SDK, managed skill, dependency sync, and Git publishing
|
|
20
20
|
workflows;
|
|
21
21
|
- precondition checks, explicit approval gates, and partial-failure diagnosis.
|
|
22
22
|
|
|
@@ -45,7 +45,8 @@ fall back to credential claims or injected CodeRepositoryBranch values.
|
|
|
45
45
|
|
|
46
46
|
## Inspect Before Changing State
|
|
47
47
|
|
|
48
|
-
1.
|
|
48
|
+
1. Follow repository instructions, including `AGENTS.md` when present, and read
|
|
49
|
+
the relevant skills. The SDK never scaffolds or edits repository `AGENTS.md`.
|
|
49
50
|
2. Confirm the repository root and the user's requested maintenance outcome.
|
|
50
51
|
3. Inspect code repository and Git state:
|
|
51
52
|
|
|
@@ -55,11 +56,10 @@ fall back to credential claims or injected CodeRepositoryBranch values.
|
|
|
55
56
|
git status --short
|
|
56
57
|
```
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
`
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
mutating workflow.
|
|
59
|
+
Before branch-owned platform operations, require the current Git branch,
|
|
60
|
+
`code_repository_branch_uid`, and `code_repository_branch_status=resolved`.
|
|
61
|
+
Local environment and skill updates do not require a registered platform
|
|
62
|
+
branch or a signed-in session.
|
|
63
63
|
|
|
64
64
|
4. Separate existing user changes from changes created by the maintenance
|
|
65
65
|
task. Never assume every uncommitted file belongs to the current task.
|
|
@@ -173,17 +173,14 @@ the failure. On success, reload this maintenance skill before continuing.
|
|
|
173
173
|
Do not automatically commit or push an SDK update unless the user also asked
|
|
174
174
|
to publish the CodeRepository changes.
|
|
175
175
|
|
|
176
|
-
## Refresh
|
|
176
|
+
## Refresh SDK Skills And Instructions
|
|
177
177
|
|
|
178
|
-
|
|
179
|
-
command only when the user explicitly
|
|
180
|
-
|
|
181
|
-
then update the managed Main Sequence block in
|
|
182
|
-
`AGENTS.md`:
|
|
178
|
+
SDK instructions and domain skills are one versioned bundle. Outside the
|
|
179
|
+
refresh included in `update-sdk`, run this command only when the user explicitly
|
|
180
|
+
requests a skill update:
|
|
183
181
|
|
|
184
182
|
```bash
|
|
185
183
|
uv run --offline mainsequence code-repository update-agent-skills --path .
|
|
186
|
-
uv run --offline mainsequence code-repository update AGENTS.md --path .
|
|
187
184
|
```
|
|
188
185
|
|
|
189
186
|
Verify `.agents/skills/mainsequence/PINNED_FROM.txt` after success:
|
|
@@ -198,6 +195,13 @@ or platform access and deletes obsolete folders, including retired table
|
|
|
198
195
|
workflow skills. Do not preserve old or platform-owned content in that folder.
|
|
199
196
|
The installed `metatables` package owns table workflows in its own namespace.
|
|
200
197
|
|
|
198
|
+
A missing or mismatched sentinel is a condition to report, not permission to
|
|
199
|
+
update. The same applies to other libraries' sentinels. The `mainsequence` CLI
|
|
200
|
+
does not manage `.agents/skills/ms_tau_sdk/`; its owner refreshes that namespace
|
|
201
|
+
with `uv run ms-tau skills sync --path .` when requested. Keep repository-owned
|
|
202
|
+
`AGENTS.md` as written, including any older managed blocks. Removing such a
|
|
203
|
+
block is a separate repository edit requested by its owner.
|
|
204
|
+
|
|
201
205
|
When the user requests platform skills, use the separate authenticated command:
|
|
202
206
|
|
|
203
207
|
```bash
|
|
@@ -419,7 +423,7 @@ Never rerun an entire mutating workflow blindly.
|
|
|
419
423
|
|
|
420
424
|
## Validate And Report
|
|
421
425
|
|
|
422
|
-
Run only repository-relevant validation discovered from
|
|
426
|
+
Run only repository-relevant validation discovered from existing repository instructions,
|
|
423
427
|
documentation, and the changed files. Report:
|
|
424
428
|
|
|
425
429
|
- the maintenance routine performed;
|
|
@@ -58,7 +58,7 @@ This skill only reasons about access to deployed resources such as `ResourceRele
|
|
|
58
58
|
|
|
59
59
|
## Read First
|
|
60
60
|
|
|
61
|
-
1. `AGENTS.md`
|
|
61
|
+
1. Repository instructions, including `AGENTS.md` when present.
|
|
62
62
|
2. <https://mainsequence-sdk.github.io/mainsequence-sdk/knowledge/infrastructure/users_and_access/>
|
|
63
63
|
3. <https://mainsequence-sdk.github.io/mainsequence-sdk/knowledge/infrastructure/constants_and_secrets/>
|
|
64
64
|
|
|
@@ -48,7 +48,7 @@ This skill must not claim ownership of:
|
|
|
48
48
|
|
|
49
49
|
## Read First
|
|
50
50
|
|
|
51
|
-
1. `AGENTS.md`
|
|
51
|
+
1. Repository instructions, including `AGENTS.md` when present.
|
|
52
52
|
2. <https://mainsequence-sdk.github.io/mainsequence-sdk/knowledge/infrastructure/scheduling_jobs/>
|
|
53
53
|
3. <https://mainsequence-sdk.github.io/mainsequence-sdk/knowledge/infrastructure/artifacts/>
|
|
54
54
|
4. <https://mainsequence-sdk.github.io/mainsequence-sdk/knowledge/infrastructure/owner_observability/> when inspecting logs or resource usage
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mainsequence-sdk-code-repository-execution
|
|
3
|
+
description: Use the installed Main Sequence SDK and CLI for Git-derived CodeRepository context, version-matched contract authority, and selecting the relevant SDK or domain-package skill. Use for repository integration and SDK execution questions; use a platform-owned design skill when architecture or ontology is unresolved.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Main Sequence SDK CodeRepository Execution
|
|
7
|
+
|
|
8
|
+
Use this skill for SDK execution and CodeRepository integration. Follow the
|
|
9
|
+
repository's own instructions, including `AGENTS.md` when present. A repository
|
|
10
|
+
does not need that file to use the SDK or its skills, and the SDK does not
|
|
11
|
+
create, copy, update, or remove it.
|
|
12
|
+
|
|
13
|
+
## Contract Authority
|
|
14
|
+
|
|
15
|
+
- Installed SDK code, CLI help, SDK skills, and version-matched documentation
|
|
16
|
+
define client behavior.
|
|
17
|
+
- Installed platform skills and backend-advertised schemas, templates, and
|
|
18
|
+
capabilities define the platform contract.
|
|
19
|
+
- Use the owning domain package and its installed skills before implementing
|
|
20
|
+
against an unfamiliar domain contract.
|
|
21
|
+
- Treat the public SDK documentation as supplemental when its version differs
|
|
22
|
+
from the installed package:
|
|
23
|
+
`https://mainsequence-sdk.github.io/mainsequence-sdk/`
|
|
24
|
+
- When the client and platform disagree, record the exact failing operation
|
|
25
|
+
and evidence with the bug-auditor skill. Do not guess or upgrade automatically.
|
|
26
|
+
|
|
27
|
+
## Select The Relevant Skill
|
|
28
|
+
|
|
29
|
+
Use skill descriptions to select the domain involved in the request. This skill
|
|
30
|
+
is not a mandatory first step for maintenance, audits, or already-scoped domain
|
|
31
|
+
work. A platform design skill is useful when product architecture, ontology, or
|
|
32
|
+
the CodeRepository Blueprint is unresolved; select it from the installed
|
|
33
|
+
platform catalog rather than assuming its filesystem path.
|
|
34
|
+
Use that catalog to select platform-owned CodeRepository-to-Agent setup and
|
|
35
|
+
other platform capabilities as well.
|
|
36
|
+
|
|
37
|
+
- Environment repair, authentication, explicitly requested updates, dependency
|
|
38
|
+
sync, and Git publishing:
|
|
39
|
+
`.agents/skills/mainsequence/maintenance/code_repository_maintenance/SKILL.md`
|
|
40
|
+
- Failure classification and SDK/platform contract mismatches:
|
|
41
|
+
`.agents/skills/mainsequence/maintenance/bug_auditor/SKILL.md`
|
|
42
|
+
- FastAPI APIs serving Command Center, including MCP tools and skills:
|
|
43
|
+
`.agents/skills/mainsequence/application_surfaces/api_surfaces/SKILL.md`
|
|
44
|
+
- Jobs, schedules, images, resources, releases, and Artifacts:
|
|
45
|
+
`.agents/skills/mainsequence/platform_operations/orchestration_and_releases/SKILL.md`
|
|
46
|
+
- RBAC, sharing, constants, secrets, and acting for a requester:
|
|
47
|
+
`.agents/skills/mainsequence/platform_operations/access_control_and_sharing/SKILL.md`
|
|
48
|
+
- Recorded model calls, structured extraction, provider options, history, and replay:
|
|
49
|
+
`.agents/skills/mainsequence/mainsequence-inference/SKILL.md`
|
|
50
|
+
- A2A session discovery, messages, files, and SDK response handling:
|
|
51
|
+
`.agents/skills/mainsequence/a2a_sdk_execution/SKILL.md`
|
|
52
|
+
- Retired SDK MetaTables imports or commands:
|
|
53
|
+
`.agents/skills/mainsequence/maintenance/metatables_transition/SKILL.md`
|
|
54
|
+
- Current MetaTable modeling, queries, table updates, and Alembic changes:
|
|
55
|
+
use the installed `metatables` package's skills and documentation.
|
|
56
|
+
- TAU Harness Agent implementation: use the version-matched skills under
|
|
57
|
+
`.agents/skills/ms_tau_sdk/` after the relevant platform skill establishes
|
|
58
|
+
its contract. If those skills are missing, report that; run
|
|
59
|
+
`uv run ms-tau skills sync --path .` only when the user requests that update.
|
|
60
|
+
|
|
61
|
+
## Resolve CodeRepository Context From Git
|
|
62
|
+
|
|
63
|
+
The containing Git worktree is the only source of repository, attached branch,
|
|
64
|
+
and exact commit identity. The SDK normalizes the non-secret repository remote,
|
|
65
|
+
maps it to CodeRepository and CodeRepositoryBranch through the platform API,
|
|
66
|
+
resolves once for the process, and reuses the immutable result. Authentication
|
|
67
|
+
selects credentials and permissions; it does not select source identity.
|
|
68
|
+
A `git switch` in a long-running process takes effect in the next CLI invocation,
|
|
69
|
+
worker, script, or other process run.
|
|
70
|
+
|
|
71
|
+
For a live branch-owned operation, use
|
|
72
|
+
`mainsequence code-repository current --debug --json` to verify that Git context
|
|
73
|
+
resolves to `code_repository_branch_status=resolved` and a nonempty
|
|
74
|
+
`code_repository_branch_uid`. The UID is an internal resolution result, not a
|
|
75
|
+
local configuration input. Never ask the user to look it up, persist repository
|
|
76
|
+
identity in `.env`, accept a branch environment override, or infer a branch
|
|
77
|
+
from collection order. Local and deployed images use the same Git algorithm.
|
|
78
|
+
|
|
79
|
+
A detached checkout or an unregistered Git branch remains usable for ordinary
|
|
80
|
+
local development but has no resolved CodeRepositoryBranch or Environment.
|
|
81
|
+
Only operations requiring that context fail. Register the branch before
|
|
82
|
+
using branch-owned Jobs, images, releases, resources, pods, or other platform
|
|
83
|
+
APIs. Never fall back to another branch.
|
|
84
|
+
|
|
85
|
+
Keep these platform identities distinct:
|
|
86
|
+
|
|
87
|
+
- Git-resolved CodeRepository UID: aggregate identity and repository operations.
|
|
88
|
+
- CodeRepositoryBranch: resolved by the SDK when branch-owned APIs require it.
|
|
89
|
+
- GitHubRepositoryBinding: repository metadata and clone-location ownership;
|
|
90
|
+
`git_ssh_url` is not CodeRepositoryBranch state.
|
|
91
|
+
|
|
92
|
+
## Use The Installed CLI
|
|
93
|
+
|
|
94
|
+
Use `mainsequence` as the default platform control surface for SDK-supported
|
|
95
|
+
operations. Prefer `--json` when parsing output or collecting evidence. Check
|
|
96
|
+
installed command help when documentation and local behavior differ.
|
|
97
|
+
|
|
98
|
+
Before live platform checks, inspect the saved session with
|
|
99
|
+
`mainsequence auth status --check` when needed. Authentication belongs to the
|
|
100
|
+
machine, not to a checkout. The SDK reads the saved operating-system credential
|
|
101
|
+
store session; credentials must not be copied into repository instructions.
|
|
102
|
+
|
|
103
|
+
Verify only the platform objects relevant to the requested outcome. Separate
|
|
104
|
+
verified facts from assumptions, and state any live checks that could not be
|
|
105
|
+
performed.
|
|
106
|
+
|
|
107
|
+
## SDK Skills And Repository Files
|
|
108
|
+
|
|
109
|
+
The SDK owns `.agents/skills/mainsequence/`. Its copier installs SDK guidance
|
|
110
|
+
and domain skills together from the target repository's installed package,
|
|
111
|
+
removes retired files, and writes `PINNED_FROM.txt` with the installed version.
|
|
112
|
+
SDK skill copying needs no sign-in or platform catalog.
|
|
113
|
+
|
|
114
|
+
An explicit `update-sdk` also refreshes SDK skills after installing the package.
|
|
115
|
+
Other skill refreshes require the user's request; a stale or missing sentinel
|
|
116
|
+
is a condition to report, not permission to update. Use the maintenance skill
|
|
117
|
+
for the update workflow.
|
|
118
|
+
|
|
119
|
+
Platform skills belong to `.agents/skills/mainsequence_platform/` and use the
|
|
120
|
+
authenticated platform updater. Other libraries, including `metatables` and
|
|
121
|
+
`ms-tau-sdk`, own their independent namespaces and update commands.
|
|
122
|
+
|
|
123
|
+
Follow the repository's existing layout. The SDK does not require `src/`,
|
|
124
|
+
`scripts/`, `tests/`, `docs/`, or `api/` directories merely because it is
|
|
125
|
+
installed. When recurring Jobs or releases use backend-managed workflow
|
|
126
|
+
declarations, keep their YAML files as direct children of
|
|
127
|
+
`.mainsequence/workflows/` and validate the current backend workflow contract.
|
|
128
|
+
|
|
129
|
+
Repository-local execution paths passed to platform Jobs must be relative to
|
|
130
|
+
the repository root, use forward slashes on every operating system, and refer
|
|
131
|
+
to supported files inside the checkout.
|
|
@@ -1059,117 +1059,6 @@ def _resolve_installed_agent_scaffold_skill(skill_name: str) -> dict[str, pathli
|
|
|
1059
1059
|
raise typer.Exit(1)
|
|
1060
1060
|
|
|
1061
1061
|
|
|
1062
|
-
AGENTS_MD_MANAGED_BLOCK_START_PREFIX = "<!-- mainsequence-agent-scaffold:start"
|
|
1063
|
-
AGENTS_MD_MANAGED_BLOCK_END = "<!-- mainsequence-agent-scaffold:end -->"
|
|
1064
|
-
AGENTS_MD_MANAGED_BLOCK_SCHEMA = "1"
|
|
1065
|
-
AGENTS_MD_MANAGED_BLOCK_START_LINE_RE = re.compile(
|
|
1066
|
-
rf"(?m)^[ \t]*{re.escape(AGENTS_MD_MANAGED_BLOCK_START_PREFIX)}\b[^\n]*-->[ \t]*$"
|
|
1067
|
-
)
|
|
1068
|
-
AGENTS_MD_MANAGED_BLOCK_END_LINE_RE = re.compile(
|
|
1069
|
-
rf"(?m)^[ \t]*{re.escape(AGENTS_MD_MANAGED_BLOCK_END)}[ \t]*$"
|
|
1070
|
-
)
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
@dataclasses.dataclass(frozen=True)
|
|
1074
|
-
class AgentsMdManagedBlockUpdate:
|
|
1075
|
-
action: str
|
|
1076
|
-
changed: bool
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
def _installed_agent_scaffold_agents_md_file() -> pathlib.Path:
|
|
1080
|
-
source = _installed_agent_scaffold_bundle_dir() / "AGENTS.md"
|
|
1081
|
-
if not source.is_file():
|
|
1082
|
-
error(f"Installed agent_scaffold bundle is missing {source.name}: {source}")
|
|
1083
|
-
raise typer.Exit(1)
|
|
1084
|
-
return source
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
def _agents_md_managed_block_line_matches(
|
|
1088
|
-
source_content: str,
|
|
1089
|
-
) -> tuple[list[re.Match[str]], list[re.Match[str]]]:
|
|
1090
|
-
start_matches = list(AGENTS_MD_MANAGED_BLOCK_START_LINE_RE.finditer(source_content))
|
|
1091
|
-
end_matches = list(AGENTS_MD_MANAGED_BLOCK_END_LINE_RE.finditer(source_content))
|
|
1092
|
-
return start_matches, end_matches
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
def _extract_agents_md_managed_block(source_content: str) -> str:
|
|
1096
|
-
start_matches, end_matches = _agents_md_managed_block_line_matches(source_content)
|
|
1097
|
-
if len(start_matches) != 1 or len(end_matches) != 1:
|
|
1098
|
-
raise ValueError(
|
|
1099
|
-
"Installed agent_scaffold AGENTS.md must contain exactly one Main Sequence "
|
|
1100
|
-
"managed block."
|
|
1101
|
-
)
|
|
1102
|
-
|
|
1103
|
-
start_match = start_matches[0]
|
|
1104
|
-
end_match = end_matches[0]
|
|
1105
|
-
if end_match.start() < start_match.start():
|
|
1106
|
-
raise ValueError(
|
|
1107
|
-
"Installed agent_scaffold AGENTS.md contains malformed Main Sequence managed "
|
|
1108
|
-
"block markers."
|
|
1109
|
-
)
|
|
1110
|
-
|
|
1111
|
-
return source_content[start_match.start() : end_match.end()]
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
def _load_installed_agents_md_template() -> tuple[pathlib.Path, str, str]:
|
|
1115
|
-
source = _installed_agent_scaffold_agents_md_file()
|
|
1116
|
-
content = source.read_text(encoding="utf-8")
|
|
1117
|
-
managed_block = _extract_agents_md_managed_block(content)
|
|
1118
|
-
return source, content, managed_block
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
def _apply_agents_md_managed_block(
|
|
1122
|
-
content: str,
|
|
1123
|
-
bootstrap_content: str,
|
|
1124
|
-
managed_block: str,
|
|
1125
|
-
) -> tuple[str, str]:
|
|
1126
|
-
start_matches, end_matches = _agents_md_managed_block_line_matches(content)
|
|
1127
|
-
|
|
1128
|
-
if len(start_matches) > 1 or len(end_matches) > 1:
|
|
1129
|
-
raise ValueError(
|
|
1130
|
-
"AGENTS.md contains multiple Main Sequence managed block markers; resolve it manually."
|
|
1131
|
-
)
|
|
1132
|
-
if len(start_matches) != len(end_matches):
|
|
1133
|
-
raise ValueError(
|
|
1134
|
-
"AGENTS.md contains malformed Main Sequence managed block markers; resolve it manually."
|
|
1135
|
-
)
|
|
1136
|
-
|
|
1137
|
-
if not start_matches:
|
|
1138
|
-
return bootstrap_content, "replaced"
|
|
1139
|
-
|
|
1140
|
-
start_match = start_matches[0]
|
|
1141
|
-
end_match = end_matches[0]
|
|
1142
|
-
if end_match.start() < start_match.start():
|
|
1143
|
-
raise ValueError(
|
|
1144
|
-
"AGENTS.md contains malformed Main Sequence managed block markers; resolve it manually."
|
|
1145
|
-
)
|
|
1146
|
-
|
|
1147
|
-
updated = (
|
|
1148
|
-
f"{content[: start_match.start()]}{managed_block.rstrip()}{content[end_match.end() :]}"
|
|
1149
|
-
)
|
|
1150
|
-
action = "unchanged" if updated == content else "updated"
|
|
1151
|
-
return updated, action
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
def _update_agents_md_managed_block_file(
|
|
1155
|
-
destination: pathlib.Path,
|
|
1156
|
-
bootstrap_content: str,
|
|
1157
|
-
managed_block: str,
|
|
1158
|
-
) -> AgentsMdManagedBlockUpdate:
|
|
1159
|
-
destination.parent.mkdir(parents=True, exist_ok=True)
|
|
1160
|
-
|
|
1161
|
-
if not destination.exists():
|
|
1162
|
-
destination.write_text(bootstrap_content, encoding="utf-8")
|
|
1163
|
-
return AgentsMdManagedBlockUpdate(action="created", changed=True)
|
|
1164
|
-
|
|
1165
|
-
original = destination.read_text(encoding="utf-8")
|
|
1166
|
-
updated, action = _apply_agents_md_managed_block(original, bootstrap_content, managed_block)
|
|
1167
|
-
changed = updated != original
|
|
1168
|
-
if changed:
|
|
1169
|
-
destination.write_text(updated, encoding="utf-8")
|
|
1170
|
-
return AgentsMdManagedBlockUpdate(action=action, changed=changed)
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
1062
|
def _parse_env_var_entries(entries: list[str]) -> dict[str, str]:
|
|
1174
1063
|
"""
|
|
1175
1064
|
Parse env var entries from repeated KEY=VALUE args and/or comma-separated chunks.
|
|
@@ -7698,84 +7587,6 @@ def code_repository_update_sdk(
|
|
|
7698
7587
|
success("SDK update and SDK skill refresh complete.")
|
|
7699
7588
|
|
|
7700
7589
|
|
|
7701
|
-
@code_repository.command("update")
|
|
7702
|
-
def code_repository_update_scaffold_target(
|
|
7703
|
-
target: str = typer.Argument(
|
|
7704
|
-
..., help="Scaffold target to update. Currently supported: AGENTS.md"
|
|
7705
|
-
),
|
|
7706
|
-
code_repository_id: str | None = typer.Option(
|
|
7707
|
-
None,
|
|
7708
|
-
"--code-repository-uid",
|
|
7709
|
-
help="Optional CodeRepository UID assertion against the current Git worktree",
|
|
7710
|
-
),
|
|
7711
|
-
path: str | None = typer.Option(None, "--path", help="CodeRepository directory"),
|
|
7712
|
-
):
|
|
7713
|
-
"""
|
|
7714
|
-
Update a scaffold-managed file in the local CodeRepository root.
|
|
7715
|
-
|
|
7716
|
-
Currently this command supports only `AGENTS.md`.
|
|
7717
|
-
If the Main Sequence managed marker is present, only that block is updated.
|
|
7718
|
-
If the marker is absent, the whole file is replaced from the installed
|
|
7719
|
-
scaffold template.
|
|
7720
|
-
|
|
7721
|
-
Examples
|
|
7722
|
-
--------
|
|
7723
|
-
```bash
|
|
7724
|
-
mainsequence code-repository update AGENTS.md
|
|
7725
|
-
mainsequence code-repository update AGENTS.md --path .
|
|
7726
|
-
mainsequence code-repository update AGENTS.md --code-repository-uid code-repository-uid-123
|
|
7727
|
-
```
|
|
7728
|
-
"""
|
|
7729
|
-
if target != "AGENTS.md":
|
|
7730
|
-
error(f"Unsupported scaffold update target: {target}. Supported target: AGENTS.md")
|
|
7731
|
-
raise typer.Exit(1)
|
|
7732
|
-
|
|
7733
|
-
code_repository_dir = _resolve_code_repository_dir(code_repository_id, path)
|
|
7734
|
-
destination = code_repository_dir / "AGENTS.md"
|
|
7735
|
-
|
|
7736
|
-
try:
|
|
7737
|
-
source, bootstrap_content, managed_block = _load_installed_agents_md_template()
|
|
7738
|
-
update_result = _update_agents_md_managed_block_file(
|
|
7739
|
-
destination,
|
|
7740
|
-
bootstrap_content,
|
|
7741
|
-
managed_block,
|
|
7742
|
-
)
|
|
7743
|
-
except ValueError as exc:
|
|
7744
|
-
error(str(exc))
|
|
7745
|
-
raise typer.Exit(1) from exc
|
|
7746
|
-
|
|
7747
|
-
payload = {
|
|
7748
|
-
"target": target,
|
|
7749
|
-
"code_repository": code_repository_dir,
|
|
7750
|
-
"source": source,
|
|
7751
|
-
"destination": destination,
|
|
7752
|
-
"action": update_result.action,
|
|
7753
|
-
"changed": update_result.changed,
|
|
7754
|
-
"overwritten": False,
|
|
7755
|
-
"managed_block": {
|
|
7756
|
-
"start": AGENTS_MD_MANAGED_BLOCK_START_PREFIX,
|
|
7757
|
-
"end": AGENTS_MD_MANAGED_BLOCK_END,
|
|
7758
|
-
},
|
|
7759
|
-
}
|
|
7760
|
-
if _emit_json(payload):
|
|
7761
|
-
return
|
|
7762
|
-
|
|
7763
|
-
if update_result.action == "unchanged":
|
|
7764
|
-
success(f"{target} Main Sequence managed block already current.")
|
|
7765
|
-
else:
|
|
7766
|
-
success(f"Updated scaffold-managed {target}.")
|
|
7767
|
-
print_kv(
|
|
7768
|
-
"Scaffold Update",
|
|
7769
|
-
[
|
|
7770
|
-
("Target", target),
|
|
7771
|
-
("Action", update_result.action),
|
|
7772
|
-
("CodeRepository", str(code_repository_dir)),
|
|
7773
|
-
("Source", str(source)),
|
|
7774
|
-
("Destination", str(destination)),
|
|
7775
|
-
],
|
|
7776
|
-
)
|
|
7777
|
-
|
|
7778
|
-
|
|
7779
7590
|
@code_repository.command("update-agent-skills")
|
|
7780
7591
|
def code_repository_update_agent_skills(
|
|
7781
7592
|
code_repository_id: str | None = typer.Option(
|
|
@@ -7791,8 +7602,8 @@ def code_repository_update_agent_skills(
|
|
|
7791
7602
|
No sign-in or backend access is required unless a CodeRepository UID
|
|
7792
7603
|
assertion is supplied. The SDK owns all of .agents/skills/mainsequence:
|
|
7793
7604
|
files and folders absent from the installed bundle are deleted. Other
|
|
7794
|
-
namespaces
|
|
7795
|
-
|
|
7605
|
+
namespaces and repository-owned AGENTS.md are untouched. SDK instructions
|
|
7606
|
+
ship inside the skills. Platform skills use update-platform-skills.
|
|
7796
7607
|
|
|
7797
7608
|
Examples
|
|
7798
7609
|
--------
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence
|
|
3
|
-
Version: 9.0.
|
|
3
|
+
Version: 9.0.24.dev67
|
|
4
4
|
Summary: Main Sequence SDK
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -82,7 +82,8 @@ Main package areas:
|
|
|
82
82
|
|
|
83
83
|
Repository areas:
|
|
84
84
|
|
|
85
|
-
- `agent_scaffold/`: version-matched SDK
|
|
85
|
+
- `agent_scaffold/skills/`: version-matched SDK guidance and domain skills;
|
|
86
|
+
repository-owned `AGENTS.md` files are never scaffolded or updated
|
|
86
87
|
- `docs/`: knowledge guides, CLI docs, architecture decisions, and generated
|
|
87
88
|
reference docs
|
|
88
89
|
- `tests/`: offline tests plus explicitly marked live-backend tests
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mainsequence"
|
|
7
|
-
version = "9.0.
|
|
7
|
+
version = "9.0.24.dev67"
|
|
8
8
|
description = "Main Sequence SDK"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -88,7 +88,7 @@ include = ["mainsequence", "mainsequence.*", "agent_scaffold", "agent_scaffold.*
|
|
|
88
88
|
|
|
89
89
|
[tool.setuptools.package-data]
|
|
90
90
|
"mainsequence" = ["**/*.html", "**/*.css", "**/*.png", "**/*.toml", "**/*.json", "**/*.mako"]
|
|
91
|
-
"agent_scaffold" = ["
|
|
91
|
+
"agent_scaffold" = ["skills/**/*.md"]
|
|
92
92
|
|
|
93
93
|
[[tool.uv.index]]
|
|
94
94
|
name = "testpypi"
|
|
@@ -21,13 +21,9 @@ SKILL_CROSS_REFERENCE = re.compile(r"`\.agents/skills/[A-Za-z0-9_]+/([A-Za-z0-9_
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def _shipped_scaffold_documents() -> tuple[Path, ...]:
|
|
24
|
-
"""
|
|
24
|
+
"""SDK skill instructions and references shipped by the wheel."""
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
mandatory read, so it carries the same reference obligations they do.
|
|
28
|
-
"""
|
|
29
|
-
|
|
30
|
-
return tuple(sorted((REPOSITORY_ROOT / "agent_scaffold").rglob("*.md")))
|
|
26
|
+
return tuple(sorted(SKILL_ROOT.rglob("*.md")))
|
|
31
27
|
|
|
32
28
|
|
|
33
29
|
def _documentation_page_for_url_path(url_path: str) -> Path | None:
|
|
@@ -85,8 +81,7 @@ def test_skill_documentation_urls_render_an_existing_page(path: Path) -> None:
|
|
|
85
81
|
)
|
|
86
82
|
|
|
87
83
|
assert not unrendered, (
|
|
88
|
-
f"{relative_path} links documentation-site paths that no `docs/` page "
|
|
89
|
-
f"renders: {unrendered}"
|
|
84
|
+
f"{relative_path} links documentation-site paths that no `docs/` page renders: {unrendered}"
|
|
90
85
|
)
|
|
91
86
|
|
|
92
87
|
|
{mainsequence-9.0.23.dev66 → mainsequence-9.0.24.dev67}/tests/test_code_repository_skills.py
RENAMED
|
@@ -604,7 +604,6 @@ def test_code_repository_maintenance_is_sdk_owned_and_uses_canonical_cli_workflo
|
|
|
604
604
|
assert "\nmainsequence code-repository sync --path .\n" in content
|
|
605
605
|
assert "code-repository sync --path . -m" not in content
|
|
606
606
|
assert "mainsequence code-repository update-agent-skills --path ." in content
|
|
607
|
-
assert "mainsequence code-repository update AGENTS.md --path ." in content
|
|
608
607
|
assert "only when the user explicitly requests it" in content
|
|
609
608
|
assert "mainsequence://" not in content
|
|
610
609
|
|
|
@@ -259,4 +259,4 @@ def test_packaged_scaffold_keeps_retained_sdk_skills():
|
|
|
259
259
|
"platform_operations/orchestration_and_releases/SKILL.md",
|
|
260
260
|
"sdk_code_repository_execution/SKILL.md",
|
|
261
261
|
}
|
|
262
|
-
assert (SCAFFOLD_ROOT / "AGENTS.md").
|
|
262
|
+
assert not (SCAFFOLD_ROOT / "AGENTS.md").exists()
|