- harness/es.py: append-only event store + проекции (образец — кооп-портал) - harness/levels.py: уровни 1с/1м/1ч/1д, контекст ∝ масштабу - harness/scheduler.py: уровневые потоки, идемпотентные тики, absorbed-стабы - harness/isolated_runner.py + _llm_worker.py: LLM-тик в сабпроцессе (глобальный asyncio-рантайм Strands не переживает 2+ create_harness) - cli.py: init/task/tasks/status/events + requeue (написан самим минутным агентом) - 9router: отдельный ключ sk-simbiot, модель auto (glm-5.3 первым)
28 lines
821 B
Python
28 lines
821 B
Python
# This file is dual licensed under the terms of the Apache License, Version
|
|
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
|
# for complete details.
|
|
|
|
from __future__ import annotations
|
|
|
|
from cryptography.hazmat.bindings._rust import asn1
|
|
from cryptography.hazmat.primitives import hashes
|
|
|
|
decode_dss_signature = asn1.decode_dss_signature
|
|
encode_dss_signature = asn1.encode_dss_signature
|
|
|
|
|
|
class NoDigestInfo:
|
|
pass
|
|
|
|
|
|
class Prehashed:
|
|
def __init__(self, algorithm: hashes.HashAlgorithm):
|
|
if not isinstance(algorithm, hashes.HashAlgorithm):
|
|
raise TypeError("Expected instance of HashAlgorithm.")
|
|
|
|
self._algorithm = algorithm
|
|
self._digest_size = algorithm.digest_size
|
|
|
|
@property
|
|
def digest_size(self) -> int:
|
|
return self._digest_size
|