cherry-works 0.6.2 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/cw.js +1 -1
- package/dist/main.js +87 -53
- package/dist/portal/main.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -331,7 +331,9 @@ cw vendor add git@github.com:your-org/charter-baseline.git --ref v1.2.0
|
|
|
331
331
|
|
|
332
332
|
A vendor source is a git repository set up with `cw init`: author its charter
|
|
333
333
|
there, test it, and push. Only its `.cw/charter/` folder is installed, under
|
|
334
|
-
`.cw/vendor/<name>/`, pinned to the ref you chose
|
|
334
|
+
`.cw/vendor/<name>/`, pinned to the ref you chose, with the source's
|
|
335
|
+
`README.md` beside it, and left unstaged for you to read and commit, whatever
|
|
336
|
+
else you have in hand. A repository
|
|
335
337
|
without that folder is refused, and so is one that has vendors of its own:
|
|
336
338
|
vendoring is one level deep. Vendored primitives are read-only. To differ from
|
|
337
339
|
one, write your own primitive under a new id.
|
package/dist/cw.js
CHANGED
package/dist/main.js
CHANGED
|
@@ -21892,13 +21892,13 @@ var require_base64_js = __commonJS({
|
|
|
21892
21892
|
|
|
21893
21893
|
// main.ts
|
|
21894
21894
|
import { homedir } from "os";
|
|
21895
|
-
import { join as
|
|
21895
|
+
import { join as join6 } from "path";
|
|
21896
21896
|
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
21897
21897
|
|
|
21898
21898
|
// package.json
|
|
21899
21899
|
var package_default = {
|
|
21900
21900
|
name: "cherry-works",
|
|
21901
|
-
version: "0.
|
|
21901
|
+
version: "0.7.0",
|
|
21902
21902
|
description: "The charter engine: resolves a charter and compiles it into what a coding agent reads.",
|
|
21903
21903
|
keywords: [
|
|
21904
21904
|
"claude-code",
|
|
@@ -57665,7 +57665,8 @@ var BasePrimitive = class _BasePrimitive {
|
|
|
57665
57665
|
*
|
|
57666
57666
|
* Written as its author wrote it unless the compiler says otherwise (FR-139):
|
|
57667
57667
|
* `mixins` lend their bodies, before this one's own so it reads as the point
|
|
57668
|
-
* and theirs as the setting
|
|
57668
|
+
* and theirs as the setting, or after it where a mixin's `position` is `end`
|
|
57669
|
+
* — nothing is merged and no header moves (FR-006);
|
|
57669
57670
|
* and `idReplacer` rewrites the body as its reader uses it, each mcp origin,
|
|
57670
57671
|
* script and template it names as a link to its file (FR-147).
|
|
57671
57672
|
*/
|
|
@@ -57673,7 +57674,9 @@ var BasePrimitive = class _BasePrimitive {
|
|
|
57673
57674
|
mixins = [],
|
|
57674
57675
|
idReplacer = (body) => body
|
|
57675
57676
|
} = {}) {
|
|
57676
|
-
const
|
|
57677
|
+
const endMixins = mixins.filter((mixin3) => mixin3.headers.position === "end");
|
|
57678
|
+
const startMixins = mixins.filter((mixin3) => mixin3.headers.position === "start");
|
|
57679
|
+
const body = [...startMixins.map((mixin3) => mixin3.body), this.body, ...endMixins.map((mixin3) => mixin3.body)].filter((one) => one.trim() !== "").join("\n\n");
|
|
57677
57680
|
return [
|
|
57678
57681
|
DELIMITER,
|
|
57679
57682
|
...Object.entries({ kind: this.kind, ...this.headers }).map(([field, value]) => `${field}: ${formatFrontmatterValue(value)}`),
|
|
@@ -58848,8 +58851,14 @@ function matches(glob, path) {
|
|
|
58848
58851
|
}
|
|
58849
58852
|
|
|
58850
58853
|
// src/hexagon/domain/models/charter/primitive/AgentPrimitive.ts
|
|
58854
|
+
var MODEL_REFERENCE = /^([^:]+):(\S+)$/;
|
|
58851
58855
|
var AgentHeadersSchema = CommonHeadersSchema.extend({
|
|
58852
|
-
tools: GoodArraySchema
|
|
58856
|
+
tools: GoodArraySchema,
|
|
58857
|
+
/** The model it runs on, `<provider>:<model>`, the provider one this engine
|
|
58858
|
+
* compiles for; a host it does not name runs it on that host's default. */
|
|
58859
|
+
model: external_exports.string().refine((model) => isAgentProvider(model.match(MODEL_REFERENCE)?.[1]), {
|
|
58860
|
+
message: `"model" is written <provider>:<model>, the provider one of ${AGENT_PROVIDERS.join(", ")}: claude:haiku-4-5.`
|
|
58861
|
+
}).optional()
|
|
58853
58862
|
});
|
|
58854
58863
|
var AgentPrimitive = class _AgentPrimitive extends BasePrimitive {
|
|
58855
58864
|
static kind = "agent";
|
|
@@ -58873,6 +58882,12 @@ var AgentPrimitive = class _AgentPrimitive extends BasePrimitive {
|
|
|
58873
58882
|
description: "Review a diff and name what is wrong with it.",
|
|
58874
58883
|
tools: ["Read", "Grep", "[[mfbs/billing]]:search_code"]
|
|
58875
58884
|
};
|
|
58885
|
+
/** The model this host runs it on, as this host names it; none where its
|
|
58886
|
+
* model is named for another host, or not at all. */
|
|
58887
|
+
modelOf(provider) {
|
|
58888
|
+
const [, modelProvider, model] = this.headers.model?.match(MODEL_REFERENCE) ?? [];
|
|
58889
|
+
return modelProvider === provider ? model : void 0;
|
|
58890
|
+
}
|
|
58876
58891
|
/** One agent, or every fault its headers have (FR-004). */
|
|
58877
58892
|
static of(record2, body, assets = [], primitiveLayer) {
|
|
58878
58893
|
return new _AgentPrimitive(headersOf(_AgentPrimitive, AgentHeadersSchema, record2), body, assets, primitiveLayer);
|
|
@@ -59036,7 +59051,10 @@ var McpPrimitive = class _McpPrimitive extends BasePrimitive {
|
|
|
59036
59051
|
// src/hexagon/domain/models/charter/primitive/MixinPrimitive.ts
|
|
59037
59052
|
var MixinHeadersSchema = CommonHeadersSchema.extend({
|
|
59038
59053
|
/** Never: reading refuses a mixin that declares one. */
|
|
59039
|
-
mixins: external_exports.undefined().optional()
|
|
59054
|
+
mixins: external_exports.undefined().optional(),
|
|
59055
|
+
/** Where its body is lent: before its host's own, where it sets the scene and
|
|
59056
|
+
* where it goes unsaid, or after it, where it closes what the host says. */
|
|
59057
|
+
position: external_exports.enum(["start", "end"]).default("start")
|
|
59040
59058
|
});
|
|
59041
59059
|
var MixinPrimitive = class _MixinPrimitive extends BasePrimitive {
|
|
59042
59060
|
static kind = "mixin";
|
|
@@ -59056,7 +59074,8 @@ var MixinPrimitive = class _MixinPrimitive extends BasePrimitive {
|
|
|
59056
59074
|
static sample = {
|
|
59057
59075
|
id: "typescript-scope",
|
|
59058
59076
|
description: "What counts as TypeScript application code.",
|
|
59059
|
-
globs: ["src/**/*.ts"]
|
|
59077
|
+
globs: ["src/**/*.ts"],
|
|
59078
|
+
position: "start"
|
|
59060
59079
|
};
|
|
59061
59080
|
/** One mixin, or every fault its headers have (FR-004, FR-006). */
|
|
59062
59081
|
static of(record2, body, assets = [], primitiveLayer) {
|
|
@@ -60159,16 +60178,16 @@ async function ensureVCSReady(repo, vcs2, because) {
|
|
|
60159
60178
|
"This folder is not inside a git repository, and a vendor lives in one.",
|
|
60160
60179
|
'Run "git init" here, or run this again where your repository is.'
|
|
60161
60180
|
);
|
|
60162
|
-
if (!await vcs2.isClean(repo))
|
|
60181
|
+
if (because !== void 0 && !await vcs2.isClean(repo))
|
|
60163
60182
|
throw new DomainFault(
|
|
60164
60183
|
`This repository has work in hand, and ${because}.`,
|
|
60165
60184
|
"Commit or stash what you are holding, then run this again."
|
|
60166
60185
|
);
|
|
60167
60186
|
}
|
|
60168
60187
|
async function addVendor(repo, vcs2, source, version2) {
|
|
60169
|
-
await ensureVCSReady(repo, vcs2
|
|
60188
|
+
await ensureVCSReady(repo, vcs2);
|
|
60170
60189
|
const folder = `${VENDOR_DIRECTORY}/${vendorSourceOf(source).name}`;
|
|
60171
|
-
return vcs2.subtreeAdd(source, CHARTER_DIRECTORY, repo, folder, version2, VENDOR_DIRECTORY);
|
|
60190
|
+
return vcs2.subtreeAdd(source, [CHARTER_DIRECTORY, "README.md"], repo, folder, version2, VENDOR_DIRECTORY);
|
|
60172
60191
|
}
|
|
60173
60192
|
async function removeVendor(repo, vcs2, name) {
|
|
60174
60193
|
await ensureVCSReady(repo, vcs2, "removing a vendor commits that it is gone");
|
|
@@ -60732,7 +60751,12 @@ function claudeDocumentComponentOf(sc, compiledFile, agentTools) {
|
|
|
60732
60751
|
}
|
|
60733
60752
|
case AgentPrimitive.kind: {
|
|
60734
60753
|
const { tools } = sc.headers;
|
|
60735
|
-
|
|
60754
|
+
const claudeModel = sc.modelOf("claude");
|
|
60755
|
+
return ClaudeAgent.of(
|
|
60756
|
+
name,
|
|
60757
|
+
{ description: sc.description(), tools: (agentTools ?? tools).join(", "), ...claudeModel === void 0 ? {} : { model: claudeModel } },
|
|
60758
|
+
pointerTo(compiledFromClaudeFolder)
|
|
60759
|
+
);
|
|
60736
60760
|
}
|
|
60737
60761
|
// One kind of this host for the two the charter loads when the request calls
|
|
60738
60762
|
// for them: what decides that the body is worth opening is the description,
|
|
@@ -62213,6 +62237,7 @@ import { execFile } from "child_process";
|
|
|
62213
62237
|
import { rm as rm2 } from "fs/promises";
|
|
62214
62238
|
import { promisify } from "util";
|
|
62215
62239
|
import { fileURLToPath as fileURLToPath3 } from "url";
|
|
62240
|
+
import { basename as basename2, join as join3 } from "path";
|
|
62216
62241
|
var run = promisify(execFile);
|
|
62217
62242
|
var Git = class {
|
|
62218
62243
|
async isInstalled(folder) {
|
|
@@ -62256,11 +62281,13 @@ var Git = class {
|
|
|
62256
62281
|
}
|
|
62257
62282
|
}
|
|
62258
62283
|
/**
|
|
62259
|
-
* `git fetch`, handed the source exactly as it was written, then
|
|
62260
|
-
*
|
|
62261
|
-
*
|
|
62262
|
-
*
|
|
62263
|
-
*
|
|
62284
|
+
* `git fetch`, handed the source exactly as it was written, then each path
|
|
62285
|
+
* asked for read into an index of its own and checked out into the folder
|
|
62286
|
+
* given — a folder's files at that folder's root, a file under its own name:
|
|
62287
|
+
* the repository's own index is never touched, so nothing is staged, nothing
|
|
62288
|
+
* is committed, and whatever is in hand stays as it was. A folder already
|
|
62289
|
+
* there is replaced, so installing a source and bringing it up to date are
|
|
62290
|
+
* one call (FR-023, FR-030, FR-042).
|
|
62264
62291
|
*
|
|
62265
62292
|
* Which transport it is, whether the credentials are there, whether the
|
|
62266
62293
|
* version exists: git answers all three, and what it says is what the user
|
|
@@ -62268,12 +62295,11 @@ var Git = class {
|
|
|
62268
62295
|
* calls its own default.
|
|
62269
62296
|
*
|
|
62270
62297
|
* `git subtree` takes a source whole and cannot take one folder of it, so
|
|
62271
|
-
*
|
|
62298
|
+
* each path is read straight off what was fetched. Whether the first is
|
|
62272
62299
|
* there, and whether the refused one is, is asked of git before anything is
|
|
62273
|
-
* touched.
|
|
62274
|
-
* walk (FR-028); none lands where the copy is what was already there.
|
|
62300
|
+
* touched. What lands has no history to walk (FR-028).
|
|
62275
62301
|
*/
|
|
62276
|
-
async subtreeAdd(source,
|
|
62302
|
+
async subtreeAdd(source, includePaths, repo, intoSubFolder, version2, refusedIfSourceHolds) {
|
|
62277
62303
|
const cwd = fileURLToPath3(repo);
|
|
62278
62304
|
const ref = version2 ?? "HEAD";
|
|
62279
62305
|
try {
|
|
@@ -62284,36 +62310,44 @@ var Git = class {
|
|
|
62284
62310
|
version2 === void 0 ? "Check the address, and that you can reach it from here." : `Check the address, and that "${version2}" is a tag or branch it has.`
|
|
62285
62311
|
);
|
|
62286
62312
|
}
|
|
62287
|
-
const
|
|
62288
|
-
const
|
|
62289
|
-
({ stdout }) => stdout.trim()
|
|
62290
|
-
() =>
|
|
62313
|
+
const fetchedCommit = (await run("git", ["rev-parse", "FETCH_HEAD"], { cwd })).stdout.trim();
|
|
62314
|
+
const objectTypeAt = (path) => run("git", ["cat-file", "-t", `${fetchedCommit}:${path}`], { cwd }).then(
|
|
62315
|
+
({ stdout }) => stdout.trim(),
|
|
62316
|
+
() => void 0
|
|
62291
62317
|
);
|
|
62292
62318
|
const atVersion = version2 === void 0 ? "" : ` at ${version2}`;
|
|
62293
|
-
|
|
62294
|
-
|
|
62295
|
-
|
|
62296
|
-
|
|
62297
|
-
);
|
|
62298
|
-
if (refusedIfSourceHolds !== void 0 && await isTreeAt(refusedIfSourceHolds))
|
|
62319
|
+
const [requiredPath = ""] = includePaths;
|
|
62320
|
+
if (await objectTypeAt(requiredPath) === void 0)
|
|
62321
|
+
throw new DrivenFault(`${source} has no "${requiredPath}"${atVersion}.`, `Check that the source holds "${requiredPath}" at the version asked for.`);
|
|
62322
|
+
if (refusedIfSourceHolds !== void 0 && await objectTypeAt(refusedIfSourceHolds) === "tree")
|
|
62299
62323
|
throw new DrivenFault(
|
|
62300
62324
|
`${source} holds "${refusedIfSourceHolds}"${atVersion}, which this copy refuses.`,
|
|
62301
62325
|
`Remove "${refusedIfSourceHolds}" from the source, or copy a version without it.`
|
|
62302
62326
|
);
|
|
62303
|
-
const
|
|
62327
|
+
const vendorIndexPath = (await run("git", ["rev-parse", "--path-format=absolute", "--git-path", "cw-vendor-index"], { cwd })).stdout.trim();
|
|
62328
|
+
const vendorIndexEnv = { ...process.env, GIT_INDEX_FILE: vendorIndexPath };
|
|
62304
62329
|
try {
|
|
62305
|
-
await
|
|
62306
|
-
|
|
62307
|
-
|
|
62308
|
-
(
|
|
62309
|
-
|
|
62310
|
-
|
|
62311
|
-
|
|
62312
|
-
|
|
62330
|
+
await rm2(vendorIndexPath, { force: true });
|
|
62331
|
+
for (const includePath of includePaths) {
|
|
62332
|
+
const objectType = await objectTypeAt(includePath);
|
|
62333
|
+
if (objectType === "tree")
|
|
62334
|
+
await run("git", ["read-tree", `--prefix=${intoSubFolder}/`, `${fetchedCommit}:${includePath}`], { cwd, env: vendorIndexEnv });
|
|
62335
|
+
if (objectType === "blob") {
|
|
62336
|
+
const [fileMode = "100644", , fileHash = ""] = (await run("git", ["ls-tree", fetchedCommit, "--", includePath], { cwd })).stdout.split(/\s+/);
|
|
62337
|
+
await run("git", ["update-index", "--add", "--cacheinfo", `${fileMode},${fileHash},${intoSubFolder}/${basename2(includePath)}`], {
|
|
62338
|
+
cwd,
|
|
62339
|
+
env: vendorIndexEnv
|
|
62340
|
+
});
|
|
62341
|
+
}
|
|
62342
|
+
}
|
|
62343
|
+
await rm2(join3(cwd, intoSubFolder), { recursive: true, force: true });
|
|
62344
|
+
await run("git", ["checkout-index", "--all", "--force"], { cwd, env: vendorIndexEnv });
|
|
62313
62345
|
return intoSubFolder;
|
|
62314
62346
|
} catch (raised) {
|
|
62315
|
-
await run("git", ["restore", "--source=HEAD", "--
|
|
62316
|
-
throw new DrivenFault(`${raised}`, `Check that "${intoSubFolder}"
|
|
62347
|
+
await run("git", ["restore", "--source=HEAD", "--worktree", "--", intoSubFolder], { cwd }).catch(() => void 0);
|
|
62348
|
+
throw new DrivenFault(`${raised}`, `Check that "${intoSubFolder}" can be written, and run this again.`);
|
|
62349
|
+
} finally {
|
|
62350
|
+
await rm2(vendorIndexPath, { force: true });
|
|
62317
62351
|
}
|
|
62318
62352
|
}
|
|
62319
62353
|
/** `git rm -r` and a commit of its own: the folder is gone from the working
|
|
@@ -65162,7 +65196,7 @@ var Tiktoken2 = class {
|
|
|
65162
65196
|
import { execFile as execFile2, spawn as spawn4 } from "child_process";
|
|
65163
65197
|
import { mkdtemp, rm as rm3 } from "fs/promises";
|
|
65164
65198
|
import { tmpdir } from "os";
|
|
65165
|
-
import { join as
|
|
65199
|
+
import { join as join4 } from "path";
|
|
65166
65200
|
import { promisify as promisify2 } from "util";
|
|
65167
65201
|
var PARALLEL_RUNNER_COUNT = 4;
|
|
65168
65202
|
var ClaudeCli = class {
|
|
@@ -65198,7 +65232,7 @@ var ClaudeCli = class {
|
|
|
65198
65232
|
this.#runningCount++;
|
|
65199
65233
|
let emptyFolder;
|
|
65200
65234
|
try {
|
|
65201
|
-
emptyFolder = await mkdtemp(
|
|
65235
|
+
emptyFolder = await mkdtemp(join4(tmpdir(), "cw-claude-"));
|
|
65202
65236
|
const printedJson = await new Promise((resolve5, reject) => {
|
|
65203
65237
|
const claudeProcess = spawn4("claude", ["-p", "--output-format", "json", "--tools", "", "--strict-mcp-config", "--setting-sources", ""], {
|
|
65204
65238
|
cwd: emptyFolder,
|
|
@@ -65229,7 +65263,7 @@ var ClaudeCli = class {
|
|
|
65229
65263
|
// src/zdriven/Promptfoo.ts
|
|
65230
65264
|
import { execFile as execFile3 } from "child_process";
|
|
65231
65265
|
import { access as access2, mkdir as mkdir2, mkdtemp as mkdtemp2, readFile as readFile2, rm as rm4, writeFile as writeFile3 } from "fs/promises";
|
|
65232
|
-
import { join as
|
|
65266
|
+
import { join as join5 } from "path";
|
|
65233
65267
|
import { fileURLToPath as fileURLToPath4 } from "url";
|
|
65234
65268
|
import { promisify as promisify3 } from "util";
|
|
65235
65269
|
var run2 = promisify3(execFile3);
|
|
@@ -65241,12 +65275,12 @@ var Promptfoo = class {
|
|
|
65241
65275
|
installFolderPath;
|
|
65242
65276
|
/** `cherryWorksFolderPath`: this engine's own folder on the machine. */
|
|
65243
65277
|
constructor(cherryWorksFolderPath) {
|
|
65244
|
-
this.installFolderPath =
|
|
65278
|
+
this.installFolderPath = join5(cherryWorksFolderPath, "promptfoo", PROMPTFOO_VERSION);
|
|
65245
65279
|
}
|
|
65246
65280
|
async isInstalled() {
|
|
65247
65281
|
return Promise.all([
|
|
65248
|
-
access2(
|
|
65249
|
-
access2(
|
|
65282
|
+
access2(join5(this.installFolderPath, "node_modules", ".bin", "promptfoo")),
|
|
65283
|
+
access2(join5(this.installFolderPath, "node_modules", "@anthropic-ai", "claude-agent-sdk", "package.json"))
|
|
65250
65284
|
]).then(
|
|
65251
65285
|
() => true,
|
|
65252
65286
|
() => false
|
|
@@ -65254,7 +65288,7 @@ var Promptfoo = class {
|
|
|
65254
65288
|
}
|
|
65255
65289
|
async install() {
|
|
65256
65290
|
await mkdir2(this.installFolderPath, { recursive: true });
|
|
65257
|
-
await writeFile3(
|
|
65291
|
+
await writeFile3(join5(this.installFolderPath, "package.json"), `${JSON.stringify({ private: true })}
|
|
65258
65292
|
`);
|
|
65259
65293
|
try {
|
|
65260
65294
|
await run2(
|
|
@@ -65268,10 +65302,10 @@ var Promptfoo = class {
|
|
|
65268
65302
|
}
|
|
65269
65303
|
async evaluate({ description, prompt, workingFolder, assertions }) {
|
|
65270
65304
|
const workingFolderPath = fileURLToPath4(workingFolder);
|
|
65271
|
-
const runFolderPath = await mkdtemp2(
|
|
65305
|
+
const runFolderPath = await mkdtemp2(join5(this.installFolderPath, "run-"));
|
|
65272
65306
|
try {
|
|
65273
|
-
const configFilePath =
|
|
65274
|
-
const outputFilePath =
|
|
65307
|
+
const configFilePath = join5(runFolderPath, "promptfooconfig.json");
|
|
65308
|
+
const outputFilePath = join5(runFolderPath, "output.json");
|
|
65275
65309
|
const isAgentGraded = assertions.some(({ type }) => type === "agent-rubric");
|
|
65276
65310
|
const promptfooConfig = {
|
|
65277
65311
|
description,
|
|
@@ -65312,7 +65346,7 @@ var Promptfoo = class {
|
|
|
65312
65346
|
};
|
|
65313
65347
|
await writeFile3(configFilePath, JSON.stringify(promptfooConfig));
|
|
65314
65348
|
try {
|
|
65315
|
-
await run2(
|
|
65349
|
+
await run2(join5(this.installFolderPath, "node_modules", ".bin", "promptfoo"), ["eval", "-c", configFilePath, "-o", outputFilePath, "--no-table", "--no-cache", "--no-write"], {
|
|
65316
65350
|
cwd: runFolderPath,
|
|
65317
65351
|
env: { ...process.env, ...PROMPTFOO_QUIET_ENV },
|
|
65318
65352
|
maxBuffer: 64 * 1024 * 1024
|
|
@@ -65388,7 +65422,7 @@ var testAuthoringApp = new TestAuthoring(repoPath, fileReader, fileWriter);
|
|
|
65388
65422
|
var mcpConnectingApp = new McpConnecting(repoPath, fileReader, secrets, authorizing, yamlParser, mcpServers);
|
|
65389
65423
|
var homePath = pathToFileURL2(`${homedir()}/`);
|
|
65390
65424
|
var sessionReviewingApp = new SessionReviewing(repoPath, homePath, fileReader, clock);
|
|
65391
|
-
var promptfooRunner = new Promptfoo(
|
|
65425
|
+
var promptfooRunner = new Promptfoo(join6(homedir(), ".cherry-works"));
|
|
65392
65426
|
var progressReporter = new ConsoleReporter();
|
|
65393
65427
|
var charterEvaluatingApp = new CharterEvaluating(repoPath, fileReader, yamlParser, fileWriter, vcs, agentCliByProvider, promptfooRunner, progressReporter);
|
|
65394
65428
|
var cli = new Commander({
|
package/dist/portal/main.js
CHANGED
|
@@ -136,7 +136,7 @@ ${this.parser.parse(t)}</blockquote>
|
|
|
136
136
|
${t}</tr>
|
|
137
137
|
`}tablecell(t){let e=this.parser.parseInline(t.tokens),a=t.header?"th":"td";return(t.align?`<${a} align="${t.align}">`:`<${a}>`)+e+`</${a}>
|
|
138
138
|
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${Rr(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,text:a,tokens:r,autolink:n}){let i=n?Rr(a,!0):this.parser.parseInline(r),o=Y5(t);if(o===null)return i;t=Rr(o,n);let s='<a href="'+t+'"';return e&&(s+=' title="'+Rr(e)+'"'),s+=">"+i+"</a>",s}image({href:t,title:e,text:a,tokens:r}){r&&(a=this.parser.parseInline(r,this.parser.textRenderer));let n=Y5(t);if(n===null)return Rr(a);t=n;let i=`<img src="${Rr(t)}" alt="${Rr(a)}"`;return e&&(i+=` title="${Rr(e)}"`),i+=">",i}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:Rr(t.text)}},wC=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},_n=class mC{options;renderer;textRenderer;constructor(e){this.options=e||eu,this.options.renderer=this.options.renderer||new l0,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new wC}static parse(e,a){return new mC(a).parse(e)}static parseInline(e,a){return new mC(a).parseInline(e)}parse(e){this.renderer.parser=this;let a="";for(let r=0;r<e.length;r++){let n=e[r];if(this.options.extensions?.renderers?.[n.type]){let o=n,s=this.options.extensions.renderers[o.type].call({parser:this},o);if(s!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(o.type)){a+=s||"";continue}}let i=n;switch(i.type){case"space":{a+=this.renderer.space(i);break}case"hr":{a+=this.renderer.hr(i);break}case"heading":{a+=this.renderer.heading(i);break}case"code":{a+=this.renderer.code(i);break}case"table":{a+=this.renderer.table(i);break}case"blockquote":{a+=this.renderer.blockquote(i);break}case"list":{a+=this.renderer.list(i);break}case"checkbox":{a+=this.renderer.checkbox(i);break}case"html":{a+=this.renderer.html(i);break}case"def":{a+=this.renderer.def(i);break}case"paragraph":{a+=this.renderer.paragraph(i);break}case"text":{a+=this.renderer.text(i);break}default:{let o='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return a}parseInline(e,a=this.renderer){this.renderer.parser=this;let r="";for(let n=0;n<e.length;n++){let i=e[n];if(this.options.extensions?.renderers?.[i.type]){let s=this.options.extensions.renderers[i.type].call({parser:this},i);if(s!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(i.type)){r+=s||"";continue}}let o=i;switch(o.type){case"escape":{r+=a.text(o);break}case"html":{r+=a.html(o);break}case"link":{r+=a.link(o);break}case"image":{r+=a.image(o);break}case"checkbox":{r+=a.checkbox(o);break}case"strong":{r+=a.strong(o);break}case"em":{r+=a.em(o);break}case"codespan":{r+=a.codespan(o);break}case"br":{r+=a.br(o);break}case"del":{r+=a.del(o);break}case"text":{r+=a.text(o);break}default:{let s='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return r}},Dh=class{options;block;constructor(t){this.options=t||eu}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?Bn.lex:Bn.lexInline}provideParser(t=this.block){return t?_n.parse:_n.parseInline}},CC=class{defaults=gC();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=_n;Renderer=l0;TextRenderer=wC;Lexer=Bn;Tokenizer=s0;Hooks=Dh;constructor(...t){this.use(...t)}walkTokens(t,e){let a=[];for(let r of t)switch(a=a.concat(e.call(this,r)),r.type){case"table":{let n=r;for(let i of n.header)a=a.concat(this.walkTokens(i.tokens,e));for(let i of n.rows)for(let o of i)a=a.concat(this.walkTokens(o.tokens,e));break}case"list":{let n=r;a=a.concat(this.walkTokens(n.items,e));break}default:{let n=r;this.defaults.extensions?.childTokens?.[n.type]?this.defaults.extensions.childTokens[n.type].forEach(i=>{let o=n[i].flat(1/0);a=a.concat(this.walkTokens(o,e))}):n.tokens&&(a=a.concat(this.walkTokens(n.tokens,e)))}}return a}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(a=>{let r={...a};if(r.async=this.defaults.async||r.async||!1,a.extensions&&(a.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let i=e.renderers[n.name];i?e.renderers[n.name]=function(...o){let s=n.renderer.apply(this,o);return s===!1&&(s=i.apply(this,o)),s}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=e[n.level];i?i.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),r.extensions=e),a.renderer){let n=this.defaults.renderer||new l0(this.defaults);for(let i in a.renderer){if(!(i in n))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let o=i,s=a.renderer[o],l=n[o];n[o]=(...u)=>{let c=s.apply(n,u);return c===!1&&(c=l.apply(n,u)),c||""}}r.renderer=n}if(a.tokenizer){let n=this.defaults.tokenizer||new s0(this.defaults);for(let i in a.tokenizer){if(!(i in n))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let o=i,s=a.tokenizer[o],l=n[o];n[o]=(...u)=>{let c=s.apply(n,u);return c===!1&&(c=l.apply(n,u)),c}}r.tokenizer=n}if(a.hooks){let n=this.defaults.hooks||new Dh;for(let i in a.hooks){if(!(i in n))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let o=i,s=a.hooks[o],l=n[o];Dh.passThroughHooks.has(i)?n[o]=u=>{if(this.defaults.async&&Dh.passThroughHooksRespectAsync.has(i))return(async()=>{let f=await s.call(n,u);return l.call(n,f)})();let c=s.call(n,u);return l.call(n,c)}:n[o]=(...u)=>{if(this.defaults.async)return(async()=>{let f=await s.apply(n,u);return f===!1&&(f=await l.apply(n,u)),f})();let c=s.apply(n,u);return c===!1&&(c=l.apply(n,u)),c}}r.hooks=n}if(a.walkTokens){let n=this.defaults.walkTokens,i=a.walkTokens;r.walkTokens=function(o){let s=[];return s.push(i.call(this,o)),n&&(s=s.concat(n.call(this,o))),s}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Bn.lex(t,e??this.defaults)}parser(t,e){return _n.parse(t,e??this.defaults)}parseMarkdown(t){return(e,a)=>{let r={...a},n={...this.defaults,...r},i=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&r.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(n.hooks&&(n.hooks.options=n,n.hooks.block=t),n.async)return(async()=>{let o=n.hooks?await n.hooks.preprocess(e):e,s=await(n.hooks?await n.hooks.provideLexer(t):t?Bn.lex:Bn.lexInline)(o,n),l=n.hooks?await n.hooks.processAllTokens(s):s;n.walkTokens&&await Promise.all(this.walkTokens(l,n.walkTokens));let u=await(n.hooks?await n.hooks.provideParser(t):t?_n.parse:_n.parseInline)(l,n);return n.hooks?await n.hooks.postprocess(u):u})().catch(i);try{n.hooks&&(e=n.hooks.preprocess(e));let o=(n.hooks?n.hooks.provideLexer(t):t?Bn.lex:Bn.lexInline)(e,n);n.hooks&&(o=n.hooks.processAllTokens(o)),n.walkTokens&&this.walkTokens(o,n.walkTokens);let s=(n.hooks?n.hooks.provideParser(t):t?_n.parse:_n.parseInline)(o,n);return n.hooks&&(s=n.hooks.postprocess(s)),s}catch(o){return i(o)}}}onError(t,e){return a=>{if(a.message+=`
|
|
139
|
-
Please report this to https://github.com/markedjs/marked.`,t){let r="<p>An error occurred:</p><pre>"+Rr(a.message+"",!0)+"</pre>";return e?Promise.resolve(r):r}if(e)return Promise.reject(a);throw a}}},Jl=new CC;function it(t,e){return Jl.parse(t,e)}it.options=it.setOptions=function(t){return Jl.setOptions(t),it.defaults=Jl.defaults,tz(it.defaults),it};it.getDefaults=gC;it.defaults=eu;function J8(...t){return Jl.use(...t),it.defaults=Jl.defaults,tz(it.defaults),it}it.use=J8;it.walkTokens=function(t,e){return Jl.walkTokens(t,e)};it.parseInline=Jl.parseInline;it.Parser=_n;it.parser=_n.parse;it.Renderer=l0;it.TextRenderer=wC;it.Lexer=Bn;it.lexer=Bn.lex;it.Tokenizer=s0;it.Hooks=Dh;it.parse=it;var $se=it.options,Bse=it.setOptions,_se=it.walkTokens,zse=it.parseInline;var Nse=_n.parse,Xse=Bn.lex;var Hse=L(F(),1);var Nh=L(H(),1);function u0({className:t,orientation:e="horizontal",...a}){return(0,Nh.jsx)(Ll.Root,{"data-slot":"tabs","data-orientation":e,orientation:e,className:pe("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...a})}var eW=li("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function c0({className:t,variant:e="default",...a}){return(0,Nh.jsx)(Ll.List,{"data-slot":"tabs-list","data-variant":e,className:pe(eW({variant:e}),t),...a})}function zh({className:t,...e}){return(0,Nh.jsx)(Ll.Trigger,{"data-slot":"tabs-trigger",className:pe("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",t),...e})}function Es({className:t,...e}){return(0,Nh.jsx)(Ll.Content,{"data-slot":"tabs-content",className:pe("flex-1 outline-none",t),...e})}var lr=L(H(),1),tW=new CC({renderer:{html:({text:t})=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")},walkTokens:t=>{(t.type==="link"||t.type==="image")&&/^\s*(javascript|vbscript|data):/i.test(t.href)&&(t.href="#")}}),cz="h-auto flex-none cursor-pointer rounded-md px-[11px] py-[5px] text-[11.5px] font-semibold text-zinc-500 data-[state=active]:shadow-[0_1px_2px_rgba(0,0,0,0.08)]";function kC({body:t,onChange:e}){return(0,lr.jsxs)(u0,{defaultValue:e===void 0?"preview":"source",className:"gap-0 overflow-hidden rounded-xl border bg-background",children:[(0,lr.jsxs)("div",{className:"flex items-center gap-2.5 border-b border-[#f0f0f0] px-[13px] py-[9px]",children:[(0,lr.jsx)("span",{className:"text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"Body"}),(0,lr.jsx)("span",{className:"font-mono text-[10.5px] text-zinc-400",children:"markdown"}),(0,lr.jsxs)(c0,{className:"ml-auto h-auto gap-0.5 rounded-lg bg-[#f0f0f2] p-[3px]",children:[(0,lr.jsx)(zh,{value:"source",className:cz,children:"Source"}),(0,lr.jsx)(zh,{value:"preview",className:cz,children:"Preview"})]})]}),(0,lr.jsx)(Es,{value:"source",className:"h-[300px] flex-none",children:(0,lr.jsx)(aW,{body:t,onChange:e})}),(0,lr.jsx)(Es,{value:"preview",children:(0,lr.jsx)("div",{className:"min-h-32 px-[18px] py-4 text-[12.5px] leading-[1.65] text-zinc-700 [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:font-mono [&_code]:text-xs [&_h1]:mb-[7px] [&_h1]:text-[15px] [&_h1]:font-bold [&_h1]:text-foreground [&_h2]:mt-4 [&_h2]:mb-[7px] [&_h2]:text-[13px] [&_h2]:font-bold [&_h2]:text-foreground [&_strong]:font-semibold [&_strong]:text-foreground [&_li]:ml-5 [&_ol]:list-decimal [&_p]:mb-2 [&_ul]:list-disc",dangerouslySetInnerHTML:{__html:tW.parse(t,{async:!1})}})})]})}function aW({body:t,onChange:e}){let a=(0,fz.useCallback)(r=>{let n=new oe({parent:r,doc:t,extensions:[U5(),G$(Y$),lB(),Xl.of([..._B,...dB]),oe.lineWrapping,oe.editable.of(e!==void 0),oe.updateListener.of(i=>{i.docChanged&&e?.(i.state.doc.toString())})]});return()=>n.destroy()},[]);return(0,lr.jsx)("div",{className:"h-full",ref:a})}var ole=L(F(),1);var dz=L(H(),1);function tu({className:t,type:e,...a}){return(0,dz.jsx)("input",{type:e,"data-slot":"input",className:pe("h-[30px] w-full min-w-0 rounded-lg border border-input bg-background px-[11px] py-1 font-mono text-[11.5px] text-foreground transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30","focus-visible:border-[#d92f45]","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",t),...a})}var ule=L(F(),1);var hz=L(H(),1);function Xh({className:t,...e}){return(0,hz.jsx)(Dg.Root,{"data-slot":"label",className:pe("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...e})}var hle=L(F(),1);var It=L(H(),1);function LC({...t}){return(0,It.jsx)(Da.Root,{"data-slot":"select",...t})}function TC({...t}){return(0,It.jsx)(Da.Value,{"data-slot":"select-value",...t})}function PC({className:t,size:e="default",children:a,...r}){return(0,It.jsxs)(Da.Trigger,{"data-slot":"select-trigger","data-size":e,className:pe("flex w-fit cursor-pointer items-center justify-between gap-2 rounded-lg border border-input bg-background px-[11px] py-1 font-mono text-[11.5px] whitespace-nowrap text-foreground transition-[color,box-shadow] outline-none focus-visible:border-[#d92f45] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-[30px] data-[size=sm]:h-7 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",t),...r,children:[a,(0,It.jsx)(Da.Icon,{asChild:!0,children:(0,It.jsx)(xc,{className:"size-4 opacity-50"})})]})}function RC({className:t,children:e,position:a="item-aligned",align:r="center",...n}){return(0,It.jsx)(Da.Portal,{children:(0,It.jsxs)(Da.Content,{"data-slot":"select-content",className:pe("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,align:r,...n,children:[(0,It.jsx)(rW,{}),(0,It.jsx)(Da.Viewport,{className:pe("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:e}),(0,It.jsx)(nW,{})]})})}function IC({className:t,children:e,...a}){return(0,It.jsxs)(Da.Item,{"data-slot":"select-item",className:pe("relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...a,children:[(0,It.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,It.jsx)(Da.ItemIndicator,{children:(0,It.jsx)(wd,{className:"size-4"})})}),(0,It.jsx)(Da.ItemText,{children:e})]})}function rW({className:t,...e}){return(0,It.jsx)(Da.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:pe("flex cursor-default items-center justify-center py-1",t),...e,children:(0,It.jsx)(Cd,{className:"size-4"})})}function nW({className:t,...e}){return(0,It.jsx)(Da.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:pe("flex cursor-default items-center justify-center py-1",t),...e,children:(0,It.jsx)(xc,{className:"size-4"})})}var K=L(H(),1);function AC({id:t,newKind:e,onDone:a,onClose:r}){let{data:n}=CA(t);if(t===void 0)return(0,K.jsx)(pz,{openedPrimitive:null,entityTag:"",newKind:e??"",onDone:a,onClose:r});if(n===void 0)return null;let{answer:i,entityTag:o}=n;return i.type==="Fault"?(0,K.jsx)(gz,{faults:[i]}):i.data.layerName!=="repo"?(0,K.jsx)(iW,{openedPrimitive:i}):(0,K.jsx)(pz,{openedPrimitive:i,entityTag:o,newKind:"",onDone:a,onClose:r})}function pz({openedPrimitive:t,entityTag:e,newKind:a,onDone:r,onClose:n}){let i=t?.data,[o,s]=(0,df.useState)(i?.kind??a),[l,u]=(0,df.useState)(i===void 0?"":String(i.headers.id)),[c,f]=(0,df.useState)(()=>Object.fromEntries(Object.entries(i?.headers??{}).filter(([R])=>R!=="id").map(([R,D])=>[R,typeof D=="string"?D:[...D]]))),[d,h]=(0,df.useState)(t?.data.body??""),[p,m]=(0,df.useState)([]),{data:x}=yc(),{data:g}=kA(o),{data:O}=oi(),y=LA(),b=TA(),v=PA(),S=x===void 0?[]:Object.keys(x.data),w=g?.type==="PrimitiveRequirements"?g.data.headers:[],k=O?.type==="Primitives"?O.data.primitives.filter(({data:R})=>R.kind==="corpus").map(({data:R})=>R.id):[],T=Object.fromEntries(w.flatMap(({data:{field:R}})=>{let D=c[R],Y=typeof D=="string"?D.trim():(D??[]).map(B=>B.trim()).filter(B=>B!=="");return Y.length===0?[]:[[R,Y]]})),Q=R=>m(R.type==="Faults"?R.data.faults:[R]),$=async()=>{let R=t===null?await y.mutateAsync({kind:o,id:l,headers:T,body:d}):await b.mutateAsync({param:{id:t.data.id},header:{"if-match":e},json:{headers:T,body:d}});if(R.type!=="Primitive")return Q(R);let{file:D,headers:Y}=R.data;r(t===null?"Primitive created":"Primitive saved",`${D} \xB7 ${t===null&&typeof Y.executionPath=="string"?`${Y.executionPath} beside it is the file it runs, write the script there \xB7 `:""}nothing compiled until the next build`)},A=async()=>{if(t===null)return;let R=await v.mutateAsync(t.data.id);if(R!==null)return Q(R);r("Primitive deleted",`${t.data.file} \xB7 what still names it is reported by Doctor`)};return(0,K.jsxs)("div",{className:"space-y-3.5",children:[(0,K.jsxs)("div",{className:mz,children:[t===null?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(fo,{label:"kind",htmlFor:"primitive-kind",children:(0,K.jsxs)(LC,{value:o,onValueChange:s,children:[(0,K.jsx)(PC,{id:"primitive-kind",className:"w-full",children:(0,K.jsx)(TC,{})}),(0,K.jsx)(RC,{children:S.map(R=>(0,K.jsx)(IC,{value:R,children:R},R))})]})}),(0,K.jsx)(fo,{label:"id",htmlFor:"primitive-id",children:(0,K.jsx)(tu,{id:"primitive-id",value:l,placeholder:"no-any",spellCheck:!1,onChange:R=>u(R.currentTarget.value)})})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(fo,{label:"kind",hint:"the id is the file \u2014 rename by creating a new primitive and deleting this one",children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:o})}),(0,K.jsx)(fo,{label:"id",children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:l})})]}),w.map(({data:{field:R,shape:D,required:Y,allowedValues:B}})=>(0,K.jsx)(fo,{label:R,htmlFor:`header-${R}`,hint:Y?"required":void 0,children:D==="list"?(0,K.jsx)(oW,{field:R,entries:Array.isArray(c[R])?c[R]:[],onChange:q=>f({...c,[R]:q})}):B!==void 0?(0,K.jsxs)(LC,{value:typeof c[R]=="string"?c[R]:"",onValueChange:q=>f({...c,[R]:q}),children:[(0,K.jsx)(PC,{id:`header-${R}`,className:"w-full",children:(0,K.jsx)(TC,{placeholder:"\u2014"})}),(0,K.jsx)(RC,{children:B.map(q=>(0,K.jsx)(IC,{value:q,children:q},q))})]}):(0,K.jsx)(tu,{id:`header-${R}`,spellCheck:!1,autoComplete:"off",value:typeof c[R]=="string"?c[R]:"",list:R==="rationale"?"corpus-ids":void 0,onChange:q=>f({...c,[R]:q.currentTarget.value})})},R))]}),(0,K.jsx)("datalist",{id:"corpus-ids",children:k.map(R=>(0,K.jsx)("option",{value:R},R))}),(0,K.jsx)(kC,{body:d,onChange:h}),p.length>0&&(0,K.jsx)(gz,{faults:p}),(0,K.jsxs)("div",{className:ci,children:[(0,K.jsx)(Ae,{onClick:()=>{$()},children:t===null?"Create primitive":"Save"}),(0,K.jsx)(Ae,{variant:"outline",onClick:n,children:"Cancel"}),t!==null&&(0,K.jsx)(Ae,{variant:"destructive",className:"ml-auto",onClick:()=>{A()},children:"Delete"})]})]})}function iW({openedPrimitive:t}){let{kind:e,description:a,file:r,layerName:n,headers:i}=t.data;return(0,K.jsxs)("div",{className:"space-y-3.5",children:[(0,K.jsxs)(jr,{className:"rounded-xl border-[#7c3aed33] bg-[#f6f2ff]",children:[(0,K.jsx)(Fr,{className:"text-[12.5px] font-bold",children:n==="vendor"?"Installed from a vendor, and read-only here.":"Built into cw, and read-only here."}),(0,K.jsx)(Hr,{className:"text-[11.5px] text-zinc-600",children:"To differ from it, author a primitive of your own under an id of its own."})]}),(0,K.jsxs)("div",{className:mz,children:[(0,K.jsx)(fo,{label:"kind",children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:e})}),(0,K.jsx)(fo,{label:"file",children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:r})}),(0,K.jsx)(fo,{label:"description",children:(0,K.jsx)("span",{className:"text-xs",children:a})}),Object.entries(i).filter(([o])=>o!=="id"&&o!=="description").map(([o,s])=>(0,K.jsx)(fo,{label:o,children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:typeof s=="string"?s:s.join(", ")})},o))]}),(0,K.jsx)(kC,{body:t.data.body})]})}var mz="overflow-hidden rounded-[11px] border border-[#f0f0f0] bg-background divide-y divide-zinc-100";function fo({label:t,htmlFor:e,hint:a,children:r}){return(0,K.jsxs)("div",{className:"flex items-center gap-3 px-[13px] py-2.5",children:[(0,K.jsx)(Xh,{htmlFor:e,className:"w-[118px] shrink-0 text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:t}),(0,K.jsx)("div",{className:"min-w-0 flex-1",children:r}),a!==void 0&&(0,K.jsx)("span",{className:"max-w-[45%] shrink text-right text-[11.5px] text-zinc-400",children:a})]})}function oW({field:t,entries:e,onChange:a}){let r=e.length===0?[""]:e;return(0,K.jsxs)("div",{className:"flex flex-col gap-1.5",children:[r.map((n,i)=>(0,K.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,K.jsx)(tu,{id:i===0?`header-${t}`:void 0,"aria-label":`${t} ${i+1}`,spellCheck:!1,value:n,onChange:o=>a(r.map((s,l)=>l===i?o.currentTarget.value:s))}),r.length>1&&(0,K.jsx)(Ae,{variant:"outline",size:"icon",className:"size-[26px] shrink-0 rounded-[7px] text-zinc-400 [&_svg:not([class*='size-'])]:size-[11px]","aria-label":`Remove this ${t} entry`,onClick:()=>a(r.filter((o,s)=>s!==i)),children:(0,K.jsx)(ul,{})})]},i)),(0,K.jsxs)(Ae,{variant:"outline",size:"sm",className:"h-auto self-start rounded-[7px] border-dashed border-zinc-300 px-2.5 py-[5px] text-[11px] font-normal text-zinc-500",onClick:()=>a([...r,""]),children:["Add ",t]})]})}function gz({faults:t}){return(0,K.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,K.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:"Refused, and nothing was written"}),(0,K.jsx)(Hr,{children:t.map(({data:{message:e,fix:a}})=>(0,K.jsxs)("p",{className:"whitespace-pre-line",children:[e," ",(0,K.jsx)("span",{className:"text-muted-foreground",children:a})]},e))})]})}var f0=L(F(),1);var pt=L(H(),1);function Oz({onDone:t,onClose:e}){let[a,r]=(0,f0.useState)(""),[n,i]=(0,f0.useState)(""),[o,s]=(0,f0.useState)(null),l=yc(),u=EA(),c=async()=>{let f=n.trim(),d=await u.mutateAsync({source:a.trim(),...f===""?{}:{version:f}});if(d!==null)return s(d);t("Vendor source added",`${a.trim()}${f===""?"":` @ ${f}`} \xB7 run Build to compile what it adds`)};return(0,pt.jsxs)("div",{className:"space-y-3.5",children:[(0,pt.jsx)("p",{className:"text-[13px] leading-[1.65] text-zinc-700",children:"A vendor source is a repository governed by cw: only its charter, under .cw/charter/, is installed."}),(0,pt.jsxs)("div",{className:"divide-y divide-zinc-100 overflow-hidden rounded-[11px] border border-[#f0f0f0]",children:[(0,pt.jsxs)("div",{className:"flex items-center gap-3 px-[13px] py-2.5",children:[(0,pt.jsx)(Xh,{htmlFor:"vendor-source",className:"w-[118px] shrink-0 text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"source"}),(0,pt.jsx)(tu,{id:"vendor-source",value:a,spellCheck:!1,onChange:f=>r(f.target.value)})]}),(0,pt.jsxs)("div",{className:"flex items-center gap-3 px-[13px] py-2.5",children:[(0,pt.jsx)(Xh,{htmlFor:"vendor-version",className:"w-[118px] shrink-0 text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"version"}),(0,pt.jsx)(tu,{id:"vendor-version",value:n,spellCheck:!1,onChange:f=>i(f.target.value)}),(0,pt.jsx)("span",{className:"max-w-[45%] shrink text-right text-[11.5px] text-zinc-400",children:"a tag, branch or commit; left empty, the source's default"})]})]}),(0,pt.jsxs)("div",{className:"rounded-[11px] border bg-zinc-50 px-3.5 py-3","aria-label":"Reserved directories",children:[(0,pt.jsx)("div",{className:"mb-1 text-[11px] font-bold tracking-[0.07em] text-zinc-400 uppercase",children:"Directories under its .cw/charter/"}),Object.entries(l.data?.data??{}).map(([f,d])=>(0,pt.jsxs)("div",{className:"flex items-baseline gap-[9px] border-t border-zinc-100 py-[7px]",children:[(0,pt.jsxs)("span",{className:"min-w-[150px] font-mono text-[11.5px]",children:[f,"/"]}),(0,pt.jsx)("span",{className:"text-[11.5px] text-zinc-500",children:d})]},f))]}),o!==null&&(0,pt.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,pt.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:"Refused, and nothing was installed"}),(0,pt.jsx)(Hr,{children:(0,pt.jsxs)("p",{className:"whitespace-pre-line",children:[o.data.message," ",(0,pt.jsx)("span",{className:"text-muted-foreground",children:o.data.fix})]})})]}),(0,pt.jsxs)("div",{className:ci,children:[(0,pt.jsx)(Ae,{disabled:u.isPending||a.trim()==="",onClick:()=>{c()},children:"Add source"}),(0,pt.jsx)(Ae,{variant:"outline",onClick:e,children:"Cancel"})]})]})}var QC=L(F(),1);var At=L(H(),1);function xz({name:t,onDone:e,onClose:a}){let n=Hm().data?.data.testSuites.find(({data:i})=>i.name===t);return n===void 0?null:(0,At.jsx)(sW,{name:t,initialText:n.data.text??"",onDone:e,onClose:a},t)}function sW({name:t,initialText:e,onDone:a,onClose:r}){let[n,i]=(0,QC.useState)(e),[o,s]=(0,QC.useState)(null),l=_A(),u=zA(),c=async()=>{let d=await l.mutateAsync({name:t,text:n});if(typeof d!="string")return s(d);a("Saved",`.cw/test/${t} rewritten \xB7 run the cases again`)},f=async()=>{let d=await u.mutateAsync(t);if(d!==null)return s(d);a("Test file deleted",`.cw/test/${t} removed`)};return(0,At.jsxs)("div",{className:"space-y-3",children:[(0,At.jsxs)("p",{className:"text-xs leading-[1.65] text-zinc-600 [&_code]:font-mono",children:["A case is one situation \u2014 a touched file (",(0,At.jsx)("code",{children:"do.touchFile"}),") or a raised event (",(0,At.jsx)("code",{children:"when"}),") \u2014 and expects one thing:"," ",(0,At.jsx)("code",{children:"activate"}),", ",(0,At.jsx)("code",{children:"run"})," or ",(0,At.jsx)("code",{children:"allow"}),"."]}),(0,At.jsx)("textarea",{"aria-label":"Test file text",className:"h-[340px] w-full resize-y rounded-[11px] border bg-zinc-50 px-3.5 py-3 font-mono text-[11.5px] leading-[1.65] outline-none",spellCheck:!1,value:n,onChange:d=>i(d.target.value)}),o!==null&&(0,At.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,At.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:"Refused, and nothing was written"}),(0,At.jsx)(Hr,{children:(0,At.jsxs)("p",{className:"break-words whitespace-pre-line",children:[o.data.message," ",(0,At.jsx)("span",{className:"text-muted-foreground",children:o.data.fix})]})})]}),(0,At.jsx)("p",{className:"text-[11.5px] leading-[1.6] text-zinc-400",children:"Read only when tests run \u2014 never compiled, never read by an agent."}),(0,At.jsxs)("div",{className:ci,children:[(0,At.jsx)(Ae,{disabled:l.isPending,onClick:()=>{c()},children:"Save"}),(0,At.jsx)(Ae,{variant:"outline",onClick:r,children:"Cancel"}),(0,At.jsx)(Ae,{variant:"destructive",className:"ml-auto",disabled:u.isPending,onClick:()=>{f()},children:"Delete file"})]})]})}var Nle=L(F(),1);var ur=L(H(),1);function yz({...t}){return(0,ur.jsx)(yn.Root,{"data-slot":"dialog",...t})}function lW({...t}){return(0,ur.jsx)(yn.Portal,{"data-slot":"dialog-portal",...t})}function uW({className:t,...e}){return(0,ur.jsx)(yn.Overlay,{"data-slot":"dialog-overlay",className:pe("fixed inset-0 z-50 bg-[rgba(9,9,11,0.35)] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",t),...e})}function bz({className:t,children:e,showCloseButton:a=!0,...r}){return(0,ur.jsxs)(lW,{"data-slot":"dialog-portal",children:[(0,ur.jsx)(uW,{}),(0,ur.jsxs)(yn.Content,{"data-slot":"dialog-content",className:pe("fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",t),...r,children:[e,a&&(0,ur.jsxs)(yn.Close,{"data-slot":"dialog-close",className:"absolute top-4 right-[18px] cursor-pointer rounded-xs p-0.5 text-zinc-400 ring-offset-background transition-colors hover:text-foreground focus:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,ur.jsx)(ul,{}),(0,ur.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function vz({className:t,...e}){return(0,ur.jsx)("div",{"data-slot":"dialog-header",className:pe("flex flex-col gap-2 text-center sm:text-left",t),...e})}function Sz({className:t,...e}){return(0,ur.jsx)(yn.Title,{"data-slot":"dialog-title",className:pe("text-lg leading-none font-semibold",t),...e})}function wz({className:t,...e}){return(0,ur.jsx)(yn.Description,{"data-slot":"dialog-description",className:pe("text-sm text-muted-foreground",t),...e})}var pa=L(H(),1),cW={explanation:{title:()=>"Explain",context:({id:t})=>t,holdsDraft:!1,render:({id:t},{open:e})=>(0,pa.jsx)(IE,{id:t,onExplain:a=>e("explanation",{id:a})},t)},primitive:{title:({id:t})=>t,context:()=>"",holdsDraft:!0,render:({id:t},{close:e})=>(0,pa.jsx)(AC,{id:t,onDone:d0(e),onClose:e},t)},newPrimitive:{title:()=>"New primitive",context:()=>"",holdsDraft:!0,render:({kind:t},{close:e})=>(0,pa.jsx)(AC,{newKind:t,onDone:d0(e),onClose:e},`new ${t}`)},buildPreview:{title:()=>"cw build",context:()=>"nothing written yet",holdsDraft:!1,render:(t,{open:e})=>(0,pa.jsx)(kE,{onBuilt:a=>e("buildOutcome",{buildAnswer:a})})},buildOutcome:{title:()=>"cw build",context:()=>"",holdsDraft:!1,render:({buildAnswer:t})=>(0,pa.jsx)(LE,{buildAnswer:t})},addVendor:{title:()=>"Add vendor source",context:()=>"",holdsDraft:!0,render:(t,{close:e})=>(0,pa.jsx)(Oz,{onDone:d0(e),onClose:e})},testSuite:{title:({name:t})=>`.cw/test/${t}`,context:()=>"",holdsDraft:!0,render:({name:t},{close:e})=>(0,pa.jsx)(xz,{name:t,onDone:d0(e),onClose:e},t)},doctor:{title:()=>"Doctor",context:()=>"cw 0.6.2",holdsDraft:!1,render:(t,{open:e})=>(0,pa.jsx)(RE,{onBuilt:a=>e("buildOutcome",{buildAnswer:a})})}};function d0(t){return(e,a)=>{t(),cl(e,{description:a})}}var Cz=(0,au.createContext)(null);function ho(){return(0,au.useContext)(Cz)}function kz({children:t}){let[e,a]=(0,au.useState)(null),[r,n]=(0,au.useState)(!1),i={open:(s,l)=>{a({name:s,params:l}),n(!0)},close:()=>n(!1)},o=e===null?null:cW[e.name];return(0,pa.jsxs)(Cz.Provider,{value:i,children:[t,(0,pa.jsx)(yz,{open:r,onOpenChange:n,children:e!==null&&o!==null&&(0,pa.jsxs)(bz,{className:"flex max-h-[88vh] w-[920px] max-w-[calc(100%-48px)] flex-col gap-0 overflow-hidden rounded-[15px] border-0 p-0 shadow-[0_34px_80px_-22px_rgba(0,0,0,0.4)] sm:max-w-[calc(100%-48px)]",onInteractOutside:s=>o.holdsDraft&&s.preventDefault(),onEscapeKeyDown:s=>o.holdsDraft&&s.preventDefault(),children:[(0,pa.jsxs)(vz,{className:"flex-row items-baseline gap-2.5 border-b border-[#f0f0f0] py-[15px] pr-12 pl-[18px]",children:[(0,pa.jsx)(Sz,{className:"text-[14.5px] font-bold tracking-[-0.01em]",children:o.title(e.params)}),(0,pa.jsx)(wz,{className:"font-mono text-[11px] text-zinc-400",children:o.context(e.params)})]}),(0,pa.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-5 py-[18px]",children:o.render(e.params,i)})]})})]})}var p0=L(F(),1);var tue=L(F(),1);var fW=L(H(),1),Lz=li("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 min-w-9 px-2",sm:"h-8 min-w-8 px-1.5",lg:"h-10 min-w-10 px-2.5"}},defaultVariants:{variant:"default",size:"default"}});var h0=L(H(),1),Tz=p0.createContext({size:"default",variant:"default",spacing:0});function Pz({className:t,variant:e,size:a,spacing:r=0,children:n,...i}){return(0,h0.jsx)(qd.Root,{"data-slot":"toggle-group","data-variant":e,"data-size":a,"data-spacing":r,style:{"--gap":r},className:pe("group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs",t),...i,children:(0,h0.jsx)(Tz.Provider,{value:{variant:e,size:a,spacing:r},children:n})})}function Rz({className:t,children:e,variant:a,size:r,...n}){let i=p0.useContext(Tz);return(0,h0.jsx)(qd.Item,{"data-slot":"toggle-group-item","data-variant":i.variant||a,"data-size":i.size||r,"data-spacing":i.spacing,className:pe(Lz({variant:i.variant||a,size:i.size||r}),"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10","data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l",t),...n,children:e})}var se=L(H(),1);function DC({layerNames:t,kind:e,onKindChange:a}){let{open:r}=ho(),n=yc(),i=oi();if(n.data===void 0||i.data===void 0)return null;let o=n.data.data,s=i.data;if(s.type==="FaultsByFile")return(0,se.jsx)(dW,{faultsByFile:s});if(s.type==="Fault")return(0,se.jsx)(hW,{fault:s});let l=s.data.primitives.filter(({data:d})=>t.includes(d.layerName)),u=new Map(Object.keys(o).map(d=>[d,l.filter(({data:h})=>h.kind===d).length])),c=e??[...u].find(([,d])=>d>0)?.[0]??Object.keys(o)[0],f=l.filter(({data:d})=>d.kind===c);return(0,se.jsxs)("div",{className:"min-w-0",children:[(0,se.jsxs)("div",{className:"mb-3 flex items-baseline gap-[9px]",children:[(0,se.jsx)("h2",{className:"text-[12.5px] font-bold",children:"Charter primitives"}),(0,se.jsxs)("span",{className:"text-[11.5px] text-zinc-400",children:[l.length," in this charter"]}),t.includes("repo")&&(0,se.jsxs)(Ae,{size:"sm",variant:"outline",className:"ml-auto",onClick:()=>r("newPrimitive",{kind:c}),children:["New ",c]})]}),(0,se.jsx)(Pz,{type:"single",spacing:1.5,"aria-label":"Kinds",className:"mb-3 flex-wrap",value:c,onValueChange:d=>d!==""&&a(d),children:[...u].map(([d,h])=>(0,se.jsxs)(Rz,{value:d,"aria-label":d,className:`group/chip h-auto cursor-pointer gap-1.5 rounded-[9px] border bg-background px-2.5 py-1.5 text-[11.5px] font-medium text-zinc-700 capitalize hover:bg-background hover:text-zinc-700 data-[state=on]:border-foreground data-[state=on]:bg-foreground data-[state=on]:font-semibold data-[state=on]:text-white ${h===0&&d!==c?"opacity-50":""}`,children:[d,(0,se.jsx)(mi,{className:"rounded-none bg-transparent p-0 font-mono text-[10px] font-normal text-zinc-400 group-data-[state=on]/chip:text-white/70",children:h})]},d))}),(0,se.jsxs)("p",{className:"mb-2.5 flex items-baseline gap-2 px-0.5",children:[(0,se.jsx)("span",{className:"shrink-0 text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"Activates when"}),(0,se.jsx)("span",{className:"text-xs leading-normal text-zinc-700","aria-label":"Activates when",children:o[c]})]}),f.length===0?(0,se.jsxs)("p",{className:"rounded-[14px] border p-[22px] text-center text-[12.5px] text-zinc-400",children:["No ",c," in this charter yet."]}):(0,se.jsx)(pW,{kind:c,listed:f})]})}function dW({faultsByFile:t}){let e=Object.entries(t.data.files);return(0,se.jsxs)("div",{className:"space-y-3.5",children:[(0,se.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,se.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:"The engine will not read this charter"}),(0,se.jsxs)(Hr,{children:[e.length," file",e.length===1?" is":"s are"," refused, so there is no listing to show. Fix",e.length===1?" it":" them"," and the charter comes back."]})]}),(0,se.jsx)(fs,{faultsByFile:t,label:"Refused files"})]})}function hW({fault:t}){return(0,se.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,se.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:t.data.message}),(0,se.jsx)(Hr,{children:t.data.fix})]})}function MC(t){return t===void 0?void 0:typeof t=="string"?[t]:t}function pW({kind:t,listed:e}){let{open:a}=ho(),r=t==="guide",n=t!=="mixin";return(0,se.jsx)("div",{className:"overflow-hidden rounded-[14px] border bg-background",children:(0,se.jsxs)(Tl,{"aria-label":`${t} primitives`,className:"table-fixed",children:[(0,se.jsx)(wE,{children:(0,se.jsxs)(Rl,{className:"border-[#ececef] bg-zinc-50 hover:bg-zinc-50 [&>th]:h-auto [&>th]:px-[15px] [&>th]:py-[9px] [&>th]:text-[9.5px] [&>th]:font-bold [&>th]:tracking-[0.07em] [&>th]:text-zinc-400 [&>th]:uppercase",children:[(0,se.jsx)(Il,{className:"w-[170px]",children:"Id"}),(0,se.jsx)(Il,{children:"Description"}),r&&(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)(Il,{className:"w-[170px] text-right",children:"Matching globs"}),(0,se.jsx)(Il,{className:"w-[120px] text-right",children:"Rationale"})]}),n&&(0,se.jsx)(Il,{className:"w-[120px] text-right",children:"Mixins"}),(0,se.jsx)(Il,{className:"w-[50px]"})]})}),(0,se.jsx)(Pl,{children:e.map(({data:{id:i,description:o,file:s,headers:l}})=>{let u=MC(l.globs);return(0,se.jsxs)(Rl,{className:"group/row border-[#f7f7f8] align-top hover:bg-zinc-50 [&>td]:px-[15px] [&>td]:py-3",children:[(0,se.jsx)(kn,{className:"truncate",children:(0,se.jsx)(Ae,{variant:"link",className:"block h-auto max-w-full truncate rounded-none p-0 text-left font-mono text-[11.5px] font-bold text-foreground",title:`Open ${s}`,onClick:()=>a("primitive",{id:i}),children:String(l.id)})}),(0,se.jsxs)(kn,{className:"whitespace-normal",children:[(0,se.jsx)("div",{className:"text-[12.5px] font-semibold",children:o}),(0,se.jsx)("div",{className:"mt-[3px] truncate font-mono text-[10.5px] text-zinc-400",children:s})]}),r&&(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)(EC,{named:u,none:"all patterns",said:u===void 0,label:"Matching globs"}),(0,se.jsx)(EC,{named:MC(l.rationale),none:"none",said:!1,label:"Rationale"})]}),n&&(0,se.jsx)(EC,{named:MC(l.mixins),none:"none",said:!1,label:"Mixins"}),(0,se.jsx)(kn,{children:(0,se.jsx)(Ae,{variant:"ghost",size:"icon",className:"ml-auto size-6 rounded-[7px] border border-transparent text-zinc-300 group-hover/row:border-zinc-200 group-hover/row:bg-background group-hover/row:text-zinc-400 hover:!border-foreground hover:bg-background hover:!text-foreground [&_svg:not([class*='size-'])]:size-[13px]","aria-label":`Explain ${i}`,onClick:()=>a("explanation",{id:i}),children:(0,se.jsx)(pn,{})})})]},i)})})]})})}function EC({named:t,none:e,said:a,label:r}){return(0,se.jsx)(kn,{"aria-label":r,children:(0,se.jsx)("div",{className:"flex min-w-0 flex-wrap content-start justify-end gap-1",children:t===void 0||t.length===0?(0,se.jsx)("span",{className:`text-[10.5px] ${a?"text-destructive":"text-zinc-300"}`,children:e}):t.map(n=>(0,se.jsx)(mi,{title:n,className:"block max-w-full truncate rounded-[5px] bg-zinc-100 px-1.5 py-0.5 font-mono text-[10px] font-normal text-zinc-700",children:n},n))})})}var qC=L(F(),1);var Lue=L(F(),1);var Iz=1,mW=.9,gW=.8,OW=.17,$C=.1,BC=.999,xW=.9999,yW=.99,bW=/[\\\/_+.#"@\[\(\{&]/,vW=/[\\\/_+.#"@\[\(\{&]/g,SW=/[\s-]/,Qz=/[\s-]/g;function _C(t,e,a,r,n,i,o){if(i===e.length)return n===t.length?Iz:yW;var s=`${n},${i}`;if(o[s]!==void 0)return o[s];for(var l=r.charAt(i),u=a.indexOf(l,n),c=0,f,d,h,p;u>=0;)f=_C(t,e,a,r,u+1,i+1,o),f>c&&(u===n?f*=Iz:bW.test(t.charAt(u-1))?(f*=gW,h=t.slice(n,u-1).match(vW),h&&n>0&&(f*=Math.pow(BC,h.length))):SW.test(t.charAt(u-1))?(f*=mW,p=t.slice(n,u-1).match(Qz),p&&n>0&&(f*=Math.pow(BC,p.length))):(f*=OW,n>0&&(f*=Math.pow(BC,u-n))),t.charAt(u)!==e.charAt(i)&&(f*=xW)),(f<$C&&a.charAt(u-1)===r.charAt(i+1)||r.charAt(i+1)===r.charAt(i)&&a.charAt(u-1)!==r.charAt(i))&&(d=_C(t,e,a,r,u+1,i+2,o),d*$C>f&&(f=d*$C)),f>c&&(c=f),u=a.indexOf(l,u+1);return o[s]=c,c}function Az(t){return t.toLowerCase().replace(Qz," ")}function Mz(t,e,a){return t=a&&a.length>0?`${t+" "+a.join(" ")}`:t,_C(t,e,Az(t),Az(e),0,0,{})}var J=L(F(),1);var qh='[cmdk-group=""]',zC='[cmdk-group-items=""]',wW='[cmdk-group-heading=""]',Dz='[cmdk-item=""]',Ez=`${Dz}:not([aria-disabled="true"])`,NC="cmdk-item-select",hf="data-value",CW=(t,e,a)=>Mz(t,e,a),$z=J.createContext(void 0),Zh=()=>J.useContext($z),Bz=J.createContext(void 0),XC=()=>J.useContext(Bz),_z=J.createContext(void 0),zz=J.forwardRef((t,e)=>{let a=pf(()=>{var P,G;return{search:"",value:(G=(P=t.value)!=null?P:t.defaultValue)!=null?G:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=pf(()=>new Set),n=pf(()=>new Map),i=pf(()=>new Map),o=pf(()=>new Set),s=Nz(t),{label:l,children:u,value:c,onValueChange:f,filter:d,shouldFilter:h,loop:p,disablePointerSelection:m=!1,vimBindings:x=!0,...g}=t,O=Dt(),y=Dt(),b=Dt(),v=J.useRef(null),S=DW();ru(()=>{if(c!==void 0){let P=c.trim();a.current.value=P,w.emit()}},[c]),ru(()=>{S(6,R)},[]);let w=J.useMemo(()=>({subscribe:P=>(o.current.add(P),()=>o.current.delete(P)),snapshot:()=>a.current,setState:(P,G,N)=>{var M,j,de,ee;if(!Object.is(a.current[P],G)){if(a.current[P]=G,P==="search")A(),Q(),S(1,$);else if(P==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Z=document.getElementById(b);Z?Z.focus():(M=document.getElementById(O))==null||M.focus()}if(S(7,()=>{var Z;a.current.selectedItemId=(Z=D())==null?void 0:Z.id,w.emit()}),N||S(5,R),((j=s.current)==null?void 0:j.value)!==void 0){let Z=G??"";(ee=(de=s.current).onValueChange)==null||ee.call(de,Z);return}}w.emit()}},emit:()=>{o.current.forEach(P=>P())}}),[]),k=J.useMemo(()=>({value:(P,G,N)=>{var M;G!==((M=i.current.get(P))==null?void 0:M.value)&&(i.current.set(P,{value:G,keywords:N}),a.current.filtered.items.set(P,T(G,N)),S(2,()=>{Q(),w.emit()}))},item:(P,G)=>(r.current.add(P),G&&(n.current.has(G)?n.current.get(G).add(P):n.current.set(G,new Set([P]))),S(3,()=>{A(),Q(),a.current.value||$(),w.emit()}),()=>{i.current.delete(P),r.current.delete(P),a.current.filtered.items.delete(P);let N=D();S(4,()=>{A(),N?.getAttribute("id")===P&&$(),w.emit()})}),group:P=>(n.current.has(P)||n.current.set(P,new Set),()=>{i.current.delete(P),n.current.delete(P)}),filter:()=>s.current.shouldFilter,label:l||t["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:O,inputId:b,labelId:y,listInnerRef:v}),[]);function T(P,G){var N,M;let j=(M=(N=s.current)==null?void 0:N.filter)!=null?M:CW;return P?j(P,a.current.search,G):0}function Q(){if(!a.current.search||s.current.shouldFilter===!1)return;let P=a.current.filtered.items,G=[];a.current.filtered.groups.forEach(M=>{let j=n.current.get(M),de=0;j.forEach(ee=>{let Z=P.get(ee);de=Math.max(Z,de)}),G.push([M,de])});let N=v.current;Y().sort((M,j)=>{var de,ee;let Z=M.getAttribute("id"),Ze=j.getAttribute("id");return((de=P.get(Ze))!=null?de:0)-((ee=P.get(Z))!=null?ee:0)}).forEach(M=>{let j=M.closest(zC);j?j.appendChild(M.parentElement===j?M:M.closest(`${zC} > *`)):N.appendChild(M.parentElement===N?M:M.closest(`${zC} > *`))}),G.sort((M,j)=>j[1]-M[1]).forEach(M=>{var j;let de=(j=v.current)==null?void 0:j.querySelector(`${qh}[${hf}="${encodeURIComponent(M[0])}"]`);de?.parentElement.appendChild(de)})}function $(){let P=Y().find(N=>N.getAttribute("aria-disabled")!=="true"),G=P?.getAttribute(hf);w.setState("value",G||void 0)}function A(){var P,G,N,M;if(!a.current.search||s.current.shouldFilter===!1){a.current.filtered.count=r.current.size;return}a.current.filtered.groups=new Set;let j=0;for(let de of r.current){let ee=(G=(P=i.current.get(de))==null?void 0:P.value)!=null?G:"",Z=(M=(N=i.current.get(de))==null?void 0:N.keywords)!=null?M:[],Ze=T(ee,Z);a.current.filtered.items.set(de,Ze),Ze>0&&j++}for(let[de,ee]of n.current)for(let Z of ee)if(a.current.filtered.items.get(Z)>0){a.current.filtered.groups.add(de);break}a.current.filtered.count=j}function R(){var P,G,N;let M=D();M&&(((P=M.parentElement)==null?void 0:P.firstChild)===M&&((N=(G=M.closest(qh))==null?void 0:G.querySelector(wW))==null||N.scrollIntoView({block:"nearest"})),M.scrollIntoView({block:"nearest"}))}function D(){var P;return(P=v.current)==null?void 0:P.querySelector(`${Dz}[aria-selected="true"]`)}function Y(){var P;return Array.from(((P=v.current)==null?void 0:P.querySelectorAll(Ez))||[])}function B(P){let G=Y()[P];G&&w.setState("value",G.getAttribute(hf))}function q(P){var G;let N=D(),M=Y(),j=M.findIndex(ee=>ee===N),de=M[j+P];(G=s.current)!=null&&G.loop&&(de=j+P<0?M[M.length-1]:j+P===M.length?M[0]:M[j+P]),de&&w.setState("value",de.getAttribute(hf))}function re(P){let G=D(),N=G?.closest(qh),M;for(;N&&!M;)N=P>0?MW(N,qh):EW(N,qh),M=N?.querySelector(Ez);M?w.setState("value",M.getAttribute(hf)):q(P)}let ie=()=>B(Y().length-1),z=P=>{P.preventDefault(),P.metaKey?ie():P.altKey?re(1):q(1)},Pe=P=>{P.preventDefault(),P.metaKey?B(0):P.altKey?re(-1):q(-1)};return J.createElement(ue.div,{ref:e,tabIndex:-1,...g,"cmdk-root":"",onKeyDown:P=>{var G;(G=g.onKeyDown)==null||G.call(g,P);let N=P.nativeEvent.isComposing||P.keyCode===229;if(!(P.defaultPrevented||N))switch(P.key){case"n":case"j":{x&&P.ctrlKey&&z(P);break}case"ArrowDown":{z(P);break}case"p":case"k":{x&&P.ctrlKey&&Pe(P);break}case"ArrowUp":{Pe(P);break}case"Home":{P.preventDefault(),B(0);break}case"End":{P.preventDefault(),ie();break}case"Enter":{P.preventDefault();let M=D();if(M){let j=new Event(NC);M.dispatchEvent(j)}}}}},J.createElement("label",{"cmdk-label":"",htmlFor:k.inputId,id:k.labelId,style:BW},l),m0(t,P=>J.createElement(Bz.Provider,{value:w},J.createElement($z.Provider,{value:k},P))))}),kW=J.forwardRef((t,e)=>{var a,r;let n=Dt(),i=J.useRef(null),o=J.useContext(_z),s=Zh(),l=Nz(t),u=(r=(a=l.current)==null?void 0:a.forceMount)!=null?r:o?.forceMount;ru(()=>{if(!u)return s.item(n,o?.id)},[u]);let c=Xz(n,i,[t.value,t.children,i],t.keywords),f=XC(),d=Ds(S=>S.value&&S.value===c.current),h=Ds(S=>u||s.filter()===!1?!0:S.search?S.filtered.items.get(n)>0:!0);J.useEffect(()=>{let S=i.current;if(!(!S||t.disabled))return S.addEventListener(NC,p),()=>S.removeEventListener(NC,p)},[h,t.onSelect,t.disabled]);function p(){var S,w;m(),(w=(S=l.current).onSelect)==null||w.call(S,c.current)}function m(){f.setState("value",c.current,!0)}if(!h)return null;let{disabled:x,value:g,onSelect:O,forceMount:y,keywords:b,...v}=t;return J.createElement(ue.div,{ref:ts(i,e),...v,id:n,"cmdk-item":"",role:"option","aria-disabled":!!x,"aria-selected":!!d,"data-disabled":!!x,"data-selected":!!d,onPointerMove:x||s.getDisablePointerSelection()?void 0:m,onClick:x?void 0:p},t.children)}),LW=J.forwardRef((t,e)=>{let{heading:a,children:r,forceMount:n,...i}=t,o=Dt(),s=J.useRef(null),l=J.useRef(null),u=Dt(),c=Zh(),f=Ds(h=>n||c.filter()===!1?!0:h.search?h.filtered.groups.has(o):!0);ru(()=>c.group(o),[]),Xz(o,s,[t.value,t.heading,l]);let d=J.useMemo(()=>({id:o,forceMount:n}),[n]);return J.createElement(ue.div,{ref:ts(s,e),...i,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},a&&J.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:u},a),m0(t,h=>J.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":a?u:void 0},J.createElement(_z.Provider,{value:d},h))))}),TW=J.forwardRef((t,e)=>{let{alwaysRender:a,...r}=t,n=J.useRef(null),i=Ds(o=>!o.search);return!a&&!i?null:J.createElement(ue.div,{ref:ts(n,e),...r,"cmdk-separator":"",role:"separator"})}),PW=J.forwardRef((t,e)=>{let{onValueChange:a,...r}=t,n=t.value!=null,i=XC(),o=Ds(u=>u.search),s=Ds(u=>u.selectedItemId),l=Zh();return J.useEffect(()=>{t.value!=null&&i.setState("search",t.value)},[t.value]),J.createElement(ue.input,{ref:e,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":s,id:l.inputId,type:"text",value:n?t.value:o,onChange:u=>{n||i.setState("search",u.target.value),a?.(u.target.value)}})}),RW=J.forwardRef((t,e)=>{let{children:a,label:r="Suggestions",...n}=t,i=J.useRef(null),o=J.useRef(null),s=Ds(u=>u.selectedItemId),l=Zh();return J.useEffect(()=>{if(o.current&&i.current){let u=o.current,c=i.current,f,d=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let h=u.offsetHeight;c.style.setProperty("--cmdk-list-height",h.toFixed(1)+"px")})});return d.observe(u),()=>{cancelAnimationFrame(f),d.unobserve(u)}}},[]),J.createElement(ue.div,{ref:ts(i,e),...n,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:l.listId},m0(t,u=>J.createElement("div",{ref:ts(o,l.listInnerRef),"cmdk-list-sizer":""},u)))}),IW=J.forwardRef((t,e)=>{let{open:a,onOpenChange:r,overlayClassName:n,contentClassName:i,container:o,...s}=t;return J.createElement(Av,{open:a,onOpenChange:r},J.createElement(Qv,{container:o},J.createElement(Mv,{"cmdk-overlay":"",className:n}),J.createElement(Ev,{"aria-label":t.label,"cmdk-dialog":"",className:i},J.createElement(zz,{ref:e,...s}))))}),AW=J.forwardRef((t,e)=>Ds(a=>a.filtered.count===0)?J.createElement(ue.div,{ref:e,...t,"cmdk-empty":"",role:"presentation"}):null),QW=J.forwardRef((t,e)=>{let{progress:a,children:r,label:n="Loading...",...i}=t;return J.createElement(ue.div,{ref:e,...i,"cmdk-loading":"",role:"progressbar","aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":100,"aria-label":n},m0(t,o=>J.createElement("div",{"aria-hidden":!0},o)))}),nu=Object.assign(zz,{List:RW,Item:kW,Input:PW,Group:LW,Separator:TW,Dialog:IW,Empty:AW,Loading:QW});function MW(t,e){let a=t.nextElementSibling;for(;a;){if(a.matches(e))return a;a=a.nextElementSibling}}function EW(t,e){let a=t.previousElementSibling;for(;a;){if(a.matches(e))return a;a=a.previousElementSibling}}function Nz(t){let e=J.useRef(t);return ru(()=>{e.current=t}),e}var ru=typeof window>"u"?J.useEffect:J.useLayoutEffect;function pf(t){let e=J.useRef();return e.current===void 0&&(e.current=t()),e}function Ds(t){let e=XC(),a=()=>t(e.snapshot());return J.useSyncExternalStore(e.subscribe,a,a)}function Xz(t,e,a,r=[]){let n=J.useRef(),i=Zh();return ru(()=>{var o;let s=(()=>{var u;for(let c of a){if(typeof c=="string")return c.trim();if(typeof c=="object"&&"current"in c)return c.current?(u=c.current.textContent)==null?void 0:u.trim():n.current}})(),l=r.map(u=>u.trim());i.value(t,s,l),(o=e.current)==null||o.setAttribute(hf,s),n.current=s}),n}var DW=()=>{let[t,e]=J.useState(),a=pf(()=>new Map);return ru(()=>{a.current.forEach(r=>r()),a.current=new Map},[t]),(r,n)=>{a.current.set(r,n),e({})}};function $W(t){let e=t.type;return typeof e=="function"?e(t.props):"render"in e?e.render(t.props):t}function m0({asChild:t,children:e},a){return t&&J.isValidElement(e)?J.cloneElement($W(e),{ref:e.ref},a(e.props.children)):a(e)}var BW={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};var Si=L(H(),1);function qz({className:t,...e}){return(0,Si.jsx)(nu,{"data-slot":"command",className:pe("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",t),...e})}function Zz({className:t,...e}){return(0,Si.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,Si.jsx)(Ld,{className:"size-4 shrink-0 opacity-50"}),(0,Si.jsx)(nu.Input,{"data-slot":"command-input",className:pe("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),...e})]})}function Vz({className:t,...e}){return(0,Si.jsx)(nu.List,{"data-slot":"command-list",className:pe("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...e})}function Uz({...t}){return(0,Si.jsx)(nu.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...t})}function jz({className:t,...e}){return(0,Si.jsx)(nu.Group,{"data-slot":"command-group",className:pe("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",t),...e})}function Fz({className:t,...e}){return(0,Si.jsx)(nu.Item,{"data-slot":"command-item",className:pe("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",t),...e})}var mt=L(H(),1);function Gz({onPick:t}){let[e,a]=(0,qC.useState)(""),[r,n]=(0,qC.useState)(!1),{data:i}=oi(e);return(0,mt.jsxs)(qz,{shouldFilter:!1,className:"relative w-full overflow-visible rounded-[9px] border bg-zinc-50 text-zinc-400 focus-within:border-foreground focus-within:bg-background focus-within:text-zinc-500 [&_[data-slot=command-input-wrapper]]:h-[32px] [&_[data-slot=command-input-wrapper]]:border-0 [&_[data-slot=command-input]]:h-8 [&_[data-slot=command-input]]:text-[12.5px] [&_[data-slot=command-input]]:text-foreground [&_[data-slot=command-input]]:placeholder:text-zinc-400",onFocus:()=>n(!0),onBlur:()=>n(!1),children:[(0,mt.jsx)(Zz,{placeholder:"Search everything",spellCheck:!1,value:e,onValueChange:a,onKeyDown:o=>o.key==="Escape"&&a("")}),r&&e!==""&&(0,mt.jsxs)(Vz,{className:"absolute top-full right-0 left-0 z-50 mt-[7px] max-h-[min(460px,62vh)] rounded-xl border bg-popover p-[5px] shadow-[0_20px_44px_-16px_rgba(0,0,0,0.3)] [&_[cmdk-group-heading]]:px-[11px] [&_[cmdk-group-heading]]:pt-2 [&_[cmdk-group-heading]]:pb-1.5 [&_[cmdk-group-heading]]:text-[10px] [&_[cmdk-group-heading]]:font-bold [&_[cmdk-group-heading]]:tracking-[0.07em] [&_[cmdk-group-heading]]:text-zinc-400 [&_[cmdk-group-heading]]:uppercase [&_[data-slot=command-group]]:p-0",onMouseDown:o=>o.preventDefault(),children:[i?.type==="FaultsByFile"&&(0,mt.jsx)("p",{className:"px-3 py-3.5 text-xs text-zinc-400",children:"The engine will not read this charter, so there is nothing to search."}),i?.type==="Fault"&&(0,mt.jsxs)("p",{className:"px-3 py-3.5 text-xs text-zinc-400",children:[i.data.message," ",i.data.fix]}),i?.type==="Primitives"&&(0,mt.jsxs)(mt.Fragment,{children:[(0,mt.jsx)(Uz,{className:"px-3 py-3.5 text-xs text-zinc-400",children:"Nothing in the charter says that."}),i.data.primitives.length>0&&(0,mt.jsx)(jz,{heading:`${i.data.primitives.length} primitive${i.data.primitives.length===1?"":"s"}`,children:i.data.primitives.map(o=>{let{id:s,kind:l,description:u,layerName:c,headers:f}=o.data;return(0,mt.jsxs)(Fz,{value:s,className:"grid cursor-pointer grid-cols-[74px_minmax(0,1fr)_max-content] items-baseline gap-2.5 rounded-lg px-[11px] py-2 data-[selected=true]:bg-zinc-50 data-[selected=true]:outline data-[selected=true]:outline-zinc-200",onSelect:()=>{a(""),n(!1),t(o)},children:[(0,mt.jsx)("span",{className:"font-mono text-[9.5px] font-bold tracking-[0.03em] text-zinc-500 uppercase",children:l}),(0,mt.jsxs)("span",{className:"min-w-0",children:[(0,mt.jsx)("span",{className:"block truncate font-mono text-xs text-foreground",children:(0,mt.jsx)(Hz,{text:String(f.id),word:e})}),(0,mt.jsx)("span",{className:"mt-0.5 block truncate text-[11px] leading-[1.45] text-zinc-400",children:(0,mt.jsx)(Hz,{text:u,word:e})})]}),(0,mt.jsx)(mi,{className:`rounded-[5px] px-1.5 py-0.5 font-mono text-[9.5px] font-bold tracking-[0.03em] ${_W[c]}`,children:c})]},s)})})]})]})]})}var _W={repo:"bg-[#eff6ff] text-[#1d4ed8]",vendor:"bg-[#f6f2ff] text-[#7c3aed]",builtin:"bg-zinc-100 text-zinc-700"};function Hz({text:t,word:e}){let a=t.toLowerCase().indexOf(e.toLowerCase());return a===-1||e===""?(0,mt.jsx)(mt.Fragment,{children:t}):(0,mt.jsxs)(mt.Fragment,{children:[t.slice(0,a),(0,mt.jsx)("mark",{className:"rounded-[2px] bg-[#fff2b8] text-inherit",children:t.slice(a,a+e.length)}),t.slice(a+e.length)]})}var ma=L(H(),1);function Yz(){let t=AA(),e=QA();if(t.data===void 0)return null;if(t.data.type!=="MainContexts")return(0,ma.jsx)("p",{className:"text-xs text-zinc-500",children:"Nothing was counted: the charter does not hold. Open Doctor to see why."});let{contexts:a}=t.data.data;if(a.length===0)return(0,ma.jsx)("p",{className:"text-xs text-zinc-500",children:"No agent is chosen, so no agent loads anything of the charter."});let r=e.data?.data.mainContextCeiling;return(0,ma.jsx)("div",{className:"space-y-6",children:a.map(({data:{agent:n,isExact:i,sessionLoads:o,fileLoads:s,totalTokens:l}})=>(0,ma.jsxs)("section",{className:"space-y-3","aria-label":`${n} main context`,children:[(0,ma.jsxs)("h2",{className:"text-[13px] font-semibold",children:[n," opens a session with ",l.toLocaleString("en-US")," tokens of the charter, ",i?"counted exactly":"estimated",r!==void 0&&(0,ma.jsxs)("span",{className:l>r?"text-[#b45309]":"text-zinc-400",children:[" ","\xB7 ",l>r?"past":"within"," the ceiling of ",r.toLocaleString("en-US")]})]}),[["Loaded when a session opens",o],["Loaded when a file it names is touched, not in the total",s]].map(([u,c])=>c.length>0&&(0,ma.jsxs)("div",{className:"space-y-1.5",children:[(0,ma.jsx)("h3",{className:"text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:u}),(0,ma.jsx)("table",{className:"w-full overflow-hidden rounded-[11px] border border-[#f0f0f0] text-xs","aria-label":u,children:(0,ma.jsx)("tbody",{children:c.map(({data:{id:f,kind:d,tokens:h,globs:p}})=>(0,ma.jsxs)("tr",{className:"border-b border-zinc-100 last:border-b-0",children:[(0,ma.jsx)("td",{className:"w-[90px] px-[13px] py-2 text-right font-mono",children:h.toLocaleString("en-US")}),(0,ma.jsx)("td",{className:"w-[90px] px-2 py-2 text-zinc-500",children:d}),(0,ma.jsx)("td",{className:"px-2 py-2 font-mono",children:f}),(0,ma.jsx)("td",{className:"px-2 py-2 font-mono text-zinc-400",children:p?.join(", ")})]},f))})})]},u))]},n))})}var Wz=L(F(),1);var De=L(H(),1);function Kz(){let{open:t}=ho(),e=Hm(),a=$A(),r=oi(),n=BA(),[i,o]=(0,Wz.useState)(null);if(e.data===void 0)return null;let{testSuites:s}=e.data.data,l=new Set(r.data?.type==="Primitives"?r.data.data.primitives.map(({data:m})=>m.id):[]),u=a.data?.type==="TestRunReport"?a.data:void 0,c=m=>u?.data.testCaseReports.filter(({data:x})=>x.suiteName===m)??[],f=s.reduce((m,{data:x})=>m+x.cases.length,0),d=u?.data.testCaseReports.filter(({data:m})=>!m.passed).length??0,h=async()=>{let{data:m}=await a.refetch();if(m?.type!=="TestRunReport")return;let x=m.data.testCaseReports.find(({data:g})=>!g.passed);x!==void 0&&o(x.data.suiteName)},p=async()=>{let m=await n.mutateAsync();o(m),t("testSuite",{name:m}),cl("Test file created",{description:`.cw/test/${m} \xB7 edit the cases, then run them`})};return(0,De.jsxs)("div",{className:"space-y-2.5",children:[(0,De.jsxs)("div",{className:`mb-[18px] flex flex-wrap items-center gap-[11px] rounded-xl border px-[15px] py-[13px] ${u===void 0?"":d>0?"border-[#f6d9d9] bg-[#fef6f6]":"border-[#dcf0e2] bg-[#f5fbf7]"}`,"aria-label":"Test summary",children:[(0,De.jsx)("span",{className:"text-[12.5px] font-bold",children:u===void 0?`${f} case${f===1?"":"s"} in ${s.length} file${s.length===1?"":"s"}`:`${u.data.testCaseReports.length-d} of ${u.data.testCaseReports.length} cases pass`}),(0,De.jsx)("span",{className:"min-w-0 flex-1 text-[11.5px] leading-[1.6] text-zinc-500",children:"A case names the file a change touches or the event it raises, then says what must come up. It runs nothing and asks no agent."}),(0,De.jsx)(Ae,{variant:"outline",disabled:n.isPending,onClick:()=>{p()},children:"New test file"}),(0,De.jsx)(Ae,{disabled:a.isFetching,onClick:()=>{h()},children:"Run all tests"})]}),a.data?.type==="FaultsByFile"&&(0,De.jsx)(fs,{faultsByFile:a.data,label:"Nothing was resolved"}),s.length===0&&(0,De.jsx)("div",{className:"rounded-xl border border-dashed px-[15px] py-3.5 text-[11.5px] leading-[1.6] text-zinc-500",children:"No test file yet. Test files live in .cw/test/."}),s.map(({data:m})=>{let x=c(m.name),g=x.filter(({data:O})=>!O.passed).length;return(0,De.jsxs)("section",{className:"overflow-hidden rounded-[14px] border bg-background","aria-label":m.name,children:[(0,De.jsxs)("div",{className:"flex items-baseline gap-2.5 px-[15px] py-3",children:[(0,De.jsxs)("button",{className:"flex min-w-0 flex-1 cursor-pointer items-baseline gap-2.5 text-left","aria-expanded":i===m.name,onClick:()=>o(i===m.name?null:m.name),children:[(0,De.jsx)("span",{className:"font-mono text-[11.5px] font-bold",children:m.name}),(0,De.jsx)("span",{className:"min-w-0 flex-1 text-[11.5px] text-zinc-500",children:m.description}),(0,De.jsxs)("span",{className:`font-mono text-[10.5px] ${g>0?"text-destructive":"text-zinc-400"}`,children:[m.cases.length," case",m.cases.length===1?"":"s",g>0&&` \xB7 ${g} failing`]})]}),(0,De.jsx)(Ae,{variant:"ghost",className:"h-auto p-0 text-[11.5px] text-zinc-400 hover:bg-transparent hover:text-foreground",onClick:()=>t("testSuite",{name:m.name}),children:"Edit"})]}),m.fault!==void 0&&(0,De.jsxs)("p",{className:"border-t border-[#f7f7f8] px-[15px] py-2.5 text-[11.5px] text-destructive",children:[m.fault.data.message," ",(0,De.jsx)("span",{className:"text-zinc-400",children:m.fault.data.fix})]}),i===m.name&&m.cases.map(({data:O},y)=>(0,De.jsx)(zW,{testCase:O,testCaseReport:x[y],isHeld:O.id===void 0||l.has(O.id),onOpen:b=>t("primitive",{id:b})},y))]},m.name)})]})}function zW({testCase:t,testCaseReport:e,isHeld:a,onOpen:r}){let n=e?.data.unmet,{id:i,expectation:o}=t;return(0,De.jsxs)("div",{className:`grid grid-cols-[minmax(150px,1fr)_minmax(0,1.4fr)_auto] items-baseline gap-3 border-t border-[#f7f7f8] px-[15px] py-2.5 ${n?"bg-[#fef6f6]":""}`,children:[(0,De.jsx)("span",{className:"font-mono text-[10.5px]",children:t.situation}),n!==void 0?(0,De.jsxs)("span",{className:"font-mono text-[10.5px] text-destructive",children:[n.data.message," ",(0,De.jsx)("span",{className:"text-zinc-400",children:n.data.fix})]}):(0,De.jsx)("span",{className:"font-mono text-[10.5px] text-zinc-400",children:i===void 0||!o.endsWith(i)?o:(0,De.jsxs)(De.Fragment,{children:[o.slice(0,-i.length),a?(0,De.jsx)("button",{className:"cursor-pointer text-[#1d4ed8] underline underline-offset-2",onClick:()=>r(i),children:i}):(0,De.jsxs)(De.Fragment,{children:[(0,De.jsx)("span",{className:"underline decoration-dotted underline-offset-2",children:i})," ",(0,De.jsx)(mi,{className:"rounded-[5px] bg-zinc-100 px-1.5 py-0 font-sans text-[10px] font-normal text-zinc-500",children:"not in the charter"})]})]})}),(0,De.jsx)(mi,{className:`rounded-[5px] px-[7px] py-0 text-[11.5px] font-bold tracking-[0.04em] [font-variant-caps:all-small-caps] ${e===void 0?"bg-zinc-50 text-[#c4c4c8]":e.data.passed?"bg-[#f0fdf4] text-[#15803d]":"bg-[#fdeef0] text-[#b91c1c]"}`,children:e===void 0?"not run":e.data.passed?"pass":"fail"})]})}var Zt=L(H(),1);function Jz(){let{open:t}=ho(),e=MA(),a=oi(),r=DA();if(e.data===void 0)return null;let n=e.data,i=a.data?.type==="Primitives"?a.data.data.primitives.filter(({data:s})=>s.layerName==="vendor"):[],o=async s=>{let l=await r.mutateAsync(s.split("/").at(-1)??"");if(l!==null)return void cl.error(l.data.message,{description:l.data.fix});cl("Vendor source removed",{description:`${s} \xB7 run Build to compile the charter without it`})};return n.length===0?(0,Zt.jsxs)("div",{className:"flex items-center gap-[9px] rounded-xl border border-dashed px-[15px] py-3.5","aria-label":"Vendor sources",children:[(0,Zt.jsx)("span",{className:"text-xs font-semibold",children:"No vendor source installed"}),(0,Zt.jsx)(Ae,{size:"sm",className:"ml-auto",onClick:()=>t("addVendor",{}),children:"Add vendor source"})]}):(0,Zt.jsxs)("section",{className:"divide-y divide-[#f0f0f0] overflow-hidden rounded-[13px] border bg-background","aria-label":"Vendor sources",children:[(0,Zt.jsx)("h2",{className:"px-3.5 py-[11px] text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"Vendor sources"}),n.map(s=>{let l=i.filter(({data:c})=>c.file.startsWith(`${s}/`)),u=[...new Set(l.map(({data:c})=>c.kind))].sort().map(c=>[c,l.filter(({data:f})=>f.kind===c).length]);return(0,Zt.jsxs)("div",{className:"flex flex-col gap-2.5 bg-[#f6f2ff] px-3.5 py-3","aria-label":s,children:[(0,Zt.jsxs)("div",{className:"min-w-0 space-y-0.5",children:[(0,Zt.jsx)("div",{className:"text-[12.5px] font-semibold",children:s.split("/").at(-1)}),(0,Zt.jsxs)("div",{className:"text-[11px] text-zinc-500",children:[(0,Zt.jsxs)("span",{className:"font-mono",children:[s,"/"]})," \xB7 read-only"]})]}),(0,Zt.jsx)("dl",{className:"grid grid-cols-[1fr_auto] gap-x-2 gap-y-1.5 text-[11.5px] text-zinc-500","aria-label":"Primitives by kind",children:u.map(([c,f])=>(0,Zt.jsxs)("div",{className:"contents",children:[(0,Zt.jsx)("dt",{children:c}),(0,Zt.jsx)("dd",{className:"font-mono text-[10.5px] text-zinc-400",children:f})]},c))}),(0,Zt.jsx)(Ae,{size:"sm",variant:"outline",className:"self-start",disabled:r.isPending,onClick:()=>{o(s)},children:"Remove"})]},s)}),(0,Zt.jsx)("div",{className:"px-3.5 py-[11px]",children:(0,Zt.jsx)(Ae,{size:"sm",variant:"outline",onClick:()=>t("addVendor",{}),children:"Add source"})})]})}var iu=L(H(),1),eN=({...t})=>(0,iu.jsx)(VA,{theme:"light",className:"toaster group",icons:{success:(0,iu.jsx)(Go,{className:"size-4"}),info:(0,iu.jsx)(kd,{className:"size-4"}),warning:(0,iu.jsx)(Ko,{className:"size-4"}),error:(0,iu.jsx)(Wo,{className:"size-4"}),loading:(0,iu.jsx)(Yo,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},...t});var qe=L(H(),1),NW=[["repo","Repo Charter"],["vendor","Vendor"],["test","Test"],["context","Context"]],g0="rounded-2xl border bg-background px-[22px] py-5";function XW(){let[t,e]=(0,Vh.useState)("repo"),[a,r]=(0,Vh.useState)(null),{open:n}=ho();return(0,qe.jsxs)(qe.Fragment,{children:[(0,qe.jsxs)("header",{className:"sticky top-0 z-20 flex h-14 items-center gap-3 border-b bg-background px-[26px]",children:[(0,qe.jsxs)("span",{className:"flex items-center gap-[9px] text-[13.5px] font-bold tracking-[-0.01em]",children:[(0,qe.jsx)("img",{src:"./logo.png",alt:"",className:"size-[22px] object-contain"}),"Cherry Works"]}),(0,qe.jsx)("span",{className:"font-mono text-[11.5px] text-zinc-400"}),(0,qe.jsx)("div",{className:"ml-auto flex w-full max-w-[460px]",children:(0,qe.jsx)(Gz,{onPick:({data:{id:i,kind:o,layerName:s}})=>{e(s==="vendor"?"vendor":"repo"),r(o),n("primitive",{id:i})}})}),(0,qe.jsx)(Ae,{variant:"outline",onClick:()=>n("buildPreview",{}),children:"Build"}),(0,qe.jsx)(Ae,{variant:"outline",onClick:()=>n("doctor",{}),children:"Doctor"})]}),(0,qe.jsx)("main",{className:"mx-auto max-w-[1120px] px-[26px] pt-[22px] pb-[60px]",children:(0,qe.jsxs)(u0,{value:t,onValueChange:i=>{e(i),r(null)},children:[(0,qe.jsx)(c0,{className:"mb-4 h-auto w-full gap-1 rounded-[11px] bg-[#e9e9ec] p-1",children:NW.map(([i,o])=>(0,qe.jsx)(zh,{value:i,className:"h-auto rounded-lg py-[9px] text-[12.5px] font-semibold text-zinc-500 data-[state=active]:shadow-[0_1px_3px_rgba(0,0,0,0.09)]",children:o},i))}),(0,qe.jsx)(Es,{value:"repo",className:g0,children:(0,qe.jsx)(DC,{layerNames:["repo","builtin"],kind:a,onKindChange:r})}),(0,qe.jsxs)(Es,{value:"vendor",className:`${g0} grid items-start gap-4 md:has-[>section]:grid-cols-[210px_minmax(0,1fr)]`,children:[(0,qe.jsx)(Jz,{}),(0,qe.jsx)(DC,{layerNames:["vendor"],kind:a,onKindChange:r})]}),(0,qe.jsx)(Es,{value:"test",className:g0,children:(0,qe.jsx)(Kz,{})}),(0,qe.jsx)(Es,{value:"context",className:g0,children:(0,qe.jsx)(Yz,{})})]})}),(0,qe.jsx)(eN,{})]})}var qW=new Bb;(0,tN.createRoot)(document.getElementById("root")).render((0,qe.jsx)(Vh.StrictMode,{children:(0,qe.jsx)(Lb,{client:qW,children:(0,qe.jsx)(kz,{children:(0,qe.jsx)(XW,{})})})}));
|
|
139
|
+
Please report this to https://github.com/markedjs/marked.`,t){let r="<p>An error occurred:</p><pre>"+Rr(a.message+"",!0)+"</pre>";return e?Promise.resolve(r):r}if(e)return Promise.reject(a);throw a}}},Jl=new CC;function it(t,e){return Jl.parse(t,e)}it.options=it.setOptions=function(t){return Jl.setOptions(t),it.defaults=Jl.defaults,tz(it.defaults),it};it.getDefaults=gC;it.defaults=eu;function J8(...t){return Jl.use(...t),it.defaults=Jl.defaults,tz(it.defaults),it}it.use=J8;it.walkTokens=function(t,e){return Jl.walkTokens(t,e)};it.parseInline=Jl.parseInline;it.Parser=_n;it.parser=_n.parse;it.Renderer=l0;it.TextRenderer=wC;it.Lexer=Bn;it.lexer=Bn.lex;it.Tokenizer=s0;it.Hooks=Dh;it.parse=it;var $se=it.options,Bse=it.setOptions,_se=it.walkTokens,zse=it.parseInline;var Nse=_n.parse,Xse=Bn.lex;var Hse=L(F(),1);var Nh=L(H(),1);function u0({className:t,orientation:e="horizontal",...a}){return(0,Nh.jsx)(Ll.Root,{"data-slot":"tabs","data-orientation":e,orientation:e,className:pe("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...a})}var eW=li("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function c0({className:t,variant:e="default",...a}){return(0,Nh.jsx)(Ll.List,{"data-slot":"tabs-list","data-variant":e,className:pe(eW({variant:e}),t),...a})}function zh({className:t,...e}){return(0,Nh.jsx)(Ll.Trigger,{"data-slot":"tabs-trigger",className:pe("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",t),...e})}function Es({className:t,...e}){return(0,Nh.jsx)(Ll.Content,{"data-slot":"tabs-content",className:pe("flex-1 outline-none",t),...e})}var lr=L(H(),1),tW=new CC({renderer:{html:({text:t})=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")},walkTokens:t=>{(t.type==="link"||t.type==="image")&&/^\s*(javascript|vbscript|data):/i.test(t.href)&&(t.href="#")}}),cz="h-auto flex-none cursor-pointer rounded-md px-[11px] py-[5px] text-[11.5px] font-semibold text-zinc-500 data-[state=active]:shadow-[0_1px_2px_rgba(0,0,0,0.08)]";function kC({body:t,onChange:e}){return(0,lr.jsxs)(u0,{defaultValue:e===void 0?"preview":"source",className:"gap-0 overflow-hidden rounded-xl border bg-background",children:[(0,lr.jsxs)("div",{className:"flex items-center gap-2.5 border-b border-[#f0f0f0] px-[13px] py-[9px]",children:[(0,lr.jsx)("span",{className:"text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"Body"}),(0,lr.jsx)("span",{className:"font-mono text-[10.5px] text-zinc-400",children:"markdown"}),(0,lr.jsxs)(c0,{className:"ml-auto h-auto gap-0.5 rounded-lg bg-[#f0f0f2] p-[3px]",children:[(0,lr.jsx)(zh,{value:"source",className:cz,children:"Source"}),(0,lr.jsx)(zh,{value:"preview",className:cz,children:"Preview"})]})]}),(0,lr.jsx)(Es,{value:"source",className:"h-[300px] flex-none",children:(0,lr.jsx)(aW,{body:t,onChange:e})}),(0,lr.jsx)(Es,{value:"preview",children:(0,lr.jsx)("div",{className:"min-h-32 px-[18px] py-4 text-[12.5px] leading-[1.65] text-zinc-700 [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:font-mono [&_code]:text-xs [&_h1]:mb-[7px] [&_h1]:text-[15px] [&_h1]:font-bold [&_h1]:text-foreground [&_h2]:mt-4 [&_h2]:mb-[7px] [&_h2]:text-[13px] [&_h2]:font-bold [&_h2]:text-foreground [&_strong]:font-semibold [&_strong]:text-foreground [&_li]:ml-5 [&_ol]:list-decimal [&_p]:mb-2 [&_ul]:list-disc",dangerouslySetInnerHTML:{__html:tW.parse(t,{async:!1})}})})]})}function aW({body:t,onChange:e}){let a=(0,fz.useCallback)(r=>{let n=new oe({parent:r,doc:t,extensions:[U5(),G$(Y$),lB(),Xl.of([..._B,...dB]),oe.lineWrapping,oe.editable.of(e!==void 0),oe.updateListener.of(i=>{i.docChanged&&e?.(i.state.doc.toString())})]});return()=>n.destroy()},[]);return(0,lr.jsx)("div",{className:"h-full",ref:a})}var ole=L(F(),1);var dz=L(H(),1);function tu({className:t,type:e,...a}){return(0,dz.jsx)("input",{type:e,"data-slot":"input",className:pe("h-[30px] w-full min-w-0 rounded-lg border border-input bg-background px-[11px] py-1 font-mono text-[11.5px] text-foreground transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30","focus-visible:border-[#d92f45]","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",t),...a})}var ule=L(F(),1);var hz=L(H(),1);function Xh({className:t,...e}){return(0,hz.jsx)(Dg.Root,{"data-slot":"label",className:pe("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...e})}var hle=L(F(),1);var It=L(H(),1);function LC({...t}){return(0,It.jsx)(Da.Root,{"data-slot":"select",...t})}function TC({...t}){return(0,It.jsx)(Da.Value,{"data-slot":"select-value",...t})}function PC({className:t,size:e="default",children:a,...r}){return(0,It.jsxs)(Da.Trigger,{"data-slot":"select-trigger","data-size":e,className:pe("flex w-fit cursor-pointer items-center justify-between gap-2 rounded-lg border border-input bg-background px-[11px] py-1 font-mono text-[11.5px] whitespace-nowrap text-foreground transition-[color,box-shadow] outline-none focus-visible:border-[#d92f45] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-[30px] data-[size=sm]:h-7 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",t),...r,children:[a,(0,It.jsx)(Da.Icon,{asChild:!0,children:(0,It.jsx)(xc,{className:"size-4 opacity-50"})})]})}function RC({className:t,children:e,position:a="item-aligned",align:r="center",...n}){return(0,It.jsx)(Da.Portal,{children:(0,It.jsxs)(Da.Content,{"data-slot":"select-content",className:pe("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,align:r,...n,children:[(0,It.jsx)(rW,{}),(0,It.jsx)(Da.Viewport,{className:pe("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:e}),(0,It.jsx)(nW,{})]})})}function IC({className:t,children:e,...a}){return(0,It.jsxs)(Da.Item,{"data-slot":"select-item",className:pe("relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...a,children:[(0,It.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,It.jsx)(Da.ItemIndicator,{children:(0,It.jsx)(wd,{className:"size-4"})})}),(0,It.jsx)(Da.ItemText,{children:e})]})}function rW({className:t,...e}){return(0,It.jsx)(Da.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:pe("flex cursor-default items-center justify-center py-1",t),...e,children:(0,It.jsx)(Cd,{className:"size-4"})})}function nW({className:t,...e}){return(0,It.jsx)(Da.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:pe("flex cursor-default items-center justify-center py-1",t),...e,children:(0,It.jsx)(xc,{className:"size-4"})})}var K=L(H(),1);function AC({id:t,newKind:e,onDone:a,onClose:r}){let{data:n}=CA(t);if(t===void 0)return(0,K.jsx)(pz,{openedPrimitive:null,entityTag:"",newKind:e??"",onDone:a,onClose:r});if(n===void 0)return null;let{answer:i,entityTag:o}=n;return i.type==="Fault"?(0,K.jsx)(gz,{faults:[i]}):i.data.layerName!=="repo"?(0,K.jsx)(iW,{openedPrimitive:i}):(0,K.jsx)(pz,{openedPrimitive:i,entityTag:o,newKind:"",onDone:a,onClose:r})}function pz({openedPrimitive:t,entityTag:e,newKind:a,onDone:r,onClose:n}){let i=t?.data,[o,s]=(0,df.useState)(i?.kind??a),[l,u]=(0,df.useState)(i===void 0?"":String(i.headers.id)),[c,f]=(0,df.useState)(()=>Object.fromEntries(Object.entries(i?.headers??{}).filter(([R])=>R!=="id").map(([R,D])=>[R,typeof D=="string"?D:[...D]]))),[d,h]=(0,df.useState)(t?.data.body??""),[p,m]=(0,df.useState)([]),{data:x}=yc(),{data:g}=kA(o),{data:O}=oi(),y=LA(),b=TA(),v=PA(),S=x===void 0?[]:Object.keys(x.data),w=g?.type==="PrimitiveRequirements"?g.data.headers:[],k=O?.type==="Primitives"?O.data.primitives.filter(({data:R})=>R.kind==="corpus").map(({data:R})=>R.id):[],T=Object.fromEntries(w.flatMap(({data:{field:R}})=>{let D=c[R],Y=typeof D=="string"?D.trim():(D??[]).map(B=>B.trim()).filter(B=>B!=="");return Y.length===0?[]:[[R,Y]]})),Q=R=>m(R.type==="Faults"?R.data.faults:[R]),$=async()=>{let R=t===null?await y.mutateAsync({kind:o,id:l,headers:T,body:d}):await b.mutateAsync({param:{id:t.data.id},header:{"if-match":e},json:{headers:T,body:d}});if(R.type!=="Primitive")return Q(R);let{file:D,headers:Y}=R.data;r(t===null?"Primitive created":"Primitive saved",`${D} \xB7 ${t===null&&typeof Y.executionPath=="string"?`${Y.executionPath} beside it is the file it runs, write the script there \xB7 `:""}nothing compiled until the next build`)},A=async()=>{if(t===null)return;let R=await v.mutateAsync(t.data.id);if(R!==null)return Q(R);r("Primitive deleted",`${t.data.file} \xB7 what still names it is reported by Doctor`)};return(0,K.jsxs)("div",{className:"space-y-3.5",children:[(0,K.jsxs)("div",{className:mz,children:[t===null?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(fo,{label:"kind",htmlFor:"primitive-kind",children:(0,K.jsxs)(LC,{value:o,onValueChange:s,children:[(0,K.jsx)(PC,{id:"primitive-kind",className:"w-full",children:(0,K.jsx)(TC,{})}),(0,K.jsx)(RC,{children:S.map(R=>(0,K.jsx)(IC,{value:R,children:R},R))})]})}),(0,K.jsx)(fo,{label:"id",htmlFor:"primitive-id",children:(0,K.jsx)(tu,{id:"primitive-id",value:l,placeholder:"no-any",spellCheck:!1,onChange:R=>u(R.currentTarget.value)})})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(fo,{label:"kind",hint:"the id is the file \u2014 rename by creating a new primitive and deleting this one",children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:o})}),(0,K.jsx)(fo,{label:"id",children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:l})})]}),w.map(({data:{field:R,shape:D,required:Y,allowedValues:B}})=>(0,K.jsx)(fo,{label:R,htmlFor:`header-${R}`,hint:Y?"required":void 0,children:D==="list"?(0,K.jsx)(oW,{field:R,entries:Array.isArray(c[R])?c[R]:[],onChange:q=>f({...c,[R]:q})}):B!==void 0?(0,K.jsxs)(LC,{value:typeof c[R]=="string"?c[R]:"",onValueChange:q=>f({...c,[R]:q}),children:[(0,K.jsx)(PC,{id:`header-${R}`,className:"w-full",children:(0,K.jsx)(TC,{placeholder:"\u2014"})}),(0,K.jsx)(RC,{children:B.map(q=>(0,K.jsx)(IC,{value:q,children:q},q))})]}):(0,K.jsx)(tu,{id:`header-${R}`,spellCheck:!1,autoComplete:"off",value:typeof c[R]=="string"?c[R]:"",list:R==="rationale"?"corpus-ids":void 0,onChange:q=>f({...c,[R]:q.currentTarget.value})})},R))]}),(0,K.jsx)("datalist",{id:"corpus-ids",children:k.map(R=>(0,K.jsx)("option",{value:R},R))}),(0,K.jsx)(kC,{body:d,onChange:h}),p.length>0&&(0,K.jsx)(gz,{faults:p}),(0,K.jsxs)("div",{className:ci,children:[(0,K.jsx)(Ae,{onClick:()=>{$()},children:t===null?"Create primitive":"Save"}),(0,K.jsx)(Ae,{variant:"outline",onClick:n,children:"Cancel"}),t!==null&&(0,K.jsx)(Ae,{variant:"destructive",className:"ml-auto",onClick:()=>{A()},children:"Delete"})]})]})}function iW({openedPrimitive:t}){let{kind:e,description:a,file:r,layerName:n,headers:i}=t.data;return(0,K.jsxs)("div",{className:"space-y-3.5",children:[(0,K.jsxs)(jr,{className:"rounded-xl border-[#7c3aed33] bg-[#f6f2ff]",children:[(0,K.jsx)(Fr,{className:"text-[12.5px] font-bold",children:n==="vendor"?"Installed from a vendor, and read-only here.":"Built into cw, and read-only here."}),(0,K.jsx)(Hr,{className:"text-[11.5px] text-zinc-600",children:"To differ from it, author a primitive of your own under an id of its own."})]}),(0,K.jsxs)("div",{className:mz,children:[(0,K.jsx)(fo,{label:"kind",children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:e})}),(0,K.jsx)(fo,{label:"file",children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:r})}),(0,K.jsx)(fo,{label:"description",children:(0,K.jsx)("span",{className:"text-xs",children:a})}),Object.entries(i).filter(([o])=>o!=="id"&&o!=="description").map(([o,s])=>(0,K.jsx)(fo,{label:o,children:(0,K.jsx)("span",{className:"font-mono text-[11.5px]",children:typeof s=="string"?s:s.join(", ")})},o))]}),(0,K.jsx)(kC,{body:t.data.body})]})}var mz="overflow-hidden rounded-[11px] border border-[#f0f0f0] bg-background divide-y divide-zinc-100";function fo({label:t,htmlFor:e,hint:a,children:r}){return(0,K.jsxs)("div",{className:"flex items-center gap-3 px-[13px] py-2.5",children:[(0,K.jsx)(Xh,{htmlFor:e,className:"w-[118px] shrink-0 text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:t}),(0,K.jsx)("div",{className:"min-w-0 flex-1",children:r}),a!==void 0&&(0,K.jsx)("span",{className:"max-w-[45%] shrink text-right text-[11.5px] text-zinc-400",children:a})]})}function oW({field:t,entries:e,onChange:a}){let r=e.length===0?[""]:e;return(0,K.jsxs)("div",{className:"flex flex-col gap-1.5",children:[r.map((n,i)=>(0,K.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,K.jsx)(tu,{id:i===0?`header-${t}`:void 0,"aria-label":`${t} ${i+1}`,spellCheck:!1,value:n,onChange:o=>a(r.map((s,l)=>l===i?o.currentTarget.value:s))}),r.length>1&&(0,K.jsx)(Ae,{variant:"outline",size:"icon",className:"size-[26px] shrink-0 rounded-[7px] text-zinc-400 [&_svg:not([class*='size-'])]:size-[11px]","aria-label":`Remove this ${t} entry`,onClick:()=>a(r.filter((o,s)=>s!==i)),children:(0,K.jsx)(ul,{})})]},i)),(0,K.jsxs)(Ae,{variant:"outline",size:"sm",className:"h-auto self-start rounded-[7px] border-dashed border-zinc-300 px-2.5 py-[5px] text-[11px] font-normal text-zinc-500",onClick:()=>a([...r,""]),children:["Add ",t]})]})}function gz({faults:t}){return(0,K.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,K.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:"Refused, and nothing was written"}),(0,K.jsx)(Hr,{children:t.map(({data:{message:e,fix:a}})=>(0,K.jsxs)("p",{className:"whitespace-pre-line",children:[e," ",(0,K.jsx)("span",{className:"text-muted-foreground",children:a})]},e))})]})}var f0=L(F(),1);var pt=L(H(),1);function Oz({onDone:t,onClose:e}){let[a,r]=(0,f0.useState)(""),[n,i]=(0,f0.useState)(""),[o,s]=(0,f0.useState)(null),l=yc(),u=EA(),c=async()=>{let f=n.trim(),d=await u.mutateAsync({source:a.trim(),...f===""?{}:{version:f}});if(d!==null)return s(d);t("Vendor source added",`${a.trim()}${f===""?"":` @ ${f}`} \xB7 run Build to compile what it adds`)};return(0,pt.jsxs)("div",{className:"space-y-3.5",children:[(0,pt.jsx)("p",{className:"text-[13px] leading-[1.65] text-zinc-700",children:"A vendor source is a repository governed by cw: only its charter, under .cw/charter/, is installed."}),(0,pt.jsxs)("div",{className:"divide-y divide-zinc-100 overflow-hidden rounded-[11px] border border-[#f0f0f0]",children:[(0,pt.jsxs)("div",{className:"flex items-center gap-3 px-[13px] py-2.5",children:[(0,pt.jsx)(Xh,{htmlFor:"vendor-source",className:"w-[118px] shrink-0 text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"source"}),(0,pt.jsx)(tu,{id:"vendor-source",value:a,spellCheck:!1,onChange:f=>r(f.target.value)})]}),(0,pt.jsxs)("div",{className:"flex items-center gap-3 px-[13px] py-2.5",children:[(0,pt.jsx)(Xh,{htmlFor:"vendor-version",className:"w-[118px] shrink-0 text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"version"}),(0,pt.jsx)(tu,{id:"vendor-version",value:n,spellCheck:!1,onChange:f=>i(f.target.value)}),(0,pt.jsx)("span",{className:"max-w-[45%] shrink text-right text-[11.5px] text-zinc-400",children:"a tag, branch or commit; left empty, the source's default"})]})]}),(0,pt.jsxs)("div",{className:"rounded-[11px] border bg-zinc-50 px-3.5 py-3","aria-label":"Reserved directories",children:[(0,pt.jsx)("div",{className:"mb-1 text-[11px] font-bold tracking-[0.07em] text-zinc-400 uppercase",children:"Directories under its .cw/charter/"}),Object.entries(l.data?.data??{}).map(([f,d])=>(0,pt.jsxs)("div",{className:"flex items-baseline gap-[9px] border-t border-zinc-100 py-[7px]",children:[(0,pt.jsxs)("span",{className:"min-w-[150px] font-mono text-[11.5px]",children:[f,"/"]}),(0,pt.jsx)("span",{className:"text-[11.5px] text-zinc-500",children:d})]},f))]}),o!==null&&(0,pt.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,pt.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:"Refused, and nothing was installed"}),(0,pt.jsx)(Hr,{children:(0,pt.jsxs)("p",{className:"whitespace-pre-line",children:[o.data.message," ",(0,pt.jsx)("span",{className:"text-muted-foreground",children:o.data.fix})]})})]}),(0,pt.jsxs)("div",{className:ci,children:[(0,pt.jsx)(Ae,{disabled:u.isPending||a.trim()==="",onClick:()=>{c()},children:"Add source"}),(0,pt.jsx)(Ae,{variant:"outline",onClick:e,children:"Cancel"})]})]})}var QC=L(F(),1);var At=L(H(),1);function xz({name:t,onDone:e,onClose:a}){let n=Hm().data?.data.testSuites.find(({data:i})=>i.name===t);return n===void 0?null:(0,At.jsx)(sW,{name:t,initialText:n.data.text??"",onDone:e,onClose:a},t)}function sW({name:t,initialText:e,onDone:a,onClose:r}){let[n,i]=(0,QC.useState)(e),[o,s]=(0,QC.useState)(null),l=_A(),u=zA(),c=async()=>{let d=await l.mutateAsync({name:t,text:n});if(typeof d!="string")return s(d);a("Saved",`.cw/test/${t} rewritten \xB7 run the cases again`)},f=async()=>{let d=await u.mutateAsync(t);if(d!==null)return s(d);a("Test file deleted",`.cw/test/${t} removed`)};return(0,At.jsxs)("div",{className:"space-y-3",children:[(0,At.jsxs)("p",{className:"text-xs leading-[1.65] text-zinc-600 [&_code]:font-mono",children:["A case is one situation \u2014 a touched file (",(0,At.jsx)("code",{children:"do.touchFile"}),") or a raised event (",(0,At.jsx)("code",{children:"when"}),") \u2014 and expects one thing:"," ",(0,At.jsx)("code",{children:"activate"}),", ",(0,At.jsx)("code",{children:"run"})," or ",(0,At.jsx)("code",{children:"allow"}),"."]}),(0,At.jsx)("textarea",{"aria-label":"Test file text",className:"h-[340px] w-full resize-y rounded-[11px] border bg-zinc-50 px-3.5 py-3 font-mono text-[11.5px] leading-[1.65] outline-none",spellCheck:!1,value:n,onChange:d=>i(d.target.value)}),o!==null&&(0,At.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,At.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:"Refused, and nothing was written"}),(0,At.jsx)(Hr,{children:(0,At.jsxs)("p",{className:"break-words whitespace-pre-line",children:[o.data.message," ",(0,At.jsx)("span",{className:"text-muted-foreground",children:o.data.fix})]})})]}),(0,At.jsx)("p",{className:"text-[11.5px] leading-[1.6] text-zinc-400",children:"Read only when tests run \u2014 never compiled, never read by an agent."}),(0,At.jsxs)("div",{className:ci,children:[(0,At.jsx)(Ae,{disabled:l.isPending,onClick:()=>{c()},children:"Save"}),(0,At.jsx)(Ae,{variant:"outline",onClick:r,children:"Cancel"}),(0,At.jsx)(Ae,{variant:"destructive",className:"ml-auto",disabled:u.isPending,onClick:()=>{f()},children:"Delete file"})]})]})}var Nle=L(F(),1);var ur=L(H(),1);function yz({...t}){return(0,ur.jsx)(yn.Root,{"data-slot":"dialog",...t})}function lW({...t}){return(0,ur.jsx)(yn.Portal,{"data-slot":"dialog-portal",...t})}function uW({className:t,...e}){return(0,ur.jsx)(yn.Overlay,{"data-slot":"dialog-overlay",className:pe("fixed inset-0 z-50 bg-[rgba(9,9,11,0.35)] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",t),...e})}function bz({className:t,children:e,showCloseButton:a=!0,...r}){return(0,ur.jsxs)(lW,{"data-slot":"dialog-portal",children:[(0,ur.jsx)(uW,{}),(0,ur.jsxs)(yn.Content,{"data-slot":"dialog-content",className:pe("fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",t),...r,children:[e,a&&(0,ur.jsxs)(yn.Close,{"data-slot":"dialog-close",className:"absolute top-4 right-[18px] cursor-pointer rounded-xs p-0.5 text-zinc-400 ring-offset-background transition-colors hover:text-foreground focus:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,ur.jsx)(ul,{}),(0,ur.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function vz({className:t,...e}){return(0,ur.jsx)("div",{"data-slot":"dialog-header",className:pe("flex flex-col gap-2 text-center sm:text-left",t),...e})}function Sz({className:t,...e}){return(0,ur.jsx)(yn.Title,{"data-slot":"dialog-title",className:pe("text-lg leading-none font-semibold",t),...e})}function wz({className:t,...e}){return(0,ur.jsx)(yn.Description,{"data-slot":"dialog-description",className:pe("text-sm text-muted-foreground",t),...e})}var pa=L(H(),1),cW={explanation:{title:()=>"Explain",context:({id:t})=>t,holdsDraft:!1,render:({id:t},{open:e})=>(0,pa.jsx)(IE,{id:t,onExplain:a=>e("explanation",{id:a})},t)},primitive:{title:({id:t})=>t,context:()=>"",holdsDraft:!0,render:({id:t},{close:e})=>(0,pa.jsx)(AC,{id:t,onDone:d0(e),onClose:e},t)},newPrimitive:{title:()=>"New primitive",context:()=>"",holdsDraft:!0,render:({kind:t},{close:e})=>(0,pa.jsx)(AC,{newKind:t,onDone:d0(e),onClose:e},`new ${t}`)},buildPreview:{title:()=>"cw build",context:()=>"nothing written yet",holdsDraft:!1,render:(t,{open:e})=>(0,pa.jsx)(kE,{onBuilt:a=>e("buildOutcome",{buildAnswer:a})})},buildOutcome:{title:()=>"cw build",context:()=>"",holdsDraft:!1,render:({buildAnswer:t})=>(0,pa.jsx)(LE,{buildAnswer:t})},addVendor:{title:()=>"Add vendor source",context:()=>"",holdsDraft:!0,render:(t,{close:e})=>(0,pa.jsx)(Oz,{onDone:d0(e),onClose:e})},testSuite:{title:({name:t})=>`.cw/test/${t}`,context:()=>"",holdsDraft:!0,render:({name:t},{close:e})=>(0,pa.jsx)(xz,{name:t,onDone:d0(e),onClose:e},t)},doctor:{title:()=>"Doctor",context:()=>"cw 0.7.0",holdsDraft:!1,render:(t,{open:e})=>(0,pa.jsx)(RE,{onBuilt:a=>e("buildOutcome",{buildAnswer:a})})}};function d0(t){return(e,a)=>{t(),cl(e,{description:a})}}var Cz=(0,au.createContext)(null);function ho(){return(0,au.useContext)(Cz)}function kz({children:t}){let[e,a]=(0,au.useState)(null),[r,n]=(0,au.useState)(!1),i={open:(s,l)=>{a({name:s,params:l}),n(!0)},close:()=>n(!1)},o=e===null?null:cW[e.name];return(0,pa.jsxs)(Cz.Provider,{value:i,children:[t,(0,pa.jsx)(yz,{open:r,onOpenChange:n,children:e!==null&&o!==null&&(0,pa.jsxs)(bz,{className:"flex max-h-[88vh] w-[920px] max-w-[calc(100%-48px)] flex-col gap-0 overflow-hidden rounded-[15px] border-0 p-0 shadow-[0_34px_80px_-22px_rgba(0,0,0,0.4)] sm:max-w-[calc(100%-48px)]",onInteractOutside:s=>o.holdsDraft&&s.preventDefault(),onEscapeKeyDown:s=>o.holdsDraft&&s.preventDefault(),children:[(0,pa.jsxs)(vz,{className:"flex-row items-baseline gap-2.5 border-b border-[#f0f0f0] py-[15px] pr-12 pl-[18px]",children:[(0,pa.jsx)(Sz,{className:"text-[14.5px] font-bold tracking-[-0.01em]",children:o.title(e.params)}),(0,pa.jsx)(wz,{className:"font-mono text-[11px] text-zinc-400",children:o.context(e.params)})]}),(0,pa.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-5 py-[18px]",children:o.render(e.params,i)})]})})]})}var p0=L(F(),1);var tue=L(F(),1);var fW=L(H(),1),Lz=li("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 min-w-9 px-2",sm:"h-8 min-w-8 px-1.5",lg:"h-10 min-w-10 px-2.5"}},defaultVariants:{variant:"default",size:"default"}});var h0=L(H(),1),Tz=p0.createContext({size:"default",variant:"default",spacing:0});function Pz({className:t,variant:e,size:a,spacing:r=0,children:n,...i}){return(0,h0.jsx)(qd.Root,{"data-slot":"toggle-group","data-variant":e,"data-size":a,"data-spacing":r,style:{"--gap":r},className:pe("group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs",t),...i,children:(0,h0.jsx)(Tz.Provider,{value:{variant:e,size:a,spacing:r},children:n})})}function Rz({className:t,children:e,variant:a,size:r,...n}){let i=p0.useContext(Tz);return(0,h0.jsx)(qd.Item,{"data-slot":"toggle-group-item","data-variant":i.variant||a,"data-size":i.size||r,"data-spacing":i.spacing,className:pe(Lz({variant:i.variant||a,size:i.size||r}),"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10","data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l",t),...n,children:e})}var se=L(H(),1);function DC({layerNames:t,kind:e,onKindChange:a}){let{open:r}=ho(),n=yc(),i=oi();if(n.data===void 0||i.data===void 0)return null;let o=n.data.data,s=i.data;if(s.type==="FaultsByFile")return(0,se.jsx)(dW,{faultsByFile:s});if(s.type==="Fault")return(0,se.jsx)(hW,{fault:s});let l=s.data.primitives.filter(({data:d})=>t.includes(d.layerName)),u=new Map(Object.keys(o).map(d=>[d,l.filter(({data:h})=>h.kind===d).length])),c=e??[...u].find(([,d])=>d>0)?.[0]??Object.keys(o)[0],f=l.filter(({data:d})=>d.kind===c);return(0,se.jsxs)("div",{className:"min-w-0",children:[(0,se.jsxs)("div",{className:"mb-3 flex items-baseline gap-[9px]",children:[(0,se.jsx)("h2",{className:"text-[12.5px] font-bold",children:"Charter primitives"}),(0,se.jsxs)("span",{className:"text-[11.5px] text-zinc-400",children:[l.length," in this charter"]}),t.includes("repo")&&(0,se.jsxs)(Ae,{size:"sm",variant:"outline",className:"ml-auto",onClick:()=>r("newPrimitive",{kind:c}),children:["New ",c]})]}),(0,se.jsx)(Pz,{type:"single",spacing:1.5,"aria-label":"Kinds",className:"mb-3 flex-wrap",value:c,onValueChange:d=>d!==""&&a(d),children:[...u].map(([d,h])=>(0,se.jsxs)(Rz,{value:d,"aria-label":d,className:`group/chip h-auto cursor-pointer gap-1.5 rounded-[9px] border bg-background px-2.5 py-1.5 text-[11.5px] font-medium text-zinc-700 capitalize hover:bg-background hover:text-zinc-700 data-[state=on]:border-foreground data-[state=on]:bg-foreground data-[state=on]:font-semibold data-[state=on]:text-white ${h===0&&d!==c?"opacity-50":""}`,children:[d,(0,se.jsx)(mi,{className:"rounded-none bg-transparent p-0 font-mono text-[10px] font-normal text-zinc-400 group-data-[state=on]/chip:text-white/70",children:h})]},d))}),(0,se.jsxs)("p",{className:"mb-2.5 flex items-baseline gap-2 px-0.5",children:[(0,se.jsx)("span",{className:"shrink-0 text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"Activates when"}),(0,se.jsx)("span",{className:"text-xs leading-normal text-zinc-700","aria-label":"Activates when",children:o[c]})]}),f.length===0?(0,se.jsxs)("p",{className:"rounded-[14px] border p-[22px] text-center text-[12.5px] text-zinc-400",children:["No ",c," in this charter yet."]}):(0,se.jsx)(pW,{kind:c,listed:f})]})}function dW({faultsByFile:t}){let e=Object.entries(t.data.files);return(0,se.jsxs)("div",{className:"space-y-3.5",children:[(0,se.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,se.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:"The engine will not read this charter"}),(0,se.jsxs)(Hr,{children:[e.length," file",e.length===1?" is":"s are"," refused, so there is no listing to show. Fix",e.length===1?" it":" them"," and the charter comes back."]})]}),(0,se.jsx)(fs,{faultsByFile:t,label:"Refused files"})]})}function hW({fault:t}){return(0,se.jsxs)(jr,{variant:"destructive",className:"rounded-xl border-[#f6d9d9] bg-[#fef6f6]",children:[(0,se.jsx)(Fr,{className:"text-[12.5px] font-bold text-foreground",children:t.data.message}),(0,se.jsx)(Hr,{children:t.data.fix})]})}function MC(t){return t===void 0?void 0:typeof t=="string"?[t]:t}function pW({kind:t,listed:e}){let{open:a}=ho(),r=t==="guide",n=t!=="mixin";return(0,se.jsx)("div",{className:"overflow-hidden rounded-[14px] border bg-background",children:(0,se.jsxs)(Tl,{"aria-label":`${t} primitives`,className:"table-fixed",children:[(0,se.jsx)(wE,{children:(0,se.jsxs)(Rl,{className:"border-[#ececef] bg-zinc-50 hover:bg-zinc-50 [&>th]:h-auto [&>th]:px-[15px] [&>th]:py-[9px] [&>th]:text-[9.5px] [&>th]:font-bold [&>th]:tracking-[0.07em] [&>th]:text-zinc-400 [&>th]:uppercase",children:[(0,se.jsx)(Il,{className:"w-[170px]",children:"Id"}),(0,se.jsx)(Il,{children:"Description"}),r&&(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)(Il,{className:"w-[170px] text-right",children:"Matching globs"}),(0,se.jsx)(Il,{className:"w-[120px] text-right",children:"Rationale"})]}),n&&(0,se.jsx)(Il,{className:"w-[120px] text-right",children:"Mixins"}),(0,se.jsx)(Il,{className:"w-[50px]"})]})}),(0,se.jsx)(Pl,{children:e.map(({data:{id:i,description:o,file:s,headers:l}})=>{let u=MC(l.globs);return(0,se.jsxs)(Rl,{className:"group/row border-[#f7f7f8] align-top hover:bg-zinc-50 [&>td]:px-[15px] [&>td]:py-3",children:[(0,se.jsx)(kn,{className:"truncate",children:(0,se.jsx)(Ae,{variant:"link",className:"block h-auto max-w-full truncate rounded-none p-0 text-left font-mono text-[11.5px] font-bold text-foreground",title:`Open ${s}`,onClick:()=>a("primitive",{id:i}),children:String(l.id)})}),(0,se.jsxs)(kn,{className:"whitespace-normal",children:[(0,se.jsx)("div",{className:"text-[12.5px] font-semibold",children:o}),(0,se.jsx)("div",{className:"mt-[3px] truncate font-mono text-[10.5px] text-zinc-400",children:s})]}),r&&(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)(EC,{named:u,none:"all patterns",said:u===void 0,label:"Matching globs"}),(0,se.jsx)(EC,{named:MC(l.rationale),none:"none",said:!1,label:"Rationale"})]}),n&&(0,se.jsx)(EC,{named:MC(l.mixins),none:"none",said:!1,label:"Mixins"}),(0,se.jsx)(kn,{children:(0,se.jsx)(Ae,{variant:"ghost",size:"icon",className:"ml-auto size-6 rounded-[7px] border border-transparent text-zinc-300 group-hover/row:border-zinc-200 group-hover/row:bg-background group-hover/row:text-zinc-400 hover:!border-foreground hover:bg-background hover:!text-foreground [&_svg:not([class*='size-'])]:size-[13px]","aria-label":`Explain ${i}`,onClick:()=>a("explanation",{id:i}),children:(0,se.jsx)(pn,{})})})]},i)})})]})})}function EC({named:t,none:e,said:a,label:r}){return(0,se.jsx)(kn,{"aria-label":r,children:(0,se.jsx)("div",{className:"flex min-w-0 flex-wrap content-start justify-end gap-1",children:t===void 0||t.length===0?(0,se.jsx)("span",{className:`text-[10.5px] ${a?"text-destructive":"text-zinc-300"}`,children:e}):t.map(n=>(0,se.jsx)(mi,{title:n,className:"block max-w-full truncate rounded-[5px] bg-zinc-100 px-1.5 py-0.5 font-mono text-[10px] font-normal text-zinc-700",children:n},n))})})}var qC=L(F(),1);var Lue=L(F(),1);var Iz=1,mW=.9,gW=.8,OW=.17,$C=.1,BC=.999,xW=.9999,yW=.99,bW=/[\\\/_+.#"@\[\(\{&]/,vW=/[\\\/_+.#"@\[\(\{&]/g,SW=/[\s-]/,Qz=/[\s-]/g;function _C(t,e,a,r,n,i,o){if(i===e.length)return n===t.length?Iz:yW;var s=`${n},${i}`;if(o[s]!==void 0)return o[s];for(var l=r.charAt(i),u=a.indexOf(l,n),c=0,f,d,h,p;u>=0;)f=_C(t,e,a,r,u+1,i+1,o),f>c&&(u===n?f*=Iz:bW.test(t.charAt(u-1))?(f*=gW,h=t.slice(n,u-1).match(vW),h&&n>0&&(f*=Math.pow(BC,h.length))):SW.test(t.charAt(u-1))?(f*=mW,p=t.slice(n,u-1).match(Qz),p&&n>0&&(f*=Math.pow(BC,p.length))):(f*=OW,n>0&&(f*=Math.pow(BC,u-n))),t.charAt(u)!==e.charAt(i)&&(f*=xW)),(f<$C&&a.charAt(u-1)===r.charAt(i+1)||r.charAt(i+1)===r.charAt(i)&&a.charAt(u-1)!==r.charAt(i))&&(d=_C(t,e,a,r,u+1,i+2,o),d*$C>f&&(f=d*$C)),f>c&&(c=f),u=a.indexOf(l,u+1);return o[s]=c,c}function Az(t){return t.toLowerCase().replace(Qz," ")}function Mz(t,e,a){return t=a&&a.length>0?`${t+" "+a.join(" ")}`:t,_C(t,e,Az(t),Az(e),0,0,{})}var J=L(F(),1);var qh='[cmdk-group=""]',zC='[cmdk-group-items=""]',wW='[cmdk-group-heading=""]',Dz='[cmdk-item=""]',Ez=`${Dz}:not([aria-disabled="true"])`,NC="cmdk-item-select",hf="data-value",CW=(t,e,a)=>Mz(t,e,a),$z=J.createContext(void 0),Zh=()=>J.useContext($z),Bz=J.createContext(void 0),XC=()=>J.useContext(Bz),_z=J.createContext(void 0),zz=J.forwardRef((t,e)=>{let a=pf(()=>{var P,G;return{search:"",value:(G=(P=t.value)!=null?P:t.defaultValue)!=null?G:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=pf(()=>new Set),n=pf(()=>new Map),i=pf(()=>new Map),o=pf(()=>new Set),s=Nz(t),{label:l,children:u,value:c,onValueChange:f,filter:d,shouldFilter:h,loop:p,disablePointerSelection:m=!1,vimBindings:x=!0,...g}=t,O=Dt(),y=Dt(),b=Dt(),v=J.useRef(null),S=DW();ru(()=>{if(c!==void 0){let P=c.trim();a.current.value=P,w.emit()}},[c]),ru(()=>{S(6,R)},[]);let w=J.useMemo(()=>({subscribe:P=>(o.current.add(P),()=>o.current.delete(P)),snapshot:()=>a.current,setState:(P,G,N)=>{var M,j,de,ee;if(!Object.is(a.current[P],G)){if(a.current[P]=G,P==="search")A(),Q(),S(1,$);else if(P==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Z=document.getElementById(b);Z?Z.focus():(M=document.getElementById(O))==null||M.focus()}if(S(7,()=>{var Z;a.current.selectedItemId=(Z=D())==null?void 0:Z.id,w.emit()}),N||S(5,R),((j=s.current)==null?void 0:j.value)!==void 0){let Z=G??"";(ee=(de=s.current).onValueChange)==null||ee.call(de,Z);return}}w.emit()}},emit:()=>{o.current.forEach(P=>P())}}),[]),k=J.useMemo(()=>({value:(P,G,N)=>{var M;G!==((M=i.current.get(P))==null?void 0:M.value)&&(i.current.set(P,{value:G,keywords:N}),a.current.filtered.items.set(P,T(G,N)),S(2,()=>{Q(),w.emit()}))},item:(P,G)=>(r.current.add(P),G&&(n.current.has(G)?n.current.get(G).add(P):n.current.set(G,new Set([P]))),S(3,()=>{A(),Q(),a.current.value||$(),w.emit()}),()=>{i.current.delete(P),r.current.delete(P),a.current.filtered.items.delete(P);let N=D();S(4,()=>{A(),N?.getAttribute("id")===P&&$(),w.emit()})}),group:P=>(n.current.has(P)||n.current.set(P,new Set),()=>{i.current.delete(P),n.current.delete(P)}),filter:()=>s.current.shouldFilter,label:l||t["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:O,inputId:b,labelId:y,listInnerRef:v}),[]);function T(P,G){var N,M;let j=(M=(N=s.current)==null?void 0:N.filter)!=null?M:CW;return P?j(P,a.current.search,G):0}function Q(){if(!a.current.search||s.current.shouldFilter===!1)return;let P=a.current.filtered.items,G=[];a.current.filtered.groups.forEach(M=>{let j=n.current.get(M),de=0;j.forEach(ee=>{let Z=P.get(ee);de=Math.max(Z,de)}),G.push([M,de])});let N=v.current;Y().sort((M,j)=>{var de,ee;let Z=M.getAttribute("id"),Ze=j.getAttribute("id");return((de=P.get(Ze))!=null?de:0)-((ee=P.get(Z))!=null?ee:0)}).forEach(M=>{let j=M.closest(zC);j?j.appendChild(M.parentElement===j?M:M.closest(`${zC} > *`)):N.appendChild(M.parentElement===N?M:M.closest(`${zC} > *`))}),G.sort((M,j)=>j[1]-M[1]).forEach(M=>{var j;let de=(j=v.current)==null?void 0:j.querySelector(`${qh}[${hf}="${encodeURIComponent(M[0])}"]`);de?.parentElement.appendChild(de)})}function $(){let P=Y().find(N=>N.getAttribute("aria-disabled")!=="true"),G=P?.getAttribute(hf);w.setState("value",G||void 0)}function A(){var P,G,N,M;if(!a.current.search||s.current.shouldFilter===!1){a.current.filtered.count=r.current.size;return}a.current.filtered.groups=new Set;let j=0;for(let de of r.current){let ee=(G=(P=i.current.get(de))==null?void 0:P.value)!=null?G:"",Z=(M=(N=i.current.get(de))==null?void 0:N.keywords)!=null?M:[],Ze=T(ee,Z);a.current.filtered.items.set(de,Ze),Ze>0&&j++}for(let[de,ee]of n.current)for(let Z of ee)if(a.current.filtered.items.get(Z)>0){a.current.filtered.groups.add(de);break}a.current.filtered.count=j}function R(){var P,G,N;let M=D();M&&(((P=M.parentElement)==null?void 0:P.firstChild)===M&&((N=(G=M.closest(qh))==null?void 0:G.querySelector(wW))==null||N.scrollIntoView({block:"nearest"})),M.scrollIntoView({block:"nearest"}))}function D(){var P;return(P=v.current)==null?void 0:P.querySelector(`${Dz}[aria-selected="true"]`)}function Y(){var P;return Array.from(((P=v.current)==null?void 0:P.querySelectorAll(Ez))||[])}function B(P){let G=Y()[P];G&&w.setState("value",G.getAttribute(hf))}function q(P){var G;let N=D(),M=Y(),j=M.findIndex(ee=>ee===N),de=M[j+P];(G=s.current)!=null&&G.loop&&(de=j+P<0?M[M.length-1]:j+P===M.length?M[0]:M[j+P]),de&&w.setState("value",de.getAttribute(hf))}function re(P){let G=D(),N=G?.closest(qh),M;for(;N&&!M;)N=P>0?MW(N,qh):EW(N,qh),M=N?.querySelector(Ez);M?w.setState("value",M.getAttribute(hf)):q(P)}let ie=()=>B(Y().length-1),z=P=>{P.preventDefault(),P.metaKey?ie():P.altKey?re(1):q(1)},Pe=P=>{P.preventDefault(),P.metaKey?B(0):P.altKey?re(-1):q(-1)};return J.createElement(ue.div,{ref:e,tabIndex:-1,...g,"cmdk-root":"",onKeyDown:P=>{var G;(G=g.onKeyDown)==null||G.call(g,P);let N=P.nativeEvent.isComposing||P.keyCode===229;if(!(P.defaultPrevented||N))switch(P.key){case"n":case"j":{x&&P.ctrlKey&&z(P);break}case"ArrowDown":{z(P);break}case"p":case"k":{x&&P.ctrlKey&&Pe(P);break}case"ArrowUp":{Pe(P);break}case"Home":{P.preventDefault(),B(0);break}case"End":{P.preventDefault(),ie();break}case"Enter":{P.preventDefault();let M=D();if(M){let j=new Event(NC);M.dispatchEvent(j)}}}}},J.createElement("label",{"cmdk-label":"",htmlFor:k.inputId,id:k.labelId,style:BW},l),m0(t,P=>J.createElement(Bz.Provider,{value:w},J.createElement($z.Provider,{value:k},P))))}),kW=J.forwardRef((t,e)=>{var a,r;let n=Dt(),i=J.useRef(null),o=J.useContext(_z),s=Zh(),l=Nz(t),u=(r=(a=l.current)==null?void 0:a.forceMount)!=null?r:o?.forceMount;ru(()=>{if(!u)return s.item(n,o?.id)},[u]);let c=Xz(n,i,[t.value,t.children,i],t.keywords),f=XC(),d=Ds(S=>S.value&&S.value===c.current),h=Ds(S=>u||s.filter()===!1?!0:S.search?S.filtered.items.get(n)>0:!0);J.useEffect(()=>{let S=i.current;if(!(!S||t.disabled))return S.addEventListener(NC,p),()=>S.removeEventListener(NC,p)},[h,t.onSelect,t.disabled]);function p(){var S,w;m(),(w=(S=l.current).onSelect)==null||w.call(S,c.current)}function m(){f.setState("value",c.current,!0)}if(!h)return null;let{disabled:x,value:g,onSelect:O,forceMount:y,keywords:b,...v}=t;return J.createElement(ue.div,{ref:ts(i,e),...v,id:n,"cmdk-item":"",role:"option","aria-disabled":!!x,"aria-selected":!!d,"data-disabled":!!x,"data-selected":!!d,onPointerMove:x||s.getDisablePointerSelection()?void 0:m,onClick:x?void 0:p},t.children)}),LW=J.forwardRef((t,e)=>{let{heading:a,children:r,forceMount:n,...i}=t,o=Dt(),s=J.useRef(null),l=J.useRef(null),u=Dt(),c=Zh(),f=Ds(h=>n||c.filter()===!1?!0:h.search?h.filtered.groups.has(o):!0);ru(()=>c.group(o),[]),Xz(o,s,[t.value,t.heading,l]);let d=J.useMemo(()=>({id:o,forceMount:n}),[n]);return J.createElement(ue.div,{ref:ts(s,e),...i,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},a&&J.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:u},a),m0(t,h=>J.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":a?u:void 0},J.createElement(_z.Provider,{value:d},h))))}),TW=J.forwardRef((t,e)=>{let{alwaysRender:a,...r}=t,n=J.useRef(null),i=Ds(o=>!o.search);return!a&&!i?null:J.createElement(ue.div,{ref:ts(n,e),...r,"cmdk-separator":"",role:"separator"})}),PW=J.forwardRef((t,e)=>{let{onValueChange:a,...r}=t,n=t.value!=null,i=XC(),o=Ds(u=>u.search),s=Ds(u=>u.selectedItemId),l=Zh();return J.useEffect(()=>{t.value!=null&&i.setState("search",t.value)},[t.value]),J.createElement(ue.input,{ref:e,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":s,id:l.inputId,type:"text",value:n?t.value:o,onChange:u=>{n||i.setState("search",u.target.value),a?.(u.target.value)}})}),RW=J.forwardRef((t,e)=>{let{children:a,label:r="Suggestions",...n}=t,i=J.useRef(null),o=J.useRef(null),s=Ds(u=>u.selectedItemId),l=Zh();return J.useEffect(()=>{if(o.current&&i.current){let u=o.current,c=i.current,f,d=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let h=u.offsetHeight;c.style.setProperty("--cmdk-list-height",h.toFixed(1)+"px")})});return d.observe(u),()=>{cancelAnimationFrame(f),d.unobserve(u)}}},[]),J.createElement(ue.div,{ref:ts(i,e),...n,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:l.listId},m0(t,u=>J.createElement("div",{ref:ts(o,l.listInnerRef),"cmdk-list-sizer":""},u)))}),IW=J.forwardRef((t,e)=>{let{open:a,onOpenChange:r,overlayClassName:n,contentClassName:i,container:o,...s}=t;return J.createElement(Av,{open:a,onOpenChange:r},J.createElement(Qv,{container:o},J.createElement(Mv,{"cmdk-overlay":"",className:n}),J.createElement(Ev,{"aria-label":t.label,"cmdk-dialog":"",className:i},J.createElement(zz,{ref:e,...s}))))}),AW=J.forwardRef((t,e)=>Ds(a=>a.filtered.count===0)?J.createElement(ue.div,{ref:e,...t,"cmdk-empty":"",role:"presentation"}):null),QW=J.forwardRef((t,e)=>{let{progress:a,children:r,label:n="Loading...",...i}=t;return J.createElement(ue.div,{ref:e,...i,"cmdk-loading":"",role:"progressbar","aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":100,"aria-label":n},m0(t,o=>J.createElement("div",{"aria-hidden":!0},o)))}),nu=Object.assign(zz,{List:RW,Item:kW,Input:PW,Group:LW,Separator:TW,Dialog:IW,Empty:AW,Loading:QW});function MW(t,e){let a=t.nextElementSibling;for(;a;){if(a.matches(e))return a;a=a.nextElementSibling}}function EW(t,e){let a=t.previousElementSibling;for(;a;){if(a.matches(e))return a;a=a.previousElementSibling}}function Nz(t){let e=J.useRef(t);return ru(()=>{e.current=t}),e}var ru=typeof window>"u"?J.useEffect:J.useLayoutEffect;function pf(t){let e=J.useRef();return e.current===void 0&&(e.current=t()),e}function Ds(t){let e=XC(),a=()=>t(e.snapshot());return J.useSyncExternalStore(e.subscribe,a,a)}function Xz(t,e,a,r=[]){let n=J.useRef(),i=Zh();return ru(()=>{var o;let s=(()=>{var u;for(let c of a){if(typeof c=="string")return c.trim();if(typeof c=="object"&&"current"in c)return c.current?(u=c.current.textContent)==null?void 0:u.trim():n.current}})(),l=r.map(u=>u.trim());i.value(t,s,l),(o=e.current)==null||o.setAttribute(hf,s),n.current=s}),n}var DW=()=>{let[t,e]=J.useState(),a=pf(()=>new Map);return ru(()=>{a.current.forEach(r=>r()),a.current=new Map},[t]),(r,n)=>{a.current.set(r,n),e({})}};function $W(t){let e=t.type;return typeof e=="function"?e(t.props):"render"in e?e.render(t.props):t}function m0({asChild:t,children:e},a){return t&&J.isValidElement(e)?J.cloneElement($W(e),{ref:e.ref},a(e.props.children)):a(e)}var BW={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};var Si=L(H(),1);function qz({className:t,...e}){return(0,Si.jsx)(nu,{"data-slot":"command",className:pe("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",t),...e})}function Zz({className:t,...e}){return(0,Si.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,Si.jsx)(Ld,{className:"size-4 shrink-0 opacity-50"}),(0,Si.jsx)(nu.Input,{"data-slot":"command-input",className:pe("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),...e})]})}function Vz({className:t,...e}){return(0,Si.jsx)(nu.List,{"data-slot":"command-list",className:pe("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...e})}function Uz({...t}){return(0,Si.jsx)(nu.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...t})}function jz({className:t,...e}){return(0,Si.jsx)(nu.Group,{"data-slot":"command-group",className:pe("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",t),...e})}function Fz({className:t,...e}){return(0,Si.jsx)(nu.Item,{"data-slot":"command-item",className:pe("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",t),...e})}var mt=L(H(),1);function Gz({onPick:t}){let[e,a]=(0,qC.useState)(""),[r,n]=(0,qC.useState)(!1),{data:i}=oi(e);return(0,mt.jsxs)(qz,{shouldFilter:!1,className:"relative w-full overflow-visible rounded-[9px] border bg-zinc-50 text-zinc-400 focus-within:border-foreground focus-within:bg-background focus-within:text-zinc-500 [&_[data-slot=command-input-wrapper]]:h-[32px] [&_[data-slot=command-input-wrapper]]:border-0 [&_[data-slot=command-input]]:h-8 [&_[data-slot=command-input]]:text-[12.5px] [&_[data-slot=command-input]]:text-foreground [&_[data-slot=command-input]]:placeholder:text-zinc-400",onFocus:()=>n(!0),onBlur:()=>n(!1),children:[(0,mt.jsx)(Zz,{placeholder:"Search everything",spellCheck:!1,value:e,onValueChange:a,onKeyDown:o=>o.key==="Escape"&&a("")}),r&&e!==""&&(0,mt.jsxs)(Vz,{className:"absolute top-full right-0 left-0 z-50 mt-[7px] max-h-[min(460px,62vh)] rounded-xl border bg-popover p-[5px] shadow-[0_20px_44px_-16px_rgba(0,0,0,0.3)] [&_[cmdk-group-heading]]:px-[11px] [&_[cmdk-group-heading]]:pt-2 [&_[cmdk-group-heading]]:pb-1.5 [&_[cmdk-group-heading]]:text-[10px] [&_[cmdk-group-heading]]:font-bold [&_[cmdk-group-heading]]:tracking-[0.07em] [&_[cmdk-group-heading]]:text-zinc-400 [&_[cmdk-group-heading]]:uppercase [&_[data-slot=command-group]]:p-0",onMouseDown:o=>o.preventDefault(),children:[i?.type==="FaultsByFile"&&(0,mt.jsx)("p",{className:"px-3 py-3.5 text-xs text-zinc-400",children:"The engine will not read this charter, so there is nothing to search."}),i?.type==="Fault"&&(0,mt.jsxs)("p",{className:"px-3 py-3.5 text-xs text-zinc-400",children:[i.data.message," ",i.data.fix]}),i?.type==="Primitives"&&(0,mt.jsxs)(mt.Fragment,{children:[(0,mt.jsx)(Uz,{className:"px-3 py-3.5 text-xs text-zinc-400",children:"Nothing in the charter says that."}),i.data.primitives.length>0&&(0,mt.jsx)(jz,{heading:`${i.data.primitives.length} primitive${i.data.primitives.length===1?"":"s"}`,children:i.data.primitives.map(o=>{let{id:s,kind:l,description:u,layerName:c,headers:f}=o.data;return(0,mt.jsxs)(Fz,{value:s,className:"grid cursor-pointer grid-cols-[74px_minmax(0,1fr)_max-content] items-baseline gap-2.5 rounded-lg px-[11px] py-2 data-[selected=true]:bg-zinc-50 data-[selected=true]:outline data-[selected=true]:outline-zinc-200",onSelect:()=>{a(""),n(!1),t(o)},children:[(0,mt.jsx)("span",{className:"font-mono text-[9.5px] font-bold tracking-[0.03em] text-zinc-500 uppercase",children:l}),(0,mt.jsxs)("span",{className:"min-w-0",children:[(0,mt.jsx)("span",{className:"block truncate font-mono text-xs text-foreground",children:(0,mt.jsx)(Hz,{text:String(f.id),word:e})}),(0,mt.jsx)("span",{className:"mt-0.5 block truncate text-[11px] leading-[1.45] text-zinc-400",children:(0,mt.jsx)(Hz,{text:u,word:e})})]}),(0,mt.jsx)(mi,{className:`rounded-[5px] px-1.5 py-0.5 font-mono text-[9.5px] font-bold tracking-[0.03em] ${_W[c]}`,children:c})]},s)})})]})]})]})}var _W={repo:"bg-[#eff6ff] text-[#1d4ed8]",vendor:"bg-[#f6f2ff] text-[#7c3aed]",builtin:"bg-zinc-100 text-zinc-700"};function Hz({text:t,word:e}){let a=t.toLowerCase().indexOf(e.toLowerCase());return a===-1||e===""?(0,mt.jsx)(mt.Fragment,{children:t}):(0,mt.jsxs)(mt.Fragment,{children:[t.slice(0,a),(0,mt.jsx)("mark",{className:"rounded-[2px] bg-[#fff2b8] text-inherit",children:t.slice(a,a+e.length)}),t.slice(a+e.length)]})}var ma=L(H(),1);function Yz(){let t=AA(),e=QA();if(t.data===void 0)return null;if(t.data.type!=="MainContexts")return(0,ma.jsx)("p",{className:"text-xs text-zinc-500",children:"Nothing was counted: the charter does not hold. Open Doctor to see why."});let{contexts:a}=t.data.data;if(a.length===0)return(0,ma.jsx)("p",{className:"text-xs text-zinc-500",children:"No agent is chosen, so no agent loads anything of the charter."});let r=e.data?.data.mainContextCeiling;return(0,ma.jsx)("div",{className:"space-y-6",children:a.map(({data:{agent:n,isExact:i,sessionLoads:o,fileLoads:s,totalTokens:l}})=>(0,ma.jsxs)("section",{className:"space-y-3","aria-label":`${n} main context`,children:[(0,ma.jsxs)("h2",{className:"text-[13px] font-semibold",children:[n," opens a session with ",l.toLocaleString("en-US")," tokens of the charter, ",i?"counted exactly":"estimated",r!==void 0&&(0,ma.jsxs)("span",{className:l>r?"text-[#b45309]":"text-zinc-400",children:[" ","\xB7 ",l>r?"past":"within"," the ceiling of ",r.toLocaleString("en-US")]})]}),[["Loaded when a session opens",o],["Loaded when a file it names is touched, not in the total",s]].map(([u,c])=>c.length>0&&(0,ma.jsxs)("div",{className:"space-y-1.5",children:[(0,ma.jsx)("h3",{className:"text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:u}),(0,ma.jsx)("table",{className:"w-full overflow-hidden rounded-[11px] border border-[#f0f0f0] text-xs","aria-label":u,children:(0,ma.jsx)("tbody",{children:c.map(({data:{id:f,kind:d,tokens:h,globs:p}})=>(0,ma.jsxs)("tr",{className:"border-b border-zinc-100 last:border-b-0",children:[(0,ma.jsx)("td",{className:"w-[90px] px-[13px] py-2 text-right font-mono",children:h.toLocaleString("en-US")}),(0,ma.jsx)("td",{className:"w-[90px] px-2 py-2 text-zinc-500",children:d}),(0,ma.jsx)("td",{className:"px-2 py-2 font-mono",children:f}),(0,ma.jsx)("td",{className:"px-2 py-2 font-mono text-zinc-400",children:p?.join(", ")})]},f))})})]},u))]},n))})}var Wz=L(F(),1);var De=L(H(),1);function Kz(){let{open:t}=ho(),e=Hm(),a=$A(),r=oi(),n=BA(),[i,o]=(0,Wz.useState)(null);if(e.data===void 0)return null;let{testSuites:s}=e.data.data,l=new Set(r.data?.type==="Primitives"?r.data.data.primitives.map(({data:m})=>m.id):[]),u=a.data?.type==="TestRunReport"?a.data:void 0,c=m=>u?.data.testCaseReports.filter(({data:x})=>x.suiteName===m)??[],f=s.reduce((m,{data:x})=>m+x.cases.length,0),d=u?.data.testCaseReports.filter(({data:m})=>!m.passed).length??0,h=async()=>{let{data:m}=await a.refetch();if(m?.type!=="TestRunReport")return;let x=m.data.testCaseReports.find(({data:g})=>!g.passed);x!==void 0&&o(x.data.suiteName)},p=async()=>{let m=await n.mutateAsync();o(m),t("testSuite",{name:m}),cl("Test file created",{description:`.cw/test/${m} \xB7 edit the cases, then run them`})};return(0,De.jsxs)("div",{className:"space-y-2.5",children:[(0,De.jsxs)("div",{className:`mb-[18px] flex flex-wrap items-center gap-[11px] rounded-xl border px-[15px] py-[13px] ${u===void 0?"":d>0?"border-[#f6d9d9] bg-[#fef6f6]":"border-[#dcf0e2] bg-[#f5fbf7]"}`,"aria-label":"Test summary",children:[(0,De.jsx)("span",{className:"text-[12.5px] font-bold",children:u===void 0?`${f} case${f===1?"":"s"} in ${s.length} file${s.length===1?"":"s"}`:`${u.data.testCaseReports.length-d} of ${u.data.testCaseReports.length} cases pass`}),(0,De.jsx)("span",{className:"min-w-0 flex-1 text-[11.5px] leading-[1.6] text-zinc-500",children:"A case names the file a change touches or the event it raises, then says what must come up. It runs nothing and asks no agent."}),(0,De.jsx)(Ae,{variant:"outline",disabled:n.isPending,onClick:()=>{p()},children:"New test file"}),(0,De.jsx)(Ae,{disabled:a.isFetching,onClick:()=>{h()},children:"Run all tests"})]}),a.data?.type==="FaultsByFile"&&(0,De.jsx)(fs,{faultsByFile:a.data,label:"Nothing was resolved"}),s.length===0&&(0,De.jsx)("div",{className:"rounded-xl border border-dashed px-[15px] py-3.5 text-[11.5px] leading-[1.6] text-zinc-500",children:"No test file yet. Test files live in .cw/test/."}),s.map(({data:m})=>{let x=c(m.name),g=x.filter(({data:O})=>!O.passed).length;return(0,De.jsxs)("section",{className:"overflow-hidden rounded-[14px] border bg-background","aria-label":m.name,children:[(0,De.jsxs)("div",{className:"flex items-baseline gap-2.5 px-[15px] py-3",children:[(0,De.jsxs)("button",{className:"flex min-w-0 flex-1 cursor-pointer items-baseline gap-2.5 text-left","aria-expanded":i===m.name,onClick:()=>o(i===m.name?null:m.name),children:[(0,De.jsx)("span",{className:"font-mono text-[11.5px] font-bold",children:m.name}),(0,De.jsx)("span",{className:"min-w-0 flex-1 text-[11.5px] text-zinc-500",children:m.description}),(0,De.jsxs)("span",{className:`font-mono text-[10.5px] ${g>0?"text-destructive":"text-zinc-400"}`,children:[m.cases.length," case",m.cases.length===1?"":"s",g>0&&` \xB7 ${g} failing`]})]}),(0,De.jsx)(Ae,{variant:"ghost",className:"h-auto p-0 text-[11.5px] text-zinc-400 hover:bg-transparent hover:text-foreground",onClick:()=>t("testSuite",{name:m.name}),children:"Edit"})]}),m.fault!==void 0&&(0,De.jsxs)("p",{className:"border-t border-[#f7f7f8] px-[15px] py-2.5 text-[11.5px] text-destructive",children:[m.fault.data.message," ",(0,De.jsx)("span",{className:"text-zinc-400",children:m.fault.data.fix})]}),i===m.name&&m.cases.map(({data:O},y)=>(0,De.jsx)(zW,{testCase:O,testCaseReport:x[y],isHeld:O.id===void 0||l.has(O.id),onOpen:b=>t("primitive",{id:b})},y))]},m.name)})]})}function zW({testCase:t,testCaseReport:e,isHeld:a,onOpen:r}){let n=e?.data.unmet,{id:i,expectation:o}=t;return(0,De.jsxs)("div",{className:`grid grid-cols-[minmax(150px,1fr)_minmax(0,1.4fr)_auto] items-baseline gap-3 border-t border-[#f7f7f8] px-[15px] py-2.5 ${n?"bg-[#fef6f6]":""}`,children:[(0,De.jsx)("span",{className:"font-mono text-[10.5px]",children:t.situation}),n!==void 0?(0,De.jsxs)("span",{className:"font-mono text-[10.5px] text-destructive",children:[n.data.message," ",(0,De.jsx)("span",{className:"text-zinc-400",children:n.data.fix})]}):(0,De.jsx)("span",{className:"font-mono text-[10.5px] text-zinc-400",children:i===void 0||!o.endsWith(i)?o:(0,De.jsxs)(De.Fragment,{children:[o.slice(0,-i.length),a?(0,De.jsx)("button",{className:"cursor-pointer text-[#1d4ed8] underline underline-offset-2",onClick:()=>r(i),children:i}):(0,De.jsxs)(De.Fragment,{children:[(0,De.jsx)("span",{className:"underline decoration-dotted underline-offset-2",children:i})," ",(0,De.jsx)(mi,{className:"rounded-[5px] bg-zinc-100 px-1.5 py-0 font-sans text-[10px] font-normal text-zinc-500",children:"not in the charter"})]})]})}),(0,De.jsx)(mi,{className:`rounded-[5px] px-[7px] py-0 text-[11.5px] font-bold tracking-[0.04em] [font-variant-caps:all-small-caps] ${e===void 0?"bg-zinc-50 text-[#c4c4c8]":e.data.passed?"bg-[#f0fdf4] text-[#15803d]":"bg-[#fdeef0] text-[#b91c1c]"}`,children:e===void 0?"not run":e.data.passed?"pass":"fail"})]})}var Zt=L(H(),1);function Jz(){let{open:t}=ho(),e=MA(),a=oi(),r=DA();if(e.data===void 0)return null;let n=e.data,i=a.data?.type==="Primitives"?a.data.data.primitives.filter(({data:s})=>s.layerName==="vendor"):[],o=async s=>{let l=await r.mutateAsync(s.split("/").at(-1)??"");if(l!==null)return void cl.error(l.data.message,{description:l.data.fix});cl("Vendor source removed",{description:`${s} \xB7 run Build to compile the charter without it`})};return n.length===0?(0,Zt.jsxs)("div",{className:"flex items-center gap-[9px] rounded-xl border border-dashed px-[15px] py-3.5","aria-label":"Vendor sources",children:[(0,Zt.jsx)("span",{className:"text-xs font-semibold",children:"No vendor source installed"}),(0,Zt.jsx)(Ae,{size:"sm",className:"ml-auto",onClick:()=>t("addVendor",{}),children:"Add vendor source"})]}):(0,Zt.jsxs)("section",{className:"divide-y divide-[#f0f0f0] overflow-hidden rounded-[13px] border bg-background","aria-label":"Vendor sources",children:[(0,Zt.jsx)("h2",{className:"px-3.5 py-[11px] text-[10.5px] font-bold tracking-[0.06em] text-zinc-400 uppercase",children:"Vendor sources"}),n.map(s=>{let l=i.filter(({data:c})=>c.file.startsWith(`${s}/`)),u=[...new Set(l.map(({data:c})=>c.kind))].sort().map(c=>[c,l.filter(({data:f})=>f.kind===c).length]);return(0,Zt.jsxs)("div",{className:"flex flex-col gap-2.5 bg-[#f6f2ff] px-3.5 py-3","aria-label":s,children:[(0,Zt.jsxs)("div",{className:"min-w-0 space-y-0.5",children:[(0,Zt.jsx)("div",{className:"text-[12.5px] font-semibold",children:s.split("/").at(-1)}),(0,Zt.jsxs)("div",{className:"text-[11px] text-zinc-500",children:[(0,Zt.jsxs)("span",{className:"font-mono",children:[s,"/"]})," \xB7 read-only"]})]}),(0,Zt.jsx)("dl",{className:"grid grid-cols-[1fr_auto] gap-x-2 gap-y-1.5 text-[11.5px] text-zinc-500","aria-label":"Primitives by kind",children:u.map(([c,f])=>(0,Zt.jsxs)("div",{className:"contents",children:[(0,Zt.jsx)("dt",{children:c}),(0,Zt.jsx)("dd",{className:"font-mono text-[10.5px] text-zinc-400",children:f})]},c))}),(0,Zt.jsx)(Ae,{size:"sm",variant:"outline",className:"self-start",disabled:r.isPending,onClick:()=>{o(s)},children:"Remove"})]},s)}),(0,Zt.jsx)("div",{className:"px-3.5 py-[11px]",children:(0,Zt.jsx)(Ae,{size:"sm",variant:"outline",onClick:()=>t("addVendor",{}),children:"Add source"})})]})}var iu=L(H(),1),eN=({...t})=>(0,iu.jsx)(VA,{theme:"light",className:"toaster group",icons:{success:(0,iu.jsx)(Go,{className:"size-4"}),info:(0,iu.jsx)(kd,{className:"size-4"}),warning:(0,iu.jsx)(Ko,{className:"size-4"}),error:(0,iu.jsx)(Wo,{className:"size-4"}),loading:(0,iu.jsx)(Yo,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},...t});var qe=L(H(),1),NW=[["repo","Repo Charter"],["vendor","Vendor"],["test","Test"],["context","Context"]],g0="rounded-2xl border bg-background px-[22px] py-5";function XW(){let[t,e]=(0,Vh.useState)("repo"),[a,r]=(0,Vh.useState)(null),{open:n}=ho();return(0,qe.jsxs)(qe.Fragment,{children:[(0,qe.jsxs)("header",{className:"sticky top-0 z-20 flex h-14 items-center gap-3 border-b bg-background px-[26px]",children:[(0,qe.jsxs)("span",{className:"flex items-center gap-[9px] text-[13.5px] font-bold tracking-[-0.01em]",children:[(0,qe.jsx)("img",{src:"./logo.png",alt:"",className:"size-[22px] object-contain"}),"Cherry Works"]}),(0,qe.jsx)("span",{className:"font-mono text-[11.5px] text-zinc-400"}),(0,qe.jsx)("div",{className:"ml-auto flex w-full max-w-[460px]",children:(0,qe.jsx)(Gz,{onPick:({data:{id:i,kind:o,layerName:s}})=>{e(s==="vendor"?"vendor":"repo"),r(o),n("primitive",{id:i})}})}),(0,qe.jsx)(Ae,{variant:"outline",onClick:()=>n("buildPreview",{}),children:"Build"}),(0,qe.jsx)(Ae,{variant:"outline",onClick:()=>n("doctor",{}),children:"Doctor"})]}),(0,qe.jsx)("main",{className:"mx-auto max-w-[1120px] px-[26px] pt-[22px] pb-[60px]",children:(0,qe.jsxs)(u0,{value:t,onValueChange:i=>{e(i),r(null)},children:[(0,qe.jsx)(c0,{className:"mb-4 h-auto w-full gap-1 rounded-[11px] bg-[#e9e9ec] p-1",children:NW.map(([i,o])=>(0,qe.jsx)(zh,{value:i,className:"h-auto rounded-lg py-[9px] text-[12.5px] font-semibold text-zinc-500 data-[state=active]:shadow-[0_1px_3px_rgba(0,0,0,0.09)]",children:o},i))}),(0,qe.jsx)(Es,{value:"repo",className:g0,children:(0,qe.jsx)(DC,{layerNames:["repo","builtin"],kind:a,onKindChange:r})}),(0,qe.jsxs)(Es,{value:"vendor",className:`${g0} grid items-start gap-4 md:has-[>section]:grid-cols-[210px_minmax(0,1fr)]`,children:[(0,qe.jsx)(Jz,{}),(0,qe.jsx)(DC,{layerNames:["vendor"],kind:a,onKindChange:r})]}),(0,qe.jsx)(Es,{value:"test",className:g0,children:(0,qe.jsx)(Kz,{})}),(0,qe.jsx)(Es,{value:"context",className:g0,children:(0,qe.jsx)(Yz,{})})]})}),(0,qe.jsx)(eN,{})]})}var qW=new Bb;(0,tN.createRoot)(document.getElementById("root")).render((0,qe.jsx)(Vh.StrictMode,{children:(0,qe.jsx)(Lb,{client:qW,children:(0,qe.jsx)(kz,{children:(0,qe.jsx)(XW,{})})})}));
|
|
140
140
|
/*! Bundled license information:
|
|
141
141
|
|
|
142
142
|
react/cjs/react.production.js:
|