47 lines
36 KiB
Plaintext
47 lines
36 KiB
Plaintext
CHAT_OUTPUT_BEGIN
|
|
COMMAND_ID=NEWFI-260907-B-PORTAL200-RUNNERCONTRACT5
|
|
STATUS=OK
|
|
RC=0
|
|
HOST=pve01
|
|
MODE=read-only
|
|
COMPONENT=newfi-portal200-runner-contract-source-evidence
|
|
REFERENCE_REGISTER_CHECK=OK
|
|
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
|
|
ERROR_REGISTER_CHECK=OK
|
|
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
|
|
COMMAND_SHA256=78728559634f5f083666b7c6889dfeac8efb1f04a5c9d2777009d2ad479e57a4
|
|
DUPLICATE_FAILED_COMMAND_BLOCKED=false
|
|
EXECUTION_STARTED=true
|
|
CHANGE_DECLARED=false
|
|
RESULT_CONTRACT_VALID=true
|
|
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
|
|
RESULT_CONTRACT_ERROR=NONE
|
|
COMMAND_RC=0
|
|
CHANGES_MADE=false
|
|
ROLLBACK_STARTED=false
|
|
ROLLBACK_RESTORED=null
|
|
MUTATION_OUTCOME=NO_MUTATION
|
|
SANITIZED=yes
|
|
SECRETS_INCLUDED=no
|
|
PRIVATE_ADDRESSES_INCLUDED=no
|
|
RAW_EVIDENCE_SHA256=cbef9ff8eec5a98273cdd12e712d16746764b9c2857b2f37db7efde899c698fb
|
|
SANITIZED_OUTPUT_SHA256=cbef9ff8eec5a98273cdd12e712d16746764b9c2857b2f37db7efde899c698fb
|
|
OUTPUT_BEGIN
|
|
ERROR_REGISTER_CHECK=OK
|
|
REFERENCE_CHECK=OK
|
|
AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED
|
|
RUNNERCONTRACT5_AUTHORITY={"ERROR_REGISTER":{"bytes":302058,"ok":true,"sha256":"3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0"},"REFERENCE":{"bytes":201129,"ok":true,"sha256":"5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66"}}
|
|
RUNNERCONTRACT5_RUNNER={"bytes":21321,"first_line":"#!/usr/bin/env bash","line_count":822,"matches_handoff_baseline":true,"path":"/usr/local/sbin/homelab-chat-run","sha256":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d"}
|
|
RUNNERCONTRACT5_STATUS_TOKENS=["BLOCKED","ERROR","FAIL","OK"]
|
|
RUNNERCONTRACT5_CONTRACT_KEYS=["changes_made","command_id","rollback_restored","rollback_started","status","version"]
|
|
RUNNERCONTRACT5_CROSSFIELD_LINES=[{"line":19,"text":" \"rollback_restored\": \"null\","},{"line":30,"text":" \"rollback_restored\": \"null\","},{"line":58,"text":" rollback_restored = document.get(\"rollback_restored\")"},{"line":60,"text":" raise ValueError(\"changes_made must be boolean\")"},{"line":62,"text":" raise ValueError(\"rollback_started must be boolean\")"},{"line":63,"text":" if rollback_restored is not None and not isinstance("},{"line":64,"text":" rollback_restored,"},{"line":68,"text":" \"rollback_restored must be boolean or null\""},{"line":70,"text":" if rollback_restored is True and rollback_started is not True:"},{"line":72,"text":" \"rollback_restored without rollback_started\""},{"line":74,"text":" if rollback_started is True and changes is not True:"},{"line":80,"text":" or rollback_started"},{"line":95,"text":" elif rollback_restored is True:"},{"line":97,"text":" elif rollback_restored is False:"},{"line":109,"text":" \"rollback_restored\": ("},{"line":111,"text":" if rollback_restored is None"},{"line":112,"text":" else str(rollback_restored).lower()"},{"line":129,"text":" result[\"rollback_restored\"],"},{"line":142,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T1\",\"status\":\"BLOCKED\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":148,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T2\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":154,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T3\",\"status\":\"FAIL\",\"changes_made\":true,\"rollback_started\":true,\"rollback_restored\":true}' \\"},{"line":168,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"OTHER\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":174,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":175,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":599,"text":" rollback_restored,"},{"line":664,"text":" \"rollback_restored\": optional_bool(rollback_restored),"}]
|
|
RUNNERCONTRACT5_DUPLICATE_LINES=[{"line":646,"text":" \"duplicate_failed_command_blocked\": repeat_blocked == \"true\","},{"line":704,"text":" echo \"DUPLICATE_FAILED_COMMAND_BLOCKED=$REPEAT_BLOCKED\""},{"line":816,"text":"echo \"DUPLICATE_FAILED_COMMAND_BLOCKED=$REPEAT_BLOCKED\""}]
|
|
RUNNERCONTRACT5_SOURCE_WINDOWS=[{"match_line":11,"match_text":"raw_path, command_id, mode, command_rc = sys.argv[1:]","window":[{"line":9,"text":"from pathlib import Path"},{"line":10,"text":""},{"line":11,"text":"raw_path, command_id, mode, command_rc = sys.argv[1:]"},{"line":12,"text":"command_rc = int(command_rc)"},{"line":13,"text":""}]},{"match_line":16,"match_text":" \"status\": \"NOT_APPLICABLE\",","window":[{"line":14,"text":"result = {"},{"line":15,"text":" \"valid\": True,"},{"line":16,"text":" \"status\": \"NOT_APPLICABLE\","},{"line":17,"text":" \"changes_made\": \"false\","},{"line":18,"text":" \"rollback_started\": \"false\","}]},{"match_line":17,"match_text":" \"changes_made\": \"false\",","window":[{"line":15,"text":" \"valid\": True,"},{"line":16,"text":" \"status\": \"NOT_APPLICABLE\","},{"line":17,"text":" \"changes_made\": \"false\","},{"line":18,"text":" \"rollback_started\": \"false\","},{"line":19,"text":" \"rollback_restored\": \"null\","}]},{"match_line":18,"match_text":" \"rollback_started\": \"false\",","window":[{"line":16,"text":" \"status\": \"NOT_APPLICABLE\","},{"line":17,"text":" \"changes_made\": \"false\","},{"line":18,"text":" \"rollback_started\": \"false\","},{"line":19,"text":" \"rollback_restored\": \"null\","},{"line":20,"text":" \"mutation_outcome\": \"NO_MUTATION\","}]},{"match_line":19,"match_text":" \"rollback_restored\": \"null\",","window":[{"line":17,"text":" \"changes_made\": \"false\","},{"line":18,"text":" \"rollback_started\": \"false\","},{"line":19,"text":" \"rollback_restored\": \"null\","},{"line":20,"text":" \"mutation_outcome\": \"NO_MUTATION\","},{"line":21,"text":" \"error\": \"NONE\","}]},{"match_line":27,"match_text":" \"status\": \"UNKNOWN\",","window":[{"line":25,"text":" result = {"},{"line":26,"text":" \"valid\": False,"},{"line":27,"text":" \"status\": \"UNKNOWN\","},{"line":28,"text":" \"changes_made\": \"unknown\","},{"line":29,"text":" \"rollback_started\": \"unknown\","}]},{"match_line":28,"match_text":" \"changes_made\": \"unknown\",","window":[{"line":26,"text":" \"valid\": False,"},{"line":27,"text":" \"status\": \"UNKNOWN\","},{"line":28,"text":" \"changes_made\": \"unknown\","},{"line":29,"text":" \"rollback_started\": \"unknown\","},{"line":30,"text":" \"rollback_restored\": \"null\","}]},{"match_line":29,"match_text":" \"rollback_started\": \"unknown\",","window":[{"line":27,"text":" \"status\": \"UNKNOWN\","},{"line":28,"text":" \"changes_made\": \"unknown\","},{"line":29,"text":" \"rollback_started\": \"unknown\","},{"line":30,"text":" \"rollback_restored\": \"null\","},{"line":31,"text":" \"mutation_outcome\": \"UNKNOWN\","}]},{"match_line":30,"match_text":" \"rollback_restored\": \"null\",","window":[{"line":28,"text":" \"changes_made\": \"unknown\","},{"line":29,"text":" \"rollback_started\": \"unknown\","},{"line":30,"text":" \"rollback_restored\": \"null\","},{"line":31,"text":" \"mutation_outcome\": \"UNKNOWN\","},{"line":32,"text":" \"error\": \"MISSING_CONTRACT\","}]},{"match_line":34,"match_text":" marker = \"HOMELAB_RESULT_CONTRACT=\"","window":[{"line":32,"text":" \"error\": \"MISSING_CONTRACT\","},{"line":33,"text":" }"},{"line":34,"text":" marker = \"HOMELAB_RESULT_CONTRACT=\""},{"line":35,"text":" lines = Path(raw_path).read_bytes().decode("},{"line":36,"text":" \"utf-8\","}]},{"match_line":51,"match_text":" if document.get(\"command_id\") != command_id:","window":[{"line":49,"text":" if document.get(\"version\") != 1:"},{"line":50,"text":" raise ValueError(\"unsupported version\")"},{"line":51,"text":" if document.get(\"command_id\") != command_id:"},{"line":52,"text":" raise ValueError(\"command_id mismatch\")"},{"line":53,"text":" status = document.get(\"status\")"}]},{"match_line":52,"match_text":" raise ValueError(\"command_id mismatch\")","window":[{"line":50,"text":" raise ValueError(\"unsupported version\")"},{"line":51,"text":" if document.get(\"command_id\") != command_id:"},{"line":52,"text":" raise ValueError(\"command_id mismatch\")"},{"line":53,"text":" status = document.get(\"status\")"},{"line":54,"text":" if status not in {\"OK\", \"BLOCKED\", \"FAIL\"}:"}]},{"match_line":53,"match_text":" status = document.get(\"status\")","window":[{"line":51,"text":" if document.get(\"command_id\") != command_id:"},{"line":52,"text":" raise ValueError(\"command_id mismatch\")"},{"line":53,"text":" status = document.get(\"status\")"},{"line":54,"text":" if status not in {\"OK\", \"BLOCKED\", \"FAIL\"}:"},{"line":55,"text":" raise ValueError(\"invalid status\")"}]},{"match_line":54,"match_text":" if status not in {\"OK\", \"BLOCKED\", \"FAIL\"}:","window":[{"line":52,"text":" raise ValueError(\"command_id mismatch\")"},{"line":53,"text":" status = document.get(\"status\")"},{"line":54,"text":" if status not in {\"OK\", \"BLOCKED\", \"FAIL\"}:"},{"line":55,"text":" raise ValueError(\"invalid status\")"},{"line":56,"text":" changes = document.get(\"changes_made\")"}]},{"match_line":55,"match_text":" raise ValueError(\"invalid status\")","window":[{"line":53,"text":" status = document.get(\"status\")"},{"line":54,"text":" if status not in {\"OK\", \"BLOCKED\", \"FAIL\"}:"},{"line":55,"text":" raise ValueError(\"invalid status\")"},{"line":56,"text":" changes = document.get(\"changes_made\")"},{"line":57,"text":" rollback_started = document.get(\"rollback_started\")"}]},{"match_line":56,"match_text":" changes = document.get(\"changes_made\")","window":[{"line":54,"text":" if status not in {\"OK\", \"BLOCKED\", \"FAIL\"}:"},{"line":55,"text":" raise ValueError(\"invalid status\")"},{"line":56,"text":" changes = document.get(\"changes_made\")"},{"line":57,"text":" rollback_started = document.get(\"rollback_started\")"},{"line":58,"text":" rollback_restored = document.get(\"rollback_restored\")"}]},{"match_line":57,"match_text":" rollback_started = document.get(\"rollback_started\")","window":[{"line":55,"text":" raise ValueError(\"invalid status\")"},{"line":56,"text":" changes = document.get(\"changes_made\")"},{"line":57,"text":" rollback_started = document.get(\"rollback_started\")"},{"line":58,"text":" rollback_restored = document.get(\"rollback_restored\")"},{"line":59,"text":" if not isinstance(changes, bool):"}]},{"match_line":58,"match_text":" rollback_restored = document.get(\"rollback_restored\")","window":[{"line":56,"text":" changes = document.get(\"changes_made\")"},{"line":57,"text":" rollback_started = document.get(\"rollback_started\")"},{"line":58,"text":" rollback_restored = document.get(\"rollback_restored\")"},{"line":59,"text":" if not isinstance(changes, bool):"},{"line":60,"text":" raise ValueError(\"changes_made must be boolean\")"}]},{"match_line":60,"match_text":" raise ValueError(\"changes_made must be boolean\")","window":[{"line":58,"text":" rollback_restored = document.get(\"rollback_restored\")"},{"line":59,"text":" if not isinstance(changes, bool):"},{"line":60,"text":" raise ValueError(\"changes_made must be boolean\")"},{"line":61,"text":" if not isinstance(rollback_started, bool):"},{"line":62,"text":" raise ValueError(\"rollback_started must be boolean\")"}]},{"match_line":61,"match_text":" if not isinstance(rollback_started, bool):","window":[{"line":59,"text":" if not isinstance(changes, bool):"},{"line":60,"text":" raise ValueError(\"changes_made must be boolean\")"},{"line":61,"text":" if not isinstance(rollback_started, bool):"},{"line":62,"text":" raise ValueError(\"rollback_started must be boolean\")"},{"line":63,"text":" if rollback_restored is not None and not isinstance("}]},{"match_line":62,"match_text":" raise ValueError(\"rollback_started must be boolean\")","window":[{"line":60,"text":" raise ValueError(\"changes_made must be boolean\")"},{"line":61,"text":" if not isinstance(rollback_started, bool):"},{"line":62,"text":" raise ValueError(\"rollback_started must be boolean\")"},{"line":63,"text":" if rollback_restored is not None and not isinstance("},{"line":64,"text":" rollback_restored,"}]},{"match_line":63,"match_text":" if rollback_restored is not None and not isinstance(","window":[{"line":61,"text":" if not isinstance(rollback_started, bool):"},{"line":62,"text":" raise ValueError(\"rollback_started must be boolean\")"},{"line":63,"text":" if rollback_restored is not None and not isinstance("},{"line":64,"text":" rollback_restored,"},{"line":65,"text":" bool,"}]},{"match_line":64,"match_text":" rollback_restored,","window":[{"line":62,"text":" raise ValueError(\"rollback_started must be boolean\")"},{"line":63,"text":" if rollback_restored is not None and not isinstance("},{"line":64,"text":" rollback_restored,"},{"line":65,"text":" bool,"},{"line":66,"text":" ):"}]},{"match_line":68,"match_text":" \"rollback_restored must be boolean or null\"","window":[{"line":66,"text":" ):"},{"line":67,"text":" raise ValueError("},{"line":68,"text":" \"rollback_restored must be boolean or null\""},{"line":69,"text":" )"},{"line":70,"text":" if rollback_restored is True and rollback_started is not True:"}]},{"match_line":70,"match_text":" if rollback_restored is True and rollback_started is not True:","window":[{"line":68,"text":" \"rollback_restored must be boolean or null\""},{"line":69,"text":" )"},{"line":70,"text":" if rollback_restored is True and rollback_started is not True:"},{"line":71,"text":" raise ValueError("},{"line":72,"text":" \"rollback_restored without rollback_started\""}]},{"match_line":72,"match_text":" \"rollback_restored without rollback_started\"","window":[{"line":70,"text":" if rollback_restored is True and rollback_started is not True:"},{"line":71,"text":" raise ValueError("},{"line":72,"text":" \"rollback_restored without rollback_started\""},{"line":73,"text":" )"},{"line":74,"text":" if rollback_started is True and changes is not True:"}]},{"match_line":74,"match_text":" if rollback_started is True and changes is not True:","window":[{"line":72,"text":" \"rollback_restored without rollback_started\""},{"line":73,"text":" )"},{"line":74,"text":" if rollback_started is True and changes is not True:"},{"line":75,"text":" raise ValueError("},{"line":76,"text":" \"rollback_started without changes\""}]},{"match_line":76,"match_text":" \"rollback_started without changes\"","window":[{"line":74,"text":" if rollback_started is True and changes is not True:"},{"line":75,"text":" raise ValueError("},{"line":76,"text":" \"rollback_started without changes\""},{"line":77,"text":" )"},{"line":78,"text":" if status == \"BLOCKED\" and ("}]},{"match_line":78,"match_text":" if status == \"BLOCKED\" and (","window":[{"line":76,"text":" \"rollback_started without changes\""},{"line":77,"text":" )"},{"line":78,"text":" if status == \"BLOCKED\" and ("},{"line":79,"text":" changes"},{"line":80,"text":" or rollback_started"}]},{"match_line":80,"match_text":" or rollback_started","window":[{"line":78,"text":" if status == \"BLOCKED\" and ("},{"line":79,"text":" changes"},{"line":80,"text":" or rollback_started"},{"line":81,"text":" or command_rc != 2"},{"line":82,"text":" ):"}]},{"match_line":86,"match_text":" if status == \"OK\" and command_rc != 0:","window":[{"line":84,"text":" \"BLOCKED contract inconsistent with rc/mutation\""},{"line":85,"text":" )"},{"line":86,"text":" if status == \"OK\" and command_rc != 0:"},{"line":87,"text":" raise ValueError(\"OK contract inconsistent with rc\")"},{"line":88,"text":" if status == \"FAIL\" and command_rc == 0:"}]},{"match_line":88,"match_text":" if status == \"FAIL\" and command_rc == 0:","window":[{"line":86,"text":" if status == \"OK\" and command_rc != 0:"},{"line":87,"text":" raise ValueError(\"OK contract inconsistent with rc\")"},{"line":88,"text":" if status == \"FAIL\" and command_rc == 0:"},{"line":89,"text":" raise ValueError(\"FAIL contract inconsistent with rc\")"},{"line":90,"text":""}]},{"match_line":93,"match_text":" elif not rollback_started:","window":[{"line":91,"text":" if not changes:"},{"line":92,"text":" outcome = \"NO_MUTATION\""},{"line":93,"text":" elif not rollback_started:"},{"line":94,"text":" outcome = \"MUTATED\""},{"line":95,"text":" elif rollback_restored is True:"}]},{"match_line":95,"match_text":" elif rollback_restored is True:","window":[{"line":93,"text":" elif not rollback_started:"},{"line":94,"text":" outcome = \"MUTATED\""},{"line":95,"text":" elif rollback_restored is True:"},{"line":96,"text":" outcome = \"ROLLED_BACK\""},{"line":97,"text":" elif rollback_restored is False:"}]},{"match_line":97,"match_text":" elif rollback_restored is False:","window":[{"line":95,"text":" elif rollback_restored is True:"},{"line":96,"text":" outcome = \"ROLLED_BACK\""},{"line":97,"text":" elif rollback_restored is False:"},{"line":98,"text":" outcome = \"ROLLBACK_FAILED\""},{"line":99,"text":" else:"}]},{"match_line":104,"match_text":" \"status\": status,","window":[{"line":102,"text":" result = {"},{"line":103,"text":" \"valid\": True,"},{"line":104,"text":" \"status\": status,"},{"line":105,"text":" \"changes_made\": str(changes).lower(),"},{"line":106,"text":" \"rollback_started\": str("}]},{"match_line":105,"match_text":" \"changes_made\": str(changes).lower(),","window":[{"line":103,"text":" \"valid\": True,"},{"line":104,"text":" \"status\": status,"},{"line":105,"text":" \"changes_made\": str(changes).lower(),"},{"line":106,"text":" \"rollback_started\": str("},{"line":107,"text":" rollback_started"}]},{"match_line":106,"match_text":" \"rollback_started\": str(","window":[{"line":104,"text":" \"status\": status,"},{"line":105,"text":" \"changes_made\": str(changes).lower(),"},{"line":106,"text":" \"rollback_started\": str("},{"line":107,"text":" rollback_started"},{"line":108,"text":" ).lower(),"}]},{"match_line":107,"match_text":" rollback_started","window":[{"line":105,"text":" \"changes_made\": str(changes).lower(),"},{"line":106,"text":" \"rollback_started\": str("},{"line":107,"text":" rollback_started"},{"line":108,"text":" ).lower(),"},{"line":109,"text":" \"rollback_restored\": ("}]},{"match_line":109,"match_text":" \"rollback_restored\": (","window":[{"line":107,"text":" rollback_started"},{"line":108,"text":" ).lower(),"},{"line":109,"text":" \"rollback_restored\": ("},{"line":110,"text":" \"null\""},{"line":111,"text":" if rollback_restored is None"}]},{"match_line":111,"match_text":" if rollback_restored is None","window":[{"line":109,"text":" \"rollback_restored\": ("},{"line":110,"text":" \"null\""},{"line":111,"text":" if rollback_restored is None"},{"line":112,"text":" else str(rollback_restored).lower()"},{"line":113,"text":" ),"}]},{"match_line":112,"match_text":" else str(rollback_restored).lower()","window":[{"line":110,"text":" \"null\""},{"line":111,"text":" if rollback_restored is None"},{"line":112,"text":" else str(rollback_restored).lower()"},{"line":113,"text":" ),"},{"line":114,"text":" \"mutation_outcome\": outcome,"}]},{"match_line":126,"match_text":" result[\"status\"],","window":[{"line":124,"text":"print(\"\\t\".join(["},{"line":125,"text":" str(result[\"valid\"]).lower(),"},{"line":126,"text":" result[\"status\"],"},{"line":127,"text":" result[\"changes_made\"],"},{"line":128,"text":" result[\"rollback_started\"],"}]},{"match_line":127,"match_text":" result[\"changes_made\"],","window":[{"line":125,"text":" str(result[\"valid\"]).lower(),"},{"line":126,"text":" result[\"status\"],"},{"line":127,"text":" result[\"changes_made\"],"},{"line":128,"text":" result[\"rollback_started\"],"},{"line":129,"text":" result[\"rollback_restored\"],"}]},{"match_line":128,"match_text":" result[\"rollback_started\"],","window":[{"line":126,"text":" result[\"status\"],"},{"line":127,"text":" result[\"changes_made\"],"},{"line":128,"text":" result[\"rollback_started\"],"},{"line":129,"text":" result[\"rollback_restored\"],"},{"line":130,"text":" result[\"mutation_outcome\"],"}]},{"match_line":129,"match_text":" result[\"rollback_restored\"],","window":[{"line":127,"text":" result[\"changes_made\"],"},{"line":128,"text":" result[\"rollback_started\"],"},{"line":129,"text":" result[\"rollback_restored\"],"},{"line":130,"text":" result[\"mutation_outcome\"],"},{"line":131,"text":" result[\"error\"],"}]},{"match_line":142,"match_text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T1\",\"status\":\"BLOCKED\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}' \\","window":[{"line":140,"text":""},{"line":141,"text":" printf '%s\\n' \\"},{"line":142,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T1\",\"status\":\"BLOCKED\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":143,"text":" >\"$tmp\""},{"line":144,"text":" [ \"$(read_mutation_contract \"$tmp\" T1 change 2)\" = \\"}]},{"match_line":148,"match_text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T2\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\","window":[{"line":146,"text":""},{"line":147,"text":" printf '%s\\n' \\"},{"line":148,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T2\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":149,"text":" >\"$tmp\""},{"line":150,"text":" [ \"$(read_mutation_contract \"$tmp\" T2 change 0)\" = \\"}]},{"match_line":154,"match_text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T3\",\"status\":\"FAIL\",\"changes_made\":true,\"rollback_started\":true,\"rollback_restored\":true}' \\","window":[{"line":152,"text":""},{"line":153,"text":" printf '%s\\n' \\"},{"line":154,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T3\",\"status\":\"FAIL\",\"changes_made\":true,\"rollback_started\":true,\"rollback_restored\":true}' \\"},{"line":155,"text":" >\"$tmp\""},{"line":156,"text":" [ \"$(read_mutation_contract \"$tmp\" T3 change 1)\" = \\"}]},{"match_line":168,"match_text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"OTHER\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\","window":[{"line":166,"text":""},{"line":167,"text":" printf '%s\\n' \\"},{"line":168,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"OTHER\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":169,"text":" >\"$tmp\""},{"line":170,"text":" [ \"$(read_mutation_contract \"$tmp\" T6 change 0)\" = \\"}]},{"match_line":174,"match_text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\","window":[{"line":172,"text":""},{"line":173,"text":" printf '%s\\n' \\"},{"line":174,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":175,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":176,"text":" >\"$tmp\""}]},{"match_line":175,"match_text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\","window":[{"line":173,"text":" printf '%s\\n' \\"},{"line":174,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":175,"text":" 'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\"},{"line":176,"text":" >\"$tmp\""},{"line":177,"text":" [ \"$(read_mutation_contract \"$tmp\" T7 change 0)\" = \\"}]},{"match_line":191,"match_text":" homelab-chat-run COMMAND_ID MODE COMPONENT -- command [arguments...]","window":[{"line":189,"text":" cat >&2 <<'USAGE'"},{"line":190,"text":"Usage:"},{"line":191,"text":" homelab-chat-run COMMAND_ID MODE COMPONENT -- command [arguments...]"},{"line":192,"text":""},{"line":193,"text":"MODE:"}]},{"match_line":208,"match_text":"COMMAND_ID=\"$1\"","window":[{"line":206,"text":"[ \"$#\" -ge 5 ] || usage"},{"line":207,"text":""},{"line":208,"text":"COMMAND_ID=\"$1\""},{"line":209,"text":"MODE=\"$2\""},{"line":210,"text":"COMPONENT=\"$3\""}]},{"match_line":217,"match_text":"case \"$COMMAND_ID\" in","window":[{"line":215,"text":"[ \"$#\" -ge 1 ] || usage"},{"line":216,"text":""},{"line":217,"text":"case \"$COMMAND_ID\" in"},{"line":218,"text":" ''|*[!A-Za-z0-9._-]*)"},{"line":219,"text":" echo 'RESULT=FAIL'"}]},{"match_line":220,"match_text":" echo 'REASON=INVALID_COMMAND_ID'","window":[{"line":218,"text":" ''|*[!A-Za-z0-9._-]*)"},{"line":219,"text":" echo 'RESULT=FAIL'"},{"line":220,"text":" echo 'REASON=INVALID_COMMAND_ID'"},{"line":221,"text":" exit 65"},{"line":222,"text":" ;;"}]},{"match_line":297,"match_text":"RAW_FILE=\"$RAW_DIR/${COMMAND_ID}-${STAMP}.log\"","window":[{"line":295,"text":"HOST_SHORT=\"$(hostname -s 2>/dev/null || hostname)\""},{"line":296,"text":""},{"line":297,"text":"RAW_FILE=\"$RAW_DIR/${COMMAND_ID}-${STAMP}.log\""},{"line":298,"text":"SANITIZED_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.txt\""},{"line":299,"text":"JSON_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.json\""}]},{"match_line":298,"match_text":"SANITIZED_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.txt\"","window":[{"line":296,"text":""},{"line":297,"text":"RAW_FILE=\"$RAW_DIR/${COMMAND_ID}-${STAMP}.log\""},{"line":298,"text":"SANITIZED_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.txt\""},{"line":299,"text":"JSON_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.json\""},{"line":300,"text":"TXT_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}-latest.txt\""}]},{"match_line":299,"match_text":"JSON_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.json\"","window":[{"line":297,"text":"RAW_FILE=\"$RAW_DIR/${COMMAND_ID}-${STAMP}.log\""},{"line":298,"text":"SANITIZED_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.txt\""},{"line":299,"text":"JSON_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.json\""},{"line":300,"text":"TXT_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}-latest.txt\""},{"line":301,"text":""}]},{"match_line":300,"match_text":"TXT_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}-latest.txt\"","window":[{"line":298,"text":"SANITIZED_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.txt\""},{"line":299,"text":"JSON_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.json\""},{"line":300,"text":"TXT_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}-latest.txt\""},{"line":301,"text":""},{"line":302,"text":"REFERENCE_SHA256=\"$(sha256sum \"$REFERENCE\" | awk '{print $1}')\""}]},{"match_line":331,"match_text":"RESULT_CONTRACT_VALID=true","window":[{"line":329,"text":"BLOCK_REASON=''"},{"line":330,"text":"CHANGE_DECLARED=false"},{"line":331,"text":"RESULT_CONTRACT_VALID=true"},{"line":332,"text":"CONTRACT_STATUS='NOT_APPLICABLE'"},{"line":333,"text":"CHANGES_MADE=false"}]},{"match_line":332,"match_text":"CONTRACT_STATUS='NOT_APPLICABLE'","window":[{"line":330,"text":"CHANGE_DECLARED=false"},{"line":331,"text":"RESULT_CONTRACT_VALID=true"},{"line":332,"text":"CONTRACT_STATUS='NOT_APPLICABLE'"},{"line":333,"text":"CHANGES_MADE=false"},{"line":334,"text":"ROLLBACK_STARTED=false"}]},{"match_line":333,"match_text":"CHANGES_MADE=false","window":[{"line":331,"text":"RESULT_CONTRACT_VALID=true"},{"line":332,"text":"CONTRACT_STATUS='NOT_APPLICABLE'"},{"line":333,"text":"CHANGES_MADE=false"},{"line":334,"text":"ROLLBACK_STARTED=false"},{"line":335,"text":"ROLLBACK_RESTORED=null"}]},{"match_line":334,"match_text":"ROLLBACK_STARTED=false","window":[{"line":332,"text":"CONTRACT_STATUS='NOT_APPLICABLE'"},{"line":333,"text":"CHANGES_MADE=false"},{"line":334,"text":"ROLLBACK_STARTED=false"},{"line":335,"text":"ROLLBACK_RESTORED=null"},{"line":336,"text":"MUTATION_OUTCOME='NO_MUTATION'"}]},{"match_line":335,"match_text":"ROLLBACK_RESTORED=null","window":[{"line":333,"text":"CHANGES_MADE=false"},{"line":334,"text":"ROLLBACK_STARTED=false"},{"line":335,"text":"ROLLBACK_RESTORED=null"},{"line":336,"text":"MUTATION_OUTCOME='NO_MUTATION'"},{"line":337,"text":"RESULT_CONTRACT_ERROR='NONE'"}]},{"match_line":337,"match_text":"RESULT_CONTRACT_ERROR='NONE'","window":[{"line":335,"text":"ROLLBACK_RESTORED=null"},{"line":336,"text":"MUTATION_OUTCOME='NO_MUTATION'"},{"line":337,"text":"RESULT_CONTRACT_ERROR='NONE'"},{"line":338,"text":"COMMAND_RC=''"},{"line":339,"text":""}]},{"match_line":342,"match_text":" RESULT_CONTRACT_VALID=false","window":[{"line":340,"text":"if [ \"$MODE\" = change ]; then"},{"line":341,"text":" CHANGE_DECLARED=true"},{"line":342,"text":" RESULT_CONTRACT_VALID=false"},{"line":343,"text":" CONTRACT_STATUS='UNKNOWN'"},{"line":344,"text":" CHANGES_MADE=unknown"}]},{"match_line":343,"match_text":" CONTRACT_STATUS='UNKNOWN'","window":[{"line":341,"text":" CHANGE_DECLARED=true"},{"line":342,"text":" RESULT_CONTRACT_VALID=false"},{"line":343,"text":" CONTRACT_STATUS='UNKNOWN'"},{"line":344,"text":" CHANGES_MADE=unknown"},{"line":345,"text":" ROLLBACK_STARTED=unknown"}]},{"match_line":344,"match_text":" CHANGES_MADE=unknown","window":[{"line":342,"text":" RESULT_CONTRACT_VALID=false"},{"line":343,"text":" CONTRACT_STATUS='UNKNOWN'"},{"line":344,"text":" CHANGES_MADE=unknown"},{"line":345,"text":" ROLLBACK_STARTED=unknown"},{"line":346,"text":" ROLLBACK_RESTORED=null"}]},{"match_line":345,"match_text":" ROLLBACK_STARTED=unknown","window":[{"line":343,"text":" CONTRACT_STATUS='UNKNOWN'"},{"line":344,"text":" CHANGES_MADE=unknown"},{"line":345,"text":" ROLLBACK_STARTED=unknown"},{"line":346,"text":" ROLLBACK_RESTORED=null"},{"line":347,"text":" MUTATION_OUTCOME='UNKNOWN'"}]},{"match_line":346,"match_text":" ROLLBACK_RESTORED=null","window":[{"line":344,"text":" CHANGES_MADE=unknown"},{"line":345,"text":" ROLLBACK_STARTED=unknown"},{"line":346,"text":" ROLLBACK_RESTORED=null"},{"line":347,"text":" MUTATION_OUTCOME='UNKNOWN'"},{"line":348,"text":" RESULT_CONTRACT_ERROR='MISSING_CONTRACT'"}]},{"match_line":348,"match_text":" RESULT_CONTRACT_ERROR='MISSING_CONTRACT'","window":[{"line":346,"text":" ROLLBACK_RESTORED=null"},{"line":347,"text":" MUTATION_OUTCOME='UNKNOWN'"},{"line":348,"text":" RESULT_CONTRACT_ERROR='MISSING_CONTRACT'"},{"line":349,"text":"fi"},{"line":350,"text":""}]},{"match_line":358,"match_text":" STATUS='BLOCKED'","window":[{"line":356,"text":" BLOCK_REASON='EXACT_FAILED_COMMAND_REPEAT'"},{"line":357,"text":" RC=73"},{"line":358,"text":" STATUS='BLOCKED'"},{"line":359,"text":" RESULT_CONTRACT_VALID=true"},{"line":360,"text":" CONTRACT_STATUS='BLOCKED'"}]},{"match_line":359,"match_text":" RESULT_CONTRACT_VALID=true","window":[{"line":357,"text":" RC=73"},{"line":358,"text":" STATUS='BLOCKED'"},{"line":359,"text":" RESULT_CONTRACT_VALID=true"},{"line":360,"text":" CONTRACT_STATUS='BLOCKED'"},{"line":361,"text":" CHANGES_MADE=false"}]},{"match_line":360,"match_text":" CONTRACT_STATUS='BLOCKED'","window":[{"line":358,"text":" STATUS='BLOCKED'"},{"line":359,"text":" RESULT_CONTRACT_VALID=true"},{"line":360,"text":" CONTRACT_STATUS='BLOCKED'"},{"line":361,"text":" CHANGES_MADE=false"},{"line":362,"text":" ROLLBACK_STARTED=false"}]},{"match_line":361,"match_text":" CHANGES_MADE=false","window":[{"line":359,"text":" RESULT_CONTRACT_VALID=true"},{"line":360,"text":" CONTRACT_STATUS='BLOCKED'"},{"line":361,"text":" CHANGES_MADE=false"},{"line":362,"text":" ROLLBACK_STARTED=false"},{"line":363,"text":" ROLLBACK_RESTORED=null"}]},{"match_line":362,"match_text":" ROLLBACK_STARTED=false","window":[{"line":360,"text":" CONTRACT_STATUS='BLOCKED'"},{"line":361,"text":" CHANGES_MADE=false"},{"line":362,"text":" ROLLBACK_STARTED=false"},{"line":363,"text":" ROLLBACK_RESTORED=null"},{"line":364,"text":" MUTATION_OUTCOME='NO_MUTATION'"}]},{"match_line":363,"match_text":" ROLLBACK_RESTORED=null","window":[{"line":361,"text":" CHANGES_MADE=false"},{"line":362,"text":" ROLLBACK_STARTED=false"},{"line":363,"text":" ROLLBACK_RESTORED=null"},{"line":364,"text":" MUTATION_OUTCOME='NO_MUTATION'"},{"line":365,"text":" RESULT_CONTRACT_ERROR='RUNNER_PREEXECUTION_BLOCK'"}]},{"match_line":365,"match_text":" RESULT_CONTRACT_ERROR='RUNNER_PREEXECUTION_BLOCK'","window":[{"line":363,"text":" ROLLBACK_RESTORED=null"},{"line":364,"text":" MUTATION_OUTCOME='NO_MUTATION'"},{"line":365,"text":" RESULT_CONTRACT_ERROR='RUNNER_PREEXECUTION_BLOCK'"},{"line":366,"text":""},{"line":367,"text":" {"}]},{"match_line":389,"match_text":" --preserve-status \\","window":[{"line":387,"text":" timeout \\"},{"line":388,"text":" --foreground \\"},{"line":389,"text":" --preserve-status \\"},{"line":390,"text":" \"$HOMELAB_TIMEOUT\" \\"},{"line":391,"text":" \"$@\" >\"$RAW_FILE\" 2>&1"}]}]
|
|
RUNNERCONTRACT5_WINDOW_COUNT=80
|
|
RUNNERCONTRACT5_HOLD_REASONS=[]
|
|
RUNNERCONTRACT5_DECISION=RUNNER_CONTRACT_SOURCE_EVIDENCE_PUBLISHED_FOR_MANUAL_INTERPRETATION
|
|
RUNNERCONTRACT5_MUTATION_SCOPE=NO_GIT_NO_APPLICATION_NO_DB_NO_PRODUCTION_MUTATION
|
|
|
|
OUTPUT_END
|
|
CHAT_OUTPUT_END
|