flavor-code 1.2.3 → 1.2.5
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 +369 -1090
- package/README.zh-CN.md +369 -0
- package/dist/{app-SCHNJSXI.js → app-3DXEGSS7.js} +15 -9
- package/dist/{chunk-XGCFBGBB.js → chunk-3TYRDK34.js} +43 -38
- package/dist/{chunk-MVIMQEQT.js → chunk-HFR2WS6T.js} +0 -1
- package/dist/{chunk-DM64TM4Z.js → chunk-KKIBYDJI.js} +0 -1
- package/dist/{chunk-VOCZVFP7.js → chunk-N2S7USST.js} +0 -1
- package/dist/{chunk-XS2JU6S3.js → chunk-NVLYFU6P.js} +3 -4
- package/dist/{chunk-JZ322RCJ.js → chunk-S32JRDZK.js} +0 -1
- package/dist/{chunk-AHUOGT4I.js → chunk-Z3BW52MK.js} +1 -2
- package/dist/{claude-ink-ZL4UZMFY.js → claude-ink-WPWPEL5A.js} +3 -4
- package/dist/cli.js +9 -10
- package/dist/desktop/main.js +41 -36
- package/dist/desktop/preload.cjs +0 -1
- package/dist/desktop-renderer/assets/index-C66pDvHs.js +1 -2
- package/dist/desktop-renderer/index.html +14 -14
- package/dist/{devtools-SXJBSV2N.js → devtools-4QTPKBKK.js} +0 -1
- package/dist/{load-WQGNTCHC.js → load-XC5JYYBQ.js} +2 -3
- package/dist/sdk/index.js +5 -6
- package/package.json +7 -1
- package//346/212/200/346/234/257/346/226/271/346/241/210/346/212/245/345/221/212.md +1 -1
- package/dist/app-SCHNJSXI.js.map +0 -1
- package/dist/chunk-AHUOGT4I.js.map +0 -1
- package/dist/chunk-DM64TM4Z.js.map +0 -1
- package/dist/chunk-JZ322RCJ.js.map +0 -1
- package/dist/chunk-MVIMQEQT.js.map +0 -1
- package/dist/chunk-VOCZVFP7.js.map +0 -1
- package/dist/chunk-XGCFBGBB.js.map +0 -1
- package/dist/chunk-XS2JU6S3.js.map +0 -1
- package/dist/claude-ink-ZL4UZMFY.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/desktop/main.js.map +0 -1
- package/dist/desktop/preload.cjs.map +0 -1
- package/dist/desktop-renderer/assets/index-C66pDvHs.js.map +0 -1
- package/dist/devtools-SXJBSV2N.js.map +0 -1
- package/dist/load-WQGNTCHC.js.map +0 -1
- package/dist/sdk/index.js.map +0 -1
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
redactConfig,
|
|
13
13
|
setProjectMcpServerDisabled,
|
|
14
14
|
updateProtectedFile
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-HFR2WS6T.js";
|
|
16
16
|
import {
|
|
17
17
|
AuditLogger,
|
|
18
18
|
appendUsageLog,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
resolveLanguage,
|
|
24
24
|
setUsageSession,
|
|
25
25
|
usageLogPath
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-N2S7USST.js";
|
|
27
27
|
|
|
28
28
|
// src/models/types.ts
|
|
29
29
|
function modelContentText(content) {
|
|
@@ -104,10 +104,12 @@ function isDestructiveTool(name) {
|
|
|
104
104
|
return DESTRUCTIVE_TOOLS.has(name);
|
|
105
105
|
}
|
|
106
106
|
var PermissionEngine = class {
|
|
107
|
+
#lexicalWorkspace;
|
|
107
108
|
#workspace;
|
|
108
109
|
#mode;
|
|
109
110
|
constructor(options) {
|
|
110
111
|
const root = resolve(options.workspace);
|
|
112
|
+
this.#lexicalWorkspace = root;
|
|
111
113
|
this.#workspace = existsSync(root) ? realpathSync.native(root) : root;
|
|
112
114
|
this.#mode = canonicalMode(options.mode ?? "default");
|
|
113
115
|
}
|
|
@@ -128,13 +130,13 @@ var PermissionEngine = class {
|
|
|
128
130
|
return { decision: "deny", reason: `${request.tool} requires source and destination paths` };
|
|
129
131
|
}
|
|
130
132
|
for (const path of paths) {
|
|
131
|
-
const classification = classifyPath(this.#workspace, path);
|
|
133
|
+
const classification = classifyPath(this.#lexicalWorkspace, this.#workspace, path);
|
|
132
134
|
if (classification.escape) return { decision: "deny", reason: classification.reason ?? "Path escapes the workspace" };
|
|
133
135
|
if (request.agent === "subagent" && !classification.inside) {
|
|
134
136
|
return { decision: "deny", reason: "Subagents are restricted to the workspace" };
|
|
135
137
|
}
|
|
136
138
|
}
|
|
137
|
-
const inside = paths.every((path) => classifyPath(this.#workspace, path).inside);
|
|
139
|
+
const inside = paths.every((path) => classifyPath(this.#lexicalWorkspace, this.#workspace, path).inside);
|
|
138
140
|
if (this.#mode === "plan") {
|
|
139
141
|
return READ_TOOLS.has(request.tool) ? { decision: "allow" } : { decision: "deny", reason: "Plan mode is read-only" };
|
|
140
142
|
}
|
|
@@ -161,11 +163,11 @@ var PermissionEngine = class {
|
|
|
161
163
|
const analysis = request.args === void 0 ? analyzeCommand(request.command ?? "") : analyzeArgumentCommand(request.command ?? "", request.args);
|
|
162
164
|
if (request.agent === "subagent") {
|
|
163
165
|
if (request.cwd === void 0) return { decision: "ask", reason: "Subagent shell commands require an explicit workspace cwd" };
|
|
164
|
-
const cwd = classifyPath(this.#workspace, request.cwd);
|
|
166
|
+
const cwd = classifyPath(this.#lexicalWorkspace, this.#workspace, request.cwd);
|
|
165
167
|
if (cwd.escape || !cwd.inside) return { decision: "deny", reason: "Subagent shell cwd must remain in the workspace" };
|
|
166
168
|
if (analysis.destructive) return { decision: "deny", reason: "Destructive commands are forbidden for subagents" };
|
|
167
169
|
if (analysis.wrapped || analysis.opaque || !isRoutineCommand(analysis.command)) return { decision: "ask", reason: "Subagent shell command requires main-Agent approval" };
|
|
168
|
-
const argumentDecision = assessRoutineArguments(analysis.command, request.cwd, this.#workspace);
|
|
170
|
+
const argumentDecision = assessRoutineArguments(analysis.command, request.cwd, this.#lexicalWorkspace, this.#workspace);
|
|
169
171
|
if (argumentDecision !== "allow") {
|
|
170
172
|
return argumentDecision === "deny" ? { decision: "deny", reason: "Subagent command arguments escape the workspace" } : { decision: "ask", reason: "Ambiguous subagent command arguments require main-Agent approval" };
|
|
171
173
|
}
|
|
@@ -177,12 +179,12 @@ var PermissionEngine = class {
|
|
|
177
179
|
if (analysis.wrapped || analysis.opaque) return ask(this.#mode, "Shell wrapper requires approval");
|
|
178
180
|
if (this.#mode === "bypassPermissions") return { decision: "allow" };
|
|
179
181
|
if ((this.#mode === "acceptEdits" || this.#mode === "auto") && isRoutineCommand(analysis.command)) {
|
|
180
|
-
const cwd = request.cwd ?? this.#
|
|
181
|
-
const cwdClassification = classifyPath(this.#workspace, cwd);
|
|
182
|
+
const cwd = request.cwd ?? this.#lexicalWorkspace;
|
|
183
|
+
const cwdClassification = classifyPath(this.#lexicalWorkspace, this.#workspace, cwd);
|
|
182
184
|
if (cwdClassification.escape || !cwdClassification.inside) {
|
|
183
185
|
return { decision: "deny", reason: "Routine command cwd must remain in the workspace" };
|
|
184
186
|
}
|
|
185
|
-
const argumentDecision = assessRoutineArguments(analysis.command, cwd, this.#workspace);
|
|
187
|
+
const argumentDecision = assessRoutineArguments(analysis.command, cwd, this.#lexicalWorkspace, this.#workspace);
|
|
186
188
|
if (argumentDecision === "deny") return { decision: "deny", reason: "Routine command arguments escape the workspace" };
|
|
187
189
|
if (argumentDecision === "ask") return ask(this.#mode, "Ambiguous routine command arguments require approval");
|
|
188
190
|
return { decision: "allow" };
|
|
@@ -219,16 +221,16 @@ function analyzeArgumentCommand(executable, args) {
|
|
|
219
221
|
}
|
|
220
222
|
return { command, destructive: isForbiddenCommand(command), opaque: false, wrapped: false };
|
|
221
223
|
}
|
|
222
|
-
function classifyPath(
|
|
223
|
-
const candidate = resolve(
|
|
224
|
-
const lexicalInside = isWithin(
|
|
224
|
+
function classifyPath(lexicalWorkspace, physicalWorkspace, input) {
|
|
225
|
+
const candidate = resolve(lexicalWorkspace, input);
|
|
226
|
+
const lexicalInside = isWithin(lexicalWorkspace, candidate);
|
|
225
227
|
const traversal = input.split(/[\\/]+/).includes("..");
|
|
226
|
-
const startsInWorkspace = pathStartsWith(
|
|
228
|
+
const startsInWorkspace = pathStartsWith(lexicalWorkspace, input);
|
|
227
229
|
if ((!isAbsolute(input) || startsInWorkspace) && traversal && !lexicalInside) {
|
|
228
230
|
return { inside: false, escape: true, reason: "Path traversal escapes the workspace" };
|
|
229
231
|
}
|
|
230
232
|
const physical = resolvePhysical(candidate);
|
|
231
|
-
const physicalInside = isWithin(
|
|
233
|
+
const physicalInside = isWithin(physicalWorkspace, physical);
|
|
232
234
|
if (lexicalInside && !physicalInside) return { inside: false, escape: true, reason: "Symlink escapes the workspace" };
|
|
233
235
|
return { inside: physicalInside, escape: false };
|
|
234
236
|
}
|
|
@@ -318,7 +320,7 @@ function isRoutineCommand(command) {
|
|
|
318
320
|
if (command.executable === "go") return first === "test";
|
|
319
321
|
return ["pytest", "vitest", "jest", "eslint", "tsc"].includes(command.executable);
|
|
320
322
|
}
|
|
321
|
-
function assessRoutineArguments(command, cwd,
|
|
323
|
+
function assessRoutineArguments(command, cwd, lexicalWorkspace, physicalWorkspace) {
|
|
322
324
|
const args = routineArguments(command);
|
|
323
325
|
if (args === void 0) return "ask";
|
|
324
326
|
const pathOptions = /* @__PURE__ */ new Set([
|
|
@@ -343,7 +345,7 @@ function assessRoutineArguments(command, cwd, workspace) {
|
|
|
343
345
|
const option2 = equals[1]?.toLowerCase() ?? "";
|
|
344
346
|
const value = equals[2] ?? "";
|
|
345
347
|
if (!pathOptions.has(option2)) return "ask";
|
|
346
|
-
const decision = assessArgumentPath(value, cwd,
|
|
348
|
+
const decision = assessArgumentPath(value, cwd, lexicalWorkspace, physicalWorkspace);
|
|
347
349
|
if (decision !== "allow") return decision;
|
|
348
350
|
continue;
|
|
349
351
|
}
|
|
@@ -351,14 +353,14 @@ function assessRoutineArguments(command, cwd, workspace) {
|
|
|
351
353
|
if (option !== void 0 && pathOptions.has(option)) {
|
|
352
354
|
const value = args[index + 1];
|
|
353
355
|
if (value === void 0 || value.startsWith("-")) return "ask";
|
|
354
|
-
const decision = assessArgumentPath(value, cwd,
|
|
356
|
+
const decision = assessArgumentPath(value, cwd, lexicalWorkspace, physicalWorkspace);
|
|
355
357
|
if (decision !== "allow") return decision;
|
|
356
358
|
index += 1;
|
|
357
359
|
continue;
|
|
358
360
|
}
|
|
359
361
|
if (arg.startsWith("-")) continue;
|
|
360
362
|
if (looksLikePath(arg)) {
|
|
361
|
-
const decision = assessArgumentPath(arg, cwd,
|
|
363
|
+
const decision = assessArgumentPath(arg, cwd, lexicalWorkspace, physicalWorkspace);
|
|
362
364
|
if (decision !== "allow") return decision;
|
|
363
365
|
continue;
|
|
364
366
|
}
|
|
@@ -376,10 +378,10 @@ function routineArguments(command) {
|
|
|
376
378
|
if (["pytest", "vitest", "jest", "eslint", "tsc"].includes(command.executable)) return command.args;
|
|
377
379
|
return void 0;
|
|
378
380
|
}
|
|
379
|
-
function assessArgumentPath(value, cwd,
|
|
381
|
+
function assessArgumentPath(value, cwd, lexicalWorkspace, physicalWorkspace) {
|
|
380
382
|
if (value.length === 0) return "ask";
|
|
381
383
|
const resolved = resolve(cwd, value);
|
|
382
|
-
const classification = classifyPath(
|
|
384
|
+
const classification = classifyPath(lexicalWorkspace, physicalWorkspace, resolved);
|
|
383
385
|
return classification.escape || !classification.inside ? "deny" : "allow";
|
|
384
386
|
}
|
|
385
387
|
function looksLikePath(value) {
|
|
@@ -5042,7 +5044,8 @@ var ToolRuntime = class {
|
|
|
5042
5044
|
} catch {
|
|
5043
5045
|
}
|
|
5044
5046
|
}
|
|
5045
|
-
|
|
5047
|
+
const sessionAllowed = this.#alwaysAllowed.has(getToolCategory(tool.name));
|
|
5048
|
+
if (!sessionAllowed && (pre.decision === "ask" || permission.decision === "ask")) {
|
|
5046
5049
|
const reason = [pre.reason, permission.reason].filter((value) => value !== void 0).join("\n") || "Approval required";
|
|
5047
5050
|
const requestDecision = await this.#hooks.emit({
|
|
5048
5051
|
version: 1,
|
|
@@ -5067,8 +5070,7 @@ var ToolRuntime = class {
|
|
|
5067
5070
|
throw signal.reason;
|
|
5068
5071
|
} else {
|
|
5069
5072
|
const category = getToolCategory(tool.name);
|
|
5070
|
-
if (this.#
|
|
5071
|
-
} else if (this.#approve === void 0) {
|
|
5073
|
+
if (this.#approve === void 0) {
|
|
5072
5074
|
return this.#fail(tool.name, input, context.agent, "permission_denied", reason);
|
|
5073
5075
|
} else {
|
|
5074
5076
|
const decision = await this.#approve({ ...request, reason }, signal);
|
|
@@ -9220,9 +9222,11 @@ var SkillRegistry = class {
|
|
|
9220
9222
|
for (const configuredRoot of roots) {
|
|
9221
9223
|
const root = resolve13(configuredRoot);
|
|
9222
9224
|
let entries;
|
|
9225
|
+
let physicalRoot = root;
|
|
9223
9226
|
try {
|
|
9224
9227
|
const rootInfo = await lstat6(root);
|
|
9225
9228
|
if (rootInfo.isSymbolicLink() || !rootInfo.isDirectory()) throw new Error("Skill root must be a real directory");
|
|
9229
|
+
physicalRoot = await realpath4(root);
|
|
9226
9230
|
entries = await readdir5(root, { withFileTypes: true });
|
|
9227
9231
|
} catch (error) {
|
|
9228
9232
|
if (isMissing2(error)) continue;
|
|
@@ -9235,12 +9239,12 @@ var SkillRegistry = class {
|
|
|
9235
9239
|
try {
|
|
9236
9240
|
if (entry2.isSymbolicLink()) throw new Error("Symlinked skill directories are not allowed");
|
|
9237
9241
|
if (!entry2.isDirectory()) continue;
|
|
9238
|
-
const
|
|
9239
|
-
if (!isWithin3(
|
|
9242
|
+
const physicalSkillRoot = await realpath4(skillRoot);
|
|
9243
|
+
if (!isWithin3(physicalRoot, physicalSkillRoot)) throw new Error("Skill directory escapes its registry root");
|
|
9240
9244
|
const skillFile = resolve13(skillRoot, "SKILL.md");
|
|
9241
9245
|
const parsed = await readFrontmatterFile(
|
|
9242
9246
|
skillFile,
|
|
9243
|
-
|
|
9247
|
+
physicalSkillRoot,
|
|
9244
9248
|
this.#options.maxMetadataBytes,
|
|
9245
9249
|
this.#options.openFile
|
|
9246
9250
|
);
|
|
@@ -9251,7 +9255,7 @@ var SkillRegistry = class {
|
|
|
9251
9255
|
name: parsed.name,
|
|
9252
9256
|
description: parsed.description,
|
|
9253
9257
|
source,
|
|
9254
|
-
root:
|
|
9258
|
+
root: physicalSkillRoot,
|
|
9255
9259
|
disableModelInvocation: parsed.disableModelInvocation
|
|
9256
9260
|
}),
|
|
9257
9261
|
skillFile
|
|
@@ -10664,19 +10668,20 @@ function createReadTool(workspace, options = {}) {
|
|
|
10664
10668
|
if (startLine !== void 0 && endLine !== void 0 && endLine < startLine) {
|
|
10665
10669
|
throw new Error(`endLine (${endLine}) must not be below startLine (${startLine})`);
|
|
10666
10670
|
}
|
|
10667
|
-
const
|
|
10671
|
+
const rangeRequested = startLine !== void 0 || endLine !== void 0;
|
|
10672
|
+
const windowBytes = rangeRequested ? Math.max(maxBytes, Math.min(info.size, MAX_READ_BYTES)) : maxBytes;
|
|
10673
|
+
const contents = await readBounded2(path, windowBytes, signal, openFile2);
|
|
10668
10674
|
if (isBinary(contents)) throw new Error("Cannot read binary file as text");
|
|
10669
|
-
const textEnd = utf8SafeEnd(contents,
|
|
10670
|
-
const truncated = contents.length >
|
|
10675
|
+
const textEnd = utf8SafeEnd(contents, windowBytes);
|
|
10676
|
+
const truncated = contents.length > windowBytes;
|
|
10671
10677
|
const text = contents.subarray(0, textEnd).toString("utf8").replaceAll("\r\n", "\n");
|
|
10672
10678
|
const lines = text.split("\n");
|
|
10673
10679
|
if (lines.at(-1) === "") lines.pop();
|
|
10674
10680
|
const availableLines = lines.length;
|
|
10675
|
-
const rangeRequested = startLine !== void 0 || endLine !== void 0;
|
|
10676
10681
|
const start = startLine ?? 1;
|
|
10677
10682
|
const end = Math.min(endLine ?? availableLines, availableLines);
|
|
10678
10683
|
if (rangeRequested && start > availableLines) {
|
|
10679
|
-
throw new Error(`startLine (${start}) is beyond the ${availableLines} line${availableLines === 1 ? "" : "s"} available${truncated ? ` in this read (truncated at ${
|
|
10684
|
+
throw new Error(`startLine (${start}) is beyond the ${availableLines} line${availableLines === 1 ? "" : "s"} available${truncated ? ` in this read (truncated at ${windowBytes} bytes)` : " in this file"}`);
|
|
10680
10685
|
}
|
|
10681
10686
|
if (rangeRequested && end < start) {
|
|
10682
10687
|
throw new Error(`endLine (${endLine}) must not be below startLine (${start})`);
|
|
@@ -10692,13 +10697,13 @@ function createReadTool(workspace, options = {}) {
|
|
|
10692
10697
|
record.ranges = mergeRange(record.ranges, start, end);
|
|
10693
10698
|
}
|
|
10694
10699
|
if (rangeRequested) {
|
|
10695
|
-
const header = `[Lines ${start}-${end} of ${availableLines}${truncated ? ` visible in this read (truncated at ${
|
|
10700
|
+
const header = `[Lines ${start}-${end} of ${availableLines}${truncated ? ` visible in this read (truncated at ${windowBytes} bytes)` : ""}]`;
|
|
10696
10701
|
return `${header}
|
|
10697
10702
|
|
|
10698
10703
|
${lines.slice(start - 1, end).join("\n")}`;
|
|
10699
10704
|
}
|
|
10700
10705
|
if (truncated) {
|
|
10701
|
-
return `[Truncated to ${
|
|
10706
|
+
return `[Truncated to ${windowBytes} bytes. File is ${info.size} bytes total. Request a higher maxBytes or read a specific range with startLine/endLine.]
|
|
10702
10707
|
|
|
10703
10708
|
${text}`;
|
|
10704
10709
|
}
|
|
@@ -10746,6 +10751,7 @@ function createEditTool(workspace, options = {}) {
|
|
|
10746
10751
|
paths: (input) => [guard.lexical(input.path)],
|
|
10747
10752
|
execute: async (input, signal) => {
|
|
10748
10753
|
abortIfNeeded(signal);
|
|
10754
|
+
const displayPath = guard.lexical(input.path);
|
|
10749
10755
|
const path = await guard.existing(input.path);
|
|
10750
10756
|
const contents = await readText(path);
|
|
10751
10757
|
const hasCRLF = contents.includes("\r\n");
|
|
@@ -10761,11 +10767,11 @@ function createEditTool(workspace, options = {}) {
|
|
|
10761
10767
|
}
|
|
10762
10768
|
const updatedLF = contentsLF.slice(0, first) + newTextLF + contentsLF.slice(first + oldTextLF.length);
|
|
10763
10769
|
const updated = hasCRLF ? updatedLF.replace(/\n/g, "\r\n") : updatedLF;
|
|
10764
|
-
await options.beforeCommit?.({ path, before: contents, after: updated, kind: "update" }, signal);
|
|
10770
|
+
await options.beforeCommit?.({ path: displayPath, before: contents, after: updated, kind: "update" }, signal);
|
|
10765
10771
|
await atomicWrite(path, updated, signal);
|
|
10766
10772
|
return withToolPresentation(
|
|
10767
|
-
{ path, replacements: 1 },
|
|
10768
|
-
buildFileChangePresentation(
|
|
10773
|
+
{ path: displayPath, replacements: 1 },
|
|
10774
|
+
buildFileChangePresentation(displayPath, contents, updated, "update")
|
|
10769
10775
|
);
|
|
10770
10776
|
}
|
|
10771
10777
|
};
|
|
@@ -15783,4 +15789,3 @@ export {
|
|
|
15783
15789
|
createExecutionEnvironment,
|
|
15784
15790
|
createProductionRuntime
|
|
15785
15791
|
};
|
|
15786
|
-
//# sourceMappingURL=chunk-XGCFBGBB.js.map
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
getGraphemeSegmenter,
|
|
6
6
|
isEnvTruthy,
|
|
7
7
|
logError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-N2S7USST.js";
|
|
9
9
|
import {
|
|
10
10
|
__commonJS,
|
|
11
11
|
__require,
|
|
12
12
|
__toESM
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-S32JRDZK.js";
|
|
14
14
|
|
|
15
15
|
// node_modules/scheduler/cjs/scheduler.production.js
|
|
16
16
|
var require_scheduler_production = __commonJS({
|
|
@@ -28001,7 +28001,7 @@ var styles_default = styles2;
|
|
|
28001
28001
|
// src/claude-ink/reconciler.ts
|
|
28002
28002
|
if (process.env.NODE_ENV === "development") {
|
|
28003
28003
|
try {
|
|
28004
|
-
void import("./devtools-
|
|
28004
|
+
void import("./devtools-4QTPKBKK.js");
|
|
28005
28005
|
} catch (error) {
|
|
28006
28006
|
if (error.code === "ERR_MODULE_NOT_FOUND") {
|
|
28007
28007
|
console.warn(
|
|
@@ -35554,4 +35554,3 @@ react-reconciler/cjs/react-reconciler-constants.development.js:
|
|
|
35554
35554
|
* LICENSE file in the root directory of this source tree.
|
|
35555
35555
|
*)
|
|
35556
35556
|
*/
|
|
35557
|
-
//# sourceMappingURL=chunk-XS2JU6S3.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
message,
|
|
5
5
|
redactErrorText,
|
|
6
6
|
redactSecrets
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3TYRDK34.js";
|
|
8
8
|
|
|
9
9
|
// src/rpc/server.ts
|
|
10
10
|
import { createInterface } from "readline";
|
|
@@ -243,4 +243,3 @@ export {
|
|
|
243
243
|
TraceRecordSchema,
|
|
244
244
|
TraceRecorder
|
|
245
245
|
};
|
|
246
|
-
//# sourceMappingURL=chunk-AHUOGT4I.js.map
|
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
useStdout,
|
|
11
11
|
use_app_default,
|
|
12
12
|
use_input_default
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-NVLYFU6P.js";
|
|
14
|
+
import "./chunk-N2S7USST.js";
|
|
15
|
+
import "./chunk-S32JRDZK.js";
|
|
16
16
|
export {
|
|
17
17
|
AlternateScreen,
|
|
18
18
|
Box_default as Box,
|
|
@@ -24,4 +24,3 @@ export {
|
|
|
24
24
|
use_input_default as useInput,
|
|
25
25
|
useStdout
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=claude-ink-ZL4UZMFY.js.map
|
package/dist/cli.js
CHANGED
|
@@ -3,10 +3,10 @@ import { createRequire } from "node:module"; const require = createRequire(impor
|
|
|
3
3
|
import {
|
|
4
4
|
FlavorRpcServer,
|
|
5
5
|
TraceRecorder
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Z3BW52MK.js";
|
|
7
7
|
import {
|
|
8
8
|
staticTaskLines
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KKIBYDJI.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_MAX_OUTPUT_BYTES,
|
|
12
12
|
MEMORY_TYPES,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
message,
|
|
21
21
|
packageVersion,
|
|
22
22
|
redactErrorText
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-3TYRDK34.js";
|
|
24
24
|
import {
|
|
25
25
|
McpServerConfigSchema,
|
|
26
26
|
McpServerNameSchema,
|
|
@@ -29,9 +29,9 @@ import {
|
|
|
29
29
|
readRecoverableFile,
|
|
30
30
|
setProjectSkillDisabled,
|
|
31
31
|
updateProtectedFile
|
|
32
|
-
} from "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
32
|
+
} from "./chunk-HFR2WS6T.js";
|
|
33
|
+
import "./chunk-N2S7USST.js";
|
|
34
|
+
import "./chunk-S32JRDZK.js";
|
|
35
35
|
|
|
36
36
|
// src/cli.tsx
|
|
37
37
|
import { realpathSync } from "fs";
|
|
@@ -669,7 +669,7 @@ async function runEvaluationFile(path, outputPath) {
|
|
|
669
669
|
})),
|
|
670
670
|
...parsed.maxTokens === void 0 ? {} : { maxTokens: parsed.maxTokens }
|
|
671
671
|
};
|
|
672
|
-
const configured = await import("./load-
|
|
672
|
+
const configured = await import("./load-XC5JYYBQ.js").then(({ loadConfig: loadConfig2 }) => loadConfig2({ cwd: workspace, home: process.env.USERPROFILE ?? process.env.HOME ?? workspace }));
|
|
673
673
|
const environment = createExecutionEnvironment(workspace, configured.config.execution) ?? new LocalExecutionEnvironment();
|
|
674
674
|
let report;
|
|
675
675
|
try {
|
|
@@ -769,9 +769,9 @@ function createProgram() {
|
|
|
769
769
|
}
|
|
770
770
|
setInteractiveProcessTitle();
|
|
771
771
|
const [{ render, AlternateScreen }, { createElement }, { App }] = await Promise.all([
|
|
772
|
-
import("./claude-ink-
|
|
772
|
+
import("./claude-ink-WPWPEL5A.js"),
|
|
773
773
|
import("react"),
|
|
774
|
-
import("./app-
|
|
774
|
+
import("./app-3DXEGSS7.js")
|
|
775
775
|
]);
|
|
776
776
|
const instance = await render(createElement(
|
|
777
777
|
AlternateScreen,
|
|
@@ -912,4 +912,3 @@ export {
|
|
|
912
912
|
runRpcMode,
|
|
913
913
|
setInteractiveProcessTitle
|
|
914
914
|
};
|
|
915
|
-
//# sourceMappingURL=cli.js.map
|