@promptbook/cli 0.114.0-21 → 0.114.0-23

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.
Files changed (43) hide show
  1. package/esm/index.es.js +780 -103
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/scripts/run-codex-prompts/prompts/buildPromptStatusDetails.d.ts +5 -4
  4. package/esm/scripts/run-codex-prompts/prompts/markPromptFailed.d.ts +3 -2
  5. package/esm/scripts/run-codex-prompts/prompts/promptRunnerAttribution.d.ts +14 -8
  6. package/esm/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeRunner.d.ts +15 -0
  7. package/esm/scripts/run-codex-prompts/runners/claude-code/parseClaudeCodeOutputEvents.d.ts +3 -0
  8. package/esm/scripts/run-codex-prompts/runners/claude-code/parseClaudeCodeSubscriptionUsage.d.ts +11 -0
  9. package/esm/scripts/run-codex-prompts/runners/openai-codex/OpenAiCodexRunner.d.ts +8 -0
  10. package/esm/scripts/run-codex-prompts/runners/openai-codex/getCodexSubscriptionUsage.d.ts +19 -0
  11. package/esm/scripts/run-codex-prompts/runners/types/HarnessSubscriptionUsage.d.ts +43 -0
  12. package/esm/scripts/run-codex-prompts/ui/CoderRunUiState.d.ts +6 -0
  13. package/esm/scripts/run-codex-prompts/ui/buildCoderRunUiFrame.d.ts +2 -0
  14. package/esm/scripts/run-codex-prompts/ui/buildSubscriptionUsageSessionRows.d.ts +11 -0
  15. package/esm/scripts/run-codex-prompts/ui/refreshCoderRunUiSubscriptionUsage.d.ts +14 -0
  16. package/esm/scripts/utils/emojiTags/validSinglePictogramEmojis.d.ts +17 -0
  17. package/esm/src/utils/misc/emojis.d.ts +3 -2
  18. package/esm/src/version.d.ts +1 -1
  19. package/package.json +1 -1
  20. package/src/other/templates/getTemplatesPipelineCollection.ts +859 -822
  21. package/src/utils/misc/emojis.ts +3 -3
  22. package/src/version.ts +2 -2
  23. package/src/versions.txt +2 -0
  24. package/umd/index.umd.js +779 -102
  25. package/umd/index.umd.js.map +1 -1
  26. package/umd/scripts/run-codex-prompts/prompts/buildPromptStatusDetails.d.ts +5 -4
  27. package/umd/scripts/run-codex-prompts/prompts/markPromptFailed.d.ts +3 -2
  28. package/umd/scripts/run-codex-prompts/prompts/promptRunnerAttribution.d.ts +14 -8
  29. package/umd/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeRunner.d.ts +15 -0
  30. package/umd/scripts/run-codex-prompts/runners/claude-code/parseClaudeCodeOutputEvents.d.ts +3 -0
  31. package/umd/scripts/run-codex-prompts/runners/claude-code/parseClaudeCodeSubscriptionUsage.d.ts +11 -0
  32. package/umd/scripts/run-codex-prompts/runners/openai-codex/OpenAiCodexRunner.d.ts +8 -0
  33. package/umd/scripts/run-codex-prompts/runners/openai-codex/getCodexSubscriptionUsage.d.ts +19 -0
  34. package/umd/scripts/run-codex-prompts/runners/types/HarnessSubscriptionUsage.d.ts +43 -0
  35. package/umd/scripts/run-codex-prompts/ui/CoderRunUiState.d.ts +6 -0
  36. package/umd/scripts/run-codex-prompts/ui/buildCoderRunUiFrame.d.ts +2 -0
  37. package/umd/scripts/run-codex-prompts/ui/buildSubscriptionUsageSessionRows.d.ts +11 -0
  38. package/umd/scripts/run-codex-prompts/ui/refreshCoderRunUiSubscriptionUsage.d.ts +14 -0
  39. package/umd/scripts/utils/emojiTags/validSinglePictogramEmojis.d.ts +17 -0
  40. package/umd/src/utils/misc/emojis.d.ts +3 -2
  41. package/umd/src/version.d.ts +1 -1
  42. package/esm/scripts/find-fresh-emoji-tags/utils/emojis.d.ts +0 -16
  43. package/umd/scripts/find-fresh-emoji-tags/utils/emojis.d.ts +0 -16
