github-issue-tower-defence-management 2.39.0 → 2.40.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -14
- package/bin/adapter/entry-points/console/ui-dist/assets/{index-CqVIONFD.js → index-DWnS9748.js} +3 -3
- package/bin/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +0 -22
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/entry-points/handlers/notifySilentTmuxSessions.js +2 -7
- package/bin/adapter/entry-points/handlers/notifySilentTmuxSessions.js.map +1 -1
- package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js +0 -13
- package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js.map +1 -1
- package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js +1 -31
- package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js.map +1 -1
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js +13 -65
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js.map +1 -1
- package/package.json +2 -2
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/notifySilentTmuxSessions.d.ts +0 -6
- package/types/adapter/entry-points/handlers/notifySilentTmuxSessions.d.ts.map +1 -1
- package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts +0 -4
- package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts.map +1 -1
- package/types/domain/entities/LiveSessionActivitySnapshot.d.ts +0 -2
- package/types/domain/entities/LiveSessionActivitySnapshot.d.ts.map +1 -1
- package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts +0 -3
- package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts.map +1 -1
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts +1 -9
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.d.ts +0 -2
- package/types/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.d.ts.map +1 -1
- package/bin/adapter/entry-points/handlers/ownerReplyMarkerDirectoryResolve.js +0 -64
- package/bin/adapter/entry-points/handlers/ownerReplyMarkerDirectoryResolve.js.map +0 -1
- package/bin/adapter/repositories/FileSystemSessionOutputActivityRepository.js +0 -103
- package/bin/adapter/repositories/FileSystemSessionOutputActivityRepository.js.map +0 -1
- package/bin/adapter/repositories/NoUnansweredOwnerCallStatusProvider.js +0 -12
- package/bin/adapter/repositories/NoUnansweredOwnerCallStatusProvider.js.map +0 -1
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js +0 -322
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js.map +0 -1
- package/bin/domain/entities/LiveSessionOutputActivity.js +0 -3
- package/bin/domain/entities/LiveSessionOutputActivity.js.map +0 -1
- package/bin/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.js +0 -3
- package/bin/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.js.map +0 -1
- package/bin/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.js +0 -3
- package/bin/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.js.map +0 -1
- package/types/adapter/entry-points/handlers/ownerReplyMarkerDirectoryResolve.d.ts +0 -2
- package/types/adapter/entry-points/handlers/ownerReplyMarkerDirectoryResolve.d.ts.map +0 -1
- package/types/adapter/repositories/FileSystemSessionOutputActivityRepository.d.ts +0 -7
- package/types/adapter/repositories/FileSystemSessionOutputActivityRepository.d.ts.map +0 -1
- package/types/adapter/repositories/NoUnansweredOwnerCallStatusProvider.d.ts +0 -5
- package/types/adapter/repositories/NoUnansweredOwnerCallStatusProvider.d.ts.map +0 -1
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts +0 -18
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts.map +0 -1
- package/types/domain/entities/LiveSessionOutputActivity.d.ts +0 -5
- package/types/domain/entities/LiveSessionOutputActivity.d.ts.map +0 -1
- package/types/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.d.ts +0 -4
- package/types/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.d.ts.map +0 -1
- package/types/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.d.ts +0 -5
- package/types/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -396,11 +396,8 @@ tokenExhaustionHandoverStateFilePath?: string # Optional: File path for the dura
|
|
|
396
396
|
silentNotificationEnabled?: boolean # Optional: Master switch for the silent live session self-check notification. The step is a no-op unless this is `true`, the fleet-wide config file named by `--fleetConfigFilePath` (or `TDPM_FLEET_CONFIG`) contains a top-level `silentNotificationEnabled: true`, or the `TDPM_SILENT_NOTIFICATION_ENABLED` environment variable equals the string `true`. Priority order: this per-project config key (highest), fleet config (middle), env var (lowest). This gate prevents the step from acting automatically when the daemon is run with a default configuration; it must be explicitly turned on. Default false
|
|
397
397
|
subAgentOutputRootDirectory?: string # Optional: Root directory holding one output file per sub-process (file name derived from the sub-process label). The modification time of each file is read to compute how long the sub-process output has been idle. When unset, sub-process idle time is reported as 0 and only the running-time threshold can trigger a sub-process notification
|
|
398
398
|
subAgentProcessMatchPattern?: string # Optional: Regular expression matched against each process command line to discover the sub-processes that belong to a monitored session. The expression must define a named capture group `session` whose value equals the monitored session name, and may define a named capture group `label` used as the display name. When unset, the sub-process check is skipped
|
|
399
|
-
ownerCallMarker?: string # Optional: Marker substring that identifies an assistant message asking the owner for a decision or confirmation. When set, the main-session stalled section is suppressed while a session's latest marker-bearing assistant message is newer (by full timestamp) than its latest genuine owner reply. A marker ending with `>` also matches its candidate form, produced by replacing that trailing `>` with `-pending>`, so a configured `<call-to-user>` matches both `<call-to-user>` and `<call-to-user-pending>`; any marker not ending with `>` matches only itself. When unset, no session is treated as waiting on the owner
|
|
400
399
|
subAgentTranscriptRootDirectory?: string # Optional: Projects root directory (for example `~/.claude/projects`) under which each session's transcript is stored as `<cwd-slug>/<sessionId>.jsonl` and its sub-agent transcripts live in the sibling `<cwd-slug>/<sessionId>/subagents/` directory as one `agent-<id>.jsonl` file per sub-agent. Because the on-disk directory is keyed by the session's working-directory slug and session id rather than by the tmux session name, the sub-agent directory is derived from the already-resolved main-session transcript path (the `.jsonl` suffix is stripped and `subagents` is appended). A sub-agent is treated as finished when the last meaningful entry of its transcript is a completion or termination marker: an assistant message whose `stop_reason` is `end_turn` or `stop_sequence`, an assistant message whose final content block is `text` (a final answer returned to the parent, which Claude Code often writes with a `null` `stop_reason`), a user message whose final content block is `text` (a terminal user entry such as `[Request interrupted by user]`), a user message whose final content block is the `tool_result` of a `StructuredOutput` tool call (the structured output the sub-agent delivered as its final answer), or a user message with no content blocks. A finished sub-agent is skipped only when it is no longer listed in the harness running-sub-agent set (`subAgentRuntimeRootDirectory`), or when that set cannot be read at all; a finished sub-agent the running set still lists is kept and reported as an unconsumed result, because the leader clears its record line once it has acted on the completion. Only a sub-agent whose last entry is an assistant message with a pending `tool_use` block and no following tool result is still considered active; its idle time is computed from the transcript file modification time (following symlinks) and the running time from its first entry timestamp. An active sub-agent whose pending tool command matches a live host process is classified as waiting on that external process and is exempt from the idle threshold (a genuinely hung sub-agent whose matching process is absent is still flagged), and the running threshold announces once per crossing per label. When set, this transcript-based discovery is used instead of `subAgentProcessMatchPattern`. When unset, the process-match discovery is used
|
|
401
400
|
subAgentRuntimeRootDirectory?: string # Optional: Runtime root directory (for example `/tmp/claude-<uid>`) under which each session's positive running-sub-agent set is expected at `<cwd-slug>/<sessionId>/running-subagents.txt`. Each non-blank line has the form `<agentId> <label-or-branch-or-URL>`; only the first whitespace-delimited token of the line is taken as the sub-agent id, and any remaining text on the line (a label, branch name, or pull request URL) is ignored. Blank and whitespace-only lines are skipped. When transcript-based discovery is used, this enables a positive process-liveness gate: a sub-agent whose id is absent from the running set has already exited, so its stale on-disk transcript is not flagged even when its tail is a plain in-flight `tool_result`. Membership in the running set is also what distinguishes a consumed completion from an unconsumed one: a finished sub-agent the set still lists is reported as an unconsumed result and drives the unconsumed-result reminder section, while one absent from the set is dropped. When this directory is unset it defaults to `<os-tmpdir>/claude-<uid>` (or is disabled on platforms without a numeric user id); when the directory or the running-set file cannot be read the gate is skipped (fail-open) and the terminal-status and completion-marker exclusions remain the sole guards
|
|
402
|
-
mainSilentThresholdSeconds?: number # Optional: Seconds of main-session output silence after which the main-session self-check section is sent. Default 600
|
|
403
|
-
unansweredOwnerCallGraceSeconds?: number # Optional: Retained only for backward compatibility of the configuration surface and no longer consulted. An unanswered owner call now suppresses the main-session stalled section unconditionally, with no age or grace expiry, so no value of this key changes any behaviour. Default 3600
|
|
404
401
|
subAgentSilentThresholdSeconds?: number # Optional: Seconds of sub-process output silence after which the sub-process section is sent. Default 300
|
|
405
402
|
subAgentRunningThresholdSeconds?: number # Optional: Seconds a sub-process may run before the sub-process section is sent regardless of its output silence. Default 900
|
|
406
403
|
silentNotificationStaggerSeconds?: number # Optional: Seconds to wait between consecutive session notifications within one cycle, so the targets are notified sequentially rather than all at once. Default 25
|
|
@@ -409,7 +406,6 @@ candidateDebounceStateFilePath?: string # Optional: Path to the JSON state file
|
|
|
409
406
|
activeHubTaskStatus?: string # Optional: GitHub Project Status value that marks a session's hub task as still actively worked in an interactive session. For a session whose name is a `https://github.com/{owner}/{repo}/issues/{N}` issue URL, the hub task's latest state and Status are resolved before sending and the notification is suppressed when the issue is closed or merged, or when its Status differs from this value. Each resolved status is cached by issue URL (see hubTaskStatusCacheStateFilePath and hubTaskStatusCacheTtlSeconds) so a fresh cached entry decides the gate without a new GitHub query. When the hub task cannot be resolved (the resolver returns no tracked task, or a transient API error is thrown), a cached status is used as a fallback even after it expires: a cached active entry keeps the notification (the session is still notified if genuinely stalled) and a cached closed or non-active entry suppresses it. Only when there is no cached status at all and live resolution fails does the gate fail open once, logging a distinct warning. Sessions whose name is not a github.com issue URL are never checked. When unset, this hub-task active-status check is a no-op and existing behavior is preserved
|
|
410
407
|
hubTaskStatusCacheStateFilePath?: string # Optional: Path to the JSON state file that caches each hub task's resolved state and Status keyed by issue URL for the hub-task active-status gate. When unset, defaults to ${XDG_CACHE_HOME:-~/.cache}/tdpm/silent-session-hub-task-status.json
|
|
411
408
|
hubTaskStatusCacheTtlSeconds?: number # Optional: Seconds a cached hub-task status is considered fresh enough to decide the gate without re-querying GitHub. A cached entry older than this is re-resolved, but is still used as a fallback when re-resolution fails. Default 300
|
|
412
|
-
silentMainStalledStaleOwnerCallMessage?: string # Optional: Overrides the stale-owner-call reminder body. That reminder variant is currently never composed, because an unanswered owner call suppresses the main-session stalled section unconditionally, so this key has no effect. The owner-call format guidance is appended. When unset, a built-in message directing the agent to re-raise its ask self-containedly or continue autonomously is used
|
|
413
409
|
silentSubAgentIdleMessageHeader?: string # Optional: Overrides the line shown above the sub-process list in the idle (no-output) sub-process message. When unset, a generic built-in line is used
|
|
414
410
|
silentSubAgentIdleMessageFooter?: string # Optional: Overrides the line shown below the sub-process list in the idle (no-output) sub-process message. When unset, a generic built-in line is used
|
|
415
411
|
silentSubAgentLongRunningMessageHeader?: string # Optional: Overrides the line shown above the sub-process list in the long-running sub-process message. When unset, a generic built-in line is used
|
|
@@ -674,7 +670,7 @@ The index files list every project in `inTmuxProjectOrder` whose `{name}.json` a
|
|
|
674
670
|
|
|
675
671
|
Every session of the v5 document carries `unansweredCalls`, the owner calls that session has raised and the owner has not answered, oldest first. Each entry has `calledAt`, the ISO 8601 UTC time at which the call was raised, and `body`, the text of the message that raised it. `calledAt` is the identity of a call: two calls carrying the same text are distinguished by their time. A session with nothing outstanding carries an empty array.
|
|
676
672
|
|
|
677
|
-
The calls are read from the
|
|
673
|
+
The calls are read from the owner call files written by the daemon when the session raises an owner call; without those files every session carries an empty array. A session is keyed by its tmux session name, derived from the issue URL exactly as the in-tmux session reconciler derives it.
|
|
678
674
|
|
|
679
675
|
### Field Descriptions
|
|
680
676
|
|
|
@@ -694,19 +690,15 @@ For each `In Tmux by human` issue with no live session, the reconciler launches
|
|
|
694
690
|
|
|
695
691
|
## Silent Live Session Notification
|
|
696
692
|
|
|
697
|
-
Each schedule cycle, when `silentNotificationEnabled` is true, also inspects every live interactive Claude Code session and sends a short self-check reminder into a session via `tmux send-keys` when
|
|
693
|
+
Each schedule cycle, when `silentNotificationEnabled` is true, also inspects every live interactive Claude Code session and sends a short self-check reminder into a session via `tmux send-keys` when the sub-process condition holds. Within the sub-process section the idle (no-output) condition and the long-running condition each produce their own distinct message so a small idle time is never lumped together with a long running time; a sub-process that matches both conditions is reported in both messages, kept separate. When `silentNotificationEnabled` is not set, the entire step is a no-op even if the daemon picks up its configuration automatically.
|
|
698
694
|
|
|
699
|
-
Candidate sessions are first selected from the live process tree: every live tmux session is taken, the descendants of each session's pane processes are walked, and the first descendant that is an interactive Claude Code process (its command line contains `claude` and does not contain the owner-handover marker `Take ownership of`, and its environment exposes both `CLAUDE_CODE_SESSION_ID` and `CLAUDE_CONFIG_DIR`) is taken as that session's process. Because the walk is anchored on tmux panes, background owner-handover spawns, the preparation daemon, and monitor processes — none of which run inside an interactive tmux pane — are excluded; the owner-handover marker check is an additional guard. The monitor then acts on a session when it is either named after a `github.com` issue or pull-request URL — that is, a name of the form `https_//github_com/{owner}/{repo}/issues/{N}` or `https_//github_com/{owner}/{repo}/pull/{N}` (the form tmux derives from the raw issue/PR URL by replacing only `.` and `:` with `_`; the raw `https://github.com/...` form is matched as well) — or has a resolvable Claude agent transcript on disk. The resolvable transcript is the proof that the session is a live Claude agent session, so role-named resident leader and project-manager agent sessions (for example `app`, `tdpm-cli`, `secretary`, and the per-project `*pm` sessions) are monitored
|
|
695
|
+
Candidate sessions are first selected from the live process tree: every live tmux session is taken, the descendants of each session's pane processes are walked, and the first descendant that is an interactive Claude Code process (its command line contains `claude` and does not contain the owner-handover marker `Take ownership of`, and its environment exposes both `CLAUDE_CODE_SESSION_ID` and `CLAUDE_CONFIG_DIR`) is taken as that session's process. Because the walk is anchored on tmux panes, background owner-handover spawns, the preparation daemon, and monitor processes — none of which run inside an interactive tmux pane — are excluded; the owner-handover marker check is an additional guard. The monitor then acts on a session when it is either named after a `github.com` issue or pull-request URL — that is, a name of the form `https_//github_com/{owner}/{repo}/issues/{N}` or `https_//github_com/{owner}/{repo}/pull/{N}` (the form tmux derives from the raw issue/PR URL by replacing only `.` and `:` with `_`; the raw `https://github.com/...` form is matched as well) — or has a resolvable Claude agent transcript on disk. The resolvable transcript is the proof that the session is a live Claude agent session, so role-named resident leader and project-manager agent sessions (for example `app`, `tdpm-cli`, `secretary`, and the per-project `*pm` sessions) are monitored when their names encode no issue or pull-request URL. Gating this broadened inclusion on the resolvable transcript rather than on merely being a tmux session keeps genuine non-agent interactive sessions excluded: a login shell, or a viewer such as `sso_login` or a `tdpm` viewer, exposes no Claude transcript on disk, so it is left untouched — it receives no sub-process notification — and the count of interactive sessions ignored each cycle, those that are neither github-named nor have a resolvable transcript, is logged. A role-named leader or PM session encodes no `github.com` hub task, so the hub-task active-status gate described below treats it as active and does not suppress it. Each interactive session's transcript is resolved by scanning the `projects/<cwd-slug>/` subdirectories of two roots — the per-session `<CLAUDE_CONFIG_DIR>/projects/` and the shared `~/.claude/projects/` — for a `<sessionId>.jsonl` file named by any of the session's candidate session ids. The candidate ids are derived from the process tree, in priority order: the current session id recorded in `<CLAUDE_CONFIG_DIR>/sessions/<pid>.json` (the session id rotates on resume or compaction, and this record holds the current value), then the interactive process's own launch id from the `CLAUDE_CODE_SESSION_ID` environment variable, then the distinct ids propagated to its descendant processes, all deduped. Searching the shared root and the rotated current id is required because, for a resumed or compacted session, the actively-written transcript is named by the current id and lives under the shared root rather than under the per-session config directory; the descendant-propagated ids are required because, for a session started without `--resume`, the own launch id names no transcript on disk and the live transcript is named by the descendant id. The candidate ids are tried strictly in this priority order, and the first candidate id that names an existing `<sessionId>.jsonl` file in either root is selected; the most recently modified match is used only as a tiebreak when that same id exists in both roots. Resolving by candidate-id priority rather than by the globally most recently modified file across all candidate ids is required because a session running a sub-agent has the sub-agent's own transcript on disk too, and that sub-agent transcript can be more recently modified than the parent session's transcript while not naming the parent. The parent session's own ids (the rotated current id and the launch id) come before any descendant-propagated id, so the parent's own transcript is selected ahead of a sub-agent transcript; a sub-agent transcript, which lives under `projects/<cwd-slug>/<parentSessionId>/subagents/agent-<id>.jsonl` rather than as a top-level `<sessionId>.jsonl` file, is never reached. This way a non-resume session and a session that has no issue URL both resolve just as reliably as a resume, issue-url-named one, and a session that is waiting on the owner while a sub-agent runs is evaluated against its own transcript rather than the sub-agent's.
|
|
700
696
|
|
|
701
|
-
The
|
|
697
|
+
The sub-process section is sent, regardless of main output, when at least one sub-process of the session has been output-idle for `subAgentSilentThresholdSeconds`, has been running for `subAgentRunningThresholdSeconds`, or has finished while its result stayed unconsumed for `subAgentSilentThresholdSeconds`. It is composed of up to three distinct messages, one per condition: an idle message that lists each sub-process that produced no output for at least `subAgentSilentThresholdSeconds` with its no-output minutes, tells the agent to treat that system-detected idle duration as the authoritative signal rather than re-deriving whether the sub-process is alive, forbids dismissing the signal from speculation, and requires the agent to determine the cause by a concrete check (whether there is genuinely no recent activity anywhere, including a very recent push or commit or output from nested sub-processes it started, versus being legitimately blocked on an external dependency such as a continuous-integration run, an external API, or another process), to act if stuck or state the waiting conclusion with concrete evidence if waiting, and to output that investigation result into the session as a log even though owner notification is not required, and a long-running message that lists each sub-process that has been running for at least `subAgentRunningThresholdSeconds` with its running minutes and asks the agent to verify it is genuinely advancing rather than caught in an infinite loop, a task that is too large, or a stuck approach. The long-running message foregrounds the running duration and does not surface the short idle time, so a sub-process flagged only for running long is not dismissed because its silent time looks small; a sub-process that matches both conditions appears in both messages. The long-running threshold is overridable per project via `subAgentRunningThresholdSeconds` (default 900 seconds) for repositories whose continuous integration legitimately runs longer. The third message is the unconsumed-result message: it lists each finished sub-process whose result has been waiting unread for at least `subAgentSilentThresholdSeconds` with the whole minutes it has been waiting, and asks the agent to read that result, act on it, and then mark the sub-process finished so it is no longer tracked as running. A finished sub-process is recognized as unconsumed while it is still listed in the harness running set, because the leader removes that record line once it has acted on the completion, and its waiting time is the age of the last transcript write. This condition is evaluated independently of main-session silence, so a leader that keeps producing output while a finished sub-process result sits unread is still reminded. A finished sub-process never appears in the idle or long-running messages; those two remain restricted to sub-processes that are still working. Sub-processes are discovered in one of two ways: when `subAgentTranscriptRootDirectory` is configured, each session's `subagents/agent-<id>.jsonl` transcripts are scanned. The sub-agent directory is the `subagents/` directory that sits next to the session's already-resolved main-session transcript file under `projects/<cwd-slug>/<sessionId>/subagents/`, derived by stripping the `.jsonl` suffix from the main-session transcript path and appending `subagents`; this on-disk path is keyed by the session's working-directory slug and session id, not by the tmux session name. Whether a sub-agent has finished is determined from the last meaningful transcript entry rather than from the last non-null `stop_reason` seen anywhere in the file. A sub-agent is treated as finished when its last entry is a completion or termination marker: an assistant message whose `stop_reason` is `end_turn` or `stop_sequence`, an assistant message whose final content block is `text` (a final answer returned to the parent, which Claude Code often writes with a `null` `stop_reason`), a user message whose final content block is `text` (a terminal user entry such as `[Request interrupted by user]`), a user message whose final content block is the `tool_result` of a `StructuredOutput` tool call (the structured output the sub-agent delivered as its final answer), or a user message with no content blocks. Only a sub-agent whose last entry is an assistant message with a pending `tool_use` block and no following tool result is still considered active and subject to the idle and running thresholds; this is the genuinely-incomplete shape — the sub-agent requested a tool that never returned and is hung mid-work. A plain trailing `tool_result` (from any tool other than `StructuredOutput`) is not treated as a completion marker, because a live agent alternates between pending `tool_use` and `tool_result` entries as tools complete; treating it as terminal would make an active agent flap in and out of the snapshot. Idle time is taken from the transcript file modification time (following symlinks) while running time is taken from its first entry timestamp. Two positive signals drop a sub-agent outright: a parent-transcript task notification whose `<status>` is a terminal value (`completed`, `killed`, `stopped`, or `failed`) drops every `<task-id>` it lists, and, when `subAgentRuntimeRootDirectory` is configured, a process-liveness gate drops any sub-agent id absent from the harness running set (`running-subagents.txt`). A sub-agent that survives both signals and whose transcript ends in a completion or termination marker is the unconsumed-result case: it is still listed in the running set, so it is retained and reported with its completion state and the age of its last transcript write instead of being discarded, which is what lets the unconsumed-result message be composed. When the running set cannot be read at all, the completion marker alone excludes the sub-agent, because an unconsumed result cannot be distinguished from an already-cleared one without that set. There is no age cap: a sub-agent that is past the idle or running threshold and does not end in a completion or termination marker is flagged regardless of how long it has been silent, so a genuinely-stuck sub-agent that has been hung on a pending tool call for hours or days is still reported instead of being silently dropped. Otherwise sub-processes are discovered by matching `subAgentProcessMatchPattern` against process command lines. Because a sub-agent inside a single blocking call (for example a continuous-integration watch) is otherwise indistinguishable from a hung one, the transcript-based discovery additionally judges the sub-agent's actual wait state instead of applying any time-window suppression. A sub-agent whose transcript tail is an in-flight tool call — the last entry is an assistant tool-use with no following tool result — carrying a command string is classified as WAITING when a live process matching that command exists on the host: each pending tool command is normalized (whitespace collapsed, first 60 characters) and searched as a substring of the normalized host process command lines (`ps -eo etimes=,args=`, supplied through the injectable process lister). A WAITING sub-agent never produces an idle (no-output) reminder, no matter how long its transcript has been silent. The long-running message is selected on elapsed running time alone and is not affected by either signal: a sub-process that keeps producing output, and a sub-process classified as WAITING on a live external process, are both still reported once they pass `subAgentRunningThresholdSeconds`, because producing output and waiting on a long external command are exactly the states a genuinely long-running sub-process is normally in. This selection is also independent of whether the main session is silent, so a leader that is actively working is still told how long each of its sub-processes has been running. A sub-agent whose in-flight tool call has no matching live process is genuinely hung and its session is re-selected as a candidate on every qualifying cycle. A session that stays a candidate is re-injected on every qualifying cycle: there is no per-episode cap, so a session with a persistent sub-process advisory is reminded again each cycle until the condition clears.
|
|
702
698
|
|
|
703
|
-
|
|
699
|
+
A two-consecutive-cycle debounce guards against transient false positives: a session is notified only when it meets the sub-agent notification condition in the current cycle and it was also a notification candidate in the immediately previous cycle. The set of candidate session names is persisted across cycles, keyed by the globally-unique session name, in a state file written atomically (the default path is `${XDG_CACHE_HOME:-~/.cache}/tdpm/silent-session-candidates.json`, overridable via `candidateDebounceStateFilePath`). The monitor runs as a fresh process each schedule cycle, so this on-disk state is what carries the previous cycle's candidate set forward. Each cycle loads the candidate set recorded within `candidateDebounceRecencyWindowSeconds` of now (default 900, a small multiple of the schedule interval to tolerate interval jitter), then records the current candidate set with the current timestamp; entries that age past the retention window are dropped on the next save, and a save merges with other recently-recorded session names so concurrent per-project runs do not clobber each other. A candidate that appears for only one isolated cycle — for example because a transient hub-task status resolution error fails open for a single cycle — is therefore deferred and never notified, while a genuine stall that persists across cycles is still caught, one cycle later. When more than one session is notified in the same cycle, the sends are spaced out sequentially with `silentNotificationStaggerSeconds` between consecutive sends (no wait before the first or after the last) so the targets are not all triggered at once. When `activeHubTaskStatus` is configured, each notification is gated on the latest GitHub state and Project Status of the session's hub task: a session whose name identifies a github.com issue or pull request — accepted both as a clean `https://github.com/{owner}/{repo}/issues/{N}` URL and as the real tmux session-name form `https_//github_com/{owner}/{repo}/issues/{N}` produced by replacing `.` and `:` with `_` (the `pull` path is accepted in both forms too) — is notified only while that hub task is open and in the configured active Status, so a session whose hub task has been closed, merged, or moved to another Status (for example Done) is suppressed; sessions whose name does not identify a github.com issue or pull request are never gated. To cut GitHub query load and remove most fail-opens, each resolved status is cached by issue URL in a state file written atomically (the default path is `${XDG_CACHE_HOME:-~/.cache}/tdpm/silent-session-hub-task-status.json`, overridable via `hubTaskStatusCacheStateFilePath`). On each cycle the gate reads the cache first: a cached entry recorded within `hubTaskStatusCacheTtlSeconds` of now (default 300) decides the gate without any GitHub query, and otherwise the hub task is re-resolved and the result written back to the cache. When live resolution fails — the resolver returns no tracked task (a closed or Done issue filtered out of the active project), or a transient API error is thrown — the gate falls back to the cached status even after it has expired: a cached active entry keeps the notification (still notified if genuinely stalled) and a cached closed or non-active entry suppresses it, each logged with a distinct warning. Only when there is no cached status at all and live resolution fails does the gate fail open once (a closed issue and a transient error are indistinguishable in that case without an extra network call), logging a distinct warning, so the next cycle can populate the cache. When `activeHubTaskStatus` is unset, this hub-task check is a no-op. Process-snapshot collection, transcript resolution, the wait between sends, and the message wording are all performed through injectable ports, so the logic is unit-testable without touching the host, and the host-specific process and environment access, sub-process pattern, and message wording are supplied through adapters or configuration. When `silentNotificationEnabled` is not true the step is a no-op, and any error during the step is logged and swallowed so the schedule cycle is never affected.
|
|
704
700
|
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
A two-consecutive-cycle debounce guards against transient false positives: a session is notified only when it meets the silent-target condition (output silent at or beyond the threshold and not waiting on the owner) in the current cycle and it was also a notification candidate in the immediately previous cycle. The set of candidate session names is persisted across cycles, keyed by the globally-unique session name, in a state file written atomically (the default path is `${XDG_CACHE_HOME:-~/.cache}/tdpm/silent-session-candidates.json`, overridable via `candidateDebounceStateFilePath`). The monitor runs as a fresh process each schedule cycle, so this on-disk state is what carries the previous cycle's candidate set forward. Each cycle loads the candidate set recorded within `candidateDebounceRecencyWindowSeconds` of now (default 900, a small multiple of the schedule interval to tolerate interval jitter), then records the current candidate set with the current timestamp; entries that age past the retention window are dropped on the next save, and a save merges with other recently-recorded session names so concurrent per-project runs do not clobber each other. A candidate that appears for only one isolated cycle — for example because the owner's reply has not yet been flushed to the transcript when the monitor reads it, or because a transient hub-task status resolution error fails open for a single cycle — is therefore deferred and never notified, while a genuine stall that persists across cycles is still caught, one cycle later. Because silence is measured from the latest transcript entry of any type — including the monitor's own injected reminder and the owner's reply — a notified session's measured silence resets as soon as it produces any activity, so a session that has resumed is not re-flagged. When more than one session is notified in the same cycle, the sends are spaced out sequentially with `silentNotificationStaggerSeconds` between consecutive sends (no wait before the first or after the last) so the targets are not all triggered at once. When `activeHubTaskStatus` is configured, each notification is gated on the latest GitHub state and Project Status of the session's hub task: a session whose name identifies a github.com issue or pull request — accepted both as a clean `https://github.com/{owner}/{repo}/issues/{N}` URL and as the real tmux session-name form `https_//github_com/{owner}/{repo}/issues/{N}` produced by replacing `.` and `:` with `_` (the `pull` path is accepted in both forms too) — is notified only while that hub task is open and in the configured active Status, so a session whose hub task has been closed, merged, or moved to another Status (for example Done) is suppressed; sessions whose name does not identify a github.com issue or pull request are never gated. To cut GitHub query load and remove most fail-opens, each resolved status is cached by issue URL in a state file written atomically (the default path is `${XDG_CACHE_HOME:-~/.cache}/tdpm/silent-session-hub-task-status.json`, overridable via `hubTaskStatusCacheStateFilePath`). On each cycle the gate reads the cache first: a cached entry recorded within `hubTaskStatusCacheTtlSeconds` of now (default 300) decides the gate without any GitHub query, and otherwise the hub task is re-resolved and the result written back to the cache. When live resolution fails — the resolver returns no tracked task (a closed or Done issue filtered out of the active project), or a transient API error is thrown — the gate falls back to the cached status even after it has expired: a cached active entry keeps the notification (still notified if genuinely stalled) and a cached closed or non-active entry suppresses it, each logged with a distinct warning. Only when there is no cached status at all and live resolution fails does the gate fail open once (a closed issue and a transient error are indistinguishable in that case without an extra network call), logging a distinct warning, so the next cycle can populate the cache. When `activeHubTaskStatus` is unset, this hub-task check is a no-op. Process-snapshot collection, transcript resolution, owner-call detection, the wait between sends, and the message wording are all performed through injectable ports, so the logic is unit-testable without touching the host, and the host-specific process and environment access, sub-process pattern, and message wording are supplied through adapters or configuration. When `silentNotificationEnabled` is not true the step is a no-op, and any error during the step is logged and swallowed so the schedule cycle is never affected.
|
|
708
|
-
|
|
709
|
-
Each config key above has a matching environment variable read when both the per-project config key and the fleet config are unset: `TDPM_SILENT_NOTIFICATION_ENABLED` (the string `true` enables the step; the fleet-wide config file's top-level `silentNotificationEnabled` is the intermediate source between the per-project key and this env var), `TDPM_SILENT_OWNER_CALL_MARKER`, `TDPM_SUBAGENT_OUTPUT_ROOT_DIRECTORY`, `TDPM_SUBAGENT_PROCESS_MATCH_PATTERN`, `TDPM_SUBAGENT_TRANSCRIPT_ROOT_DIRECTORY`, `TDPM_SUBAGENT_RUNTIME_ROOT_DIRECTORY`, `TDPM_MAIN_SILENT_THRESHOLD_SECONDS`, `TDPM_SILENT_UNANSWERED_OWNER_CALL_GRACE_SECONDS`, `TDPM_SUBAGENT_SILENT_THRESHOLD_SECONDS`, `TDPM_SUBAGENT_RUNNING_THRESHOLD_SECONDS`, `TDPM_SILENT_NOTIFICATION_STAGGER_SECONDS`, `TDPM_SILENT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS`, `TDPM_SILENT_CANDIDATE_DEBOUNCE_STATE_FILE_PATH`, `TDPM_ACTIVE_HUB_TASK_STATUS`, `TDPM_SILENT_HUB_TASK_STATUS_CACHE_STATE_FILE_PATH`, `TDPM_SILENT_HUB_TASK_STATUS_CACHE_TTL_SECONDS`, `TDPM_SILENT_MAIN_STALLED_MESSAGE`, `TDPM_SILENT_MAIN_STALLED_STALE_OWNER_CALL_MESSAGE`, `TDPM_SILENT_SUBAGENT_IDLE_MESSAGE_HEADER`, `TDPM_SILENT_SUBAGENT_IDLE_MESSAGE_FOOTER`, `TDPM_SILENT_SUBAGENT_LONG_RUNNING_MESSAGE_HEADER`, and `TDPM_SILENT_SUBAGENT_LONG_RUNNING_MESSAGE_FOOTER`.
|
|
701
|
+
Each config key above has a matching environment variable read when both the per-project config key and the fleet config are unset: `TDPM_SILENT_NOTIFICATION_ENABLED` (the string `true` enables the step; the fleet-wide config file's top-level `silentNotificationEnabled` is the intermediate source between the per-project key and this env var), `TDPM_SUBAGENT_OUTPUT_ROOT_DIRECTORY`, `TDPM_SUBAGENT_PROCESS_MATCH_PATTERN`, `TDPM_SUBAGENT_TRANSCRIPT_ROOT_DIRECTORY`, `TDPM_SUBAGENT_RUNTIME_ROOT_DIRECTORY`, `TDPM_SUBAGENT_SILENT_THRESHOLD_SECONDS`, `TDPM_SUBAGENT_RUNNING_THRESHOLD_SECONDS`, `TDPM_SILENT_NOTIFICATION_STAGGER_SECONDS`, `TDPM_SILENT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS`, `TDPM_SILENT_CANDIDATE_DEBOUNCE_STATE_FILE_PATH`, `TDPM_ACTIVE_HUB_TASK_STATUS`, `TDPM_SILENT_HUB_TASK_STATUS_CACHE_STATE_FILE_PATH`, `TDPM_SILENT_HUB_TASK_STATUS_CACHE_TTL_SECONDS`, `TDPM_SILENT_SUBAGENT_IDLE_MESSAGE_HEADER`, `TDPM_SILENT_SUBAGENT_IDLE_MESSAGE_FOOTER`, `TDPM_SILENT_SUBAGENT_LONG_RUNNING_MESSAGE_HEADER`, and `TDPM_SILENT_SUBAGENT_LONG_RUNNING_MESSAGE_FOOTER`.
|
|
710
702
|
|
|
711
703
|
Each schedule cycle, when `outputDegenerationResetEnabled` is true, also inspects every live interactive Claude Code session named after a github.com issue or pull-request URL and resets a session whose output has collapsed into a repeat loop. A session is detected as degenerated when either of two independent conditions holds. The intra-turn condition looks at the session's most recent assistant turn and fires on any of three signatures: the longest consecutive run of an identical short token (at most 32 characters) is at least 5 and dominates at least 0.8 of the turn's tokens; or, after fenced code blocks, table rows, and list items are removed, an absolute consecutive run reaches at least 15 identical short tokens; or the duplicated 4-gram density of the filtered turn is at least 0.3 over at least 40 tokens. The cross-turn condition looks at the last 10 assistant turns and fires when the same isolated short purely-alphabetic trailing token recurs as the appended token in at least 4 of them. These thresholds are ported unchanged from the empirically-validated standalone monitor: healthy sessions never exceed 2 to 3 consecutive repeats of a single token in one turn and end turns with varied content, so both conditions have measured zero false positives. When a session is detected, a checkpoint warning is sent via `tmux send-keys`, the grace period is awaited, and the tmux session is killed so it is relaunched fresh; a per-session cooldown (default 300 seconds) prevents re-resetting the same session before its fresh relaunch completes. When `outputDegenerationResetEnabled` is not true the detection still runs and logs what it would do, but no warning or kill is performed, and any error during the step is logged and swallowed so the schedule cycle is never affected. Each config key above has a matching environment variable read when the config key is unset: `TDPM_OUTPUT_DEGENERATION_RESET_ENABLED` (the string `true` enables the step), `TDPM_OUTPUT_DEGENERATION_WARNING_MESSAGE`, `TDPM_OUTPUT_DEGENERATION_GRACE_SECONDS`, `TDPM_OUTPUT_DEGENERATION_COOLDOWN_SECONDS`, and `TDPM_OUTPUT_DEGENERATION_COOLDOWN_STATE_FILE_PATH`.
|
|
712
704
|
|
package/bin/adapter/entry-points/console/ui-dist/assets/{index-CqVIONFD.js → index-DWnS9748.js}
RENAMED
|
@@ -19,7 +19,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
19
19
|
`+u),Se&&(u=Tt(u)),w&&je?te(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ct(e),Te=!0,Ee=L,De=R},t.clearConfig=function(){at=null,Te=!1,Ee=null,De=null,w=E,T=``},t.isValidAttribute=function(e,t,n){at||ct({});let r=it(e),i=it(t);return It(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&Go(N,e)&&Mo(N[e],t)},t.removeHook=function(e,t){if(Go(N,e)){if(t!==void 0){let n=Ao(N[e],t);return n===-1?void 0:No(N[e],n,1)[0]}return jo(N[e])}},t.removeHooks=function(e){Go(N,e)&&(N[e]=[])},t.removeAllHooks=function(){N=Ns()},t}var Ls=Is(),Rs={100:`💯`,1234:`🔢`,grinning:`😀`,smiley:`😃`,smile:`😄`,grin:`😁`,laughing:`😆`,satisfied:`😆`,sweat_smile:`😅`,rofl:`🤣`,joy:`😂`,slightly_smiling_face:`🙂`,upside_down_face:`🙃`,melting_face:`🫠`,wink:`😉`,blush:`😊`,innocent:`😇`,smiling_face_with_three_hearts:`🥰`,heart_eyes:`😍`,star_struck:`🤩`,kissing_heart:`😘`,kissing:`😗`,relaxed:`☺️`,kissing_closed_eyes:`😚`,kissing_smiling_eyes:`😙`,smiling_face_with_tear:`🥲`,yum:`😋`,stuck_out_tongue:`😛`,stuck_out_tongue_winking_eye:`😜`,zany_face:`🤪`,stuck_out_tongue_closed_eyes:`😝`,money_mouth_face:`🤑`,hugs:`🤗`,hand_over_mouth:`🤭`,face_with_open_eyes_and_hand_over_mouth:`🫢`,face_with_peeking_eye:`🫣`,shushing_face:`🤫`,thinking:`🤔`,saluting_face:`🫡`,zipper_mouth_face:`🤐`,raised_eyebrow:`🤨`,neutral_face:`😐`,expressionless:`😑`,no_mouth:`😶`,dotted_line_face:`🫥`,face_in_clouds:`😶🌫️`,smirk:`😏`,unamused:`😒`,roll_eyes:`🙄`,grimacing:`😬`,face_exhaling:`😮💨`,lying_face:`🤥`,shaking_face:`🫨`,relieved:`😌`,pensive:`😔`,sleepy:`😪`,drooling_face:`🤤`,sleeping:`😴`,mask:`😷`,face_with_thermometer:`🤒`,face_with_head_bandage:`🤕`,nauseated_face:`🤢`,vomiting_face:`🤮`,sneezing_face:`🤧`,hot_face:`🥵`,cold_face:`🥶`,woozy_face:`🥴`,dizzy_face:`😵`,face_with_spiral_eyes:`😵💫`,exploding_head:`🤯`,cowboy_hat_face:`🤠`,partying_face:`🥳`,disguised_face:`🥸`,sunglasses:`😎`,nerd_face:`🤓`,monocle_face:`🧐`,confused:`😕`,face_with_diagonal_mouth:`🫤`,worried:`😟`,slightly_frowning_face:`🙁`,frowning_face:`☹️`,open_mouth:`😮`,hushed:`😯`,astonished:`😲`,flushed:`😳`,pleading_face:`🥺`,face_holding_back_tears:`🥹`,frowning:`😦`,anguished:`😧`,fearful:`😨`,cold_sweat:`😰`,disappointed_relieved:`😥`,cry:`😢`,sob:`😭`,scream:`😱`,confounded:`😖`,persevere:`😣`,disappointed:`😞`,sweat:`😓`,weary:`😩`,tired_face:`😫`,yawning_face:`🥱`,triumph:`😤`,rage:`😡`,pout:`😡`,angry:`😠`,cursing_face:`🤬`,smiling_imp:`😈`,imp:`👿`,skull:`💀`,skull_and_crossbones:`☠️`,hankey:`💩`,poop:`💩`,shit:`💩`,clown_face:`🤡`,japanese_ogre:`👹`,japanese_goblin:`👺`,ghost:`👻`,alien:`👽`,space_invader:`👾`,robot:`🤖`,smiley_cat:`😺`,smile_cat:`😸`,joy_cat:`😹`,heart_eyes_cat:`😻`,smirk_cat:`😼`,kissing_cat:`😽`,scream_cat:`🙀`,crying_cat_face:`😿`,pouting_cat:`😾`,see_no_evil:`🙈`,hear_no_evil:`🙉`,speak_no_evil:`🙊`,love_letter:`💌`,cupid:`💘`,gift_heart:`💝`,sparkling_heart:`💖`,heartpulse:`💗`,heartbeat:`💓`,revolving_hearts:`💞`,two_hearts:`💕`,heart_decoration:`💟`,heavy_heart_exclamation:`❣️`,broken_heart:`💔`,heart_on_fire:`❤️🔥`,mending_heart:`❤️🩹`,heart:`❤️`,pink_heart:`🩷`,orange_heart:`🧡`,yellow_heart:`💛`,green_heart:`💚`,blue_heart:`💙`,light_blue_heart:`🩵`,purple_heart:`💜`,brown_heart:`🤎`,black_heart:`🖤`,grey_heart:`🩶`,white_heart:`🤍`,kiss:`💋`,anger:`💢`,boom:`💥`,collision:`💥`,dizzy:`💫`,sweat_drops:`💦`,dash:`💨`,hole:`🕳️`,speech_balloon:`💬`,eye_speech_bubble:`👁️🗨️`,left_speech_bubble:`🗨️`,right_anger_bubble:`🗯️`,thought_balloon:`💭`,zzz:`💤`,wave:`👋`,raised_back_of_hand:`🤚`,raised_hand_with_fingers_splayed:`🖐️`,hand:`✋`,raised_hand:`✋`,vulcan_salute:`🖖`,rightwards_hand:`🫱`,leftwards_hand:`🫲`,palm_down_hand:`🫳`,palm_up_hand:`🫴`,leftwards_pushing_hand:`🫷`,rightwards_pushing_hand:`🫸`,ok_hand:`👌`,pinched_fingers:`🤌`,pinching_hand:`🤏`,v:`✌️`,crossed_fingers:`🤞`,hand_with_index_finger_and_thumb_crossed:`🫰`,love_you_gesture:`🤟`,metal:`🤘`,call_me_hand:`🤙`,point_left:`👈`,point_right:`👉`,point_up_2:`👆`,middle_finger:`🖕`,fu:`🖕`,point_down:`👇`,point_up:`☝️`,index_pointing_at_the_viewer:`🫵`,"+1":`👍`,thumbsup:`👍`,"-1":`👎`,thumbsdown:`👎`,fist_raised:`✊`,fist:`✊`,fist_oncoming:`👊`,facepunch:`👊`,punch:`👊`,fist_left:`🤛`,fist_right:`🤜`,clap:`👏`,raised_hands:`🙌`,heart_hands:`🫶`,open_hands:`👐`,palms_up_together:`🤲`,handshake:`🤝`,pray:`🙏`,writing_hand:`✍️`,nail_care:`💅`,selfie:`🤳`,muscle:`💪`,mechanical_arm:`🦾`,mechanical_leg:`🦿`,leg:`🦵`,foot:`🦶`,ear:`👂`,ear_with_hearing_aid:`🦻`,nose:`👃`,brain:`🧠`,anatomical_heart:`🫀`,lungs:`🫁`,tooth:`🦷`,bone:`🦴`,eyes:`👀`,eye:`👁️`,tongue:`👅`,lips:`👄`,biting_lip:`🫦`,baby:`👶`,child:`🧒`,boy:`👦`,girl:`👧`,adult:`🧑`,blond_haired_person:`👱`,man:`👨`,bearded_person:`🧔`,man_beard:`🧔♂️`,woman_beard:`🧔♀️`,red_haired_man:`👨🦰`,curly_haired_man:`👨🦱`,white_haired_man:`👨🦳`,bald_man:`👨🦲`,woman:`👩`,red_haired_woman:`👩🦰`,person_red_hair:`🧑🦰`,curly_haired_woman:`👩🦱`,person_curly_hair:`🧑🦱`,white_haired_woman:`👩🦳`,person_white_hair:`🧑🦳`,bald_woman:`👩🦲`,person_bald:`🧑🦲`,blond_haired_woman:`👱♀️`,blonde_woman:`👱♀️`,blond_haired_man:`👱♂️`,older_adult:`🧓`,older_man:`👴`,older_woman:`👵`,frowning_person:`🙍`,frowning_man:`🙍♂️`,frowning_woman:`🙍♀️`,pouting_face:`🙎`,pouting_man:`🙎♂️`,pouting_woman:`🙎♀️`,no_good:`🙅`,no_good_man:`🙅♂️`,ng_man:`🙅♂️`,no_good_woman:`🙅♀️`,ng_woman:`🙅♀️`,ok_person:`🙆`,ok_man:`🙆♂️`,ok_woman:`🙆♀️`,tipping_hand_person:`💁`,information_desk_person:`💁`,tipping_hand_man:`💁♂️`,sassy_man:`💁♂️`,tipping_hand_woman:`💁♀️`,sassy_woman:`💁♀️`,raising_hand:`🙋`,raising_hand_man:`🙋♂️`,raising_hand_woman:`🙋♀️`,deaf_person:`🧏`,deaf_man:`🧏♂️`,deaf_woman:`🧏♀️`,bow:`🙇`,bowing_man:`🙇♂️`,bowing_woman:`🙇♀️`,facepalm:`🤦`,man_facepalming:`🤦♂️`,woman_facepalming:`🤦♀️`,shrug:`🤷`,man_shrugging:`🤷♂️`,woman_shrugging:`🤷♀️`,health_worker:`🧑⚕️`,man_health_worker:`👨⚕️`,woman_health_worker:`👩⚕️`,student:`🧑🎓`,man_student:`👨🎓`,woman_student:`👩🎓`,teacher:`🧑🏫`,man_teacher:`👨🏫`,woman_teacher:`👩🏫`,judge:`🧑⚖️`,man_judge:`👨⚖️`,woman_judge:`👩⚖️`,farmer:`🧑🌾`,man_farmer:`👨🌾`,woman_farmer:`👩🌾`,cook:`🧑🍳`,man_cook:`👨🍳`,woman_cook:`👩🍳`,mechanic:`🧑🔧`,man_mechanic:`👨🔧`,woman_mechanic:`👩🔧`,factory_worker:`🧑🏭`,man_factory_worker:`👨🏭`,woman_factory_worker:`👩🏭`,office_worker:`🧑💼`,man_office_worker:`👨💼`,woman_office_worker:`👩💼`,scientist:`🧑🔬`,man_scientist:`👨🔬`,woman_scientist:`👩🔬`,technologist:`🧑💻`,man_technologist:`👨💻`,woman_technologist:`👩💻`,singer:`🧑🎤`,man_singer:`👨🎤`,woman_singer:`👩🎤`,artist:`🧑🎨`,man_artist:`👨🎨`,woman_artist:`👩🎨`,pilot:`🧑✈️`,man_pilot:`👨✈️`,woman_pilot:`👩✈️`,astronaut:`🧑🚀`,man_astronaut:`👨🚀`,woman_astronaut:`👩🚀`,firefighter:`🧑🚒`,man_firefighter:`👨🚒`,woman_firefighter:`👩🚒`,police_officer:`👮`,cop:`👮`,policeman:`👮♂️`,policewoman:`👮♀️`,detective:`🕵️`,male_detective:`🕵️♂️`,female_detective:`🕵️♀️`,guard:`💂`,guardsman:`💂♂️`,guardswoman:`💂♀️`,ninja:`🥷`,construction_worker:`👷`,construction_worker_man:`👷♂️`,construction_worker_woman:`👷♀️`,person_with_crown:`🫅`,prince:`🤴`,princess:`👸`,person_with_turban:`👳`,man_with_turban:`👳♂️`,woman_with_turban:`👳♀️`,man_with_gua_pi_mao:`👲`,woman_with_headscarf:`🧕`,person_in_tuxedo:`🤵`,man_in_tuxedo:`🤵♂️`,woman_in_tuxedo:`🤵♀️`,person_with_veil:`👰`,man_with_veil:`👰♂️`,woman_with_veil:`👰♀️`,bride_with_veil:`👰♀️`,pregnant_woman:`🤰`,pregnant_man:`🫃`,pregnant_person:`🫄`,breast_feeding:`🤱`,woman_feeding_baby:`👩🍼`,man_feeding_baby:`👨🍼`,person_feeding_baby:`🧑🍼`,angel:`👼`,santa:`🎅`,mrs_claus:`🤶`,mx_claus:`🧑🎄`,superhero:`🦸`,superhero_man:`🦸♂️`,superhero_woman:`🦸♀️`,supervillain:`🦹`,supervillain_man:`🦹♂️`,supervillain_woman:`🦹♀️`,mage:`🧙`,mage_man:`🧙♂️`,mage_woman:`🧙♀️`,fairy:`🧚`,fairy_man:`🧚♂️`,fairy_woman:`🧚♀️`,vampire:`🧛`,vampire_man:`🧛♂️`,vampire_woman:`🧛♀️`,merperson:`🧜`,merman:`🧜♂️`,mermaid:`🧜♀️`,elf:`🧝`,elf_man:`🧝♂️`,elf_woman:`🧝♀️`,genie:`🧞`,genie_man:`🧞♂️`,genie_woman:`🧞♀️`,zombie:`🧟`,zombie_man:`🧟♂️`,zombie_woman:`🧟♀️`,troll:`🧌`,massage:`💆`,massage_man:`💆♂️`,massage_woman:`💆♀️`,haircut:`💇`,haircut_man:`💇♂️`,haircut_woman:`💇♀️`,walking:`🚶`,walking_man:`🚶♂️`,walking_woman:`🚶♀️`,standing_person:`🧍`,standing_man:`🧍♂️`,standing_woman:`🧍♀️`,kneeling_person:`🧎`,kneeling_man:`🧎♂️`,kneeling_woman:`🧎♀️`,person_with_probing_cane:`🧑🦯`,man_with_probing_cane:`👨🦯`,woman_with_probing_cane:`👩🦯`,person_in_motorized_wheelchair:`🧑🦼`,man_in_motorized_wheelchair:`👨🦼`,woman_in_motorized_wheelchair:`👩🦼`,person_in_manual_wheelchair:`🧑🦽`,man_in_manual_wheelchair:`👨🦽`,woman_in_manual_wheelchair:`👩🦽`,runner:`🏃`,running:`🏃`,running_man:`🏃♂️`,running_woman:`🏃♀️`,woman_dancing:`💃`,dancer:`💃`,man_dancing:`🕺`,business_suit_levitating:`🕴️`,dancers:`👯`,dancing_men:`👯♂️`,dancing_women:`👯♀️`,sauna_person:`🧖`,sauna_man:`🧖♂️`,sauna_woman:`🧖♀️`,climbing:`🧗`,climbing_man:`🧗♂️`,climbing_woman:`🧗♀️`,person_fencing:`🤺`,horse_racing:`🏇`,skier:`⛷️`,snowboarder:`🏂`,golfing:`🏌️`,golfing_man:`🏌️♂️`,golfing_woman:`🏌️♀️`,surfer:`🏄`,surfing_man:`🏄♂️`,surfing_woman:`🏄♀️`,rowboat:`🚣`,rowing_man:`🚣♂️`,rowing_woman:`🚣♀️`,swimmer:`🏊`,swimming_man:`🏊♂️`,swimming_woman:`🏊♀️`,bouncing_ball_person:`⛹️`,bouncing_ball_man:`⛹️♂️`,basketball_man:`⛹️♂️`,bouncing_ball_woman:`⛹️♀️`,basketball_woman:`⛹️♀️`,weight_lifting:`🏋️`,weight_lifting_man:`🏋️♂️`,weight_lifting_woman:`🏋️♀️`,bicyclist:`🚴`,biking_man:`🚴♂️`,biking_woman:`🚴♀️`,mountain_bicyclist:`🚵`,mountain_biking_man:`🚵♂️`,mountain_biking_woman:`🚵♀️`,cartwheeling:`🤸`,man_cartwheeling:`🤸♂️`,woman_cartwheeling:`🤸♀️`,wrestling:`🤼`,men_wrestling:`🤼♂️`,women_wrestling:`🤼♀️`,water_polo:`🤽`,man_playing_water_polo:`🤽♂️`,woman_playing_water_polo:`🤽♀️`,handball_person:`🤾`,man_playing_handball:`🤾♂️`,woman_playing_handball:`🤾♀️`,juggling_person:`🤹`,man_juggling:`🤹♂️`,woman_juggling:`🤹♀️`,lotus_position:`🧘`,lotus_position_man:`🧘♂️`,lotus_position_woman:`🧘♀️`,bath:`🛀`,sleeping_bed:`🛌`,people_holding_hands:`🧑🤝🧑`,two_women_holding_hands:`👭`,couple:`👫`,two_men_holding_hands:`👬`,couplekiss:`💏`,couplekiss_man_woman:`👩❤️💋👨`,couplekiss_man_man:`👨❤️💋👨`,couplekiss_woman_woman:`👩❤️💋👩`,couple_with_heart:`💑`,couple_with_heart_woman_man:`👩❤️👨`,couple_with_heart_man_man:`👨❤️👨`,couple_with_heart_woman_woman:`👩❤️👩`,family:`👪`,family_man_woman_boy:`👨👩👦`,family_man_woman_girl:`👨👩👧`,family_man_woman_girl_boy:`👨👩👧👦`,family_man_woman_boy_boy:`👨👩👦👦`,family_man_woman_girl_girl:`👨👩👧👧`,family_man_man_boy:`👨👨👦`,family_man_man_girl:`👨👨👧`,family_man_man_girl_boy:`👨👨👧👦`,family_man_man_boy_boy:`👨👨👦👦`,family_man_man_girl_girl:`👨👨👧👧`,family_woman_woman_boy:`👩👩👦`,family_woman_woman_girl:`👩👩👧`,family_woman_woman_girl_boy:`👩👩👧👦`,family_woman_woman_boy_boy:`👩👩👦👦`,family_woman_woman_girl_girl:`👩👩👧👧`,family_man_boy:`👨👦`,family_man_boy_boy:`👨👦👦`,family_man_girl:`👨👧`,family_man_girl_boy:`👨👧👦`,family_man_girl_girl:`👨👧👧`,family_woman_boy:`👩👦`,family_woman_boy_boy:`👩👦👦`,family_woman_girl:`👩👧`,family_woman_girl_boy:`👩👧👦`,family_woman_girl_girl:`👩👧👧`,speaking_head:`🗣️`,bust_in_silhouette:`👤`,busts_in_silhouette:`👥`,people_hugging:`🫂`,footprints:`👣`,monkey_face:`🐵`,monkey:`🐒`,gorilla:`🦍`,orangutan:`🦧`,dog:`🐶`,dog2:`🐕`,guide_dog:`🦮`,service_dog:`🐕🦺`,poodle:`🐩`,wolf:`🐺`,fox_face:`🦊`,raccoon:`🦝`,cat:`🐱`,cat2:`🐈`,black_cat:`🐈⬛`,lion:`🦁`,tiger:`🐯`,tiger2:`🐅`,leopard:`🐆`,horse:`🐴`,moose:`🫎`,donkey:`🫏`,racehorse:`🐎`,unicorn:`🦄`,zebra:`🦓`,deer:`🦌`,bison:`🦬`,cow:`🐮`,ox:`🐂`,water_buffalo:`🐃`,cow2:`🐄`,pig:`🐷`,pig2:`🐖`,boar:`🐗`,pig_nose:`🐽`,ram:`🐏`,sheep:`🐑`,goat:`🐐`,dromedary_camel:`🐪`,camel:`🐫`,llama:`🦙`,giraffe:`🦒`,elephant:`🐘`,mammoth:`🦣`,rhinoceros:`🦏`,hippopotamus:`🦛`,mouse:`🐭`,mouse2:`🐁`,rat:`🐀`,hamster:`🐹`,rabbit:`🐰`,rabbit2:`🐇`,chipmunk:`🐿️`,beaver:`🦫`,hedgehog:`🦔`,bat:`🦇`,bear:`🐻`,polar_bear:`🐻❄️`,koala:`🐨`,panda_face:`🐼`,sloth:`🦥`,otter:`🦦`,skunk:`🦨`,kangaroo:`🦘`,badger:`🦡`,feet:`🐾`,paw_prints:`🐾`,turkey:`🦃`,chicken:`🐔`,rooster:`🐓`,hatching_chick:`🐣`,baby_chick:`🐤`,hatched_chick:`🐥`,bird:`🐦`,penguin:`🐧`,dove:`🕊️`,eagle:`🦅`,duck:`🦆`,swan:`🦢`,owl:`🦉`,dodo:`🦤`,feather:`🪶`,flamingo:`🦩`,peacock:`🦚`,parrot:`🦜`,wing:`🪽`,black_bird:`🐦⬛`,goose:`🪿`,frog:`🐸`,crocodile:`🐊`,turtle:`🐢`,lizard:`🦎`,snake:`🐍`,dragon_face:`🐲`,dragon:`🐉`,sauropod:`🦕`,"t-rex":`🦖`,whale:`🐳`,whale2:`🐋`,dolphin:`🐬`,flipper:`🐬`,seal:`🦭`,fish:`🐟`,tropical_fish:`🐠`,blowfish:`🐡`,shark:`🦈`,octopus:`🐙`,shell:`🐚`,coral:`🪸`,jellyfish:`🪼`,snail:`🐌`,butterfly:`🦋`,bug:`🐛`,ant:`🐜`,bee:`🐝`,honeybee:`🐝`,beetle:`🪲`,lady_beetle:`🐞`,cricket:`🦗`,cockroach:`🪳`,spider:`🕷️`,spider_web:`🕸️`,scorpion:`🦂`,mosquito:`🦟`,fly:`🪰`,worm:`🪱`,microbe:`🦠`,bouquet:`💐`,cherry_blossom:`🌸`,white_flower:`💮`,lotus:`🪷`,rosette:`🏵️`,rose:`🌹`,wilted_flower:`🥀`,hibiscus:`🌺`,sunflower:`🌻`,blossom:`🌼`,tulip:`🌷`,hyacinth:`🪻`,seedling:`🌱`,potted_plant:`🪴`,evergreen_tree:`🌲`,deciduous_tree:`🌳`,palm_tree:`🌴`,cactus:`🌵`,ear_of_rice:`🌾`,herb:`🌿`,shamrock:`☘️`,four_leaf_clover:`🍀`,maple_leaf:`🍁`,fallen_leaf:`🍂`,leaves:`🍃`,empty_nest:`🪹`,nest_with_eggs:`🪺`,mushroom:`🍄`,grapes:`🍇`,melon:`🍈`,watermelon:`🍉`,tangerine:`🍊`,orange:`🍊`,mandarin:`🍊`,lemon:`🍋`,banana:`🍌`,pineapple:`🍍`,mango:`🥭`,apple:`🍎`,green_apple:`🍏`,pear:`🍐`,peach:`🍑`,cherries:`🍒`,strawberry:`🍓`,blueberries:`🫐`,kiwi_fruit:`🥝`,tomato:`🍅`,olive:`🫒`,coconut:`🥥`,avocado:`🥑`,eggplant:`🍆`,potato:`🥔`,carrot:`🥕`,corn:`🌽`,hot_pepper:`🌶️`,bell_pepper:`🫑`,cucumber:`🥒`,leafy_green:`🥬`,broccoli:`🥦`,garlic:`🧄`,onion:`🧅`,peanuts:`🥜`,beans:`🫘`,chestnut:`🌰`,ginger_root:`🫚`,pea_pod:`🫛`,bread:`🍞`,croissant:`🥐`,baguette_bread:`🥖`,flatbread:`🫓`,pretzel:`🥨`,bagel:`🥯`,pancakes:`🥞`,waffle:`🧇`,cheese:`🧀`,meat_on_bone:`🍖`,poultry_leg:`🍗`,cut_of_meat:`🥩`,bacon:`🥓`,hamburger:`🍔`,fries:`🍟`,pizza:`🍕`,hotdog:`🌭`,sandwich:`🥪`,taco:`🌮`,burrito:`🌯`,tamale:`🫔`,stuffed_flatbread:`🥙`,falafel:`🧆`,egg:`🥚`,fried_egg:`🍳`,shallow_pan_of_food:`🥘`,stew:`🍲`,fondue:`🫕`,bowl_with_spoon:`🥣`,green_salad:`🥗`,popcorn:`🍿`,butter:`🧈`,salt:`🧂`,canned_food:`🥫`,bento:`🍱`,rice_cracker:`🍘`,rice_ball:`🍙`,rice:`🍚`,curry:`🍛`,ramen:`🍜`,spaghetti:`🍝`,sweet_potato:`🍠`,oden:`🍢`,sushi:`🍣`,fried_shrimp:`🍤`,fish_cake:`🍥`,moon_cake:`🥮`,dango:`🍡`,dumpling:`🥟`,fortune_cookie:`🥠`,takeout_box:`🥡`,crab:`🦀`,lobster:`🦞`,shrimp:`🦐`,squid:`🦑`,oyster:`🦪`,icecream:`🍦`,shaved_ice:`🍧`,ice_cream:`🍨`,doughnut:`🍩`,cookie:`🍪`,birthday:`🎂`,cake:`🍰`,cupcake:`🧁`,pie:`🥧`,chocolate_bar:`🍫`,candy:`🍬`,lollipop:`🍭`,custard:`🍮`,honey_pot:`🍯`,baby_bottle:`🍼`,milk_glass:`🥛`,coffee:`☕`,teapot:`🫖`,tea:`🍵`,sake:`🍶`,champagne:`🍾`,wine_glass:`🍷`,cocktail:`🍸`,tropical_drink:`🍹`,beer:`🍺`,beers:`🍻`,clinking_glasses:`🥂`,tumbler_glass:`🥃`,pouring_liquid:`🫗`,cup_with_straw:`🥤`,bubble_tea:`🧋`,beverage_box:`🧃`,mate:`🧉`,ice_cube:`🧊`,chopsticks:`🥢`,plate_with_cutlery:`🍽️`,fork_and_knife:`🍴`,spoon:`🥄`,hocho:`🔪`,knife:`🔪`,jar:`🫙`,amphora:`🏺`,earth_africa:`🌍`,earth_americas:`🌎`,earth_asia:`🌏`,globe_with_meridians:`🌐`,world_map:`🗺️`,japan:`🗾`,compass:`🧭`,mountain_snow:`🏔️`,mountain:`⛰️`,volcano:`🌋`,mount_fuji:`🗻`,camping:`🏕️`,beach_umbrella:`🏖️`,desert:`🏜️`,desert_island:`🏝️`,national_park:`🏞️`,stadium:`🏟️`,classical_building:`🏛️`,building_construction:`🏗️`,bricks:`🧱`,rock:`🪨`,wood:`🪵`,hut:`🛖`,houses:`🏘️`,derelict_house:`🏚️`,house:`🏠`,house_with_garden:`🏡`,office:`🏢`,post_office:`🏣`,european_post_office:`🏤`,hospital:`🏥`,bank:`🏦`,hotel:`🏨`,love_hotel:`🏩`,convenience_store:`🏪`,school:`🏫`,department_store:`🏬`,factory:`🏭`,japanese_castle:`🏯`,european_castle:`🏰`,wedding:`💒`,tokyo_tower:`🗼`,statue_of_liberty:`🗽`,church:`⛪`,mosque:`🕌`,hindu_temple:`🛕`,synagogue:`🕍`,shinto_shrine:`⛩️`,kaaba:`🕋`,fountain:`⛲`,tent:`⛺`,foggy:`🌁`,night_with_stars:`🌃`,cityscape:`🏙️`,sunrise_over_mountains:`🌄`,sunrise:`🌅`,city_sunset:`🌆`,city_sunrise:`🌇`,bridge_at_night:`🌉`,hotsprings:`♨️`,carousel_horse:`🎠`,playground_slide:`🛝`,ferris_wheel:`🎡`,roller_coaster:`🎢`,barber:`💈`,circus_tent:`🎪`,steam_locomotive:`🚂`,railway_car:`🚃`,bullettrain_side:`🚄`,bullettrain_front:`🚅`,train2:`🚆`,metro:`🚇`,light_rail:`🚈`,station:`🚉`,tram:`🚊`,monorail:`🚝`,mountain_railway:`🚞`,train:`🚋`,bus:`🚌`,oncoming_bus:`🚍`,trolleybus:`🚎`,minibus:`🚐`,ambulance:`🚑`,fire_engine:`🚒`,police_car:`🚓`,oncoming_police_car:`🚔`,taxi:`🚕`,oncoming_taxi:`🚖`,car:`🚗`,red_car:`🚗`,oncoming_automobile:`🚘`,blue_car:`🚙`,pickup_truck:`🛻`,truck:`🚚`,articulated_lorry:`🚛`,tractor:`🚜`,racing_car:`🏎️`,motorcycle:`🏍️`,motor_scooter:`🛵`,manual_wheelchair:`🦽`,motorized_wheelchair:`🦼`,auto_rickshaw:`🛺`,bike:`🚲`,kick_scooter:`🛴`,skateboard:`🛹`,roller_skate:`🛼`,busstop:`🚏`,motorway:`🛣️`,railway_track:`🛤️`,oil_drum:`🛢️`,fuelpump:`⛽`,wheel:`🛞`,rotating_light:`🚨`,traffic_light:`🚥`,vertical_traffic_light:`🚦`,stop_sign:`🛑`,construction:`🚧`,anchor:`⚓`,ring_buoy:`🛟`,boat:`⛵`,sailboat:`⛵`,canoe:`🛶`,speedboat:`🚤`,passenger_ship:`🛳️`,ferry:`⛴️`,motor_boat:`🛥️`,ship:`🚢`,airplane:`✈️`,small_airplane:`🛩️`,flight_departure:`🛫`,flight_arrival:`🛬`,parachute:`🪂`,seat:`💺`,helicopter:`🚁`,suspension_railway:`🚟`,mountain_cableway:`🚠`,aerial_tramway:`🚡`,artificial_satellite:`🛰️`,rocket:`🚀`,flying_saucer:`🛸`,bellhop_bell:`🛎️`,luggage:`🧳`,hourglass:`⌛`,hourglass_flowing_sand:`⏳`,watch:`⌚`,alarm_clock:`⏰`,stopwatch:`⏱️`,timer_clock:`⏲️`,mantelpiece_clock:`🕰️`,clock12:`🕛`,clock1230:`🕧`,clock1:`🕐`,clock130:`🕜`,clock2:`🕑`,clock230:`🕝`,clock3:`🕒`,clock330:`🕞`,clock4:`🕓`,clock430:`🕟`,clock5:`🕔`,clock530:`🕠`,clock6:`🕕`,clock630:`🕡`,clock7:`🕖`,clock730:`🕢`,clock8:`🕗`,clock830:`🕣`,clock9:`🕘`,clock930:`🕤`,clock10:`🕙`,clock1030:`🕥`,clock11:`🕚`,clock1130:`🕦`,new_moon:`🌑`,waxing_crescent_moon:`🌒`,first_quarter_moon:`🌓`,moon:`🌔`,waxing_gibbous_moon:`🌔`,full_moon:`🌕`,waning_gibbous_moon:`🌖`,last_quarter_moon:`🌗`,waning_crescent_moon:`🌘`,crescent_moon:`🌙`,new_moon_with_face:`🌚`,first_quarter_moon_with_face:`🌛`,last_quarter_moon_with_face:`🌜`,thermometer:`🌡️`,sunny:`☀️`,full_moon_with_face:`🌝`,sun_with_face:`🌞`,ringed_planet:`🪐`,star:`⭐`,star2:`🌟`,stars:`🌠`,milky_way:`🌌`,cloud:`☁️`,partly_sunny:`⛅`,cloud_with_lightning_and_rain:`⛈️`,sun_behind_small_cloud:`🌤️`,sun_behind_large_cloud:`🌥️`,sun_behind_rain_cloud:`🌦️`,cloud_with_rain:`🌧️`,cloud_with_snow:`🌨️`,cloud_with_lightning:`🌩️`,tornado:`🌪️`,fog:`🌫️`,wind_face:`🌬️`,cyclone:`🌀`,rainbow:`🌈`,closed_umbrella:`🌂`,open_umbrella:`☂️`,umbrella:`☔`,parasol_on_ground:`⛱️`,zap:`⚡`,snowflake:`❄️`,snowman_with_snow:`☃️`,snowman:`⛄`,comet:`☄️`,fire:`🔥`,droplet:`💧`,ocean:`🌊`,jack_o_lantern:`🎃`,christmas_tree:`🎄`,fireworks:`🎆`,sparkler:`🎇`,firecracker:`🧨`,sparkles:`✨`,balloon:`🎈`,tada:`🎉`,confetti_ball:`🎊`,tanabata_tree:`🎋`,bamboo:`🎍`,dolls:`🎎`,flags:`🎏`,wind_chime:`🎐`,rice_scene:`🎑`,red_envelope:`🧧`,ribbon:`🎀`,gift:`🎁`,reminder_ribbon:`🎗️`,tickets:`🎟️`,ticket:`🎫`,medal_military:`🎖️`,trophy:`🏆`,medal_sports:`🏅`,"1st_place_medal":`🥇`,"2nd_place_medal":`🥈`,"3rd_place_medal":`🥉`,soccer:`⚽`,baseball:`⚾`,softball:`🥎`,basketball:`🏀`,volleyball:`🏐`,football:`🏈`,rugby_football:`🏉`,tennis:`🎾`,flying_disc:`🥏`,bowling:`🎳`,cricket_game:`🏏`,field_hockey:`🏑`,ice_hockey:`🏒`,lacrosse:`🥍`,ping_pong:`🏓`,badminton:`🏸`,boxing_glove:`🥊`,martial_arts_uniform:`🥋`,goal_net:`🥅`,golf:`⛳`,ice_skate:`⛸️`,fishing_pole_and_fish:`🎣`,diving_mask:`🤿`,running_shirt_with_sash:`🎽`,ski:`🎿`,sled:`🛷`,curling_stone:`🥌`,dart:`🎯`,yo_yo:`🪀`,kite:`🪁`,gun:`🔫`,"8ball":`🎱`,crystal_ball:`🔮`,magic_wand:`🪄`,video_game:`🎮`,joystick:`🕹️`,slot_machine:`🎰`,game_die:`🎲`,jigsaw:`🧩`,teddy_bear:`🧸`,pinata:`🪅`,mirror_ball:`🪩`,nesting_dolls:`🪆`,spades:`♠️`,hearts:`♥️`,diamonds:`♦️`,clubs:`♣️`,chess_pawn:`♟️`,black_joker:`🃏`,mahjong:`🀄`,flower_playing_cards:`🎴`,performing_arts:`🎭`,framed_picture:`🖼️`,art:`🎨`,thread:`🧵`,sewing_needle:`🪡`,yarn:`🧶`,knot:`🪢`,eyeglasses:`👓`,dark_sunglasses:`🕶️`,goggles:`🥽`,lab_coat:`🥼`,safety_vest:`🦺`,necktie:`👔`,shirt:`👕`,tshirt:`👕`,jeans:`👖`,scarf:`🧣`,gloves:`🧤`,coat:`🧥`,socks:`🧦`,dress:`👗`,kimono:`👘`,sari:`🥻`,one_piece_swimsuit:`🩱`,swim_brief:`🩲`,shorts:`🩳`,bikini:`👙`,womans_clothes:`👚`,folding_hand_fan:`🪭`,purse:`👛`,handbag:`👜`,pouch:`👝`,shopping:`🛍️`,school_satchel:`🎒`,thong_sandal:`🩴`,mans_shoe:`👞`,shoe:`👞`,athletic_shoe:`👟`,hiking_boot:`🥾`,flat_shoe:`🥿`,high_heel:`👠`,sandal:`👡`,ballet_shoes:`🩰`,boot:`👢`,hair_pick:`🪮`,crown:`👑`,womans_hat:`👒`,tophat:`🎩`,mortar_board:`🎓`,billed_cap:`🧢`,military_helmet:`🪖`,rescue_worker_helmet:`⛑️`,prayer_beads:`📿`,lipstick:`💄`,ring:`💍`,gem:`💎`,mute:`🔇`,speaker:`🔈`,sound:`🔉`,loud_sound:`🔊`,loudspeaker:`📢`,mega:`📣`,postal_horn:`📯`,bell:`🔔`,no_bell:`🔕`,musical_score:`🎼`,musical_note:`🎵`,notes:`🎶`,studio_microphone:`🎙️`,level_slider:`🎚️`,control_knobs:`🎛️`,microphone:`🎤`,headphones:`🎧`,radio:`📻`,saxophone:`🎷`,accordion:`🪗`,guitar:`🎸`,musical_keyboard:`🎹`,trumpet:`🎺`,violin:`🎻`,banjo:`🪕`,drum:`🥁`,long_drum:`🪘`,maracas:`🪇`,flute:`🪈`,iphone:`📱`,calling:`📲`,phone:`☎️`,telephone:`☎️`,telephone_receiver:`📞`,pager:`📟`,fax:`📠`,battery:`🔋`,low_battery:`🪫`,electric_plug:`🔌`,computer:`💻`,desktop_computer:`🖥️`,printer:`🖨️`,keyboard:`⌨️`,computer_mouse:`🖱️`,trackball:`🖲️`,minidisc:`💽`,floppy_disk:`💾`,cd:`💿`,dvd:`📀`,abacus:`🧮`,movie_camera:`🎥`,film_strip:`🎞️`,film_projector:`📽️`,clapper:`🎬`,tv:`📺`,camera:`📷`,camera_flash:`📸`,video_camera:`📹`,vhs:`📼`,mag:`🔍`,mag_right:`🔎`,candle:`🕯️`,bulb:`💡`,flashlight:`🔦`,izakaya_lantern:`🏮`,lantern:`🏮`,diya_lamp:`🪔`,notebook_with_decorative_cover:`📔`,closed_book:`📕`,book:`📖`,open_book:`📖`,green_book:`📗`,blue_book:`📘`,orange_book:`📙`,books:`📚`,notebook:`📓`,ledger:`📒`,page_with_curl:`📃`,scroll:`📜`,page_facing_up:`📄`,newspaper:`📰`,newspaper_roll:`🗞️`,bookmark_tabs:`📑`,bookmark:`🔖`,label:`🏷️`,moneybag:`💰`,coin:`🪙`,yen:`💴`,dollar:`💵`,euro:`💶`,pound:`💷`,money_with_wings:`💸`,credit_card:`💳`,receipt:`🧾`,chart:`💹`,envelope:`✉️`,email:`📧`,"e-mail":`📧`,incoming_envelope:`📨`,envelope_with_arrow:`📩`,outbox_tray:`📤`,inbox_tray:`📥`,package:`📦`,mailbox:`📫`,mailbox_closed:`📪`,mailbox_with_mail:`📬`,mailbox_with_no_mail:`📭`,postbox:`📮`,ballot_box:`🗳️`,pencil2:`✏️`,black_nib:`✒️`,fountain_pen:`🖋️`,pen:`🖊️`,paintbrush:`🖌️`,crayon:`🖍️`,memo:`📝`,pencil:`📝`,briefcase:`💼`,file_folder:`📁`,open_file_folder:`📂`,card_index_dividers:`🗂️`,date:`📅`,calendar:`📆`,spiral_notepad:`🗒️`,spiral_calendar:`🗓️`,card_index:`📇`,chart_with_upwards_trend:`📈`,chart_with_downwards_trend:`📉`,bar_chart:`📊`,clipboard:`📋`,pushpin:`📌`,round_pushpin:`📍`,paperclip:`📎`,paperclips:`🖇️`,straight_ruler:`📏`,triangular_ruler:`📐`,scissors:`✂️`,card_file_box:`🗃️`,file_cabinet:`🗄️`,wastebasket:`🗑️`,lock:`🔒`,unlock:`🔓`,lock_with_ink_pen:`🔏`,closed_lock_with_key:`🔐`,key:`🔑`,old_key:`🗝️`,hammer:`🔨`,axe:`🪓`,pick:`⛏️`,hammer_and_pick:`⚒️`,hammer_and_wrench:`🛠️`,dagger:`🗡️`,crossed_swords:`⚔️`,bomb:`💣`,boomerang:`🪃`,bow_and_arrow:`🏹`,shield:`🛡️`,carpentry_saw:`🪚`,wrench:`🔧`,screwdriver:`🪛`,nut_and_bolt:`🔩`,gear:`⚙️`,clamp:`🗜️`,balance_scale:`⚖️`,probing_cane:`🦯`,link:`🔗`,chains:`⛓️`,hook:`🪝`,toolbox:`🧰`,magnet:`🧲`,ladder:`🪜`,alembic:`⚗️`,test_tube:`🧪`,petri_dish:`🧫`,dna:`🧬`,microscope:`🔬`,telescope:`🔭`,satellite:`📡`,syringe:`💉`,drop_of_blood:`🩸`,pill:`💊`,adhesive_bandage:`🩹`,crutch:`🩼`,stethoscope:`🩺`,x_ray:`🩻`,door:`🚪`,elevator:`🛗`,mirror:`🪞`,window:`🪟`,bed:`🛏️`,couch_and_lamp:`🛋️`,chair:`🪑`,toilet:`🚽`,plunger:`🪠`,shower:`🚿`,bathtub:`🛁`,mouse_trap:`🪤`,razor:`🪒`,lotion_bottle:`🧴`,safety_pin:`🧷`,broom:`🧹`,basket:`🧺`,roll_of_paper:`🧻`,bucket:`🪣`,soap:`🧼`,bubbles:`🫧`,toothbrush:`🪥`,sponge:`🧽`,fire_extinguisher:`🧯`,shopping_cart:`🛒`,smoking:`🚬`,coffin:`⚰️`,headstone:`🪦`,funeral_urn:`⚱️`,nazar_amulet:`🧿`,hamsa:`🪬`,moyai:`🗿`,placard:`🪧`,identification_card:`🪪`,atm:`🏧`,put_litter_in_its_place:`🚮`,potable_water:`🚰`,wheelchair:`♿`,mens:`🚹`,womens:`🚺`,restroom:`🚻`,baby_symbol:`🚼`,wc:`🚾`,passport_control:`🛂`,customs:`🛃`,baggage_claim:`🛄`,left_luggage:`🛅`,warning:`⚠️`,children_crossing:`🚸`,no_entry:`⛔`,no_entry_sign:`🚫`,no_bicycles:`🚳`,no_smoking:`🚭`,do_not_litter:`🚯`,"non-potable_water":`🚱`,no_pedestrians:`🚷`,no_mobile_phones:`📵`,underage:`🔞`,radioactive:`☢️`,biohazard:`☣️`,arrow_up:`⬆️`,arrow_upper_right:`↗️`,arrow_right:`➡️`,arrow_lower_right:`↘️`,arrow_down:`⬇️`,arrow_lower_left:`↙️`,arrow_left:`⬅️`,arrow_upper_left:`↖️`,arrow_up_down:`↕️`,left_right_arrow:`↔️`,leftwards_arrow_with_hook:`↩️`,arrow_right_hook:`↪️`,arrow_heading_up:`⤴️`,arrow_heading_down:`⤵️`,arrows_clockwise:`🔃`,arrows_counterclockwise:`🔄`,back:`🔙`,end:`🔚`,on:`🔛`,soon:`🔜`,top:`🔝`,place_of_worship:`🛐`,atom_symbol:`⚛️`,om:`🕉️`,star_of_david:`✡️`,wheel_of_dharma:`☸️`,yin_yang:`☯️`,latin_cross:`✝️`,orthodox_cross:`☦️`,star_and_crescent:`☪️`,peace_symbol:`☮️`,menorah:`🕎`,six_pointed_star:`🔯`,khanda:`🪯`,aries:`♈`,taurus:`♉`,gemini:`♊`,cancer:`♋`,leo:`♌`,virgo:`♍`,libra:`♎`,scorpius:`♏`,sagittarius:`♐`,capricorn:`♑`,aquarius:`♒`,pisces:`♓`,ophiuchus:`⛎`,twisted_rightwards_arrows:`🔀`,repeat:`🔁`,repeat_one:`🔂`,arrow_forward:`▶️`,fast_forward:`⏩`,next_track_button:`⏭️`,play_or_pause_button:`⏯️`,arrow_backward:`◀️`,rewind:`⏪`,previous_track_button:`⏮️`,arrow_up_small:`🔼`,arrow_double_up:`⏫`,arrow_down_small:`🔽`,arrow_double_down:`⏬`,pause_button:`⏸️`,stop_button:`⏹️`,record_button:`⏺️`,eject_button:`⏏️`,cinema:`🎦`,low_brightness:`🔅`,high_brightness:`🔆`,signal_strength:`📶`,wireless:`🛜`,vibration_mode:`📳`,mobile_phone_off:`📴`,female_sign:`♀️`,male_sign:`♂️`,transgender_symbol:`⚧️`,heavy_multiplication_x:`✖️`,heavy_plus_sign:`➕`,heavy_minus_sign:`➖`,heavy_division_sign:`➗`,heavy_equals_sign:`🟰`,infinity:`♾️`,bangbang:`‼️`,interrobang:`⁉️`,question:`❓`,grey_question:`❔`,grey_exclamation:`❕`,exclamation:`❗`,heavy_exclamation_mark:`❗`,wavy_dash:`〰️`,currency_exchange:`💱`,heavy_dollar_sign:`💲`,medical_symbol:`⚕️`,recycle:`♻️`,fleur_de_lis:`⚜️`,trident:`🔱`,name_badge:`📛`,beginner:`🔰`,o:`⭕`,white_check_mark:`✅`,ballot_box_with_check:`☑️`,heavy_check_mark:`✔️`,x:`❌`,negative_squared_cross_mark:`❎`,curly_loop:`➰`,loop:`➿`,part_alternation_mark:`〽️`,eight_spoked_asterisk:`✳️`,eight_pointed_black_star:`✴️`,sparkle:`❇️`,copyright:`©️`,registered:`®️`,tm:`™️`,hash:`#️⃣`,asterisk:`*️⃣`,zero:`0️⃣`,one:`1️⃣`,two:`2️⃣`,three:`3️⃣`,four:`4️⃣`,five:`5️⃣`,six:`6️⃣`,seven:`7️⃣`,eight:`8️⃣`,nine:`9️⃣`,keycap_ten:`🔟`,capital_abcd:`🔠`,abcd:`🔡`,symbols:`🔣`,abc:`🔤`,a:`🅰️`,ab:`🆎`,b:`🅱️`,cl:`🆑`,cool:`🆒`,free:`🆓`,information_source:`ℹ️`,id:`🆔`,m:`Ⓜ️`,new:`🆕`,ng:`🆖`,o2:`🅾️`,ok:`🆗`,parking:`🅿️`,sos:`🆘`,up:`🆙`,vs:`🆚`,koko:`🈁`,sa:`🈂️`,u6708:`🈷️`,u6709:`🈶`,u6307:`🈯`,ideograph_advantage:`🉐`,u5272:`🈹`,u7121:`🈚`,u7981:`🈲`,accept:`🉑`,u7533:`🈸`,u5408:`🈴`,u7a7a:`🈳`,congratulations:`㊗️`,secret:`㊙️`,u55b6:`🈺`,u6e80:`🈵`,red_circle:`🔴`,orange_circle:`🟠`,yellow_circle:`🟡`,green_circle:`🟢`,large_blue_circle:`🔵`,purple_circle:`🟣`,brown_circle:`🟤`,black_circle:`⚫`,white_circle:`⚪`,red_square:`🟥`,orange_square:`🟧`,yellow_square:`🟨`,green_square:`🟩`,blue_square:`🟦`,purple_square:`🟪`,brown_square:`🟫`,black_large_square:`⬛`,white_large_square:`⬜`,black_medium_square:`◼️`,white_medium_square:`◻️`,black_medium_small_square:`◾`,white_medium_small_square:`◽`,black_small_square:`▪️`,white_small_square:`▫️`,large_orange_diamond:`🔶`,large_blue_diamond:`🔷`,small_orange_diamond:`🔸`,small_blue_diamond:`🔹`,small_red_triangle:`🔺`,small_red_triangle_down:`🔻`,diamond_shape_with_a_dot_inside:`💠`,radio_button:`🔘`,white_square_button:`🔳`,black_square_button:`🔲`,checkered_flag:`🏁`,triangular_flag_on_post:`🚩`,crossed_flags:`🎌`,black_flag:`🏴`,white_flag:`🏳️`,rainbow_flag:`🏳️🌈`,transgender_flag:`🏳️⚧️`,pirate_flag:`🏴☠️`,ascension_island:`🇦🇨`,andorra:`🇦🇩`,united_arab_emirates:`🇦🇪`,afghanistan:`🇦🇫`,antigua_barbuda:`🇦🇬`,anguilla:`🇦🇮`,albania:`🇦🇱`,armenia:`🇦🇲`,angola:`🇦🇴`,antarctica:`🇦🇶`,argentina:`🇦🇷`,american_samoa:`🇦🇸`,austria:`🇦🇹`,australia:`🇦🇺`,aruba:`🇦🇼`,aland_islands:`🇦🇽`,azerbaijan:`🇦🇿`,bosnia_herzegovina:`🇧🇦`,barbados:`🇧🇧`,bangladesh:`🇧🇩`,belgium:`🇧🇪`,burkina_faso:`🇧🇫`,bulgaria:`🇧🇬`,bahrain:`🇧🇭`,burundi:`🇧🇮`,benin:`🇧🇯`,st_barthelemy:`🇧🇱`,bermuda:`🇧🇲`,brunei:`🇧🇳`,bolivia:`🇧🇴`,caribbean_netherlands:`🇧🇶`,brazil:`🇧🇷`,bahamas:`🇧🇸`,bhutan:`🇧🇹`,bouvet_island:`🇧🇻`,botswana:`🇧🇼`,belarus:`🇧🇾`,belize:`🇧🇿`,canada:`🇨🇦`,cocos_islands:`🇨🇨`,congo_kinshasa:`🇨🇩`,central_african_republic:`🇨🇫`,congo_brazzaville:`🇨🇬`,switzerland:`🇨🇭`,cote_divoire:`🇨🇮`,cook_islands:`🇨🇰`,chile:`🇨🇱`,cameroon:`🇨🇲`,cn:`🇨🇳`,colombia:`🇨🇴`,clipperton_island:`🇨🇵`,costa_rica:`🇨🇷`,cuba:`🇨🇺`,cape_verde:`🇨🇻`,curacao:`🇨🇼`,christmas_island:`🇨🇽`,cyprus:`🇨🇾`,czech_republic:`🇨🇿`,de:`🇩🇪`,diego_garcia:`🇩🇬`,djibouti:`🇩🇯`,denmark:`🇩🇰`,dominica:`🇩🇲`,dominican_republic:`🇩🇴`,algeria:`🇩🇿`,ceuta_melilla:`🇪🇦`,ecuador:`🇪🇨`,estonia:`🇪🇪`,egypt:`🇪🇬`,western_sahara:`🇪🇭`,eritrea:`🇪🇷`,es:`🇪🇸`,ethiopia:`🇪🇹`,eu:`🇪🇺`,european_union:`🇪🇺`,finland:`🇫🇮`,fiji:`🇫🇯`,falkland_islands:`🇫🇰`,micronesia:`🇫🇲`,faroe_islands:`🇫🇴`,fr:`🇫🇷`,gabon:`🇬🇦`,gb:`🇬🇧`,uk:`🇬🇧`,grenada:`🇬🇩`,georgia:`🇬🇪`,french_guiana:`🇬🇫`,guernsey:`🇬🇬`,ghana:`🇬🇭`,gibraltar:`🇬🇮`,greenland:`🇬🇱`,gambia:`🇬🇲`,guinea:`🇬🇳`,guadeloupe:`🇬🇵`,equatorial_guinea:`🇬🇶`,greece:`🇬🇷`,south_georgia_south_sandwich_islands:`🇬🇸`,guatemala:`🇬🇹`,guam:`🇬🇺`,guinea_bissau:`🇬🇼`,guyana:`🇬🇾`,hong_kong:`🇭🇰`,heard_mcdonald_islands:`🇭🇲`,honduras:`🇭🇳`,croatia:`🇭🇷`,haiti:`🇭🇹`,hungary:`🇭🇺`,canary_islands:`🇮🇨`,indonesia:`🇮🇩`,ireland:`🇮🇪`,israel:`🇮🇱`,isle_of_man:`🇮🇲`,india:`🇮🇳`,british_indian_ocean_territory:`🇮🇴`,iraq:`🇮🇶`,iran:`🇮🇷`,iceland:`🇮🇸`,it:`🇮🇹`,jersey:`🇯🇪`,jamaica:`🇯🇲`,jordan:`🇯🇴`,jp:`🇯🇵`,kenya:`🇰🇪`,kyrgyzstan:`🇰🇬`,cambodia:`🇰🇭`,kiribati:`🇰🇮`,comoros:`🇰🇲`,st_kitts_nevis:`🇰🇳`,north_korea:`🇰🇵`,kr:`🇰🇷`,kuwait:`🇰🇼`,cayman_islands:`🇰🇾`,kazakhstan:`🇰🇿`,laos:`🇱🇦`,lebanon:`🇱🇧`,st_lucia:`🇱🇨`,liechtenstein:`🇱🇮`,sri_lanka:`🇱🇰`,liberia:`🇱🇷`,lesotho:`🇱🇸`,lithuania:`🇱🇹`,luxembourg:`🇱🇺`,latvia:`🇱🇻`,libya:`🇱🇾`,morocco:`🇲🇦`,monaco:`🇲🇨`,moldova:`🇲🇩`,montenegro:`🇲🇪`,st_martin:`🇲🇫`,madagascar:`🇲🇬`,marshall_islands:`🇲🇭`,macedonia:`🇲🇰`,mali:`🇲🇱`,myanmar:`🇲🇲`,mongolia:`🇲🇳`,macau:`🇲🇴`,northern_mariana_islands:`🇲🇵`,martinique:`🇲🇶`,mauritania:`🇲🇷`,montserrat:`🇲🇸`,malta:`🇲🇹`,mauritius:`🇲🇺`,maldives:`🇲🇻`,malawi:`🇲🇼`,mexico:`🇲🇽`,malaysia:`🇲🇾`,mozambique:`🇲🇿`,namibia:`🇳🇦`,new_caledonia:`🇳🇨`,niger:`🇳🇪`,norfolk_island:`🇳🇫`,nigeria:`🇳🇬`,nicaragua:`🇳🇮`,netherlands:`🇳🇱`,norway:`🇳🇴`,nepal:`🇳🇵`,nauru:`🇳🇷`,niue:`🇳🇺`,new_zealand:`🇳🇿`,oman:`🇴🇲`,panama:`🇵🇦`,peru:`🇵🇪`,french_polynesia:`🇵🇫`,papua_new_guinea:`🇵🇬`,philippines:`🇵🇭`,pakistan:`🇵🇰`,poland:`🇵🇱`,st_pierre_miquelon:`🇵🇲`,pitcairn_islands:`🇵🇳`,puerto_rico:`🇵🇷`,palestinian_territories:`🇵🇸`,portugal:`🇵🇹`,palau:`🇵🇼`,paraguay:`🇵🇾`,qatar:`🇶🇦`,reunion:`🇷🇪`,romania:`🇷🇴`,serbia:`🇷🇸`,ru:`🇷🇺`,rwanda:`🇷🇼`,saudi_arabia:`🇸🇦`,solomon_islands:`🇸🇧`,seychelles:`🇸🇨`,sudan:`🇸🇩`,sweden:`🇸🇪`,singapore:`🇸🇬`,st_helena:`🇸🇭`,slovenia:`🇸🇮`,svalbard_jan_mayen:`🇸🇯`,slovakia:`🇸🇰`,sierra_leone:`🇸🇱`,san_marino:`🇸🇲`,senegal:`🇸🇳`,somalia:`🇸🇴`,suriname:`🇸🇷`,south_sudan:`🇸🇸`,sao_tome_principe:`🇸🇹`,el_salvador:`🇸🇻`,sint_maarten:`🇸🇽`,syria:`🇸🇾`,swaziland:`🇸🇿`,tristan_da_cunha:`🇹🇦`,turks_caicos_islands:`🇹🇨`,chad:`🇹🇩`,french_southern_territories:`🇹🇫`,togo:`🇹🇬`,thailand:`🇹🇭`,tajikistan:`🇹🇯`,tokelau:`🇹🇰`,timor_leste:`🇹🇱`,turkmenistan:`🇹🇲`,tunisia:`🇹🇳`,tonga:`🇹🇴`,tr:`🇹🇷`,trinidad_tobago:`🇹🇹`,tuvalu:`🇹🇻`,taiwan:`🇹🇼`,tanzania:`🇹🇿`,ukraine:`🇺🇦`,uganda:`🇺🇬`,us_outlying_islands:`🇺🇲`,united_nations:`🇺🇳`,us:`🇺🇸`,uruguay:`🇺🇾`,uzbekistan:`🇺🇿`,vatican_city:`🇻🇦`,st_vincent_grenadines:`🇻🇨`,venezuela:`🇻🇪`,british_virgin_islands:`🇻🇬`,us_virgin_islands:`🇻🇮`,vietnam:`🇻🇳`,vanuatu:`🇻🇺`,wallis_futuna:`🇼🇫`,samoa:`🇼🇸`,kosovo:`🇽🇰`,yemen:`🇾🇪`,mayotte:`🇾🇹`,south_africa:`🇿🇦`,zambia:`🇿🇲`,zimbabwe:`🇿🇼`,england:`🏴`,scotland:`🏴`,wales:`🏴`};function zs(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Bs=zs();function Vs(e){Bs=e}var Hs={exec:()=>null};function Us(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function q(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(Gs.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Ws=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),Gs={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Us(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Us(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:Us(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:Us(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:Us(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,`i`)),blockquoteBeginRegex:Us(e=>RegExp(`^ {0,${e}}>`))},Ks=/^(?:[ \t]*(?:\n|$))+/,qs=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Js=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Ys=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Xs=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Zs=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Qs=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,$s=q(Qs).replace(/bull/g,Zs).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),ec=q(Qs).replace(/bull/g,Zs).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),tc=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,nc=/^[^\n]+/,rc=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ic=q(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,rc).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ac=q(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Zs).getRegex(),oc=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,sc=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,cc=q(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,sc).replace(`tag`,oc).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),lc=e=>q(tc).replace(`hr`,Ys).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,oc).getRegex(),uc=lc(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),dc=lc(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),fc={blockquote:q(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,dc).getRegex(),code:qs,def:ic,fences:Js,heading:Xs,hr:Ys,html:cc,lheading:$s,list:ac,newline:Ks,paragraph:uc,table:Hs,text:nc},pc=q(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Ys).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,oc).getRegex(),mc={...fc,lheading:ec,table:pc,paragraph:q(tc).replace(`hr`,Ys).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,pc).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,oc).getRegex()},hc={...fc,html:q(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,sc).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Hs,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:q(tc).replace(`hr`,Ys).replace(`heading`,` *#{1,6} *[^
|
|
20
20
|
]`).replace(`lheading`,$s).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},gc=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,_c=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,vc=/^( {2,}|\\)\n(?!\s*$)/,yc=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,bc=/[\p{P}\p{S}]/u,xc=/[\s\p{P}\p{S}]/u,Sc=/[^\s\p{P}\p{S}]/u,Cc=q(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,xc).getRegex(),wc=/[\p{Pi}\p{Ps}"']/u,Tc=/(?!~)[\p{P}\p{S}]/u,Ec=/(?!~)[\s\p{P}\p{S}]/u,Dc=/(?:[^\s\p{P}\p{S}]|~)/u,Oc=q(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Ws?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),kc=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Ac=q(kc,`u`).replace(/punct/g,bc).getRegex(),jc=q(kc,`u`).replace(/punct/g,Tc).getRegex(),Mc=q(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,wc).replace(/punct/g,bc).getRegex(),Nc=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Pc=q(Nc,`gu`).replace(/notPunctSpace/g,Sc).replace(/punctSpace/g,xc).replace(/punct/g,bc).getRegex(),Fc=q(Nc,`gu`).replace(/notPunctSpace/g,Dc).replace(/punctSpace/g,Ec).replace(/punct/g,Tc).getRegex(),Ic=q(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Sc).replace(/punctSpace/g,xc).replace(/punct/g,bc).getRegex(),Lc=q(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Sc).replace(/punctSpace/g,xc).replace(/punct/g,bc).getRegex(),Rc=q(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Sc).replace(/punctSpace/g,xc).replace(/punct/g,bc).getRegex(),zc=q(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,bc).getRegex(),Bc=q(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Sc).replace(/punctSpace/g,xc).replace(/punct/g,bc).getRegex(),Vc=q(/\\(punct)/,`gu`).replace(/punct/g,bc).getRegex(),Hc=q(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Uc=q(sc).replace(`(?:-->|$)`,`-->`).getRegex(),Wc=q(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Uc).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Gc=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Kc=q(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Gc).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),qc=q(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Gc).replace(`ref`,rc).getRegex(),Jc=q(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,rc).getRegex(),Yc=q(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,qc).replace(`nolink`,Jc).getRegex(),Xc=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Zc={_backpedal:Hs,anyPunctuation:Vc,autolink:Hc,blockSkip:Oc,br:vc,code:_c,del:Hs,delLDelim:Hs,delRDelim:Hs,emStrongLDelim:Ac,emStrongRDelimAst:Pc,emStrongRDelimUnd:Lc,escape:gc,link:Kc,nolink:Jc,punctuation:Cc,reflink:qc,reflinkSearch:Yc,tag:Wc,text:yc,url:Hs},Qc={...Zc,emStrongLDelim:Mc,emStrongRDelimAst:Ic,emStrongRDelimUnd:Rc,link:q(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Gc).getRegex(),reflink:q(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Gc).getRegex()},$c={...Zc,emStrongRDelimAst:Fc,emStrongLDelim:jc,delLDelim:zc,delRDelim:Bc,url:q(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,Xc).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:q(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,Xc).getRegex()},el={...$c,br:q(vc).replace(`{2,}`,`*`).getRegex(),text:q($c.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},tl={normal:fc,gfm:mc,pedantic:hc},nl={normal:Zc,gfm:$c,breaks:el,pedantic:Qc},rl={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},il=e=>rl[e];function J(e,t){if(t){if(Gs.escapeTest.test(e))return e.replace(Gs.escapeReplace,il)}else if(Gs.escapeTestNoEncode.test(e))return e.replace(Gs.escapeReplaceNoEncode,il);return e}function al(e){try{e=encodeURI(e).replace(Gs.percentDecode,`%`)}catch{return null}return e}function ol(e,t){let n=e.replace(Gs.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(Gs.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(Gs.slashPipe,`|`);return n}function sl(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function cl(e){let t=e.split(`
|
|
21
21
|
`),n=t.length-1;for(;n>=0&&Gs.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
|
|
22
|
-
`)}function ll(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function ul(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function dl(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`)
|
|
22
|
+
`)}function ll(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function ul(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function dl(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`),c=e[0].charAt(0)===`!`;r.state.inLink=!0;let l=r.state.linkEmitted,u=r.state.inRawBlock;r.state.linkEmitted=!1;let d=r.inlineTokens(s),f=r.state.linkEmitted;if(r.state.linkEmitted=l,r.state.inLink=!1,!c){if(f){r.state.inRawBlock=u;return}r.state.linkEmitted=!0}return{type:c?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:d}}function fl(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
|
|
23
23
|
`).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
|
|
24
24
|
`)}var pl=class{options;rules;lexer;constructor(e){this.options=e||Bs}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:cl(t[0]);return{type:`code`,raw:e,codeBlockStyle:`indented`,text:e.replace(this.rules.other.codeRemoveIndent,``)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=fl(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=sl(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:sl(t[0],`
|
|
25
25
|
`),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:sl(t[0],`
|
|
@@ -47,7 +47,7 @@ ${a}`,r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){
|
|
|
47
47
|
`):[],a={type:`table`,raw:sl(t[0],`
|
|
48
48
|
`),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(ol(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:`heading`,raw:sl(t[0],`
|
|
49
49
|
`),depth:t[2].charAt(0)===`=`?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
50
|
-
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=sl(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=ll(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),dl(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return dl(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,c=0,l=r[0][0],u=n===l,d=l===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}if(r[5]||r[6]){if(i%3&&!((i+o)%3)){c+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+c);let t=[...r[0]][0].length,n=e.slice(0,i+r.index+t+o);if(Math.min(i,o)%2){let e=n.slice(1,-1);return{type:`em`,raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:`strong`,raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},ml=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Bs,this.options.tokenizer=this.options.tokenizer||new pl,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:Gs,block:tl.normal,inline:nl.normal};this.options.pedantic?(t.block=tl.pedantic,t.inline=nl.pedantic):this.options.gfm&&(t.block=tl.gfm,t.inline=this.options.breaks?nl.breaks:nl.gfm),this.tokenizer.rules=t}static get rules(){return{block:tl,inline:nl}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(Gs.carriageReturn,`
|
|
50
|
+
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=sl(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=ll(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),dl(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return dl(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,c=0,l=r[0][0],u=n===l,d=l===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}if(r[5]||r[6]){if(i%3&&!((i+o)%3)){c+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+c);let t=[...r[0]][0].length,n=e.slice(0,i+r.index+t+o);if(Math.min(i,o)%2){let e=n.slice(1,-1);return{type:`em`,raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:`strong`,raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},ml=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Bs,this.options.tokenizer=this.options.tokenizer||new pl,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,top:!0};let t={other:Gs,block:tl.normal,inline:nl.normal};this.options.pedantic?(t.block=tl.pedantic,t.inline=nl.pedantic):this.options.gfm&&(t.block=tl.gfm,t.inline=this.options.breaks?nl.breaks:nl.gfm),this.tokenizer.rules=t}static get rules(){return{block:tl,inline:nl}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(Gs.carriageReturn,`
|
|
51
51
|
`),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(Gs.tabCharGlobal,` `).replace(Gs.spaceLine,``));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(n=>(i=n.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let n=t.at(-1);i.raw.length===1&&n!==void 0?n.raw+=`
|
|
52
52
|
`:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
53
53
|
`)?``:`
|
|
@@ -61,7 +61,7 @@ ${a}`,r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){
|
|
|
61
61
|
`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
62
62
|
`)?``:`
|
|
63
63
|
`)+i.raw,n.text+=`
|
|
64
|
-
`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}
|
|
64
|
+
`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes(`[`))return!1;let t=this.tokenizer.rules.inline.link;for(let n of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(n[0])&&e.charAt(n.index-1)!==`!`)return!0;for(let t of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let e=t[0],n=e.lastIndexOf(`[`);if(!(e.charAt(0)===`!`||!Object.hasOwn(this.tokens.links,e.slice(n+1,-1)))&&!(n>1&&this.linkInText(e.slice(1,n-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links&&e.includes(`[`)){let e=this.tokenizer.rules.inline.reflinkSearch,t=n=>{let r=n.lastIndexOf(`[`);if(!Object.hasOwn(this.tokens.links,n.slice(r+1,-1)))return n;if(r>1&&n.charAt(0)!==`!`){let i=n.slice(1,r-1);if(this.linkInText(i))return`[`+i.replace(e,t)+`][`+`a`.repeat(n.length-r-2)+`]`}return`[`+`a`.repeat(n.length-2)+`]`};n=n.replace(e,t)}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,e=>`+`.repeat(e.length)),n=n.replace(this.tokenizer.rules.inline.blockSkip,(e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+`[`+`a`.repeat(e.length-r-2)+`]`}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,i=``,a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}r||(i=``),r=!1;let o;if(this.options.extensions?.inline?.some(n=>(o=n.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);o.type===`text`&&n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(o=this.tokenizer.inlineText(s)){e=e.substring(o.raw.length),o.raw.slice(-1)!==`_`&&(i=o.raw.slice(-1)),r=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=`Infinite loop on byte: `+e;if(this.options.silent)console.error(t);else throw Error(t)}},hl=class{options;parser;constructor(e){this.options=e||Bs}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(Gs.notSpaceStart)?.[0],i=e.replace(Gs.endingNewline,``)+`
|
|
65
65
|
`;return r?`<pre><code class="language-`+J(r)+`">`+(n?i:J(i,!0))+`</code></pre>
|
|
66
66
|
`:`<pre><code>`+(n?i:J(i,!0))+`</code></pre>
|
|
67
67
|
`}blockquote({tokens:e}){return`<blockquote>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>TDPM Console</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DWnS9748.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-C23_HNwW.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -20,9 +20,6 @@ const inTmuxByHumanSessionReconciler_1 = require("./inTmuxByHumanSessionReconcil
|
|
|
20
20
|
const tokenExhaustionHandover_1 = require("./tokenExhaustionHandover");
|
|
21
21
|
const staleTmuxSessionCleaner_1 = require("./staleTmuxSessionCleaner");
|
|
22
22
|
const notifySilentTmuxSessions_1 = require("./notifySilentTmuxSessions");
|
|
23
|
-
const ownerReplyMarkerDirectoryResolve_1 = require("./ownerReplyMarkerDirectoryResolve");
|
|
24
|
-
const TranscriptOwnerCallStatusProvider_1 = require("../../repositories/TranscriptOwnerCallStatusProvider");
|
|
25
|
-
const NoUnansweredOwnerCallStatusProvider_1 = require("../../repositories/NoUnansweredOwnerCallStatusProvider");
|
|
26
23
|
const resetDegeneratedTmuxSessions_1 = require("./resetDegeneratedTmuxSessions");
|
|
27
24
|
const rotationOrderFileWriter_1 = require("./rotationOrderFileWriter");
|
|
28
25
|
const projectConfig_1 = require("../cli/projectConfig");
|
|
@@ -371,16 +368,6 @@ class HandleScheduledEventUseCaseHandler {
|
|
|
371
368
|
console.error(`Failed to handle subscription disabled tokens: ${error instanceof Error ? error.message : String(error)}`);
|
|
372
369
|
}
|
|
373
370
|
const inTmuxNow = new Date();
|
|
374
|
-
const inTmuxGetuid = process.getuid?.bind(process);
|
|
375
|
-
const ownerCallMarker = mergedInput.ownerCallMarker ??
|
|
376
|
-
process.env.TDPM_SILENT_OWNER_CALL_MARKER ??
|
|
377
|
-
null;
|
|
378
|
-
const ownerReplyMarkerDirectory = (0, ownerReplyMarkerDirectoryResolve_1.ownerReplyMarkerDirectoryResolve)(mergedInput.ownerReplyMarkerDirectory ?? null, process.env, inTmuxGetuid === undefined ? null : inTmuxGetuid());
|
|
379
|
-
const transcriptOwnerCallStatusProvider = ownerCallMarker !== null && ownerCallMarker.length > 0
|
|
380
|
-
? new TranscriptOwnerCallStatusProvider_1.TranscriptOwnerCallStatusProvider(ownerCallMarker, ownerReplyMarkerDirectory)
|
|
381
|
-
: null;
|
|
382
|
-
const ownerCallStatusProvider = transcriptOwnerCallStatusProvider ??
|
|
383
|
-
new NoUnansweredOwnerCallStatusProvider_1.NoUnansweredOwnerCallStatusProvider();
|
|
384
371
|
try {
|
|
385
372
|
(0, inTmuxByHumanDataWriter_1.writeInTmuxByHumanData)({
|
|
386
373
|
inTmuxDataOutputDir: mergedInput.inTmuxDataOutputDir ?? null,
|
|
@@ -474,13 +461,10 @@ class HandleScheduledEventUseCaseHandler {
|
|
|
474
461
|
await (0, notifySilentTmuxSessions_1.notifySilentTmuxSessions)({
|
|
475
462
|
enabled: silentNotificationEnabled,
|
|
476
463
|
localCommandRunner: nodeLocalCommandRunner,
|
|
477
|
-
ownerCallStatusProvider,
|
|
478
464
|
subAgentOutputRootDirectory,
|
|
479
465
|
subAgentProcessMatchPattern,
|
|
480
466
|
subAgentTranscriptRootDirectory,
|
|
481
467
|
subAgentRuntimeRootDirectory,
|
|
482
|
-
mainSilentThresholdSeconds: readSilentSeconds(mergedInput.mainSilentThresholdSeconds, process.env.TDPM_MAIN_SILENT_THRESHOLD_SECONDS, notifySilentTmuxSessions_1.DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS.mainSilentThresholdSeconds),
|
|
483
|
-
unansweredOwnerCallGraceSeconds: readSilentSeconds(mergedInput.unansweredOwnerCallGraceSeconds, process.env.TDPM_SILENT_UNANSWERED_OWNER_CALL_GRACE_SECONDS, notifySilentTmuxSessions_1.DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS.unansweredOwnerCallGraceSeconds),
|
|
484
468
|
subAgentSilentThresholdSeconds: readSilentSeconds(mergedInput.subAgentSilentThresholdSeconds, process.env.TDPM_SUBAGENT_SILENT_THRESHOLD_SECONDS, notifySilentTmuxSessions_1.DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS.subAgentSilentThresholdSeconds),
|
|
485
469
|
subAgentRunningThresholdSeconds: readSilentSeconds(mergedInput.subAgentRunningThresholdSeconds, process.env.TDPM_SUBAGENT_RUNNING_THRESHOLD_SECONDS, notifySilentTmuxSessions_1.DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS.subAgentRunningThresholdSeconds),
|
|
486
470
|
staggerSeconds: readSilentSeconds(mergedInput.silentNotificationStaggerSeconds, process.env.TDPM_SILENT_NOTIFICATION_STAGGER_SECONDS, notifySilentTmuxSessions_1.DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS.staggerSeconds),
|
|
@@ -497,12 +481,6 @@ class HandleScheduledEventUseCaseHandler {
|
|
|
497
481
|
null,
|
|
498
482
|
hubTaskStatusCacheTtlSeconds: readSilentSeconds(mergedInput.hubTaskStatusCacheTtlSeconds, process.env.TDPM_SILENT_HUB_TASK_STATUS_CACHE_TTL_SECONDS, notifySilentTmuxSessions_1.DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS.hubTaskStatusCacheTtlSeconds),
|
|
499
483
|
messageTemplates: {
|
|
500
|
-
mainStalledMessage: mergedInput.silentMainStalledMessage ??
|
|
501
|
-
process.env.TDPM_SILENT_MAIN_STALLED_MESSAGE ??
|
|
502
|
-
null,
|
|
503
|
-
mainStalledStaleOwnerCallMessage: mergedInput.silentMainStalledStaleOwnerCallMessage ??
|
|
504
|
-
process.env.TDPM_SILENT_MAIN_STALLED_STALE_OWNER_CALL_MESSAGE ??
|
|
505
|
-
null,
|
|
506
484
|
subAgentIdleMessageHeader: mergedInput.silentSubAgentIdleMessageHeader ??
|
|
507
485
|
process.env.TDPM_SILENT_SUBAGENT_IDLE_MESSAGE_HEADER ??
|
|
508
486
|
null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"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"}
|