academic-army 0.1.0 → 0.1.2

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.
Files changed (118) hide show
  1. package/README.md +24 -24
  2. package/README.zh-CN.md +24 -24
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +47 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/developing/agents/developer.d.ts +9 -0
  8. package/dist/developing/agents/developer.d.ts.map +1 -0
  9. package/dist/developing/agents/developer.js +34 -0
  10. package/dist/developing/agents/developer.js.map +1 -0
  11. package/dist/developing/agents/factory.d.ts +3 -0
  12. package/dist/developing/agents/factory.d.ts.map +1 -0
  13. package/dist/developing/agents/factory.js +9 -0
  14. package/dist/developing/agents/factory.js.map +1 -0
  15. package/{src/developing/agents/index.ts → dist/developing/agents/index.d.ts} +2 -4
  16. package/dist/developing/agents/index.d.ts.map +1 -0
  17. package/dist/developing/agents/index.js +6 -0
  18. package/dist/developing/agents/index.js.map +1 -0
  19. package/dist/developing/agents/manager.d.ts +19 -0
  20. package/dist/developing/agents/manager.d.ts.map +1 -0
  21. package/dist/developing/agents/manager.js +56 -0
  22. package/dist/developing/agents/manager.js.map +1 -0
  23. package/dist/developing/agents/prompts.d.ts +3 -0
  24. package/dist/developing/agents/prompts.d.ts.map +1 -0
  25. package/dist/developing/agents/prompts.js +12 -0
  26. package/dist/developing/agents/prompts.js.map +1 -0
  27. package/dist/developing/agents/reviewer.d.ts +10 -0
  28. package/dist/developing/agents/reviewer.d.ts.map +1 -0
  29. package/dist/developing/agents/reviewer.js +35 -0
  30. package/dist/developing/agents/reviewer.js.map +1 -0
  31. package/dist/developing/agents/trajectory-optimizer.d.ts +19 -0
  32. package/dist/developing/agents/trajectory-optimizer.d.ts.map +1 -0
  33. package/{src/developing/agents/trajectory-optimizer.ts → dist/developing/agents/trajectory-optimizer.js} +9 -28
  34. package/dist/developing/agents/trajectory-optimizer.js.map +1 -0
  35. package/dist/developing/agents/types.d.ts +19 -0
  36. package/dist/developing/agents/types.d.ts.map +1 -0
  37. package/dist/developing/agents/types.js +21 -0
  38. package/dist/developing/agents/types.js.map +1 -0
  39. package/dist/developing/index.d.ts +3 -0
  40. package/dist/developing/index.d.ts.map +1 -0
  41. package/{src/developing/index.ts → dist/developing/index.js} +1 -0
  42. package/dist/developing/index.js.map +1 -0
  43. package/dist/developing/pipeline.d.ts +31 -0
  44. package/dist/developing/pipeline.d.ts.map +1 -0
  45. package/dist/developing/pipeline.js +175 -0
  46. package/dist/developing/pipeline.js.map +1 -0
  47. package/dist/developing/pipelineskill.d.ts +15 -0
  48. package/dist/developing/pipelineskill.d.ts.map +1 -0
  49. package/dist/developing/pipelineskill.js +110 -0
  50. package/dist/developing/pipelineskill.js.map +1 -0
  51. package/dist/evolve-skill/agents/evaluator.d.ts +10 -0
  52. package/dist/evolve-skill/agents/evaluator.d.ts.map +1 -0
  53. package/{src/evolve-skill/agents/evaluator.ts → dist/evolve-skill/agents/evaluator.js} +6 -12
  54. package/dist/evolve-skill/agents/evaluator.js.map +1 -0
  55. package/dist/evolve-skill/agents/factory.d.ts +3 -0
  56. package/dist/evolve-skill/agents/factory.d.ts.map +1 -0
  57. package/dist/evolve-skill/agents/factory.js +9 -0
  58. package/dist/evolve-skill/agents/factory.js.map +1 -0
  59. package/{src/evolve-skill/agents/index.ts → dist/evolve-skill/agents/index.d.ts} +1 -0
  60. package/dist/evolve-skill/agents/index.d.ts.map +1 -0
  61. package/dist/evolve-skill/agents/index.js +5 -0
  62. package/dist/evolve-skill/agents/index.js.map +1 -0
  63. package/dist/evolve-skill/agents/modifier.d.ts +10 -0
  64. package/dist/evolve-skill/agents/modifier.d.ts.map +1 -0
  65. package/{src/evolve-skill/agents/modifier.ts → dist/evolve-skill/agents/modifier.js} +6 -12
  66. package/dist/evolve-skill/agents/modifier.js.map +1 -0
  67. package/dist/evolve-skill/agents/runner.d.ts +10 -0
  68. package/dist/evolve-skill/agents/runner.d.ts.map +1 -0
  69. package/dist/evolve-skill/agents/runner.js +13 -0
  70. package/dist/evolve-skill/agents/runner.js.map +1 -0
  71. package/dist/evolve-skill/index.d.ts +2 -0
  72. package/dist/evolve-skill/index.d.ts.map +1 -0
  73. package/dist/evolve-skill/index.js +2 -0
  74. package/dist/evolve-skill/index.js.map +1 -0
  75. package/dist/evolve-skill/pipeline.d.ts +19 -0
  76. package/dist/evolve-skill/pipeline.d.ts.map +1 -0
  77. package/dist/evolve-skill/pipeline.js +74 -0
  78. package/dist/evolve-skill/pipeline.js.map +1 -0
  79. package/dist/pipeline.d.ts +13 -0
  80. package/dist/pipeline.d.ts.map +1 -0
  81. package/dist/pipeline.js +24 -0
  82. package/dist/pipeline.js.map +1 -0
  83. package/metaskills/README.md +10 -10
  84. package/metaskills/README.zh-CN.md +11 -11
  85. package/metaskills/academic-army-coding-plan/ENVOLVETASK.md +1 -1
  86. package/metaskills/academic-army-experiment-plan/ENVOLVETASK.md +1 -1
  87. package/metaskills/academic-army-experiment-plan/METASKILL.md +0 -1
  88. package/package.json +37 -3
  89. package/skills/academic-army-architect/SKILL.md +12 -12
  90. package/skills/academic-army-architect/references/blueprint-schema.md +27 -0
  91. package/skills/academic-army-coding-plan/SKILL.md +8 -5
  92. package/skills/academic-army-experiment-plan/SKILL.md +2 -2
  93. package/skills/academic-army-repo-scaffold/SKILL.md +1 -1
  94. package/.editorconfig +0 -9
  95. package/.github/workflows/publish.yml +0 -44
  96. package/.prettierrc.json +0 -3
  97. package/eslint.config.js +0 -28
  98. package/src/README.md +0 -79
  99. package/src/README.zh-CN.md +0 -79
  100. package/src/cli.ts +0 -55
  101. package/src/developing/README.md +0 -146
  102. package/src/developing/README.zh-CN.md +0 -146
  103. package/src/developing/agents/developer.ts +0 -40
  104. package/src/developing/agents/factory.ts +0 -11
  105. package/src/developing/agents/manager.ts +0 -74
  106. package/src/developing/agents/prompts.ts +0 -12
  107. package/src/developing/agents/reviewer.ts +0 -44
  108. package/src/developing/agents/types.ts +0 -41
  109. package/src/developing/pipeline.ts +0 -306
  110. package/src/developing/pipelineskill.ts +0 -169
  111. package/src/evolve-skill/README.md +0 -116
  112. package/src/evolve-skill/README.zh-CN.md +0 -116
  113. package/src/evolve-skill/agents/factory.ts +0 -11
  114. package/src/evolve-skill/agents/runner.ts +0 -19
  115. package/src/evolve-skill/index.ts +0 -1
  116. package/src/evolve-skill/pipeline.ts +0 -140
  117. package/src/pipeline.ts +0 -65
  118. package/tsconfig.json +0 -22