@@ -1,6 +1,7 @@
1
1
  import { type CodexLoginMethod } from '../../../src/book-3.0/codexLoginMethod';
2
2
  import type { ThinkingLevel } from '../../../src/cli/cli-commands/coder/ThinkingLevel';
3
3
  import type { CoderRunStep, CoderRunStepKind } from '../common/CoderRunStep';
4
+ import { type PromptRunnerAttribution } from './promptRunnerAttribution';
4
5
  /**
5
6
  * Everything one prompt status line says after its checklist marker.
6
7
  */
@@ -22,12 +23,12 @@ export type BuildPromptStatusDetailsOptions = {
22
23
  */
23
24
  readonly modelName: string | undefined;
24
25
  /**
25
- * Harness which left the prompt in the middle of its implementation, when another harness took the work over.
26
+ * Chronological runner report read from a prompt left in the middle of its implementation.
26
27
  *
27
- * Present only for a prompt resumed through `--git-changes continue`, so a status line always names both the
28
- * harness which started the work and the one which is finishing it.
28
+ * Present only for a prompt resumed through `--git-changes continue`, so each status rewrite preserves every
29
+ * preceding harness and appends the harness which is currently continuing the work.
29
30
  */
30
- readonly startedByRunnerSignature?: string;
31
+ readonly previousRunnerSignatures?: PromptRunnerAttribution;
31
32
  /**
32
33
  * How many coding attempts the prompt has taken so far.
33
34
  */
@@ -1,4 +1,5 @@
1
1
  import moment from 'moment';
2
+ import { type PromptRunnerAttribution } from './promptRunnerAttribution';
2
3
  import type { PromptFile } from './types/PromptFile';
3
4
  import type { PromptSection } from './types/PromptSection';
4
5
  /**
@@ -22,9 +23,9 @@ export type MarkPromptFailedOptions = {
22
23
  */
23
24
  readonly modelName: string | undefined;
24
25
  /**
25
- * Harness which left the prompt in the middle of its implementation, when another harness took the work over.
26
+ * Chronological runner report read from a prompt left in the middle of its implementation.
26
27
  */
27
- readonly startedByRunnerSignature?: string;
28
+ readonly previousRunnerSignatures?: PromptRunnerAttribution;
28
29
  /**
29
30
  * Moment the failed prompt round started, used to report how long the attempt took.
30
31
  */
@@ -1,9 +1,15 @@
1
+ /**
2
+ * Ordered runner signatures recorded in a prompt status line.
3
+ *
4
+ * The first signature started the work and every following signature continued an interrupted run.
5
+ */
6
+ export type PromptRunnerAttribution = ReadonlyArray<string>;
1
7
  /**
2
8
  * Formats who worked on one prompt for its status line.
3
9
  *
4
10
  * Produces `` by Claude Code `claude-opus-5` `` for a prompt implemented by a single harness and
5
- * `` by Claude Code `claude-opus-5`, started by OpenAI Codex `gpt-5.6-luna` `` for a prompt which one
6
- * harness started and another one continued through `--git-changes continue`.
11
+ * `` by OpenAI Codex `gpt-5.6-luna`, interrupted, continued by Claude Code `claude-opus-5` `` for a
12
+ * prompt which one harness started and another one continued through `--git-changes continue`.
7
13
  */
8
14
  export declare function formatPromptRunnerAttribution(options: {
9
15
  /**
@@ -11,14 +17,14 @@ export declare function formatPromptRunnerAttribution(options: {
11
17
  */
12
18
  readonly currentRunnerSignature: string;
13
19
  /**
14
- * Harness which left the prompt in the middle of its implementation, when the work was taken over.
20
+ * Chronological runner report read from the interrupted prompt before its status line is rewritten.
15
21
  */
16
- readonly startedByRunnerSignature?: string;
22
+ readonly previousRunnerSignatures?: PromptRunnerAttribution;
17
23
  }): string;
18
24
  /**
19
- * Reads which harness started the work recorded on one prompt status line.
25
+ * Reads the chronological harness report recorded on one prompt status line.
20
26
  *
21
- * A line written by a single harness names that harness, and a line of a prompt which was already taken
22
- * over keeps naming the harness which started it, so the original author survives any number of takeovers.
27
+ * A line written by a single harness produces one signature. A line which has already been continued produces
28
+ * every signature in the order in which it worked on the prompt, so another continuation can append to it.
23
29
  */
24
- export declare function parsePromptStartedByRunnerSignature(statusLine: string): string | undefined;
30
+ export declare function parsePromptRunnerAttribution(statusLine: string): PromptRunnerAttribution | undefined;
@@ -1,6 +1,7 @@
1
1
  import type { PromptRunOptions } from '../types/PromptRunOptions';
2
2
  import type { PromptRunResult } from '../types/PromptRunResult';
3
3
  import type { PromptRunner } from '../types/PromptRunner';
4
+ import { type HarnessSubscriptionUsage } from '../types/HarnessSubscriptionUsage';
4
5
  import type { ClaudeCodeRunnerOptions } from './ClaudeCodeRunnerOptions';
5
6
  /**
6
7
  * Runs prompts via the Claude Code CLI.
@@ -8,10 +9,17 @@ import type { ClaudeCodeRunnerOptions } from './ClaudeCodeRunnerOptions';
8
9
  export declare class ClaudeCodeRunner implements PromptRunner {
9
10
  private readonly options;
10
11
  readonly name = "claude-code";
12
+ private subscriptionUsage;
11
13
  /**
12
14
  * Creates a new Claude Code runner.
13
15
  */
14
16
  constructor(options?: ClaudeCodeRunnerOptions);
17
+ /**
18
+ * Returns the latest subscription-limit snapshot emitted by this Claude Code session.
19
+ *
20
+ * Claude exposes these values in the normal stream after a response, so no separate quota-only model call is made.
21
+ */
22
+ getSubscriptionUsage(): Promise<HarnessSubscriptionUsage | undefined>;
15
23
  /**
16
24
  * Runs the prompt using Claude Code and parses usage output.
17
25
  */
@@ -20,4 +28,11 @@ export declare class ClaudeCodeRunner implements PromptRunner {
20
28
  * Runs one Claude Code CLI process and returns its raw output.
21
29
  */
22
30
  private runClaudeCodeOnce;
31
+ /**
32
+ * Keeps the newest usable Claude subscription-limit values reported by the stream.
33
+ *
34
+ * A stream can omit these values for API-key users or unsupported plan types; retaining the prior snapshot avoids
35
+ * a temporary omission erasing a still-valid dashboard value while a long queue is running.
36
+ */
37
+ private updateSubscriptionUsage;
23
38
  }
@@ -12,7 +12,10 @@ export type ClaudeCodeOutputEvent = {
12
12
  readonly rate_limit_info?: {
13
13
  readonly status?: string;
14
14
  readonly resetsAt?: number;
15
+ readonly resets_at?: number;
15
16
  readonly rateLimitType?: string;
17
+ readonly rate_limit_type?: string;
18
+ readonly utilization?: number;
16
19
  };
17
20
  readonly usage?: {
18
21
  readonly input_tokens?: number;
@@ -0,0 +1,11 @@
1
+ import type { HarnessSubscriptionUsage } from '../types/HarnessSubscriptionUsage';
2
+ /**
3
+ * Converts Claude Code stream-json rate-limit events into the shared subscription-usage snapshot.
4
+ *
5
+ * Claude Code can emit one event for each applicable limit, so the parser preserves every distinct window instead of
6
+ * assuming the familiar 5-hour and seven-day pair. This lets a new vendor-side limit appear in the dashboard without
7
+ * changing its renderer.
8
+ *
9
+ * @private internal utility of the Claude Code runner
10
+ */
11
+ export declare function parseClaudeCodeSubscriptionUsage(output: string): HarnessSubscriptionUsage | undefined;
@@ -1,6 +1,7 @@
1
1
  import type { PromptRunOptions } from '../types/PromptRunOptions';
2
2
  import type { PromptRunResult } from '../types/PromptRunResult';
3
3
  import type { PromptRunner } from '../types/PromptRunner';
4
+ import type { HarnessSubscriptionUsage } from '../types/HarnessSubscriptionUsage';
4
5
  import type { OpenAiCodexRunnerOptions } from './OpenAiCodexRunnerOptions';
5
6
  /**
6
7
  * Runs prompts via the OpenAI Codex CLI.
@@ -13,6 +14,13 @@ export declare class OpenAiCodexRunner implements PromptRunner {
13
14
  * Creates a new Codex runner.
14
15
  */
15
16
  constructor(options: OpenAiCodexRunnerOptions);
17
+ /**
18
+ * Reads the current ChatGPT subscription quota snapshot through Codex's local app server.
19
+ *
20
+ * API-key sessions and unsupported Codex versions simply return no snapshot, which keeps this optional dashboard
21
+ * information from affecting the actual prompt execution.
22
+ */
23
+ getSubscriptionUsage(): Promise<HarnessSubscriptionUsage | undefined>;
16
24
  /**
17
25
  * Runs the Codex prompt in a temporary script and waits for completion output.
18
26
  */
@@ -0,0 +1,19 @@
1
+ import type { HarnessSubscriptionUsage } from '../types/HarnessSubscriptionUsage';
2
+ /**
3
+ * Reads the current Codex subscription limit windows through its local app-server protocol.
4
+ *
5
+ * Codex versions without this optional protocol, API-key sessions, and transient account failures simply provide no
6
+ * snapshot. Subscription usage is contextual UI information, so it must never make a coding prompt fail.
7
+ *
8
+ * @private internal utility of the OpenAI Codex runner
9
+ */
10
+ export declare function getCodexSubscriptionUsage(codexCommand: string): Promise<HarnessSubscriptionUsage | undefined>;
11
+ /**
12
+ * Converts the raw Codex app-server rate-limit response into Promptbook's harness-neutral subscription snapshot.
13
+ *
14
+ * Modern Codex versions can report several metered buckets, while older versions expose a single compatibility
15
+ * bucket. In both cases every primary and secondary rolling window is preserved for the terminal dashboard.
16
+ *
17
+ * @private internal utility of the OpenAI Codex runner
18
+ */
19
+ export declare function buildCodexSubscriptionUsage(response: unknown): HarnessSubscriptionUsage | undefined;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * One rolling subscription limit reported by a coding harness.
3
+ *
4
+ * @private internal type of `ptbk coder`
5
+ */
6
+ export type HarnessSubscriptionUsageLimit = {
7
+ /**
8
+ * Short, user-facing name of the limit window, for example `5h` or `7d`.
9
+ */
10
+ readonly label: string;
11
+ /**
12
+ * Percentage of this limit which has already been consumed, from 0 through 100.
13
+ */
14
+ readonly usedPercentage: number;
15
+ /**
16
+ * Unix timestamp in seconds at which this limit window resets, when reported by the harness.
17
+ */
18
+ readonly resetsAt?: number;
19
+ };
20
+ /**
21
+ * Subscription usage snapshot which a coding harness can optionally report.
22
+ *
23
+ * The runner contract deliberately keeps this independent from per-prompt token usage: subscription limits can be
24
+ * shared with other tools and can contain several rolling windows.
25
+ *
26
+ * @private internal type of `ptbk coder`
27
+ */
28
+ export type HarnessSubscriptionUsage = {
29
+ /**
30
+ * Every subscription limit currently reported by the harness, in display order.
31
+ */
32
+ readonly limits: ReadonlyArray<HarnessSubscriptionUsageLimit>;
33
+ };
34
+ /**
35
+ * Merges a newly reported subset of subscription windows into the latest complete snapshot.
36
+ *
37
+ * Some harnesses emit an update only for the limit whose state changed. Keeping the previous windows means a
38
+ * five-hour update cannot make a still-valid weekly limit disappear from the dashboard. Existing order is preserved
39
+ * and newly discovered windows are appended, which keeps the terminal presentation stable between refreshes.
40
+ *
41
+ * @private internal utility of `ptbk coder`
42
+ */
43
+ export declare function mergeHarnessSubscriptionUsage(previousSubscriptionUsage: HarnessSubscriptionUsage | undefined, latestSubscriptionUsage: HarnessSubscriptionUsage): HarnessSubscriptionUsage;
@@ -5,6 +5,7 @@ import { type CoderRunProgressSnapshot } from '../common/buildCoderRunProgressSn
5
5
  import type { CoderRunControlFeedback, CoderRunControlFeedbackNotice } from '../common/CoderRunControlFeedback';
6
6
  import type { PriorityFilter } from '../prompts/priorityFilter';
7
7
  import type { PromptStats } from '../prompts/types/PromptStats';
8
+ import type { HarnessSubscriptionUsage } from '../runners/types/HarnessSubscriptionUsage';
8
9
  import type { CoderRunAgentVisual } from './buildCoderRunAgentVisual';
9
10
  import type { AgentRunMessagePreviewSection, AgentRunStatusTableRow } from './buildCoderRunUiFrame';
10
11
  /**
@@ -55,6 +56,7 @@ export declare class CoderRunUiState extends EventEmitter {
55
56
  messagePreviewSections: AgentRunMessagePreviewSection[];
56
57
  agentStatusLines: string[];
57
58
  agentStatusTableRows: AgentRunStatusTableRow[];
59
+ subscriptionUsage: HarnessSubscriptionUsage | undefined;
58
60
  pendingEnterLabel: string | undefined;
59
61
  agentOutputLines: string[];
60
62
  phase: CoderRunPhase;
@@ -144,6 +146,10 @@ export declare class CoderRunUiState extends EventEmitter {
144
146
  * Replaces structured agent status rows shown by agent-specific terminal frames.
145
147
  */
146
148
  setAgentStatusTableRows(agentStatusTableRows: AgentRunStatusTableRow[]): void;
149
+ /**
150
+ * Replaces the optional harness subscription usage shown in the Session box.
151
+ */
152
+ setSubscriptionUsage(subscriptionUsage: HarnessSubscriptionUsage): void;
147
153
  /**
148
154
  * Sets or clears the Enter-key action label shown in the controls panel.
149
155
  */
@@ -1,5 +1,6 @@
1
1
  import type { CoderRunControlFeedbackNotice } from '../common/CoderRunControlFeedback';
2
2
  import type { CoderRunPauseState } from '../common/waitForPause';
3
+ import type { HarnessSubscriptionUsage } from '../runners/types/HarnessSubscriptionUsage';
3
4
  import type { CoderRunConfig, CoderRunPhase, CoderRunProgressSnapshot } from './CoderRunUiState';
4
5
  import type { CoderRunAgentVisual } from './buildCoderRunAgentVisual';
5
6
  /**
@@ -26,6 +27,7 @@ export type BuildCoderRunUiFrameOptions = {
26
27
  readonly pauseTargetLabel: string;
27
28
  readonly isEndAfterCurrentPromptRequested: boolean;
28
29
  readonly config: CoderRunConfig;
30
+ readonly subscriptionUsage?: HarnessSubscriptionUsage;
29
31
  readonly phase: CoderRunPhase;
30
32
  readonly currentPromptLabel: string;
31
33
  readonly currentScriptPaths?: readonly string[];
@@ -0,0 +1,11 @@
1
+ import type { HarnessSubscriptionUsage } from '../runners/types/HarnessSubscriptionUsage';
2
+ import type { SessionRow } from './buildRunUiFrameShared';
3
+ /**
4
+ * Builds every available subscription-limit row for the terminal Session box.
5
+ *
6
+ * The first row carries the `Usage` label and subsequent rows stay aligned beneath it, allowing a harness to report
7
+ * any number of windows instead of making the dashboard assume a fixed 5-hour/weekly pair.
8
+ *
9
+ * @private internal utility of coder run UI
10
+ */
11
+ export declare function buildSubscriptionUsageSessionRows(subscriptionUsage: HarnessSubscriptionUsage | undefined, currentTimeMs?: number): readonly SessionRow[];
@@ -0,0 +1,14 @@
1
+ import type { PromptRunner } from '../runners/types/PromptRunner';
2
+ import type { CoderRunUiState } from './CoderRunUiState';
3
+ /**
4
+ * Refreshes optional harness subscription usage in the shared coder-run UI state.
5
+ *
6
+ * Subscription visibility is an enhancement, not a prerequisite for running prompts. A harness which cannot expose a
7
+ * snapshot, or whose account endpoint is temporarily unavailable, therefore leaves the existing dashboard unchanged.
8
+ *
9
+ * @private internal utility of coder run UI
10
+ */
11
+ export declare function refreshCoderRunUiSubscriptionUsage(options: {
12
+ readonly runner: PromptRunner;
13
+ readonly uiState: CoderRunUiState | undefined;
14
+ }): Promise<void>;
@@ -0,0 +1,17 @@
1
+ import type { string_char_emoji } from '../../../src/types/typeAliasEmoji';
2
+ /**
3
+ * Valid single-pictogram emojis that `ptbk` can use in generated tags.
4
+ *
5
+ * The shared emoji catalogue also contains legacy symbols for other presentation
6
+ * purposes. Restricting generated tags to Unicode emoji-presentation pictograms
7
+ * prevents those symbols from being emitted as prompt identifiers.
8
+ *
9
+ * @private internal utility of generated `ptbk` emoji tags
10
+ */
11
+ export declare const VALID_SINGLE_PICTOGRAM_EMOJIS: ReadonlySet<string_char_emoji>;
12
+ /**
13
+ * Determines whether one catalogue entry is a valid single-pictogram emoji for a generated tag.
14
+ *
15
+ * @private internal utility of generated `ptbk` emoji tags
16
+ */
17
+ export declare function isValidSinglePictogramEmoji(emoji: string_char_emoji): boolean;
@@ -10,9 +10,10 @@ import type { string_char_emoji } from '../../types/typeAliasEmoji';
10
10
  */
11
11
  export declare const EMOJIS_IN_CATEGORIES: Record<string, ReadonlyArray<string_char_emoji>>;
12
12
  /**
13
- * All possible emoji chars like "🍆", "🍡", "🍤"...
13
+ * Curated repository catalogue of emoji and legacy pictographic symbols.
14
14
  *
15
- * @deprecated Use /\p{Extended_Pictographic}/ instead
15
+ * Code that needs to generate a valid Unicode emoji should apply its own validation
16
+ * to this catalogue rather than assume every entry is an emoji.
16
17
  *
17
18
  * @private within the repository
18
19
  */
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.114.0-20`).
18
+ * It follows semantic versioning (e.g., `0.114.0-22`).
19
19
  *
20
20
  * @generated
21
21
  */
@@ -1,16 +0,0 @@
1
- import type { string_char_emoji } from '../../../src/types/typeAliasEmoji';
2
- /**
3
- * All possible emoji chars like "🍆", "🍡", "🍤"...
4
- * Note: this will be needed to update annually - now updated at 2022-01-19
5
- *
6
- * @see https://getemoji.com/
7
- */
8
- export declare const EMOJIS_IN_CATEGORIES: Record<string, ReadonlyArray<string_char_emoji>>;
9
- /**
10
- * All possible emoji chars like "🍆", "🍡", "🍤", "🇨🇼", "🧑🏿‍❤️‍💋‍🧑🏻"...
11
- */
12
- export declare const EMOJIS: Set<string_char_emoji>;
13
- /**
14
- * Emojis which are single pictograms like "🍆", "🍡", "🍤"...
15
- */
16
- export declare const EMOJIS_OF_SINGLE_PICTOGRAM: Set<string_char_emoji>;
@@ -1,16 +0,0 @@
1
- import type { string_char_emoji } from '../../../src/types/typeAliasEmoji';
2
- /**
3
- * All possible emoji chars like "🍆", "🍡", "🍤"...
4
- * Note: this will be needed to update annually - now updated at 2022-01-19
5
- *
6
- * @see https://getemoji.com/
7
- */
8
- export declare const EMOJIS_IN_CATEGORIES: Record<string, ReadonlyArray<string_char_emoji>>;
9
- /**
10
- * All possible emoji chars like "🍆", "🍡", "🍤", "🇨🇼", "🧑🏿‍❤️‍💋‍🧑🏻"...
11
- */
12
- export declare const EMOJIS: Set<string_char_emoji>;
13
- /**
14
- * Emojis which are single pictograms like "🍆", "🍡", "🍤"...
15
- */
16
- export declare const EMOJIS_OF_SINGLE_PICTOGRAM: Set<string_char_emoji>;