@maverick0351/odin-protocol-js
Version:
JavaScript/TypeScript SDK for ODIN v1.0 state capsule protocol
91 lines • 4.65 kB
JavaScript
;
/**
* ODIN v1.0 state capsule protocol constants
* Standardization of AI consciousness and neural state representation
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.BLOCK_TIME_TARGET = exports.MAX_CHAIN_LENGTH = exports.GENESIS_HASH = exports.PROTOCOL_ID = exports.DISCOVERY_PORT = exports.DEFAULT_PORT = exports.ERROR_MESSAGES = exports.MAX_FUTURE_DRIFT = exports.TIMESTAMP_EPOCH = exports.CHECKSUM_SIZE = exports.SIGNATURE_SIZE = exports.CREATOR_ID_SIZE = exports.TIMESTAMP_SIZE = exports.COMPRESSION_SIZE = exports.ENCODING_SIZE = exports.TYPE_SIZE = exports.VERSION_SIZE = exports.MAGIC_SIZE = exports.MIN_CAPSULE_SIZE = exports.MAX_PAYLOAD_SIZE = exports.HEADER_SIZE = exports.SignatureAlgorithm = exports.CompressionType = exports.EncodingType = exports.CapsuleType = exports.MAGIC_BYTES = exports.ODIN_VERSION = void 0;
// Protocol version
exports.ODIN_VERSION = "1.0";
// Magic bytes for ODIN capsules (ODIN in hex)
exports.MAGIC_BYTES = new Uint8Array([0x4F, 0x44, 0x49, 0x4E]);
// Capsule types
var CapsuleType;
(function (CapsuleType) {
CapsuleType[CapsuleType["CONSCIOUSNESS"] = 1] = "CONSCIOUSNESS";
CapsuleType[CapsuleType["MEMORY"] = 2] = "MEMORY";
CapsuleType[CapsuleType["EXPERIENCE"] = 3] = "EXPERIENCE";
CapsuleType[CapsuleType["KNOWLEDGE"] = 4] = "KNOWLEDGE";
CapsuleType[CapsuleType["SKILL"] = 5] = "SKILL";
CapsuleType[CapsuleType["EMOTION"] = 6] = "EMOTION";
CapsuleType[CapsuleType["DECISION"] = 7] = "DECISION";
CapsuleType[CapsuleType["COMMUNICATION"] = 8] = "COMMUNICATION";
CapsuleType[CapsuleType["LEARNING"] = 9] = "LEARNING";
CapsuleType[CapsuleType["CREATIVE"] = 10] = "CREATIVE";
CapsuleType[CapsuleType["ANALYTICAL"] = 11] = "ANALYTICAL";
CapsuleType[CapsuleType["SOCIAL"] = 12] = "SOCIAL";
})(CapsuleType || (exports.CapsuleType = CapsuleType = {}));
// Encoding types
var EncodingType;
(function (EncodingType) {
EncodingType[EncodingType["MSGPACK"] = 1] = "MSGPACK";
EncodingType[EncodingType["JSON"] = 2] = "JSON";
EncodingType[EncodingType["PROTOBUF"] = 3] = "PROTOBUF";
EncodingType[EncodingType["CUSTOM"] = 255] = "CUSTOM";
})(EncodingType || (exports.EncodingType = EncodingType = {}));
// Compression types
var CompressionType;
(function (CompressionType) {
CompressionType[CompressionType["NONE"] = 0] = "NONE";
CompressionType[CompressionType["GZIP"] = 1] = "GZIP";
CompressionType[CompressionType["LZ4"] = 2] = "LZ4";
CompressionType[CompressionType["ZSTD"] = 3] = "ZSTD";
})(CompressionType || (exports.CompressionType = CompressionType = {}));
// Signature algorithms
var SignatureAlgorithm;
(function (SignatureAlgorithm) {
SignatureAlgorithm[SignatureAlgorithm["ED25519"] = 1] = "ED25519";
SignatureAlgorithm[SignatureAlgorithm["SECP256K1"] = 2] = "SECP256K1";
SignatureAlgorithm[SignatureAlgorithm["RSA2048"] = 3] = "RSA2048";
SignatureAlgorithm[SignatureAlgorithm["RSA4096"] = 4] = "RSA4096";
})(SignatureAlgorithm || (exports.SignatureAlgorithm = SignatureAlgorithm = {}));
// Structure constants
exports.HEADER_SIZE = 64; // Fixed header size in bytes
exports.MAX_PAYLOAD_SIZE = 16 * 1024 * 1024; // 16MB max payload
exports.MIN_CAPSULE_SIZE = exports.HEADER_SIZE + 4; // Header + minimal payload
// Field sizes
exports.MAGIC_SIZE = 4;
exports.VERSION_SIZE = 4;
exports.TYPE_SIZE = 1;
exports.ENCODING_SIZE = 1;
exports.COMPRESSION_SIZE = 1;
exports.TIMESTAMP_SIZE = 8;
exports.CREATOR_ID_SIZE = 32;
exports.SIGNATURE_SIZE = 64;
exports.CHECKSUM_SIZE = 32;
// Time constants
exports.TIMESTAMP_EPOCH = 1609459200; // 2021-01-01 00:00:00 UTC
exports.MAX_FUTURE_DRIFT = 300; // 5 minutes in seconds
// Error messages
exports.ERROR_MESSAGES = {
INVALID_MAGIC: "Invalid magic bytes - not an ODIN capsule",
INVALID_VERSION: "Unsupported ODIN version",
INVALID_TYPE: "Invalid capsule type",
INVALID_ENCODING: "Unsupported encoding type",
INVALID_COMPRESSION: "Unsupported compression type",
INVALID_SIZE: "Invalid capsule size",
INVALID_CHECKSUM: "Checksum verification failed",
INVALID_SIGNATURE: "Signature verification failed",
INVALID_TIMESTAMP: "Invalid timestamp",
PAYLOAD_TOO_LARGE: "Payload exceeds maximum size",
INSUFFICIENT_DATA: "Insufficient data for parsing"
};
// Network constants
exports.DEFAULT_PORT = 8090;
exports.DISCOVERY_PORT = 8091;
exports.PROTOCOL_ID = "odin/1.0";
// Chain constants
exports.GENESIS_HASH = "0000000000000000000000000000000000000000000000000000000000000000";
exports.MAX_CHAIN_LENGTH = 1000000;
exports.BLOCK_TIME_TARGET = 10; // seconds
//# sourceMappingURL=constants.js.map