@actalk/inkos 1.1.1 → 1.2.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/LICENSE +661 -21
- package/dist/commands/interact.d.ts +25 -0
- package/dist/commands/interact.d.ts.map +1 -0
- package/dist/commands/interact.js +73 -0
- package/dist/commands/interact.js.map +1 -0
- package/dist/commands/revise.d.ts.map +1 -1
- package/dist/commands/revise.js +4 -1
- package/dist/commands/revise.js.map +1 -1
- package/dist/commands/studio.d.ts +5 -0
- package/dist/commands/studio.d.ts.map +1 -1
- package/dist/commands/studio.js +23 -1
- package/dist/commands/studio.js.map +1 -1
- package/dist/commands/tui.d.ts +6 -0
- package/dist/commands/tui.d.ts.map +1 -0
- package/dist/commands/tui.js +14 -0
- package/dist/commands/tui.js.map +1 -0
- package/dist/commands/write.js +65 -1
- package/dist/commands/write.js.map +1 -1
- package/dist/index.js +2 -63
- package/dist/index.js.map +1 -1
- package/dist/localization.d.ts +0 -1
- package/dist/localization.d.ts.map +1 -1
- package/dist/localization.js +0 -6
- package/dist/localization.js.map +1 -1
- package/dist/program.d.ts +10 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +85 -0
- package/dist/program.js.map +1 -0
- package/dist/tui/activity-state.d.ts +10 -0
- package/dist/tui/activity-state.d.ts.map +1 -0
- package/dist/tui/activity-state.js +27 -0
- package/dist/tui/activity-state.js.map +1 -0
- package/dist/tui/ansi.d.ts +40 -0
- package/dist/tui/ansi.d.ts.map +1 -0
- package/dist/tui/ansi.js +62 -0
- package/dist/tui/ansi.js.map +1 -0
- package/dist/tui/app.d.ts +103 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +134 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/chat-depth.d.ts +9 -0
- package/dist/tui/chat-depth.d.ts.map +1 -0
- package/dist/tui/chat-depth.js +12 -0
- package/dist/tui/chat-depth.js.map +1 -0
- package/dist/tui/chat-draft.d.ts +4 -0
- package/dist/tui/chat-draft.d.ts.map +1 -0
- package/dist/tui/chat-draft.js +28 -0
- package/dist/tui/chat-draft.js.map +1 -0
- package/dist/tui/composer-caret.d.ts +10 -0
- package/dist/tui/composer-caret.d.ts.map +1 -0
- package/dist/tui/composer-caret.js +13 -0
- package/dist/tui/composer-caret.js.map +1 -0
- package/dist/tui/composer-display.d.ts +7 -0
- package/dist/tui/composer-display.d.ts.map +1 -0
- package/dist/tui/composer-display.js +17 -0
- package/dist/tui/composer-display.js.map +1 -0
- package/dist/tui/dashboard-model.d.ts +45 -0
- package/dist/tui/dashboard-model.d.ts.map +1 -0
- package/dist/tui/dashboard-model.js +101 -0
- package/dist/tui/dashboard-model.js.map +1 -0
- package/dist/tui/dashboard.d.ts +38 -0
- package/dist/tui/dashboard.d.ts.map +1 -0
- package/dist/tui/dashboard.js +320 -0
- package/dist/tui/dashboard.js.map +1 -0
- package/dist/tui/effects.d.ts +61 -0
- package/dist/tui/effects.d.ts.map +1 -0
- package/dist/tui/effects.js +459 -0
- package/dist/tui/effects.js.map +1 -0
- package/dist/tui/i18n.d.ts +69 -0
- package/dist/tui/i18n.d.ts.map +1 -0
- package/dist/tui/i18n.js +239 -0
- package/dist/tui/i18n.js.map +1 -0
- package/dist/tui/input-history.d.ts +12 -0
- package/dist/tui/input-history.d.ts.map +1 -0
- package/dist/tui/input-history.js +47 -0
- package/dist/tui/input-history.js.map +1 -0
- package/dist/tui/local-commands.d.ts +5 -0
- package/dist/tui/local-commands.d.ts.map +1 -0
- package/dist/tui/local-commands.js +43 -0
- package/dist/tui/local-commands.js.map +1 -0
- package/dist/tui/output.d.ts +11 -0
- package/dist/tui/output.d.ts.map +1 -0
- package/dist/tui/output.js +24 -0
- package/dist/tui/output.js.map +1 -0
- package/dist/tui/session-store.d.ts +2 -0
- package/dist/tui/session-store.d.ts.map +1 -0
- package/dist/tui/session-store.js +2 -0
- package/dist/tui/session-store.js.map +1 -0
- package/dist/tui/setup.d.ts +49 -0
- package/dist/tui/setup.d.ts.map +1 -0
- package/dist/tui/setup.js +268 -0
- package/dist/tui/setup.js.map +1 -0
- package/dist/tui/slash-autocomplete.d.ts +6 -0
- package/dist/tui/slash-autocomplete.d.ts.map +1 -0
- package/dist/tui/slash-autocomplete.js +50 -0
- package/dist/tui/slash-autocomplete.js.map +1 -0
- package/dist/tui/theme.d.ts +11 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +13 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/tui/tools.d.ts +15 -0
- package/dist/tui/tools.d.ts.map +1 -0
- package/dist/tui/tools.js +17 -0
- package/dist/tui/tools.js.map +1 -0
- package/package.json +12 -7
package/dist/tui/i18n.js
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
const ZH_CN = {
|
|
2
|
+
locale: "zh-CN",
|
|
3
|
+
labels: {
|
|
4
|
+
project: "项目",
|
|
5
|
+
book: "作品",
|
|
6
|
+
depth: "深度",
|
|
7
|
+
session: "会话",
|
|
8
|
+
messageCount: (count) => `${count} 条消息`,
|
|
9
|
+
stage: "阶段",
|
|
10
|
+
mode: "模式",
|
|
11
|
+
model: "模型",
|
|
12
|
+
error: "错误",
|
|
13
|
+
recent: "最近",
|
|
14
|
+
pending: "待确认",
|
|
15
|
+
draft: "草稿",
|
|
16
|
+
ready: "就绪",
|
|
17
|
+
none: "无",
|
|
18
|
+
notConfigured: "未配置",
|
|
19
|
+
unknown: "未知",
|
|
20
|
+
},
|
|
21
|
+
modeLabels: {
|
|
22
|
+
auto: "自动",
|
|
23
|
+
semi: "半自动",
|
|
24
|
+
manual: "手动",
|
|
25
|
+
},
|
|
26
|
+
composer: {
|
|
27
|
+
placeholder: "告诉 InkOS 要写什么、修改什么,或解释什么…",
|
|
28
|
+
emptyConversation: "先告诉 InkOS 你要做什么。",
|
|
29
|
+
helper: "回车发送 • /new • /draft • /create • /write • /books • /open • /mode • /depth • /help",
|
|
30
|
+
submitting: "处理中…",
|
|
31
|
+
failed: "上次请求失败",
|
|
32
|
+
ready: "就绪",
|
|
33
|
+
},
|
|
34
|
+
notes: {
|
|
35
|
+
help: "可用命令:/new、/draft、/create、/discard、/write、/books、/open、/mode、/rewrite、/focus、/truth、/rename、/replace、/export、/status、/clear、/depth、/quit。也支持直接输入自然语言。",
|
|
36
|
+
status: (stage, mode) => `当前状态:${stage}(${mode})。`,
|
|
37
|
+
config: "当前 Ink 仪表盘里还不支持交互式 /config。请使用 inkos config set-global。",
|
|
38
|
+
depthSet: (depthLabel) => `思考深度已切换为 ${depthLabel}。`,
|
|
39
|
+
noLlmConfig: "未发现 LLM 配置。",
|
|
40
|
+
setupProvider: "先配置 API 提供方。",
|
|
41
|
+
toolInitFailed: (message) => `初始化 TUI 工具失败:${message}`,
|
|
42
|
+
toolInitHint: "请检查 .env,或运行:inkos config set-global",
|
|
43
|
+
},
|
|
44
|
+
roles: {
|
|
45
|
+
user: "你",
|
|
46
|
+
assistant: "InkOS",
|
|
47
|
+
system: "系统",
|
|
48
|
+
},
|
|
49
|
+
activity: {
|
|
50
|
+
thinking: "思考中",
|
|
51
|
+
checking: "检查中",
|
|
52
|
+
writing: "写作中",
|
|
53
|
+
reviewing: "审阅中",
|
|
54
|
+
updating: "更新中",
|
|
55
|
+
},
|
|
56
|
+
stageLabels: {
|
|
57
|
+
completed: "已完成",
|
|
58
|
+
failed: "失败",
|
|
59
|
+
blocked: "已阻塞",
|
|
60
|
+
waitingHuman: "等待你的决定",
|
|
61
|
+
pausedByUser: "已由用户暂停",
|
|
62
|
+
readyToContinue: "可继续执行",
|
|
63
|
+
},
|
|
64
|
+
depthLabels: {
|
|
65
|
+
light: "轻量",
|
|
66
|
+
normal: "标准",
|
|
67
|
+
deep: "深入",
|
|
68
|
+
},
|
|
69
|
+
results: {
|
|
70
|
+
modeSwitched: (mode) => `已切换到 ${mode} 模式。`,
|
|
71
|
+
booksListed: "已列出作品。",
|
|
72
|
+
activeBook: (bookId) => `当前作品:${bookId}`,
|
|
73
|
+
completed: (intent) => `已完成 ${intent}`,
|
|
74
|
+
intentLabels: {
|
|
75
|
+
write_next: "已写完下一章",
|
|
76
|
+
revise_chapter: "已修订章节",
|
|
77
|
+
rewrite_chapter: "已重写章节",
|
|
78
|
+
update_focus: "已更新焦点",
|
|
79
|
+
explain_status: "状态说明",
|
|
80
|
+
explain_failure: "失败说明",
|
|
81
|
+
pause_book: "已暂停作品",
|
|
82
|
+
rename_entity: "已重命名实体",
|
|
83
|
+
patch_chapter_text: "已修补正文",
|
|
84
|
+
edit_truth: "已更新真相文件",
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
const EN = {
|
|
89
|
+
locale: "en",
|
|
90
|
+
labels: {
|
|
91
|
+
project: "Project",
|
|
92
|
+
book: "Book",
|
|
93
|
+
depth: "Depth",
|
|
94
|
+
session: "Session",
|
|
95
|
+
messageCount: (count) => `${count} msgs`,
|
|
96
|
+
stage: "Stage",
|
|
97
|
+
mode: "Mode",
|
|
98
|
+
model: "Model",
|
|
99
|
+
error: "Error",
|
|
100
|
+
recent: "Recent",
|
|
101
|
+
pending: "Pending",
|
|
102
|
+
draft: "Draft",
|
|
103
|
+
ready: "Ready",
|
|
104
|
+
none: "none",
|
|
105
|
+
notConfigured: "not configured",
|
|
106
|
+
unknown: "unknown",
|
|
107
|
+
},
|
|
108
|
+
modeLabels: {
|
|
109
|
+
auto: "auto",
|
|
110
|
+
semi: "semi",
|
|
111
|
+
manual: "manual",
|
|
112
|
+
},
|
|
113
|
+
composer: {
|
|
114
|
+
placeholder: "Ask InkOS to write, revise, or explain…",
|
|
115
|
+
emptyConversation: "Start by asking InkOS what to do.",
|
|
116
|
+
helper: "Enter to send • /new • /draft • /create • /write • /books • /open • /mode • /depth • /help",
|
|
117
|
+
submitting: "Submitting…",
|
|
118
|
+
failed: "Last request failed",
|
|
119
|
+
ready: "Ready",
|
|
120
|
+
},
|
|
121
|
+
notes: {
|
|
122
|
+
help: "Commands: /new, /draft, /create, /discard, /write, /books, /open, /mode, /rewrite, /focus, /truth, /rename, /replace, /export, /status, /clear, /depth, /quit. Natural language still works.",
|
|
123
|
+
status: (stage, mode) => `Status: ${stage} (${mode}).`,
|
|
124
|
+
config: "Interactive /config is not available inside the Ink dashboard yet. Use inkos config set-global.",
|
|
125
|
+
depthSet: (depthLabel) => `Thinking depth set to ${depthLabel}.`,
|
|
126
|
+
noLlmConfig: "No LLM configuration found.",
|
|
127
|
+
setupProvider: "Let's set up your API provider first.",
|
|
128
|
+
toolInitFailed: (message) => `Failed to initialize TUI tools: ${message}`,
|
|
129
|
+
toolInitHint: "Check your .env or run: inkos config set-global",
|
|
130
|
+
},
|
|
131
|
+
roles: {
|
|
132
|
+
user: "You",
|
|
133
|
+
assistant: "InkOS",
|
|
134
|
+
system: "System",
|
|
135
|
+
},
|
|
136
|
+
activity: {
|
|
137
|
+
thinking: "thinking",
|
|
138
|
+
checking: "checking",
|
|
139
|
+
writing: "writing",
|
|
140
|
+
reviewing: "reviewing",
|
|
141
|
+
updating: "updating",
|
|
142
|
+
},
|
|
143
|
+
stageLabels: {
|
|
144
|
+
completed: "completed",
|
|
145
|
+
failed: "failed",
|
|
146
|
+
blocked: "blocked",
|
|
147
|
+
waitingHuman: "waiting for your decision",
|
|
148
|
+
pausedByUser: "paused by user",
|
|
149
|
+
readyToContinue: "ready to continue",
|
|
150
|
+
},
|
|
151
|
+
depthLabels: {
|
|
152
|
+
light: "light",
|
|
153
|
+
normal: "normal",
|
|
154
|
+
deep: "deep",
|
|
155
|
+
},
|
|
156
|
+
results: {
|
|
157
|
+
modeSwitched: (mode) => `Mode switched to ${mode}.`,
|
|
158
|
+
booksListed: "Books listed.",
|
|
159
|
+
activeBook: (bookId) => `Active book: ${bookId}`,
|
|
160
|
+
completed: (intent) => `Completed ${intent}`,
|
|
161
|
+
intentLabels: {
|
|
162
|
+
write_next: "Chapter written",
|
|
163
|
+
revise_chapter: "Chapter revised",
|
|
164
|
+
rewrite_chapter: "Chapter rewritten",
|
|
165
|
+
update_focus: "Focus updated",
|
|
166
|
+
explain_status: "Status",
|
|
167
|
+
explain_failure: "Explanation",
|
|
168
|
+
pause_book: "Book paused",
|
|
169
|
+
rename_entity: "Entity renamed",
|
|
170
|
+
patch_chapter_text: "Text patched",
|
|
171
|
+
edit_truth: "Truth file updated",
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
export function resolveTuiLocale(env = process.env, preferredLanguage) {
|
|
176
|
+
const requested = normalizeLocale(env.INKOS_TUI_LOCALE ?? env.INKOS_LOCALE);
|
|
177
|
+
if (requested) {
|
|
178
|
+
return requested;
|
|
179
|
+
}
|
|
180
|
+
const preferred = normalizeLocale(preferredLanguage);
|
|
181
|
+
if (preferred) {
|
|
182
|
+
return preferred;
|
|
183
|
+
}
|
|
184
|
+
const detected = normalizeLocale(env.LC_ALL ?? env.LC_MESSAGES ?? env.LANG);
|
|
185
|
+
return detected ?? "zh-CN";
|
|
186
|
+
}
|
|
187
|
+
export function getTuiCopy(locale) {
|
|
188
|
+
return locale === "en" ? EN : ZH_CN;
|
|
189
|
+
}
|
|
190
|
+
export function normalizeStageLabel(label, copy) {
|
|
191
|
+
const normalized = label.trim().toLowerCase();
|
|
192
|
+
if (!normalized) {
|
|
193
|
+
return label;
|
|
194
|
+
}
|
|
195
|
+
const replacements = [
|
|
196
|
+
[/^thinking\b/i, copy.activity.thinking],
|
|
197
|
+
[/^checking\b/i, copy.activity.checking],
|
|
198
|
+
[/^writing\b/i, copy.activity.writing],
|
|
199
|
+
[/^reviewing\b/i, copy.activity.reviewing],
|
|
200
|
+
[/^updating\b/i, copy.activity.updating],
|
|
201
|
+
[/^completed\b/i, copy.stageLabels.completed],
|
|
202
|
+
[/^failed\b/i, copy.stageLabels.failed],
|
|
203
|
+
[/^blocked\b/i, copy.stageLabels.blocked],
|
|
204
|
+
[/^waiting_human\b/i, copy.stageLabels.waitingHuman],
|
|
205
|
+
[/^paused by user\b/i, copy.stageLabels.pausedByUser],
|
|
206
|
+
[/^ready to continue\b/i, copy.stageLabels.readyToContinue],
|
|
207
|
+
];
|
|
208
|
+
for (const [pattern, value] of replacements) {
|
|
209
|
+
if (pattern.test(label)) {
|
|
210
|
+
// For English, keep the original label (already in English);
|
|
211
|
+
// for other locales, use the translated value
|
|
212
|
+
return copy.locale === "en" ? label : value;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (normalized === "idle") {
|
|
216
|
+
return copy.labels.ready;
|
|
217
|
+
}
|
|
218
|
+
return label;
|
|
219
|
+
}
|
|
220
|
+
export function formatModeLabel(mode, copy) {
|
|
221
|
+
return copy.modeLabels[mode] ?? mode;
|
|
222
|
+
}
|
|
223
|
+
function normalizeLocale(value) {
|
|
224
|
+
if (!value) {
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
const normalized = value.trim().toLowerCase();
|
|
228
|
+
if (!normalized || normalized === "auto") {
|
|
229
|
+
return undefined;
|
|
230
|
+
}
|
|
231
|
+
if (normalized.startsWith("zh")) {
|
|
232
|
+
return "zh-CN";
|
|
233
|
+
}
|
|
234
|
+
if (normalized.startsWith("en")) {
|
|
235
|
+
return "en";
|
|
236
|
+
}
|
|
237
|
+
return undefined;
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/tui/i18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { InteractionMessage } from "@actalk/inkos-core";
|
|
2
|
+
export interface InputHistoryState {
|
|
3
|
+
readonly cursor: number | null;
|
|
4
|
+
readonly draft: string;
|
|
5
|
+
}
|
|
6
|
+
export type InputHistoryDirection = "up" | "down";
|
|
7
|
+
export declare function buildInputHistory(messages: ReadonlyArray<InteractionMessage>): string[];
|
|
8
|
+
export declare function moveHistoryCursor(entries: ReadonlyArray<string>, state: InputHistoryState, currentValue: string, direction: InputHistoryDirection): {
|
|
9
|
+
state: InputHistoryState;
|
|
10
|
+
value: string;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=input-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-history.d.ts","sourceRoot":"","sources":["../../src/tui/input-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,MAAM,CAAC;AAElD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,MAAM,EAAE,CAgBvF;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,qBAAqB,GAC/B;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoC7C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export function buildInputHistory(messages) {
|
|
2
|
+
const result = [];
|
|
3
|
+
for (const message of messages) {
|
|
4
|
+
if (message.role !== "user") {
|
|
5
|
+
continue;
|
|
6
|
+
}
|
|
7
|
+
const value = message.content.trim();
|
|
8
|
+
if (!value || result[result.length - 1] === value) {
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
result.push(value);
|
|
12
|
+
}
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
export function moveHistoryCursor(entries, state, currentValue, direction) {
|
|
16
|
+
if (entries.length === 0) {
|
|
17
|
+
return { state, value: currentValue };
|
|
18
|
+
}
|
|
19
|
+
if (direction === "up") {
|
|
20
|
+
if (state.cursor === null) {
|
|
21
|
+
return {
|
|
22
|
+
state: { cursor: entries.length - 1, draft: currentValue },
|
|
23
|
+
value: entries[entries.length - 1],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const nextCursor = Math.max(0, state.cursor - 1);
|
|
27
|
+
return {
|
|
28
|
+
state: { ...state, cursor: nextCursor },
|
|
29
|
+
value: entries[nextCursor],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (state.cursor === null) {
|
|
33
|
+
return { state, value: currentValue };
|
|
34
|
+
}
|
|
35
|
+
if (state.cursor >= entries.length - 1) {
|
|
36
|
+
return {
|
|
37
|
+
state: { cursor: null, draft: state.draft },
|
|
38
|
+
value: state.draft,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const nextCursor = state.cursor + 1;
|
|
42
|
+
return {
|
|
43
|
+
state: { ...state, cursor: nextCursor },
|
|
44
|
+
value: entries[nextCursor],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=input-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-history.js","sourceRoot":"","sources":["../../src/tui/input-history.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,iBAAiB,CAAC,QAA2C;IAC3E,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAA8B,EAC9B,KAAwB,EACxB,YAAoB,EACpB,SAAgC;IAEhC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO;gBACL,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC1D,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE;aACpC,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,OAAO;YACL,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE;YACvC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAE;SAC5B,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;YAC3C,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,OAAO;QACL,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE;QACvC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAE;KAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChatDepth } from "./chat-depth.js";
|
|
2
|
+
export type LocalTuiCommand = "help" | "status" | "quit" | "clear" | "config";
|
|
3
|
+
export declare function classifyLocalTuiCommand(input: string): LocalTuiCommand | undefined;
|
|
4
|
+
export declare function parseDepthCommand(input: string): ChatDepth | undefined;
|
|
5
|
+
//# sourceMappingURL=local-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-commands.d.ts","sourceRoot":"","sources":["../../src/tui/local-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAwBlF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAwBtE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export function classifyLocalTuiCommand(input) {
|
|
2
|
+
const value = input.trim();
|
|
3
|
+
if (/^\/help$/i.test(value) || /^(help|帮助)$/i.test(value)) {
|
|
4
|
+
return "help";
|
|
5
|
+
}
|
|
6
|
+
if (/^\/status$/i.test(value) || /^(status|状态)$/i.test(value)) {
|
|
7
|
+
return "status";
|
|
8
|
+
}
|
|
9
|
+
if (/^\/clear$/i.test(value) || /^清屏$/i.test(value)) {
|
|
10
|
+
return "clear";
|
|
11
|
+
}
|
|
12
|
+
if (/^\/config$/i.test(value) || /^(config|配置)$/i.test(value)) {
|
|
13
|
+
return "config";
|
|
14
|
+
}
|
|
15
|
+
if (/^\/quit$/i.test(value) || /^\/exit$/i.test(value) || /^(quit|exit|bye|退出)$/i.test(value)) {
|
|
16
|
+
return "quit";
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
export function parseDepthCommand(input) {
|
|
21
|
+
const value = input.trim().toLowerCase();
|
|
22
|
+
const englishMatch = value.match(/^\/?depth\s+(light|normal|deep)$/);
|
|
23
|
+
if (englishMatch?.[1]) {
|
|
24
|
+
return englishMatch[1];
|
|
25
|
+
}
|
|
26
|
+
const chineseMatch = input.trim().match(/^\/?深度\s+(浅|轻量|标准|普通|深|深入)$/);
|
|
27
|
+
if (!chineseMatch?.[1]) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
switch (chineseMatch[1]) {
|
|
31
|
+
case "浅":
|
|
32
|
+
case "轻量":
|
|
33
|
+
return "light";
|
|
34
|
+
case "深":
|
|
35
|
+
case "深入":
|
|
36
|
+
return "deep";
|
|
37
|
+
case "标准":
|
|
38
|
+
case "普通":
|
|
39
|
+
default:
|
|
40
|
+
return "normal";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=local-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-commands.js","sourceRoot":"","sources":["../../src/tui/local-commands.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9F,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACrE,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC,CAAC,CAAc,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,CAAC;QACT,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG,CAAC;QACT,KAAK,IAAI;YACP,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI,CAAC;QACV,KAAK,IAAI,CAAC;QACV;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AutomationMode, ExecutionStatus, InteractionIntentType } from "@actalk/inkos-core";
|
|
2
|
+
import { type TuiLocale } from "./i18n.js";
|
|
3
|
+
export declare function formatTuiResult(params: {
|
|
4
|
+
readonly intent: InteractionIntentType;
|
|
5
|
+
readonly status: ExecutionStatus;
|
|
6
|
+
readonly bookId?: string;
|
|
7
|
+
readonly mode?: AutomationMode;
|
|
8
|
+
readonly responseText?: string;
|
|
9
|
+
readonly locale?: TuiLocale;
|
|
10
|
+
}): string;
|
|
11
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/tui/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAiD,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE1F,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B,GAAG,MAAM,CAwBT"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { formatModeLabel, getTuiCopy, resolveTuiLocale } from "./i18n.js";
|
|
2
|
+
export function formatTuiResult(params) {
|
|
3
|
+
const copy = getTuiCopy(params.locale ?? resolveTuiLocale());
|
|
4
|
+
if (params.responseText?.trim()) {
|
|
5
|
+
return params.responseText.trim();
|
|
6
|
+
}
|
|
7
|
+
if (params.intent === "switch_mode" && params.mode) {
|
|
8
|
+
return copy.results.modeSwitched(formatModeLabel(params.mode, copy));
|
|
9
|
+
}
|
|
10
|
+
if (params.intent === "list_books") {
|
|
11
|
+
return copy.results.booksListed;
|
|
12
|
+
}
|
|
13
|
+
if (params.intent === "select_book" && params.bookId) {
|
|
14
|
+
return copy.results.activeBook(params.bookId);
|
|
15
|
+
}
|
|
16
|
+
if (params.bookId) {
|
|
17
|
+
return `${intentLabel(params.intent, copy)} — ${params.bookId}`;
|
|
18
|
+
}
|
|
19
|
+
return intentLabel(params.intent, copy);
|
|
20
|
+
}
|
|
21
|
+
function intentLabel(intent, copy) {
|
|
22
|
+
return copy.results.intentLabels[intent] ?? copy.results.completed(intent);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/tui/output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAkB,MAAM,WAAW,CAAC;AAE1F,MAAM,UAAU,eAAe,CAAC,MAO/B;IACC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAE7D,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,MAA6B,EAAE,IAAmC;IACrF,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/tui/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/tui/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type TuiLocale } from "./i18n.js";
|
|
2
|
+
interface SetupResult {
|
|
3
|
+
readonly projectRoot: string;
|
|
4
|
+
readonly hasLlmConfig: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface InteractiveSetupCopy {
|
|
7
|
+
readonly title: string;
|
|
8
|
+
readonly subtitle: string;
|
|
9
|
+
readonly steps: {
|
|
10
|
+
readonly provider: string;
|
|
11
|
+
readonly baseUrl: string;
|
|
12
|
+
readonly apiKey: string;
|
|
13
|
+
readonly model: string;
|
|
14
|
+
readonly scope: string;
|
|
15
|
+
};
|
|
16
|
+
readonly hints: {
|
|
17
|
+
readonly provider: string;
|
|
18
|
+
readonly baseUrl: string;
|
|
19
|
+
readonly model: string;
|
|
20
|
+
readonly scope: string;
|
|
21
|
+
};
|
|
22
|
+
readonly defaults: {
|
|
23
|
+
readonly provider: string;
|
|
24
|
+
readonly baseUrl: string;
|
|
25
|
+
readonly scope: string;
|
|
26
|
+
};
|
|
27
|
+
readonly scopeChoices: {
|
|
28
|
+
readonly global: string;
|
|
29
|
+
readonly project: string;
|
|
30
|
+
};
|
|
31
|
+
readonly savedTo: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function buildInteractiveSetupCopy(locale: TuiLocale): InteractiveSetupCopy;
|
|
34
|
+
export declare function buildAutoInitMessages(projectName: string, locale: TuiLocale): {
|
|
35
|
+
readonly initializing: string;
|
|
36
|
+
readonly initialized: string;
|
|
37
|
+
readonly envTemplateHeader: string;
|
|
38
|
+
};
|
|
39
|
+
export declare function ensureProject(cwd: string): Promise<SetupResult>;
|
|
40
|
+
export declare function interactiveLlmSetup(projectRoot: string): Promise<void>;
|
|
41
|
+
export interface ModelInfo {
|
|
42
|
+
readonly provider: string;
|
|
43
|
+
readonly model: string;
|
|
44
|
+
readonly baseUrl: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function detectModelInfo(projectRoot: string): Promise<ModelInfo | undefined>;
|
|
47
|
+
export declare function detectProjectLanguage(projectRoot: string): Promise<string | undefined>;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/tui/setup.ts"],"names":[],"mappings":"AAUA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAK7D,UAAU,WAAW;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,CA0DjF;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG;IAC7E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC,CAcA;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAUrE;AAED,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Ef;AAiFD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAOzF;AAED,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ5F"}
|