@quatcode/agent 0.1.2 → 0.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 +21 -0
- package/README.md +57 -0
- package/dist/args.d.ts +13 -1
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +25 -5
- package/dist/args.js.map +1 -1
- package/dist/cli.js +130 -98
- package/dist/cli.js.map +1 -1
- package/dist/clipboard.d.ts +5 -0
- package/dist/clipboard.d.ts.map +1 -0
- package/dist/clipboard.js +82 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +1 -7
- package/dist/gate.js.map +1 -1
- package/dist/input.d.ts +56 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +283 -0
- package/dist/input.js.map +1 -0
- package/dist/keyboard.d.ts +68 -0
- package/dist/keyboard.d.ts.map +1 -0
- package/dist/keyboard.js +390 -0
- package/dist/keyboard.js.map +1 -0
- package/dist/logo.d.ts +16 -0
- package/dist/logo.d.ts.map +1 -0
- package/dist/logo.js +131 -0
- package/dist/logo.js.map +1 -0
- package/dist/markdown.d.ts +14 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +244 -0
- package/dist/markdown.js.map +1 -0
- package/dist/mcp.d.ts +19 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +206 -0
- package/dist/mcp.js.map +1 -0
- package/dist/models.d.ts +24 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +188 -0
- package/dist/models.js.map +1 -0
- package/dist/picker.d.ts +40 -0
- package/dist/picker.d.ts.map +1 -0
- package/dist/picker.js +156 -0
- package/dist/picker.js.map +1 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +3 -1
- package/dist/render.js.map +1 -1
- package/dist/screen.d.ts +28 -0
- package/dist/screen.d.ts.map +1 -0
- package/dist/screen.js +114 -0
- package/dist/screen.js.map +1 -0
- package/dist/skills.d.ts +21 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +173 -0
- package/dist/skills.js.map +1 -0
- package/dist/store.d.ts +31 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +192 -1
- package/dist/store.js.map +1 -1
- package/dist/theme.d.ts +86 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +315 -0
- package/dist/theme.js.map +1 -0
- package/dist/tui.d.ts +16 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +2456 -0
- package/dist/tui.js.map +1 -0
- package/dist/turn.d.ts +45 -0
- package/dist/turn.d.ts.map +1 -0
- package/dist/turn.js +198 -0
- package/dist/turn.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +13 -0
- package/dist/version.js.map +1 -0
- package/package.json +22 -6
package/dist/skills.js
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { mkdir, readFile, readdir, rm, stat, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { storeRoot } from "./store.js";
|
|
4
|
+
export function skillsRoot() {
|
|
5
|
+
return path.join(storeRoot(), "skills");
|
|
6
|
+
}
|
|
7
|
+
export function slugify(name) {
|
|
8
|
+
const slug = name
|
|
9
|
+
.trim()
|
|
10
|
+
.toLowerCase()
|
|
11
|
+
.replace(/[^\p{L}\p{N}]+/gu, "-")
|
|
12
|
+
.replace(/^-+|-+$/g, "")
|
|
13
|
+
.slice(0, 64);
|
|
14
|
+
return slug || "skill";
|
|
15
|
+
}
|
|
16
|
+
export function parseSkill(content, fallbackName = "") {
|
|
17
|
+
const clean = content.replace(/^\uFEFF/, "").replace(/\r\n?/g, "\n");
|
|
18
|
+
let frontmatterName = "";
|
|
19
|
+
let description = "";
|
|
20
|
+
let body = clean;
|
|
21
|
+
const frontmatter = /^---\n([\s\S]*?)\n---\n?/.exec(clean);
|
|
22
|
+
if (frontmatter) {
|
|
23
|
+
body = clean.slice(frontmatter[0].length);
|
|
24
|
+
for (const line of (frontmatter[1] ?? "").split("\n")) {
|
|
25
|
+
const match = /^([a-zA-Z_-]+)\s*:\s*(.+)$/.exec(line.trim());
|
|
26
|
+
if (!match)
|
|
27
|
+
continue;
|
|
28
|
+
const key = (match[1] ?? "").toLowerCase();
|
|
29
|
+
const value = (match[2] ?? "").trim().replace(/^["']|["']$/g, "");
|
|
30
|
+
if (key === "name" && value)
|
|
31
|
+
frontmatterName = value;
|
|
32
|
+
if (key === "description" && value)
|
|
33
|
+
description = value;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
let headingName = "";
|
|
37
|
+
for (const line of body.split("\n")) {
|
|
38
|
+
const trimmed = line.trim();
|
|
39
|
+
if (!trimmed)
|
|
40
|
+
continue;
|
|
41
|
+
const heading = /^#\s+(.+)$/.exec(trimmed);
|
|
42
|
+
if (heading) {
|
|
43
|
+
if (!headingName)
|
|
44
|
+
headingName = (heading[1] ?? "").trim();
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (!description)
|
|
48
|
+
description = trimmed;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
if (description.length > 200)
|
|
52
|
+
description = `${description.slice(0, 197)}…`;
|
|
53
|
+
const name = frontmatterName || headingName || fallbackName;
|
|
54
|
+
return { name, description };
|
|
55
|
+
}
|
|
56
|
+
export async function listSkills() {
|
|
57
|
+
const root = skillsRoot();
|
|
58
|
+
let entries = [];
|
|
59
|
+
try {
|
|
60
|
+
entries = await readdir(root);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
const skills = [];
|
|
66
|
+
for (const entry of entries) {
|
|
67
|
+
const dir = path.join(root, entry);
|
|
68
|
+
const file = path.join(dir, "SKILL.md");
|
|
69
|
+
try {
|
|
70
|
+
const info = await stat(file);
|
|
71
|
+
if (!info.isFile())
|
|
72
|
+
continue;
|
|
73
|
+
const content = await readFile(file, "utf8");
|
|
74
|
+
const parsed = parseSkill(content, entry);
|
|
75
|
+
skills.push({
|
|
76
|
+
name: parsed.name || entry,
|
|
77
|
+
slug: entry,
|
|
78
|
+
description: parsed.description,
|
|
79
|
+
path: file,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
87
|
+
return skills;
|
|
88
|
+
}
|
|
89
|
+
export async function saveSkill(name, content) {
|
|
90
|
+
const slug = slugify(name);
|
|
91
|
+
const dir = path.join(skillsRoot(), slug);
|
|
92
|
+
await mkdir(dir, { recursive: true });
|
|
93
|
+
const file = path.join(dir, "SKILL.md");
|
|
94
|
+
const text = content.replace(/^\uFEFF/, "").replace(/\r\n?/g, "\n");
|
|
95
|
+
await writeFile(file, text.endsWith("\n") ? text : `${text}\n`, "utf8");
|
|
96
|
+
const parsed = parseSkill(text, name);
|
|
97
|
+
return {
|
|
98
|
+
name: parsed.name || name,
|
|
99
|
+
slug,
|
|
100
|
+
description: parsed.description,
|
|
101
|
+
path: file,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export async function importSkillFile(sourcePath) {
|
|
105
|
+
const resolved = path.resolve(sourcePath);
|
|
106
|
+
const content = await readFile(resolved, "utf8");
|
|
107
|
+
const base = path.basename(resolved).replace(/\.(md|markdown|txt)$/i, "");
|
|
108
|
+
const parsed = parseSkill(content, base);
|
|
109
|
+
return saveSkill(parsed.name || base, content);
|
|
110
|
+
}
|
|
111
|
+
export async function fetchSkillFromUrl(url) {
|
|
112
|
+
const res = await fetch(url, { signal: AbortSignal.timeout(15000) });
|
|
113
|
+
if (!res.ok)
|
|
114
|
+
throw new Error(`download failed: ${res.status} ${res.statusText}`);
|
|
115
|
+
const content = await res.text();
|
|
116
|
+
const base = decodeURIComponent(path.basename(new URL(url).pathname)).replace(/\.(md|markdown|txt)$/i, "");
|
|
117
|
+
const parsed = parseSkill(content, base);
|
|
118
|
+
return saveSkill(parsed.name || base || "skill", content);
|
|
119
|
+
}
|
|
120
|
+
export async function removeSkill(nameOrSlug) {
|
|
121
|
+
const skills = await listSkills();
|
|
122
|
+
const needle = nameOrSlug.trim().toLowerCase();
|
|
123
|
+
const target = skills.find((skill) => skill.slug === needle) ??
|
|
124
|
+
skills.find((skill) => skill.name.toLowerCase() === needle) ??
|
|
125
|
+
skills.find((skill) => skill.slug === slugify(nameOrSlug));
|
|
126
|
+
if (!target)
|
|
127
|
+
return null;
|
|
128
|
+
await rm(path.join(skillsRoot(), target.slug), { recursive: true, force: true });
|
|
129
|
+
return target;
|
|
130
|
+
}
|
|
131
|
+
export function skillsSystemSection(skills) {
|
|
132
|
+
if (skills.length === 0)
|
|
133
|
+
return "";
|
|
134
|
+
return [
|
|
135
|
+
"# skills",
|
|
136
|
+
"Reusable skills are available in this environment. When the user's task matches one of them, call the load_skill tool with the skill name to read its full instructions, then follow them.",
|
|
137
|
+
...skills.map((skill) => `- ${skill.name}${skill.description ? ` — ${skill.description}` : ""}`),
|
|
138
|
+
].join("\n");
|
|
139
|
+
}
|
|
140
|
+
export function createLoadSkillTool() {
|
|
141
|
+
return {
|
|
142
|
+
name: "load_skill",
|
|
143
|
+
description: "Load the full instructions of a skill by name. Call this when the current task matches a skill listed in the system prompt's skills section.",
|
|
144
|
+
inputSchema: {
|
|
145
|
+
type: "object",
|
|
146
|
+
properties: {
|
|
147
|
+
name: {
|
|
148
|
+
type: "string",
|
|
149
|
+
description: "Skill name exactly as listed in the skills section.",
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
required: ["name"],
|
|
153
|
+
},
|
|
154
|
+
async execute(input) {
|
|
155
|
+
const name = typeof input.name === "string" ? input.name.trim() : "";
|
|
156
|
+
if (!name)
|
|
157
|
+
return { content: "name is required", isError: true };
|
|
158
|
+
const skills = await listSkills();
|
|
159
|
+
const target = skills.find((skill) => skill.slug === slugify(name)) ??
|
|
160
|
+
skills.find((skill) => skill.name.toLowerCase() === name.toLowerCase());
|
|
161
|
+
if (!target) {
|
|
162
|
+
const available = skills.map((skill) => skill.name).join(", ");
|
|
163
|
+
return {
|
|
164
|
+
content: `Unknown skill: ${name}.${available ? ` Available skills: ${available}` : " No skills are installed."}`,
|
|
165
|
+
isError: true,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
const content = await readFile(target.path, "utf8");
|
|
169
|
+
return { content };
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type { AgentEvent, AgentStatus, Usage } from "@quatcode/core";
|
|
1
|
+
import type { AgentEvent, AgentStatus, ChatMessage, Usage } from "@quatcode/core";
|
|
2
|
+
import type { McpServerConfig } from "@quatcode/tools";
|
|
2
3
|
export type SessionRecord = {
|
|
3
4
|
id: string;
|
|
4
5
|
createdAt: string;
|
|
5
6
|
cwd: string;
|
|
6
7
|
task: string;
|
|
8
|
+
title?: string;
|
|
9
|
+
pinned?: boolean;
|
|
7
10
|
model: string;
|
|
8
11
|
status: AgentStatus;
|
|
9
12
|
steps: number;
|
|
@@ -13,11 +16,38 @@ export type SessionRecord = {
|
|
|
13
16
|
text: string | null;
|
|
14
17
|
error?: string;
|
|
15
18
|
events: AgentEvent[];
|
|
19
|
+
conversationId?: string;
|
|
20
|
+
messages?: ChatMessage[];
|
|
21
|
+
};
|
|
22
|
+
export type CliConfig = {
|
|
23
|
+
provider?: string;
|
|
24
|
+
model?: string;
|
|
25
|
+
effort?: string;
|
|
26
|
+
theme?: string;
|
|
27
|
+
keys?: Record<string, string>;
|
|
28
|
+
mcp?: Record<string, McpServerConfig>;
|
|
29
|
+
updatedAt?: string;
|
|
16
30
|
};
|
|
17
31
|
export declare function storeRoot(): string;
|
|
18
32
|
export declare function historyFile(): string;
|
|
33
|
+
export declare function configFile(): string;
|
|
34
|
+
export declare function loadConfig(): Promise<CliConfig>;
|
|
35
|
+
export declare function saveConfig(config: CliConfig): Promise<void>;
|
|
19
36
|
export declare function makeSessionId(): string;
|
|
20
37
|
export declare function saveSession(record: SessionRecord): Promise<void>;
|
|
38
|
+
export declare function deleteSession(id: string): Promise<boolean>;
|
|
39
|
+
export declare function updateConversation(key: string, patch: {
|
|
40
|
+
title?: string | null;
|
|
41
|
+
pinned?: boolean;
|
|
42
|
+
}): Promise<number>;
|
|
43
|
+
export declare function deleteConversation(key: string): Promise<number>;
|
|
21
44
|
export declare function listSessions(limit?: number): Promise<SessionRecord[]>;
|
|
45
|
+
export declare function listSessionsForDir(dir: string, limit?: number): Promise<SessionRecord[]>;
|
|
22
46
|
export declare function getSession(id: string): Promise<SessionRecord | null>;
|
|
47
|
+
export declare function conversationKey(record: SessionRecord): string;
|
|
48
|
+
export declare function sameDir(a: string | undefined, b: string | undefined): boolean;
|
|
49
|
+
export declare function latestPerConversation(records: SessionRecord[]): SessionRecord[];
|
|
50
|
+
export declare function sortConversations(records: SessionRecord[]): SessionRecord[];
|
|
51
|
+
export declare function displayTitle(record: SessionRecord): string;
|
|
52
|
+
export declare function messagesForStorage(messages: readonly ChatMessage[]): ChatMessage[];
|
|
23
53
|
//# sourceMappingURL=store.d.ts.map
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomBytes } from "node:crypto";
|
|
2
|
-
import { mkdir, readFile, appendFile } from "node:fs/promises";
|
|
2
|
+
import { mkdir, readFile, appendFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
export function storeRoot() {
|
|
@@ -8,6 +8,24 @@ export function storeRoot() {
|
|
|
8
8
|
export function historyFile() {
|
|
9
9
|
return path.join(storeRoot(), "history", "sessions.jsonl");
|
|
10
10
|
}
|
|
11
|
+
export function configFile() {
|
|
12
|
+
return path.join(storeRoot(), "config.json");
|
|
13
|
+
}
|
|
14
|
+
export async function loadConfig() {
|
|
15
|
+
try {
|
|
16
|
+
const raw = (await readFile(configFile(), "utf8")).replace(/^\uFEFF/, "");
|
|
17
|
+
return JSON.parse(raw);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export async function saveConfig(config) {
|
|
24
|
+
const file = configFile();
|
|
25
|
+
await mkdir(path.dirname(file), { recursive: true });
|
|
26
|
+
const payload = { ...config, updatedAt: new Date().toISOString() };
|
|
27
|
+
await writeFile(file, `${JSON.stringify(payload, null, 2)}\n`, "utf8");
|
|
28
|
+
}
|
|
11
29
|
export function makeSessionId() {
|
|
12
30
|
const d = new Date();
|
|
13
31
|
const pad = (n) => String(n).padStart(2, "0");
|
|
@@ -19,6 +37,115 @@ export async function saveSession(record) {
|
|
|
19
37
|
await mkdir(path.dirname(file), { recursive: true });
|
|
20
38
|
await appendFile(file, `${JSON.stringify(record)}\n`, "utf8");
|
|
21
39
|
}
|
|
40
|
+
export async function deleteSession(id) {
|
|
41
|
+
const file = historyFile();
|
|
42
|
+
let raw = "";
|
|
43
|
+
try {
|
|
44
|
+
raw = await readFile(file, "utf8");
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const kept = [];
|
|
50
|
+
let removed = false;
|
|
51
|
+
for (const line of raw.split("\n")) {
|
|
52
|
+
const trimmed = line.trim();
|
|
53
|
+
if (!trimmed)
|
|
54
|
+
continue;
|
|
55
|
+
try {
|
|
56
|
+
const record = JSON.parse(trimmed);
|
|
57
|
+
if (record.id === id) {
|
|
58
|
+
removed = true;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// keep corrupted lines untouched
|
|
64
|
+
}
|
|
65
|
+
kept.push(trimmed);
|
|
66
|
+
}
|
|
67
|
+
if (!removed)
|
|
68
|
+
return false;
|
|
69
|
+
await writeFile(file, kept.length > 0 ? `${kept.join("\n")}\n` : "", "utf8");
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
export async function updateConversation(key, patch) {
|
|
73
|
+
const file = historyFile();
|
|
74
|
+
let raw = "";
|
|
75
|
+
try {
|
|
76
|
+
raw = await readFile(file, "utf8");
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return 0;
|
|
80
|
+
}
|
|
81
|
+
const kept = [];
|
|
82
|
+
let updated = 0;
|
|
83
|
+
for (const line of raw.split("\n")) {
|
|
84
|
+
const trimmed = line.trim();
|
|
85
|
+
if (!trimmed)
|
|
86
|
+
continue;
|
|
87
|
+
try {
|
|
88
|
+
const record = JSON.parse(trimmed);
|
|
89
|
+
if (conversationKey(record) === key) {
|
|
90
|
+
if (patch.title !== undefined) {
|
|
91
|
+
if (patch.title === null)
|
|
92
|
+
delete record.title;
|
|
93
|
+
else
|
|
94
|
+
record.title = patch.title;
|
|
95
|
+
}
|
|
96
|
+
if (patch.pinned !== undefined) {
|
|
97
|
+
if (patch.pinned)
|
|
98
|
+
record.pinned = true;
|
|
99
|
+
else
|
|
100
|
+
delete record.pinned;
|
|
101
|
+
}
|
|
102
|
+
kept.push(JSON.stringify(record));
|
|
103
|
+
updated += 1;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// keep corrupted lines untouched
|
|
109
|
+
}
|
|
110
|
+
kept.push(trimmed);
|
|
111
|
+
}
|
|
112
|
+
if (updated === 0)
|
|
113
|
+
return 0;
|
|
114
|
+
await writeFile(file, kept.length > 0 ? `${kept.join("\n")}\n` : "", "utf8");
|
|
115
|
+
return updated;
|
|
116
|
+
}
|
|
117
|
+
export async function deleteConversation(key) {
|
|
118
|
+
const file = historyFile();
|
|
119
|
+
let raw = "";
|
|
120
|
+
try {
|
|
121
|
+
raw = await readFile(file, "utf8");
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return 0;
|
|
125
|
+
}
|
|
126
|
+
const kept = [];
|
|
127
|
+
let removed = 0;
|
|
128
|
+
for (const line of raw.split("\n")) {
|
|
129
|
+
const trimmed = line.trim();
|
|
130
|
+
if (!trimmed)
|
|
131
|
+
continue;
|
|
132
|
+
try {
|
|
133
|
+
const record = JSON.parse(trimmed);
|
|
134
|
+
if (conversationKey(record) === key) {
|
|
135
|
+
removed += 1;
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
// keep corrupted lines untouched
|
|
141
|
+
}
|
|
142
|
+
kept.push(trimmed);
|
|
143
|
+
}
|
|
144
|
+
if (removed === 0)
|
|
145
|
+
return 0;
|
|
146
|
+
await writeFile(file, kept.length > 0 ? `${kept.join("\n")}\n` : "", "utf8");
|
|
147
|
+
return removed;
|
|
148
|
+
}
|
|
22
149
|
export async function listSessions(limit = 10) {
|
|
23
150
|
const file = historyFile();
|
|
24
151
|
let raw = "";
|
|
@@ -43,6 +170,10 @@ export async function listSessions(limit = 10) {
|
|
|
43
170
|
records.reverse();
|
|
44
171
|
return records.slice(0, limit);
|
|
45
172
|
}
|
|
173
|
+
export async function listSessionsForDir(dir, limit = 40) {
|
|
174
|
+
const records = await listSessions(Number.MAX_SAFE_INTEGER);
|
|
175
|
+
return records.filter((record) => sameDir(record.cwd, dir)).slice(0, limit);
|
|
176
|
+
}
|
|
46
177
|
export async function getSession(id) {
|
|
47
178
|
const file = historyFile();
|
|
48
179
|
let raw = "";
|
|
@@ -67,4 +198,64 @@ export async function getSession(id) {
|
|
|
67
198
|
}
|
|
68
199
|
return null;
|
|
69
200
|
}
|
|
201
|
+
export function conversationKey(record) {
|
|
202
|
+
return record.conversationId ?? record.id;
|
|
203
|
+
}
|
|
204
|
+
export function sameDir(a, b) {
|
|
205
|
+
if (!a || !b)
|
|
206
|
+
return false;
|
|
207
|
+
const left = path.resolve(a);
|
|
208
|
+
const right = path.resolve(b);
|
|
209
|
+
return process.platform === "win32"
|
|
210
|
+
? left.toLowerCase() === right.toLowerCase()
|
|
211
|
+
: left === right;
|
|
212
|
+
}
|
|
213
|
+
export function latestPerConversation(records) {
|
|
214
|
+
const seen = new Set();
|
|
215
|
+
const out = [];
|
|
216
|
+
for (const record of records) {
|
|
217
|
+
const key = conversationKey(record);
|
|
218
|
+
if (seen.has(key))
|
|
219
|
+
continue;
|
|
220
|
+
seen.add(key);
|
|
221
|
+
out.push(record);
|
|
222
|
+
}
|
|
223
|
+
return out;
|
|
224
|
+
}
|
|
225
|
+
export function sortConversations(records) {
|
|
226
|
+
const pinned = [];
|
|
227
|
+
const rest = [];
|
|
228
|
+
for (const record of records) {
|
|
229
|
+
if (record.pinned)
|
|
230
|
+
pinned.push(record);
|
|
231
|
+
else
|
|
232
|
+
rest.push(record);
|
|
233
|
+
}
|
|
234
|
+
return [...pinned, ...rest];
|
|
235
|
+
}
|
|
236
|
+
export function displayTitle(record) {
|
|
237
|
+
const title = record.title?.trim();
|
|
238
|
+
if (title)
|
|
239
|
+
return title;
|
|
240
|
+
return record.task.replace(/\s+/g, " ").trim() || "(untitled)";
|
|
241
|
+
}
|
|
242
|
+
export function messagesForStorage(messages) {
|
|
243
|
+
return messages.map((message) => {
|
|
244
|
+
if (message.role === "tool") {
|
|
245
|
+
const content = message.content.length > 4000
|
|
246
|
+
? `${message.content.slice(0, 4000)}\n… [truncated in history]`
|
|
247
|
+
: message.content;
|
|
248
|
+
return { ...message, content, images: undefined };
|
|
249
|
+
}
|
|
250
|
+
if (message.role === "assistant") {
|
|
251
|
+
return {
|
|
252
|
+
...message,
|
|
253
|
+
content: message.content.map((part) => part.type === "text" && part.text.length > 8000
|
|
254
|
+
? { ...part, text: `${part.text.slice(0, 8000)}\n… [truncated in history]` }
|
|
255
|
+
: part),
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
return { ...message };
|
|
259
|
+
});
|
|
260
|
+
}
|
|
70
261
|
//# sourceMappingURL=store.js.map
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export type Palette = {
|
|
2
|
+
void: string;
|
|
3
|
+
ink: string;
|
|
4
|
+
panel: string;
|
|
5
|
+
graphite: string;
|
|
6
|
+
steel: string;
|
|
7
|
+
mist: string;
|
|
8
|
+
silver: string;
|
|
9
|
+
bone: string;
|
|
10
|
+
red: string;
|
|
11
|
+
amber: string;
|
|
12
|
+
accent: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const palette: Palette;
|
|
15
|
+
export type ThemeDefinition = {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
bg: string;
|
|
19
|
+
fg: string;
|
|
20
|
+
accent: string;
|
|
21
|
+
border?: string;
|
|
22
|
+
selection?: string;
|
|
23
|
+
secondary?: string;
|
|
24
|
+
silver?: string;
|
|
25
|
+
mist?: string;
|
|
26
|
+
steel?: string;
|
|
27
|
+
graphite?: string;
|
|
28
|
+
};
|
|
29
|
+
export declare const THEMES: ThemeDefinition[];
|
|
30
|
+
export declare function getThemes(): ThemeDefinition[];
|
|
31
|
+
export declare function activeThemeId(): string;
|
|
32
|
+
export declare function setTheme(id: string): ThemeDefinition;
|
|
33
|
+
export declare function buildColorRemap(before: Palette, after: Palette): Array<[string, string]>;
|
|
34
|
+
export declare function remapColors(text: string, pairs: Array<[string, string]>): string;
|
|
35
|
+
export declare function setColor(enabled: boolean): void;
|
|
36
|
+
export declare function colorOn(): boolean;
|
|
37
|
+
export declare function hexToRgb(hex: string): [number, number, number];
|
|
38
|
+
export declare function fg(hex: string, text: string): string;
|
|
39
|
+
export declare function bg(hex: string, text: string): string;
|
|
40
|
+
export declare function bold(text: string): string;
|
|
41
|
+
export declare function dim(text: string): string;
|
|
42
|
+
export declare function italic(text: string): string;
|
|
43
|
+
export declare function underline(text: string): string;
|
|
44
|
+
export declare const tone: {
|
|
45
|
+
bone: (t: string) => string;
|
|
46
|
+
silver: (t: string) => string;
|
|
47
|
+
mist: (t: string) => string;
|
|
48
|
+
steel: (t: string) => string;
|
|
49
|
+
red: (t: string) => string;
|
|
50
|
+
amber: (t: string) => string;
|
|
51
|
+
accent: (t: string) => string;
|
|
52
|
+
onBone: (t: string) => string;
|
|
53
|
+
onGraphite: (t: string) => string;
|
|
54
|
+
code: (t: string) => string;
|
|
55
|
+
};
|
|
56
|
+
export declare function stripAnsi(text: string): string;
|
|
57
|
+
export declare function stringWidth(text: string): number;
|
|
58
|
+
export declare function padEndTo(text: string, width: number): string;
|
|
59
|
+
export declare function padStartTo(text: string, width: number): string;
|
|
60
|
+
export declare function clipAnsi(text: string, max: number): string;
|
|
61
|
+
export declare function truncate(text: string, max: number): string;
|
|
62
|
+
export declare function divider(width: number): string;
|
|
63
|
+
export declare function usableWidth(out: NodeJS.WriteStream): number;
|
|
64
|
+
export declare const glyphs: {
|
|
65
|
+
prompt: string;
|
|
66
|
+
diamond: string;
|
|
67
|
+
diamondOpen: string;
|
|
68
|
+
check: string;
|
|
69
|
+
cross: string;
|
|
70
|
+
bullet: string;
|
|
71
|
+
pin: string;
|
|
72
|
+
arrow: string;
|
|
73
|
+
ellipsis: string;
|
|
74
|
+
spinner: string[];
|
|
75
|
+
box: {
|
|
76
|
+
tl: string;
|
|
77
|
+
tr: string;
|
|
78
|
+
bl: string;
|
|
79
|
+
br: string;
|
|
80
|
+
h: string;
|
|
81
|
+
v: string;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
export declare const toolGlyphs: Record<string, string>;
|
|
85
|
+
export declare function toolGlyph(tool: string): string;
|
|
86
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|