asyncwf 1.0.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/README.md +112 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +83 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/kb.d.ts +8 -0
- package/dist/commands/kb.d.ts.map +1 -0
- package/dist/commands/kb.js +109 -0
- package/dist/commands/kb.js.map +1 -0
- package/dist/commands/link.d.ts +2 -0
- package/dist/commands/link.d.ts.map +1 -0
- package/dist/commands/link.js +74 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/skill.d.ts +9 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +103 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/taskmgr.d.ts +11 -0
- package/dist/commands/taskmgr.d.ts.map +1 -0
- package/dist/commands/taskmgr.js +129 -0
- package/dist/commands/taskmgr.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agent.d.ts +5 -0
- package/dist/lib/agent.d.ts.map +1 -0
- package/dist/lib/agent.js +124 -0
- package/dist/lib/agent.js.map +1 -0
- package/dist/lib/knowledge.d.ts +8 -0
- package/dist/lib/knowledge.d.ts.map +1 -0
- package/dist/lib/knowledge.js +149 -0
- package/dist/lib/knowledge.js.map +1 -0
- package/dist/lib/skills.d.ts +8 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +129 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/state.d.ts +13 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +87 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/templates.d.ts +9 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +79 -0
- package/dist/lib/templates.js.map +1 -0
- package/dist/types.d.ts +57 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
|
+
function getCKBDir() {
|
|
5
|
+
return join(homedir(), '.ckb');
|
|
6
|
+
}
|
|
7
|
+
function getSkillsDir() {
|
|
8
|
+
return join(getCKBDir(), 'skills');
|
|
9
|
+
}
|
|
10
|
+
function getSkillsIndexPath() {
|
|
11
|
+
return join(getSkillsDir(), '_index.json');
|
|
12
|
+
}
|
|
13
|
+
export function ensureSkillsDir() {
|
|
14
|
+
const dir = getSkillsDir();
|
|
15
|
+
if (!existsSync(dir)) {
|
|
16
|
+
mkdirSync(dir, { recursive: true });
|
|
17
|
+
}
|
|
18
|
+
const indexPath = getSkillsIndexPath();
|
|
19
|
+
if (!existsSync(indexPath)) {
|
|
20
|
+
writeFileSync(indexPath, JSON.stringify({ skills: [] }, null, 2));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function getSkillsIndex() {
|
|
24
|
+
ensureSkillsDir();
|
|
25
|
+
const data = readFileSync(getSkillsIndexPath(), 'utf-8');
|
|
26
|
+
return JSON.parse(data);
|
|
27
|
+
}
|
|
28
|
+
function saveSkillsIndex(index) {
|
|
29
|
+
writeFileSync(getSkillsIndexPath(), JSON.stringify(index, null, 2));
|
|
30
|
+
}
|
|
31
|
+
export function listSkills() {
|
|
32
|
+
return getSkillsIndex().skills;
|
|
33
|
+
}
|
|
34
|
+
export function getSkill(name) {
|
|
35
|
+
const index = getSkillsIndex();
|
|
36
|
+
const entry = index.skills.find(s => s.name === name);
|
|
37
|
+
if (!entry)
|
|
38
|
+
return null;
|
|
39
|
+
const filePath = join(getSkillsDir(), `${name}.md`);
|
|
40
|
+
if (!existsSync(filePath))
|
|
41
|
+
return null;
|
|
42
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
43
|
+
// Parse frontmatter
|
|
44
|
+
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
45
|
+
if (!frontmatterMatch) {
|
|
46
|
+
return {
|
|
47
|
+
name,
|
|
48
|
+
description: entry.description,
|
|
49
|
+
tags: entry.tags,
|
|
50
|
+
version: '1.0',
|
|
51
|
+
content,
|
|
52
|
+
filePath,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const frontmatter = frontmatterMatch[1];
|
|
56
|
+
const body = frontmatterMatch[2];
|
|
57
|
+
// Simple YAML-like parsing
|
|
58
|
+
const versionMatch = frontmatter.match(/version:\s*(.+)/);
|
|
59
|
+
return {
|
|
60
|
+
name,
|
|
61
|
+
description: entry.description,
|
|
62
|
+
tags: entry.tags,
|
|
63
|
+
version: versionMatch ? versionMatch[1].trim() : '1.0',
|
|
64
|
+
content: body.trim(),
|
|
65
|
+
filePath,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export function addSkill(name, content, description = '', tags = []) {
|
|
69
|
+
ensureSkillsDir();
|
|
70
|
+
const filePath = join(getSkillsDir(), `${name}.md`);
|
|
71
|
+
const now = new Date().toISOString().split('T')[0];
|
|
72
|
+
// Create markdown with frontmatter
|
|
73
|
+
const fullContent = `---
|
|
74
|
+
name: ${name}
|
|
75
|
+
description: ${description}
|
|
76
|
+
tags: [${tags.join(', ')}]
|
|
77
|
+
version: 1.0
|
|
78
|
+
created: ${now}
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
${content}
|
|
82
|
+
`;
|
|
83
|
+
writeFileSync(filePath, fullContent);
|
|
84
|
+
// Update index
|
|
85
|
+
const index = getSkillsIndex();
|
|
86
|
+
const existingIndex = index.skills.findIndex(s => s.name === name);
|
|
87
|
+
const entry = {
|
|
88
|
+
name,
|
|
89
|
+
description,
|
|
90
|
+
tags,
|
|
91
|
+
filePath,
|
|
92
|
+
};
|
|
93
|
+
if (existingIndex >= 0) {
|
|
94
|
+
index.skills[existingIndex] = entry;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
index.skills.push(entry);
|
|
98
|
+
}
|
|
99
|
+
saveSkillsIndex(index);
|
|
100
|
+
return {
|
|
101
|
+
name,
|
|
102
|
+
description,
|
|
103
|
+
tags,
|
|
104
|
+
version: '1.0',
|
|
105
|
+
content,
|
|
106
|
+
filePath,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export function deleteSkill(name) {
|
|
110
|
+
const index = getSkillsIndex();
|
|
111
|
+
const entryIndex = index.skills.findIndex(s => s.name === name);
|
|
112
|
+
if (entryIndex === -1)
|
|
113
|
+
return false;
|
|
114
|
+
const filePath = join(getSkillsDir(), `${name}.md`);
|
|
115
|
+
if (existsSync(filePath)) {
|
|
116
|
+
unlinkSync(filePath);
|
|
117
|
+
}
|
|
118
|
+
index.skills.splice(entryIndex, 1);
|
|
119
|
+
saveSkillsIndex(index);
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
export function formatSkillForPrompt(skill) {
|
|
123
|
+
return `[SKILL: ${skill.name}]
|
|
124
|
+
${skill.description ? `Description: ${skill.description}\n` : ''}
|
|
125
|
+
${skill.content}
|
|
126
|
+
|
|
127
|
+
[/SKILL]`;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Low } from 'lowdb';
|
|
2
|
+
import type { Task, TasksState, TaskStatus } from '../types.js';
|
|
3
|
+
export declare function initTasksDB(): Promise<Low<TasksState>>;
|
|
4
|
+
export declare function getDB(): Promise<Low<TasksState>>;
|
|
5
|
+
export declare function getTask(id: string): Promise<Task | undefined>;
|
|
6
|
+
export declare function getAllTasks(): Promise<Task[]>;
|
|
7
|
+
export declare function getTasksByStatus(status: TaskStatus): Promise<Task[]>;
|
|
8
|
+
export declare function createTask(task: Omit<Task, 'createdAt' | 'updatedAt'>): Promise<Task>;
|
|
9
|
+
export declare function updateTask(id: string, updates: Partial<Task>): Promise<Task | null>;
|
|
10
|
+
export declare function deleteTask(id: string): Promise<boolean>;
|
|
11
|
+
export declare function getLogsDir(): string;
|
|
12
|
+
export declare function getLogPath(jobId: string): string;
|
|
13
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5B,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAehE,wBAAsB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAe5D;AAED,wBAAsB,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAMtD;AAED,wBAAsB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAGnE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAGnD;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAG1E;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3F;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAYzF;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ7D;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Low } from 'lowdb';
|
|
2
|
+
import { JSONFile } from 'lowdb/node';
|
|
3
|
+
import { existsSync, mkdirSync } from 'fs';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
const ASYNCWF_DIR = '.asyncwf';
|
|
6
|
+
const TASKS_FILE = 'tasks.json';
|
|
7
|
+
let db = null;
|
|
8
|
+
function getAsyncWFDir() {
|
|
9
|
+
return join(process.cwd(), ASYNCWF_DIR);
|
|
10
|
+
}
|
|
11
|
+
function getTasksPath() {
|
|
12
|
+
return join(getAsyncWFDir(), TASKS_FILE);
|
|
13
|
+
}
|
|
14
|
+
export async function initTasksDB() {
|
|
15
|
+
const dir = getAsyncWFDir();
|
|
16
|
+
if (!existsSync(dir)) {
|
|
17
|
+
mkdirSync(dir, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
const logsDir = join(dir, 'logs');
|
|
20
|
+
if (!existsSync(logsDir)) {
|
|
21
|
+
mkdirSync(logsDir, { recursive: true });
|
|
22
|
+
}
|
|
23
|
+
const adapter = new JSONFile(getTasksPath());
|
|
24
|
+
db = new Low(adapter, { tasks: [] });
|
|
25
|
+
await db.read();
|
|
26
|
+
return db;
|
|
27
|
+
}
|
|
28
|
+
export async function getDB() {
|
|
29
|
+
if (!db) {
|
|
30
|
+
return await initTasksDB();
|
|
31
|
+
}
|
|
32
|
+
await db.read();
|
|
33
|
+
return db;
|
|
34
|
+
}
|
|
35
|
+
export async function getTask(id) {
|
|
36
|
+
const db = await getDB();
|
|
37
|
+
return db.data.tasks.find(t => t.id === id);
|
|
38
|
+
}
|
|
39
|
+
export async function getAllTasks() {
|
|
40
|
+
const db = await getDB();
|
|
41
|
+
return db.data.tasks;
|
|
42
|
+
}
|
|
43
|
+
export async function getTasksByStatus(status) {
|
|
44
|
+
const db = await getDB();
|
|
45
|
+
return db.data.tasks.filter(t => t.status === status);
|
|
46
|
+
}
|
|
47
|
+
export async function createTask(task) {
|
|
48
|
+
const db = await getDB();
|
|
49
|
+
const now = new Date().toISOString();
|
|
50
|
+
const newTask = {
|
|
51
|
+
...task,
|
|
52
|
+
createdAt: now,
|
|
53
|
+
updatedAt: now,
|
|
54
|
+
};
|
|
55
|
+
db.data.tasks.push(newTask);
|
|
56
|
+
await db.write();
|
|
57
|
+
return newTask;
|
|
58
|
+
}
|
|
59
|
+
export async function updateTask(id, updates) {
|
|
60
|
+
const db = await getDB();
|
|
61
|
+
const index = db.data.tasks.findIndex(t => t.id === id);
|
|
62
|
+
if (index === -1)
|
|
63
|
+
return null;
|
|
64
|
+
db.data.tasks[index] = {
|
|
65
|
+
...db.data.tasks[index],
|
|
66
|
+
...updates,
|
|
67
|
+
updatedAt: new Date().toISOString(),
|
|
68
|
+
};
|
|
69
|
+
await db.write();
|
|
70
|
+
return db.data.tasks[index];
|
|
71
|
+
}
|
|
72
|
+
export async function deleteTask(id) {
|
|
73
|
+
const db = await getDB();
|
|
74
|
+
const index = db.data.tasks.findIndex(t => t.id === id);
|
|
75
|
+
if (index === -1)
|
|
76
|
+
return false;
|
|
77
|
+
db.data.tasks.splice(index, 1);
|
|
78
|
+
await db.write();
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
export function getLogsDir() {
|
|
82
|
+
return join(getAsyncWFDir(), 'logs');
|
|
83
|
+
}
|
|
84
|
+
export function getLogPath(jobId) {
|
|
85
|
+
return join(getLogsDir(), `${jobId}.log`);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,IAAI,EAAE,GAA2B,IAAI,CAAC;AAEtC,SAAS,aAAa;IAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY;IACjB,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC7B,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAa,YAAY,EAAE,CAAC,CAAC;IACzD,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK;IACvB,IAAI,CAAC,EAAE,EAAE,CAAC;QACN,OAAO,MAAM,WAAW,EAAE,CAAC;IAC/B,CAAC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAU;IACpC,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC7B,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAkB;IACrD,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA2C;IACxE,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAS;QAClB,GAAG,IAAI;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACjB,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAU,EAAE,OAAsB;IAC/D,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;QACnB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACvB,GAAG,OAAO;QACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IACF,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAU;IACvC,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const ARCHITECT_PERSONA = "## Architect Persona\n\nYou are operating as a senior software architect with the ability to parallelize work.\nYou have access to the `asyncwf` tool suite for managing parallel agent workflows.\n\n**Capabilities:**\n- Analyze complex tasks and decompose into independent sub-tasks\n- Dispatch parallel sub-agents for concurrent execution\n- Coordinate and integrate outputs from multiple agents\n- Learn and reuse skills across projects\n";
|
|
2
|
+
export declare const PARALLEL_PROTOCOL = "## Parallel Execution Protocol\n\n[SYSTEM: ASYNCWF ENABLED]\n\n### When to Parallelize\nIf a request involves multiple distinct, independent modules (e.g., \"Write the Rust Client AND the Python Backend\"), DO NOT do them sequentially.\n\n### How to Use\n\n1. **Analyze**: Break the request into independent sub-tasks.\n2. **Check Skills**: Run `asyncwf skill list` to see available reusable patterns.\n3. **Dispatch**: Run multiple dispatch commands:\n ```bash\n asyncwf taskmgr dispatch --job <id> --prompt \"<context>\" [--skill <name>]\n ```\n4. **Wait**: Run `asyncwf taskmgr wait --jobs <id1>,<id2>,...`\n5. **Fetch & Integrate**: Run `asyncwf taskmgr fetch --job <id>` to see outputs.\n6. **Review**: Check for consistency between outputs.\n\n### Skills Usage\n- List skills: `asyncwf skill list`\n- Use skill in dispatch: `asyncwf taskmgr dispatch --job api --skill rust-api --prompt \"...\"`\n- Add new skill: `asyncwf skill add <name> --content \"<markdown>\"`\n\n### Knowledge Base\n- Search knowledge: `asyncwf kb search <query>`\n- Learn new knowledge: `asyncwf kb learn --topic <name> --content \"<insights>\"`\n- Review knowledge: `asyncwf kb show <topic>`\n\n### Constraints\n- Sub-agents cannot see your conversation history - provide FULL context in --prompt\n- Use skills to ensure consistent patterns across agents\n- Learn reusable patterns to knowledge base for future reference\n- Always check `asyncwf link` status before starting to ensure specs are up to date\n";
|
|
3
|
+
export declare const FILE_WATCH_DIRECTIVE = "## File Watching\n\nMonitor the `specs/` directory for specification changes.\nWhen specs are updated, run `asyncwf link` to refresh project context.\n";
|
|
4
|
+
export declare function generateClaudeMD(projectContext?: string): string;
|
|
5
|
+
export declare function generateProjectContext(specs: Array<{
|
|
6
|
+
name: string;
|
|
7
|
+
summary: string;
|
|
8
|
+
}>): string;
|
|
9
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,4bAU7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,09CAkC7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,4JAIhC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,cAAc,GAAE,MAAW,GAAG,MAAM,CAmBpE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAQ9F"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export const ARCHITECT_PERSONA = `## Architect Persona
|
|
2
|
+
|
|
3
|
+
You are operating as a senior software architect with the ability to parallelize work.
|
|
4
|
+
You have access to the \`asyncwf\` tool suite for managing parallel agent workflows.
|
|
5
|
+
|
|
6
|
+
**Capabilities:**
|
|
7
|
+
- Analyze complex tasks and decompose into independent sub-tasks
|
|
8
|
+
- Dispatch parallel sub-agents for concurrent execution
|
|
9
|
+
- Coordinate and integrate outputs from multiple agents
|
|
10
|
+
- Learn and reuse skills across projects
|
|
11
|
+
`;
|
|
12
|
+
export const PARALLEL_PROTOCOL = `## Parallel Execution Protocol
|
|
13
|
+
|
|
14
|
+
[SYSTEM: ASYNCWF ENABLED]
|
|
15
|
+
|
|
16
|
+
### When to Parallelize
|
|
17
|
+
If a request involves multiple distinct, independent modules (e.g., "Write the Rust Client AND the Python Backend"), DO NOT do them sequentially.
|
|
18
|
+
|
|
19
|
+
### How to Use
|
|
20
|
+
|
|
21
|
+
1. **Analyze**: Break the request into independent sub-tasks.
|
|
22
|
+
2. **Check Skills**: Run \`asyncwf skill list\` to see available reusable patterns.
|
|
23
|
+
3. **Dispatch**: Run multiple dispatch commands:
|
|
24
|
+
\`\`\`bash
|
|
25
|
+
asyncwf taskmgr dispatch --job <id> --prompt "<context>" [--skill <name>]
|
|
26
|
+
\`\`\`
|
|
27
|
+
4. **Wait**: Run \`asyncwf taskmgr wait --jobs <id1>,<id2>,...\`
|
|
28
|
+
5. **Fetch & Integrate**: Run \`asyncwf taskmgr fetch --job <id>\` to see outputs.
|
|
29
|
+
6. **Review**: Check for consistency between outputs.
|
|
30
|
+
|
|
31
|
+
### Skills Usage
|
|
32
|
+
- List skills: \`asyncwf skill list\`
|
|
33
|
+
- Use skill in dispatch: \`asyncwf taskmgr dispatch --job api --skill rust-api --prompt "..."\`
|
|
34
|
+
- Add new skill: \`asyncwf skill add <name> --content "<markdown>"\`
|
|
35
|
+
|
|
36
|
+
### Knowledge Base
|
|
37
|
+
- Search knowledge: \`asyncwf kb search <query>\`
|
|
38
|
+
- Learn new knowledge: \`asyncwf kb learn --topic <name> --content "<insights>"\`
|
|
39
|
+
- Review knowledge: \`asyncwf kb show <topic>\`
|
|
40
|
+
|
|
41
|
+
### Constraints
|
|
42
|
+
- Sub-agents cannot see your conversation history - provide FULL context in --prompt
|
|
43
|
+
- Use skills to ensure consistent patterns across agents
|
|
44
|
+
- Learn reusable patterns to knowledge base for future reference
|
|
45
|
+
- Always check \`asyncwf link\` status before starting to ensure specs are up to date
|
|
46
|
+
`;
|
|
47
|
+
export const FILE_WATCH_DIRECTIVE = `## File Watching
|
|
48
|
+
|
|
49
|
+
Monitor the \`specs/\` directory for specification changes.
|
|
50
|
+
When specs are updated, run \`asyncwf link\` to refresh project context.
|
|
51
|
+
`;
|
|
52
|
+
export function generateClaudeMD(projectContext = '') {
|
|
53
|
+
let content = `# AsyncWF Project Configuration
|
|
54
|
+
|
|
55
|
+
${ARCHITECT_PERSONA}
|
|
56
|
+
|
|
57
|
+
${PARALLEL_PROTOCOL}
|
|
58
|
+
|
|
59
|
+
${FILE_WATCH_DIRECTIVE}
|
|
60
|
+
`;
|
|
61
|
+
if (projectContext) {
|
|
62
|
+
content += `
|
|
63
|
+
## Project Context
|
|
64
|
+
|
|
65
|
+
${projectContext}
|
|
66
|
+
`;
|
|
67
|
+
}
|
|
68
|
+
return content;
|
|
69
|
+
}
|
|
70
|
+
export function generateProjectContext(specs) {
|
|
71
|
+
if (specs.length === 0)
|
|
72
|
+
return '';
|
|
73
|
+
let context = 'The following specifications are available:\n\n';
|
|
74
|
+
for (const spec of specs) {
|
|
75
|
+
context += `- **${spec.name}**: ${spec.summary}\n`;
|
|
76
|
+
}
|
|
77
|
+
return context;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;CAUhC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkChC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;CAInC,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,iBAAyB,EAAE;IACxD,IAAI,OAAO,GAAG;;EAEhB,iBAAiB;;EAEjB,iBAAiB;;EAEjB,oBAAoB;CACrB,CAAC;IAEE,IAAI,cAAc,EAAE,CAAC;QACjB,OAAO,IAAI;;;EAGjB,cAAc;CACf,CAAC;IACE,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAA+C;IAClF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,IAAI,OAAO,GAAG,iDAAiD,CAAC;IAChE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export type TaskStatus = 'pending' | 'running' | 'done' | 'failed';
|
|
2
|
+
export interface Task {
|
|
3
|
+
id: string;
|
|
4
|
+
prompt: string;
|
|
5
|
+
skill?: string;
|
|
6
|
+
status: TaskStatus;
|
|
7
|
+
pid?: number;
|
|
8
|
+
exitCode?: number;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
updatedAt: string;
|
|
11
|
+
logFile?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface TasksState {
|
|
14
|
+
tasks: Task[];
|
|
15
|
+
}
|
|
16
|
+
export interface Skill {
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
tags: string[];
|
|
20
|
+
version: string;
|
|
21
|
+
content: string;
|
|
22
|
+
filePath: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SkillsIndex {
|
|
25
|
+
skills: Array<{
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
tags: string[];
|
|
29
|
+
filePath: string;
|
|
30
|
+
}>;
|
|
31
|
+
}
|
|
32
|
+
export interface KnowledgeEntry {
|
|
33
|
+
topic: string;
|
|
34
|
+
created: string;
|
|
35
|
+
updated: string;
|
|
36
|
+
source: 'model-learned' | 'user-provided' | 'imported';
|
|
37
|
+
content: string;
|
|
38
|
+
filePath: string;
|
|
39
|
+
}
|
|
40
|
+
export interface KnowledgeIndex {
|
|
41
|
+
entries: Array<{
|
|
42
|
+
topic: string;
|
|
43
|
+
created: string;
|
|
44
|
+
updated: string;
|
|
45
|
+
filePath: string;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
48
|
+
export interface AsyncWFConfig {
|
|
49
|
+
version: string;
|
|
50
|
+
agentCommand: string;
|
|
51
|
+
ckbPath: string;
|
|
52
|
+
}
|
|
53
|
+
export interface GlobalConfig {
|
|
54
|
+
version: string;
|
|
55
|
+
defaultAgentCommand: string;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAGnE,MAAM,WAAW,IAAI;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;CACjB;AAGD,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,KAAK,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACN;AAGD,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,GAAG,eAAe,GAAG,UAAU,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACN;AAGD,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC/B"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "asyncwf",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Model-Driven Parallel Agent Workflow CLI for claude-code",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"asyncwf": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"dev": "tsc --watch",
|
|
17
|
+
"start": "node dist/index.js",
|
|
18
|
+
"test": "vitest run",
|
|
19
|
+
"prepublishOnly": "npm run build"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"cli",
|
|
23
|
+
"claude",
|
|
24
|
+
"ai",
|
|
25
|
+
"workflow",
|
|
26
|
+
"parallel",
|
|
27
|
+
"agent",
|
|
28
|
+
"asyncwf",
|
|
29
|
+
"llm"
|
|
30
|
+
],
|
|
31
|
+
"author": "rand0mdevel0per",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "git+https://github.com/rand0mdevel0per/asyncwf.git"
|
|
36
|
+
},
|
|
37
|
+
"homepage": "https://github.com/rand0mdevel0per/asyncwf#readme",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/rand0mdevel0per/asyncwf/issues"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"chalk": "^5.3.0",
|
|
43
|
+
"commander": "^12.1.0",
|
|
44
|
+
"glob": "^10.3.10",
|
|
45
|
+
"lowdb": "^7.0.1"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@types/node": "^20.11.0",
|
|
49
|
+
"typescript": "^5.3.3",
|
|
50
|
+
"vitest": "^1.2.0"
|
|
51
|
+
},
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=18.0.0"
|
|
54
|
+
}
|
|
55
|
+
}
|