Skip to content

artifacts/execution_manifest.hpp

Namespaces

Name
sgns
sgns::sgprocessing
Artifact and manifest binary serialization.

Classes

Name
struct sgns::sgprocessing::ExecutionManifest

Attributes

Name
constexpr size_t MAX_ARTIFACT_REFS
Max input/output artifact hash references.
constexpr size_t MAX_IDENTIFIER
Max bytes for execution/attempt/task/subtask/pass ID strings.

Attributes Documentation

variable MAX_ARTIFACT_REFS

static constexpr size_t MAX_ARTIFACT_REFS = 64;

Max input/output artifact hash references.

variable MAX_IDENTIFIER

static constexpr size_t MAX_IDENTIFIER = 256;

Max bytes for execution/attempt/task/subtask/pass ID strings.

Source code

#ifndef SGPROCMGR_EXECUTION_MANIFEST_HPP
#define SGPROCMGR_EXECUTION_MANIFEST_HPP

#include <cstdint>
#include "artifacts/artifact_types.hpp"

namespace sgns::sgprocessing
{

    // Manifest-specific size constants (D-06).
    static constexpr size_t MAX_ARTIFACT_REFS = 64;   
    static constexpr size_t MAX_IDENTIFIER    = 256;  

    struct ExecutionManifest
    {
        // ── Execution identifiers (ARTF-04 first group) ────────────────

        char executionId[MAX_IDENTIFIER];   
        char attemptId[MAX_IDENTIFIER];     
        char taskId[MAX_IDENTIFIER];        
        char subtaskId[MAX_IDENTIFIER];     
        char passId[MAX_RESOURCE_NAME];     

        // ── Executor & compatibility identities (D-13, D-14) ───────────

        uint8_t executorIdentity[SHA256_HASH_SIZE];      
        uint8_t modelIdentity[SHA256_HASH_SIZE];         
        uint8_t tokenizerIdentity[SHA256_HASH_SIZE];     
        uint8_t adapterIdentity[SHA256_HASH_SIZE];       
        uint8_t shaderIdentity[SHA256_HASH_SIZE];        
        uint8_t quantizationIdentity[SHA256_HASH_SIZE];  

        // ── Input / output artifact hash references (D-13) ─────────────

        uint32_t inputArtifactCount = 0;
        uint8_t  inputArtifactHashes[MAX_ARTIFACT_REFS][SHA256_HASH_SIZE];

        uint32_t outputArtifactCount = 0;
        uint8_t  outputArtifactHashes[MAX_ARTIFACT_REFS][SHA256_HASH_SIZE];

        // ── Timing (D-13) ──────────────────────────────────────────────

        int64_t startTimeUsec = 0;  
        int64_t endTimeUsec   = 0;  

        // ── Terminal state (D-13, D-15) ────────────────────────────────

        TerminalState terminalState = TerminalState::Success;

        // ── Resource-use summary (D-13) ────────────────────────────────

        uint64_t gpuMemoryUsedBytes  = 0;  
        uint64_t outputBytesProduced = 0;  
        uint64_t wallClockUsec       = 0;  

        // ── Manifest self-hash ─────────────────────────────────────────
        //
        // Computed by SerializeManifest() in artifact_serializer.hpp as
        // SHA-256 of the serialized manifest bytes with this field zeroed
        // (to avoid self-referential hashing). Write all zeros here before
        // calling SerializeManifest / ComputeManifestHash.
        uint8_t manifestHash[SHA256_HASH_SIZE];

        // ── Human-readable diagnostic (ARTF-09) ────────────────────────
        //
        // Carries ProcessingError::message. Defaults empty when
        // terminalState == TerminalState::Success. Silently truncated at
        // MAX_IDENTIFIER - 1 bytes with no truncation marker (D-10). Last
        // member of the struct — appended, never inserted, so no existing
        // field's offset changes (ARTF-10 append-only trailer convention).
        char errorMessage[MAX_IDENTIFIER];
    };

}  // namespace sgns::sgprocessing

#endif  // SGPROCMGR_EXECUTION_MANIFEST_HPP

Updated on 2026-09-17 at 06:29:15 +0000