← Codex AdvisorCONTENT HISTORY

Update to Codex Advisor

Snapshot Oct 28, 2026 · 13:16 UTC · version 1.4.10

WHAT CHANGED

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.

Save Codex Advisor and check future changes in Following.

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

Before

Sep 30, 2026 · 23:15 UTC

{"sha256":"ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a","size":234585}

After

Oct 28, 2026 · 13:16 UTC

Not present

Package file

Before

Sep 30, 2026 · 23:15 UTC

{"sha256":"ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a","size":234585}

After

Oct 28, 2026 · 13:16 UTC

Not present

Package file

Before

Sep 30, 2026 · 23:15 UTC

bd2b05047cb9c0e431191d6dbb7c5f8a6baae2afb5fe52f37ac8fed46588edac

After

Oct 28, 2026 · 13:16 UTC

4ab3069acea26fc5863aaacaf2dadfe0052c9d68fa22eb0211da0440c7ad3d31

Package file

Before

Sep 30, 2026 · 23:15 UTC

2298

After

Oct 28, 2026 · 13:16 UTC

2503

Compare saved observations

Download comparison JSON

tests/test_advisor_cli.py

− removed · + added

--- before
+++ after
@@ -4,6 +4,7 @@
 
 import json
 import os
+import shutil
 import signal
 import subprocess
 import sys
@@ -125,6 +126,110 @@
         result = self.run_cli("--json", "models", "add", model)
         self.assertEqual(result.returncode, 0, result.stderr)
 
