mocode-ai 1.3.10 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -70
- package/README.zh-CN.md +81 -73
- package/dist/agent/core.js +226 -293
- package/dist/agent/index.js +14 -10
- package/dist/agent/mode.js +3 -3
- package/dist/agent/runtime-context.js +45 -0
- package/dist/agent/spawn.js +101 -86
- package/dist/agent/tool-helpers.js +134 -0
- package/dist/agent/trace-state.js +118 -0
- package/dist/agents/coordinator.js +6 -1
- package/dist/changeset/index.js +9 -8
- package/dist/config/index.js +109 -77
- package/dist/config/presets.js +3 -1
- package/dist/config/profiles.js +125 -0
- package/dist/context/age-aware.js +2 -4
- package/dist/context/artifacts.js +6 -13
- package/dist/context/budget.js +6 -8
- package/dist/context/classifier.js +1 -2
- package/dist/context/encoders/code.js +2 -6
- package/dist/context/encoders/command.js +1 -3
- package/dist/context/encoders/search.js +1 -3
- package/dist/context/index.js +1 -1
- package/dist/context/lifecycle.js +5 -3
- package/dist/context/pipeline.js +1 -1
- package/dist/context/relevance.js +2 -4
- package/dist/context/token-calibration.js +13 -18
- package/dist/host/stdio.js +73 -12
- package/dist/i18n/index.js +96 -44
- package/dist/index.js +1 -1
- package/dist/llm/index.js +39 -23
- package/dist/llm/provider.js +23 -0
- package/dist/llm/providers/anthropic.js +12 -18
- package/dist/llm/tool-schema.js +48 -0
- package/dist/mcp/client.js +70 -25
- package/dist/mcp/config.js +1 -3
- package/dist/mcp/index.js +3 -1
- package/dist/memory/reflect.js +3 -6
- package/dist/memory/store.js +10 -12
- package/dist/permissions/index.js +66 -22
- package/dist/pet/bridge.js +2 -2
- package/dist/repl/commands/appearance.js +72 -0
- package/dist/repl/commands/compact.js +114 -0
- package/dist/repl/commands/context.js +17 -0
- package/dist/repl/commands/image.js +71 -0
- package/dist/repl/commands/memory.js +51 -0
- package/dist/repl/commands/mode.js +47 -0
- package/dist/repl/commands/model.js +435 -0
- package/dist/repl/commands/pet.js +70 -0
- package/dist/repl/commands/registry.js +46 -0
- package/dist/repl/commands/session.js +102 -0
- package/dist/repl/commands/skill.js +95 -0
- package/dist/repl/commands/system.js +202 -0
- package/dist/repl/commands/tool-group.js +233 -0
- package/dist/repl/commands/types.js +4 -0
- package/dist/repl/commands.js +324 -0
- package/dist/repl/index.js +5 -2581
- package/dist/repl/message-format.js +151 -0
- package/dist/repl/running-input.js +147 -0
- package/dist/repl/runtime.js +816 -0
- package/dist/repl/status-bar.js +161 -0
- package/dist/rollback/index.js +44 -14
- package/dist/runtime/browser-manager.js +1 -1
- package/dist/runtime/dev-server-manager.js +1 -1
- package/dist/runtime/input-injector.js +313 -0
- package/dist/runtime/screen-capture.js +89 -0
- package/dist/runtime/screen-pipeline.js +223 -0
- package/dist/sandbox/index.js +1 -1
- package/dist/sandbox/policy.js +8 -2
- package/dist/session/compact.js +22 -34
- package/dist/session/index.js +2 -2
- package/dist/session/notes.js +39 -5
- package/dist/session/persist.js +14 -8
- package/dist/session/scheduler.js +3 -4
- package/dist/session/trace-metrics.js +24 -10
- package/dist/skills/activation.js +10 -5
- package/dist/skills/discover.js +5 -17
- package/dist/skills/index.js +1 -1
- package/dist/skills/runner.js +28 -44
- package/dist/skills/toolmap.js +5 -2
- package/dist/tools/builtins/browser.js +17 -3
- package/dist/tools/builtins/computer.js +322 -0
- package/dist/tools/builtins/dev-server.js +1 -3
- package/dist/tools/builtins/edit-file.js +21 -7
- package/dist/tools/builtins/grep.js +1 -1
- package/dist/tools/builtins/index.js +28 -25
- package/dist/tools/builtins/memory-forget.js +1 -1
- package/dist/tools/builtins/memory-graph.js +4 -7
- package/dist/tools/builtins/memory-list.js +2 -6
- package/dist/tools/builtins/memory-save.js +8 -2
- package/dist/tools/builtins/memory-search.js +4 -4
- package/dist/tools/builtins/note-append.js +14 -3
- package/dist/tools/builtins/plan-update.js +40 -9
- package/dist/tools/builtins/run-command.js +8 -8
- package/dist/tools/builtins/screenshot.js +11 -87
- package/dist/tools/builtins/task.js +29 -40
- package/dist/tools/builtins/use-skill.js +1 -1
- package/dist/tools/builtins/view-image.js +5 -3
- package/dist/tools/builtins/web-fetch.js +1 -3
- package/dist/tools/builtins/web-search.js +3 -7
- package/dist/tools/builtins/write-file.js +4 -2
- package/dist/tools/constants.js +50 -37
- package/dist/tools/policy.js +221 -0
- package/dist/tools/registry.js +40 -19
- package/dist/tools/resource-lock.js +4 -2
- package/dist/tools/router.js +143 -0
- package/dist/tools/validation.js +6 -5
- package/dist/ui/batch.js +73 -38
- package/dist/ui/clipboard.js +17 -5
- package/dist/ui/content.js +166 -13
- package/dist/ui/diff.js +61 -19
- package/dist/ui/fuzzy.js +35 -2
- package/dist/ui/intervention.js +2 -4
- package/dist/ui/layout-internal/content-write.js +587 -0
- package/dist/ui/layout-internal/core.js +590 -0
- package/dist/ui/layout-internal/input-paint.js +365 -0
- package/dist/ui/layout-internal/screen.js +128 -0
- package/dist/ui/layout-internal/scroll.js +152 -0
- package/dist/ui/layout-internal/selection.js +229 -0
- package/dist/ui/layout-internal/state.js +82 -0
- package/dist/ui/layout-internal/statusbar.js +351 -0
- package/dist/ui/layout-types.js +1 -0
- package/dist/ui/layout.js +3 -2288
- package/dist/ui/markdown.js +10 -2
- package/dist/ui/prompt-internal/editor-operations.js +56 -0
- package/dist/ui/prompt-internal/editor.js +940 -0
- package/dist/ui/prompt-internal/paste.js +52 -0
- package/dist/ui/prompt-internal/pickers.js +519 -0
- package/dist/ui/prompt-internal/types.js +1 -0
- package/dist/ui/prompt.js +4 -1506
- package/dist/ui/render.js +87 -2
- package/dist/verification/affected.js +11 -5
- package/dist/verification/discovery.js +1 -3
- package/dist/verification/profile.js +11 -3
- package/package.json +12 -3
package/dist/ui/markdown.js
CHANGED
|
@@ -441,6 +441,15 @@ function renderMarkdownImpl(text, cols) {
|
|
|
441
441
|
};
|
|
442
442
|
while (i < src.length) {
|
|
443
443
|
const line = src[i];
|
|
444
|
+
// 容错关闭 fence:部分模型偶尔把 ``` 的闭合标记少输出一个字符,变成独占一行的 ``。
|
|
445
|
+
// 若不恢复,后续所有标题、列表和下一段代码都会被吞进首个代码块,最终显示成截图里的原始
|
|
446
|
+
// `##` / ```。只接受“独占一行、恰好两个同类字符”,避免误伤代码中的行内双反引号。
|
|
447
|
+
const shortClose = inFence ? line.match(/^\s*(`{2}|~{2})\s*$/) : null;
|
|
448
|
+
if (shortClose && shortClose[1][0] === fenceChar) {
|
|
449
|
+
flushCode();
|
|
450
|
+
i++;
|
|
451
|
+
continue;
|
|
452
|
+
}
|
|
444
453
|
// fence 探测(``` 或 ~~~,≥3)
|
|
445
454
|
const fm = line.match(/^(\s*)(`{3,}|~{3,})(.*)$/);
|
|
446
455
|
if (fm) {
|
|
@@ -545,8 +554,7 @@ function renderMarkdownImpl(text, cols) {
|
|
|
545
554
|
const headerCells = parseTableRow(line);
|
|
546
555
|
if (headerCells.length >= 2 && i + 1 < src.length) {
|
|
547
556
|
const sepCells = parseTableRow(src[i + 1]);
|
|
548
|
-
if (sepCells.length === headerCells.length &&
|
|
549
|
-
sepCells.every((c) => /^:?-+:?$/.test(c.trim()))) {
|
|
557
|
+
if (sepCells.length === headerCells.length && sepCells.every((c) => /^:?-+:?$/.test(c.trim()))) {
|
|
550
558
|
flushPara();
|
|
551
559
|
const aligns = parseAlign(sepCells);
|
|
552
560
|
i += 2;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
function clampCursor(text, cursor) {
|
|
2
|
+
if (!Number.isFinite(cursor))
|
|
3
|
+
return text.length;
|
|
4
|
+
return Math.max(0, Math.min(text.length, Math.floor(cursor)));
|
|
5
|
+
}
|
|
6
|
+
/** 在光标处插入文本,返回更新后的文本与光标。 */
|
|
7
|
+
export function insertTextAt(text, cursor, inserted) {
|
|
8
|
+
const at = clampCursor(text, cursor);
|
|
9
|
+
return {
|
|
10
|
+
text: text.slice(0, at) + inserted + text.slice(at),
|
|
11
|
+
cursor: at + inserted.length,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/** 删除光标前一个 UTF-16 单元;与 readline 提供的字符偏移语义保持一致。 */
|
|
15
|
+
export function deleteBackwardAt(text, cursor) {
|
|
16
|
+
const at = clampCursor(text, cursor);
|
|
17
|
+
if (at === 0)
|
|
18
|
+
return { text, cursor: at };
|
|
19
|
+
return {
|
|
20
|
+
text: text.slice(0, at - 1) + text.slice(at),
|
|
21
|
+
cursor: at - 1,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** 删除光标后的一个 UTF-16 单元。 */
|
|
25
|
+
export function deleteForwardAt(text, cursor) {
|
|
26
|
+
const at = clampCursor(text, cursor);
|
|
27
|
+
if (at === text.length)
|
|
28
|
+
return { text, cursor: at };
|
|
29
|
+
return {
|
|
30
|
+
text: text.slice(0, at) + text.slice(at + 1),
|
|
31
|
+
cursor: at,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** 删除当前逻辑行从行首到光标的内容。 */
|
|
35
|
+
export function deleteToLineStartAt(text, cursor) {
|
|
36
|
+
const at = clampCursor(text, cursor);
|
|
37
|
+
const lineStart = text.lastIndexOf('\n', at - 1) + 1;
|
|
38
|
+
if (lineStart === at)
|
|
39
|
+
return { text, cursor: at };
|
|
40
|
+
return {
|
|
41
|
+
text: text.slice(0, lineStart) + text.slice(at),
|
|
42
|
+
cursor: lineStart,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** 删除当前逻辑行从光标到行尾的内容;存在换行时一并删除换行并连接下一行。 */
|
|
46
|
+
export function deleteToLineEndAt(text, cursor) {
|
|
47
|
+
const at = clampCursor(text, cursor);
|
|
48
|
+
const newline = text.indexOf('\n', at);
|
|
49
|
+
if (newline < 0) {
|
|
50
|
+
return at === text.length ? { text, cursor: at } : { text: text.slice(0, at), cursor: at };
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
text: text.slice(0, at) + text.slice(newline + 1),
|
|
54
|
+
cursor: at,
|
|
55
|
+
};
|
|
56
|
+
}
|