Update to Codex Advisor
Snapshot Oct 28, 2026 · 13:16 UTC · version 1.4.10
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 3 plugins free · no card required.
All fields and original values.
These are saved file metadata. Open a changed file to read its text edits.
Package file
Sep 30, 2026 · 23:15 UTC
{"sha256":"ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a","size":234585}
Oct 28, 2026 · 13:16 UTC
Not present
Package file
Sep 30, 2026 · 23:15 UTC
{"sha256":"ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a","size":234585}
Oct 28, 2026 · 13:16 UTC
Not present
Package file
Sep 30, 2026 · 23:15 UTC
bd2b05047cb9c0e431191d6dbb7c5f8a6baae2afb5fe52f37ac8fed46588edac
Oct 28, 2026 · 13:16 UTC
4ab3069acea26fc5863aaacaf2dadfe0052c9d68fa22eb0211da0440c7ad3d31
Package file
Sep 30, 2026 · 23:15 UTC
2298
Oct 28, 2026 · 13:16 UTC
2503
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
.codex-plugin/assets/composer-icon.png →
.codex-plugin/assets/logo.png →
LICENSE →
scripts/advisor_discovery.py →
scripts/evaluate-triggers.sh →
skills/consultation/SKILL.md →
skills/consultation/references/operations.md →
tests/advisor_transport_support.py →
tests/test_advisor_config.py →
scripts/advisor_catalog.py
− removed · + added
--- before +++ after @@ -0,0 +1,411 @@ +"""Advisor shipped-model and compatibility catalog validation.""" + +from __future__ import annotations + +import json +import stat +import time +from collections.abc import Mapping +from pathlib import Path +from typing import Any + +from advisor_state import ( + EFFORTS, + MAX_JSON_BYTES, + MAX_MODELS, + PRESET_RE, + SCHEMA_VERSION, + TIERS, + TRANSPORT_CONTRACT_VERSION, + ConfigError, + StatePaths, + _MISSING, + _atomic_write, + _duplicate_key, + _require_keys, + _safe_directory, + _validate_effort, + _validate_selector, + read_json, + state_lock, + state_paths, + validate_pair, +) + +def _validate_candidate(value: Any) -> dict[str, Any]: + if not isinstance(value, dict): + raise ConfigError("invalid catalog candidate") + required = {"id", "model", "display_name", "provenance", "visible"} + if not required.issubset(value) or not set(value).issubset( + required | {"last_seen_at", "advertised_efforts", "default_effort"} + ): + raise ConfigError("invalid catalog candidate keys") + candidate = {key: value[key] for key in required} + candidate["id"] = _validate_selector(candidate["id"], label="candidate id") + candidate["model"] = _validate_selector(candidate["model"]) + if ( + not isinstance(candidate["display_name"], str) + or not candidate["display_name"].strip() + ): + raise ConfigError("invalid candidate display name") + if candidate["provenance"] not in {"manual", "discovery"} or not isinstance( + candidate["visible"], bool + ): + raise ConfigError("invalid catalog candidate") + if "last_seen_at" in value: + if not isinstance(value["last_seen_at"], str): + raise ConfigError("invalid candidate timestamp") + candidate["last_seen_at"] = value["last_seen_at"] + has_runtime = "advertised_efforts" in value or "default_effort" in value + if candidate["provenance"] == "discovery" and not has_runtime: + raise ConfigError("discovery candidate lacks runtime efforts") + if has_runtime: + efforts = value.get("advertised_efforts") + if ( + not isinstance(efforts, list) + or not efforts + or len(efforts) > len(EFFORTS) + or len(set(efforts)) != len(efforts) + ): + raise ConfigError("invalid advertised efforts") + candidate["advertised_efforts"] = [_validate_effort(item) for item in efforts] + candidate["default_effort"] = _validate_effort(value.get("default_effort")) + if candidate["default_effort"] not in candidate["advertised_efforts"]: + raise ConfigError("default effort is not advertised") + return candidate + + +def _empty_catalog() -> dict[str, Any]: + return { + "schema_version": SCHEMA_VERSION, + "revision": 0, + "candidates": [], + "compatibility": [], + "last_successful_refresh": None, + } + + +def validate_compatibility(value: Any) -> dict[str, str]: + value = _require_keys( + value, + { + "model", + "effort", + "codex_version", + "transport_contract_version", + "verified_at", + }, + label="compatibility record", + ) + pair = validate_pair({"model": value["model"], "effort": value["effort"]}) + for name in ("codex_version", "transport_contract_version", "verified_at"): + if not isinstance(value[name], str) or not value[name]: + raise ConfigError(f"invalid compatibility {name}") + return { + **pair, + **{ + name: value[name] + for name in ("codex_version", "transport_contract_version", "verified_at") + }, + } + + +def validate_catalog(value: Any) -> dict[str, Any]: + value = _require_keys( + value, + { + "schema_version", + "revision", + "candidates", + "compatibility", + "last_successful_refresh", + }, + label="catalog", + ) + if ( + value["schema_version"] != SCHEMA_VERSION + or not isinstance(value["revision"], int) + or isinstance(value["revision"], bool) + or value["revision"] < 0 + ): + raise ConfigError("invalid catalog header") + if ( + not isinstance(value["candidates"], list) + or len(value["candidates"]) > MAX_MODELS + ): + raise ConfigError("invalid catalog candidates") + candidates = [_validate_candidate(item) for item in value["candidates"]] + if len( + {(item["id"], item["model"], item["provenance"]) for item in candidates} + ) != len(candidates): + raise ConfigError("duplicate catalog candidate") + if ( + not isinstance(value["compatibility"], list) + or len(value["compatibility"]) > MAX_MODELS + ): + raise ConfigError("invalid compatibility records") + compatibility = [validate_compatibility(item) for item in value["compatibility"]] + if value["last_successful_refresh"] is not None and not isinstance( + value["last_successful_refresh"], str + ): + raise ConfigError("invalid catalog refresh timestamp") + return { + "schema_version": SCHEMA_VERSION, + "revision": value["revision"], + "candidates": candidates, + "compatibility": compatibility, + "last_successful_refresh": value["last_successful_refresh"], + } + + +def compatibility_is_current( + record: Mapping[str, str], + *, + model: str, + effort: str, + transport_contract_version: str = TRANSPORT_CONTRACT_VERSION, +) -> bool: + """Return whether an exact canary still proves this transport pair. + + The recorded CLI version is provenance, not an eligibility constraint. A + runtime inspection remains the authority for each actual child launch. + """ + return ( + record.get("model") == model + and record.get("effort") == effort + and record.get("transport_contract_version") == transport_contract_version + ) + + +def shipped_default_launch_eligible( + *, + tier: str, + model: str, + effort: str, + transport_contract_version: str = TRANSPORT_CONTRACT_VERSION, +) -> bool: + """Permit one shipped default pair to be attempted for its own tier. + + This is deliberately not compatibility proof. The real child still has to + pass the exact post-run identity and transport inspection before acceptance. + """ + if tier not in TIERS or transport_contract_version != TRANSPORT_CONTRACT_VERSION: + return False + default = load_shipped_models()["defaults"][tier] + return default == {"model": model, "effort": effort} + + +def load_catalog(paths: StatePaths | None = None) -> dict[str, Any]: + paths = paths or state_paths() + if not paths.root.exists() and not paths.root.is_symlink(): + return _empty_catalog() + _safe_directory(paths.root, create=False) + stored = read_json(paths.catalog, missing=_MISSING) + return _empty_catalog() if stored is _MISSING else validate_catalog(stored) + + +def load_shipped_models() -> dict[str, Any]: + """Load the bounded, immutable catalog shipped beside this helper.""" + path = Path(__file__).resolve().parent.parent / "models.json" + try: + info = path.lstat() + except FileNotFoundError as exc: + raise ConfigError("shipped model catalog is unavailable") from exc + if ( + not stat.S_ISREG(info.st_mode) + or stat.S_ISLNK(info.st_mode) + or info.st_size > MAX_JSON_BYTES + ): + raise ConfigError("shipped model catalog is unsafe") + try: + with path.open("r", encoding="utf-8") as handle: + value = json.load(handle, object_pairs_hook=_duplicate_key) + except (OSError, UnicodeDecodeError, json.JSONDecodeError, RecursionError) as exc: + raise ConfigError("shipped model catalog is invalid") from exc + return validate_shipped_models(value) + + +def validate_shipped_models(value: Any) -> dict[str, Any]: + """Validate every shipped default and baseline without inferring support.""" + value = _require_keys( + value, + { + "schema_version", + "transport_contract_version", + "tested_codex_cli", + "defaults", + "models", + }, + label="shipped model catalog", + ) + if ( + value["schema_version"] != SCHEMA_VERSION + or value["transport_contract_version"] != TRANSPORT_CONTRACT_VERSION + or not isinstance(value["tested_codex_cli"], str) + or not value["tested_codex_cli"].strip() + or not isinstance(value["models"], list) + or not 1 <= len(value["models"]) <= MAX_MODELS + ): + raise ConfigError("shipped model catalog is invalid") + defaults_raw = _require_keys(value["defaults"], set(TIERS), label="shipped defaults") + defaults = {tier: validate_pair(defaults_raw[tier]) for tier in TIERS} + models: list[dict[str, Any]] = [] + for item in value["models"]: + item = _require_keys( + item, + {"id", "model", "display_name", "tiers", "compatibility_baseline"}, + label="shipped model", + ) + if ( + not isinstance(item["id"], str) + or not PRESET_RE.fullmatch(item["id"]) + or not isinstance(item["display_name"], str) + or not item["display_name"].strip() + or not isinstance(item["tiers"], list) + or any(not isinstance(tier, str) for tier in item["tiers"]) + or len(set(item["tiers"])) != len(item["tiers"]) + or any(tier not in TIERS for tier in item["tiers"]) + ): + raise ConfigError("shipped model catalog is invalid") + baseline = item["compatibility_baseline"] + if baseline is not None: + baseline = _require_keys( + baseline, + {"efforts", "transport_contract_version"}, + label="shipped compatibility baseline", + ) + if ( + not item["tiers"] + or baseline["transport_contract_version"] != TRANSPORT_CONTRACT_VERSION + or not isinstance(baseline["efforts"], list) + or not baseline["efforts"] + or any(not isinstance(effort, str) for effort in baseline["efforts"]) + or len(set(baseline["efforts"])) != len(baseline["efforts"]) + ): + raise ConfigError("shipped model catalog is invalid") + baseline = { + "efforts": [_validate_effort(effort) for effort in baseline["efforts"]], + "transport_contract_version": TRANSPORT_CONTRACT_VERSION, + } + elif item["tiers"]: + raise ConfigError("shipped model catalog is invalid") + models.append( + { + "id": item["id"], + "model": _validate_selector(item["model"]), + "display_name": item["display_name"], + "tiers": list(item["tiers"]), + "compatibility_baseline": baseline, + } + ) + if len({item["id"] for item in models}) != len(models) or len( + {item["model"] for item in models} + ) != len(models): + raise ConfigError("shipped model catalog is invalid") + for tier, pair in defaults.items(): + matching = next( + ( + item + for item in models + if item["model"] == pair["model"] and tier in item["tiers"] + ), + None, + ) + if ( + matching is None + or matching["compatibility_baseline"] is None + or pair["effort"] not in matching["compatibility_baseline"]["efforts"] + ): + raise ConfigError("shipped model catalog is invalid") + return { + "schema_version": SCHEMA_VERSION, + "transport_contract_version": TRANSPORT_CONTRACT_VERSION, + "tested_codex_cli": value["tested_codex_cli"], + "defaults": {tier: defaults[tier] for tier in sorted(TIERS)}, + "models": models, + } + + +def add_manual_candidate( + model: str, + *, + candidate_id: str | None = None, + display_name: str | None = None, + paths: StatePaths | None = None, +) -> dict[str, Any]: + model = _validate_selector(model) + candidate_id = _validate_selector(candidate_id or model, label="candidate id") + if ( + not isinstance(display_name or model, str) + or not (display_name or model).strip() + ): + raise ConfigError("invalid candidate display name") + paths = paths or state_paths() + with state_lock(paths): + catalog = load_catalog(paths) + candidate = { + "id": candidate_id, + "model": model, + "display_name": display_name or model, + "provenance": "manual", + "visible": True, + } + catalog["candidates"] = [ + item + for item in catalog["candidates"] + if not ( + item["id"] == candidate_id + and item["model"] == model + and item["provenance"] == "manual" + ) + ] + [candidate] + catalog["revision"] += 1 + _atomic_write(paths.catalog, validate_catalog(catalog)) + return catalog + + +def _pair_is_compatible(pair: Mapping[str, str], catalog: Mapping[str, Any]) -> bool: + """Require a current exact canary for any explicit model/preset route.""" + return any( + compatibility_is_current(item, **pair) + for item in catalog["compatibility"] + ) + + +def _pair_is_listed(pair: Mapping[str, str], catalog: Mapping[str, Any]) -> bool: + shipped = load_shipped_models()["models"] + for item in shipped: + if isinstance(item, dict) and item.get("model") == pair["model"]: + return True + for item in catalog["candidates"]: + if item["model"] != pair["model"]: + continue + efforts = item.get("advertised_efforts") + return efforts is None or pair["effort"] in efforts + return False + + +def record_compatibility( + pair: Mapping[str, str], *, codex_version: str, paths: StatePaths | None = None +) -> dict[str, Any]: + """Record a successful exact transport canary without selecting the pair.""" + pair = validate_pair(pair) + paths = paths or state_paths() + receipt = validate_compatibility( + { + **pair, + "codex_version": codex_version, + "transport_contract_version": TRANSPORT_CONTRACT_VERSION, + "verified_at": str(int(time.time())), + } + ) + with state_lock(paths): + catalog = load_catalog(paths) + catalog["compatibility"] = [ + item + for item in catalog["compatibility"] + if not (item["model"] == pair["model"] and item["effort"] == pair["effort"]) + ] + [receipt] + catalog["revision"] += 1 + _atomic_write(paths.catalog, validate_catalog(catalog)) + return catalog
Full technical diff · 47 changed fields
removed /files/.codex-plugin~1assets~1composer-icon.png
{
"sha256": "ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a",
"size": 234585
}Field is absent
removed /files/.codex-plugin~1assets~1logo.png
{
"sha256": "ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a",
"size": 234585
}Field is absent
changed /files/.codex-plugin~1plugin.json/sha256
"bd2b05047cb9c0e431191d6dbb7c5f8a6baae2afb5fe52f37ac8fed46588edac"
"4ab3069acea26fc5863aaacaf2dadfe0052c9d68fa22eb0211da0440c7ad3d31"
changed /files/.codex-plugin~1plugin.json/size
2298
2503
added /files/LICENSE
Field was absent
{
"sha256": "9bd605a064788e28a3961c76ba61142bed298270bfa96b06028ac450821a5258",
"size": 1071
}added /files/NOTICE.md
Field was absent
{
"sha256": "6fbd501f4d2dc5deb6656dbe7571ce7c78c59db8bac92416c41f2f7fd1891316",
"size": 332
}changed /files/advisor.toml/sha256
"55b952049fb9ac8b472f700321a5d92eb579605c7147797f41735b221ecab191"
"73bbb4b5bad3eb5146af1e17c270517187028266da3c4a3db722e6adf81a71da"
changed /files/advisor.toml/size
595
597
changed /files/agents~1advisor-sol.toml/sha256
"517f670937b2174dcd6467e39381b55d3ba133bd97c697c988bf77082dd1531d"
"b3d58c2bd9164f0117338e9d620c3c668abf7eba12949bb840704b65d86c9a1f"
changed /files/agents~1advisor-sol.toml/size
1584
1586
changed /files/agents~1advisor-terra.toml/sha256
"4b46bd1f354e17d0ed2eaa746fb3f838e2d5bee04ed44524b9557de1820b064e"
"97e9beed9a0a571423a580b6d5190d9b6b2d65a31f5dcef694f02c0246dea1ee"
changed /files/models.json/sha256
"06f8c49d7943d56682a40633a6bb072831d087d6f589f25096c2042e8017a252"
"7e6fa2bf8998c8c6f55534b15da19bccf6d239db74da517b9bf78d2063e4caa3"
changed /files/models.json/size
899
903
changed /files/scripts~1advisor-config.sh/sha256
"41fe054137a6530e6d14c7a4811c857c131a95d81eae6a95080f0cf45d151e28"
"3889220b9198ca419a3deece0a0d8f212965b5d9b95e62effa2b27df49abdd70"
changed /files/scripts~1advisor-config.sh/size
325
692
added /files/scripts~1advisor_canary.py
Field was absent
{
"sha256": "39c912ee039e087bb1abc614a6fa7eee56057084991cf66230528f4e1c1f7a5e",
"size": 10505
}added /files/scripts~1advisor_catalog.py
Field was absent
{
"sha256": "c78f3898475acb922432cc0c78c70cd67b3c61e5072ec7b77a76789f7a51a01f",
"size": 14818
}changed /files/scripts~1advisor_config.py/sha256
"f5feee3e230f98a988b305f916eb4684282ca4597eebfa11286ab4acb1aa4c8d"
"e7539d73a9317b4c39e3c222052fdabfa165ea274f43706b2f922523877e73bf"
changed /files/scripts~1advisor_config.py/size
90558
16411
added /files/scripts~1advisor_discovery.py
Field was absent
{
"sha256": "03b4df7bf8fc58b7ac3ed3576831ba128a616fd8817be4abe9faf3b97cb464d9",
"size": 9135
}added /files/scripts~1advisor_doctor.py
Field was absent
{
"sha256": "0cd8973ace6fee18fab8400725090d919e73e3cde20a3bd8033029a1d529d603",
"size": 9041
}added /files/scripts~1advisor_journal.py
Field was absent
{
"sha256": "6a2a994097b01fa8c956dcd73763565169e7ee5fca2cb05ee1fbca8bad852c88",
"size": 9681
}added /files/scripts~1advisor_settings.py
Field was absent
{
"sha256": "8a3f89f0983534ed726cc1bb1dc8f7dcf14d0443e08dba655fa1d4692756be9d",
"size": 13440
}added /files/scripts~1advisor_state.py
Field was absent
{
"sha256": "e788e9b64d2cdb21c52ca76e6a7b68b5d7695e449f66d80f440da0319118b56e",
"size": 12326
}changed /files/scripts~1evaluate-triggers.sh/sha256
"ead7570ec2086ed726820b56251596120107f8e7bc07caa028d6ee89342dd8fe"
"e2a5d537e51a2c9c1cd31c0a8060e9fbdc7d9eecad3ccdbcc9c3baddf4f238c9"
changed /files/scripts~1evaluate-triggers.sh/size
25580
25586
changed /files/scripts~1install-agents.sh/sha256
"59ac0e3cadae49cd6228d592a0e665aef80a0f03cd46e00f639c3c792753285f"
"c8bcb94735ae0bdb276a05e68e69bba293155fe3644545bff0cd920208ebd83b"
changed /files/scripts~1install-agents.sh/size
16432
18620
changed /files/scripts~1run-advisor.sh/sha256
"e93d33441b827c3b6cb87ea75cee87dd4e7d7c8381fdb1c676b8421f30e83131"
"c31b5f6af99f5d577748260e63ea0cebc17ef55a7c20e93917358e2bf1afb4ab"
changed /files/scripts~1run-advisor.sh/size
27596
27506
changed /files/scripts~1verify.sh/sha256
"06a5b9bceda7dfb693353744e75fb371e335f815be25e5dd0fe4b5c941f52566"
"dde2181752a614b3b914b48dd62f29798185b6dbe3e5d57ddcbe068ef8ef0d62"
changed /files/scripts~1verify.sh/size
129023
4700
removed /files/settings.schema.json
{
"sha256": "2b38841cbc898b9da626845e23b6db002d71755a1ff16114e67fb2ad9b1a9cb5",
"size": 1200
}Field is absent
changed /files/skills~1consultation~1SKILL.md/sha256
"8314e737292358a8731034058946cf53a534082e5d098f1d03ec5b4a24517dd5"
"fc07af46962e0ddcdc0d4fadd53c959d7938580e624fcb959820105d92f5cc9f"
changed /files/skills~1consultation~1SKILL.md/size
17484
17488
changed /files/skills~1consultation~1references~1operations.md/sha256
"3d82d8689478200f19ac76aa02375512a8c8bd096959b8c78f73d81b5c548004"
"41f6790b742bf146e9f58ae2b7d5fc710e07f19b4ed2fe282cdd63475f621047"
changed /files/skills~1consultation~1references~1operations.md/size
22558
22564
added /files/tests~1advisor_transport_support.py
Field was absent
{
"sha256": "ab4d43ce97049e90f3902947c9251c087b681e5a2f6b963085b85b5c0b54ffd2",
"size": 11089
}changed /files/tests~1test_advisor_cli.py/sha256
"b1b2ad9415e560da63ff6f8f8cfb76233b828de6fb459f306e3a6b58b3100f64"
"0edfa5b16f1d35ebb714b177ab4b6c12ad3f4647ab965e290e1c19415058540b"
changed /files/tests~1test_advisor_cli.py/size
17635
27646
changed /files/tests~1test_advisor_config.py/sha256
"169b5aa46700a4f09c6ee0dbadf3d02b1b6c91465a356de38804d5ebdc8ed9dc"
"aa52b9fadef51b8121f4da4038914058952c1268aac23b68e1d8c7dcddd9a677"
changed /files/tests~1test_advisor_config.py/size
25728
28147
added /files/tests~1test_advisor_setup.py
Field was absent
{
"sha256": "88f7545477e62f2a3d4317e32410eecdd92ea907679fc64206eddbd824d12ed9",
"size": 10603
}changed /files/tests~1test_advisor_transport.py/sha256
"aa566e1057819c5c1385b8659ddb51eb1f7e55ec8551e2acdb52a1feadb9067f"
"d5318adabba6b6c1d2d5b7c9d41d48f91ac6b61352f897e5368afbf1bcacc4b9"
changed /files/tests~1test_advisor_transport.py/size
26202
21224
changed /files/tests~1test_advisor_usage.py/sha256
"d5a5d1ecf82c9a2254e3565d24d7854ef05442cbacc1725432503138f153f70b"
"3cfe33013652669e3756f5945248ac33776ce7f03ab53435aca794ca50f53d68"
changed /files/tests~1test_advisor_usage.py/size
24681
24870
Full snapshot data
{
"files": {
".codex-plugin/plugin.json": {
"sha256": "4ab3069acea26fc5863aaacaf2dadfe0052c9d68fa22eb0211da0440c7ad3d31",
"size": 2503
},
"LICENSE": {
"sha256": "9bd605a064788e28a3961c76ba61142bed298270bfa96b06028ac450821a5258",
"size": 1071
},
"NOTICE.md": {
"sha256": "6fbd501f4d2dc5deb6656dbe7571ce7c78c59db8bac92416c41f2f7fd1891316",
"size": 332
},
"advisor-response.schema.json": {
"sha256": "01019be4a32a8257d852d50ec791184e6edbfbaa39cafd61a575e990c9933c40",
"size": 666
},
"advisor.toml": {
"sha256": "73bbb4b5bad3eb5146af1e17c270517187028266da3c4a3db722e6adf81a71da",
"size": 597
},
"agents/advisor-astra.toml": {
"sha256": "355b6e0286a15900f64e8bf6a5e743b26eb4a9fdf7e282ef70c7adb61352f754",
"size": 1582
},
"agents/advisor-sol.toml": {
"sha256": "b3d58c2bd9164f0117338e9d620c3c668abf7eba12949bb840704b65d86c9a1f",
"size": 1586
},
"agents/advisor-terra.toml": {
"sha256": "97e9beed9a0a571423a580b6d5190d9b6b2d65a31f5dcef694f02c0246dea1ee",
"size": 1597
},
"assets/advisor-composer-icon.png": {
"sha256": "ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a",
"size": 234585
},
"assets/advisor-logo.png": {
"sha256": "ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a",
"size": 234585
},
"evals/trigger-cases.json": {
"sha256": "68aa2b683073c632d16f146c55598ff906044248ad85998aaac3f9074278cfc1",
"size": 2943
},
"models.json": {
"sha256": "7e6fa2bf8998c8c6f55534b15da19bccf6d239db74da517b9bf78d2063e4caa3",
"size": 903
},
"scripts/advisor-audit.sh": {
"sha256": "c8e905fbf62f620b273ff839f574a0f1a0367b46e6b839426f0c05721a886bc8",
"size": 37485
},
"scripts/advisor-config.sh": {
"sha256": "3889220b9198ca419a3deece0a0d8f212965b5d9b95e62effa2b27df49abdd70",
"size": 692
},
"scripts/advisor_canary.py": {
"sha256": "39c912ee039e087bb1abc614a6fa7eee56057084991cf66230528f4e1c1f7a5e",
"size": 10505
},
"scripts/advisor_catalog.py": {
"sha256": "c78f3898475acb922432cc0c78c70cd67b3c61e5072ec7b77a76789f7a51a01f",
"size": 14818
},
"scripts/advisor_config.py": {
"sha256": "e7539d73a9317b4c39e3c222052fdabfa165ea274f43706b2f922523877e73bf",
"size": 16411
},
"scripts/advisor_discovery.py": {
"sha256": "03b4df7bf8fc58b7ac3ed3576831ba128a616fd8817be4abe9faf3b97cb464d9",
"size": 9135
},
"scripts/advisor_doctor.py": {
"sha256": "0cd8973ace6fee18fab8400725090d919e73e3cde20a3bd8033029a1d529d603",
"size": 9041
},
"scripts/advisor_journal.py": {
"sha256": "6a2a994097b01fa8c956dcd73763565169e7ee5fca2cb05ee1fbca8bad852c88",
"size": 9681
},
"scripts/advisor_process.py": {
"sha256": "841274eebb90ef5d0a99fe26ab5f2ff30e86883dcb3d20bce112206625953c04",
"size": 17793
},
"scripts/advisor_settings.py": {
"sha256": "8a3f89f0983534ed726cc1bb1dc8f7dcf14d0443e08dba655fa1d4692756be9d",
"size": 13440
},
"scripts/advisor_state.py": {
"sha256": "e788e9b64d2cdb21c52ca76e6a7b68b5d7695e449f66d80f440da0319118b56e",
"size": 12326
},
"scripts/evaluate-triggers.sh": {
"sha256": "e2a5d537e51a2c9c1cd31c0a8060e9fbdc7d9eecad3ccdbcc9c3baddf4f238c9",
"size": 25586
},
"scripts/inspect-agent-runtime.sh": {
"sha256": "bb5d7d3011529e73899c76474527d8106486f67017ea09bccb107b36bc4e8831",
"size": 4560
},
"scripts/inspect-parent-runtime.sh": {
"sha256": "b647eb7ea5d00c2fe297840e7a4ad8a2e13e9ddedcd679cf89da3865f41080bd",
"size": 2224
},
"scripts/install-agents.sh": {
"sha256": "c8bcb94735ae0bdb276a05e68e69bba293155fe3644545bff0cd920208ebd83b",
"size": 18620
},
"scripts/run-advisor.sh": {
"sha256": "c31b5f6af99f5d577748260e63ea0cebc17ef55a7c20e93917358e2bf1afb4ab",
"size": 27506
},
"scripts/verify.sh": {
"sha256": "dde2181752a614b3b914b48dd62f29798185b6dbe3e5d57ddcbe068ef8ef0d62",
"size": 4700
},
"skills/consultation/SKILL.md": {
"sha256": "fc07af46962e0ddcdc0d4fadd53c959d7938580e624fcb959820105d92f5cc9f",
"size": 17488
},
"skills/consultation/agents/openai.yaml": {
"sha256": "3a9c1d3552e1d5aa94812fea0bc6af189a5bde271596ca8de7b3ea979e01a73f",
"size": 312
},
"skills/consultation/references/operations.md": {
"sha256": "41f6790b742bf146e9f58ae2b7d5fc710e07f19b4ed2fe282cdd63475f621047",
"size": 22564
},
"tests/advisor_transport_support.py": {
"sha256": "ab4d43ce97049e90f3902947c9251c087b681e5a2f6b963085b85b5c0b54ffd2",
"size": 11089
},
"tests/test_advisor_cli.py": {
"sha256": "0edfa5b16f1d35ebb714b177ab4b6c12ad3f4647ab965e290e1c19415058540b",
"size": 27646
},
"tests/test_advisor_config.py": {
"sha256": "aa52b9fadef51b8121f4da4038914058952c1268aac23b68e1d8c7dcddd9a677",
"size": 28147
},
"tests/test_advisor_setup.py": {
"sha256": "88f7545477e62f2a3d4317e32410eecdd92ea907679fc64206eddbd824d12ed9",
"size": 10603
},
"tests/test_advisor_transport.py": {
"sha256": "d5318adabba6b6c1d2d5b7c9d41d48f91ac6b61352f897e5368afbf1bcacc4b9",
"size": 21224
},
"tests/test_advisor_usage.py": {
"sha256": "3cfe33013652669e3756f5945248ac33776ce7f03ab53435aca794ca50f53d68",
"size": 24870
}
}
}SHA-256 of public snapshot: a367e114a58cede454294847a55b600b337e44eb1140d8192311a44c4c2da40e