package-agent-library-read-probe.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. """Build the small read-only Wanggang probe, with no code installation payload."""
  2. import datetime
  3. import hashlib
  4. import json
  5. from pathlib import Path
  6. import zipfile
  7. ROOT = Path(__file__).resolve().parents[1]
  8. OUT = ROOT / 'artifacts/ksf-agent-library-read-probe-20261108-r1'
  9. def main():
  10. OUT.mkdir(parents=True, exist_ok=True)
  11. files = {
  12. '发给王刚001.md': (ROOT / 'docs/agent-library-read-repair-20261108/发给王刚001.md').read_bytes(),
  13. 'probe-agent-library-read.py': (ROOT / 'scripts/probe-agent-library-read.py').read_bytes(),
  14. }
  15. sha = lambda raw: hashlib.sha256(raw).hexdigest()
  16. manifest = ''.join(sha(raw) + ' ' + name + '\n' for name, raw in files.items())
  17. files['FILES.sha256'] = manifest.encode('utf-8')
  18. archive = OUT / (OUT.name + '.zip')
  19. with zipfile.ZipFile(archive, 'w', zipfile.ZIP_DEFLATED) as z:
  20. for name, body in files.items(): z.writestr(name, body)
  21. with zipfile.ZipFile(archive) as z:
  22. assert z.testzip() is None
  23. for name, body in files.items(): assert z.read(name) == body
  24. for line in z.read('FILES.sha256').decode('utf-8').splitlines():
  25. digest, name = line.split(' ', 1); assert sha(z.read(name)) == digest
  26. receipt = dict(ok=True, filename=archive.name, bytes=archive.stat().st_size,
  27. sha256=sha(archive.read_bytes()), filesVerified=2, entries=3,
  28. createdAt=datetime.datetime.now(datetime.timezone.utc).isoformat(),
  29. deployed=False, rootCauseVerified=False, readOnlyProbe=True,
  30. installedCodeIncluded=False, credentialsIncluded=False)
  31. (OUT / 'delivery-receipt.json').write_text(json.dumps(receipt, ensure_ascii=False, indent=2) + '\n', encoding='utf-8')
  32. print(json.dumps(receipt, ensure_ascii=False))
  33. if __name__ == '__main__': main()