Will Anderson
53f2df500d
runtime: add dharma-required functions to el_runtime.c and runtime/*.el
...
Add the following functions that dharma registry calls but were missing
from the El runtime:
el_runtime.c (consumed by the old build system via released SDK):
- list_len, list_get — aliases for el_list_len/el_list_get (handlers.el)
- json_array_push — append pre-encoded element to JSON array string
- now_millis, unix_timestamp_ms, time_now_ms — ms-since-epoch aliases
- log_info, log_warn — structured stderr log helpers
- config — reads config from environment (alias for getenv)
- http_patch — HTTP PATCH with Content-Type: application/json
- http_post_engram — HTTP POST with optional X-API-Key header
- http_get_engram — HTTP GET with optional X-API-Key header
- str_to_bytes — encode string as JSON byte array [72,101,...]
- bytes_to_str — decode JSON byte array back to string
- hash_sha256 — SHA-256 hex digest using built-in sha256 impl
runtime/*.el (consumed by the new build system):
- http.el: http_patch, http_post_engram, http_get_engram
- time.el: now_millis, unix_timestamp_ms, time_now_ms
- env.el: config, log_info, log_warn, list_len, list_get
- json.el: json_array_push, bytes_to_str
- string.el: str_to_bytes, hash_sha256 (via __sha256_hex seed)
el_seed.h / el_seed.c:
- __sha256_hex primitive with self-contained SHA-256 implementation
2026-05-04 19:07:08 -05:00
Will Anderson
56724325ed
add runtime/json.el — JSON operations in El
...
Thin El wrappers over seed JSON primitives (json_get, json_get_raw,
json_parse, json_stringify, json_set, json_array_len, json_array_get,
json_array_get_string) plus typed extractors (json_get_string/int/float/bool)
and pure-El builders (json_build_object, json_build_array,
json_escape_string) that require no seed call.
2026-05-03 15:35:20 -05:00