Util

pi-cyberneticsourcetypescript
Path: pi-cybernetic/src/util.tsRelative: src/util.tsSubproject: pi-cyberneticCategory: cybernetic-core
Lines: 99Bytes: 3,339Imports: 0Exports: 8

Content Preview

  1. /** Deterministic shared helpers — no LLM reasoning, no randomness beyond ids. */
  2. let idCounter = 0;
  3. export function nextId(prefix: string): string {
  4. idCounter += 1;
  5. return `${prefix}-${Date.now().toString(36)}-${idCounter}`;
  6. }
  7. /** JSON.stringify with recursively sorted object keys — stable signatures. */
  8. export function stableStringify(value: unknown): string {
  9. return JSON.stringify(sortValue(value));
  10. }
  11. function sortValue(value: unknown): unknown {
  12. if (Array.isArray(value)) return v