@@ -0,0 +1,21 @@
1
+ import { Agent } from "coding-agent-forge/agent";
2
+ import { statSync } from "node:fs";
3
+ import path from "node:path";
4
+ export class DevelopingAgent extends Agent {
5
+ workspacePath;
6
+ constructor(thread, constants) {
7
+ if (!constants.workspacePath) {
8
+ throw new Error("Developing agent constants.workspacePath must be configured.");
9
+ }
10
+ const workspacePath = path.resolve(constants.workspacePath);
11
+ if (!statSync(workspacePath).isDirectory()) {
12
+ throw new Error(`workspacePath must be a directory: ${workspacePath}`);
13
+ }
14
+ super(thread, { workspacePath });
15
+ this.workspacePath = workspacePath;
16
+ }
17
+ workspaceRelativePath(filePath) {
18
+ return path.relative(this.workspacePath, path.resolve(filePath)) || ".";
19
+ }
20
+ }
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/developing/agents/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAe7B,MAAM,OAAgB,eAA4D,SAAQ,KAGzF;IACoB,aAAa,CAAS;IAEzC,YAAY,MAAc,EAAE,SAAoC;QAC9D,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAES,qBAAqB,CAAC,QAAgB;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;IAC1E,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export * from "./pipeline.js";
2
+ export * from "./pipelineskill.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/developing/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./pipeline.js";
2
2
  export * from "./pipelineskill.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/developing/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { AgentTeam } from "coding-agent-forge";