+    def test_cli_output_contract_for_both_rendering_modes(self) -> None:
+        user_home = self.root / "user-home"
+        user_home.mkdir()
+        env = {**self.env, "HOME": str(user_home)}
+        show_keys = "account_availability catalog_present deadline_seconds legacy_settings live_config message selection_revision selections status usage_journal_enabled"
+        error_keys = "error message status"
+        settings_keys = "message settings status"
+        now = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
+        journal_record = {
+            "schema_version": 1, "consultation_id": str(uuid.uuid4()),
+            "started_at": now, "finished_at": now,
+            "tier": "standard", "model": "manual/model", "effort": "high",
+            "outcome": "failed", "transport_contract_version": "1.4",
+            "total_duration_ms": 1,
+            "attempts": [{"number": 1, "duration_ms": 1, "outcome": "runtime_failed",
+                          "usage": {"input": None, "cached_input": None, "output": None, "reasoning": None}}],
+            "totals": {"input": None, "cached_input": None, "output": None, "reasoning": None},
+        }
+        rows = [
+            (("show",), 0, show_keys, "Advisor live configuration and local non-selection settings"),
+            (("status",), 0, show_keys, "Advisor live configuration and local non-selection settings"),
+            (("models", "list"), 0, "catalog message models shipped status", "Advisor shipped, manual, and discovered model evidence"),
+            (("models", "add", "manual/model"), 0, "catalog message status", "Manual candidate recorded; compatibility is unverified"),
+            (("models", "add", "bad model"), 2, error_keys, "unsafe model selector"),
+            (("resolve", "--tier", "standard"), 0, "launch message status", "Immutable Advisor launch record"),
+            (("deadline",), 0, "deadline_seconds message selection_revision status", "Advisor total deadline"),
+            (("deadline", "120"), 0, "deadline_seconds message selection_revision status", "Advisor total deadline saved"),
+            (("set", "--tier", "standard", "--model", "manual/model", "--effort", "high"), 2, error_keys, "set is legacy-only; edit the installed advisor.toml for --tier consultations"),
+            (("reset",), 2, error_keys, "reset is legacy-only; edit the installed advisor.toml for --tier consultations"),
+            (("restore",), 0, settings_keys, "Prior legacy settings restored; --tier continues to use advisor.toml"),
+            (("preset", "trial", "--model", "manual/model", "--effort", "high"), 2, error_keys, "preset model and effort are not currently compatible"),
+            (("journal", "status"), 0, "enabled message records status", "Content-free usage journal status"),
+            (("journal", "enable"), 0, settings_keys, "Usage journal enabled"),
+            (("journal", "status"), 0, "enabled message records status", "Content-free usage journal status"),
+            (("_journal-record", json.dumps(journal_record)), 0, "message status written", "Usage journal record processed"),
+            (("journal", "disable"), 0, settings_keys, "Usage journal disabled"),
+            (("journal", "status"), 0, "enabled message records status", "Content-free usage journal status"),
+            (("journal", "clear"), 0, "cleared message status", "Usage journal cleared"),
+            (("_journal-record", "{}"), 2, error_keys, "invalid usage journal record keys"),
+            (("_consume-canary", "bad"), 2, error_keys, "invalid canary authorization"),
+            (("_consume-canary",), 0, "launch message status", "Authorized synthetic canary"),
+            (("doctor",), 0, "account_availability catalog current_compatibility dependencies discovery_protocol errors last_content_free_failure launch_eligibility live_config message parent_runtime prior_settings_backup settings stale_selections status", "Local read-only Advisor diagnostics"),
+            (("unknown-command",), 2, "", ""),
+        ]
+        journal_enabled = False
+        for args, exit_code, keys, message in rows:
+            for as_json in (True, False):
+                with self.subTest(args=args, as_json=as_json):
+                    call_args = args
+                    if args[0] == "_consume-canary" and len(args) == 1:
+                        token = ("a" if as_json else "b") * 32
+                        canaries = self.home / "advisor" / "canaries"
+                        canaries.mkdir(mode=0o700, exist_ok=True)
+                        authorization = canaries / f"{token}.json"
+                        authorization.write_text(json.dumps({
+                            "model": "manual/model", "effort": "high",
+                            "codex_version": "codex-cli 0.153.2",
+                            "transport_contract_version": "1.4",
+                            "expires_at": int(time.time()) + 300,
+                        }))
+                        authorization.chmod(0o600)
+                        call_args = (*args, token)
+                    result = self.run_cli(*(('--json',) if as_json else ()), *call_args, env=env)
+                    self.assertEqual(result.returncode, exit_code, result.stderr)
+                    if args[0] == "unknown-command":
+                        self.assertEqual(result.stdout, "")
+                        self.assertTrue(result.stderr.startswith("usage: advisor-config.sh"))
+                        self.assertIn("invalid choice: 'unknown-command'", result.stderr)
+                        continue
+                    payload = json.loads(result.stdout)
+                    self.assertEqual(sorted(payload), sorted(keys.split()))
+                    self.assertEqual(payload["status"], "ok" if exit_code == 0 else "unavailable")
+                    self.assertEqual(payload["message"], message)
+                    if exit_code == 2:
+                        self.assertEqual(payload["error"], message)
+                    else:
+                        self.assertNotIn("error", payload)
+                    compact = as_json or (exit_code == 0 and args[0] in {
+                        "resolve", "_consume-canary", "_journal-record"
+                    })
+                    expected = json.dumps(payload, sort_keys=True,
+                                          separators=(",", ":") if compact else None,
+                                          indent=None if compact else 2) + "\n"
+                    self.assertEqual(result.stdout, expected)
+                    if args == ("journal", "enable"):
+                        journal_enabled = True
+                    elif args == ("journal", "disable"):
+                        journal_enabled = False
+                    if args[0] == "journal" and args[1] == "status":
+                        self.assertIs(payload["enabled"], journal_enabled)
+                    if args[0] == "_journal-record" and exit_code == 0:
+                        self.assertIs(payload["written"], True)
+                    if args[0] == "resolve":
+                        launch = payload["launch"]
+                        self.assertEqual(sorted(launch), sorted("config_path deadline_seconds effort model selection_revision selection_source source_revision tier transport_contract_version".split()))
+                        self.assertEqual((launch["model"], launch["effort"], launch["deadline_seconds"], launch["selection_source"]),
+                                         ("gpt-6.1-terra", "high", 300, "live-config"))
+                        self.assertEqual(launch["selection_revision"], launch["source_revision"])
+                    if args[0] == "_consume-canary" and exit_code == 0:
+                        launch = payload["launch"]
+                        self.assertEqual(sorted(launch), sorted("codex_version deadline_seconds effort model selection_revision selection_source tier transport_contract_version".split()))
+                        self.assertEqual((launch["model"], launch["effort"], launch["selection_source"]),
+                                         ("manual/model", "high", "authorized-synthetic-canary"))
+
     def test_help_json_cold_start_and_doctor_inspect_actual_parent(self) -> None:
         help_result = self.run_cli("--help")
         self.assertEqual(help_result.returncode, 0)
