@nathapp/nax 0.68.6 → 0.68.7
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/dist/nax.js +232 -1768
- package/package.json +1 -1
package/dist/nax.js
CHANGED
|
@@ -17011,7 +17011,8 @@ var init_schemas_infra = __esm(() => {
|
|
|
17011
17011
|
decomposeTimeoutSeconds: exports_external.number().int().min(30).max(1800).optional(),
|
|
17012
17012
|
mode: exports_external.enum(["single", "debate", "pipeline", "refine"]).optional(),
|
|
17013
17013
|
citationThreshold: exports_external.number().min(0).max(1).default(0.5),
|
|
17014
|
-
criticModel: ConfiguredModelSchema.default("fast")
|
|
17014
|
+
criticModel: ConfiguredModelSchema.default("fast"),
|
|
17015
|
+
specGuard: exports_external.boolean().default(false)
|
|
17015
17016
|
});
|
|
17016
17017
|
AcceptanceFixConfigSchema = exports_external.object({
|
|
17017
17018
|
diagnoseModel: ConfiguredModelSchema.default("fast"),
|
|
@@ -17468,7 +17469,8 @@ var init_schemas3 = __esm(() => {
|
|
|
17468
17469
|
outputPath: "spec.md",
|
|
17469
17470
|
timeoutSeconds: 600,
|
|
17470
17471
|
citationThreshold: 0.5,
|
|
17471
|
-
criticModel: "fast"
|
|
17472
|
+
criticModel: "fast",
|
|
17473
|
+
specGuard: false
|
|
17472
17474
|
}),
|
|
17473
17475
|
acceptance: AcceptanceConfigSchema.default({
|
|
17474
17476
|
enabled: true,
|
|
@@ -18054,14 +18056,14 @@ class Logger {
|
|
|
18054
18056
|
filePath;
|
|
18055
18057
|
useChalk;
|
|
18056
18058
|
formatterMode;
|
|
18057
|
-
|
|
18059
|
+
suppressConsole;
|
|
18058
18060
|
writeQueueTail = Promise.resolve();
|
|
18059
18061
|
constructor(options) {
|
|
18060
18062
|
this.level = options.level;
|
|
18061
18063
|
this.filePath = options.filePath;
|
|
18062
18064
|
this.useChalk = options.useChalk ?? true;
|
|
18063
18065
|
this.formatterMode = options.formatterMode;
|
|
18064
|
-
this.
|
|
18066
|
+
this.suppressConsole = options.suppressConsole ?? false;
|
|
18065
18067
|
if (this.filePath) {
|
|
18066
18068
|
this.initFileDirectory();
|
|
18067
18069
|
}
|
|
@@ -18098,9 +18100,9 @@ class Logger {
|
|
|
18098
18100
|
...sessionRole && { sessionRole },
|
|
18099
18101
|
...strippedData && { data: strippedData }
|
|
18100
18102
|
};
|
|
18101
|
-
if (this.shouldLog(level)) {
|
|
18103
|
+
if (this.shouldLog(level) && !this.suppressConsole) {
|
|
18102
18104
|
let consoleOutput = null;
|
|
18103
|
-
if (this.
|
|
18105
|
+
if (this.formatterMode) {
|
|
18104
18106
|
const formatterOptions = {
|
|
18105
18107
|
mode: this.formatterMode,
|
|
18106
18108
|
useColor: this.useChalk
|
|
@@ -19023,7 +19025,7 @@ function reshapeSelector(name, fn) {
|
|
|
19023
19025
|
var reviewConfigSelector, planConfigSelector, decomposeConfigSelector, rectifyConfigSelector, acceptanceConfigSelector, acceptanceFixConfigSelector, acceptanceGenConfigSelector, tddConfigSelector, debateConfigSelector, routingConfigSelector, verifyConfigSelector, rectificationGateConfigSelector, agentConfigSelector, agentManagerConfigSelector, interactionConfigSelector, precheckConfigSelector, qualityConfigSelector, autofixConfigSelector, executionGatesConfigSelector, testPatternConfigSelector, contextConfigSelector, contextToolRuntimeConfigSelector, promptLoaderConfigSelector, llmRoutingConfigSelector;
|
|
19024
19026
|
var init_selectors = __esm(() => {
|
|
19025
19027
|
reviewConfigSelector = pickSelector("review", "review", "debate", "models", "execution", "project", "quality", "agent");
|
|
19026
|
-
planConfigSelector = pickSelector("plan", "plan", "debate");
|
|
19028
|
+
planConfigSelector = pickSelector("plan", "plan", "debate", "agent", "project");
|
|
19027
19029
|
decomposeConfigSelector = pickSelector("decompose", "plan", "agent");
|
|
19028
19030
|
rectifyConfigSelector = pickSelector("rectify", "execution");
|
|
19029
19031
|
acceptanceConfigSelector = pickSelector("acceptance", "acceptance");
|
|
@@ -27572,6 +27574,40 @@ var init_verbatim_fidelity = __esm(() => {
|
|
|
27572
27574
|
HEADING = /^\s*#/;
|
|
27573
27575
|
});
|
|
27574
27576
|
|
|
27577
|
+
// src/prd/spec-drift.ts
|
|
27578
|
+
function leadingTagGroup2(ac) {
|
|
27579
|
+
return ac.match(LEADING_TAG_GROUP2)?.[1] ?? null;
|
|
27580
|
+
}
|
|
27581
|
+
function hasDeprecatedTag(ac) {
|
|
27582
|
+
const tags = leadingTagGroup2(ac);
|
|
27583
|
+
return tags !== null && DEPRECATED_TAG.test(tags);
|
|
27584
|
+
}
|
|
27585
|
+
function hasShellPattern(ac) {
|
|
27586
|
+
return SHELL_PIPE.test(ac) || SHELL_WC.test(ac) || SHELL_GREP_FLAG.test(ac);
|
|
27587
|
+
}
|
|
27588
|
+
function findSpecDriftViolations(prd) {
|
|
27589
|
+
const violations = [];
|
|
27590
|
+
for (const story of prd.userStories ?? []) {
|
|
27591
|
+
for (let i = 0;i < (story.acceptanceCriteria ?? []).length; i++) {
|
|
27592
|
+
const ac = story.acceptanceCriteria[i];
|
|
27593
|
+
if (hasDeprecatedTag(ac)) {
|
|
27594
|
+
violations.push({ storyId: story.id, acIndex: i, ac, reason: "deprecated-tag" });
|
|
27595
|
+
} else if (hasShellPattern(ac)) {
|
|
27596
|
+
violations.push({ storyId: story.id, acIndex: i, ac, reason: "shell-pattern" });
|
|
27597
|
+
}
|
|
27598
|
+
}
|
|
27599
|
+
}
|
|
27600
|
+
return violations;
|
|
27601
|
+
}
|
|
27602
|
+
var LEADING_TAG_GROUP2, DEPRECATED_TAG, SHELL_PIPE, SHELL_WC, SHELL_GREP_FLAG;
|
|
27603
|
+
var init_spec_drift = __esm(() => {
|
|
27604
|
+
LEADING_TAG_GROUP2 = /^\s*(?:[-*]|\d+\.)?\s*((?:\[[a-z][a-z-]*\]\s*)+)/i;
|
|
27605
|
+
DEPRECATED_TAG = /\[(grep|file|verbatim)\]/i;
|
|
27606
|
+
SHELL_PIPE = /`[^`]*\b(grep|find|wc|awk|sed|sort|head|tail|xargs|cut|uniq)\b[^`]*\|[^`]*`/i;
|
|
27607
|
+
SHELL_WC = /`[^`]*\bwc\b[^`]*`/;
|
|
27608
|
+
SHELL_GREP_FLAG = /`[^`]*grep\s+-[a-z]/i;
|
|
27609
|
+
});
|
|
27610
|
+
|
|
27575
27611
|
// src/prd/validate.ts
|
|
27576
27612
|
function validateStoryId(id) {
|
|
27577
27613
|
if (!id || id.length === 0) {
|
|
@@ -27977,6 +28013,7 @@ var PRD_MAX_FILE_SIZE;
|
|
|
27977
28013
|
var init_prd = __esm(() => {
|
|
27978
28014
|
init_json_file();
|
|
27979
28015
|
init_verbatim_fidelity();
|
|
28016
|
+
init_spec_drift();
|
|
27980
28017
|
init_schema2();
|
|
27981
28018
|
PRD_MAX_FILE_SIZE = 5 * 1024 * 1024;
|
|
27982
28019
|
});
|
|
@@ -34103,6 +34140,16 @@ function warnOnDroppedVerbatimAcs(prd, specContent, featureName) {
|
|
|
34103
34140
|
getSafeLogger()?.warn("plan", "[verbatim] spec acceptance criteria dropped from PRD \u2014 run spec-review --prd before executing", { featureName, missingCount: missing.length, missing });
|
|
34104
34141
|
}
|
|
34105
34142
|
}
|
|
34143
|
+
function warnOnSpecDrift(prd, featureName) {
|
|
34144
|
+
const violations = findSpecDriftViolations(prd);
|
|
34145
|
+
if (violations.length > 0) {
|
|
34146
|
+
getSafeLogger()?.warn("plan", "spec-drift violations remain after specGuard repair \u2014 review PRD before executing", {
|
|
34147
|
+
featureName,
|
|
34148
|
+
violationCount: violations.length,
|
|
34149
|
+
violations
|
|
34150
|
+
});
|
|
34151
|
+
}
|
|
34152
|
+
}
|
|
34106
34153
|
var init_verbatim_warn = __esm(() => {
|
|
34107
34154
|
init_logger2();
|
|
34108
34155
|
init_prd();
|
|
@@ -34223,6 +34270,20 @@ async function readMissingVerbatimAcs(input) {
|
|
|
34223
34270
|
return [];
|
|
34224
34271
|
}
|
|
34225
34272
|
}
|
|
34273
|
+
async function readSpecDriftViolations(input) {
|
|
34274
|
+
const content = await _planRefineDeps.readFile(input.outputPath);
|
|
34275
|
+
if (!content)
|
|
34276
|
+
return [];
|
|
34277
|
+
try {
|
|
34278
|
+
const prd = validatePlanOutput(content, input.featureName, input.branchName);
|
|
34279
|
+
return findSpecDriftViolations(prd);
|
|
34280
|
+
} catch {
|
|
34281
|
+
getSafeLogger()?.debug("plan", "Skipped spec-drift check \u2014 draft PRD not yet parseable", {
|
|
34282
|
+
featureName: input.featureName
|
|
34283
|
+
});
|
|
34284
|
+
return [];
|
|
34285
|
+
}
|
|
34286
|
+
}
|
|
34226
34287
|
var _planRefineDeps, NEGATIVE_PATH_TOKENS, planRefineOp;
|
|
34227
34288
|
var init_plan_refine = __esm(() => {
|
|
34228
34289
|
init_retry();
|
|
@@ -34306,8 +34367,9 @@ ${outputFormat}`,
|
|
|
34306
34367
|
},
|
|
34307
34368
|
async hopBody(initialPrompt, ctx) {
|
|
34308
34369
|
const builder = new PlanPromptBuilder;
|
|
34370
|
+
const specGuard = ctx.input.specGuard ?? false;
|
|
34309
34371
|
const turn1 = await ctx.sendWithParseRetry(initialPrompt);
|
|
34310
|
-
const turn2 = await ctx.send(builder.buildRefineContinuation(ctx.input.outputPath));
|
|
34372
|
+
const turn2 = await ctx.send(builder.buildRefineContinuation(ctx.input.outputPath, specGuard));
|
|
34311
34373
|
let totalCost = (turn1.estimatedCostUsd ?? 0) + (turn2.estimatedCostUsd ?? 0);
|
|
34312
34374
|
let last = turn2;
|
|
34313
34375
|
const missing = await readMissingVerbatimAcs(ctx.input);
|
|
@@ -34320,14 +34382,29 @@ ${outputFormat}`,
|
|
|
34320
34382
|
totalCost += turn3.estimatedCostUsd ?? 0;
|
|
34321
34383
|
last = turn3;
|
|
34322
34384
|
}
|
|
34385
|
+
if (specGuard) {
|
|
34386
|
+
const drifted = await readSpecDriftViolations(ctx.input);
|
|
34387
|
+
if (drifted.length > 0) {
|
|
34388
|
+
getSafeLogger()?.info("plan", "specGuard: spec-drift violations found \u2014 issuing one repair turn", {
|
|
34389
|
+
featureName: ctx.input.featureName,
|
|
34390
|
+
violationCount: drifted.length
|
|
34391
|
+
});
|
|
34392
|
+
const turn4 = await ctx.send(builder.buildSpecDriftRepair(drifted, ctx.input.outputPath));
|
|
34393
|
+
totalCost += turn4.estimatedCostUsd ?? 0;
|
|
34394
|
+
last = turn4;
|
|
34395
|
+
}
|
|
34396
|
+
}
|
|
34323
34397
|
return { ...last, estimatedCostUsd: totalCost };
|
|
34324
34398
|
},
|
|
34325
34399
|
parse(output, input) {
|
|
34326
34400
|
return validatePlanOutput(output, input.featureName, input.branchName);
|
|
34327
34401
|
},
|
|
34328
|
-
verify: async (parsed, input,
|
|
34402
|
+
verify: async (parsed, input, ctx) => {
|
|
34329
34403
|
const validated = validateRefinedPrd(parsed);
|
|
34330
34404
|
warnOnDroppedVerbatimAcs(validated, input.specContent, input.featureName);
|
|
34405
|
+
if (ctx.config.plan.specGuard) {
|
|
34406
|
+
warnOnSpecDrift(validated, input.featureName);
|
|
34407
|
+
}
|
|
34331
34408
|
return validated;
|
|
34332
34409
|
},
|
|
34333
34410
|
recover: async (input, ctx) => {
|
|
@@ -35448,7 +35525,7 @@ function parseRefinementResponse(response, criteria) {
|
|
|
35448
35525
|
try {
|
|
35449
35526
|
const fromFence = extractJsonFromMarkdown(response);
|
|
35450
35527
|
const cleaned = stripTrailingCommas(fromFence !== response ? fromFence : response);
|
|
35451
|
-
const parsed = JSON.parse(cleaned);
|
|
35528
|
+
const parsed = recoverJsonArray(cleaned) ?? JSON.parse(cleaned);
|
|
35452
35529
|
if (!Array.isArray(parsed)) {
|
|
35453
35530
|
return fallbackCriteria(criteria);
|
|
35454
35531
|
}
|
|
@@ -35468,11 +35545,33 @@ function refinementWouldFallback(response) {
|
|
|
35468
35545
|
try {
|
|
35469
35546
|
const fromFence = extractJsonFromMarkdown(response);
|
|
35470
35547
|
const cleaned = stripTrailingCommas(fromFence !== response ? fromFence : response);
|
|
35471
|
-
|
|
35548
|
+
const parsed = recoverJsonArray(cleaned) ?? JSON.parse(cleaned);
|
|
35549
|
+
return !Array.isArray(parsed);
|
|
35472
35550
|
} catch {
|
|
35473
35551
|
return true;
|
|
35474
35552
|
}
|
|
35475
35553
|
}
|
|
35554
|
+
function recoverJsonArray(text) {
|
|
35555
|
+
const trimmed = text.trim();
|
|
35556
|
+
if (!trimmed.startsWith("[") || trimmed.endsWith("]"))
|
|
35557
|
+
return null;
|
|
35558
|
+
try {
|
|
35559
|
+
const closed = stripTrailingCommas(`${trimmed}]`);
|
|
35560
|
+
const parsed = JSON.parse(closed);
|
|
35561
|
+
if (Array.isArray(parsed))
|
|
35562
|
+
return parsed;
|
|
35563
|
+
} catch {}
|
|
35564
|
+
const lastBrace = trimmed.lastIndexOf("}");
|
|
35565
|
+
if (lastBrace === -1)
|
|
35566
|
+
return null;
|
|
35567
|
+
try {
|
|
35568
|
+
const recovered = `${stripTrailingCommas(trimmed.slice(0, lastBrace + 1))}]`;
|
|
35569
|
+
const parsed = JSON.parse(recovered);
|
|
35570
|
+
if (Array.isArray(parsed))
|
|
35571
|
+
return parsed;
|
|
35572
|
+
} catch {}
|
|
35573
|
+
return null;
|
|
35574
|
+
}
|
|
35476
35575
|
function fallbackCriteria(criteria, storyId = "") {
|
|
35477
35576
|
return criteria.map((c) => ({
|
|
35478
35577
|
original: c,
|
|
@@ -42075,7 +42174,13 @@ Please re-write the complete PRD JSON, ensuring every factual claim is cited wit
|
|
|
42075
42174
|
|
|
42076
42175
|
Output ONLY the JSON object. Do not include markdown fences or explanation.`;
|
|
42077
42176
|
}
|
|
42078
|
-
buildRefineContinuation(outputFilePath) {
|
|
42177
|
+
buildRefineContinuation(outputFilePath, specGuard = false) {
|
|
42178
|
+
const specGuardItems = specGuard ? `
|
|
42179
|
+
#### orphan-acs
|
|
42180
|
+
Every acceptance criterion in the PRD must trace back to a requirement stated in the spec. An AC that introduces scope the spec never mentions \u2014 new enum values, new status codes, new config keys, extra validation rules, invented helper behaviour \u2014 is scope bleed from candidate-PRD merging. Delete it, or reduce it to exactly what the spec says.
|
|
42181
|
+
|
|
42182
|
+
#### no-behavior-degradation
|
|
42183
|
+
No acceptance criterion may use a deprecated verification tag (\`[grep]\`, \`[file]\`, \`[verbatim]\`) or contain a shell-command pattern (\`grep -\`, \`wc\`, \`|\` inside a backtick span). These signal a file-content check that the agent cannot implement as a runtime test. Rewrite any such AC as a behavioural assertion: what the function returns, throws, or emits \u2014 not what the source file contains.` : "";
|
|
42079
42184
|
return `You are in the second turn of a refine pass. Assume this draft has flaws, and audit it adversarially before you trust it.
|
|
42080
42185
|
|
|
42081
42186
|
Review the draft with a strict self-audit mindset. Re-read the codebase context and compare the PRD against it. Focus only on the issues below, then rewrite the PRD if needed.
|
|
@@ -42110,9 +42215,27 @@ Re-check routing.complexity and routing.testStrategy against the current codebas
|
|
|
42110
42215
|
If a story changes existing behavior, extracts a shared helper, extends an existing function signature, or replaces a warning/stub path with real behavior, ensure there is at least one acceptance criterion protecting backward compatibility or proving the old placeholder behavior is gone.
|
|
42111
42216
|
|
|
42112
42217
|
#### scope-consistency
|
|
42113
|
-
Check each story's title, description, scope, contextFiles, and acceptance criteria for internal consistency. If the story says a file or command is in scope anywhere else, do not list it as out of scope. If the title or acceptance criteria clearly include CLI, output, tests, or helper extraction work, the Scope section must reflect that accurately
|
|
42218
|
+
Check each story's title, description, scope, contextFiles, and acceptance criteria for internal consistency. If the story says a file or command is in scope anywhere else, do not list it as out of scope. If the title or acceptance criteria clearly include CLI, output, tests, or helper extraction work, the Scope section must reflect that accurately.${specGuardItems}
|
|
42114
42219
|
|
|
42115
42220
|
Write the revised PRD to this file path: ${outputFilePath}
|
|
42221
|
+
Do not output the PRD in chat. After writing the file, reply with a brief text confirmation only.`;
|
|
42222
|
+
}
|
|
42223
|
+
buildSpecDriftRepair(violations, outputFilePath) {
|
|
42224
|
+
const list = violations.map((v) => `- ${v.storyId} AC[${v.acIndex}] (${v.reason}): ${v.ac}`).join(`
|
|
42225
|
+
`);
|
|
42226
|
+
return `Your PRD contains acceptance criteria that cannot be implemented as runtime tests \u2014 they use deprecated verification tags or shell-command patterns that describe file-content checks rather than observable behaviour. These must be rewritten.
|
|
42227
|
+
|
|
42228
|
+
Flagged acceptance criteria:
|
|
42229
|
+
|
|
42230
|
+
${list}
|
|
42231
|
+
|
|
42232
|
+
For each one:
|
|
42233
|
+
- Replace the AC with a behavioural assertion: what the function, method, or CLI command returns, throws, logs, or emits \u2014 not what the source file contains.
|
|
42234
|
+
- Remove any deprecated tags (\`[grep]\`, \`[file]\`, \`[verbatim]\`) from the leading tag group. Replace with \`[unit]\`, \`[integration]\`, or \`[cli]\` as appropriate.
|
|
42235
|
+
- Remove any shell-command patterns (\`grep -\`, \`wc\`, pipe \`|\` inside backticks). Express the same invariant as an assertion on the runtime value.
|
|
42236
|
+
- Do not remove or weaken acceptance criteria that are already correct.
|
|
42237
|
+
|
|
42238
|
+
Write the corrected PRD to this file path: ${outputFilePath}
|
|
42116
42239
|
Do not output the PRD in chat. After writing the file, reply with a brief text confirmation only.`;
|
|
42117
42240
|
}
|
|
42118
42241
|
buildVerbatimRepair(missingAcs, outputFilePath) {
|
|
@@ -45522,7 +45645,7 @@ function createRuntime(config2, workdir, opts) {
|
|
|
45522
45645
|
}
|
|
45523
45646
|
const configLoader = createConfigLoader(config2);
|
|
45524
45647
|
const dispatchEvents = new DispatchEventBus;
|
|
45525
|
-
const agentStreamEvents = new AgentStreamEventBus;
|
|
45648
|
+
const agentStreamEvents = opts?.agentStreamEvents ?? new AgentStreamEventBus;
|
|
45526
45649
|
const projectKey = config2.name?.trim() || basename5(workdir);
|
|
45527
45650
|
const outputDir = projectOutputDir(projectKey, config2.outputDir);
|
|
45528
45651
|
const globalDir = globalOutputDir();
|
|
@@ -51068,7 +51191,7 @@ async function collectStoryMetrics(ctx, storyStartTime) {
|
|
|
51068
51191
|
attempts,
|
|
51069
51192
|
finalTier,
|
|
51070
51193
|
success: agentResult?.success || false,
|
|
51071
|
-
cost:
|
|
51194
|
+
cost: ctx.runtime.costAggregator.byStory()[story.id]?.totalCostUsd ?? 0,
|
|
51072
51195
|
durationMs: agentResult?.durationMs || 0,
|
|
51073
51196
|
firstPassSuccess,
|
|
51074
51197
|
startedAt: storyStartTime,
|
|
@@ -51089,9 +51212,9 @@ function collectBatchMetrics(ctx, storyStartTime) {
|
|
|
51089
51212
|
const stories = ctx.stories;
|
|
51090
51213
|
const routing = ctx.routing;
|
|
51091
51214
|
const agentResult = ctx.agentResult;
|
|
51092
|
-
const
|
|
51215
|
+
const batchTotal = ctx.runtime.costAggregator.byStory()[ctx.story.id]?.totalCostUsd ?? 0;
|
|
51093
51216
|
const totalDuration = agentResult?.durationMs || 0;
|
|
51094
|
-
const costPerStory =
|
|
51217
|
+
const costPerStory = batchTotal / stories.length;
|
|
51095
51218
|
const durationPerStory = totalDuration / stories.length;
|
|
51096
51219
|
const batchAgentUsed = routing.agent ?? ctx.agentManager?.getDefault() ?? resolveDefaultAgent(ctx.config);
|
|
51097
51220
|
let modelUsed = routing.modelTier;
|
|
@@ -52680,7 +52803,7 @@ var init_completion = __esm(() => {
|
|
|
52680
52803
|
async execute(ctx) {
|
|
52681
52804
|
const logger = getLogger();
|
|
52682
52805
|
const isBatch = ctx.stories.length > 1;
|
|
52683
|
-
const sessionCost = ctx.
|
|
52806
|
+
const sessionCost = ctx.runtime.costAggregator.byStory()[ctx.story.id]?.totalCostUsd ?? 0;
|
|
52684
52807
|
const persistPrd = ctx.skipPrdPersistence !== true;
|
|
52685
52808
|
const prdPath = ctx.prdPath ?? (ctx.featureDir ? `${ctx.featureDir}/prd.json` : `${ctx.workdir}/nax/features/unknown/prd.json`);
|
|
52686
52809
|
const storyStartTime = ctx.storyStartTime || new Date().toISOString();
|
|
@@ -58436,7 +58559,7 @@ var package_default;
|
|
|
58436
58559
|
var init_package = __esm(() => {
|
|
58437
58560
|
package_default = {
|
|
58438
58561
|
name: "@nathapp/nax",
|
|
58439
|
-
version: "0.68.
|
|
58562
|
+
version: "0.68.7",
|
|
58440
58563
|
description: "AI Coding Agent Orchestrator \u2014 loops until done",
|
|
58441
58564
|
type: "module",
|
|
58442
58565
|
bin: {
|
|
@@ -58531,8 +58654,8 @@ var init_version = __esm(() => {
|
|
|
58531
58654
|
NAX_VERSION = package_default.version;
|
|
58532
58655
|
NAX_COMMIT = (() => {
|
|
58533
58656
|
try {
|
|
58534
|
-
if (/^[0-9a-f]{6,10}$/.test("
|
|
58535
|
-
return "
|
|
58657
|
+
if (/^[0-9a-f]{6,10}$/.test("0ba99b3b"))
|
|
58658
|
+
return "0ba99b3b";
|
|
58536
58659
|
} catch {}
|
|
58537
58660
|
try {
|
|
58538
58661
|
const result = Bun.spawnSync(["git", "rev-parse", "--short", "HEAD"], {
|
|
@@ -59802,7 +59925,6 @@ async function handleRunCompletion(options) {
|
|
|
59802
59925
|
startedAt,
|
|
59803
59926
|
prd,
|
|
59804
59927
|
allStoryMetrics,
|
|
59805
|
-
totalCost,
|
|
59806
59928
|
storiesCompleted,
|
|
59807
59929
|
iterations,
|
|
59808
59930
|
startTime,
|
|
@@ -59910,15 +60032,7 @@ async function handleRunCompletion(options) {
|
|
|
59910
60032
|
});
|
|
59911
60033
|
}
|
|
59912
60034
|
const aggSnap = options.runtime.costAggregator.snapshot();
|
|
59913
|
-
const
|
|
59914
|
-
const reportedTotal = Math.max(totalCost, aggregatorTotal);
|
|
59915
|
-
if (aggregatorTotal > totalCost + 0.01) {
|
|
59916
|
-
logger?.debug("run.complete", "Cost aggregator total exceeds accumulated totalCost", {
|
|
59917
|
-
totalCost,
|
|
59918
|
-
aggregatorTotal,
|
|
59919
|
-
gap: aggregatorTotal - totalCost
|
|
59920
|
-
});
|
|
59921
|
-
}
|
|
60035
|
+
const reportedTotal = aggSnap.totalCostUsd;
|
|
59922
60036
|
const aggByStage = options.runtime.costAggregator.byStage();
|
|
59923
60037
|
const aggByStory = options.runtime.costAggregator.byStory();
|
|
59924
60038
|
{
|
|
@@ -60066,11 +60180,11 @@ async function handleRunCompletion(options) {
|
|
|
60066
60180
|
}
|
|
60067
60181
|
var _runCompletionDeps;
|
|
60068
60182
|
var init_run_completion = __esm(() => {
|
|
60183
|
+
init_pipeline();
|
|
60069
60184
|
init_agents();
|
|
60070
60185
|
init_runner5();
|
|
60071
60186
|
init_logger2();
|
|
60072
60187
|
init_metrics();
|
|
60073
|
-
init_event_bus();
|
|
60074
60188
|
init_prd();
|
|
60075
60189
|
init_detector();
|
|
60076
60190
|
init_scratch_purge();
|
|
@@ -60272,7 +60386,7 @@ function wireHooks(bus, hooks, workdir, feature) {
|
|
|
60272
60386
|
return safe("on-story-complete", () => fireHook(hooks, "on-story-complete", hookCtx(feature, { storyId: ev.storyId, status: "passed", cost: ev.cost }), workdir));
|
|
60273
60387
|
}));
|
|
60274
60388
|
unsubs.push(bus.on("story:failed", (ev) => {
|
|
60275
|
-
return safe("on-story-fail", () => fireHook(hooks, "on-story-fail", hookCtx(feature, { storyId: ev.storyId, status: "failed", reason: ev.reason }), workdir));
|
|
60389
|
+
return safe("on-story-fail", () => fireHook(hooks, "on-story-fail", hookCtx(feature, { storyId: ev.storyId, status: "failed", reason: ev.reason, cost: ev.cost }), workdir));
|
|
60276
60390
|
}));
|
|
60277
60391
|
unsubs.push(bus.on("story:paused", (ev) => {
|
|
60278
60392
|
return safe("on-pause (story)", () => fireHook(hooks, "on-pause", hookCtx(feature, { storyId: ev.storyId, reason: ev.reason, cost: ev.cost }), workdir));
|
|
@@ -60939,8 +61053,8 @@ async function handleDryRun(ctx) {
|
|
|
60939
61053
|
return { storiesCompletedDelta: ctx.storiesToExecute.length, prdDirty: true };
|
|
60940
61054
|
}
|
|
60941
61055
|
var init_dry_run = __esm(() => {
|
|
61056
|
+
init_pipeline();
|
|
60942
61057
|
init_logger2();
|
|
60943
|
-
init_event_bus();
|
|
60944
61058
|
init_prd();
|
|
60945
61059
|
});
|
|
60946
61060
|
|
|
@@ -61267,7 +61381,7 @@ async function handleNoTierAvailable(ctx, failureCategory) {
|
|
|
61267
61381
|
type: "story:paused",
|
|
61268
61382
|
storyId: ctx.story.id,
|
|
61269
61383
|
reason: `Execution stopped (${failureCategory ?? "unknown"} requires human review)`,
|
|
61270
|
-
cost: ctx.totalCost
|
|
61384
|
+
cost: ctx.runtime?.costAggregator.byStory()[ctx.story.id]?.totalCostUsd ?? ctx.totalCost
|
|
61271
61385
|
});
|
|
61272
61386
|
return { outcome: "paused", prdDirty: true, prd: pausedPrd };
|
|
61273
61387
|
}
|
|
@@ -61285,7 +61399,8 @@ async function handleNoTierAvailable(ctx, failureCategory) {
|
|
|
61285
61399
|
storyId: ctx.story.id,
|
|
61286
61400
|
story: { id: ctx.story.id, title: ctx.story.title, status: ctx.story.status, attempts: ctx.story.attempts },
|
|
61287
61401
|
reason: "Execution failed",
|
|
61288
|
-
countsTowardEscalation: true
|
|
61402
|
+
countsTowardEscalation: true,
|
|
61403
|
+
cost: ctx.runtime?.costAggregator.byStory()[ctx.story.id]?.totalCostUsd ?? ctx.totalCost
|
|
61289
61404
|
});
|
|
61290
61405
|
return { outcome: "failed", prdDirty: true, prd: failedPrd };
|
|
61291
61406
|
}
|
|
@@ -61307,7 +61422,7 @@ async function handleMaxAttemptsReached(ctx, failureCategory) {
|
|
|
61307
61422
|
type: "story:paused",
|
|
61308
61423
|
storyId: ctx.story.id,
|
|
61309
61424
|
reason: `Max attempts reached (${failureCategory ?? "unknown"} requires human review)`,
|
|
61310
|
-
cost: ctx.totalCost
|
|
61425
|
+
cost: ctx.runtime?.costAggregator.byStory()[ctx.story.id]?.totalCostUsd ?? ctx.totalCost
|
|
61311
61426
|
});
|
|
61312
61427
|
return { outcome: "paused", prdDirty: true, prd: pausedPrd };
|
|
61313
61428
|
}
|
|
@@ -61326,13 +61441,14 @@ async function handleMaxAttemptsReached(ctx, failureCategory) {
|
|
|
61326
61441
|
storyId: ctx.story.id,
|
|
61327
61442
|
story: { id: ctx.story.id, title: ctx.story.title, status: ctx.story.status, attempts: ctx.story.attempts },
|
|
61328
61443
|
reason: "Max attempts reached",
|
|
61329
|
-
countsTowardEscalation: true
|
|
61444
|
+
countsTowardEscalation: true,
|
|
61445
|
+
cost: ctx.runtime?.costAggregator.byStory()[ctx.story.id]?.totalCostUsd ?? ctx.totalCost
|
|
61330
61446
|
});
|
|
61331
61447
|
return { outcome: "failed", prdDirty: true, prd: failedPrd };
|
|
61332
61448
|
}
|
|
61333
61449
|
var init_tier_outcome = __esm(() => {
|
|
61450
|
+
init_pipeline();
|
|
61334
61451
|
init_logger2();
|
|
61335
|
-
init_event_bus();
|
|
61336
61452
|
init_prd();
|
|
61337
61453
|
init_progress();
|
|
61338
61454
|
init_tier_escalation();
|
|
@@ -61489,9 +61605,9 @@ async function handleTierEscalation(ctx) {
|
|
|
61489
61605
|
}
|
|
61490
61606
|
var _tierEscalationDeps;
|
|
61491
61607
|
var init_tier_escalation = __esm(() => {
|
|
61608
|
+
init_pipeline();
|
|
61492
61609
|
init_hooks();
|
|
61493
61610
|
init_logger2();
|
|
61494
|
-
init_event_bus();
|
|
61495
61611
|
init_prd();
|
|
61496
61612
|
init_routing();
|
|
61497
61613
|
init_llm();
|
|
@@ -61735,7 +61851,7 @@ async function handlePipelineFailure(ctx, pipelineResult) {
|
|
|
61735
61851
|
type: "story:paused",
|
|
61736
61852
|
storyId: ctx.story.id,
|
|
61737
61853
|
reason: pipelineResult.reason || "Pipeline paused",
|
|
61738
|
-
cost: ctx.totalCost
|
|
61854
|
+
cost: ctx.runtime.costAggregator.byStory()[ctx.story.id]?.totalCostUsd ?? ctx.totalCost
|
|
61739
61855
|
});
|
|
61740
61856
|
break;
|
|
61741
61857
|
case "skip":
|
|
@@ -61769,7 +61885,8 @@ async function handlePipelineFailure(ctx, pipelineResult) {
|
|
|
61769
61885
|
reason: pipelineResult.reason || "Pipeline failed",
|
|
61770
61886
|
countsTowardEscalation: true,
|
|
61771
61887
|
feature: ctx.feature,
|
|
61772
|
-
attempts: ctx.story.attempts
|
|
61888
|
+
attempts: ctx.story.attempts,
|
|
61889
|
+
cost: ctx.runtime.costAggregator.byStory()[ctx.story.id]?.totalCostUsd ?? ctx.totalCost
|
|
61773
61890
|
});
|
|
61774
61891
|
if (ctx.story.attempts !== undefined && ctx.story.attempts >= ctx.config.execution.rectification.maxAttemptsTotal) {
|
|
61775
61892
|
await pipelineEventBus.emitAsync({
|
|
@@ -61808,8 +61925,8 @@ async function handlePipelineFailure(ctx, pipelineResult) {
|
|
|
61808
61925
|
}
|
|
61809
61926
|
var _resultHandlerDeps;
|
|
61810
61927
|
var init_pipeline_result_handler = __esm(() => {
|
|
61928
|
+
init_pipeline();
|
|
61811
61929
|
init_logger2();
|
|
61812
|
-
init_event_bus();
|
|
61813
61930
|
init_prd();
|
|
61814
61931
|
init_bun_deps();
|
|
61815
61932
|
init_git();
|
|
@@ -62471,12 +62588,15 @@ async function executeUnified(ctx, initialPrd) {
|
|
|
62471
62588
|
ctx.naxIgnoreIndex = nextIndex;
|
|
62472
62589
|
return nextIndex;
|
|
62473
62590
|
};
|
|
62474
|
-
|
|
62475
|
-
|
|
62476
|
-
|
|
62477
|
-
|
|
62478
|
-
|
|
62479
|
-
|
|
62591
|
+
for (const fn of _prevRunUnsubscribers)
|
|
62592
|
+
fn();
|
|
62593
|
+
_prevRunUnsubscribers = [
|
|
62594
|
+
wireHooks(pipelineEventBus, ctx.hooks, ctx.workdir, ctx.feature),
|
|
62595
|
+
wireReporters(pipelineEventBus, ctx.pluginRegistry, ctx.runId, ctx.startTime),
|
|
62596
|
+
wireInteraction(pipelineEventBus, ctx.interactionChain, ctx.config),
|
|
62597
|
+
wireEventsWriter(pipelineEventBus, ctx.feature, ctx.runId, ctx.workdir),
|
|
62598
|
+
wireRegistry(pipelineEventBus, ctx.feature, ctx.runId, ctx.workdir, ctx.runtime.outputDir)
|
|
62599
|
+
];
|
|
62480
62600
|
pipelineEventBus.emit({
|
|
62481
62601
|
type: "run:started",
|
|
62482
62602
|
feature: ctx.feature,
|
|
@@ -62911,12 +63031,12 @@ function reconcileBatchOutcome(prd, batchResult) {
|
|
|
62911
63031
|
}
|
|
62912
63032
|
}
|
|
62913
63033
|
}
|
|
62914
|
-
var TERMINAL_ACTIONS, _unifiedExecutorDeps;
|
|
63034
|
+
var TERMINAL_ACTIONS, _prevRunUnsubscribers, _unifiedExecutorDeps;
|
|
62915
63035
|
var init_unified_executor = __esm(() => {
|
|
63036
|
+
init_pipeline();
|
|
62916
63037
|
init_agents();
|
|
62917
63038
|
init_triggers();
|
|
62918
63039
|
init_logger2();
|
|
62919
|
-
init_event_bus();
|
|
62920
63040
|
init_runner4();
|
|
62921
63041
|
init_stages();
|
|
62922
63042
|
init_events_writer();
|
|
@@ -62933,6 +63053,7 @@ var init_unified_executor = __esm(() => {
|
|
|
62933
63053
|
init_pipeline_result_handler();
|
|
62934
63054
|
init_story_selector();
|
|
62935
63055
|
TERMINAL_ACTIONS = new Set(["fail", "skip", "pause"]);
|
|
63056
|
+
_prevRunUnsubscribers = [];
|
|
62936
63057
|
_unifiedExecutorDeps = {
|
|
62937
63058
|
runParallelBatch: async (opts) => {
|
|
62938
63059
|
const { runParallelBatch: runParallelBatch2 } = await Promise.resolve().then(() => (init_parallel_batch(), exports_parallel_batch));
|
|
@@ -63837,7 +63958,8 @@ async function setupRun(options) {
|
|
|
63837
63958
|
parentSignal: shutdownController.signal,
|
|
63838
63959
|
sessionManager,
|
|
63839
63960
|
agentManager: options.agentManager,
|
|
63840
|
-
featureName: options.feature
|
|
63961
|
+
featureName: options.feature,
|
|
63962
|
+
agentStreamEvents: options.agentStreamEvents
|
|
63841
63963
|
});
|
|
63842
63964
|
await runtime.pidRegistry.cleanupStale();
|
|
63843
63965
|
const cleanupCrashHandlers = installCrashHandlers({
|
|
@@ -64004,11 +64126,11 @@ async function setupRun(options) {
|
|
|
64004
64126
|
}
|
|
64005
64127
|
var _runSetupDeps;
|
|
64006
64128
|
var init_run_setup = __esm(() => {
|
|
64129
|
+
init_pipeline();
|
|
64007
64130
|
init_paths();
|
|
64008
64131
|
init_errors();
|
|
64009
64132
|
init_interaction();
|
|
64010
64133
|
init_logger2();
|
|
64011
|
-
init_event_bus();
|
|
64012
64134
|
init_loader4();
|
|
64013
64135
|
init_prd();
|
|
64014
64136
|
init_project();
|
|
@@ -93355,1646 +93477,6 @@ var require_jsx_dev_runtime = __commonJS((exports, module) => {
|
|
|
93355
93477
|
}
|
|
93356
93478
|
});
|
|
93357
93479
|
|
|
93358
|
-
// node_modules/cli-spinners/spinners.json
|
|
93359
|
-
var require_spinners = __commonJS((exports, module) => {
|
|
93360
|
-
module.exports = {
|
|
93361
|
-
dots: {
|
|
93362
|
-
interval: 80,
|
|
93363
|
-
frames: [
|
|
93364
|
-
"\u280B",
|
|
93365
|
-
"\u2819",
|
|
93366
|
-
"\u2839",
|
|
93367
|
-
"\u2838",
|
|
93368
|
-
"\u283C",
|
|
93369
|
-
"\u2834",
|
|
93370
|
-
"\u2826",
|
|
93371
|
-
"\u2827",
|
|
93372
|
-
"\u2807",
|
|
93373
|
-
"\u280F"
|
|
93374
|
-
]
|
|
93375
|
-
},
|
|
93376
|
-
dots2: {
|
|
93377
|
-
interval: 80,
|
|
93378
|
-
frames: [
|
|
93379
|
-
"\u28FE",
|
|
93380
|
-
"\u28FD",
|
|
93381
|
-
"\u28FB",
|
|
93382
|
-
"\u28BF",
|
|
93383
|
-
"\u287F",
|
|
93384
|
-
"\u28DF",
|
|
93385
|
-
"\u28EF",
|
|
93386
|
-
"\u28F7"
|
|
93387
|
-
]
|
|
93388
|
-
},
|
|
93389
|
-
dots3: {
|
|
93390
|
-
interval: 80,
|
|
93391
|
-
frames: [
|
|
93392
|
-
"\u280B",
|
|
93393
|
-
"\u2819",
|
|
93394
|
-
"\u281A",
|
|
93395
|
-
"\u281E",
|
|
93396
|
-
"\u2816",
|
|
93397
|
-
"\u2826",
|
|
93398
|
-
"\u2834",
|
|
93399
|
-
"\u2832",
|
|
93400
|
-
"\u2833",
|
|
93401
|
-
"\u2813"
|
|
93402
|
-
]
|
|
93403
|
-
},
|
|
93404
|
-
dots4: {
|
|
93405
|
-
interval: 80,
|
|
93406
|
-
frames: [
|
|
93407
|
-
"\u2804",
|
|
93408
|
-
"\u2806",
|
|
93409
|
-
"\u2807",
|
|
93410
|
-
"\u280B",
|
|
93411
|
-
"\u2819",
|
|
93412
|
-
"\u2838",
|
|
93413
|
-
"\u2830",
|
|
93414
|
-
"\u2820",
|
|
93415
|
-
"\u2830",
|
|
93416
|
-
"\u2838",
|
|
93417
|
-
"\u2819",
|
|
93418
|
-
"\u280B",
|
|
93419
|
-
"\u2807",
|
|
93420
|
-
"\u2806"
|
|
93421
|
-
]
|
|
93422
|
-
},
|
|
93423
|
-
dots5: {
|
|
93424
|
-
interval: 80,
|
|
93425
|
-
frames: [
|
|
93426
|
-
"\u280B",
|
|
93427
|
-
"\u2819",
|
|
93428
|
-
"\u281A",
|
|
93429
|
-
"\u2812",
|
|
93430
|
-
"\u2802",
|
|
93431
|
-
"\u2802",
|
|
93432
|
-
"\u2812",
|
|
93433
|
-
"\u2832",
|
|
93434
|
-
"\u2834",
|
|
93435
|
-
"\u2826",
|
|
93436
|
-
"\u2816",
|
|
93437
|
-
"\u2812",
|
|
93438
|
-
"\u2810",
|
|
93439
|
-
"\u2810",
|
|
93440
|
-
"\u2812",
|
|
93441
|
-
"\u2813",
|
|
93442
|
-
"\u280B"
|
|
93443
|
-
]
|
|
93444
|
-
},
|
|
93445
|
-
dots6: {
|
|
93446
|
-
interval: 80,
|
|
93447
|
-
frames: [
|
|
93448
|
-
"\u2801",
|
|
93449
|
-
"\u2809",
|
|
93450
|
-
"\u2819",
|
|
93451
|
-
"\u281A",
|
|
93452
|
-
"\u2812",
|
|
93453
|
-
"\u2802",
|
|
93454
|
-
"\u2802",
|
|
93455
|
-
"\u2812",
|
|
93456
|
-
"\u2832",
|
|
93457
|
-
"\u2834",
|
|
93458
|
-
"\u2824",
|
|
93459
|
-
"\u2804",
|
|
93460
|
-
"\u2804",
|
|
93461
|
-
"\u2824",
|
|
93462
|
-
"\u2834",
|
|
93463
|
-
"\u2832",
|
|
93464
|
-
"\u2812",
|
|
93465
|
-
"\u2802",
|
|
93466
|
-
"\u2802",
|
|
93467
|
-
"\u2812",
|
|
93468
|
-
"\u281A",
|
|
93469
|
-
"\u2819",
|
|
93470
|
-
"\u2809",
|
|
93471
|
-
"\u2801"
|
|
93472
|
-
]
|
|
93473
|
-
},
|
|
93474
|
-
dots7: {
|
|
93475
|
-
interval: 80,
|
|
93476
|
-
frames: [
|
|
93477
|
-
"\u2808",
|
|
93478
|
-
"\u2809",
|
|
93479
|
-
"\u280B",
|
|
93480
|
-
"\u2813",
|
|
93481
|
-
"\u2812",
|
|
93482
|
-
"\u2810",
|
|
93483
|
-
"\u2810",
|
|
93484
|
-
"\u2812",
|
|
93485
|
-
"\u2816",
|
|
93486
|
-
"\u2826",
|
|
93487
|
-
"\u2824",
|
|
93488
|
-
"\u2820",
|
|
93489
|
-
"\u2820",
|
|
93490
|
-
"\u2824",
|
|
93491
|
-
"\u2826",
|
|
93492
|
-
"\u2816",
|
|
93493
|
-
"\u2812",
|
|
93494
|
-
"\u2810",
|
|
93495
|
-
"\u2810",
|
|
93496
|
-
"\u2812",
|
|
93497
|
-
"\u2813",
|
|
93498
|
-
"\u280B",
|
|
93499
|
-
"\u2809",
|
|
93500
|
-
"\u2808"
|
|
93501
|
-
]
|
|
93502
|
-
},
|
|
93503
|
-
dots8: {
|
|
93504
|
-
interval: 80,
|
|
93505
|
-
frames: [
|
|
93506
|
-
"\u2801",
|
|
93507
|
-
"\u2801",
|
|
93508
|
-
"\u2809",
|
|
93509
|
-
"\u2819",
|
|
93510
|
-
"\u281A",
|
|
93511
|
-
"\u2812",
|
|
93512
|
-
"\u2802",
|
|
93513
|
-
"\u2802",
|
|
93514
|
-
"\u2812",
|
|
93515
|
-
"\u2832",
|
|
93516
|
-
"\u2834",
|
|
93517
|
-
"\u2824",
|
|
93518
|
-
"\u2804",
|
|
93519
|
-
"\u2804",
|
|
93520
|
-
"\u2824",
|
|
93521
|
-
"\u2820",
|
|
93522
|
-
"\u2820",
|
|
93523
|
-
"\u2824",
|
|
93524
|
-
"\u2826",
|
|
93525
|
-
"\u2816",
|
|
93526
|
-
"\u2812",
|
|
93527
|
-
"\u2810",
|
|
93528
|
-
"\u2810",
|
|
93529
|
-
"\u2812",
|
|
93530
|
-
"\u2813",
|
|
93531
|
-
"\u280B",
|
|
93532
|
-
"\u2809",
|
|
93533
|
-
"\u2808",
|
|
93534
|
-
"\u2808"
|
|
93535
|
-
]
|
|
93536
|
-
},
|
|
93537
|
-
dots9: {
|
|
93538
|
-
interval: 80,
|
|
93539
|
-
frames: [
|
|
93540
|
-
"\u28B9",
|
|
93541
|
-
"\u28BA",
|
|
93542
|
-
"\u28BC",
|
|
93543
|
-
"\u28F8",
|
|
93544
|
-
"\u28C7",
|
|
93545
|
-
"\u2867",
|
|
93546
|
-
"\u2857",
|
|
93547
|
-
"\u284F"
|
|
93548
|
-
]
|
|
93549
|
-
},
|
|
93550
|
-
dots10: {
|
|
93551
|
-
interval: 80,
|
|
93552
|
-
frames: [
|
|
93553
|
-
"\u2884",
|
|
93554
|
-
"\u2882",
|
|
93555
|
-
"\u2881",
|
|
93556
|
-
"\u2841",
|
|
93557
|
-
"\u2848",
|
|
93558
|
-
"\u2850",
|
|
93559
|
-
"\u2860"
|
|
93560
|
-
]
|
|
93561
|
-
},
|
|
93562
|
-
dots11: {
|
|
93563
|
-
interval: 100,
|
|
93564
|
-
frames: [
|
|
93565
|
-
"\u2801",
|
|
93566
|
-
"\u2802",
|
|
93567
|
-
"\u2804",
|
|
93568
|
-
"\u2840",
|
|
93569
|
-
"\u2880",
|
|
93570
|
-
"\u2820",
|
|
93571
|
-
"\u2810",
|
|
93572
|
-
"\u2808"
|
|
93573
|
-
]
|
|
93574
|
-
},
|
|
93575
|
-
dots12: {
|
|
93576
|
-
interval: 80,
|
|
93577
|
-
frames: [
|
|
93578
|
-
"\u2880\u2800",
|
|
93579
|
-
"\u2840\u2800",
|
|
93580
|
-
"\u2804\u2800",
|
|
93581
|
-
"\u2882\u2800",
|
|
93582
|
-
"\u2842\u2800",
|
|
93583
|
-
"\u2805\u2800",
|
|
93584
|
-
"\u2883\u2800",
|
|
93585
|
-
"\u2843\u2800",
|
|
93586
|
-
"\u280D\u2800",
|
|
93587
|
-
"\u288B\u2800",
|
|
93588
|
-
"\u284B\u2800",
|
|
93589
|
-
"\u280D\u2801",
|
|
93590
|
-
"\u288B\u2801",
|
|
93591
|
-
"\u284B\u2801",
|
|
93592
|
-
"\u280D\u2809",
|
|
93593
|
-
"\u280B\u2809",
|
|
93594
|
-
"\u280B\u2809",
|
|
93595
|
-
"\u2809\u2819",
|
|
93596
|
-
"\u2809\u2819",
|
|
93597
|
-
"\u2809\u2829",
|
|
93598
|
-
"\u2808\u2899",
|
|
93599
|
-
"\u2808\u2859",
|
|
93600
|
-
"\u2888\u2829",
|
|
93601
|
-
"\u2840\u2899",
|
|
93602
|
-
"\u2804\u2859",
|
|
93603
|
-
"\u2882\u2829",
|
|
93604
|
-
"\u2842\u2898",
|
|
93605
|
-
"\u2805\u2858",
|
|
93606
|
-
"\u2883\u2828",
|
|
93607
|
-
"\u2843\u2890",
|
|
93608
|
-
"\u280D\u2850",
|
|
93609
|
-
"\u288B\u2820",
|
|
93610
|
-
"\u284B\u2880",
|
|
93611
|
-
"\u280D\u2841",
|
|
93612
|
-
"\u288B\u2801",
|
|
93613
|
-
"\u284B\u2801",
|
|
93614
|
-
"\u280D\u2809",
|
|
93615
|
-
"\u280B\u2809",
|
|
93616
|
-
"\u280B\u2809",
|
|
93617
|
-
"\u2809\u2819",
|
|
93618
|
-
"\u2809\u2819",
|
|
93619
|
-
"\u2809\u2829",
|
|
93620
|
-
"\u2808\u2899",
|
|
93621
|
-
"\u2808\u2859",
|
|
93622
|
-
"\u2808\u2829",
|
|
93623
|
-
"\u2800\u2899",
|
|
93624
|
-
"\u2800\u2859",
|
|
93625
|
-
"\u2800\u2829",
|
|
93626
|
-
"\u2800\u2898",
|
|
93627
|
-
"\u2800\u2858",
|
|
93628
|
-
"\u2800\u2828",
|
|
93629
|
-
"\u2800\u2890",
|
|
93630
|
-
"\u2800\u2850",
|
|
93631
|
-
"\u2800\u2820",
|
|
93632
|
-
"\u2800\u2880",
|
|
93633
|
-
"\u2800\u2840"
|
|
93634
|
-
]
|
|
93635
|
-
},
|
|
93636
|
-
dots13: {
|
|
93637
|
-
interval: 80,
|
|
93638
|
-
frames: [
|
|
93639
|
-
"\u28FC",
|
|
93640
|
-
"\u28F9",
|
|
93641
|
-
"\u28BB",
|
|
93642
|
-
"\u283F",
|
|
93643
|
-
"\u285F",
|
|
93644
|
-
"\u28CF",
|
|
93645
|
-
"\u28E7",
|
|
93646
|
-
"\u28F6"
|
|
93647
|
-
]
|
|
93648
|
-
},
|
|
93649
|
-
dots8Bit: {
|
|
93650
|
-
interval: 80,
|
|
93651
|
-
frames: [
|
|
93652
|
-
"\u2800",
|
|
93653
|
-
"\u2801",
|
|
93654
|
-
"\u2802",
|
|
93655
|
-
"\u2803",
|
|
93656
|
-
"\u2804",
|
|
93657
|
-
"\u2805",
|
|
93658
|
-
"\u2806",
|
|
93659
|
-
"\u2807",
|
|
93660
|
-
"\u2840",
|
|
93661
|
-
"\u2841",
|
|
93662
|
-
"\u2842",
|
|
93663
|
-
"\u2843",
|
|
93664
|
-
"\u2844",
|
|
93665
|
-
"\u2845",
|
|
93666
|
-
"\u2846",
|
|
93667
|
-
"\u2847",
|
|
93668
|
-
"\u2808",
|
|
93669
|
-
"\u2809",
|
|
93670
|
-
"\u280A",
|
|
93671
|
-
"\u280B",
|
|
93672
|
-
"\u280C",
|
|
93673
|
-
"\u280D",
|
|
93674
|
-
"\u280E",
|
|
93675
|
-
"\u280F",
|
|
93676
|
-
"\u2848",
|
|
93677
|
-
"\u2849",
|
|
93678
|
-
"\u284A",
|
|
93679
|
-
"\u284B",
|
|
93680
|
-
"\u284C",
|
|
93681
|
-
"\u284D",
|
|
93682
|
-
"\u284E",
|
|
93683
|
-
"\u284F",
|
|
93684
|
-
"\u2810",
|
|
93685
|
-
"\u2811",
|
|
93686
|
-
"\u2812",
|
|
93687
|
-
"\u2813",
|
|
93688
|
-
"\u2814",
|
|
93689
|
-
"\u2815",
|
|
93690
|
-
"\u2816",
|
|
93691
|
-
"\u2817",
|
|
93692
|
-
"\u2850",
|
|
93693
|
-
"\u2851",
|
|
93694
|
-
"\u2852",
|
|
93695
|
-
"\u2853",
|
|
93696
|
-
"\u2854",
|
|
93697
|
-
"\u2855",
|
|
93698
|
-
"\u2856",
|
|
93699
|
-
"\u2857",
|
|
93700
|
-
"\u2818",
|
|
93701
|
-
"\u2819",
|
|
93702
|
-
"\u281A",
|
|
93703
|
-
"\u281B",
|
|
93704
|
-
"\u281C",
|
|
93705
|
-
"\u281D",
|
|
93706
|
-
"\u281E",
|
|
93707
|
-
"\u281F",
|
|
93708
|
-
"\u2858",
|
|
93709
|
-
"\u2859",
|
|
93710
|
-
"\u285A",
|
|
93711
|
-
"\u285B",
|
|
93712
|
-
"\u285C",
|
|
93713
|
-
"\u285D",
|
|
93714
|
-
"\u285E",
|
|
93715
|
-
"\u285F",
|
|
93716
|
-
"\u2820",
|
|
93717
|
-
"\u2821",
|
|
93718
|
-
"\u2822",
|
|
93719
|
-
"\u2823",
|
|
93720
|
-
"\u2824",
|
|
93721
|
-
"\u2825",
|
|
93722
|
-
"\u2826",
|
|
93723
|
-
"\u2827",
|
|
93724
|
-
"\u2860",
|
|
93725
|
-
"\u2861",
|
|
93726
|
-
"\u2862",
|
|
93727
|
-
"\u2863",
|
|
93728
|
-
"\u2864",
|
|
93729
|
-
"\u2865",
|
|
93730
|
-
"\u2866",
|
|
93731
|
-
"\u2867",
|
|
93732
|
-
"\u2828",
|
|
93733
|
-
"\u2829",
|
|
93734
|
-
"\u282A",
|
|
93735
|
-
"\u282B",
|
|
93736
|
-
"\u282C",
|
|
93737
|
-
"\u282D",
|
|
93738
|
-
"\u282E",
|
|
93739
|
-
"\u282F",
|
|
93740
|
-
"\u2868",
|
|
93741
|
-
"\u2869",
|
|
93742
|
-
"\u286A",
|
|
93743
|
-
"\u286B",
|
|
93744
|
-
"\u286C",
|
|
93745
|
-
"\u286D",
|
|
93746
|
-
"\u286E",
|
|
93747
|
-
"\u286F",
|
|
93748
|
-
"\u2830",
|
|
93749
|
-
"\u2831",
|
|
93750
|
-
"\u2832",
|
|
93751
|
-
"\u2833",
|
|
93752
|
-
"\u2834",
|
|
93753
|
-
"\u2835",
|
|
93754
|
-
"\u2836",
|
|
93755
|
-
"\u2837",
|
|
93756
|
-
"\u2870",
|
|
93757
|
-
"\u2871",
|
|
93758
|
-
"\u2872",
|
|
93759
|
-
"\u2873",
|
|
93760
|
-
"\u2874",
|
|
93761
|
-
"\u2875",
|
|
93762
|
-
"\u2876",
|
|
93763
|
-
"\u2877",
|
|
93764
|
-
"\u2838",
|
|
93765
|
-
"\u2839",
|
|
93766
|
-
"\u283A",
|
|
93767
|
-
"\u283B",
|
|
93768
|
-
"\u283C",
|
|
93769
|
-
"\u283D",
|
|
93770
|
-
"\u283E",
|
|
93771
|
-
"\u283F",
|
|
93772
|
-
"\u2878",
|
|
93773
|
-
"\u2879",
|
|
93774
|
-
"\u287A",
|
|
93775
|
-
"\u287B",
|
|
93776
|
-
"\u287C",
|
|
93777
|
-
"\u287D",
|
|
93778
|
-
"\u287E",
|
|
93779
|
-
"\u287F",
|
|
93780
|
-
"\u2880",
|
|
93781
|
-
"\u2881",
|
|
93782
|
-
"\u2882",
|
|
93783
|
-
"\u2883",
|
|
93784
|
-
"\u2884",
|
|
93785
|
-
"\u2885",
|
|
93786
|
-
"\u2886",
|
|
93787
|
-
"\u2887",
|
|
93788
|
-
"\u28C0",
|
|
93789
|
-
"\u28C1",
|
|
93790
|
-
"\u28C2",
|
|
93791
|
-
"\u28C3",
|
|
93792
|
-
"\u28C4",
|
|
93793
|
-
"\u28C5",
|
|
93794
|
-
"\u28C6",
|
|
93795
|
-
"\u28C7",
|
|
93796
|
-
"\u2888",
|
|
93797
|
-
"\u2889",
|
|
93798
|
-
"\u288A",
|
|
93799
|
-
"\u288B",
|
|
93800
|
-
"\u288C",
|
|
93801
|
-
"\u288D",
|
|
93802
|
-
"\u288E",
|
|
93803
|
-
"\u288F",
|
|
93804
|
-
"\u28C8",
|
|
93805
|
-
"\u28C9",
|
|
93806
|
-
"\u28CA",
|
|
93807
|
-
"\u28CB",
|
|
93808
|
-
"\u28CC",
|
|
93809
|
-
"\u28CD",
|
|
93810
|
-
"\u28CE",
|
|
93811
|
-
"\u28CF",
|
|
93812
|
-
"\u2890",
|
|
93813
|
-
"\u2891",
|
|
93814
|
-
"\u2892",
|
|
93815
|
-
"\u2893",
|
|
93816
|
-
"\u2894",
|
|
93817
|
-
"\u2895",
|
|
93818
|
-
"\u2896",
|
|
93819
|
-
"\u2897",
|
|
93820
|
-
"\u28D0",
|
|
93821
|
-
"\u28D1",
|
|
93822
|
-
"\u28D2",
|
|
93823
|
-
"\u28D3",
|
|
93824
|
-
"\u28D4",
|
|
93825
|
-
"\u28D5",
|
|
93826
|
-
"\u28D6",
|
|
93827
|
-
"\u28D7",
|
|
93828
|
-
"\u2898",
|
|
93829
|
-
"\u2899",
|
|
93830
|
-
"\u289A",
|
|
93831
|
-
"\u289B",
|
|
93832
|
-
"\u289C",
|
|
93833
|
-
"\u289D",
|
|
93834
|
-
"\u289E",
|
|
93835
|
-
"\u289F",
|
|
93836
|
-
"\u28D8",
|
|
93837
|
-
"\u28D9",
|
|
93838
|
-
"\u28DA",
|
|
93839
|
-
"\u28DB",
|
|
93840
|
-
"\u28DC",
|
|
93841
|
-
"\u28DD",
|
|
93842
|
-
"\u28DE",
|
|
93843
|
-
"\u28DF",
|
|
93844
|
-
"\u28A0",
|
|
93845
|
-
"\u28A1",
|
|
93846
|
-
"\u28A2",
|
|
93847
|
-
"\u28A3",
|
|
93848
|
-
"\u28A4",
|
|
93849
|
-
"\u28A5",
|
|
93850
|
-
"\u28A6",
|
|
93851
|
-
"\u28A7",
|
|
93852
|
-
"\u28E0",
|
|
93853
|
-
"\u28E1",
|
|
93854
|
-
"\u28E2",
|
|
93855
|
-
"\u28E3",
|
|
93856
|
-
"\u28E4",
|
|
93857
|
-
"\u28E5",
|
|
93858
|
-
"\u28E6",
|
|
93859
|
-
"\u28E7",
|
|
93860
|
-
"\u28A8",
|
|
93861
|
-
"\u28A9",
|
|
93862
|
-
"\u28AA",
|
|
93863
|
-
"\u28AB",
|
|
93864
|
-
"\u28AC",
|
|
93865
|
-
"\u28AD",
|
|
93866
|
-
"\u28AE",
|
|
93867
|
-
"\u28AF",
|
|
93868
|
-
"\u28E8",
|
|
93869
|
-
"\u28E9",
|
|
93870
|
-
"\u28EA",
|
|
93871
|
-
"\u28EB",
|
|
93872
|
-
"\u28EC",
|
|
93873
|
-
"\u28ED",
|
|
93874
|
-
"\u28EE",
|
|
93875
|
-
"\u28EF",
|
|
93876
|
-
"\u28B0",
|
|
93877
|
-
"\u28B1",
|
|
93878
|
-
"\u28B2",
|
|
93879
|
-
"\u28B3",
|
|
93880
|
-
"\u28B4",
|
|
93881
|
-
"\u28B5",
|
|
93882
|
-
"\u28B6",
|
|
93883
|
-
"\u28B7",
|
|
93884
|
-
"\u28F0",
|
|
93885
|
-
"\u28F1",
|
|
93886
|
-
"\u28F2",
|
|
93887
|
-
"\u28F3",
|
|
93888
|
-
"\u28F4",
|
|
93889
|
-
"\u28F5",
|
|
93890
|
-
"\u28F6",
|
|
93891
|
-
"\u28F7",
|
|
93892
|
-
"\u28B8",
|
|
93893
|
-
"\u28B9",
|
|
93894
|
-
"\u28BA",
|
|
93895
|
-
"\u28BB",
|
|
93896
|
-
"\u28BC",
|
|
93897
|
-
"\u28BD",
|
|
93898
|
-
"\u28BE",
|
|
93899
|
-
"\u28BF",
|
|
93900
|
-
"\u28F8",
|
|
93901
|
-
"\u28F9",
|
|
93902
|
-
"\u28FA",
|
|
93903
|
-
"\u28FB",
|
|
93904
|
-
"\u28FC",
|
|
93905
|
-
"\u28FD",
|
|
93906
|
-
"\u28FE",
|
|
93907
|
-
"\u28FF"
|
|
93908
|
-
]
|
|
93909
|
-
},
|
|
93910
|
-
sand: {
|
|
93911
|
-
interval: 80,
|
|
93912
|
-
frames: [
|
|
93913
|
-
"\u2801",
|
|
93914
|
-
"\u2802",
|
|
93915
|
-
"\u2804",
|
|
93916
|
-
"\u2840",
|
|
93917
|
-
"\u2848",
|
|
93918
|
-
"\u2850",
|
|
93919
|
-
"\u2860",
|
|
93920
|
-
"\u28C0",
|
|
93921
|
-
"\u28C1",
|
|
93922
|
-
"\u28C2",
|
|
93923
|
-
"\u28C4",
|
|
93924
|
-
"\u28CC",
|
|
93925
|
-
"\u28D4",
|
|
93926
|
-
"\u28E4",
|
|
93927
|
-
"\u28E5",
|
|
93928
|
-
"\u28E6",
|
|
93929
|
-
"\u28EE",
|
|
93930
|
-
"\u28F6",
|
|
93931
|
-
"\u28F7",
|
|
93932
|
-
"\u28FF",
|
|
93933
|
-
"\u287F",
|
|
93934
|
-
"\u283F",
|
|
93935
|
-
"\u289F",
|
|
93936
|
-
"\u281F",
|
|
93937
|
-
"\u285B",
|
|
93938
|
-
"\u281B",
|
|
93939
|
-
"\u282B",
|
|
93940
|
-
"\u288B",
|
|
93941
|
-
"\u280B",
|
|
93942
|
-
"\u280D",
|
|
93943
|
-
"\u2849",
|
|
93944
|
-
"\u2809",
|
|
93945
|
-
"\u2811",
|
|
93946
|
-
"\u2821",
|
|
93947
|
-
"\u2881"
|
|
93948
|
-
]
|
|
93949
|
-
},
|
|
93950
|
-
line: {
|
|
93951
|
-
interval: 130,
|
|
93952
|
-
frames: [
|
|
93953
|
-
"-",
|
|
93954
|
-
"\\",
|
|
93955
|
-
"|",
|
|
93956
|
-
"/"
|
|
93957
|
-
]
|
|
93958
|
-
},
|
|
93959
|
-
line2: {
|
|
93960
|
-
interval: 100,
|
|
93961
|
-
frames: [
|
|
93962
|
-
"\u2802",
|
|
93963
|
-
"-",
|
|
93964
|
-
"\u2013",
|
|
93965
|
-
"\u2014",
|
|
93966
|
-
"\u2013",
|
|
93967
|
-
"-"
|
|
93968
|
-
]
|
|
93969
|
-
},
|
|
93970
|
-
pipe: {
|
|
93971
|
-
interval: 100,
|
|
93972
|
-
frames: [
|
|
93973
|
-
"\u2524",
|
|
93974
|
-
"\u2518",
|
|
93975
|
-
"\u2534",
|
|
93976
|
-
"\u2514",
|
|
93977
|
-
"\u251C",
|
|
93978
|
-
"\u250C",
|
|
93979
|
-
"\u252C",
|
|
93980
|
-
"\u2510"
|
|
93981
|
-
]
|
|
93982
|
-
},
|
|
93983
|
-
simpleDots: {
|
|
93984
|
-
interval: 400,
|
|
93985
|
-
frames: [
|
|
93986
|
-
". ",
|
|
93987
|
-
".. ",
|
|
93988
|
-
"...",
|
|
93989
|
-
" "
|
|
93990
|
-
]
|
|
93991
|
-
},
|
|
93992
|
-
simpleDotsScrolling: {
|
|
93993
|
-
interval: 200,
|
|
93994
|
-
frames: [
|
|
93995
|
-
". ",
|
|
93996
|
-
".. ",
|
|
93997
|
-
"...",
|
|
93998
|
-
" ..",
|
|
93999
|
-
" .",
|
|
94000
|
-
" "
|
|
94001
|
-
]
|
|
94002
|
-
},
|
|
94003
|
-
star: {
|
|
94004
|
-
interval: 70,
|
|
94005
|
-
frames: [
|
|
94006
|
-
"\u2736",
|
|
94007
|
-
"\u2738",
|
|
94008
|
-
"\u2739",
|
|
94009
|
-
"\u273A",
|
|
94010
|
-
"\u2739",
|
|
94011
|
-
"\u2737"
|
|
94012
|
-
]
|
|
94013
|
-
},
|
|
94014
|
-
star2: {
|
|
94015
|
-
interval: 80,
|
|
94016
|
-
frames: [
|
|
94017
|
-
"+",
|
|
94018
|
-
"x",
|
|
94019
|
-
"*"
|
|
94020
|
-
]
|
|
94021
|
-
},
|
|
94022
|
-
flip: {
|
|
94023
|
-
interval: 70,
|
|
94024
|
-
frames: [
|
|
94025
|
-
"_",
|
|
94026
|
-
"_",
|
|
94027
|
-
"_",
|
|
94028
|
-
"-",
|
|
94029
|
-
"`",
|
|
94030
|
-
"`",
|
|
94031
|
-
"'",
|
|
94032
|
-
"\xB4",
|
|
94033
|
-
"-",
|
|
94034
|
-
"_",
|
|
94035
|
-
"_",
|
|
94036
|
-
"_"
|
|
94037
|
-
]
|
|
94038
|
-
},
|
|
94039
|
-
hamburger: {
|
|
94040
|
-
interval: 100,
|
|
94041
|
-
frames: [
|
|
94042
|
-
"\u2631",
|
|
94043
|
-
"\u2632",
|
|
94044
|
-
"\u2634"
|
|
94045
|
-
]
|
|
94046
|
-
},
|
|
94047
|
-
growVertical: {
|
|
94048
|
-
interval: 120,
|
|
94049
|
-
frames: [
|
|
94050
|
-
"\u2581",
|
|
94051
|
-
"\u2583",
|
|
94052
|
-
"\u2584",
|
|
94053
|
-
"\u2585",
|
|
94054
|
-
"\u2586",
|
|
94055
|
-
"\u2587",
|
|
94056
|
-
"\u2586",
|
|
94057
|
-
"\u2585",
|
|
94058
|
-
"\u2584",
|
|
94059
|
-
"\u2583"
|
|
94060
|
-
]
|
|
94061
|
-
},
|
|
94062
|
-
growHorizontal: {
|
|
94063
|
-
interval: 120,
|
|
94064
|
-
frames: [
|
|
94065
|
-
"\u258F",
|
|
94066
|
-
"\u258E",
|
|
94067
|
-
"\u258D",
|
|
94068
|
-
"\u258C",
|
|
94069
|
-
"\u258B",
|
|
94070
|
-
"\u258A",
|
|
94071
|
-
"\u2589",
|
|
94072
|
-
"\u258A",
|
|
94073
|
-
"\u258B",
|
|
94074
|
-
"\u258C",
|
|
94075
|
-
"\u258D",
|
|
94076
|
-
"\u258E"
|
|
94077
|
-
]
|
|
94078
|
-
},
|
|
94079
|
-
balloon: {
|
|
94080
|
-
interval: 140,
|
|
94081
|
-
frames: [
|
|
94082
|
-
" ",
|
|
94083
|
-
".",
|
|
94084
|
-
"o",
|
|
94085
|
-
"O",
|
|
94086
|
-
"@",
|
|
94087
|
-
"*",
|
|
94088
|
-
" "
|
|
94089
|
-
]
|
|
94090
|
-
},
|
|
94091
|
-
balloon2: {
|
|
94092
|
-
interval: 120,
|
|
94093
|
-
frames: [
|
|
94094
|
-
".",
|
|
94095
|
-
"o",
|
|
94096
|
-
"O",
|
|
94097
|
-
"\xB0",
|
|
94098
|
-
"O",
|
|
94099
|
-
"o",
|
|
94100
|
-
"."
|
|
94101
|
-
]
|
|
94102
|
-
},
|
|
94103
|
-
noise: {
|
|
94104
|
-
interval: 100,
|
|
94105
|
-
frames: [
|
|
94106
|
-
"\u2593",
|
|
94107
|
-
"\u2592",
|
|
94108
|
-
"\u2591"
|
|
94109
|
-
]
|
|
94110
|
-
},
|
|
94111
|
-
bounce: {
|
|
94112
|
-
interval: 120,
|
|
94113
|
-
frames: [
|
|
94114
|
-
"\u2801",
|
|
94115
|
-
"\u2802",
|
|
94116
|
-
"\u2804",
|
|
94117
|
-
"\u2802"
|
|
94118
|
-
]
|
|
94119
|
-
},
|
|
94120
|
-
boxBounce: {
|
|
94121
|
-
interval: 120,
|
|
94122
|
-
frames: [
|
|
94123
|
-
"\u2596",
|
|
94124
|
-
"\u2598",
|
|
94125
|
-
"\u259D",
|
|
94126
|
-
"\u2597"
|
|
94127
|
-
]
|
|
94128
|
-
},
|
|
94129
|
-
boxBounce2: {
|
|
94130
|
-
interval: 100,
|
|
94131
|
-
frames: [
|
|
94132
|
-
"\u258C",
|
|
94133
|
-
"\u2580",
|
|
94134
|
-
"\u2590",
|
|
94135
|
-
"\u2584"
|
|
94136
|
-
]
|
|
94137
|
-
},
|
|
94138
|
-
triangle: {
|
|
94139
|
-
interval: 50,
|
|
94140
|
-
frames: [
|
|
94141
|
-
"\u25E2",
|
|
94142
|
-
"\u25E3",
|
|
94143
|
-
"\u25E4",
|
|
94144
|
-
"\u25E5"
|
|
94145
|
-
]
|
|
94146
|
-
},
|
|
94147
|
-
binary: {
|
|
94148
|
-
interval: 80,
|
|
94149
|
-
frames: [
|
|
94150
|
-
"010010",
|
|
94151
|
-
"001100",
|
|
94152
|
-
"100101",
|
|
94153
|
-
"111010",
|
|
94154
|
-
"111101",
|
|
94155
|
-
"010111",
|
|
94156
|
-
"101011",
|
|
94157
|
-
"111000",
|
|
94158
|
-
"110011",
|
|
94159
|
-
"110101"
|
|
94160
|
-
]
|
|
94161
|
-
},
|
|
94162
|
-
arc: {
|
|
94163
|
-
interval: 100,
|
|
94164
|
-
frames: [
|
|
94165
|
-
"\u25DC",
|
|
94166
|
-
"\u25E0",
|
|
94167
|
-
"\u25DD",
|
|
94168
|
-
"\u25DE",
|
|
94169
|
-
"\u25E1",
|
|
94170
|
-
"\u25DF"
|
|
94171
|
-
]
|
|
94172
|
-
},
|
|
94173
|
-
circle: {
|
|
94174
|
-
interval: 120,
|
|
94175
|
-
frames: [
|
|
94176
|
-
"\u25E1",
|
|
94177
|
-
"\u2299",
|
|
94178
|
-
"\u25E0"
|
|
94179
|
-
]
|
|
94180
|
-
},
|
|
94181
|
-
squareCorners: {
|
|
94182
|
-
interval: 180,
|
|
94183
|
-
frames: [
|
|
94184
|
-
"\u25F0",
|
|
94185
|
-
"\u25F3",
|
|
94186
|
-
"\u25F2",
|
|
94187
|
-
"\u25F1"
|
|
94188
|
-
]
|
|
94189
|
-
},
|
|
94190
|
-
circleQuarters: {
|
|
94191
|
-
interval: 120,
|
|
94192
|
-
frames: [
|
|
94193
|
-
"\u25F4",
|
|
94194
|
-
"\u25F7",
|
|
94195
|
-
"\u25F6",
|
|
94196
|
-
"\u25F5"
|
|
94197
|
-
]
|
|
94198
|
-
},
|
|
94199
|
-
circleHalves: {
|
|
94200
|
-
interval: 50,
|
|
94201
|
-
frames: [
|
|
94202
|
-
"\u25D0",
|
|
94203
|
-
"\u25D3",
|
|
94204
|
-
"\u25D1",
|
|
94205
|
-
"\u25D2"
|
|
94206
|
-
]
|
|
94207
|
-
},
|
|
94208
|
-
squish: {
|
|
94209
|
-
interval: 100,
|
|
94210
|
-
frames: [
|
|
94211
|
-
"\u256B",
|
|
94212
|
-
"\u256A"
|
|
94213
|
-
]
|
|
94214
|
-
},
|
|
94215
|
-
toggle: {
|
|
94216
|
-
interval: 250,
|
|
94217
|
-
frames: [
|
|
94218
|
-
"\u22B6",
|
|
94219
|
-
"\u22B7"
|
|
94220
|
-
]
|
|
94221
|
-
},
|
|
94222
|
-
toggle2: {
|
|
94223
|
-
interval: 80,
|
|
94224
|
-
frames: [
|
|
94225
|
-
"\u25AB",
|
|
94226
|
-
"\u25AA"
|
|
94227
|
-
]
|
|
94228
|
-
},
|
|
94229
|
-
toggle3: {
|
|
94230
|
-
interval: 120,
|
|
94231
|
-
frames: [
|
|
94232
|
-
"\u25A1",
|
|
94233
|
-
"\u25A0"
|
|
94234
|
-
]
|
|
94235
|
-
},
|
|
94236
|
-
toggle4: {
|
|
94237
|
-
interval: 100,
|
|
94238
|
-
frames: [
|
|
94239
|
-
"\u25A0",
|
|
94240
|
-
"\u25A1",
|
|
94241
|
-
"\u25AA",
|
|
94242
|
-
"\u25AB"
|
|
94243
|
-
]
|
|
94244
|
-
},
|
|
94245
|
-
toggle5: {
|
|
94246
|
-
interval: 100,
|
|
94247
|
-
frames: [
|
|
94248
|
-
"\u25AE",
|
|
94249
|
-
"\u25AF"
|
|
94250
|
-
]
|
|
94251
|
-
},
|
|
94252
|
-
toggle6: {
|
|
94253
|
-
interval: 300,
|
|
94254
|
-
frames: [
|
|
94255
|
-
"\u101D",
|
|
94256
|
-
"\u1040"
|
|
94257
|
-
]
|
|
94258
|
-
},
|
|
94259
|
-
toggle7: {
|
|
94260
|
-
interval: 80,
|
|
94261
|
-
frames: [
|
|
94262
|
-
"\u29BE",
|
|
94263
|
-
"\u29BF"
|
|
94264
|
-
]
|
|
94265
|
-
},
|
|
94266
|
-
toggle8: {
|
|
94267
|
-
interval: 100,
|
|
94268
|
-
frames: [
|
|
94269
|
-
"\u25CD",
|
|
94270
|
-
"\u25CC"
|
|
94271
|
-
]
|
|
94272
|
-
},
|
|
94273
|
-
toggle9: {
|
|
94274
|
-
interval: 100,
|
|
94275
|
-
frames: [
|
|
94276
|
-
"\u25C9",
|
|
94277
|
-
"\u25CE"
|
|
94278
|
-
]
|
|
94279
|
-
},
|
|
94280
|
-
toggle10: {
|
|
94281
|
-
interval: 100,
|
|
94282
|
-
frames: [
|
|
94283
|
-
"\u3282",
|
|
94284
|
-
"\u3280",
|
|
94285
|
-
"\u3281"
|
|
94286
|
-
]
|
|
94287
|
-
},
|
|
94288
|
-
toggle11: {
|
|
94289
|
-
interval: 50,
|
|
94290
|
-
frames: [
|
|
94291
|
-
"\u29C7",
|
|
94292
|
-
"\u29C6"
|
|
94293
|
-
]
|
|
94294
|
-
},
|
|
94295
|
-
toggle12: {
|
|
94296
|
-
interval: 120,
|
|
94297
|
-
frames: [
|
|
94298
|
-
"\u2617",
|
|
94299
|
-
"\u2616"
|
|
94300
|
-
]
|
|
94301
|
-
},
|
|
94302
|
-
toggle13: {
|
|
94303
|
-
interval: 80,
|
|
94304
|
-
frames: [
|
|
94305
|
-
"=",
|
|
94306
|
-
"*",
|
|
94307
|
-
"-"
|
|
94308
|
-
]
|
|
94309
|
-
},
|
|
94310
|
-
arrow: {
|
|
94311
|
-
interval: 100,
|
|
94312
|
-
frames: [
|
|
94313
|
-
"\u2190",
|
|
94314
|
-
"\u2196",
|
|
94315
|
-
"\u2191",
|
|
94316
|
-
"\u2197",
|
|
94317
|
-
"\u2192",
|
|
94318
|
-
"\u2198",
|
|
94319
|
-
"\u2193",
|
|
94320
|
-
"\u2199"
|
|
94321
|
-
]
|
|
94322
|
-
},
|
|
94323
|
-
arrow2: {
|
|
94324
|
-
interval: 80,
|
|
94325
|
-
frames: [
|
|
94326
|
-
"\u2B06\uFE0F ",
|
|
94327
|
-
"\u2197\uFE0F ",
|
|
94328
|
-
"\u27A1\uFE0F ",
|
|
94329
|
-
"\u2198\uFE0F ",
|
|
94330
|
-
"\u2B07\uFE0F ",
|
|
94331
|
-
"\u2199\uFE0F ",
|
|
94332
|
-
"\u2B05\uFE0F ",
|
|
94333
|
-
"\u2196\uFE0F "
|
|
94334
|
-
]
|
|
94335
|
-
},
|
|
94336
|
-
arrow3: {
|
|
94337
|
-
interval: 120,
|
|
94338
|
-
frames: [
|
|
94339
|
-
"\u25B9\u25B9\u25B9\u25B9\u25B9",
|
|
94340
|
-
"\u25B8\u25B9\u25B9\u25B9\u25B9",
|
|
94341
|
-
"\u25B9\u25B8\u25B9\u25B9\u25B9",
|
|
94342
|
-
"\u25B9\u25B9\u25B8\u25B9\u25B9",
|
|
94343
|
-
"\u25B9\u25B9\u25B9\u25B8\u25B9",
|
|
94344
|
-
"\u25B9\u25B9\u25B9\u25B9\u25B8"
|
|
94345
|
-
]
|
|
94346
|
-
},
|
|
94347
|
-
bouncingBar: {
|
|
94348
|
-
interval: 80,
|
|
94349
|
-
frames: [
|
|
94350
|
-
"[ ]",
|
|
94351
|
-
"[= ]",
|
|
94352
|
-
"[== ]",
|
|
94353
|
-
"[=== ]",
|
|
94354
|
-
"[====]",
|
|
94355
|
-
"[ ===]",
|
|
94356
|
-
"[ ==]",
|
|
94357
|
-
"[ =]",
|
|
94358
|
-
"[ ]",
|
|
94359
|
-
"[ =]",
|
|
94360
|
-
"[ ==]",
|
|
94361
|
-
"[ ===]",
|
|
94362
|
-
"[====]",
|
|
94363
|
-
"[=== ]",
|
|
94364
|
-
"[== ]",
|
|
94365
|
-
"[= ]"
|
|
94366
|
-
]
|
|
94367
|
-
},
|
|
94368
|
-
bouncingBall: {
|
|
94369
|
-
interval: 80,
|
|
94370
|
-
frames: [
|
|
94371
|
-
"( \u25CF )",
|
|
94372
|
-
"( \u25CF )",
|
|
94373
|
-
"( \u25CF )",
|
|
94374
|
-
"( \u25CF )",
|
|
94375
|
-
"( \u25CF)",
|
|
94376
|
-
"( \u25CF )",
|
|
94377
|
-
"( \u25CF )",
|
|
94378
|
-
"( \u25CF )",
|
|
94379
|
-
"( \u25CF )",
|
|
94380
|
-
"(\u25CF )"
|
|
94381
|
-
]
|
|
94382
|
-
},
|
|
94383
|
-
smiley: {
|
|
94384
|
-
interval: 200,
|
|
94385
|
-
frames: [
|
|
94386
|
-
"\uD83D\uDE04 ",
|
|
94387
|
-
"\uD83D\uDE1D "
|
|
94388
|
-
]
|
|
94389
|
-
},
|
|
94390
|
-
monkey: {
|
|
94391
|
-
interval: 300,
|
|
94392
|
-
frames: [
|
|
94393
|
-
"\uD83D\uDE48 ",
|
|
94394
|
-
"\uD83D\uDE48 ",
|
|
94395
|
-
"\uD83D\uDE49 ",
|
|
94396
|
-
"\uD83D\uDE4A "
|
|
94397
|
-
]
|
|
94398
|
-
},
|
|
94399
|
-
hearts: {
|
|
94400
|
-
interval: 100,
|
|
94401
|
-
frames: [
|
|
94402
|
-
"\uD83D\uDC9B ",
|
|
94403
|
-
"\uD83D\uDC99 ",
|
|
94404
|
-
"\uD83D\uDC9C ",
|
|
94405
|
-
"\uD83D\uDC9A ",
|
|
94406
|
-
"\u2764\uFE0F "
|
|
94407
|
-
]
|
|
94408
|
-
},
|
|
94409
|
-
clock: {
|
|
94410
|
-
interval: 100,
|
|
94411
|
-
frames: [
|
|
94412
|
-
"\uD83D\uDD5B ",
|
|
94413
|
-
"\uD83D\uDD50 ",
|
|
94414
|
-
"\uD83D\uDD51 ",
|
|
94415
|
-
"\uD83D\uDD52 ",
|
|
94416
|
-
"\uD83D\uDD53 ",
|
|
94417
|
-
"\uD83D\uDD54 ",
|
|
94418
|
-
"\uD83D\uDD55 ",
|
|
94419
|
-
"\uD83D\uDD56 ",
|
|
94420
|
-
"\uD83D\uDD57 ",
|
|
94421
|
-
"\uD83D\uDD58 ",
|
|
94422
|
-
"\uD83D\uDD59 ",
|
|
94423
|
-
"\uD83D\uDD5A "
|
|
94424
|
-
]
|
|
94425
|
-
},
|
|
94426
|
-
earth: {
|
|
94427
|
-
interval: 180,
|
|
94428
|
-
frames: [
|
|
94429
|
-
"\uD83C\uDF0D ",
|
|
94430
|
-
"\uD83C\uDF0E ",
|
|
94431
|
-
"\uD83C\uDF0F "
|
|
94432
|
-
]
|
|
94433
|
-
},
|
|
94434
|
-
material: {
|
|
94435
|
-
interval: 17,
|
|
94436
|
-
frames: [
|
|
94437
|
-
"\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94438
|
-
"\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94439
|
-
"\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94440
|
-
"\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94441
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94442
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94443
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94444
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94445
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94446
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94447
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94448
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94449
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94450
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94451
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94452
|
-
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
94453
|
-
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
94454
|
-
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
94455
|
-
"\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
|
|
94456
|
-
"\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
94457
|
-
"\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
94458
|
-
"\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
|
|
94459
|
-
"\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
|
|
94460
|
-
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
94461
|
-
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
94462
|
-
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
94463
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94464
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94465
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94466
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94467
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94468
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94469
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94470
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94471
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94472
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94473
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94474
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94475
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94476
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
|
|
94477
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
|
|
94478
|
-
"\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
|
|
94479
|
-
"\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
94480
|
-
"\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
94481
|
-
"\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
94482
|
-
"\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
|
|
94483
|
-
"\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
94484
|
-
"\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
94485
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
94486
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94487
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94488
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94489
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94490
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94491
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94492
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94493
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94494
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94495
|
-
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94496
|
-
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
94497
|
-
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
94498
|
-
"\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
|
|
94499
|
-
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
94500
|
-
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
94501
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
94502
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
94503
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
94504
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
|
|
94505
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
|
|
94506
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
94507
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
94508
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
94509
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
94510
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
94511
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94512
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
94513
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
|
|
94514
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
|
|
94515
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
|
|
94516
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
|
|
94517
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
94518
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
94519
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
|
|
94520
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
|
|
94521
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
|
|
94522
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
94523
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
94524
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
94525
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94526
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94527
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
94528
|
-
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"
|
|
94529
|
-
]
|
|
94530
|
-
},
|
|
94531
|
-
moon: {
|
|
94532
|
-
interval: 80,
|
|
94533
|
-
frames: [
|
|
94534
|
-
"\uD83C\uDF11 ",
|
|
94535
|
-
"\uD83C\uDF12 ",
|
|
94536
|
-
"\uD83C\uDF13 ",
|
|
94537
|
-
"\uD83C\uDF14 ",
|
|
94538
|
-
"\uD83C\uDF15 ",
|
|
94539
|
-
"\uD83C\uDF16 ",
|
|
94540
|
-
"\uD83C\uDF17 ",
|
|
94541
|
-
"\uD83C\uDF18 "
|
|
94542
|
-
]
|
|
94543
|
-
},
|
|
94544
|
-
runner: {
|
|
94545
|
-
interval: 140,
|
|
94546
|
-
frames: [
|
|
94547
|
-
"\uD83D\uDEB6 ",
|
|
94548
|
-
"\uD83C\uDFC3 "
|
|
94549
|
-
]
|
|
94550
|
-
},
|
|
94551
|
-
pong: {
|
|
94552
|
-
interval: 80,
|
|
94553
|
-
frames: [
|
|
94554
|
-
"\u2590\u2802 \u258C",
|
|
94555
|
-
"\u2590\u2808 \u258C",
|
|
94556
|
-
"\u2590 \u2802 \u258C",
|
|
94557
|
-
"\u2590 \u2820 \u258C",
|
|
94558
|
-
"\u2590 \u2840 \u258C",
|
|
94559
|
-
"\u2590 \u2820 \u258C",
|
|
94560
|
-
"\u2590 \u2802 \u258C",
|
|
94561
|
-
"\u2590 \u2808 \u258C",
|
|
94562
|
-
"\u2590 \u2802 \u258C",
|
|
94563
|
-
"\u2590 \u2820 \u258C",
|
|
94564
|
-
"\u2590 \u2840 \u258C",
|
|
94565
|
-
"\u2590 \u2820 \u258C",
|
|
94566
|
-
"\u2590 \u2802 \u258C",
|
|
94567
|
-
"\u2590 \u2808 \u258C",
|
|
94568
|
-
"\u2590 \u2802\u258C",
|
|
94569
|
-
"\u2590 \u2820\u258C",
|
|
94570
|
-
"\u2590 \u2840\u258C",
|
|
94571
|
-
"\u2590 \u2820 \u258C",
|
|
94572
|
-
"\u2590 \u2802 \u258C",
|
|
94573
|
-
"\u2590 \u2808 \u258C",
|
|
94574
|
-
"\u2590 \u2802 \u258C",
|
|
94575
|
-
"\u2590 \u2820 \u258C",
|
|
94576
|
-
"\u2590 \u2840 \u258C",
|
|
94577
|
-
"\u2590 \u2820 \u258C",
|
|
94578
|
-
"\u2590 \u2802 \u258C",
|
|
94579
|
-
"\u2590 \u2808 \u258C",
|
|
94580
|
-
"\u2590 \u2802 \u258C",
|
|
94581
|
-
"\u2590 \u2820 \u258C",
|
|
94582
|
-
"\u2590 \u2840 \u258C",
|
|
94583
|
-
"\u2590\u2820 \u258C"
|
|
94584
|
-
]
|
|
94585
|
-
},
|
|
94586
|
-
shark: {
|
|
94587
|
-
interval: 120,
|
|
94588
|
-
frames: [
|
|
94589
|
-
"\u2590|\\____________\u258C",
|
|
94590
|
-
"\u2590_|\\___________\u258C",
|
|
94591
|
-
"\u2590__|\\__________\u258C",
|
|
94592
|
-
"\u2590___|\\_________\u258C",
|
|
94593
|
-
"\u2590____|\\________\u258C",
|
|
94594
|
-
"\u2590_____|\\_______\u258C",
|
|
94595
|
-
"\u2590______|\\______\u258C",
|
|
94596
|
-
"\u2590_______|\\_____\u258C",
|
|
94597
|
-
"\u2590________|\\____\u258C",
|
|
94598
|
-
"\u2590_________|\\___\u258C",
|
|
94599
|
-
"\u2590__________|\\__\u258C",
|
|
94600
|
-
"\u2590___________|\\_\u258C",
|
|
94601
|
-
"\u2590____________|\\\u258C",
|
|
94602
|
-
"\u2590____________/|\u258C",
|
|
94603
|
-
"\u2590___________/|_\u258C",
|
|
94604
|
-
"\u2590__________/|__\u258C",
|
|
94605
|
-
"\u2590_________/|___\u258C",
|
|
94606
|
-
"\u2590________/|____\u258C",
|
|
94607
|
-
"\u2590_______/|_____\u258C",
|
|
94608
|
-
"\u2590______/|______\u258C",
|
|
94609
|
-
"\u2590_____/|_______\u258C",
|
|
94610
|
-
"\u2590____/|________\u258C",
|
|
94611
|
-
"\u2590___/|_________\u258C",
|
|
94612
|
-
"\u2590__/|__________\u258C",
|
|
94613
|
-
"\u2590_/|___________\u258C",
|
|
94614
|
-
"\u2590/|____________\u258C"
|
|
94615
|
-
]
|
|
94616
|
-
},
|
|
94617
|
-
dqpb: {
|
|
94618
|
-
interval: 100,
|
|
94619
|
-
frames: [
|
|
94620
|
-
"d",
|
|
94621
|
-
"q",
|
|
94622
|
-
"p",
|
|
94623
|
-
"b"
|
|
94624
|
-
]
|
|
94625
|
-
},
|
|
94626
|
-
weather: {
|
|
94627
|
-
interval: 100,
|
|
94628
|
-
frames: [
|
|
94629
|
-
"\u2600\uFE0F ",
|
|
94630
|
-
"\u2600\uFE0F ",
|
|
94631
|
-
"\u2600\uFE0F ",
|
|
94632
|
-
"\uD83C\uDF24 ",
|
|
94633
|
-
"\u26C5\uFE0F ",
|
|
94634
|
-
"\uD83C\uDF25 ",
|
|
94635
|
-
"\u2601\uFE0F ",
|
|
94636
|
-
"\uD83C\uDF27 ",
|
|
94637
|
-
"\uD83C\uDF28 ",
|
|
94638
|
-
"\uD83C\uDF27 ",
|
|
94639
|
-
"\uD83C\uDF28 ",
|
|
94640
|
-
"\uD83C\uDF27 ",
|
|
94641
|
-
"\uD83C\uDF28 ",
|
|
94642
|
-
"\u26C8 ",
|
|
94643
|
-
"\uD83C\uDF28 ",
|
|
94644
|
-
"\uD83C\uDF27 ",
|
|
94645
|
-
"\uD83C\uDF28 ",
|
|
94646
|
-
"\u2601\uFE0F ",
|
|
94647
|
-
"\uD83C\uDF25 ",
|
|
94648
|
-
"\u26C5\uFE0F ",
|
|
94649
|
-
"\uD83C\uDF24 ",
|
|
94650
|
-
"\u2600\uFE0F ",
|
|
94651
|
-
"\u2600\uFE0F "
|
|
94652
|
-
]
|
|
94653
|
-
},
|
|
94654
|
-
christmas: {
|
|
94655
|
-
interval: 400,
|
|
94656
|
-
frames: [
|
|
94657
|
-
"\uD83C\uDF32",
|
|
94658
|
-
"\uD83C\uDF84"
|
|
94659
|
-
]
|
|
94660
|
-
},
|
|
94661
|
-
grenade: {
|
|
94662
|
-
interval: 80,
|
|
94663
|
-
frames: [
|
|
94664
|
-
"\u060C ",
|
|
94665
|
-
"\u2032 ",
|
|
94666
|
-
" \xB4 ",
|
|
94667
|
-
" \u203E ",
|
|
94668
|
-
" \u2E0C",
|
|
94669
|
-
" \u2E0A",
|
|
94670
|
-
" |",
|
|
94671
|
-
" \u204E",
|
|
94672
|
-
" \u2055",
|
|
94673
|
-
" \u0DF4 ",
|
|
94674
|
-
" \u2053",
|
|
94675
|
-
" ",
|
|
94676
|
-
" ",
|
|
94677
|
-
" "
|
|
94678
|
-
]
|
|
94679
|
-
},
|
|
94680
|
-
point: {
|
|
94681
|
-
interval: 125,
|
|
94682
|
-
frames: [
|
|
94683
|
-
"\u2219\u2219\u2219",
|
|
94684
|
-
"\u25CF\u2219\u2219",
|
|
94685
|
-
"\u2219\u25CF\u2219",
|
|
94686
|
-
"\u2219\u2219\u25CF",
|
|
94687
|
-
"\u2219\u2219\u2219"
|
|
94688
|
-
]
|
|
94689
|
-
},
|
|
94690
|
-
layer: {
|
|
94691
|
-
interval: 150,
|
|
94692
|
-
frames: [
|
|
94693
|
-
"-",
|
|
94694
|
-
"=",
|
|
94695
|
-
"\u2261"
|
|
94696
|
-
]
|
|
94697
|
-
},
|
|
94698
|
-
betaWave: {
|
|
94699
|
-
interval: 80,
|
|
94700
|
-
frames: [
|
|
94701
|
-
"\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2",
|
|
94702
|
-
"\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2",
|
|
94703
|
-
"\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2",
|
|
94704
|
-
"\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2",
|
|
94705
|
-
"\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2",
|
|
94706
|
-
"\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2",
|
|
94707
|
-
"\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"
|
|
94708
|
-
]
|
|
94709
|
-
},
|
|
94710
|
-
fingerDance: {
|
|
94711
|
-
interval: 160,
|
|
94712
|
-
frames: [
|
|
94713
|
-
"\uD83E\uDD18 ",
|
|
94714
|
-
"\uD83E\uDD1F ",
|
|
94715
|
-
"\uD83D\uDD96 ",
|
|
94716
|
-
"\u270B ",
|
|
94717
|
-
"\uD83E\uDD1A ",
|
|
94718
|
-
"\uD83D\uDC46 "
|
|
94719
|
-
]
|
|
94720
|
-
},
|
|
94721
|
-
fistBump: {
|
|
94722
|
-
interval: 80,
|
|
94723
|
-
frames: [
|
|
94724
|
-
"\uD83E\uDD1C\u3000\u3000\u3000\u3000\uD83E\uDD1B ",
|
|
94725
|
-
"\uD83E\uDD1C\u3000\u3000\u3000\u3000\uD83E\uDD1B ",
|
|
94726
|
-
"\uD83E\uDD1C\u3000\u3000\u3000\u3000\uD83E\uDD1B ",
|
|
94727
|
-
"\u3000\uD83E\uDD1C\u3000\u3000\uD83E\uDD1B\u3000 ",
|
|
94728
|
-
"\u3000\u3000\uD83E\uDD1C\uD83E\uDD1B\u3000\u3000 ",
|
|
94729
|
-
"\u3000\uD83E\uDD1C\u2728\uD83E\uDD1B\u3000\u3000 ",
|
|
94730
|
-
"\uD83E\uDD1C\u3000\u2728\u3000\uD83E\uDD1B\u3000 "
|
|
94731
|
-
]
|
|
94732
|
-
},
|
|
94733
|
-
soccerHeader: {
|
|
94734
|
-
interval: 80,
|
|
94735
|
-
frames: [
|
|
94736
|
-
" \uD83E\uDDD1\u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94737
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94738
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94739
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94740
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94741
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94742
|
-
"\uD83E\uDDD1 \u26BD\uFE0F\uD83E\uDDD1 ",
|
|
94743
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94744
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94745
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94746
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
|
|
94747
|
-
"\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 "
|
|
94748
|
-
]
|
|
94749
|
-
},
|
|
94750
|
-
mindblown: {
|
|
94751
|
-
interval: 160,
|
|
94752
|
-
frames: [
|
|
94753
|
-
"\uD83D\uDE10 ",
|
|
94754
|
-
"\uD83D\uDE10 ",
|
|
94755
|
-
"\uD83D\uDE2E ",
|
|
94756
|
-
"\uD83D\uDE2E ",
|
|
94757
|
-
"\uD83D\uDE26 ",
|
|
94758
|
-
"\uD83D\uDE26 ",
|
|
94759
|
-
"\uD83D\uDE27 ",
|
|
94760
|
-
"\uD83D\uDE27 ",
|
|
94761
|
-
"\uD83E\uDD2F ",
|
|
94762
|
-
"\uD83D\uDCA5 ",
|
|
94763
|
-
"\u2728 ",
|
|
94764
|
-
"\u3000 ",
|
|
94765
|
-
"\u3000 ",
|
|
94766
|
-
"\u3000 "
|
|
94767
|
-
]
|
|
94768
|
-
},
|
|
94769
|
-
speaker: {
|
|
94770
|
-
interval: 160,
|
|
94771
|
-
frames: [
|
|
94772
|
-
"\uD83D\uDD08 ",
|
|
94773
|
-
"\uD83D\uDD09 ",
|
|
94774
|
-
"\uD83D\uDD0A ",
|
|
94775
|
-
"\uD83D\uDD09 "
|
|
94776
|
-
]
|
|
94777
|
-
},
|
|
94778
|
-
orangePulse: {
|
|
94779
|
-
interval: 100,
|
|
94780
|
-
frames: [
|
|
94781
|
-
"\uD83D\uDD38 ",
|
|
94782
|
-
"\uD83D\uDD36 ",
|
|
94783
|
-
"\uD83D\uDFE0 ",
|
|
94784
|
-
"\uD83D\uDFE0 ",
|
|
94785
|
-
"\uD83D\uDD36 "
|
|
94786
|
-
]
|
|
94787
|
-
},
|
|
94788
|
-
bluePulse: {
|
|
94789
|
-
interval: 100,
|
|
94790
|
-
frames: [
|
|
94791
|
-
"\uD83D\uDD39 ",
|
|
94792
|
-
"\uD83D\uDD37 ",
|
|
94793
|
-
"\uD83D\uDD35 ",
|
|
94794
|
-
"\uD83D\uDD35 ",
|
|
94795
|
-
"\uD83D\uDD37 "
|
|
94796
|
-
]
|
|
94797
|
-
},
|
|
94798
|
-
orangeBluePulse: {
|
|
94799
|
-
interval: 100,
|
|
94800
|
-
frames: [
|
|
94801
|
-
"\uD83D\uDD38 ",
|
|
94802
|
-
"\uD83D\uDD36 ",
|
|
94803
|
-
"\uD83D\uDFE0 ",
|
|
94804
|
-
"\uD83D\uDFE0 ",
|
|
94805
|
-
"\uD83D\uDD36 ",
|
|
94806
|
-
"\uD83D\uDD39 ",
|
|
94807
|
-
"\uD83D\uDD37 ",
|
|
94808
|
-
"\uD83D\uDD35 ",
|
|
94809
|
-
"\uD83D\uDD35 ",
|
|
94810
|
-
"\uD83D\uDD37 "
|
|
94811
|
-
]
|
|
94812
|
-
},
|
|
94813
|
-
timeTravel: {
|
|
94814
|
-
interval: 100,
|
|
94815
|
-
frames: [
|
|
94816
|
-
"\uD83D\uDD5B ",
|
|
94817
|
-
"\uD83D\uDD5A ",
|
|
94818
|
-
"\uD83D\uDD59 ",
|
|
94819
|
-
"\uD83D\uDD58 ",
|
|
94820
|
-
"\uD83D\uDD57 ",
|
|
94821
|
-
"\uD83D\uDD56 ",
|
|
94822
|
-
"\uD83D\uDD55 ",
|
|
94823
|
-
"\uD83D\uDD54 ",
|
|
94824
|
-
"\uD83D\uDD53 ",
|
|
94825
|
-
"\uD83D\uDD52 ",
|
|
94826
|
-
"\uD83D\uDD51 ",
|
|
94827
|
-
"\uD83D\uDD50 "
|
|
94828
|
-
]
|
|
94829
|
-
},
|
|
94830
|
-
aesthetic: {
|
|
94831
|
-
interval: 80,
|
|
94832
|
-
frames: [
|
|
94833
|
-
"\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1",
|
|
94834
|
-
"\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1",
|
|
94835
|
-
"\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1",
|
|
94836
|
-
"\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1",
|
|
94837
|
-
"\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1",
|
|
94838
|
-
"\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1",
|
|
94839
|
-
"\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0",
|
|
94840
|
-
"\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"
|
|
94841
|
-
]
|
|
94842
|
-
},
|
|
94843
|
-
dwarfFortress: {
|
|
94844
|
-
interval: 80,
|
|
94845
|
-
frames: [
|
|
94846
|
-
" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94847
|
-
"\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94848
|
-
"\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94849
|
-
"\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94850
|
-
"\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94851
|
-
"\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94852
|
-
"\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94853
|
-
"\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94854
|
-
"\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94855
|
-
"\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94856
|
-
" \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94857
|
-
" \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94858
|
-
" \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94859
|
-
" \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94860
|
-
" \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94861
|
-
" \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94862
|
-
" \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94863
|
-
" \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94864
|
-
" \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94865
|
-
" \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94866
|
-
" \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94867
|
-
" \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94868
|
-
" \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94869
|
-
" \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94870
|
-
" \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94871
|
-
" \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94872
|
-
" \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94873
|
-
" \u263A \u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94874
|
-
" \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94875
|
-
" \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94876
|
-
" \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
|
|
94877
|
-
" \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
|
|
94878
|
-
" \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
|
|
94879
|
-
" \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
|
|
94880
|
-
" \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
|
|
94881
|
-
" \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
|
|
94882
|
-
" \u263A \u2588\u2588\xA3\xA3\xA3 ",
|
|
94883
|
-
" \u263A\u2588\u2588\xA3\xA3\xA3 ",
|
|
94884
|
-
" \u263A\u2588\u2588\xA3\xA3\xA3 ",
|
|
94885
|
-
" \u263A\u2593\u2588\xA3\xA3\xA3 ",
|
|
94886
|
-
" \u263A\u2593\u2588\xA3\xA3\xA3 ",
|
|
94887
|
-
" \u263A\u2592\u2588\xA3\xA3\xA3 ",
|
|
94888
|
-
" \u263A\u2592\u2588\xA3\xA3\xA3 ",
|
|
94889
|
-
" \u263A\u2591\u2588\xA3\xA3\xA3 ",
|
|
94890
|
-
" \u263A\u2591\u2588\xA3\xA3\xA3 ",
|
|
94891
|
-
" \u263A \u2588\xA3\xA3\xA3 ",
|
|
94892
|
-
" \u263A\u2588\xA3\xA3\xA3 ",
|
|
94893
|
-
" \u263A\u2588\xA3\xA3\xA3 ",
|
|
94894
|
-
" \u263A\u2593\xA3\xA3\xA3 ",
|
|
94895
|
-
" \u263A\u2593\xA3\xA3\xA3 ",
|
|
94896
|
-
" \u263A\u2592\xA3\xA3\xA3 ",
|
|
94897
|
-
" \u263A\u2592\xA3\xA3\xA3 ",
|
|
94898
|
-
" \u263A\u2591\xA3\xA3\xA3 ",
|
|
94899
|
-
" \u263A\u2591\xA3\xA3\xA3 ",
|
|
94900
|
-
" \u263A \xA3\xA3\xA3 ",
|
|
94901
|
-
" \u263A\xA3\xA3\xA3 ",
|
|
94902
|
-
" \u263A\xA3\xA3\xA3 ",
|
|
94903
|
-
" \u263A\u2593\xA3\xA3 ",
|
|
94904
|
-
" \u263A\u2593\xA3\xA3 ",
|
|
94905
|
-
" \u263A\u2592\xA3\xA3 ",
|
|
94906
|
-
" \u263A\u2592\xA3\xA3 ",
|
|
94907
|
-
" \u263A\u2591\xA3\xA3 ",
|
|
94908
|
-
" \u263A\u2591\xA3\xA3 ",
|
|
94909
|
-
" \u263A \xA3\xA3 ",
|
|
94910
|
-
" \u263A\xA3\xA3 ",
|
|
94911
|
-
" \u263A\xA3\xA3 ",
|
|
94912
|
-
" \u263A\u2593\xA3 ",
|
|
94913
|
-
" \u263A\u2593\xA3 ",
|
|
94914
|
-
" \u263A\u2592\xA3 ",
|
|
94915
|
-
" \u263A\u2592\xA3 ",
|
|
94916
|
-
" \u263A\u2591\xA3 ",
|
|
94917
|
-
" \u263A\u2591\xA3 ",
|
|
94918
|
-
" \u263A \xA3 ",
|
|
94919
|
-
" \u263A\xA3 ",
|
|
94920
|
-
" \u263A\xA3 ",
|
|
94921
|
-
" \u263A\u2593 ",
|
|
94922
|
-
" \u263A\u2593 ",
|
|
94923
|
-
" \u263A\u2592 ",
|
|
94924
|
-
" \u263A\u2592 ",
|
|
94925
|
-
" \u263A\u2591 ",
|
|
94926
|
-
" \u263A\u2591 ",
|
|
94927
|
-
" \u263A ",
|
|
94928
|
-
" \u263A &",
|
|
94929
|
-
" \u263A \u263C&",
|
|
94930
|
-
" \u263A \u263C &",
|
|
94931
|
-
" \u263A\u263C &",
|
|
94932
|
-
" \u263A\u263C & ",
|
|
94933
|
-
" \u203C & ",
|
|
94934
|
-
" \u263A & ",
|
|
94935
|
-
" \u203C & ",
|
|
94936
|
-
" \u263A & ",
|
|
94937
|
-
" \u203C & ",
|
|
94938
|
-
" \u263A & ",
|
|
94939
|
-
"\u203C & ",
|
|
94940
|
-
" & ",
|
|
94941
|
-
" & ",
|
|
94942
|
-
" & \u2591 ",
|
|
94943
|
-
" & \u2592 ",
|
|
94944
|
-
" & \u2593 ",
|
|
94945
|
-
" & \xA3 ",
|
|
94946
|
-
" & \u2591\xA3 ",
|
|
94947
|
-
" & \u2592\xA3 ",
|
|
94948
|
-
" & \u2593\xA3 ",
|
|
94949
|
-
" & \xA3\xA3 ",
|
|
94950
|
-
" & \u2591\xA3\xA3 ",
|
|
94951
|
-
" & \u2592\xA3\xA3 ",
|
|
94952
|
-
"& \u2593\xA3\xA3 ",
|
|
94953
|
-
"& \xA3\xA3\xA3 ",
|
|
94954
|
-
" \u2591\xA3\xA3\xA3 ",
|
|
94955
|
-
" \u2592\xA3\xA3\xA3 ",
|
|
94956
|
-
" \u2593\xA3\xA3\xA3 ",
|
|
94957
|
-
" \u2588\xA3\xA3\xA3 ",
|
|
94958
|
-
" \u2591\u2588\xA3\xA3\xA3 ",
|
|
94959
|
-
" \u2592\u2588\xA3\xA3\xA3 ",
|
|
94960
|
-
" \u2593\u2588\xA3\xA3\xA3 ",
|
|
94961
|
-
" \u2588\u2588\xA3\xA3\xA3 ",
|
|
94962
|
-
" \u2591\u2588\u2588\xA3\xA3\xA3 ",
|
|
94963
|
-
" \u2592\u2588\u2588\xA3\xA3\xA3 ",
|
|
94964
|
-
" \u2593\u2588\u2588\xA3\xA3\xA3 ",
|
|
94965
|
-
" \u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94966
|
-
" \u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94967
|
-
" \u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94968
|
-
" \u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94969
|
-
" \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94970
|
-
" \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94971
|
-
" \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94972
|
-
" \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94973
|
-
" \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94974
|
-
" \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94975
|
-
" \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94976
|
-
" \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94977
|
-
" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
94978
|
-
" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "
|
|
94979
|
-
]
|
|
94980
|
-
}
|
|
94981
|
-
};
|
|
94982
|
-
});
|
|
94983
|
-
|
|
94984
|
-
// node_modules/cli-spinners/index.js
|
|
94985
|
-
var require_cli_spinners = __commonJS((exports, module) => {
|
|
94986
|
-
var spinners = Object.assign({}, require_spinners());
|
|
94987
|
-
var spinnersList = Object.keys(spinners);
|
|
94988
|
-
Object.defineProperty(spinners, "random", {
|
|
94989
|
-
get() {
|
|
94990
|
-
const randomIndex = Math.floor(Math.random() * spinnersList.length);
|
|
94991
|
-
const spinnerName = spinnersList[randomIndex];
|
|
94992
|
-
return spinners[spinnerName];
|
|
94993
|
-
}
|
|
94994
|
-
});
|
|
94995
|
-
module.exports = spinners;
|
|
94996
|
-
});
|
|
94997
|
-
|
|
94998
93480
|
// src/commands/curator.ts
|
|
94999
93481
|
var exports_curator = {};
|
|
95000
93482
|
__export(exports_curator, {
|
|
@@ -95417,7 +93899,6 @@ async function buildPlanModeContext(workdir, fullConfig, options, deps) {
|
|
|
95417
93899
|
branchName,
|
|
95418
93900
|
timeoutSeconds,
|
|
95419
93901
|
config: config2,
|
|
95420
|
-
fullConfig,
|
|
95421
93902
|
options,
|
|
95422
93903
|
runtime,
|
|
95423
93904
|
interactionChain,
|
|
@@ -95528,7 +94009,7 @@ var _debatePlanDeps = {
|
|
|
95528
94009
|
class DebatePlanStrategy {
|
|
95529
94010
|
mode = "debate";
|
|
95530
94011
|
async execute(ctx) {
|
|
95531
|
-
const { taskContext, outputFormat } = new PlanPromptBuilder().build(ctx.specContent, ctx.codebaseContext, undefined, ctx.relativePackages, ctx.packageDetails, ctx.
|
|
94012
|
+
const { taskContext, outputFormat } = new PlanPromptBuilder().build(ctx.specContent, ctx.codebaseContext, undefined, ctx.relativePackages, ctx.packageDetails, ctx.config.project);
|
|
95532
94013
|
const planStage = ctx.config.debate?.stages?.plan;
|
|
95533
94014
|
if (!planStage) {
|
|
95534
94015
|
throw new NaxError("[plan] debate strategy requires config.debate.stages.plan", "PLAN_DEBATE_STAGE_CONFIG_MISSING", {
|
|
@@ -95548,7 +94029,7 @@ class DebatePlanStrategy {
|
|
|
95548
94029
|
ctx: callCtx,
|
|
95549
94030
|
stage: "plan",
|
|
95550
94031
|
stageConfig,
|
|
95551
|
-
config: ctx.
|
|
94032
|
+
config: ctx.runtime.configLoader.current(),
|
|
95552
94033
|
workdir: ctx.workdir,
|
|
95553
94034
|
featureName: ctx.options.feature,
|
|
95554
94035
|
timeoutSeconds: ctx.timeoutSeconds,
|
|
@@ -95560,7 +94041,7 @@ class DebatePlanStrategy {
|
|
|
95560
94041
|
feature: ctx.options.feature,
|
|
95561
94042
|
outputDir: ctx.outputDir,
|
|
95562
94043
|
timeoutSeconds: ctx.timeoutSeconds,
|
|
95563
|
-
maxInteractionTurns: ctx.
|
|
94044
|
+
maxInteractionTurns: ctx.config.agent?.maxInteractionTurns,
|
|
95564
94045
|
specContent: ctx.specContent
|
|
95565
94046
|
});
|
|
95566
94047
|
if (debateResult.outcome !== "failed" && debateResult.output) {
|
|
@@ -95572,7 +94053,7 @@ class DebatePlanStrategy {
|
|
|
95572
94053
|
const prd = await callOp({
|
|
95573
94054
|
...callCtx,
|
|
95574
94055
|
interactionBridge: ctx.interactionBridge,
|
|
95575
|
-
maxInteractionTurns: ctx.
|
|
94056
|
+
maxInteractionTurns: ctx.config.agent?.maxInteractionTurns
|
|
95576
94057
|
}, planInteractiveOp, {
|
|
95577
94058
|
specContent: ctx.specContent,
|
|
95578
94059
|
codebaseContext: ctx.codebaseContext,
|
|
@@ -95581,7 +94062,7 @@ class DebatePlanStrategy {
|
|
|
95581
94062
|
outputPath: ctx.outputPath,
|
|
95582
94063
|
packages: ctx.relativePackages,
|
|
95583
94064
|
packageDetails: ctx.packageDetails,
|
|
95584
|
-
projectProfile: ctx.
|
|
94065
|
+
projectProfile: ctx.config.project
|
|
95585
94066
|
});
|
|
95586
94067
|
assertIsValidPrd(prd);
|
|
95587
94068
|
const withProject = { ...prd, project: ctx.projectName };
|
|
@@ -95609,7 +94090,7 @@ var _pipelinePlanDeps = {
|
|
|
95609
94090
|
class PipelinePlanStrategy {
|
|
95610
94091
|
mode = "pipeline";
|
|
95611
94092
|
async execute(ctx) {
|
|
95612
|
-
if (ctx.
|
|
94093
|
+
if (ctx.config.debate?.enabled === true) {
|
|
95613
94094
|
ctx.deps.getLogger()?.warn("plan", "pipeline mode active; debate config ignored", {
|
|
95614
94095
|
storyId: ctx.options.feature,
|
|
95615
94096
|
mode: "pipeline",
|
|
@@ -95645,10 +94126,10 @@ class PipelinePlanStrategy {
|
|
|
95645
94126
|
codebaseContext: ctx.codebaseContext,
|
|
95646
94127
|
feature: ctx.options.feature,
|
|
95647
94128
|
branchName: ctx.branchName,
|
|
95648
|
-
citationThreshold: ctx.
|
|
94129
|
+
citationThreshold: ctx.config.plan.citationThreshold,
|
|
95649
94130
|
packages: ctx.relativePackages,
|
|
95650
94131
|
packageDetails: ctx.packageDetails,
|
|
95651
|
-
projectProfile: ctx.
|
|
94132
|
+
projectProfile: ctx.config.project
|
|
95652
94133
|
};
|
|
95653
94134
|
const draft = await _pipelinePlanDeps.callOp(callCtx, _pipelinePlanDeps.planDraftOp, draftCtx);
|
|
95654
94135
|
const verdict = await _pipelinePlanDeps.runPlanCritic({
|
|
@@ -95657,7 +94138,7 @@ class PipelinePlanStrategy {
|
|
|
95657
94138
|
workdir: ctx.workdir,
|
|
95658
94139
|
runId: ctx.runtime.runId,
|
|
95659
94140
|
storyId: ctx.options.feature,
|
|
95660
|
-
config: ctx.
|
|
94141
|
+
config: ctx.runtime.configLoader.current(),
|
|
95661
94142
|
callCtx,
|
|
95662
94143
|
draftCtx
|
|
95663
94144
|
});
|
|
@@ -95691,7 +94172,7 @@ class RefinePlanStrategy {
|
|
|
95691
94172
|
storyId: ctx.options.feature,
|
|
95692
94173
|
featureName: ctx.options.feature,
|
|
95693
94174
|
interactionBridge: ctx.interactionBridge,
|
|
95694
|
-
maxInteractionTurns: ctx.
|
|
94175
|
+
maxInteractionTurns: ctx.config.agent?.maxInteractionTurns
|
|
95695
94176
|
}, _refinePlanDeps.planRefineOp, {
|
|
95696
94177
|
specContent: ctx.specContent,
|
|
95697
94178
|
codebaseContext: ctx.codebaseContext,
|
|
@@ -95700,7 +94181,8 @@ class RefinePlanStrategy {
|
|
|
95700
94181
|
outputPath: ctx.outputPath,
|
|
95701
94182
|
packages: ctx.relativePackages,
|
|
95702
94183
|
packageDetails: ctx.packageDetails,
|
|
95703
|
-
projectProfile: ctx.
|
|
94184
|
+
projectProfile: ctx.config.project,
|
|
94185
|
+
specGuard: ctx.config.plan.specGuard ?? false
|
|
95704
94186
|
});
|
|
95705
94187
|
return writeOrRecoverPrd(ctx, prd);
|
|
95706
94188
|
} catch (err) {
|
|
@@ -95731,7 +94213,7 @@ class SinglePlanStrategy {
|
|
|
95731
94213
|
storyId: ctx.options.feature,
|
|
95732
94214
|
featureName: ctx.options.feature,
|
|
95733
94215
|
interactionBridge: ctx.interactionBridge,
|
|
95734
|
-
maxInteractionTurns: ctx.
|
|
94216
|
+
maxInteractionTurns: ctx.config.agent?.maxInteractionTurns
|
|
95735
94217
|
}, _singlePlanDeps.planInteractiveOp, {
|
|
95736
94218
|
specContent: ctx.specContent,
|
|
95737
94219
|
codebaseContext: ctx.codebaseContext,
|
|
@@ -95740,7 +94222,7 @@ class SinglePlanStrategy {
|
|
|
95740
94222
|
outputPath: ctx.outputPath,
|
|
95741
94223
|
packages: ctx.relativePackages,
|
|
95742
94224
|
packageDetails: ctx.packageDetails,
|
|
95743
|
-
projectProfile: ctx.
|
|
94225
|
+
projectProfile: ctx.config.project
|
|
95744
94226
|
});
|
|
95745
94227
|
assertIsValidPrd(prd);
|
|
95746
94228
|
await ctx.deps.writeFile(ctx.outputPath, JSON.stringify({ ...prd, project: ctx.projectName }, null, 2));
|
|
@@ -98539,7 +97021,8 @@ async function runSetupPhase(options) {
|
|
|
98539
97021
|
getStoriesCompleted: options.getStoriesCompleted,
|
|
98540
97022
|
getTotalStories: options.getTotalStories,
|
|
98541
97023
|
agentGetFn: options.agentGetFn,
|
|
98542
|
-
agentManager: options.agentManager
|
|
97024
|
+
agentManager: options.agentManager,
|
|
97025
|
+
agentStreamEvents: options.agentStreamEvents
|
|
98543
97026
|
});
|
|
98544
97027
|
return setupResult;
|
|
98545
97028
|
}
|
|
@@ -98563,7 +97046,8 @@ async function run(options) {
|
|
|
98563
97046
|
logFilePath,
|
|
98564
97047
|
formatterMode = "normal",
|
|
98565
97048
|
headless = false,
|
|
98566
|
-
skipPrecheck = false
|
|
97049
|
+
skipPrecheck = false,
|
|
97050
|
+
agentStreamEvents
|
|
98567
97051
|
} = options;
|
|
98568
97052
|
const startTime = Date.now();
|
|
98569
97053
|
const runStartedAt = new Date().toISOString();
|
|
@@ -98591,6 +97075,7 @@ async function run(options) {
|
|
|
98591
97075
|
skipPrecheck,
|
|
98592
97076
|
headless,
|
|
98593
97077
|
formatterMode,
|
|
97078
|
+
agentStreamEvents,
|
|
98594
97079
|
getTotalCost: () => totalCost,
|
|
98595
97080
|
getIterations: () => iterations,
|
|
98596
97081
|
getStoriesCompleted: () => storiesCompleted,
|
|
@@ -104906,7 +103391,7 @@ var import_react27 = __toESM(require_react(), 1);
|
|
|
104906
103391
|
// node_modules/ink/build/hooks/use-cursor.js
|
|
104907
103392
|
var import_react28 = __toESM(require_react(), 1);
|
|
104908
103393
|
// src/tui/App.tsx
|
|
104909
|
-
var
|
|
103394
|
+
var import_react35 = __toESM(require_react(), 1);
|
|
104910
103395
|
|
|
104911
103396
|
// src/utils/queue-writer.ts
|
|
104912
103397
|
async function writeQueueCommand(queueFilePath, command) {
|
|
@@ -105234,27 +103719,6 @@ function HelpOverlay({ visible = false }) {
|
|
|
105234
103719
|
}, undefined, true, undefined, this);
|
|
105235
103720
|
}
|
|
105236
103721
|
|
|
105237
|
-
// node_modules/ink-spinner/build/index.js
|
|
105238
|
-
var import_react29 = __toESM(require_react(), 1);
|
|
105239
|
-
var import_cli_spinners = __toESM(require_cli_spinners(), 1);
|
|
105240
|
-
function Spinner({ type = "dots" }) {
|
|
105241
|
-
const [frame, setFrame] = import_react29.useState(0);
|
|
105242
|
-
const spinner = import_cli_spinners.default[type];
|
|
105243
|
-
import_react29.useEffect(() => {
|
|
105244
|
-
const timer = setInterval(() => {
|
|
105245
|
-
setFrame((previousFrame) => {
|
|
105246
|
-
const isLastFrame = previousFrame === spinner.frames.length - 1;
|
|
105247
|
-
return isLastFrame ? 0 : previousFrame + 1;
|
|
105248
|
-
});
|
|
105249
|
-
}, spinner.interval);
|
|
105250
|
-
return () => {
|
|
105251
|
-
clearInterval(timer);
|
|
105252
|
-
};
|
|
105253
|
-
}, [spinner]);
|
|
105254
|
-
return import_react29.default.createElement(Text, null, spinner.frames[frame]);
|
|
105255
|
-
}
|
|
105256
|
-
var build_default = Spinner;
|
|
105257
|
-
|
|
105258
103722
|
// src/tui/components/LiveActivityPanel.tsx
|
|
105259
103723
|
var jsx_dev_runtime3 = __toESM(require_jsx_dev_runtime(), 1);
|
|
105260
103724
|
var MAX_ESCALATION_DISPLAY = 5;
|
|
@@ -105340,13 +103804,8 @@ function LiveActivityPanel({
|
|
|
105340
103804
|
paddingY: 1,
|
|
105341
103805
|
children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Text, {
|
|
105342
103806
|
dimColor: true,
|
|
105343
|
-
children:
|
|
105344
|
-
|
|
105345
|
-
type: "dots"
|
|
105346
|
-
}, undefined, false, undefined, this),
|
|
105347
|
-
" Waiting for agent..."
|
|
105348
|
-
]
|
|
105349
|
-
}, undefined, true, undefined, this)
|
|
103807
|
+
children: "Waiting for agent..."
|
|
103808
|
+
}, undefined, false, undefined, this)
|
|
105350
103809
|
}, undefined, false, undefined, this)
|
|
105351
103810
|
]
|
|
105352
103811
|
}, undefined, true, undefined, this);
|
|
@@ -105519,13 +103978,13 @@ function StatusBar({
|
|
|
105519
103978
|
}
|
|
105520
103979
|
|
|
105521
103980
|
// src/tui/components/StoriesPanel.tsx
|
|
105522
|
-
var
|
|
103981
|
+
var import_react30 = __toESM(require_react(), 1);
|
|
105523
103982
|
|
|
105524
103983
|
// src/tui/hooks/useLayout.ts
|
|
105525
|
-
var
|
|
103984
|
+
var import_react29 = __toESM(require_react(), 1);
|
|
105526
103985
|
function useLayout() {
|
|
105527
|
-
const [layout, setLayout] =
|
|
105528
|
-
|
|
103986
|
+
const [layout, setLayout] = import_react29.useState(() => computeLayout());
|
|
103987
|
+
import_react29.useEffect(() => {
|
|
105529
103988
|
const handleResize = () => {
|
|
105530
103989
|
setLayout(computeLayout());
|
|
105531
103990
|
};
|
|
@@ -105584,8 +104043,8 @@ function getStatusIcon(status) {
|
|
|
105584
104043
|
function StoriesPanel({ stories, width, compact: compact2 = false, maxHeight }) {
|
|
105585
104044
|
const maxVisible = compact2 ? COMPACT_MAX_VISIBLE_STORIES : MAX_VISIBLE_STORIES;
|
|
105586
104045
|
const needsScrolling = stories.length > maxVisible;
|
|
105587
|
-
const [scrollOffset, setScrollOffset] =
|
|
105588
|
-
|
|
104046
|
+
const [scrollOffset, setScrollOffset] = import_react30.useState(0);
|
|
104047
|
+
import_react30.useEffect(() => {
|
|
105589
104048
|
const runningIndex = stories.findIndex((s) => s.status === "running");
|
|
105590
104049
|
if (runningIndex !== -1 && needsScrolling) {
|
|
105591
104050
|
if (runningIndex < scrollOffset) {
|
|
@@ -105703,10 +104162,10 @@ function StoriesPanel({ stories, width, compact: compact2 = false, maxHeight })
|
|
|
105703
104162
|
}
|
|
105704
104163
|
|
|
105705
104164
|
// src/tui/hooks/useAgentStreamEvents.ts
|
|
105706
|
-
var
|
|
104165
|
+
var import_react31 = __toESM(require_react(), 1);
|
|
105707
104166
|
function useAgentStreamEvents(bus) {
|
|
105708
|
-
const [activeCalls, setActiveCalls] =
|
|
105709
|
-
|
|
104167
|
+
const [activeCalls, setActiveCalls] = import_react31.useState(new Map);
|
|
104168
|
+
import_react31.useEffect(() => {
|
|
105710
104169
|
if (!bus)
|
|
105711
104170
|
return;
|
|
105712
104171
|
const unsubscribe = bus.onAgentStream((event) => {
|
|
@@ -105847,9 +104306,9 @@ function useKeyboard({ focus, currentStory, onAction, disabled = false }) {
|
|
|
105847
104306
|
|
|
105848
104307
|
// src/tui/hooks/usePipelineBusEvents.ts
|
|
105849
104308
|
init_pipeline();
|
|
105850
|
-
var
|
|
104309
|
+
var import_react32 = __toESM(require_react(), 1);
|
|
105851
104310
|
function usePipelineBusEvents(initialStories) {
|
|
105852
|
-
const [state, setState] =
|
|
104311
|
+
const [state, setState] = import_react32.useState(() => ({
|
|
105853
104312
|
stories: initialStories,
|
|
105854
104313
|
totalCost: 0,
|
|
105855
104314
|
elapsedMs: 0,
|
|
@@ -105857,8 +104316,8 @@ function usePipelineBusEvents(initialStories) {
|
|
|
105857
104316
|
runErrored: false,
|
|
105858
104317
|
escalationLog: []
|
|
105859
104318
|
}));
|
|
105860
|
-
const startTimeRef =
|
|
105861
|
-
|
|
104319
|
+
const startTimeRef = import_react32.useRef(Date.now());
|
|
104320
|
+
import_react32.useEffect(() => {
|
|
105862
104321
|
const startTime = startTimeRef.current;
|
|
105863
104322
|
const timer = setInterval(() => {
|
|
105864
104323
|
setState((prev) => ({
|
|
@@ -105971,10 +104430,10 @@ function usePipelineBusEvents(initialStories) {
|
|
|
105971
104430
|
}
|
|
105972
104431
|
|
|
105973
104432
|
// src/tui/hooks/usePipelineEvents.ts
|
|
105974
|
-
var
|
|
104433
|
+
var import_react33 = __toESM(require_react(), 1);
|
|
105975
104434
|
function usePipelineEvents(events) {
|
|
105976
|
-
const [currentStage, setCurrentStage] =
|
|
105977
|
-
|
|
104435
|
+
const [currentStage, setCurrentStage] = import_react33.useState(undefined);
|
|
104436
|
+
import_react33.useEffect(() => {
|
|
105978
104437
|
const onStageEnter = (stage) => setCurrentStage(stage);
|
|
105979
104438
|
events.on("stage:enter", onStageEnter);
|
|
105980
104439
|
return () => events.off("stage:enter", onStageEnter);
|
|
@@ -105983,21 +104442,21 @@ function usePipelineEvents(events) {
|
|
|
105983
104442
|
}
|
|
105984
104443
|
|
|
105985
104444
|
// src/tui/hooks/usePty.ts
|
|
105986
|
-
var
|
|
104445
|
+
var import_react34 = __toESM(require_react(), 1);
|
|
105987
104446
|
var MAX_PTY_BUFFER_LINES = 500;
|
|
105988
104447
|
var MAX_LINE_LENGTH = 1e4;
|
|
105989
104448
|
var PTY_FLUSH_INTERVAL_MS = 100;
|
|
105990
104449
|
function usePty(options) {
|
|
105991
|
-
const [state, setState] =
|
|
104450
|
+
const [state, setState] = import_react34.useState(() => ({
|
|
105992
104451
|
outputLines: [],
|
|
105993
104452
|
isRunning: false
|
|
105994
104453
|
}));
|
|
105995
|
-
const [handle, setHandle] =
|
|
104454
|
+
const [handle, setHandle] = import_react34.useState(null);
|
|
105996
104455
|
const command = options?.command;
|
|
105997
104456
|
const argsJson = JSON.stringify(options?.args);
|
|
105998
104457
|
const cwd2 = options?.cwd;
|
|
105999
104458
|
const envJson = JSON.stringify(options?.env);
|
|
106000
|
-
|
|
104459
|
+
import_react34.useEffect(() => {
|
|
106001
104460
|
if (!command) {
|
|
106002
104461
|
return;
|
|
106003
104462
|
}
|
|
@@ -106066,8 +104525,8 @@ function usePty(options) {
|
|
|
106066
104525
|
proc.kill();
|
|
106067
104526
|
};
|
|
106068
104527
|
}, [command, argsJson, cwd2, envJson]);
|
|
106069
|
-
const handleResize =
|
|
106070
|
-
|
|
104528
|
+
const handleResize = import_react34.useCallback((_cols, _rows) => {}, []);
|
|
104529
|
+
import_react34.useEffect(() => {
|
|
106071
104530
|
const onResize = () => {
|
|
106072
104531
|
const cols = process.stdout.columns ?? 80;
|
|
106073
104532
|
const rows = process.stdout.rows ?? 24;
|
|
@@ -106103,11 +104562,11 @@ function App2({
|
|
|
106103
104562
|
const busState = usePipelineBusEvents(initialStories);
|
|
106104
104563
|
const { currentStage } = usePipelineEvents(events);
|
|
106105
104564
|
const { exit } = use_app_default();
|
|
106106
|
-
const [focus, setFocus] =
|
|
106107
|
-
const [showHelp, setShowHelp] =
|
|
106108
|
-
const [showCost, setShowCost] =
|
|
106109
|
-
const [showQuitConfirm, setShowQuitConfirm] =
|
|
106110
|
-
const [showAbortConfirm, setShowAbortConfirm] =
|
|
104565
|
+
const [focus, setFocus] = import_react35.useState("stories" /* Stories */);
|
|
104566
|
+
const [showHelp, setShowHelp] = import_react35.useState(false);
|
|
104567
|
+
const [showCost, setShowCost] = import_react35.useState(false);
|
|
104568
|
+
const [showQuitConfirm, setShowQuitConfirm] = import_react35.useState(false);
|
|
104569
|
+
const [showAbortConfirm, setShowAbortConfirm] = import_react35.useState(false);
|
|
106111
104570
|
const { handle: ptyHandle } = usePty(ptyOptions ?? null);
|
|
106112
104571
|
const { activeCalls } = useAgentStreamEvents(agentStreamEvents);
|
|
106113
104572
|
const isRunComplete = !!busState.runSummary;
|
|
@@ -106683,7 +105142,8 @@ program2.command("run").description("Run the orchestration loop for a feature").
|
|
|
106683
105142
|
filePath: logFilePath,
|
|
106684
105143
|
useChalk: true,
|
|
106685
105144
|
formatterMode: useHeadless ? formatterMode : undefined,
|
|
106686
|
-
headless: useHeadless
|
|
105145
|
+
headless: useHeadless,
|
|
105146
|
+
suppressConsole: !useHeadless
|
|
106687
105147
|
});
|
|
106688
105148
|
if (options.agent) {
|
|
106689
105149
|
config2.agent ??= {};
|
|
@@ -106693,6 +105153,7 @@ program2.command("run").description("Run the orchestration loop for a feature").
|
|
|
106693
105153
|
const globalNaxDir = join83(homedir3(), ".nax");
|
|
106694
105154
|
const hooks = await loadHooksConfig(naxDir, globalNaxDir);
|
|
106695
105155
|
const eventEmitter = new PipelineEventEmitter;
|
|
105156
|
+
const agentStreamEvents = useHeadless ? undefined : new AgentStreamEventBus;
|
|
106696
105157
|
let tuiInstance;
|
|
106697
105158
|
if (!useHeadless) {
|
|
106698
105159
|
const prd = await loadPRD(prdPath);
|
|
@@ -106706,7 +105167,9 @@ program2.command("run").description("Run the orchestration loop for a feature").
|
|
|
106706
105167
|
feature: options.feature,
|
|
106707
105168
|
stories: initialStories,
|
|
106708
105169
|
events: eventEmitter,
|
|
106709
|
-
ptyOptions: null
|
|
105170
|
+
ptyOptions: null,
|
|
105171
|
+
agentStreamEvents,
|
|
105172
|
+
queueFilePath: join83(workdir, ".queue.txt")
|
|
106710
105173
|
});
|
|
106711
105174
|
} else {
|
|
106712
105175
|
console.log(source_default.dim(" [Headless mode \u2014 pipe output]"));
|
|
@@ -106735,7 +105198,8 @@ program2.command("run").description("Run the orchestration loop for a feature").
|
|
|
106735
105198
|
logFilePath,
|
|
106736
105199
|
formatterMode: useHeadless ? formatterMode : undefined,
|
|
106737
105200
|
headless: useHeadless,
|
|
106738
|
-
skipPrecheck: options.skipPrecheck ?? false
|
|
105201
|
+
skipPrecheck: options.skipPrecheck ?? false,
|
|
105202
|
+
agentStreamEvents
|
|
106739
105203
|
});
|
|
106740
105204
|
const latestSymlink = join83(runsDir, "latest.jsonl");
|
|
106741
105205
|
try {
|