2
+ import { type ParsedPipelineArgs } from "../pipeline.js";
3
+ import { type CodingManagerVariables, type CodeReviewerVariables, type DeveloperVariables } from "./agents/index.js";
4
+ import type { DevelopingAgentVariables } from "./agents/types.js";
5
+ export type DevelopingAgentVariablesByName = {
6
+ "coding-manager": CodingManagerVariables;
7
+ developer: DeveloperVariables;
8
+ "code-reviewer": CodeReviewerVariables;
9
+ };
10
+ export type DevelopingOptions = {
11
+ targetPath: string;
12
+ achiveDir: string;
13
+ artifactPath: string;
14
+ codingStyleSkillPath: string;
15
+ paperBlueprintPath: string;
16
+ experimentPlanPath: string;
17
+ codingPlanPath: string;
18
+ goalPath: string;
19
+ maxIterations: number;
20
+ maxRevisionIterations: number;
21
+ hooks?: DevelopingHooks;
22
+ };
23
+ export type DevelopingHooks = {
24
+ beforeRevisionLoop?: (agentVariables: DevelopingAgentVariables, currentTask: string) => Promise<void> | void;
25
+ afterRevision?: (revision: number, agentVariables: DevelopingAgentVariables, currentTask: string, developerReport: string, reviewerReport: string, revisionReports: readonly string[]) => Promise<void> | void;
26
+ afterTodoUpdate?: (agentVariables: DevelopingAgentVariables, currentTask: string, revisionReport: string, todoUpdateReport: string) => Promise<void> | void;
27
+ };
28
+ export declare function parseDevelopingArgs(args: readonly string[]): ParsedPipelineArgs<DevelopingOptions>;
29
+ export declare function developing(team: AgentTeam<DevelopingAgentVariablesByName>, options: DevelopingOptions): Promise<void>;
30
+ export declare const developingPipeline: import("../pipeline.js").PipelineDefinition<DevelopingAgentVariablesByName, DevelopingOptions>;
31
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/developing/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,oBAAoB,CAAC;AAKpE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,eAAe,EAAE,qBAAqB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB,CAAC,EAAE,CACnB,cAAc,EAAE,wBAAwB,EACxC,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,wBAAwB,EACxC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,SAAS,MAAM,EAAE,KAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,CAChB,cAAc,EAAE,wBAAwB,EACxC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3B,CAAC;AAoBF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,kBAAkB,CAAC,iBAAiB,CAAC,CA6DvC;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,CAAC,8BAA8B,CAAC,EAC/C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAiJf;AAeD,eAAO,MAAM,kBAAkB,gGAI7B,CAAC"}
@@ -0,0 +1,175 @@
1
+ import { existsSync } from "node:fs";
2
+ import { cp, mkdir, readFile, writeFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { parseArgs } from "node:util";
5
+ import { definePipeline } from "../pipeline.js";
6
+ import { agentFactories, } from "./agents/index.js";
7
+ const USAGE = [
8
+ "Usage: npm run developing --",
9
+ "--config <path>",
10
+ "--target-path <folder>",
11
+ "--achive-dir <folder>",
12
+ "--artifact-path <folder>",
13
+ "--coding-style-skill-path <path>",
14
+ "--paper-blueprint-path <path>",
15
+ "--experiment-plan-path <path>",
16
+ "--coding-plan-path <path>",
17
+ "--goal-path <path>",
18
+ "[--max-iterations <positive-integer>]",
19
+ "[--max-revision-iterations <positive-integer>]",
20
+ ].join(" ");
21
+ const FINISH_MARK = "FINISHED";
22
+ const ACCEPT_MARK = "ACCEPT";
23
+ export function parseDevelopingArgs(args) {
24
+ const { values: { config, "target-path": targetPath, "achive-dir": achiveDir, "artifact-path": artifactPath, "coding-style-skill-path": codingStyleSkillPath, "paper-blueprint-path": paperBlueprintPath, "experiment-plan-path": experimentPlanPath, "coding-plan-path": codingPlanPath, "goal-path": goalPath, "max-iterations": maxIterations, "max-revision-iterations": maxRevisionIterations, }, } = parseArgs({
25
+ args: [...args],
26
+ options: {
27
+ config: { type: "string", multiple: true },
28
+ "target-path": { type: "string" },
29
+ "achive-dir": { type: "string" },
30
+ "artifact-path": { type: "string" },
31
+ "coding-style-skill-path": { type: "string" },
32
+ "paper-blueprint-path": { type: "string" },
33
+ "experiment-plan-path": { type: "string" },
34
+ "coding-plan-path": { type: "string" },
35
+ "goal-path": { type: "string" },
36
+ "max-iterations": { type: "string" },
37
+ "max-revision-iterations": { type: "string" },
38
+ },
39
+ });
40
+ if (config === undefined ||
41
+ targetPath === undefined ||
42
+ achiveDir === undefined ||
43
+ artifactPath === undefined ||
44
+ codingStyleSkillPath === undefined ||
45
+ paperBlueprintPath === undefined ||
46
+ experimentPlanPath === undefined ||
47
+ codingPlanPath === undefined ||
48
+ goalPath === undefined) {
49
+ throw new Error(USAGE);
50
+ }
51
+ return {
52
+ configPaths: config,
53
+ runningOptions: {
54
+ targetPath,
55
+ achiveDir,
56
+ artifactPath,
57
+ codingStyleSkillPath,
58
+ paperBlueprintPath,
59
+ experimentPlanPath,
60
+ codingPlanPath,
61
+ goalPath,
62
+ maxIterations: Number(maxIterations ?? 10),
63
+ maxRevisionIterations: Number(maxRevisionIterations ?? 3),
64
+ },
65
+ };
66
+ }
67
+ export async function developing(team, options) {
68
+ const logRecord = (thread, record) => {
69
+ console.log(thread.recordToPrettyString(record));
70
+ };
71
+ const achiveDir = path.resolve(options.achiveDir);
72
+ const artifactPath = path.resolve(options.artifactPath);
73
+ const todoPath = path.join(artifactPath, "TODO.md");
74
+ const goal = await readGoal(options.goalPath);
75
+ const agentVariables = {
76
+ targetPath: path.resolve(options.targetPath),
77
+ codingStyleSkillPath: path.resolve(options.codingStyleSkillPath),
78
+ paperBlueprintPath: path.resolve(options.paperBlueprintPath),
79
+ experimentPlanPath: path.resolve(options.experimentPlanPath),
80
+ codingPlanPath: path.resolve(options.codingPlanPath),
81
+ goal,
82
+ };
83
+ await mkdir(achiveDir, { recursive: true });
84
+ await mkdir(artifactPath, { recursive: true });
85
+ if (!existsSync(todoPath)) {
86
+ await writeText(todoPath, "# TODO");
87
+ }
88
+ await mkdir(agentVariables.targetPath, { recursive: true });
89
+ for (let iteration = 1; iteration <= options.maxIterations; iteration++) {
90
+ console.log(`\n# Developing iteration ${String(iteration)}\n`);
91
+ const archiveDir = path.join(achiveDir, new Date().toISOString().replace(/[:.]/g, "-"));
92
+ await mkdir(archiveDir, { recursive: true });
93
+ const codingManager = await team.createAgent("coding-manager");
94
+ const developer = await team.createAgent("developer");
95
+ const codeReviewer = await team.createAgent("code-reviewer");
96
+ const currentTask = (await codingManager.runStreamed({
97
+ ...agentVariables,
98
+ todoPath,
99
+ finishMark: FINISH_MARK,
100
+ phase: "select",
101
+ }, logRecord)).trim();
102
+ await writeText(path.join(archiveDir, "current_task.md"), currentTask);
103
+ if (currentTask.trim() === FINISH_MARK) {
104
+ console.log(`\n# ${FINISH_MARK}\n`);
105
+ return;
106
+ }
107
+ let previousReviewerReport = "";
108
+ const revisionReports = [];
109
+ await options.hooks?.beforeRevisionLoop?.(agentVariables, currentTask);
110
+ for (let revision = 1; revision <= options.maxRevisionIterations; revision++) {
111
+ console.log(`\n# Review revision ${String(revision)}\n`);
112
+ const developerVariables = {
113
+ ...agentVariables,
114
+ currentTask,
115
+ };
116
+ if (previousReviewerReport) {
117
+ developerVariables.reviewerReport = previousReviewerReport;
118
+ }
119
+ const developerReport = (await developer.runStreamed(developerVariables, logRecord)).trim();
120
+ await writeText(path.join(archiveDir, `developer_report_${String(revision).padStart(3, "0")}.md`), developerReport);
121
+ revisionReports.push(`Developer report ${String(revision)}:\n${developerReport}`);
122
+ const reviewerReport = (await codeReviewer.runStreamed({
123
+ ...agentVariables,
124
+ acceptMark: ACCEPT_MARK,
125
+ currentTask,
126
+ developerReport,
127
+ }, logRecord)).trim();
128
+ await writeText(path.join(archiveDir, `code_review_${String(revision).padStart(3, "0")}.md`), reviewerReport);
129
+ revisionReports.push(`Reviewer report ${String(revision)}:\n${reviewerReport}`);
130
+ const accepted = reviewerReport.trim() === ACCEPT_MARK;
131
+ if (accepted) {
132
+ revisionReports.push("Reviewer accepted the changes.");
133
+ }
134
+ if (!accepted && revision === options.maxRevisionIterations) {
135
+ revisionReports.push("Reviewer did not accept the changes before max revision iterations.");
136
+ }
137
+ await options.hooks?.afterRevision?.(revision, agentVariables, currentTask, developerReport, reviewerReport, revisionReports);
138
+ if (accepted) {
139
+ break;
140
+ }
141
+ previousReviewerReport = reviewerReport;
142
+ }
143
+ const revisionReport = revisionReports.join("\n\n");
144
+ await writeText(path.join(archiveDir, "revision_report.md"), revisionReport);
145
+ const todoUpdateReport = (await codingManager.runStreamed({
146
+ ...agentVariables,
147
+ todoPath,
148
+ finishMark: FINISH_MARK,
149
+ phase: "update",
150
+ currentTask,
151
+ revisionReport,
152
+ }, logRecord)).trim();
153
+ await writeText(path.join(archiveDir, "todo_update_report.md"), todoUpdateReport);
154
+ await cp(artifactPath, path.join(archiveDir, "artifacts"), { recursive: true });
155
+ await options.hooks?.afterTodoUpdate?.(agentVariables, currentTask, revisionReport, todoUpdateReport);
156
+ }
157
+ throw new Error(`Reached --max-iterations ${String(options.maxIterations)} before the coding-manager returned ${FINISH_MARK}.`);
158
+ }
159
+ async function writeText(filePath, content) {
160
+ await mkdir(path.dirname(filePath), { recursive: true });
161
+ await writeFile(filePath, `${content.trimEnd()}\n`, "utf8");
162
+ }
163
+ async function readGoal(goalPath) {
164
+ const goal = (await readFile(path.resolve(goalPath), "utf8")).trim();
165
+ if (goal === "") {
166
+ throw new Error(`Goal file must not be empty: ${goalPath}`);
167
+ }
168
+ return goal;
169
+ }
170
+ export const developingPipeline = definePipeline({
171
+ agentFactories,
172
+ parseArgs: parseDevelopingArgs,
173
+ run: developing,
174
+ });
175
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/developing/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type AgentFactoryMap, AgentTeam } from "coding-agent-forge";
2
+ import { type ParsedPipelineArgs } from "../pipeline.js";
3
+ import { type TrajectoryOptimizerVariables } from "./agents/index.js";
4
+ import { type DevelopingAgentVariablesByName, type DevelopingOptions } from "./pipeline.js";
5
+ export type DevelopingSkillAgentVariables = DevelopingAgentVariablesByName & {
6
+ "trajectory-optimizer": TrajectoryOptimizerVariables;
7
+ };
8
+ export type DevelopingSkillOptions = DevelopingOptions & {
9
+ metaskillPath: string;
10
+ };
11
+ export declare function parseDevelopingSkillArgs(args: readonly string[]): ParsedPipelineArgs<DevelopingSkillOptions>;
12
+ export declare function developingSkill(team: AgentTeam<DevelopingSkillAgentVariables>, options: DevelopingSkillOptions): Promise<void>;
13
+ export declare const developingSkillAgentFactories: AgentFactoryMap;
14
+ export declare const developingSkillPipeline: import("../pipeline.js").PipelineDefinition<DevelopingSkillAgentVariables, DevelopingSkillOptions>;
15
+ //# sourceMappingURL=pipelineskill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineskill.d.ts","sourceRoot":"","sources":["../../src/developing/pipelineskill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,SAAS,EAAuB,MAAM,oBAAoB,CAAC;AAG1F,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,6BAA6B,GAAG,8BAA8B,GAAG;IAC3E,sBAAsB,EAAE,4BAA4B,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG;IACvD,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAkBF,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,kBAAkB,CAAC,sBAAsB,CAAC,CAiE5C;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,SAAS,CAAC,6BAA6B,CAAC,EAC9C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED,eAAO,MAAM,6BAA6B,EAAE,eAG3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,oGAIlC,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { parseArgs } from "node:util";
2
+ import { definePipeline } from "../pipeline.js";
3
+ import { agentFactories as developingAgentFactories, TrajectoryOptimizerAgent, } from "./agents/index.js";
4
+ import { developing, } from "./pipeline.js";
5
+ const USAGE = [
6
+ "Usage: npm run developing-skill --",
7
+ "--config <path>",
8
+ "--target-path <folder>",
9
+ "--achive-dir <folder>",
10
+ "--artifact-path <folder>",
11
+ "--coding-style-skill-path <path>",
12
+ "--metaskill-path <path>",
13
+ "--paper-blueprint-path <path>",
14
+ "--experiment-plan-path <path>",
15
+ "--coding-plan-path <path>",
16
+ "--goal-path <path>",
17
+ "[--max-iterations <positive-integer>]",
18
+ "[--max-revision-iterations <positive-integer>]",
19
+ ].join(" ");
20
+ export function parseDevelopingSkillArgs(args) {
21
+ const { values: { config, "target-path": targetPath, "achive-dir": achiveDir, "artifact-path": artifactPath, "coding-style-skill-path": codingStyleSkillPath, "metaskill-path": metaskillPath, "paper-blueprint-path": paperBlueprintPath, "experiment-plan-path": experimentPlanPath, "coding-plan-path": codingPlanPath, "goal-path": goalPath, "max-iterations": maxIterations, "max-revision-iterations": maxRevisionIterations, }, } = parseArgs({
22
+ args: [...args],
23
+ options: {
24
+ config: { type: "string", multiple: true },
25
+ "target-path": { type: "string" },
26
+ "achive-dir": { type: "string" },
27
+ "artifact-path": { type: "string" },
28
+ "coding-style-skill-path": { type: "string" },
29
+ "metaskill-path": { type: "string" },
30
+ "paper-blueprint-path": { type: "string" },
31
+ "experiment-plan-path": { type: "string" },
32
+ "coding-plan-path": { type: "string" },
33
+ "goal-path": { type: "string" },
34
+ "max-iterations": { type: "string" },
35
+ "max-revision-iterations": { type: "string" },
36
+ },
37
+ });
38
+ if (config === undefined ||
39
+ targetPath === undefined ||
40
+ achiveDir === undefined ||
41
+ artifactPath === undefined ||
42
+ codingStyleSkillPath === undefined ||
43
+ metaskillPath === undefined ||
44
+ paperBlueprintPath === undefined ||
45
+ experimentPlanPath === undefined ||
46
+ codingPlanPath === undefined ||
47
+ goalPath === undefined) {
48
+ throw new Error(USAGE);
49
+ }
50
+ return {
51
+ configPaths: config,
52
+ runningOptions: {
53
+ targetPath,
54
+ achiveDir,
55
+ artifactPath,
56
+ codingStyleSkillPath,
57
+ metaskillPath,
58
+ paperBlueprintPath,
59
+ experimentPlanPath,
60
+ codingPlanPath,
61
+ goalPath,
62
+ maxIterations: Number(maxIterations ?? 10),
63
+ maxRevisionIterations: Number(maxRevisionIterations ?? 3),
64
+ },
65
+ };
66
+ }
67
+ export async function developingSkill(team, options) {
68
+ const logRecord = (thread, record) => {
69
+ console.log(thread.recordToPrettyString(record));
70
+ };
71
+ let trajectoryOptimizer;
72
+ await developing(team, {
73
+ ...options,
74
+ hooks: {
75
+ beforeRevisionLoop: async (agentVariables, currentTask) => {
76
+ trajectoryOptimizer = await team.createAgent("trajectory-optimizer");
77
+ const repositoryScan = (await trajectoryOptimizer.runStreamed({
78
+ ...agentVariables,
79
+ phase: "scan",
80
+ currentTask,
81
+ }, logRecord)).trim();
82
+ console.log(`\n# Skill trajectory repository scan\n${repositoryScan}\n`);
83
+ },
84
+ afterTodoUpdate: async (agentVariables, currentTask, revisionReport, todoUpdateReport) => {
85
+ if (trajectoryOptimizer === undefined) {
86
+ throw new Error("Trajectory optimizer must scan the repository before optimizing.");
87
+ }
88
+ const optimizerReport = (await trajectoryOptimizer.runStreamed({
89
+ ...agentVariables,
90
+ phase: "optimize",
91
+ currentTask,
92
+ revisionReport,
93
+ todoUpdateReport,
94
+ metaskillPath: options.metaskillPath,
95
+ }, logRecord)).trim();
96
+ console.log(`\n# Skill trajectory optimizer report\n${optimizerReport}\n`);
97
+ },
98
+ },
99
+ });
100
+ }
101
+ export const developingSkillAgentFactories = {
102
+ ...developingAgentFactories,
103
+ "trajectory-optimizer": (thread, constants) => new TrajectoryOptimizerAgent(thread, constants),
104
+ };
105
+ export const developingSkillPipeline = definePipeline({
106
+ agentFactories: developingSkillAgentFactories,
107
+ parseArgs: parseDevelopingSkillArgs,
108
+ run: developingSkill,
109
+ });
110
+ //# sourceMappingURL=pipelineskill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineskill.js","sourceRoot":"","sources":["../../src/developing/pipelineskill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,cAAc,IAAI,wBAAwB,EAC1C,wBAAwB,GAEzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,UAAU,GAGX,MAAM,eAAe,CAAC;AAUvB,MAAM,KAAK,GAAG;IACZ,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,kCAAkC;IAClC,yBAAyB;IACzB,+BAA+B;IAC/B,+BAA+B;IAC/B,2BAA2B;IAC3B,oBAAoB;IACpB,uCAAuC;IACvC,gDAAgD;CACjD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,UAAU,wBAAwB,CACtC,IAAuB;IAEvB,MAAM,EACJ,MAAM,EAAE,EACN,MAAM,EACN,aAAa,EAAE,UAAU,EACzB,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,YAAY,EAC7B,yBAAyB,EAAE,oBAAoB,EAC/C,gBAAgB,EAAE,aAAa,EAC/B,sBAAsB,EAAE,kBAAkB,EAC1C,sBAAsB,EAAE,kBAAkB,EAC1C,kBAAkB,EAAE,cAAc,EAClC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,aAAa,EAC/B,yBAAyB,EAAE,qBAAqB,GACjD,GACF,GAAG,SAAS,CAAC;QACZ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACf,OAAO,EAAE;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1C,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,yBAAyB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7C,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1C,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1C,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,yBAAyB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC9C;KACF,CAAC,CAAC;IAEH,IACE,MAAM,KAAK,SAAS;QACpB,UAAU,KAAK,SAAS;QACxB,SAAS,KAAK,SAAS;QACvB,YAAY,KAAK,SAAS;QAC1B,oBAAoB,KAAK,SAAS;QAClC,aAAa,KAAK,SAAS;QAC3B,kBAAkB,KAAK,SAAS;QAChC,kBAAkB,KAAK,SAAS;QAChC,cAAc,KAAK,SAAS;QAC5B,QAAQ,KAAK,SAAS,EACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACL,WAAW,EAAE,MAAM;QACnB,cAAc,EAAE;YACd,UAAU;YACV,SAAS;YACT,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,kBAAkB;YAClB,kBAAkB;YAClB,cAAc;YACd,QAAQ;YACR,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;YAC1C,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,CAAC,CAAC;SAC1D;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA8C,EAC9C,OAA+B;IAE/B,MAAM,SAAS,GAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC;IACF,IAAI,mBAAoE,CAAC;IAEzE,MAAM,UAAU,CAAC,IAAI,EAAE;QACrB,GAAG,OAAO;QACV,KAAK,EAAE;YACL,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE;gBACxD,mBAAmB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;gBACrE,MAAM,cAAc,GAAG,CACrB,MAAM,mBAAmB,CAAC,WAAW,CACnC;oBACE,GAAG,cAAc;oBACjB,KAAK,EAAE,MAAM;oBACb,WAAW;iBACZ,EACD,SAAS,CACV,CACF,CAAC,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,yCAAyC,cAAc,IAAI,CAAC,CAAC;YAC3E,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE;gBACvF,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBACtF,CAAC;gBAED,MAAM,eAAe,GAAG,CACtB,MAAM,mBAAmB,CAAC,WAAW,CACnC;oBACE,GAAG,cAAc;oBACjB,KAAK,EAAE,UAAU;oBACjB,WAAW;oBACX,cAAc;oBACd,gBAAgB;oBAChB,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC,EACD,SAAS,CACV,CACF,CAAC,IAAI,EAAE,CAAC;gBAET,OAAO,CAAC,GAAG,CAAC,0CAA0C,eAAe,IAAI,CAAC,CAAC;YAC7E,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAoB;IAC5D,GAAG,wBAAwB;IAC3B,sBAAsB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC;CAC/F,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC;IACpD,cAAc,EAAE,6BAA6B;IAC7C,SAAS,EAAE,wBAAwB;IACnC,GAAG,EAAE,eAAe;CACrB,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Agent } from "coding-agent-forge/agent";
2
+ export type SkillEvaluatorVariables = {
3
+ artifactPath: string;
4
+ metaskillPath: string;
5
+ taskDescriptions: string;
6
+ };
7
+ export declare class SkillEvaluatorAgent extends Agent<SkillEvaluatorVariables> {
8
+ protected buildPrompt(variables: Readonly<SkillEvaluatorVariables>): string;
9
+ }
10
+ //# sourceMappingURL=evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,KAAK,CAAC,uBAAuB,CAAC;IACrE,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,MAAM;CAiB5E"}
@@ -1,16 +1,9 @@
1
1
  import { Agent } from "coding-agent-forge/agent";