@@ -134,7 +239,7 @@
         self.assertEqual(show.returncode, 0, show.stderr)
         self.assertEqual(len(show.stdout.splitlines()), 1)
         current = json.loads(show.stdout)
-        self.assertEqual(current["selections"]["standard"]["model"], "gpt-5.6-terra")
+        self.assertEqual(current["selections"]["standard"]["model"], "gpt-6.1-terra")
         self.assertTrue(current["selection_revision"].startswith("sha256:"))
         self.assertTrue(current["live_config"]["path"].endswith("advisor.toml"))
         doctor = self.run_cli("--json", "doctor")
@@ -155,7 +260,7 @@
             self.assertEqual(result.returncode, 0, result.stderr)
             launch = json.loads(result.stdout)["launch"]
             self.assertEqual(
-                (launch["model"], launch["effort"]), ("gpt-5.6-terra", "high")
+                (launch["model"], launch["effort"]), ("gpt-6.1-terra", "high")
             )
             self.assertFalse((self.home / "advisor").exists())
             self.assertEqual(self.invocations(), [])
@@ -205,7 +310,7 @@
         )
         self.assertEqual(preset.returncode, 0, preset.stderr)
         status = json.loads(self.run_cli("--json", "status").stdout)
-        self.assertEqual(status["selections"]["standard"]["model"], "gpt-5.6-terra")
+        self.assertEqual(status["selections"]["standard"]["model"], "gpt-6.1-terra")
 
     def test_canary_uses_at_most_two_attempts_and_records_only_success(self) -> None:
         self.add()
@@ -252,7 +357,7 @@
         settings_dir = self.home / "advisor"
         settings = {
             "schema_version": 1, "revision": 1,
-            "selections": {"standard": {"model": "manual/model", "effort": "high"}, "specialist": {"model": "gpt-6-sol", "effort": "high"}},
+            "selections": {"standard": {"model": "manual/model", "effort": "high"}, "specialist": {"model": "gpt-6.1-sol", "effort": "high"}},
             "presets": {}, "deadline_seconds": 300, "usage_journal_enabled": True,
         }
         (settings_dir / "settings.json").write_text(json.dumps(settings) + "\n")
@@ -268,7 +373,7 @@
         written = self.run_cli("--json", "_journal-record", json.dumps(record))
         self.assertEqual(written.returncode, 0, written.stderr)
         doctor = json.loads(self.run_cli("--json", "doctor").stdout)
-        self.assertEqual(doctor["live_config"]["pairs"]["standard"]["model"], "gpt-5.6-terra")
+        self.assertEqual(doctor["live_config"]["pairs"]["standard"]["model"], "gpt-6.1-terra")
         self.assertTrue(doctor["live_config"]["source_revision"].startswith("sha256:"))
         self.assertIsNone(doctor["stale_selections"])
         self.assertEqual(doctor["last_content_free_failure"]["outcome"], "failed")
@@ -351,6 +456,56 @@
             unrelated.terminate()
             unrelated.wait(timeout=3)
 
