@markusylisiurunen/tau 0.1.9 → 0.1.11
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 +58 -23
- package/dist/app.js +83 -10
- package/dist/app.js.map +1 -1
- package/dist/bash_commands.js +37 -16
- package/dist/bash_commands.js.map +1 -1
- package/dist/cli.js +6 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands.js +29 -1
- package/dist/commands.js.map +1 -1
- package/dist/config.js +27 -15
- package/dist/config.js.map +1 -1
- package/dist/content_loader.js +397 -114
- package/dist/content_loader.js.map +1 -1
- package/dist/main.js +4 -0
- package/dist/main.js.map +1 -1
- package/dist/personas.js +56 -25
- package/dist/personas.js.map +1 -1
- package/dist/session/session_engine.js +26 -1
- package/dist/session/session_engine.js.map +1 -1
- package/dist/subagents/registry.js +4 -1
- package/dist/subagents/registry.js.map +1 -1
- package/dist/subagents/subagent_engine.js +20 -2
- package/dist/subagents/subagent_engine.js.map +1 -1
- package/dist/subagents/web.js +58 -0
- package/dist/subagents/web.js.map +1 -0
- package/dist/tools/bash.js +9 -4
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit.js +8 -5
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/task.js +8 -5
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/web_fetch.js +268 -0
- package/dist/tools/web_fetch.js.map +1 -0
- package/dist/tools/web_search.js +256 -0
- package/dist/tools/web_search.js.map +1 -0
- package/dist/tools/write.js +7 -4
- package/dist/tools/write.js.map +1 -1
- package/dist/types.js +5 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/custom_editor.js +13 -0
- package/dist/ui/custom_editor.js.map +1 -1
- package/dist/ui/slash_autocomplete.js +6 -3
- package/dist/ui/slash_autocomplete.js.map +1 -1
- package/dist/ui/task_execution.js +15 -0
- package/dist/ui/task_execution.js.map +1 -1
- package/dist/utils/context.js +15 -0
- package/dist/utils/context.js.map +1 -1
- package/dist/utils/project_files.js +124 -1
- package/dist/utils/project_files.js.map +1 -1
- package/dist/utils/zod.js +9 -0
- package/dist/utils/zod.js.map +1 -0
- package/package.json +5 -4
package/dist/bash_commands.js
CHANGED
|
@@ -1,40 +1,61 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join, resolve } from "node:path";
|
|
4
|
+
import { z } from "zod";
|
|
4
5
|
import { getGitRoot } from "./utils/git.js";
|
|
6
|
+
const bashCommandsFileSchema = z
|
|
7
|
+
.object({
|
|
8
|
+
bash: z.array(z.unknown()).optional(),
|
|
9
|
+
})
|
|
10
|
+
.passthrough();
|
|
11
|
+
const bashCommandSchema = z
|
|
12
|
+
.object({
|
|
13
|
+
id: z.string().trim().min(1),
|
|
14
|
+
description: z.string().trim().optional(),
|
|
15
|
+
cmd: z.string().trim().min(1),
|
|
16
|
+
})
|
|
17
|
+
.passthrough();
|
|
5
18
|
function parseBashCommandsFromJson(raw, sourceLabel) {
|
|
6
19
|
const errors = [];
|
|
7
20
|
if (typeof raw !== "object" || raw === null) {
|
|
8
21
|
return { commands: [], errors };
|
|
9
22
|
}
|
|
10
|
-
const
|
|
11
|
-
if (
|
|
23
|
+
const root = bashCommandsFileSchema.safeParse(raw);
|
|
24
|
+
if (!root.success) {
|
|
25
|
+
errors.push(`${sourceLabel}: 'bash' must be an array.`);
|
|
26
|
+
return { commands: [], errors };
|
|
27
|
+
}
|
|
28
|
+
if (root.data.bash === undefined) {
|
|
12
29
|
return { commands: [], errors };
|
|
13
30
|
}
|
|
31
|
+
const bash = root.data.bash;
|
|
14
32
|
if (!Array.isArray(bash)) {
|
|
15
33
|
errors.push(`${sourceLabel}: 'bash' must be an array.`);
|
|
16
34
|
return { commands: [], errors };
|
|
17
35
|
}
|
|
18
36
|
const commands = [];
|
|
19
|
-
for (const
|
|
20
|
-
if (typeof
|
|
37
|
+
for (const entryRaw of bash) {
|
|
38
|
+
if (typeof entryRaw !== "object" || entryRaw === null) {
|
|
21
39
|
errors.push(`${sourceLabel}: bash entries must be objects.`);
|
|
22
40
|
continue;
|
|
23
41
|
}
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
42
|
+
const idRaw = entryRaw.id;
|
|
43
|
+
const idForMessage = typeof idRaw === "string" ? idRaw.trim() : "";
|
|
44
|
+
const entry = bashCommandSchema.safeParse(entryRaw);
|
|
45
|
+
if (!entry.success) {
|
|
46
|
+
if (!idForMessage) {
|
|
47
|
+
errors.push(`${sourceLabel}: bash entry missing valid 'id'.`);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const hasCmdIssue = entry.error.issues.some((issue) => issue.path[0] === "cmd");
|
|
51
|
+
if (hasCmdIssue) {
|
|
52
|
+
errors.push(`${sourceLabel}: bash entry '${idForMessage}' missing valid 'cmd'.`);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
errors.push(`${sourceLabel}: bash entry '${idForMessage}' is invalid.`);
|
|
31
56
|
continue;
|
|
32
57
|
}
|
|
33
|
-
commands.push(
|
|
34
|
-
id: id.trim(),
|
|
35
|
-
description: typeof description === "string" && description.trim() ? description.trim() : undefined,
|
|
36
|
-
cmd: cmd.trim(),
|
|
37
|
-
});
|
|
58
|
+
commands.push(entry.data);
|
|
38
59
|
}
|
|
39
60
|
return { commands, errors };
|
|
40
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash_commands.js","sourceRoot":"","sources":["../src/bash_commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQ5C,SAAS,yBAAyB,CAChC,GAAY,EACZ,WAAmB;IAKnB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"bash_commands.js","sourceRoot":"","sources":["../src/bash_commands.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { REASONING_LEVELS } from "./types.js";
|
|
1
|
+
import { REASONING_LEVELS, RiskLevelSchema, } from "./types.js";
|
|
2
2
|
export class CliError extends Error {
|
|
3
3
|
constructor(message) {
|
|
4
4
|
super(message);
|
|
5
5
|
this.name = "CliError";
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
const RISK_LEVELS = ["none", "read-only", "read-write"];
|
|
9
8
|
export function resolvePersonaId(raw, personas) {
|
|
10
9
|
const trimmed = raw.trim();
|
|
11
10
|
if (!trimmed)
|
|
@@ -37,10 +36,11 @@ function parseRiskLevel(raw) {
|
|
|
37
36
|
if (!normalized) {
|
|
38
37
|
throw new CliError("missing value for --risk");
|
|
39
38
|
}
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
const parsed = RiskLevelSchema.safeParse(normalized);
|
|
40
|
+
if (parsed.success) {
|
|
41
|
+
return parsed.data;
|
|
42
42
|
}
|
|
43
|
-
const allowed =
|
|
43
|
+
const allowed = RiskLevelSchema.options.join(", ");
|
|
44
44
|
throw new CliError(`invalid risk level '${raw}'. allowed levels: ${allowed}`);
|
|
45
45
|
}
|
|
46
46
|
function parseValue(arg, argv, index) {
|
|
@@ -109,7 +109,7 @@ export function parseCliArgs(argv, personas) {
|
|
|
109
109
|
export function printHelp(personas) {
|
|
110
110
|
const personaList = personas.map((p) => p.id).join(", ");
|
|
111
111
|
const reasoningList = [...REASONING_LEVELS, "default"].join(", ");
|
|
112
|
-
const riskList =
|
|
112
|
+
const riskList = RiskLevelSchema.options.join(", ");
|
|
113
113
|
console.log([
|
|
114
114
|
"tau - terminal chat",
|
|
115
115
|
"",
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join, relative } from "node:path";
|
|
1
3
|
export function parseCommand(raw) {
|
|
2
4
|
const trimmed = raw.trim();
|
|
3
5
|
if (trimmed === "/help") {
|
|
@@ -49,7 +51,24 @@ export function parseCommand(raw) {
|
|
|
49
51
|
}
|
|
50
52
|
return { type: "unknown", raw: trimmed };
|
|
51
53
|
}
|
|
52
|
-
|
|
54
|
+
function formatSkillPath(fullPath) {
|
|
55
|
+
const configHome = process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
|
|
56
|
+
const globalSkillsDir = join(configHome, "tau", "skills");
|
|
57
|
+
const projectSkillsDir = join(process.cwd(), ".tau", "skills");
|
|
58
|
+
// Check if path is in project skills directory
|
|
59
|
+
if (fullPath.startsWith(projectSkillsDir)) {
|
|
60
|
+
const relPath = relative(process.cwd(), fullPath);
|
|
61
|
+
return relPath;
|
|
62
|
+
}
|
|
63
|
+
// Check if path is in global skills directory
|
|
64
|
+
if (fullPath.startsWith(globalSkillsDir)) {
|
|
65
|
+
const relPath = relative(configHome, fullPath);
|
|
66
|
+
return `~/.config/${relPath}`;
|
|
67
|
+
}
|
|
68
|
+
// Fallback to full path
|
|
69
|
+
return fullPath;
|
|
70
|
+
}
|
|
71
|
+
export function buildHelpText(agentsFiles, skills) {
|
|
53
72
|
const lines = [];
|
|
54
73
|
if (agentsFiles && agentsFiles.length > 0) {
|
|
55
74
|
lines.push("context:");
|
|
@@ -57,6 +76,15 @@ export function buildHelpText(agentsFiles) {
|
|
|
57
76
|
lines.push(` ${agentsFile}`);
|
|
58
77
|
});
|
|
59
78
|
}
|
|
79
|
+
if (skills && skills.length > 0) {
|
|
80
|
+
if (lines.length > 0) {
|
|
81
|
+
lines.push("");
|
|
82
|
+
}
|
|
83
|
+
lines.push("skills:");
|
|
84
|
+
skills.forEach((skill) => {
|
|
85
|
+
lines.push(` ${skill.name} (${formatSkillPath(skill.path)})`);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
60
88
|
if (lines.length > 0) {
|
|
61
89
|
lines.push("");
|
|
62
90
|
}
|
package/dist/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { RiskLevelSchema } from "./types.js";
|
|
6
|
+
const configSchema = z
|
|
7
|
+
.object({
|
|
8
|
+
apiKeys: z
|
|
9
|
+
.object({
|
|
10
|
+
anthropic: z.string().optional().catch(undefined),
|
|
11
|
+
google: z.string().optional().catch(undefined),
|
|
12
|
+
openai: z.string().optional().catch(undefined),
|
|
13
|
+
parallel: z.string().optional().catch(undefined),
|
|
14
|
+
})
|
|
15
|
+
.passthrough()
|
|
16
|
+
.optional()
|
|
17
|
+
.catch(undefined),
|
|
18
|
+
userPreferences: z.string().optional().catch(undefined),
|
|
19
|
+
toolDisplayMode: z.enum(["compact", "full"]).optional().catch(undefined),
|
|
20
|
+
defaultPersona: z.string().optional().catch(undefined),
|
|
21
|
+
defaultRisk: RiskLevelSchema.optional().catch(undefined),
|
|
22
|
+
})
|
|
23
|
+
.passthrough();
|
|
4
24
|
export function loadConfig() {
|
|
5
25
|
const configDir = process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
|
|
6
26
|
const configPath = join(configDir, "tau", "config.json");
|
|
@@ -9,22 +29,11 @@ export function loadConfig() {
|
|
|
9
29
|
return {};
|
|
10
30
|
}
|
|
11
31
|
const content = readFileSync(configPath, "utf-8");
|
|
12
|
-
const
|
|
13
|
-
if (typeof
|
|
32
|
+
const json = JSON.parse(content);
|
|
33
|
+
if (typeof json !== "object" || json === null)
|
|
14
34
|
return {};
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
delete config.toolDisplayMode;
|
|
18
|
-
}
|
|
19
|
-
const defaultPersona = config.defaultPersona;
|
|
20
|
-
if (defaultPersona !== undefined && typeof defaultPersona !== "string") {
|
|
21
|
-
delete config.defaultPersona;
|
|
22
|
-
}
|
|
23
|
-
const defaultRisk = config.defaultRisk;
|
|
24
|
-
if (defaultRisk !== undefined && !["none", "read-only", "read-write"].includes(defaultRisk)) {
|
|
25
|
-
delete config.defaultRisk;
|
|
26
|
-
}
|
|
27
|
-
return config;
|
|
35
|
+
const parsed = configSchema.safeParse(json);
|
|
36
|
+
return parsed.success ? parsed.data : {};
|
|
28
37
|
}
|
|
29
38
|
catch (err) {
|
|
30
39
|
// If there's an error reading or parsing, silently return empty config
|
|
@@ -44,4 +53,7 @@ export function getApiKeyForProvider(config, provider) {
|
|
|
44
53
|
return undefined;
|
|
45
54
|
}
|
|
46
55
|
}
|
|
56
|
+
export function getParallelApiKey(config) {
|
|
57
|
+
return config.apiKeys?.parallel;
|
|
58
|
+
}
|
|
47
59
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|