@@ -506,7 +506,6 @@ int64_t
506506fossil_bluecrab_myshell_parse_duration_seconds (const char *duration_str,
507507 fossil_bluecrab_myshell_error_t *out_err);
508508
509-
510509// -------------------------------
511510// Bootstrapping utilities (schema / builtins)
512511// -------------------------------
@@ -519,6 +518,112 @@ fossil_bluecrab_myshell_load_datafile(fossil_bluecrab_myshell_t *db,
519518 const char *datafile_path,
520519 fossil_bluecrab_myshell_error_t *out_err);
521520
521+ // -------------------------------
522+ // Commit history iteration
523+ // -------------------------------
524+
525+ /* * Iterate commits in a branch (newest → oldest). */
526+ typedef bool (*fossil_bluecrab_myshell_commit_iter_cb)(
527+ const fossil_bluecrab_myshell_commit_t *commit, void *user);
528+
529+ fossil_bluecrab_myshell_error_t
530+ fossil_bluecrab_myshell_iter_commits (fossil_bluecrab_myshell_t *db,
531+ const char *branch_name,
532+ fossil_bluecrab_myshell_commit_iter_cb cb,
533+ void *user);
534+
535+ // -------------------------------
536+ // Replication / sync
537+ // -------------------------------
538+
539+ /* * Push local commits to a remote (URL or path). */
540+ fossil_bluecrab_myshell_error_t
541+ fossil_bluecrab_myshell_sync_push (fossil_bluecrab_myshell_t *db,
542+ const char *remote_url);
543+
544+ /* * Pull commits from a remote into local. */
545+ fossil_bluecrab_myshell_error_t
546+ fossil_bluecrab_myshell_sync_pull (fossil_bluecrab_myshell_t *db,
547+ const char *remote_url);
548+
549+ // -------------------------------
550+ // Schema inspection
551+ // -------------------------------
552+
553+ /* * List table names. Caller frees array. */
554+ char **
555+ fossil_bluecrab_myshell_list_tables (fossil_bluecrab_myshell_t *db,
556+ size_t *out_count);
557+
558+ /* * List index names. Caller frees array. */
559+ char **
560+ fossil_bluecrab_myshell_list_indexes (fossil_bluecrab_myshell_t *db,
561+ size_t *out_count);
562+
563+
564+ // -------------------------------
565+ // Streaming API for large data
566+ // -------------------------------
567+
568+ /* * Streaming handle (opaque). */
569+ typedef struct fossil_bluecrab_myshell_stream_t fossil_bluecrab_myshell_stream_t ;
570+
571+ /* * Open a stream for a large blob or FSON field. Mode = "r" or "w". */
572+ fossil_bluecrab_myshell_stream_t *
573+ fossil_bluecrab_myshell_stream_open (fossil_bluecrab_myshell_t *db,
574+ const char *key,
575+ const char *mode,
576+ fossil_bluecrab_myshell_error_t *out_err);
577+
578+ /* * Read from stream. */
579+ size_t
580+ fossil_bluecrab_myshell_stream_read (fossil_bluecrab_myshell_stream_t *s,
581+ void *buf,
582+ size_t n,
583+ fossil_bluecrab_myshell_error_t *out_err);
584+
585+ /* * Write to stream. */
586+ size_t
587+ fossil_bluecrab_myshell_stream_write (fossil_bluecrab_myshell_stream_t *s,
588+ const void *buf,
589+ size_t n,
590+ fossil_bluecrab_myshell_error_t *out_err);
591+
592+ /* * Close and free stream. */
593+ fossil_bluecrab_myshell_error_t
594+ fossil_bluecrab_myshell_stream_close (fossil_bluecrab_myshell_stream_t *s);
595+
596+
597+ // -------------------------------
598+ // Savepoints / checkpoints
599+ // -------------------------------
600+
601+ /* * Lightweight savepoints (nested transactions). */
602+ fossil_bluecrab_myshell_error_t
603+ fossil_bluecrab_myshell_savepoint (fossil_bluecrab_myshell_txn_t *txn,
604+ const char *name);
605+
606+ fossil_bluecrab_myshell_error_t
607+ fossil_bluecrab_myshell_release_savepoint (fossil_bluecrab_myshell_txn_t *txn,
608+ const char *name);
609+
610+ fossil_bluecrab_myshell_error_t
611+ fossil_bluecrab_myshell_rollback_to_savepoint (fossil_bluecrab_myshell_txn_t *txn,
612+ const char *name);
613+
614+
615+ // -------------------------------
616+ // Event hooks / callbacks
617+ // -------------------------------
618+
619+ /* * Event callback signature (event string, e.g. "commit", "merge", "record.put"). */
620+ typedef void (*fossil_bluecrab_myshell_event_cb)(const char *event, void *user);
621+
622+ /* * Install an event callback. */
623+ void
624+ fossil_bluecrab_myshell_set_event_callback (fossil_bluecrab_myshell_t *db,
625+ fossil_bluecrab_myshell_event_cb cb,
626+ void *user);
522627
523628// -------------------------------
524629// Debug / introspection
0 commit comments