indusagi-coding-agent 0.1.8 → 0.1.9
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/CHANGELOG.md +11 -0
- package/dist/cli/args.js +2 -2
- package/dist/core/agent-session.d.ts +7 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +28 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/sdk.d.ts +3 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +13 -4
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/subagents.d.ts +29 -0
- package/dist/core/subagents.d.ts.map +1 -0
- package/dist/core/subagents.js +156 -0
- package/dist/core/subagents.js.map +1 -0
- package/dist/core/system-prompt.d.ts +4 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +52 -19
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/task-session-manager.d.ts +55 -0
- package/dist/core/task-session-manager.d.ts.map +1 -0
- package/dist/core/task-session-manager.js +410 -0
- package/dist/core/task-session-manager.js.map +1 -0
- package/dist/core/todo-store.d.ts +20 -0
- package/dist/core/todo-store.d.ts.map +1 -0
- package/dist/core/todo-store.js +55 -0
- package/dist/core/todo-store.js.map +1 -0
- package/dist/core/tools/index.d.ts +23 -0
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +36 -3
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/task.d.ts +38 -0
- package/dist/core/tools/task.d.ts.map +1 -0
- package/dist/core/tools/task.js +65 -0
- package/dist/core/tools/task.js.map +1 -0
- package/dist/core/tools/todo.d.ts +26 -0
- package/dist/core/tools/todo.d.ts.map +1 -0
- package/dist/core/tools/todo.js +52 -0
- package/dist/core/tools/todo.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations.d.ts +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +3 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +136 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +3 -4
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/package.json +1 -1
package/dist/core/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/core/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAyC,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EACN,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAa,EACb,QAAQ,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/core/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ThinkingLevel } from "indusagi/agent";
|
|
2
|
+
export type SubagentMode = "subagent" | "primary" | "all";
|
|
3
|
+
export interface SubagentDefinition {
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
prompt?: string;
|
|
7
|
+
tools?: string[];
|
|
8
|
+
model?: {
|
|
9
|
+
provider: string;
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
thinkingLevel?: ThinkingLevel;
|
|
13
|
+
mode?: SubagentMode;
|
|
14
|
+
hidden?: boolean;
|
|
15
|
+
source?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class SubagentStore {
|
|
18
|
+
private subagents;
|
|
19
|
+
private cwd;
|
|
20
|
+
private agentDir;
|
|
21
|
+
constructor(options: {
|
|
22
|
+
cwd: string;
|
|
23
|
+
agentDir?: string;
|
|
24
|
+
});
|
|
25
|
+
refresh(): void;
|
|
26
|
+
get(name: string): SubagentDefinition | undefined;
|
|
27
|
+
list(): SubagentDefinition[];
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=subagents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagents.d.ts","sourceRoot":"","sources":["../../src/core/subagents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAyJD,qBAAa,aAAa;IACzB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAMvD,OAAO,IAAI,IAAI;IAoBf,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIjD,IAAI,IAAI,kBAAkB,EAAE;CAG5B"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join, relative, sep } from "node:path";
|
|
3
|
+
import { globSync } from "glob";
|
|
4
|
+
import { CONFIG_DIR_NAME, getAgentDir } from "../config.js";
|
|
5
|
+
import { parseFrontmatter } from "../utils/frontmatter.js";
|
|
6
|
+
const VALID_MODES = ["subagent", "primary", "all"];
|
|
7
|
+
const VALID_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
8
|
+
const BUILTIN_SUBAGENTS = [
|
|
9
|
+
{
|
|
10
|
+
name: "general",
|
|
11
|
+
description: "General-purpose subagent for multi-step tasks and research.",
|
|
12
|
+
mode: "subagent",
|
|
13
|
+
tools: ["read", "bash", "edit", "write", "grep", "find", "ls"],
|
|
14
|
+
prompt: "You are a general-purpose subagent. Focus on the assigned task, use the available tools as needed, and return a concise summary of results. Avoid unnecessary verbosity.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "explore",
|
|
18
|
+
description: "Subagent specialized in codebase exploration and search.",
|
|
19
|
+
mode: "subagent",
|
|
20
|
+
tools: ["read", "grep", "find", "ls"],
|
|
21
|
+
prompt: "You are a subagent specialized in exploring codebases. Use read/grep/find/ls to locate relevant files and details, then return a concise summary with file paths and key findings.",
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
function normalizeTools(input) {
|
|
25
|
+
if (Array.isArray(input)) {
|
|
26
|
+
const tools = input.map((item) => (typeof item === "string" ? item.trim() : "")).filter(Boolean);
|
|
27
|
+
return tools.length > 0 ? tools : undefined;
|
|
28
|
+
}
|
|
29
|
+
if (typeof input === "string") {
|
|
30
|
+
const tools = input
|
|
31
|
+
.split(",")
|
|
32
|
+
.map((item) => item.trim())
|
|
33
|
+
.filter(Boolean);
|
|
34
|
+
return tools.length > 0 ? tools : undefined;
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
function normalizeMode(input) {
|
|
39
|
+
if (typeof input !== "string")
|
|
40
|
+
return undefined;
|
|
41
|
+
return VALID_MODES.includes(input) ? input : undefined;
|
|
42
|
+
}
|
|
43
|
+
function normalizeThinkingLevel(input) {
|
|
44
|
+
if (typeof input !== "string")
|
|
45
|
+
return undefined;
|
|
46
|
+
return VALID_THINKING_LEVELS.includes(input) ? input : undefined;
|
|
47
|
+
}
|
|
48
|
+
function normalizeModel(frontmatter) {
|
|
49
|
+
if (typeof frontmatter.model === "string") {
|
|
50
|
+
const [provider, ...rest] = frontmatter.model.split("/");
|
|
51
|
+
const id = rest.join("/");
|
|
52
|
+
if (provider && id) {
|
|
53
|
+
return { provider, id };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (typeof frontmatter.model === "object" && frontmatter.model !== null) {
|
|
57
|
+
const model = frontmatter.model;
|
|
58
|
+
const provider = typeof model.provider === "string" ? model.provider : undefined;
|
|
59
|
+
const id = typeof model.id === "string"
|
|
60
|
+
? model.id
|
|
61
|
+
: typeof model.modelId === "string"
|
|
62
|
+
? model.modelId
|
|
63
|
+
: undefined;
|
|
64
|
+
if (provider && id) {
|
|
65
|
+
return { provider, id };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const provider = typeof frontmatter.provider === "string" ? frontmatter.provider : undefined;
|
|
69
|
+
const modelId = typeof frontmatter.modelId === "string" ? frontmatter.modelId : undefined;
|
|
70
|
+
if (provider && modelId) {
|
|
71
|
+
return { provider, id: modelId };
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
function deriveName(filePath, baseDir) {
|
|
76
|
+
const relativePath = relative(baseDir, filePath);
|
|
77
|
+
const withoutExt = relativePath.replace(/\.[^.]+$/, "");
|
|
78
|
+
return withoutExt.split(sep).join("/");
|
|
79
|
+
}
|
|
80
|
+
function loadSubagentsFromDir(dir) {
|
|
81
|
+
if (!existsSync(dir))
|
|
82
|
+
return [];
|
|
83
|
+
const files = globSync("**/*.md", {
|
|
84
|
+
cwd: dir,
|
|
85
|
+
absolute: true,
|
|
86
|
+
dot: false,
|
|
87
|
+
nodir: true,
|
|
88
|
+
ignore: ["**/node_modules/**"],
|
|
89
|
+
});
|
|
90
|
+
const results = [];
|
|
91
|
+
for (const filePath of files) {
|
|
92
|
+
try {
|
|
93
|
+
const content = readFileSync(filePath, "utf-8");
|
|
94
|
+
const { frontmatter, body } = parseFrontmatter(content);
|
|
95
|
+
const name = typeof frontmatter.name === "string" && frontmatter.name.trim()
|
|
96
|
+
? frontmatter.name.trim()
|
|
97
|
+
: deriveName(filePath, dir);
|
|
98
|
+
if (!name)
|
|
99
|
+
continue;
|
|
100
|
+
const description = typeof frontmatter.description === "string" ? frontmatter.description.trim() : undefined;
|
|
101
|
+
const bodyPrompt = body.trim();
|
|
102
|
+
const frontmatterPrompt = typeof frontmatter.prompt === "string" ? frontmatter.prompt.trim() : undefined;
|
|
103
|
+
const prompt = bodyPrompt || frontmatterPrompt || undefined;
|
|
104
|
+
const tools = normalizeTools(frontmatter.tools);
|
|
105
|
+
const model = normalizeModel(frontmatter);
|
|
106
|
+
const thinkingLevel = normalizeThinkingLevel(frontmatter.thinkingLevel);
|
|
107
|
+
const mode = normalizeMode(frontmatter.mode);
|
|
108
|
+
const hidden = frontmatter.hidden === true;
|
|
109
|
+
results.push({
|
|
110
|
+
name,
|
|
111
|
+
description,
|
|
112
|
+
prompt,
|
|
113
|
+
tools,
|
|
114
|
+
model,
|
|
115
|
+
thinkingLevel,
|
|
116
|
+
mode,
|
|
117
|
+
hidden,
|
|
118
|
+
source: filePath,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
console.warn(`Warning: Failed to load subagent from ${filePath}: ${error}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return results;
|
|
126
|
+
}
|
|
127
|
+
export class SubagentStore {
|
|
128
|
+
constructor(options) {
|
|
129
|
+
this.subagents = new Map();
|
|
130
|
+
this.cwd = options.cwd;
|
|
131
|
+
this.agentDir = options.agentDir ?? getAgentDir();
|
|
132
|
+
this.refresh();
|
|
133
|
+
}
|
|
134
|
+
refresh() {
|
|
135
|
+
const merged = new Map();
|
|
136
|
+
for (const agent of BUILTIN_SUBAGENTS) {
|
|
137
|
+
merged.set(agent.name, agent);
|
|
138
|
+
}
|
|
139
|
+
const globalDir = join(this.agentDir, "agents");
|
|
140
|
+
for (const agent of loadSubagentsFromDir(globalDir)) {
|
|
141
|
+
merged.set(agent.name, agent);
|
|
142
|
+
}
|
|
143
|
+
const projectDir = join(this.cwd, CONFIG_DIR_NAME, "agents");
|
|
144
|
+
for (const agent of loadSubagentsFromDir(projectDir)) {
|
|
145
|
+
merged.set(agent.name, agent);
|
|
146
|
+
}
|
|
147
|
+
this.subagents = merged;
|
|
148
|
+
}
|
|
149
|
+
get(name) {
|
|
150
|
+
return this.subagents.get(name);
|
|
151
|
+
}
|
|
152
|
+
list() {
|
|
153
|
+
return Array.from(this.subagents.values());
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=subagents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagents.js","sourceRoot":"","sources":["../../src/core/subagents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* System prompt construction and project context loading
|
|
3
3
|
*/
|
|
4
|
+
import type { SubagentDefinition } from "./subagents.js";
|
|
4
5
|
import { type Skill } from "./skills.js";
|
|
5
6
|
export interface BuildSystemPromptOptions {
|
|
6
7
|
/** Custom system prompt (replaces default). */
|
|
7
8
|
customPrompt?: string;
|
|
8
|
-
/** Tools to include in prompt. Default: [read, bash, edit, write] */
|
|
9
|
+
/** Tools to include in prompt. Default: [read, bash, edit, write, task, todoread, todowrite] */
|
|
9
10
|
selectedTools?: string[];
|
|
10
11
|
/** Text to append to system prompt. */
|
|
11
12
|
appendSystemPrompt?: string;
|
|
@@ -18,6 +19,8 @@ export interface BuildSystemPromptOptions {
|
|
|
18
19
|
}>;
|
|
19
20
|
/** Pre-loaded skills. */
|
|
20
21
|
skills?: Skill[];
|
|
22
|
+
/** Available subagents (for task tool guidance). */
|
|
23
|
+
subagents?: SubagentDefinition[];
|
|
21
24
|
}
|
|
22
25
|
/** Build the system prompt with tools, guidelines, and context */
|
|
23
26
|
export declare function buildSystemPrompt(options?: BuildSystemPromptOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAgBhE,MAAM,WAAW,wBAAwB;IACxC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,yBAAyB;IACzB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,oDAAoD;IACpD,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM,CAoMhF"}
|
|
@@ -12,10 +12,13 @@ const toolDescriptions = {
|
|
|
12
12
|
grep: "Search file contents for patterns (respects .gitignore)",
|
|
13
13
|
find: "Find files by glob pattern (respects .gitignore)",
|
|
14
14
|
ls: "List directory contents",
|
|
15
|
+
task: "Delegate work to a subagent for autonomous execution",
|
|
16
|
+
todoread: "Read the current todo list (content, status, priority)",
|
|
17
|
+
todowrite: "Update the todo list (provide the full list with content, status, priority)",
|
|
15
18
|
};
|
|
16
19
|
/** Build the system prompt with tools, guidelines, and context */
|
|
17
20
|
export function buildSystemPrompt(options = {}) {
|
|
18
|
-
const { customPrompt, selectedTools, appendSystemPrompt, cwd, contextFiles: providedContextFiles, skills: providedSkills, } = options;
|
|
21
|
+
const { customPrompt, selectedTools, appendSystemPrompt, cwd, contextFiles: providedContextFiles, skills: providedSkills, subagents: providedSubagents, } = options;
|
|
19
22
|
const resolvedCwd = cwd ?? process.cwd();
|
|
20
23
|
const now = new Date();
|
|
21
24
|
const dateTime = now.toLocaleString("en-US", {
|
|
@@ -31,6 +34,22 @@ export function buildSystemPrompt(options = {}) {
|
|
|
31
34
|
const appendSection = appendSystemPrompt ? `\n\n${appendSystemPrompt}` : "";
|
|
32
35
|
const contextFiles = providedContextFiles ?? [];
|
|
33
36
|
const skills = providedSkills ?? [];
|
|
37
|
+
const subagents = providedSubagents ?? [];
|
|
38
|
+
const visibleSubagents = subagents.filter((agent) => agent.mode !== "primary" && agent.hidden !== true);
|
|
39
|
+
const customPromptHasTodoWrite = !selectedTools || selectedTools.includes("todowrite");
|
|
40
|
+
const customPromptHasTodoRead = !selectedTools || selectedTools.includes("todoread");
|
|
41
|
+
const customPromptHasTaskTool = !selectedTools || selectedTools.includes("task");
|
|
42
|
+
const customPromptTodoSection = customPromptHasTodoWrite
|
|
43
|
+
? `\n\n# Task Management\nYou have access to todowrite/todoread to plan and track work. Use todowrite very frequently for multi-step tasks and keep the list updated.\n- Create the todo list before starting work when there are multiple steps or deliverables.\n- Mark a single item as in_progress when you start it, then completed as soon as it is done.\n- Only change a todo status after doing real work for that item (tool call or concrete output).\n- Do not change status multiple times in a row without intervening work; perform the task step between updates.\n- Do not batch-complete items; update the list immediately after each task.\n${customPromptHasTodoRead ? "- Use todoread to fetch the current list before making changes.\n" : ""}\nExample:\nUser: Update the build pipeline and fix any type errors.\nAssistant: Use todowrite to create a todo list (run build, fix errors). Mark each item in_progress/completed as you go.`
|
|
44
|
+
: "";
|
|
45
|
+
const customPromptTaskSection = customPromptHasTaskTool
|
|
46
|
+
? `\n\n# Task Tool\nUse the task tool to delegate complex or open-ended work to a subagent. Provide a clear description and detailed prompt, and reuse task_id to continue the same subagent session.\n- Delegate broad codebase exploration to the explore subagent.\n- Ask the subagent to return a concise summary of findings.`
|
|
47
|
+
: "";
|
|
48
|
+
const customPromptSubagentsSection = customPromptHasTaskTool && visibleSubagents.length > 0
|
|
49
|
+
? `\n\n# Subagents\n${visibleSubagents
|
|
50
|
+
.map((agent) => `- ${agent.name}${agent.description ? `: ${agent.description}` : ""}`)
|
|
51
|
+
.join("\n")}`
|
|
52
|
+
: "";
|
|
34
53
|
if (customPrompt) {
|
|
35
54
|
let prompt = customPrompt;
|
|
36
55
|
if (appendSection) {
|
|
@@ -49,6 +68,15 @@ export function buildSystemPrompt(options = {}) {
|
|
|
49
68
|
if (customPromptHasRead && skills.length > 0) {
|
|
50
69
|
prompt += formatSkillsForPrompt(skills);
|
|
51
70
|
}
|
|
71
|
+
if (customPromptTodoSection) {
|
|
72
|
+
prompt += customPromptTodoSection;
|
|
73
|
+
}
|
|
74
|
+
if (customPromptTaskSection) {
|
|
75
|
+
prompt += customPromptTaskSection;
|
|
76
|
+
}
|
|
77
|
+
if (customPromptSubagentsSection) {
|
|
78
|
+
prompt += customPromptSubagentsSection;
|
|
79
|
+
}
|
|
52
80
|
// Add date/time and working directory last
|
|
53
81
|
prompt += `\nCurrent date and time: ${dateTime}`;
|
|
54
82
|
prompt += `\nCurrent working directory: ${resolvedCwd}`;
|
|
@@ -59,7 +87,7 @@ export function buildSystemPrompt(options = {}) {
|
|
|
59
87
|
const docsPath = getDocsPath();
|
|
60
88
|
const examplesPath = getExamplesPath();
|
|
61
89
|
// Build tools list based on selected tools (only built-in tools with known descriptions)
|
|
62
|
-
const tools = (selectedTools || ["read", "bash", "edit", "write"]).filter((t) => t in toolDescriptions);
|
|
90
|
+
const tools = (selectedTools || ["read", "bash", "edit", "write", "task", "todoread", "todowrite"]).filter((t) => t in toolDescriptions);
|
|
63
91
|
const toolsList = tools.length > 0 ? tools.map((t) => `- ${t}: ${toolDescriptions[t]}`).join("\n") : "(none)";
|
|
64
92
|
// Build guidelines based on which tools are actually available
|
|
65
93
|
const guidelinesList = [];
|
|
@@ -70,6 +98,9 @@ export function buildSystemPrompt(options = {}) {
|
|
|
70
98
|
const hasFind = tools.includes("find");
|
|
71
99
|
const hasLs = tools.includes("ls");
|
|
72
100
|
const hasRead = tools.includes("read");
|
|
101
|
+
const hasTodoRead = tools.includes("todoread");
|
|
102
|
+
const hasTodoWrite = tools.includes("todowrite");
|
|
103
|
+
const hasTaskTool = tools.includes("task");
|
|
73
104
|
// File exploration guidelines
|
|
74
105
|
if (hasBash && !hasGrep && !hasFind && !hasLs) {
|
|
75
106
|
guidelinesList.push("Use bash for file operations like ls, rg, find");
|
|
@@ -93,27 +124,29 @@ export function buildSystemPrompt(options = {}) {
|
|
|
93
124
|
if (hasEdit || hasWrite) {
|
|
94
125
|
guidelinesList.push("When summarizing your actions, output plain text directly - do NOT use cat or bash to display what you did");
|
|
95
126
|
}
|
|
127
|
+
if (hasTodoWrite) {
|
|
128
|
+
guidelinesList.push("When a task has multiple steps or deliverables, create a todo list first using todowrite. Update the list as you progress (mark in_progress/completed) and keep it accurate.");
|
|
129
|
+
if (hasTodoRead) {
|
|
130
|
+
guidelinesList.push("Use todoread to fetch the current todo list before making changes.");
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (hasTaskTool) {
|
|
134
|
+
guidelinesList.push("Use the task tool to delegate complex or open-ended work to a subagent (for example, use the explore subagent for broad codebase searches).");
|
|
135
|
+
guidelinesList.push("Provide a clear description and prompt when calling task. Reuse task_id to continue.");
|
|
136
|
+
}
|
|
96
137
|
// Always include these
|
|
97
138
|
guidelinesList.push("Be concise in your responses");
|
|
98
139
|
guidelinesList.push("Show file paths clearly when working with files");
|
|
99
140
|
const guidelines = guidelinesList.map((g) => `- ${g}`).join("\n");
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
${guidelines}
|
|
109
|
-
|
|
110
|
-
Indusagi documentation (read only when the user asks about indusagi itself, its SDK, extensions, themes, skills, or TUI):
|
|
111
|
-
- Main documentation: ${readmePath}
|
|
112
|
-
- Additional docs: ${docsPath}
|
|
113
|
-
- Examples: ${examplesPath} (extensions, custom tools, SDK)
|
|
114
|
-
- When asked about: extensions (docs/extensions.md, examples/extensions/), themes (docs/themes.md), skills (docs/skills.md), prompt templates (docs/prompt-templates.md), TUI components (docs/tui.md), keybindings (docs/keybindings.md), SDK integrations (docs/sdk.md), custom providers (docs/custom-provider.md), adding models (docs/models.md), indusagi packages (docs/packages.md)
|
|
115
|
-
- When working on indusagi topics, read the docs and examples, and follow .md cross-references before implementing
|
|
116
|
-
- Always read indusagi .md files completely and follow links to related docs (e.g., tui.md for TUI API details)`;
|
|
141
|
+
const todoSection = hasTodoWrite
|
|
142
|
+
? `\n\n# Task Management\nYou have access to todowrite/todoread to plan and track work. Use todowrite very frequently for multi-step tasks and keep the list updated.\n- Create the todo list before starting work when there are multiple steps or deliverables.\n- Mark a single item as in_progress when you start it, then completed as soon as it is done.\n- Only change a todo status after doing real work for that item (tool call or concrete output).\n- Do not change status multiple times in a row without intervening work; perform the task step between updates.\n- Do not batch-complete items; update the list immediately after each task.\n- Use todoread to fetch the current list before making changes.\n\nExample:\nUser: Update the build pipeline and fix any type errors.\nAssistant: Use todowrite to create a todo list (run build, fix errors). Mark each item in_progress/completed as you go.`
|
|
143
|
+
: "";
|
|
144
|
+
const subagentsSection = hasTaskTool && visibleSubagents.length > 0
|
|
145
|
+
? `\n\n# Subagents\n${visibleSubagents
|
|
146
|
+
.map((agent) => `- ${agent.name}${agent.description ? `: ${agent.description}` : ""}`)
|
|
147
|
+
.join("\n")}`
|
|
148
|
+
: "";
|
|
149
|
+
let prompt = `You are an expert coding assistant operating inside indusagi, a coding agent harness. You help users by reading files, executing commands, editing code, and writing new files.\n\nAvailable tools:\n${toolsList}\n\nIn addition to the tools above, you may have access to other custom tools depending on the project.\n\nGuidelines:\n${guidelines}${todoSection}${subagentsSection}\n\nIndusagi documentation (read only when the user asks about indusagi itself, its SDK, extensions, themes, skills, or TUI):\n- Main documentation: ${readmePath}\n- Additional docs: ${docsPath}\n- Examples: ${examplesPath} (extensions, custom tools, SDK)\n- When asked about: extensions (docs/extensions.md, examples/extensions/), themes (docs/themes.md), skills (docs/skills.md), prompt templates (docs/prompt-templates.md), TUI components (docs/tui.md), keybindings (docs/keybindings.md), SDK integrations (docs/sdk.md), custom providers (docs/custom-provider.md), adding models (docs/models.md), indusagi packages (docs/packages.md)\n- When working on indusagi topics, read the docs and examples, and follow .md cross-references before implementing\n- Always read indusagi .md files completely and follow links to related docs (e.g., tui.md for TUI API details)`;
|
|
117
150
|
if (appendSection) {
|
|
118
151
|
prompt += appendSection;
|
|
119
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type AgentToolUpdateCallback, type ThinkingLevel } from "indusagi/agent";
|
|
2
|
+
import type { Model } from "indusagi/ai";
|
|
3
|
+
import type { ModelRegistry } from "./model-registry.js";
|
|
4
|
+
import type { SettingsManager } from "./settings-manager.js";
|
|
5
|
+
import type { Skill } from "./skills.js";
|
|
6
|
+
import type { SubagentStore } from "./subagents.js";
|
|
7
|
+
export interface TaskToolDetails {
|
|
8
|
+
taskId: string;
|
|
9
|
+
subagentType: string;
|
|
10
|
+
description: string;
|
|
11
|
+
result: string;
|
|
12
|
+
toolCalls: number;
|
|
13
|
+
durationMs: number;
|
|
14
|
+
model?: {
|
|
15
|
+
provider: string;
|
|
16
|
+
id: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface TaskRunResult {
|
|
20
|
+
output: string;
|
|
21
|
+
details: TaskToolDetails;
|
|
22
|
+
}
|
|
23
|
+
export interface TaskSessionManagerOptions {
|
|
24
|
+
cwd: string;
|
|
25
|
+
settingsManager: SettingsManager;
|
|
26
|
+
modelRegistry: ModelRegistry;
|
|
27
|
+
subagentStore: SubagentStore;
|
|
28
|
+
getDefaultModel: () => Model<any> | undefined;
|
|
29
|
+
getDefaultThinkingLevel: () => ThinkingLevel;
|
|
30
|
+
contextFiles?: Array<{
|
|
31
|
+
path: string;
|
|
32
|
+
content: string;
|
|
33
|
+
}>;
|
|
34
|
+
skills?: Skill[];
|
|
35
|
+
}
|
|
36
|
+
export declare class TaskSessionManager {
|
|
37
|
+
private options;
|
|
38
|
+
private sessions;
|
|
39
|
+
constructor(options: TaskSessionManagerOptions);
|
|
40
|
+
private resolveToolNames;
|
|
41
|
+
private buildToolMap;
|
|
42
|
+
private resolveModel;
|
|
43
|
+
private buildSubagentPrompt;
|
|
44
|
+
private createSession;
|
|
45
|
+
private getOrCreateSession;
|
|
46
|
+
runTask(params: {
|
|
47
|
+
description: string;
|
|
48
|
+
prompt: string;
|
|
49
|
+
subagentType: string;
|
|
50
|
+
taskId?: string;
|
|
51
|
+
signal?: AbortSignal;
|
|
52
|
+
onUpdate?: AgentToolUpdateCallback<TaskToolDetails>;
|
|
53
|
+
}): Promise<TaskRunResult>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=task-session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-session-manager.d.ts","sourceRoot":"","sources":["../../src/core/task-session-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAIN,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAsB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AASxE,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC9C,uBAAuB,EAAE,MAAM,aAAa,CAAC;IAC7C,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CACjB;AAkED,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,OAAO,EAAE,yBAAyB;IAI9C,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,aAAa;IA8DrB,OAAO,CAAC,kBAAkB;IAkBpB,OAAO,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,QAAQ,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;KACpD,GAAG,OAAO,CAAC,aAAa,CAAC;CA0P1B"}
|