@falkenslab/agent-kit 0.15.0 → 0.16.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 +3 -1
- package/assets/knowledge-plugin/.claude-plugin/plugin.json +1 -1
- package/assets/knowledge-plugin/commands/ingest.md +1 -1
- package/assets/knowledge-plugin/commands/lint.md +1 -1
- package/assets/knowledge-plugin/skills/knowledge-ingest/SKILL.md +13 -19
- package/assets/knowledge-plugin/skills/knowledge-lint/SKILL.md +18 -14
- package/assets/knowledge-plugin/skills/knowledge-query/SKILL.md +5 -5
- package/assets/knowledge-plugin-files/.claude-plugin/plugin.json +4 -0
- package/assets/knowledge-plugin-files/commands/ingest.md +7 -0
- package/assets/knowledge-plugin-files/commands/lint.md +5 -0
- package/assets/knowledge-plugin-files/commands/query.md +5 -0
- package/assets/knowledge-plugin-files/skills/knowledge-ingest/SKILL.md +46 -0
- package/assets/knowledge-plugin-files/skills/knowledge-lint/SKILL.md +26 -0
- package/assets/knowledge-plugin-files/skills/knowledge-query/SKILL.md +14 -0
- package/dist/core/agentSpec.d.ts +27 -2
- package/dist/core/extractText.d.ts +13 -0
- package/dist/core/extractText.js +147 -0
- package/dist/core/fileKnowledgeStore.d.ts +10 -0
- package/dist/core/fileKnowledgeStore.js +395 -0
- package/dist/core/hooks/fileScopeGate.d.ts +8 -0
- package/dist/core/hooks/fileScopeGate.js +20 -0
- package/dist/core/hooks/humanInput.d.ts +18 -0
- package/dist/core/hooks/humanInput.js +30 -2
- package/dist/core/hooks/planGate.js +14 -5
- package/dist/core/hooks/stepGate.js +6 -0
- package/dist/core/interaction.d.ts +20 -0
- package/dist/core/knowledge.d.ts +14 -4
- package/dist/core/knowledge.js +36 -6
- package/dist/core/knowledgeStore.d.ts +139 -0
- package/dist/core/knowledgeStore.js +84 -0
- package/dist/core/messages/de.js +65 -1
- package/dist/core/messages/en.d.ts +39 -0
- package/dist/core/messages/en.js +65 -1
- package/dist/core/messages/es.js +65 -1
- package/dist/core/messages/fr.js +65 -1
- package/dist/core/modeControl.d.ts +36 -0
- package/dist/core/modeControl.js +61 -0
- package/dist/core/session.d.ts +6 -31
- package/dist/core/session.js +81 -71
- package/dist/core/sources.d.ts +122 -0
- package/dist/core/sources.js +312 -0
- package/dist/core/todos.d.ts +23 -0
- package/dist/core/todos.js +33 -0
- package/dist/core/toolLabels.d.ts +1 -1
- package/dist/core/toolLabels.js +42 -2
- package/dist/core/tools/humanApproval.d.ts +9 -5
- package/dist/core/tools/humanApproval.js +39 -7
- package/dist/core/tools/knowledgeTools.d.ts +16 -0
- package/dist/core/tools/knowledgeTools.js +168 -0
- package/dist/core/tools/saveToSources.d.ts +27 -8
- package/dist/core/tools/saveToSources.js +217 -55
- package/dist/core/tools/time.d.ts +29 -0
- package/dist/core/tools/time.js +129 -0
- package/dist/core/version.d.ts +5 -0
- package/dist/core/version.js +12 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.js +5 -1
- package/dist/tui/chatTui.js +14 -1
- package/dist/tui/consoleRenderer.js +16 -2
- package/dist/tui/ink/SessionView.js +67 -17
- package/dist/tui/ink/inkInteraction.d.ts +4 -2
- package/dist/tui/ink/inkInteraction.js +20 -2
- package/dist/tui/ink/runChatInk.js +5 -0
- package/dist/tui/ink/sessionModel.d.ts +3 -0
- package/dist/tui/ink/sessionModel.js +14 -1
- package/dist/tui/terminalInteraction.js +2 -0
- package/package.json +31 -1
- /package/assets/{knowledge-plugin → knowledge-plugin-files}/skills/knowledge-pages/SKILL.md +0 -0
package/dist/core/knowledge.js
CHANGED
|
@@ -8,26 +8,56 @@ import { fileURLToPath } from "node:url";
|
|
|
8
8
|
* with its own page types (topics, activities...) opts out with `AgentSpec.knowledgeBase: false` and
|
|
9
9
|
* writes its own rules, or extends these.
|
|
10
10
|
*/
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Absolute path of the plugin shipped with the kit, next to `dist/` (or `src/` under tsx):
|
|
13
|
+
* `assets/knowledge-plugin`, whose skills work through the `knowledge_*` tools, or with
|
|
14
|
+
* `"files"` `assets/knowledge-plugin-files`, whose skills work on the files (ADR-024).
|
|
15
|
+
*/
|
|
16
|
+
export function knowledgePluginRoot(variant = "tools") {
|
|
17
|
+
return path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "assets", variant === "files" ? "knowledge-plugin-files" : "knowledge-plugin");
|
|
14
18
|
}
|
|
15
19
|
/** A path as shown to the model: relative to the project, forward slashes, with a trailing slash. */
|
|
16
20
|
function shown(projectDir, dir) {
|
|
17
21
|
return `${path.relative(projectDir, dir).split(path.sep).join("/")}/`;
|
|
18
22
|
}
|
|
23
|
+
/** The originals' line of the prompt section, the same in both variants. */
|
|
24
|
+
function originalsLine(originals) {
|
|
25
|
+
return `- **Originals (read-only for you)**: \`${originals}\`. Never rewrite one; build pages *about* them. \`list_sources\` says which are new (not ingested yet), changed since their ingest or missing; add a file only with \`save_to_sources\`, \`download_to_sources\` or by asking the person (\`request_file\`), and take out a wrong or superseded one only with \`retire_source\`. \`Read\` reads PDFs and images; \`extract_text\` reads DOCX, PPTX (with speaker notes) and XLSX.\n`;
|
|
26
|
+
}
|
|
27
|
+
/** The section for a knowledge base reached through the `knowledge_*` tools (ADR-024). */
|
|
28
|
+
function toolsSection(originals, pageTypes) {
|
|
29
|
+
return `## Knowledge base
|
|
30
|
+
Your memory across sessions is an interlinked knowledge base of pages that you write and maintain yourself — a wiki, not a pile of notes. A future session only knows what is written there, so anything worth remembering must end up in a page, not just in this turn's reply. You reach it only through the \`knowledge_*\` tools. Write page content in the language you are using with the human.
|
|
31
|
+
|
|
32
|
+
### Layers
|
|
33
|
+
${originals ? originalsLine(originals) : ""}- **The knowledge base**: pages identified by type and slug (\`concept/spring-tides\`), plus the \`overview\`, a living synthesis of the whole, and the \`log\` of what was done to it (\`knowledge_read\` reads both). Page types: ${pageTypes.map((type) => `\`${type.type}\` (${type.description})`).join("; ")}.
|
|
34
|
+
- **The schema**: these rules plus the \`knowledge-ingest\`, \`knowledge-query\` and \`knowledge-lint\` skills. \`knowledge_create\` without content gives a type's template.
|
|
35
|
+
|
|
36
|
+
### Working rules
|
|
37
|
+
- Start from \`knowledge_search\` or \`knowledge_index\`, then \`knowledge_read\` only the pages the task needs.
|
|
38
|
+
- Link pages by id, \`[Spring tides](concept/spring-tides)\`; links must point to existing pages. The index and the backlinks ("linked from") are kept for you.
|
|
39
|
+
- Change a page with \`knowledge_edit\` (a fragment); \`knowledge_rewrite\` only to redo it whole. Pages are never deleted or renamed: \`knowledge_supersede\` one replaced by another; \`knowledge_retire\` one that was wrong.
|
|
40
|
+
- When an operation is done, \`knowledge_log\` it: \`ingest\`, \`query\`, \`lint\` or \`update\`, with the pages touched.
|
|
41
|
+
- Every claim must be traceable to a summary page, an original, or — clearly labelled as outside the knowledge base — the web.
|
|
42
|
+
- Contradictions are kept, not overwritten: record both versions with attribution in the affected pages.
|
|
43
|
+
- Short, focused, well-linked pages beat long ones: when a page mixes two things, split it.`;
|
|
44
|
+
}
|
|
19
45
|
/**
|
|
20
46
|
* The "Knowledge base" section appended to the system prompt: the layout and the working
|
|
21
|
-
* rules.
|
|
47
|
+
* rules. With `tools` (the kit's default since ADR-024), for a knowledge base reached through
|
|
48
|
+
* the `knowledge_*` tools, listing `pageTypes`; otherwise for one kept with the file tools,
|
|
49
|
+
* whose page templates live in the `knowledge-pages` skill.
|
|
22
50
|
*/
|
|
23
|
-
export function knowledgePromptSection(projectDir, knowledgeDir, sourcesDir) {
|
|
51
|
+
export function knowledgePromptSection(projectDir, knowledgeDir, sourcesDir, options = {}) {
|
|
24
52
|
const notes = shown(projectDir, knowledgeDir);
|
|
25
53
|
const originals = sourcesDir ? shown(projectDir, sourcesDir) : undefined;
|
|
54
|
+
if (options.tools)
|
|
55
|
+
return toolsSection(originals, options.pageTypes ?? []);
|
|
26
56
|
return `## Knowledge base (${notes})
|
|
27
57
|
\`${notes}\` is your memory across sessions, kept as an interlinked knowledge base of markdown pages that you write and maintain yourself — a wiki, not a pile of notes. A future session only knows what is written there, so anything worth remembering must end up in a page, not just in this turn's reply. Write page content in the language you are using with the human; file names stay lowercase ASCII with hyphens.
|
|
28
58
|
|
|
29
59
|
### Layers
|
|
30
|
-
${originals ?
|
|
60
|
+
${originals ? originalsLine(originals) : ""}- **The knowledge base**: \`${notes}\`, entirely yours to write.
|
|
31
61
|
- **The schema**: these rules plus the \`knowledge-pages\` skill (exact template of every page type — load it before creating a page) and the \`knowledge-ingest\`, \`knowledge-query\` and \`knowledge-lint\` skills.
|
|
32
62
|
|
|
33
63
|
### Layout
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The knowledge base as pages, not files (ADR-024): the agent reaches it only through the
|
|
3
|
+
* kit's `knowledge_*` tools, which sit on this interface, so the storage can change (markdown
|
|
4
|
+
* files today, a vector database tomorrow) without touching the tools, the prompt or the
|
|
5
|
+
* skills. A page is identified by its type and slug, `concept/bowline`, and links between
|
|
6
|
+
* pages use that id too: `[Bowline](concept/bowline)`.
|
|
7
|
+
*/
|
|
8
|
+
/** A kind of page: the kit's four, or one an agent declares (`AgentSpec.knowledgePageTypes`). */
|
|
9
|
+
export interface PageType {
|
|
10
|
+
/** Its name, lowercase: `concept`, `topic`. Page ids start with it. */
|
|
11
|
+
type: string;
|
|
12
|
+
/** Where a file store keeps its pages, relative to the knowledge folder; "" for the root. */
|
|
13
|
+
dir: string;
|
|
14
|
+
/** Its section in the index, e.g. "Concepts". */
|
|
15
|
+
indexSection: string;
|
|
16
|
+
/** What it holds and when to create one, in one line: told to the model. */
|
|
17
|
+
description: string;
|
|
18
|
+
/** The page's body skeleton (markdown, under its title), shown when one is created. */
|
|
19
|
+
template: string;
|
|
20
|
+
/** Frontmatter fields shown in the page's index line, e.g. `["mastery"]`. */
|
|
21
|
+
indexFields?: string[];
|
|
22
|
+
}
|
|
23
|
+
/** One page, as the store returns it. */
|
|
24
|
+
export interface KnowledgePage {
|
|
25
|
+
id: string;
|
|
26
|
+
type: string;
|
|
27
|
+
slug: string;
|
|
28
|
+
title: string;
|
|
29
|
+
/** Frontmatter fields besides type and title (aliases, file, url, updated, status...). */
|
|
30
|
+
fields: Record<string, string>;
|
|
31
|
+
/** The markdown body, links to other pages as ids. */
|
|
32
|
+
content: string;
|
|
33
|
+
/** The pages that link to this one. */
|
|
34
|
+
linkedFrom: string[];
|
|
35
|
+
}
|
|
36
|
+
/** A page's line in a listing. */
|
|
37
|
+
export interface PageInfo {
|
|
38
|
+
id: string;
|
|
39
|
+
type: string;
|
|
40
|
+
title: string;
|
|
41
|
+
/** One line: its `description` field, or its first sentence. */
|
|
42
|
+
description: string;
|
|
43
|
+
/** `active`, `superseded` or `retired`. */
|
|
44
|
+
status: string;
|
|
45
|
+
fields: Record<string, string>;
|
|
46
|
+
}
|
|
47
|
+
export interface SearchHit {
|
|
48
|
+
id: string;
|
|
49
|
+
title: string;
|
|
50
|
+
/** Where it matched, one line. */
|
|
51
|
+
snippet: string;
|
|
52
|
+
}
|
|
53
|
+
/** What `check()` finds: the mechanical problems, for the agent to fix or report. */
|
|
54
|
+
export interface CheckReport {
|
|
55
|
+
/** Links to pages that don't exist. */
|
|
56
|
+
brokenLinks: {
|
|
57
|
+
page: string;
|
|
58
|
+
target: string;
|
|
59
|
+
}[];
|
|
60
|
+
/** Pages nothing links to (summaries and syntheses aside, which the index reaches). */
|
|
61
|
+
orphans: string[];
|
|
62
|
+
/** Links to retired pages. */
|
|
63
|
+
linksToRetired: {
|
|
64
|
+
page: string;
|
|
65
|
+
target: string;
|
|
66
|
+
}[];
|
|
67
|
+
/** Summary pages whose original is gone from the sources folder. */
|
|
68
|
+
missingOriginals: {
|
|
69
|
+
page: string;
|
|
70
|
+
file: string;
|
|
71
|
+
}[];
|
|
72
|
+
}
|
|
73
|
+
/** A page to create. */
|
|
74
|
+
export interface NewPage {
|
|
75
|
+
type: string;
|
|
76
|
+
slug: string;
|
|
77
|
+
title: string;
|
|
78
|
+
content: string;
|
|
79
|
+
fields?: FieldChanges;
|
|
80
|
+
}
|
|
81
|
+
/** A change to a page's frontmatter fields: a string sets it, null removes it. */
|
|
82
|
+
export type FieldChanges = Record<string, string | null>;
|
|
83
|
+
/**
|
|
84
|
+
* Where the knowledge base lives. The kit ships one over markdown files
|
|
85
|
+
* (`createFileKnowledgeStore()`); another one (a database, a vector store) implements this
|
|
86
|
+
* interface and is passed with `AgentSpec.knowledgeStore`. Pages are never deleted or renamed:
|
|
87
|
+
* their ids are what links point to.
|
|
88
|
+
*/
|
|
89
|
+
export interface KnowledgeStore {
|
|
90
|
+
/** The page types it holds, the kit's and the agent's. */
|
|
91
|
+
types(): readonly PageType[];
|
|
92
|
+
/** Every page but the retired ones. */
|
|
93
|
+
list(): Promise<PageInfo[]>;
|
|
94
|
+
/** A page, retired ones included; `null` if there's none. */
|
|
95
|
+
read(id: string): Promise<KnowledgePage | null>;
|
|
96
|
+
/** A new page; fails if the id exists or a link points nowhere. Returns its id. */
|
|
97
|
+
create(type: string, slug: string, title: string, content: string, fields?: FieldChanges): Promise<string>;
|
|
98
|
+
/**
|
|
99
|
+
* Several new pages at once, whose links may point to each other (a summary and the
|
|
100
|
+
* concepts it feeds): all are created, or none. Returns their ids.
|
|
101
|
+
*/
|
|
102
|
+
createMany(pages: readonly NewPage[]): Promise<string[]>;
|
|
103
|
+
/** Replaces the one occurrence of `oldText` in a page's body; fails if it's missing or appears more than once. */
|
|
104
|
+
edit(id: string, oldText: string, newText: string, fields?: FieldChanges): Promise<void>;
|
|
105
|
+
/** Replaces a page's whole body, keeping its id. */
|
|
106
|
+
rewrite(id: string, content: string, fields?: FieldChanges): Promise<void>;
|
|
107
|
+
/** Marks a page superseded by another, with a notice at its top. */
|
|
108
|
+
supersede(id: string, by: string, reason?: string): Promise<void>;
|
|
109
|
+
/** Takes a page out of the index and the search (it's kept, and can be restored). */
|
|
110
|
+
retire(id: string, reason: string): Promise<void>;
|
|
111
|
+
/** Pages matching words of `query` in their title, aliases or body, best first. */
|
|
112
|
+
search(query: string, limit?: number): Promise<SearchHit[]>;
|
|
113
|
+
/** The catalog: every active or superseded page, one line each, by section. */
|
|
114
|
+
index(): Promise<string>;
|
|
115
|
+
/** Adds an entry to the operation log, dated today. */
|
|
116
|
+
log(operation: string, what: string, pages?: readonly string[]): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* The latest entries of the operation log, newest first, as markdown (e.g. "## [2026-10-04]
|
|
119
|
+
* ingest | …"). Optional: a store without it can't show the log to the agent.
|
|
120
|
+
*/
|
|
121
|
+
recentLog?(limit?: number): Promise<string[]>;
|
|
122
|
+
/** The mechanical problems. */
|
|
123
|
+
check(): Promise<CheckReport>;
|
|
124
|
+
/** The overview: a living synthesis of the whole knowledge base ("" if none yet). */
|
|
125
|
+
overview(): Promise<string>;
|
|
126
|
+
/** Replaces the overview. */
|
|
127
|
+
writeOverview(content: string): Promise<void>;
|
|
128
|
+
}
|
|
129
|
+
/** The kit's page types (ADR-008). */
|
|
130
|
+
export declare const BUILT_IN_PAGE_TYPES: readonly PageType[];
|
|
131
|
+
/** Whether `slug` is lowercase ASCII words joined by hyphens. */
|
|
132
|
+
export declare function isSlug(slug: string): boolean;
|
|
133
|
+
/** `type/slug` split, or null when it isn't one. */
|
|
134
|
+
export declare function parseId(id: string): {
|
|
135
|
+
type: string;
|
|
136
|
+
slug: string;
|
|
137
|
+
} | null;
|
|
138
|
+
/** The ids every `[text](id)` link in `markdown` points to (links that look like page ids). */
|
|
139
|
+
export declare function linkedIds(markdown: string): string[];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The knowledge base as pages, not files (ADR-024): the agent reaches it only through the
|
|
3
|
+
* kit's `knowledge_*` tools, which sit on this interface, so the storage can change (markdown
|
|
4
|
+
* files today, a vector database tomorrow) without touching the tools, the prompt or the
|
|
5
|
+
* skills. A page is identified by its type and slug, `concept/bowline`, and links between
|
|
6
|
+
* pages use that id too: `[Bowline](concept/bowline)`.
|
|
7
|
+
*/
|
|
8
|
+
/** The kit's page types (ADR-008). */
|
|
9
|
+
export const BUILT_IN_PAGE_TYPES = [
|
|
10
|
+
{
|
|
11
|
+
type: "summary",
|
|
12
|
+
dir: "summaries",
|
|
13
|
+
indexSection: "Summaries",
|
|
14
|
+
description: "One per ingested source: what it says, its key points and the pages it feeds. Fields: file (the original, relative to sources/) or url; ingested.",
|
|
15
|
+
template: `## Summary
|
|
16
|
+
<Two to four paragraphs: what it actually says.>
|
|
17
|
+
|
|
18
|
+
## Key points
|
|
19
|
+
- <Claims, definitions or figures likely to be needed later, quoted literally when exact wording matters.>
|
|
20
|
+
|
|
21
|
+
## Pages it feeds
|
|
22
|
+
- [<Concept or entity>](concept/<slug>)
|
|
23
|
+
|
|
24
|
+
## New or surprising
|
|
25
|
+
- <What this source adds to what the knowledge base already had.>
|
|
26
|
+
|
|
27
|
+
## Contradictions
|
|
28
|
+
- <Conflicts with other pages, linked.>`,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: "concept",
|
|
32
|
+
dir: "concepts",
|
|
33
|
+
indexSection: "Concepts",
|
|
34
|
+
description: "One idea per page: its definition, explanation, connections and sources. Fields: aliases (other names, comma-separated).",
|
|
35
|
+
template: `<Definition in one or two sentences.>
|
|
36
|
+
|
|
37
|
+
## Explanation
|
|
38
|
+
<How it works, at the depth the sources give.>
|
|
39
|
+
|
|
40
|
+
## Connections
|
|
41
|
+
- Requires: [<Concept>](concept/<slug>)
|
|
42
|
+
- Related: [<Concept>](concept/<slug>) - how
|
|
43
|
+
|
|
44
|
+
## Sources
|
|
45
|
+
- [<Summary>](summary/<slug>) - what it says about this
|
|
46
|
+
|
|
47
|
+
## Contradictions and open questions
|
|
48
|
+
- "<Source A> says X; <source B> says Y" - both attributed.`,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
type: "entity",
|
|
52
|
+
dir: "entities",
|
|
53
|
+
indexSection: "Entities",
|
|
54
|
+
description: "A concrete thing: a system, component, organization or document (a person only as a public role). Fields: kind, aliases.",
|
|
55
|
+
template: `<What it is, one or two sentences.>
|
|
56
|
+
|
|
57
|
+
## Facts
|
|
58
|
+
- <Attributed facts, each linking the summary it comes from.>
|
|
59
|
+
|
|
60
|
+
## Connections
|
|
61
|
+
- [<Concept or entity>](concept/<slug>) - how`,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: "synthesis",
|
|
65
|
+
dir: "syntheses",
|
|
66
|
+
indexSection: "Syntheses",
|
|
67
|
+
description: "An answer worth keeping: a comparison, an analysis, a report. Fields: question.",
|
|
68
|
+
template: `<The answer, with links to every page it draws on.>`,
|
|
69
|
+
},
|
|
70
|
+
];
|
|
71
|
+
const SLUG = /^[a-z0-9]+(-[a-z0-9]+)*$/;
|
|
72
|
+
/** Whether `slug` is lowercase ASCII words joined by hyphens. */
|
|
73
|
+
export function isSlug(slug) {
|
|
74
|
+
return SLUG.test(slug);
|
|
75
|
+
}
|
|
76
|
+
/** `type/slug` split, or null when it isn't one. */
|
|
77
|
+
export function parseId(id) {
|
|
78
|
+
const match = /^([a-z][a-z0-9-]*)\/([a-z0-9]+(?:-[a-z0-9]+)*)$/.exec(id.trim());
|
|
79
|
+
return match ? { type: match[1], slug: match[2] } : null;
|
|
80
|
+
}
|
|
81
|
+
/** The ids every `[text](id)` link in `markdown` points to (links that look like page ids). */
|
|
82
|
+
export function linkedIds(markdown) {
|
|
83
|
+
return [...markdown.matchAll(/\]\(([a-z][a-z0-9-]*\/[a-z0-9]+(?:-[a-z0-9]+)*)(?:#[^)]*)?\)/g)].map((m) => m[1]);
|
|
84
|
+
}
|
package/dist/core/messages/de.js
CHANGED
|
@@ -54,6 +54,29 @@ export const de = {
|
|
|
54
54
|
parametersLine: (parameters) => `Parameter: ${parameters}`,
|
|
55
55
|
approvalTitle: "Vor dem Veröffentlichen ist eine menschliche Bestätigung nötig",
|
|
56
56
|
summaryLine: (summary) => `Zusammenfassung: ${summary}`,
|
|
57
|
+
noAnswer: "(keine Antwort)",
|
|
58
|
+
textAnswerHint: "Antwort eingeben",
|
|
59
|
+
textAnswerKeys: "Enter zum Senden · Esc für keine Antwort",
|
|
60
|
+
fileRequestTitle: "Der Agent bittet um eine Datei",
|
|
61
|
+
fileRequestQuestion: "Pfad der Datei (hierher ziehen), oder Enter, wenn du sie nicht hast: ",
|
|
62
|
+
retireTitle: "Eine Quelle zurückziehen?",
|
|
63
|
+
retirePageTitle: "Eine Seite der Wissensbasis zurückziehen?",
|
|
64
|
+
choiceQuestion: (multiple) => (multiple ? "Nummern durch Kommas getrennt, oder deine eigene Antwort: " : "Nummer, oder deine eigene Antwort: "),
|
|
65
|
+
otherOption: "Andere (eigene Antwort eingeben)",
|
|
66
|
+
choiceKeys: (multiple) => (multiple ? "Leertaste markiert · Enter sendet" : "↑/↓ wählen · Enter sendet"),
|
|
67
|
+
questionTitle: "Der Agent fragt",
|
|
68
|
+
planTitle: "Der Plan, zur Freigabe",
|
|
69
|
+
runPlan: "Ausführen",
|
|
70
|
+
keepPlanning: "Weiter planen",
|
|
71
|
+
cancelPlan: "Abbrechen",
|
|
72
|
+
planCommentQuestion: "Was soll sich ändern? (Enter zum Überspringen): ",
|
|
73
|
+
retireLines: (source, why, reason, replacedBy, folder) => [
|
|
74
|
+
`Quelle: ${source}`,
|
|
75
|
+
why === "wrong" ? "Warum: sie ist falsch; ihre Zusammenfassung wird zurückgezogen" : "Warum: sie wird ersetzt; ihre Zusammenfassung wird als ersetzt markiert",
|
|
76
|
+
`Grund: ${reason}`,
|
|
77
|
+
...(replacedBy ? [`Ersetzt durch: ${replacedBy}`] : []),
|
|
78
|
+
`Sie wird nach ${folder}.agent-kit/retired/ verschoben, nicht gelöscht.`,
|
|
79
|
+
],
|
|
57
80
|
toolPhrases: {
|
|
58
81
|
Read: ["hat {n} Datei gelesen", "hat {n} Dateien gelesen"],
|
|
59
82
|
Write: ["hat {n} Datei geschrieben", "hat {n} Dateien geschrieben"],
|
|
@@ -66,6 +89,26 @@ export const de = {
|
|
|
66
89
|
Skill: ["hat {n} Skill verwendet", "hat {n} Skills verwendet"],
|
|
67
90
|
Agent: ["hat {n} Subagenten gestartet", "hat {n} Subagenten gestartet"],
|
|
68
91
|
Task: ["hat {n} Subagenten gestartet", "hat {n} Subagenten gestartet"],
|
|
92
|
+
mcp__time__current_time: ["Uhrzeit abgefragt", "Uhrzeit {n}-mal abgefragt"],
|
|
93
|
+
mcp__time__date_math: ["Daten berechnet", "Daten {n}-mal berechnet"],
|
|
94
|
+
mcp__sourceFiles__list_sources: ["Quellen geprüft", "Quellen {n}-mal geprüft"],
|
|
95
|
+
mcp__sourceFiles__extract_text: ["{n} Dokument gelesen", "{n} Dokumente gelesen"],
|
|
96
|
+
mcp__sourceFiles__save_to_sources: ["{n} Quelle gespeichert", "{n} Quellen gespeichert"],
|
|
97
|
+
mcp__sourceFiles__download_to_sources: ["{n} Quelle heruntergeladen", "{n} Quellen heruntergeladen"],
|
|
98
|
+
mcp__sourceFiles__request_file: ["um {n} Datei gebeten", "um {n} Dateien gebeten"],
|
|
99
|
+
mcp__sourceFiles__retire_source: ["{n} Quelle zurückgezogen", "{n} Quellen zurückgezogen"],
|
|
100
|
+
mcp__knowledge__knowledge_index: ["Index gelesen", "Index {n}-mal gelesen"],
|
|
101
|
+
mcp__knowledge__knowledge_search: ["Wissensbasis durchsucht", "Wissensbasis {n}-mal durchsucht"],
|
|
102
|
+
mcp__knowledge__knowledge_read: ["{n} Seite gelesen", "{n} Seiten gelesen"],
|
|
103
|
+
mcp__knowledge__knowledge_create: ["{n} Seite angelegt", "{n} Seiten angelegt"],
|
|
104
|
+
mcp__knowledge__knowledge_edit: ["{n} Seite bearbeitet", "{n} Seiten bearbeitet"],
|
|
105
|
+
mcp__knowledge__knowledge_rewrite: ["{n} Seite neu geschrieben", "{n} Seiten neu geschrieben"],
|
|
106
|
+
mcp__knowledge__knowledge_supersede: ["{n} Seite ersetzt", "{n} Seiten ersetzt"],
|
|
107
|
+
mcp__knowledge__knowledge_retire: ["{n} Seite zurückgezogen", "{n} Seiten zurückgezogen"],
|
|
108
|
+
mcp__knowledge__knowledge_log: ["Protokoll aktualisiert", "Protokoll {n}-mal aktualisiert"],
|
|
109
|
+
mcp__knowledge__knowledge_check: ["Wissensbasis geprüft", "Wissensbasis {n}-mal geprüft"],
|
|
110
|
+
mcp__approvals__ask_human: ["{n} Frage gestellt", "{n} Fragen gestellt"],
|
|
111
|
+
mcp__approvals__present_plan: ["Plan vorgelegt", "Plan {n}-mal vorgelegt"],
|
|
69
112
|
},
|
|
70
113
|
otherTools: ["hat {n} Werkzeug verwendet", "hat {n} Werkzeuge verwendet"],
|
|
71
114
|
noOutput: "(keine Ausgabe)",
|
|
@@ -73,10 +116,13 @@ export const de = {
|
|
|
73
116
|
toolFailed: "Konnte nicht abgeschlossen werden",
|
|
74
117
|
moreResultLines: (count) => `(+${count} ${plural(count, "Zeile", "Zeilen")})`,
|
|
75
118
|
earlierCalls: (count) => `… ${count} frühere`,
|
|
119
|
+
moreTodos: (count) => `… ${count} weitere ${plural(count, "Aufgabe", "Aufgaben")}`,
|
|
76
120
|
labels: {
|
|
77
121
|
askingApproval: (summary) => `Bittet um menschliche Genehmigung: ${summary}`,
|
|
78
122
|
waitingManual: "Wartet auf einen manuellen Eingriff",
|
|
79
|
-
savingToSources: (destination) => `Speichert
|
|
123
|
+
savingToSources: (destination) => `Speichert ${destination} in den Quellen`,
|
|
124
|
+
checkingTime: "Datum und Uhrzeit abfragen",
|
|
125
|
+
calculatingDates: "Daten berechnen",
|
|
80
126
|
reading: (file) => `Liest ${file}`,
|
|
81
127
|
writing: (file) => `Schreibt in ${file}`,
|
|
82
128
|
editing: (file) => `Bearbeitet ${file}`,
|
|
@@ -92,6 +138,24 @@ export const de = {
|
|
|
92
138
|
searchingWeb: (query) => `Sucht im Web nach "${query}"`,
|
|
93
139
|
applyingSkill: (skill) => `Wendet den Skill "${skill}" an`,
|
|
94
140
|
aSkill: "einen Skill",
|
|
141
|
+
updatingTasks: "Aufgabenliste aktualisieren",
|
|
142
|
+
listingSources: "Quellen prüfen",
|
|
143
|
+
extractingText: (source) => `${source} lesen`,
|
|
144
|
+
downloading: (url) => `${url} in die Quellen herunterladen`,
|
|
145
|
+
requestingFile: (description) => `Um eine Datei bitten: ${description}`,
|
|
146
|
+
retiringSource: (source) => `Quelle ${source} zurückziehen`,
|
|
147
|
+
knowledgeIndex: "Index der Wissensbasis lesen",
|
|
148
|
+
knowledgeSearch: (query) => `Wissensbasis nach "${query}" durchsuchen`,
|
|
149
|
+
knowledgeRead: (page) => `${page} lesen`,
|
|
150
|
+
knowledgeCreate: (page) => `${page} anlegen`,
|
|
151
|
+
knowledgeEdit: (page) => `${page} bearbeiten`,
|
|
152
|
+
knowledgeRewrite: (page) => `${page} neu schreiben`,
|
|
153
|
+
knowledgeSupersede: (page) => `${page} als ersetzt markieren`,
|
|
154
|
+
knowledgeRetire: (page) => `${page} zurückziehen`,
|
|
155
|
+
knowledgeLog: "Protokoll der Wissensbasis aktualisieren",
|
|
156
|
+
knowledgeCheck: "Wissensbasis prüfen",
|
|
157
|
+
askingHuman: (question) => `Frage: ${question}`,
|
|
158
|
+
presentingPlan: "Plan vorlegen",
|
|
95
159
|
},
|
|
96
160
|
auth: {
|
|
97
161
|
noToken: "Es wurde kein Claude-Authentifizierungstoken gefunden",
|
|
@@ -51,6 +51,23 @@ export interface Messages {
|
|
|
51
51
|
parametersLine(parameters: string): string;
|
|
52
52
|
approvalTitle: string;
|
|
53
53
|
summaryLine(summary: string): string;
|
|
54
|
+
noAnswer: string;
|
|
55
|
+
textAnswerHint: string;
|
|
56
|
+
textAnswerKeys: string;
|
|
57
|
+
fileRequestTitle: string;
|
|
58
|
+
fileRequestQuestion: string;
|
|
59
|
+
retireTitle: string;
|
|
60
|
+
retirePageTitle: string;
|
|
61
|
+
choiceQuestion(multiple: boolean): string;
|
|
62
|
+
otherOption: string;
|
|
63
|
+
choiceKeys(multiple: boolean): string;
|
|
64
|
+
questionTitle: string;
|
|
65
|
+
planTitle: string;
|
|
66
|
+
runPlan: string;
|
|
67
|
+
keepPlanning: string;
|
|
68
|
+
cancelPlan: string;
|
|
69
|
+
planCommentQuestion: string;
|
|
70
|
+
retireLines(source: string, why: "wrong" | "replaced", reason: string, replacedBy: string | undefined, folder: string): string[];
|
|
54
71
|
toolPhrases: Record<string, ToolPhrase>;
|
|
55
72
|
otherTools: ToolPhrase;
|
|
56
73
|
noOutput: string;
|
|
@@ -59,10 +76,14 @@ export interface Messages {
|
|
|
59
76
|
toolFailed: string;
|
|
60
77
|
moreResultLines(count: number): string;
|
|
61
78
|
earlierCalls(count: number): string;
|
|
79
|
+
/** Tasks of the task list left out of the view. */
|
|
80
|
+
moreTodos(count: number): string;
|
|
62
81
|
labels: {
|
|
63
82
|
askingApproval(summary: string): string;
|
|
64
83
|
waitingManual: string;
|
|
65
84
|
savingToSources(destination: string): string;
|
|
85
|
+
checkingTime: string;
|
|
86
|
+
calculatingDates: string;
|
|
66
87
|
reading(file: string): string;
|
|
67
88
|
writing(file: string): string;
|
|
68
89
|
editing(file: string): string;
|
|
@@ -78,6 +99,24 @@ export interface Messages {
|
|
|
78
99
|
searchingWeb(query: string): string;
|
|
79
100
|
applyingSkill(skill: string): string;
|
|
80
101
|
aSkill: string;
|
|
102
|
+
updatingTasks: string;
|
|
103
|
+
listingSources: string;
|
|
104
|
+
extractingText(source: string): string;
|
|
105
|
+
downloading(url: string): string;
|
|
106
|
+
requestingFile(description: string): string;
|
|
107
|
+
retiringSource(source: string): string;
|
|
108
|
+
knowledgeIndex: string;
|
|
109
|
+
knowledgeSearch(query: string): string;
|
|
110
|
+
knowledgeRead(page: string): string;
|
|
111
|
+
knowledgeCreate(page: string): string;
|
|
112
|
+
knowledgeEdit(page: string): string;
|
|
113
|
+
knowledgeRewrite(page: string): string;
|
|
114
|
+
knowledgeSupersede(page: string): string;
|
|
115
|
+
knowledgeRetire(page: string): string;
|
|
116
|
+
knowledgeLog: string;
|
|
117
|
+
knowledgeCheck: string;
|
|
118
|
+
askingHuman(question: string): string;
|
|
119
|
+
presentingPlan: string;
|
|
81
120
|
};
|
|
82
121
|
auth: {
|
|
83
122
|
noToken: string;
|
package/dist/core/messages/en.js
CHANGED
|
@@ -53,6 +53,29 @@ export const en = {
|
|
|
53
53
|
parametersLine: (parameters) => `Parameters: ${parameters}`,
|
|
54
54
|
approvalTitle: "Human confirmation required before publishing",
|
|
55
55
|
summaryLine: (summary) => `Summary: ${summary}`,
|
|
56
|
+
noAnswer: "(no answer)",
|
|
57
|
+
textAnswerHint: "type the answer",
|
|
58
|
+
textAnswerKeys: "Enter to send · Esc for no answer",
|
|
59
|
+
fileRequestTitle: "The agent asks for a file",
|
|
60
|
+
fileRequestQuestion: "Path of the file (drag it here), or Enter if you don't have it: ",
|
|
61
|
+
retireTitle: "Retire a source?",
|
|
62
|
+
retirePageTitle: "Retire a knowledge base page?",
|
|
63
|
+
choiceQuestion: (multiple) => (multiple ? "Numbers separated by commas, or your own answer: " : "Number, or your own answer: "),
|
|
64
|
+
otherOption: "Other (type your own answer)",
|
|
65
|
+
choiceKeys: (multiple) => (multiple ? "Space to mark · Enter to send" : "↑/↓ choose · Enter to send"),
|
|
66
|
+
questionTitle: "The agent asks",
|
|
67
|
+
planTitle: "The plan, for your approval",
|
|
68
|
+
runPlan: "Run it",
|
|
69
|
+
keepPlanning: "Keep planning",
|
|
70
|
+
cancelPlan: "Cancel",
|
|
71
|
+
planCommentQuestion: "What should change? (Enter to skip): ",
|
|
72
|
+
retireLines: (source, why, reason, replacedBy, folder) => [
|
|
73
|
+
`Source: ${source}`,
|
|
74
|
+
why === "wrong" ? "Why: it's wrong; its summary will be retired" : "Why: it's replaced; its summary will be marked superseded",
|
|
75
|
+
`Reason: ${reason}`,
|
|
76
|
+
...(replacedBy ? [`Replaced by: ${replacedBy}`] : []),
|
|
77
|
+
`It's moved to ${folder}.agent-kit/retired/, not deleted.`,
|
|
78
|
+
],
|
|
56
79
|
toolPhrases: {
|
|
57
80
|
Read: ["read {n} file", "read {n} files"],
|
|
58
81
|
Write: ["wrote {n} file", "wrote {n} files"],
|
|
@@ -65,6 +88,26 @@ export const en = {
|
|
|
65
88
|
Skill: ["used {n} skill", "used {n} skills"],
|
|
66
89
|
Agent: ["ran {n} subagent", "ran {n} subagents"],
|
|
67
90
|
Task: ["ran {n} subagent", "ran {n} subagents"],
|
|
91
|
+
mcp__time__current_time: ["checked the time", "checked the time {n} times"],
|
|
92
|
+
mcp__time__date_math: ["calculated dates", "calculated dates {n} times"],
|
|
93
|
+
mcp__sourceFiles__list_sources: ["listed the sources", "listed the sources {n} times"],
|
|
94
|
+
mcp__sourceFiles__extract_text: ["read {n} document", "read {n} documents"],
|
|
95
|
+
mcp__sourceFiles__save_to_sources: ["saved {n} source", "saved {n} sources"],
|
|
96
|
+
mcp__sourceFiles__download_to_sources: ["downloaded {n} source", "downloaded {n} sources"],
|
|
97
|
+
mcp__sourceFiles__request_file: ["asked for {n} file", "asked for {n} files"],
|
|
98
|
+
mcp__sourceFiles__retire_source: ["retired {n} source", "retired {n} sources"],
|
|
99
|
+
mcp__knowledge__knowledge_index: ["read the index", "read the index {n} times"],
|
|
100
|
+
mcp__knowledge__knowledge_search: ["searched the knowledge base", "searched the knowledge base {n} times"],
|
|
101
|
+
mcp__knowledge__knowledge_read: ["read {n} page", "read {n} pages"],
|
|
102
|
+
mcp__knowledge__knowledge_create: ["created {n} page", "created {n} pages"],
|
|
103
|
+
mcp__knowledge__knowledge_edit: ["edited {n} page", "edited {n} pages"],
|
|
104
|
+
mcp__knowledge__knowledge_rewrite: ["rewrote {n} page", "rewrote {n} pages"],
|
|
105
|
+
mcp__knowledge__knowledge_supersede: ["superseded {n} page", "superseded {n} pages"],
|
|
106
|
+
mcp__knowledge__knowledge_retire: ["retired {n} page", "retired {n} pages"],
|
|
107
|
+
mcp__knowledge__knowledge_log: ["updated the log", "updated the log {n} times"],
|
|
108
|
+
mcp__knowledge__knowledge_check: ["checked the knowledge base", "checked the knowledge base {n} times"],
|
|
109
|
+
mcp__approvals__ask_human: ["asked {n} question", "asked {n} questions"],
|
|
110
|
+
mcp__approvals__present_plan: ["presented the plan", "presented the plan {n} times"],
|
|
68
111
|
},
|
|
69
112
|
otherTools: ["used {n} tool", "used {n} tools"],
|
|
70
113
|
noOutput: "(no output)",
|
|
@@ -72,10 +115,13 @@ export const en = {
|
|
|
72
115
|
toolFailed: "Couldn't complete it",
|
|
73
116
|
moreResultLines: (count) => `(+${count} ${plural(count, "line", "lines")})`,
|
|
74
117
|
earlierCalls: (count) => `… ${count} earlier`,
|
|
118
|
+
moreTodos: (count) => `… ${count} more ${plural(count, "task", "tasks")}`,
|
|
75
119
|
labels: {
|
|
76
120
|
askingApproval: (summary) => `Asking for human approval: ${summary}`,
|
|
77
121
|
waitingManual: "Waiting for a human to intervene manually",
|
|
78
|
-
savingToSources: (destination) => `Saving
|
|
122
|
+
savingToSources: (destination) => `Saving ${destination} to the sources`,
|
|
123
|
+
checkingTime: "Checking the date and time",
|
|
124
|
+
calculatingDates: "Calculating dates",
|
|
79
125
|
reading: (file) => `Reading ${file}`,
|
|
80
126
|
writing: (file) => `Writing to ${file}`,
|
|
81
127
|
editing: (file) => `Editing ${file}`,
|
|
@@ -91,6 +137,24 @@ export const en = {
|
|
|
91
137
|
searchingWeb: (query) => `Searching the web for "${query}"`,
|
|
92
138
|
applyingSkill: (skill) => `Applying the "${skill}" skill`,
|
|
93
139
|
aSkill: "a skill",
|
|
140
|
+
updatingTasks: "Updating the task list",
|
|
141
|
+
listingSources: "Listing the sources",
|
|
142
|
+
extractingText: (source) => `Reading ${source}`,
|
|
143
|
+
downloading: (url) => `Downloading ${url} to the sources`,
|
|
144
|
+
requestingFile: (description) => `Asking for a file: ${description}`,
|
|
145
|
+
retiringSource: (source) => `Retiring the source ${source}`,
|
|
146
|
+
knowledgeIndex: "Reading the knowledge base's index",
|
|
147
|
+
knowledgeSearch: (query) => `Searching the knowledge base for "${query}"`,
|
|
148
|
+
knowledgeRead: (page) => `Reading ${page}`,
|
|
149
|
+
knowledgeCreate: (page) => `Creating ${page}`,
|
|
150
|
+
knowledgeEdit: (page) => `Editing ${page}`,
|
|
151
|
+
knowledgeRewrite: (page) => `Rewriting ${page}`,
|
|
152
|
+
knowledgeSupersede: (page) => `Marking ${page} superseded`,
|
|
153
|
+
knowledgeRetire: (page) => `Retiring ${page}`,
|
|
154
|
+
knowledgeLog: "Updating the knowledge base's log",
|
|
155
|
+
knowledgeCheck: "Checking the knowledge base",
|
|
156
|
+
askingHuman: (question) => `Asking: ${question}`,
|
|
157
|
+
presentingPlan: "Presenting the plan",
|
|
94
158
|
},
|
|
95
159
|
auth: {
|
|
96
160
|
noToken: "No Claude authentication token was found",
|
package/dist/core/messages/es.js
CHANGED
|
@@ -54,6 +54,29 @@ export const es = {
|
|
|
54
54
|
parametersLine: (parameters) => `Parámetros: ${parameters}`,
|
|
55
55
|
approvalTitle: "Hace falta confirmación humana antes de publicar",
|
|
56
56
|
summaryLine: (summary) => `Resumen: ${summary}`,
|
|
57
|
+
noAnswer: "(sin respuesta)",
|
|
58
|
+
textAnswerHint: "escribe la respuesta",
|
|
59
|
+
textAnswerKeys: "Enter para enviar · Esc para no responder",
|
|
60
|
+
fileRequestTitle: "El agente pide un fichero",
|
|
61
|
+
fileRequestQuestion: "Ruta del fichero (arrástralo aquí), o Enter si no lo tienes: ",
|
|
62
|
+
retireTitle: "¿Retirar una fuente?",
|
|
63
|
+
retirePageTitle: "¿Retirar una página de la base de conocimiento?",
|
|
64
|
+
choiceQuestion: (multiple) => (multiple ? "Números separados por comas, o tu propia respuesta: " : "Número, o tu propia respuesta: "),
|
|
65
|
+
otherOption: "Otra (escribe tu respuesta)",
|
|
66
|
+
choiceKeys: (multiple) => (multiple ? "Espacio para marcar · Enter para enviar" : "↑/↓ elegir · Enter para enviar"),
|
|
67
|
+
questionTitle: "El agente pregunta",
|
|
68
|
+
planTitle: "El plan, para tu aprobación",
|
|
69
|
+
runPlan: "Ejecutarlo",
|
|
70
|
+
keepPlanning: "Seguir planificando",
|
|
71
|
+
cancelPlan: "Cancelar",
|
|
72
|
+
planCommentQuestion: "¿Qué debería cambiar? (Enter para omitir): ",
|
|
73
|
+
retireLines: (source, why, reason, replacedBy, folder) => [
|
|
74
|
+
`Fuente: ${source}`,
|
|
75
|
+
why === "wrong" ? "Motivo: es errónea; su resumen se retirará" : "Motivo: se sustituye; su resumen se marcará como sustituido",
|
|
76
|
+
`Razón: ${reason}`,
|
|
77
|
+
...(replacedBy ? [`Sustituida por: ${replacedBy}`] : []),
|
|
78
|
+
`Se mueve a ${folder}.agent-kit/retired/, no se borra.`,
|
|
79
|
+
],
|
|
57
80
|
toolPhrases: {
|
|
58
81
|
Read: ["leyó {n} fichero", "leyó {n} ficheros"],
|
|
59
82
|
Write: ["escribió {n} fichero", "escribió {n} ficheros"],
|
|
@@ -66,6 +89,26 @@ export const es = {
|
|
|
66
89
|
Skill: ["usó {n} skill", "usó {n} skills"],
|
|
67
90
|
Agent: ["lanzó {n} subagente", "lanzó {n} subagentes"],
|
|
68
91
|
Task: ["lanzó {n} subagente", "lanzó {n} subagentes"],
|
|
92
|
+
mcp__time__current_time: ["consultó la hora", "consultó la hora {n} veces"],
|
|
93
|
+
mcp__time__date_math: ["calculó fechas", "calculó fechas {n} veces"],
|
|
94
|
+
mcp__sourceFiles__list_sources: ["revisó las fuentes", "revisó las fuentes {n} veces"],
|
|
95
|
+
mcp__sourceFiles__extract_text: ["leyó {n} documento", "leyó {n} documentos"],
|
|
96
|
+
mcp__sourceFiles__save_to_sources: ["guardó {n} fuente", "guardó {n} fuentes"],
|
|
97
|
+
mcp__sourceFiles__download_to_sources: ["descargó {n} fuente", "descargó {n} fuentes"],
|
|
98
|
+
mcp__sourceFiles__request_file: ["pidió {n} fichero", "pidió {n} ficheros"],
|
|
99
|
+
mcp__sourceFiles__retire_source: ["retiró {n} fuente", "retiró {n} fuentes"],
|
|
100
|
+
mcp__knowledge__knowledge_index: ["leyó el índice", "leyó el índice {n} veces"],
|
|
101
|
+
mcp__knowledge__knowledge_search: ["buscó en la base de conocimiento", "buscó en la base de conocimiento {n} veces"],
|
|
102
|
+
mcp__knowledge__knowledge_read: ["leyó {n} página", "leyó {n} páginas"],
|
|
103
|
+
mcp__knowledge__knowledge_create: ["creó {n} página", "creó {n} páginas"],
|
|
104
|
+
mcp__knowledge__knowledge_edit: ["editó {n} página", "editó {n} páginas"],
|
|
105
|
+
mcp__knowledge__knowledge_rewrite: ["reescribió {n} página", "reescribió {n} páginas"],
|
|
106
|
+
mcp__knowledge__knowledge_supersede: ["sustituyó {n} página", "sustituyó {n} páginas"],
|
|
107
|
+
mcp__knowledge__knowledge_retire: ["retiró {n} página", "retiró {n} páginas"],
|
|
108
|
+
mcp__knowledge__knowledge_log: ["actualizó el registro", "actualizó el registro {n} veces"],
|
|
109
|
+
mcp__knowledge__knowledge_check: ["revisó la base de conocimiento", "revisó la base de conocimiento {n} veces"],
|
|
110
|
+
mcp__approvals__ask_human: ["hizo {n} pregunta", "hizo {n} preguntas"],
|
|
111
|
+
mcp__approvals__present_plan: ["presentó el plan", "presentó el plan {n} veces"],
|
|
69
112
|
},
|
|
70
113
|
otherTools: ["usó {n} herramienta", "usó {n} herramientas"],
|
|
71
114
|
noOutput: "(sin salida)",
|
|
@@ -73,10 +116,13 @@ export const es = {
|
|
|
73
116
|
toolFailed: "No se pudo completar",
|
|
74
117
|
moreResultLines: (count) => `(+${count} ${plural(count, "línea", "líneas")})`,
|
|
75
118
|
earlierCalls: (count) => `… ${count} ${plural(count, "anterior", "anteriores")}`,
|
|
119
|
+
moreTodos: (count) => `… ${count} ${plural(count, "tarea", "tareas")} más`,
|
|
76
120
|
labels: {
|
|
77
121
|
askingApproval: (summary) => `Pidiendo aprobación humana: ${summary}`,
|
|
78
122
|
waitingManual: "Esperando a que una persona intervenga a mano",
|
|
79
|
-
savingToSources: (destination) => `Guardando
|
|
123
|
+
savingToSources: (destination) => `Guardando ${destination} en las fuentes`,
|
|
124
|
+
checkingTime: "Consultando la fecha y la hora",
|
|
125
|
+
calculatingDates: "Calculando fechas",
|
|
80
126
|
reading: (file) => `Leyendo ${file}`,
|
|
81
127
|
writing: (file) => `Escribiendo en ${file}`,
|
|
82
128
|
editing: (file) => `Editando ${file}`,
|
|
@@ -92,6 +138,24 @@ export const es = {
|
|
|
92
138
|
searchingWeb: (query) => `Buscando en la web "${query}"`,
|
|
93
139
|
applyingSkill: (skill) => `Aplicando la skill "${skill}"`,
|
|
94
140
|
aSkill: "una skill",
|
|
141
|
+
updatingTasks: "Actualizando la lista de tareas",
|
|
142
|
+
listingSources: "Revisando las fuentes",
|
|
143
|
+
extractingText: (source) => `Leyendo ${source}`,
|
|
144
|
+
downloading: (url) => `Descargando ${url} a las fuentes`,
|
|
145
|
+
requestingFile: (description) => `Pidiendo un fichero: ${description}`,
|
|
146
|
+
retiringSource: (source) => `Retirando la fuente ${source}`,
|
|
147
|
+
knowledgeIndex: "Leyendo el índice de la base de conocimiento",
|
|
148
|
+
knowledgeSearch: (query) => `Buscando "${query}" en la base de conocimiento`,
|
|
149
|
+
knowledgeRead: (page) => `Leyendo ${page}`,
|
|
150
|
+
knowledgeCreate: (page) => `Creando ${page}`,
|
|
151
|
+
knowledgeEdit: (page) => `Editando ${page}`,
|
|
152
|
+
knowledgeRewrite: (page) => `Reescribiendo ${page}`,
|
|
153
|
+
knowledgeSupersede: (page) => `Marcando ${page} como sustituida`,
|
|
154
|
+
knowledgeRetire: (page) => `Retirando ${page}`,
|
|
155
|
+
knowledgeLog: "Actualizando el registro de la base de conocimiento",
|
|
156
|
+
knowledgeCheck: "Revisando la base de conocimiento",
|
|
157
|
+
askingHuman: (question) => `Preguntando: ${question}`,
|
|
158
|
+
presentingPlan: "Presentando el plan",
|
|
95
159
|
},
|
|
96
160
|
auth: {
|
|
97
161
|
noToken: "No se ha encontrado ningún token de autenticación de Claude",
|