+    def test_missing_or_symlinked_sibling_fails_without_execution(self) -> None:
+        helpers = sorted(path.name for path in (ROOT / "scripts").glob("advisor_*.py"))
+        sandbox_plugin = self.root / "sandbox_plugin"
+        sandbox_plugin.mkdir()
+        shutil.copy2(ROOT / "advisor.toml", sandbox_plugin / "advisor.toml")
+        sandbox_scripts = sandbox_plugin / "scripts"
+        shutil.copytree(ROOT / "scripts", sandbox_scripts)
+        wrapper = sandbox_scripts / "advisor-config.sh"
+        res = subprocess.run(
+            [str(wrapper), "--json", "status"],
+            capture_output=True,
+            text=True,
+            env=self.env,
+            check=False,
+        )
+        self.assertEqual(res.returncode, 0, res.stderr)
+
+        for helper in helpers:
+            target = sandbox_scripts / helper
+            backup = self.root / f"{helper}.bak"
+            shutil.copy2(target, backup)
+
+            target.unlink()
+            res_missing = subprocess.run(
+                [str(wrapper), "--json", "status"],
+                capture_output=True,
+                text=True,
+                env=self.env,
+                check=False,
+            )
+            self.assertEqual(res_missing.returncode, 2)
+            self.assertIn("ADVISOR CONFIG:", res_missing.stderr)
+            self.assertEqual(res_missing.stdout, "")
+
+            target.symlink_to(backup)
+            res_sym = subprocess.run(
+                [str(wrapper), "--json", "status"],
+                capture_output=True,
+                text=True,
+                env=self.env,
+                check=False,
+            )
+            self.assertEqual(res_sym.returncode, 2)
+            self.assertIn("ADVISOR CONFIG:", res_sym.stderr)
+            self.assertEqual(res_sym.stdout, "")
+
+            target.unlink()
+            shutil.copy2(backup, target)
+            backup.unlink()
+
 
 if __name__ == "__main__":
     unittest.main()
Full technical diff · 47 changed fields

removed /files/.codex-plugin~1assets~1composer-icon.png

BEFORE
{
  "sha256": "ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a",
  "size": 234585
}
AFTER
Field is absent

removed /files/.codex-plugin~1assets~1logo.png

BEFORE
{
  "sha256": "ea58c4a9d45cdc20ed9ded61d690d96487004a5f12643f9bb09e53260eabbf6a",
  "size": 234585
}
AFTER
Field is absent

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"bd2b05047cb9c0e431191d6dbb7c5f8a6baae2afb5fe52f37ac8fed46588edac"
AFTER
"4ab3069acea26fc5863aaacaf2dadfe0052c9d68fa22eb0211da0440c7ad3d31"

changed /files/.codex-plugin~1plugin.json/size

BEFORE
2298
AFTER
2503

added /files/LICENSE

BEFORE
Field was absent
AFTER
{
  "sha256": "9bd605a064788e28a3961c76ba61142bed298270bfa96b06028ac450821a5258",
  "size": 1071
}

added /files/NOTICE.md

BEFORE
Field was absent
AFTER
{
  "sha256": "6fbd501f4d2dc5deb6656dbe7571ce7c78c59db8bac92416c41f2f7fd1891316",
  "size": 332
}

changed /files/advisor.toml/sha256

BEFORE
"55b952049fb9ac8b472f700321a5d92eb579605c7147797f41735b221ecab191"
AFTER
"73bbb4b5bad3eb5146af1e17c270517187028266da3c4a3db722e6adf81a71da"

changed /files/advisor.toml/size

BEFORE
595
AFTER
597

changed /files/agents~1advisor-sol.toml/sha256

BEFORE
"517f670937b2174dcd6467e39381b55d3ba133bd97c697c988bf77082dd1531d"
AFTER
"b3d58c2bd9164f0117338e9d620c3c668abf7eba12949bb840704b65d86c9a1f"

changed /files/agents~1advisor-sol.toml/size

BEFORE
1584
AFTER
1586

changed /files/agents~1advisor-terra.toml/sha256

