@topolo/cli 0.13.12 → 0.13.13
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.
package/README.md
CHANGED
|
@@ -453,7 +453,7 @@ silently become version 2 CLI plans.
|
|
|
453
453
|
|
|
454
454
|
`topolo agent-packs --store /owned/AgentPacks runtime-adoption plan --manifest /review/adoption.json` produces a nonwriting configuration plan. Review its physical targets and digest, then use `runtime-adoption apply --manifest /review/adoption.json --plan-digest <sha256> --confirm` for one configuration-only attempt.
|
|
455
455
|
|
|
456
|
-
The closed owner manifest binds the actual consumer set and effective local Topolo transport origins, physical file preimages, shared aliases, private profile metadata, immutable CLI 0.13.11/MCP 0.14.26/SDK 0.23.21
|
|
456
|
+
The closed owner manifest binds the actual consumer set and effective local Topolo transport origins, physical file preimages, shared aliases, private profile metadata, one of the two reviewed immutable consumer tuples (CLI 0.13.11/MCP 0.14.26/SDK 0.23.21 or CLI 0.13.12/MCP 0.14.27/SDK 0.23.22) and the separately pinned successor Python adapter. Consumer tuple versions are independent of the driver package version; mixed tuples and other versions refuse. It must include every server in each physical config as either a targeted transport or an explicitly untouched server. Empty or incomplete manifests refuse. The command never installs skills, rebinds a home, changes existing instructions/permissions, starts a consumer or probes Auth.
|
|
457
457
|
|
|
458
458
|
A successful apply means configuration is prepared. It does not mean existing processes reloaded it, the private account is healthy, permissions were granted or either native harness completed a task. Starting or refreshing consumers is a separate owner-authorized step and can contact private Auth and renew the selected private profile. Public credential-store repair is not a blanket prerequisite for independent private profiles. See [the manifest and effect boundaries](agent-packs/README.md#private-runtime-adoption).
|
|
459
459
|
|
package/agent-packs/README.md
CHANGED
|
@@ -710,7 +710,7 @@ The manifest is a local owner-reviewed configuration scope, not native provenanc
|
|
|
710
710
|
- `ownerGeneration: {path, sha256}`: the owner's current bounded nonsecret effective-transport/generation record, inside that library. The owner must establish its native currency separately.
|
|
711
711
|
- `consumers`: the complete unique existing native IDs in scope. Target rows must account for every ID; no new native IDs are created.
|
|
712
712
|
- `profile: {path, publicPath, metadata, environment, contextKey, principalId}`: absolute private and public credential-file references, explicit organization context, and metadata only. Files must be physically distinct; the private profile must be owned, single-link, regular and mode 0600. Neither profile's contents are read or hashed. A renewal that changes private file metadata invalidates the descriptor and requires owner reconciliation.
|
|
713
|
-
- `runtime: {node, cli, mcp, cohort, pythonSource, adapterFiles, osEnvironment}`. Each executable/entry and each `cohort` value is `{path, sha256}`. Cohort keys `cli`, `mcp`, `sdk` pin their package JSON;
|
|
713
|
+
- `runtime: {node, cli, mcp, cohort, pythonSource, adapterFiles, osEnvironment}`. Each executable/entry and each `cohort` value is `{path, sha256}`. Cohort keys `cli`, `mcp`, `sdk` pin their package JSON; the exact reviewed consumer tuples are CLI 0.13.11/MCP 0.14.26/SDK 0.23.21 and CLI 0.13.12/MCP 0.14.27/SDK 0.23.22. Each tuple is coupled: mixed or unreviewed versions refuse, and both CLI and MCP must depend on that tuple's exact SDK version. The consumer tuple is independent of the driver package version. CLI and MCP entries must be their pinned package's `dist/index.js`. `pythonSource` is the physical successor source directory; `adapterFiles` pins its `topolo_agent_pack/{cli,live,topolo}.py`. Verify the complete installed cohort independently before admitting its pins. `osEnvironment` permits only HOME/PATH and optional USER/LOGNAME/LANG/LC_ALL/TMPDIR, with no credential, service-origin, Node or installation overrides.
|
|
714
714
|
- `targets`: one row per unique physical configuration file, with `{path, before, aliases, format, rootKey, consumers, transports, untouchedServers}`. Supported formats are JSON `mcpServers` and simple TOML `mcp_servers` tables. Each transport is `{name, origin, consumers}` and must already exist as a local command; URL, inherited `env_vars`, installation-mode, ambiguous names or unsupported TOML layouts refuse. `origin` is the exact physical file. The complete physical server map must equal the targeted names plus `untouchedServers`. The owner must independently bind all effective native layers; a zero-table query or a guessed server name is insufficient.
|
|
715
715
|
- `launcher: {path, before}`: exactly the owned generated `launchers/topolo-agent-pack-backend`; its interpreter, owner and mode are preserved.
|
|
716
716
|
- `preserve`: nonsecret `{path, sha256}` references to existing roster, model/effort, permission, charter/context, routing and lifecycle records. Include every protected fixed and dynamic record in the approved scope. These may not overlap destinations. No transcript or credential contents belong in a manifest.
|
|
@@ -2086,12 +2086,19 @@ def adoption_runtime(runtime,profile):
|
|
|
2086
2086
|
adoption_read_guard(profile,adoption_runtime_paths(runtime))
|
|
2087
2087
|
for key in ['node','cli','mcp']:adoption_pin(runtime[key],profile)
|
|
2088
2088
|
adoption_keys(runtime['cohort'],['cli','mcp','sdk'])
|
|
2089
|
-
|
|
2089
|
+
packages={}
|
|
2090
|
+
for key,name in [('cli','@topolo/cli'),('mcp','@topolo/mcp'),('sdk','@topolo/sdk')]:
|
|
2090
2091
|
package=json.loads(adoption_pin(runtime['cohort'][key],profile))
|
|
2091
|
-
adoption_require(package.get('name')==name
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2092
|
+
adoption_require(package.get('name')==name,'immutable target cohort differs')
|
|
2093
|
+
packages[key]=package
|
|
2094
|
+
versions=tuple(packages[key].get('version') for key in ['cli','mcp','sdk'])
|
|
2095
|
+
# Reviewed consumer tuples are independent of this adapter driver's version.
|
|
2096
|
+
# Membership is coupled: independently allowed versions would admit mixtures.
|
|
2097
|
+
adoption_require(versions in (('0.13.11','0.14.26','0.23.21'),('0.13.12','0.14.27','0.23.22')),
|
|
2098
|
+
'immutable target cohort differs')
|
|
2099
|
+
for key in ['cli','mcp']:
|
|
2100
|
+
adoption_require(runtime[key]['path']==str(pathlib.Path(runtime['cohort'][key]['path']).parent/'dist/index.js') and
|
|
2101
|
+
packages[key].get('dependencies',{}).get('@topolo/sdk')==versions[2],'entry/dependency cohort differs')
|
|
2095
2102
|
source=pathlib.Path(runtime['pythonSource'])
|
|
2096
2103
|
adoption_require(source.is_absolute() and source==source.resolve(),'physical adapter source required')
|
|
2097
2104
|
adoption_require(isinstance(runtime['adapterFiles'],list) and len(runtime['adapterFiles'])==3 and
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topolo/cli",
|
|
3
3
|
"packageManager": "pnpm@10.17.1",
|
|
4
|
-
"version": "0.13.
|
|
5
|
-
"topoloPublishedVersion": "0.13.
|
|
4
|
+
"version": "0.13.13",
|
|
5
|
+
"topoloPublishedVersion": "0.13.13",
|
|
6
6
|
"description": "Public command-line interface for Topolo customer organizations, developers, and agents.",
|
|
7
7
|
"license": "UNLICENSED",
|
|
8
8
|
"author": "Topolo",
|