CHAT_OUTPUT_BEGIN
COMMAND_ID=RESULT-API-LOCAL-PREFLIGHT-FIX1-20260727T074036Z
STATUS=OK
RC=0
HOST=pve01
MODE=verify
COMPONENT=result-integration
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83
COMMAND_SHA256=3ff4d1ea2cda459219b872cac9a804822a5a17f093dc9ac0fdc8925c372b09c4
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=d46658451693a1872d7a4401e2d1fbec106612ffc95b7a9f8ce712fb494cce79
SANITIZED_OUTPUT_SHA256=d46658451693a1872d7a4401e2d1fbec106612ffc95b7a9f8ce712fb494cce79
OUTPUT_BEGIN
{"adapter_capabilities":{"has_dispatch":true,"has_evidence_url":true,"has_public_state":true,"has_result_public_key_operation":false,"has_result_public_operation":false,"has_sanitize_state":true,"has_terminal_evidence_fields":true},"backup_changed":false,"candidate_parent":{"exists":true,"gid":990,"is_symlink":false,"mode":"0o750","path":"/var/lib/homelab-command-adapter","result_signing_exists":false,"uid":0},"changes_made":false,"checks":{"adapter_dispatch_available":true,"adapter_expected_sha":true,"adapter_healthy":true,"adapter_root_safe":true,"adapter_sanitizer_available":true,"adapter_terminal_fields_available":true,"current_command_running_once":true,"new_routes_not_already_present":true,"no_invalid_states":true,"no_other_running_states":true,"openssl_ed25519_pass":true,"portal_adapter_boundary_available":true,"portal_expected_sha":true,"portal_healthy":true,"runner_expected_sha":true,"terminal_evidence_exists":true},"cluster_changed":false,"command_id":"RESULT-API-LOCAL-PREFLIGHT-FIX1-20260727T074036Z","crypto_test":{"available":true,"pass":true,"private_mode":"0o600","public_key_sha256":"2d591f1b49f9e2771be5c02739e6f519c91d9ceebb00cc2a96b03d6f66f779c5","signature_bytes":64,"verify_rc":0},"gitea_changed":false,"inventory":{"adapter":{"exists":true,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","path":"/usr/local/sbin/homelab-command-adapter","sha256":"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e","uid":0},"portal":{"exists":true,"gid":990,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","path":"/usr/local/sbin/homelab-command-portal","sha256":"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2","uid":0},"runner":{"exists":true,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","path":"/usr/local/sbin/homelab-chat-run","sha256":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d","uid":0}},"next_plan_scope":{"create":["/var/lib/homelab-command-adapter/result-signing/private.pem","/var/lib/homelab-command-adapter/result-signing/public.pem"],"modify":["/usr/local/sbin/homelab-command-adapter","/usr/local/sbin/homelab-command-portal"],"preserve":["/usr/local/sbin/homelab-chat-run","existing state files","existing evidence objects","Gitea runtime history","backup","cluster"]},"portal_capabilities":{"classes":{"Handler":{"line":451,"methods":["content_length","do_GET","do_POST","error_reply","log_message","path_parts","read_body","redirect","reply"],"strings":["","\n"," - ","(/enroll/)[A-Za-z0-9_-]{32,160}","([?&]t=)[^&\\s]+",",",".hcmd",".upload-","/api/enroll","/api/import","/api/state/([A-Z2-7]{10,20})","/bridge-setup.cmd","/bridge-setup.cmd\">Скачать установщик</a></p>\n<p>После запуска установщика файлы <code>.hcmd</code> будут открываться двойным кликом.</p>\n</body></html>","/bridge/bridge.cmd","/enroll/","/healthz","/r/","/r/([A-Z2-7]{10,20})","/r/([A-Z2-7]{10,20})/evidence","/r/([A-Z2-7]{10,20})/execute","0",":","; Max-Age=","; Path=/; Secure; HttpOnly; SameSite=Strict","<!doctype html>\n<html lang=\"ru\"><head><meta charset=\"utf-8\">\n<meta name=\"robots\" content=\"noindex,nofollow,noarchive\">\n<title>Homelab Bridge</title>\n<style>body{font-family:Segoe UI,Arial;background:#111827;color:#e5e7eb;max-width:760px;margin:40px auto;padding:20px}a{display:inline-block;background:#60a5fa;color:#172554;padding:12px 18px;border-radius:8px;text-decoration:none;font-weight:700}</style>\n</head><body>\n<h1>Установка Homelab Bridge</h1>\n<p>Профиль: ","</p>\n<p>Ссылка одноразовая и уже привязана к этому NetBird-адресу.</p>\n<p><a href=\"","APPROVE","Authorization","Bearer ","Cache-Control","Content-Disposition","Content-Length","Content-Length required","Content-Security-Policy","Content-Type","Expires","HIGH","HTTP/1.1","HomelabCommandPortal/1","Location","PORTAL_ERROR=","Pragma","Referrer-Policy","Set-Cookie","X-Content-Type-Options","X-Robots-Tag","\\1[REDACTED]","__Host-HLSESSION=","adapter","application/json; charset=utf-8","application/octet-stream","ascii","attachment; filename=\"HomelabBridgeSetup.cmd\"","attachment; filename=\"bridge.cmd\"","bind_enrollment","client_ip","command confirmation mismatch","command manifest unavailable","command_id","confirm","consume_bootstrap","default-src 'none'; style-src 'unsafe-inline'; form-action 'self'; frame-ancestors 'none'; base-uri 'none'","device authorization required","device_token","enroll","evidence_url","execute","health","import","invalid device token","invalid execute form","label","manifest","no-cache","no-referrer","no-store, no-cache, must-revalidate, max-age=0","noindex, nofollow,noarchive","nosniff","not found","ok","op","request body too large","risk","session_token","short request body","short_id","state","status","strict","t","text/html; charset=utf-8","text/plain; charset=utf-8","token","upload_path","url","utf-8","version","wb"]},"PortalError":{"line":40,"methods":[],"strings":[]},"Server":{"line":895,"methods":[],"strings":[]}},"has_adapter_call":true,"has_anonymous_result_route":false,"has_healthz":true,"has_public_key_route":false,"route_strings":["/api/enroll","/api/import","/api/state/([A-Z2-7]{10,20})","/bridge-setup.cmd","/bridge-setup.cmd\">Скачать установщик</a></p>\n<p>После запуска установщика файлы <code>.hcmd</code> будут открываться двойным кликом.</p>\n</body></html>","/bridge/bridge.cmd","/enroll/","/healthz","/r/","/r/([A-Z2-7]{10,20})","/r/([A-Z2-7]{10,20})/evidence","/r/([A-Z2-7]{10,20})/execute","evidence_url","health"]},"private_addresses_included":false,"proposed_design":{"adapter_operations":["result_public","result_public_key"],"document_fields":["schema_version","command_id","capsule_sha256","status","started_at_utc","finished_at_utc","runner_rc","runner_document_rc","runner_wrapper_matches_document","evidence_sha256","gateway_verified","summary","document_sha256","signature_algorithm","signature","key_id"],"excluded_fields":["tokens","presigned_urls","credentials","cookies","private_keys","raw_logs","private_addresses","local_paths"],"lookup_inputs":["command_id","capsule_sha256"],"no_listing":true,"public_key_url":"https://run.vpn.gram1.ru/.well-known/homelab-result-key.pem","result_url_template":"https://run.vpn.gram1.ru/.well-known/homelab-result/<command_id>/<capsule_sha256>.json","signature":{"algorithm":"Ed25519","canonical_json":"UTF-8, sort_keys=true, separators=(',',':')","encoding":"base64"},"terminal_only":true},"rollback_started":false,"sanitized":true,"schema":1,"secrets_included":false,"services":{"adapter":{"active":"active","pid":"976008","restarts":"0","sub":"running"},"portal":{"active":"active","pid":"976035","restarts":"0","sub":"running"}},"state_summary":{"current_running":[{"command_id":"RESULT-API-LOCAL-PREFLIGHT-FIX1-20260727T074036Z","state_file":"AZBBQXVDMF.json"}],"evidence_ready_count":28,"invalid":[],"other_running":[],"terminal_count":30},"status":"OK"}

OUTPUT_END
CHAT_OUTPUT_END