BEFORE
"4b46bd1f354e17d0ed2eaa746fb3f838e2d5bee04ed44524b9557de1820b064e"
AFTER
"97e9beed9a0a571423a580b6d5190d9b6b2d65a31f5dcef694f02c0246dea1ee"

changed /files/models.json/sha256

BEFORE
"06f8c49d7943d56682a40633a6bb072831d087d6f589f25096c2042e8017a252"
AFTER
"7e6fa2bf8998c8c6f55534b15da19bccf6d239db74da517b9bf78d2063e4caa3"

changed /files/models.json/size

BEFORE
899
AFTER
903

changed /files/scripts~1advisor-config.sh/sha256

BEFORE
"41fe054137a6530e6d14c7a4811c857c131a95d81eae6a95080f0cf45d151e28"
AFTER
"3889220b9198ca419a3deece0a0d8f212965b5d9b95e62effa2b27df49abdd70"

changed /files/scripts~1advisor-config.sh/size

BEFORE
325
AFTER
692

added /files/scripts~1advisor_canary.py

BEFORE
Field was absent
AFTER
{
  "sha256": "39c912ee039e087bb1abc614a6fa7eee56057084991cf66230528f4e1c1f7a5e",
  "size": 10505
}

added /files/scripts~1advisor_catalog.py

BEFORE
Field was absent
AFTER
{
  "sha256": "c78f3898475acb922432cc0c78c70cd67b3c61e5072ec7b77a76789f7a51a01f",
  "size": 14818
}

changed /files/scripts~1advisor_config.py/sha256

BEFORE
"f5feee3e230f98a988b305f916eb4684282ca4597eebfa11286ab4acb1aa4c8d"
AFTER
"e7539d73a9317b4c39e3c222052fdabfa165ea274f43706b2f922523877e73bf"

changed /files/scripts~1advisor_config.py/size

BEFORE
90558
AFTER
16411

added /files/scripts~1advisor_discovery.py

BEFORE
Field was absent
AFTER
{
  "sha256": "03b4df7bf8fc58b7ac3ed3576831ba128a616fd8817be4abe9faf3b97cb464d9",
  "size": 9135
}

added /files/scripts~1advisor_doctor.py

BEFORE
Field was absent
AFTER
{
  "sha256": "0cd8973ace6fee18fab8400725090d919e73e3cde20a3bd8033029a1d529d603",
  "size": 9041
}

added /files/scripts~1advisor_journal.py

BEFORE
Field was absent
AFTER
{
  "sha256": "6a2a994097b01fa8c956dcd73763565169e7ee5fca2cb05ee1fbca8bad852c88",
  "size": 9681
}

added /files/scripts~1advisor_settings.py

BEFORE
Field was absent
AFTER
{
  "sha256": "8a3f89f0983534ed726cc1bb1dc8f7dcf14d0443e08dba655fa1d4692756be9d",
  "size": 13440
}

added /files/scripts~1advisor_state.py

BEFORE
Field was absent
AFTER
{
  "sha256": "e788e9b64d2cdb21c52ca76e6a7b68b5d7695e449f66d80f440da0319118b56e",
  "size": 12326
}

changed /files/scripts~1evaluate-triggers.sh/sha256

BEFORE
"ead7570ec2086ed726820b56251596120107f8e7bc07caa028d6ee89342dd8fe"
AFTER
"e2a5d537e51a2c9c1cd31c0a8060e9fbdc7d9eecad3ccdbcc9c3baddf4f238c9"

changed /files/scripts~1evaluate-triggers.sh/size

BEFORE
25580
AFTER
25586

changed /files/scripts~1install-agents.sh/sha256

BEFORE
"59ac0e3cadae49cd6228d592a0e665aef80a0f03cd46e00f639c3c792753285f"
AFTER
"c8bcb94735ae0bdb276a05e68e69bba293155fe3644545bff0cd920208ebd83b"

changed /files/scripts~1install-agents.sh/size

BEFORE
16432
AFTER
18620

changed /files/scripts~1run-advisor.sh/sha256