2
2
  import { readFileSync } from "node:fs";
3
-
4
- export type SkillEvaluatorVariables = {
5
- artifactPath: string;
6
- metaskillPath: string;
7
- taskDescriptions: string;
8
- };
9
-
10
- export class SkillEvaluatorAgent extends Agent<SkillEvaluatorVariables> {
11
- protected buildPrompt(variables: Readonly<SkillEvaluatorVariables>): string {
12
- const metaskill = readFileSync(variables.metaskillPath, "utf8");
13
- return `
3
+ export class SkillEvaluatorAgent extends Agent {
4
+ buildPrompt(variables) {
5
+ const metaskill = readFileSync(variables.metaskillPath, "utf8");
6
+ return `
14
7
  Evaluate the artifact at ${variables.artifactPath}. It was produced by a skill.
15
8
 
16
9
  The artifacts were created based on the following task descriptions:
@@ -24,5 +17,6 @@ ${metaskill}
24
17
  Based on these goals and tips, are there any problems in the artifact produced by this skill? Are there any redundant parts?
25
18
  Carefully inspect both the language and the content, and use that analysis to explain how this skill can be optimized.
26
19
  `;
27
- }
20
+ }
28
21
  }
22
+ //# sourceMappingURL=evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQvC,MAAM,OAAO,mBAAoB,SAAQ,KAA8B;IAC3D,WAAW,CAAC,SAA4C;QAChE,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO;2BACgB,SAAS,CAAC,YAAY;;;;EAI/C,SAAS,CAAC,gBAAgB;;;;EAI1B,SAAS;;;;CAIV,CAAC;IACA,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactoryMap } from "coding-agent-forge";
2
+ export declare const agentFactories: AgentFactoryMap;
3
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,eAAO,MAAM,cAAc,EAAE,eAI5B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { SkillEvaluatorAgent } from "./evaluator.js";
2
+ import { SkillModifierAgent } from "./modifier.js";
3
+ import { SkillRunnerAgent } from "./runner.js";
4
+ export const agentFactories = {
5
+ "skill-runner": (thread, constants) => new SkillRunnerAgent(thread, constants),
6
+ "skill-evaluator": (thread, constants) => new SkillEvaluatorAgent(thread, constants),
7
+ "skill-modifier": (thread, constants) => new SkillModifierAgent(thread, constants),
8
+ };
9
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC;IAC9E,iBAAiB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC;IACpF,gBAAgB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC;CACnF,CAAC"}
@@ -2,3 +2,4 @@ export { agentFactories } from "./factory.js";
2
2
  export { SkillEvaluatorAgent, type SkillEvaluatorVariables } from "./evaluator.js";
3
3
  export { SkillModifierAgent, type SkillModifierVariables } from "./modifier.js";
4
4
  export { SkillRunnerAgent, type SkillRunnerVariables } from "./runner.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { agentFactories } from "./factory.js";
2
+ export { SkillEvaluatorAgent } from "./evaluator.js";
3
+ export { SkillModifierAgent } from "./modifier.js";
4
+ export { SkillRunnerAgent } from "./runner.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAgC,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAA+B,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAA6B,MAAM,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Agent } from "coding-agent-forge/agent";
2
+ export type SkillModifierVariables = {
3
+ skillPath: string;
4
+ metaskillPath: string;
5
+ review: string;
6
+ };
7
+ export declare class SkillModifierAgent extends Agent<SkillModifierVariables> {
8
+ protected buildPrompt(variables: Readonly<SkillModifierVariables>): string;
9
+ }
10
+ //# sourceMappingURL=modifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modifier.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/modifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,sBAAsB,CAAC;IACnE,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM;CAgB3E"}
@@ -1,16 +1,9 @@
1
1
  import { Agent } from "coding-agent-forge/agent";
2
2
  import { readFileSync } from "node:fs";
3
-
4
- export type SkillModifierVariables = {
5
- skillPath: string;
6
- metaskillPath: string;
7
- review: string;
8
- };
9
-
10
- export class SkillModifierAgent extends Agent<SkillModifierVariables> {
11
- protected buildPrompt(variables: Readonly<SkillModifierVariables>): string {
12
- const metaskill = readFileSync(variables.metaskillPath, "utf8");
13
- return `
3
+ export class SkillModifierAgent extends Agent {
4
+ buildPrompt(variables) {
5
+ const metaskill = readFileSync(variables.metaskillPath, "utf8");
6
+ return `
14
7
  Revise the skill at ${variables.skillPath} using the feedback below. The feedback is based on an artifact produced by this skill.
15
8
 
16
9
  The metaskill below contains the design goals and tips of this skill:
@@ -23,5 +16,6 @@ Feedback:
23
16
 
24
17
  ${variables.review}
25
18
  `;
26
- }
19
+ }
27
20
  }
21
+ //# sourceMappingURL=modifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modifier.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/modifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQvC,MAAM,OAAO,kBAAmB,SAAQ,KAA6B;IACzD,WAAW,CAAC,SAA2C;QAC/D,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO;sBACW,SAAS,CAAC,SAAS;;;;EAIvC,SAAS;;;;;;EAMT,SAAS,CAAC,MAAM;CACjB,CAAC;IACA,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { Agent } from "coding-agent-forge/agent";
2
+ export type SkillRunnerVariables = {
3
+ skillPath: string;
4
+ artifactPath: string;
5
+ taskPath: string;
6
+ };
7
+ export declare class SkillRunnerAgent extends Agent<SkillRunnerVariables> {
8
+ protected buildPrompt(variables: Readonly<SkillRunnerVariables>): string;
9
+ }
10
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,oBAAoB,CAAC;IAC/D,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;CAQzE"}
@@ -0,0 +1,13 @@
1
+ import { Agent } from "coding-agent-forge/agent";
2
+ import { readFileSync } from "node:fs";
3
+ export class SkillRunnerAgent extends Agent {
4
+ buildPrompt(variables) {
5
+ const task = readFileSync(variables.taskPath, "utf8");
6
+ return `
7
+ Use the skill at ${variables.skillPath} to complete the task below. Save all relevant output files in ${variables.artifactPath}.
8
+
9
+ ${task}
10
+ `;
11
+ }
12
+ }
13
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQvC,MAAM,OAAO,gBAAiB,SAAQ,KAA2B;IACrD,WAAW,CAAC,SAAyC;QAC7D,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO;mBACQ,SAAS,CAAC,SAAS,kEAAkE,SAAS,CAAC,YAAY;;EAE5H,IAAI;CACL,CAAC;IACA,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from "./pipeline.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evolve-skill/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./pipeline.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evolve-skill/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { AgentTeam } from "coding-agent-forge";
2
+ import type { ParsedPipelineArgs } from "../pipeline.js";
3
+ import type { SkillEvaluatorVariables, SkillModifierVariables, SkillRunnerVariables } from "./agents/index.js";
4
+ export type EvolveSkillAgentVariables = {
5
+ "skill-runner": SkillRunnerVariables;
6
+ "skill-evaluator": SkillEvaluatorVariables;
7
+ "skill-modifier": SkillModifierVariables;
8
+ };
9
+ export type EvolveSkillOptions = {
10
+ skillPath: string;
11
+ artifactPath: string;
12
+ metaskillPath: string;
13
+ taskPaths: readonly string[];
14
+ rounds: number;
15
+ };
16
+ export declare function parseEvolveSkillArgs(args: readonly string[]): ParsedPipelineArgs<EvolveSkillOptions>;
17
+ export declare function evolveSkill(team: AgentTeam<EvolveSkillAgentVariables>, options: EvolveSkillOptions): Promise<void>;
18
+ export declare const evolveSkillPipeline: import("../pipeline.js").PipelineDefinition<EvolveSkillAgentVariables, EvolveSkillOptions>;
19
+ //# sourceMappingURL=pipeline.d.ts.map