src / constants.ts
/* -------------------------------------------------------------------------- */
/* SHARTI Constants */
/* */
/* Canonical delimiters/markers shared across conversion, streaming and stats.*/
/* Kept in one place so emission and ingestion always agree. */
/* -------------------------------------------------------------------------- */
/** Inline reasoning delimiters understood by the provider. */
export const REASONING_START_TAG = "<think>";
export const REASONING_END_TAG = "</think>";
/** Extra wire key used to carry reasoning content on assistant messages. */
export const REASONING_CONTENT_KEY = "reasoning_content";
/* Turn-summary framing. The separator + badge compose the single anchor that BOTH sides
depend on: the emitter writes `SEPARATOR + BADGE + body` into the chat, and the ingester
strips everything from `MARKER` onward before resending. Keeping them derived from the
same pieces guarantees emission and ingestion always agree. */
/** Leading separator line prepended before the in-chat turn summary. */
export const TURN_SUMMARY_SEPARATOR = "\n\n---\n";
/** Badge that marks the start of the turn summary. */
export const TURN_SUMMARY_BADGE = "💡 ";
/** Full anchor searched during ingestion to strip the in-chat turn summary before resend. */
export const TURN_SUMMARY_MARKER = TURN_SUMMARY_SEPARATOR + TURN_SUMMARY_BADGE;
src / constants.ts
/* -------------------------------------------------------------------------- */
/* SHARTI Constants */
/* */
/* Canonical delimiters/markers shared across conversion, streaming and stats.*/
/* Kept in one place so emission and ingestion always agree. */
/* -------------------------------------------------------------------------- */
/** Inline reasoning delimiters understood by the provider. */
export const REASONING_START_TAG = "<think>";
export const REASONING_END_TAG = "</think>";
/** Extra wire key used to carry reasoning content on assistant messages. */
export const REASONING_CONTENT_KEY = "reasoning_content";
/* Turn-summary framing. The separator + badge compose the single anchor that BOTH sides
depend on: the emitter writes `SEPARATOR + BADGE + body` into the chat, and the ingester
strips everything from `MARKER` onward before resending. Keeping them derived from the
same pieces guarantees emission and ingestion always agree. */
/** Leading separator line prepended before the in-chat turn summary. */
export const TURN_SUMMARY_SEPARATOR = "\n\n---\n";
/** Badge that marks the start of the turn summary. */
export const TURN_SUMMARY_BADGE = "💡 ";
/** Full anchor searched during ingestion to strip the in-chat turn summary before resend. */
export const TURN_SUMMARY_MARKER = TURN_SUMMARY_SEPARATOR + TURN_SUMMARY_BADGE;