BEFORE
"e93d33441b827c3b6cb87ea75cee87dd4e7d7c8381fdb1c676b8421f30e83131"
AFTER
"c31b5f6af99f5d577748260e63ea0cebc17ef55a7c20e93917358e2bf1afb4ab"

changed /files/scripts~1run-advisor.sh/size

BEFORE
27596
AFTER
27506

changed /files/scripts~1verify.sh/sha256

BEFORE
"06a5b9bceda7dfb693353744e75fb371e335f815be25e5dd0fe4b5c941f52566"
AFTER
"dde2181752a614b3b914b48dd62f29798185b6dbe3e5d57ddcbe068ef8ef0d62"

changed /files/scripts~1verify.sh/size

BEFORE
129023
AFTER
4700

removed /files/settings.schema.json

BEFORE
{
  "sha256": "2b38841cbc898b9da626845e23b6db002d71755a1ff16114e67fb2ad9b1a9cb5",
  "size": 1200
}
AFTER
Field is absent

changed /files/skills~1consultation~1SKILL.md/sha256

BEFORE
"8314e737292358a8731034058946cf53a534082e5d098f1d03ec5b4a24517dd5"
AFTER
"fc07af46962e0ddcdc0d4fadd53c959d7938580e624fcb959820105d92f5cc9f"

changed /files/skills~1consultation~1SKILL.md/size

BEFORE
17484
AFTER
17488

changed /files/skills~1consultation~1references~1operations.md/sha256

BEFORE
"3d82d8689478200f19ac76aa02375512a8c8bd096959b8c78f73d81b5c548004"
AFTER
"41f6790b742bf146e9f58ae2b7d5fc710e07f19b4ed2fe282cdd63475f621047"

changed /files/skills~1consultation~1references~1operations.md/size

BEFORE
22558
AFTER
22564

added /files/tests~1advisor_transport_support.py

BEFORE
Field was absent
AFTER
{
  "sha256": "ab4d43ce97049e90f3902947c9251c087b681e5a2f6b963085b85b5c0b54ffd2",
  "size": 11089
}

changed /files/tests~1test_advisor_cli.py/sha256

BEFORE
"b1b2ad9415e560da63ff6f8f8cfb76233b828de6fb459f306e3a6b58b3100f64"
AFTER
"0edfa5b16f1d35ebb714b177ab4b6c12ad3f4647ab965e290e1c19415058540b"

changed /files/tests~1test_advisor_cli.py/size

BEFORE
17635
AFTER
27646

changed /files/tests~1test_advisor_config.py/sha256

BEFORE
"169b5aa46700a4f09c6ee0dbadf3d02b1b6c91465a356de38804d5ebdc8ed9dc"
AFTER
"aa52b9fadef51b8121f4da4038914058952c1268aac23b68e1d8c7dcddd9a677"

changed /files/tests~1test_advisor_config.py/size

BEFORE
25728
AFTER
28147

added /files/tests~1test_advisor_setup.py

BEFORE
Field was absent
AFTER
{
  "sha256": "88f7545477e62f2a3d4317e32410eecdd92ea907679fc64206eddbd824d12ed9",
  "size": 10603
}

changed /files/tests~1test_advisor_transport.py/sha256

BEFORE
"aa566e1057819c5c1385b8659ddb51eb1f7e55ec8551e2acdb52a1feadb9067f"
AFTER
"d5318adabba6b6c1d2d5b7c9d41d48f91ac6b61352f897e5368afbf1bcacc4b9"

changed /files/tests~1test_advisor_transport.py/size

BEFORE
26202
AFTER
21224

changed /files/tests~1test_advisor_usage.py/sha256

BEFORE
"d5a5d1ecf82c9a2254e3565d24d7854ef05442cbacc1725432503138f153f70b"
AFTER
"3cfe33013652669e3756f5945248ac33776ce7f03ab53435aca794ca50f53d68"

changed /files/tests~1test_advisor_usage.py/size

BEFORE
24681
AFTER
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