autogoals 0.1.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/dist/agent.d.ts +13 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +27 -0
- package/dist/agent.js.map +1 -0
- package/dist/commands.d.ts +3 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +94 -0
- package/dist/commands.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107277 -0
- package/dist/index.js.map +1 -0
- package/dist/output.d.ts +3 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +11 -0
- package/dist/output.js.map +1 -0
- package/dist/phases/execution/execution.phase.d.ts +8 -0
- package/dist/phases/execution/execution.phase.d.ts.map +1 -0
- package/dist/phases/execution/execution.phase.js +130 -0
- package/dist/phases/execution/execution.phase.js.map +1 -0
- package/dist/phases/execution/index.d.ts +6 -0
- package/dist/phases/execution/index.d.ts.map +1 -0
- package/dist/phases/execution/index.js +4 -0
- package/dist/phases/execution/index.js.map +1 -0
- package/dist/phases/execution/planner.d.ts +4 -0
- package/dist/phases/execution/planner.d.ts.map +1 -0
- package/dist/phases/execution/planner.js +39 -0
- package/dist/phases/execution/planner.js.map +1 -0
- package/dist/phases/execution/types.d.ts +7 -0
- package/dist/phases/execution/types.d.ts.map +1 -0
- package/dist/phases/execution/types.js +2 -0
- package/dist/phases/execution/types.js.map +1 -0
- package/dist/phases/execution/verifier.d.ts +8 -0
- package/dist/phases/execution/verifier.d.ts.map +1 -0
- package/dist/phases/execution/verifier.js +23 -0
- package/dist/phases/execution/verifier.js.map +1 -0
- package/dist/phases/interview/index.d.ts +5 -0
- package/dist/phases/interview/index.d.ts.map +1 -0
- package/dist/phases/interview/index.js +3 -0
- package/dist/phases/interview/index.js.map +1 -0
- package/dist/phases/interview/interview.phase.d.ts +8 -0
- package/dist/phases/interview/interview.phase.d.ts.map +1 -0
- package/dist/phases/interview/interview.phase.js +112 -0
- package/dist/phases/interview/interview.phase.js.map +1 -0
- package/dist/phases/interview/question-builder.d.ts +6 -0
- package/dist/phases/interview/question-builder.d.ts.map +1 -0
- package/dist/phases/interview/question-builder.js +21 -0
- package/dist/phases/interview/question-builder.js.map +1 -0
- package/dist/phases/interview/types.d.ts +5 -0
- package/dist/phases/interview/types.d.ts.map +1 -0
- package/dist/phases/interview/types.js +2 -0
- package/dist/phases/interview/types.js.map +1 -0
- package/dist/phases/spec/index.d.ts +5 -0
- package/dist/phases/spec/index.d.ts.map +1 -0
- package/dist/phases/spec/index.js +4 -0
- package/dist/phases/spec/index.js.map +1 -0
- package/dist/phases/spec/spec-parser.d.ts +3 -0
- package/dist/phases/spec/spec-parser.d.ts.map +1 -0
- package/dist/phases/spec/spec-parser.js +77 -0
- package/dist/phases/spec/spec-parser.js.map +1 -0
- package/dist/phases/spec/spec-writer.d.ts +3 -0
- package/dist/phases/spec/spec-writer.d.ts.map +1 -0
- package/dist/phases/spec/spec-writer.js +34 -0
- package/dist/phases/spec/spec-writer.js.map +1 -0
- package/dist/phases/spec/spec.phase.d.ts +7 -0
- package/dist/phases/spec/spec.phase.d.ts.map +1 -0
- package/dist/phases/spec/spec.phase.js +113 -0
- package/dist/phases/spec/spec.phase.js.map +1 -0
- package/dist/phases/spec/types.d.ts +6 -0
- package/dist/phases/spec/types.d.ts.map +1 -0
- package/dist/phases/spec/types.js +2 -0
- package/dist/phases/spec/types.js.map +1 -0
- package/dist/phases/standby/index.d.ts +3 -0
- package/dist/phases/standby/index.d.ts.map +1 -0
- package/dist/phases/standby/index.js +2 -0
- package/dist/phases/standby/index.js.map +1 -0
- package/dist/phases/standby/standby.phase.d.ts +8 -0
- package/dist/phases/standby/standby.phase.d.ts.map +1 -0
- package/dist/phases/standby/standby.phase.js +108 -0
- package/dist/phases/standby/standby.phase.js.map +1 -0
- package/dist/phases/standby/types.d.ts +5 -0
- package/dist/phases/standby/types.d.ts.map +1 -0
- package/dist/phases/standby/types.js +2 -0
- package/dist/phases/standby/types.js.map +1 -0
- package/dist/public/assets/index-CcN4IXmm.css +1 -0
- package/dist/public/assets/index-DRgRc2_M.js +618 -0
- package/dist/public/favicon.svg +10 -0
- package/dist/public/index.html +20 -0
- package/dist/session.d.ts +11 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +13 -0
- package/dist/session.js.map +1 -0
- package/package.json +29 -0
package/dist/agent.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Phase, AgentContext, Logger } from "@small-singularity/core";
|
|
2
|
+
export interface PhaseMap {
|
|
3
|
+
interview: Phase;
|
|
4
|
+
spec: Phase;
|
|
5
|
+
execution: Phase;
|
|
6
|
+
standby: Phase;
|
|
7
|
+
}
|
|
8
|
+
export declare class Agent {
|
|
9
|
+
private phases;
|
|
10
|
+
constructor(phases: PhaseMap);
|
|
11
|
+
run(context: AgentContext, logger: Logger): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAA0B,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEnG,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,KAAK,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;CAChB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAW;gBAEb,MAAM,EAAE,QAAQ;IAItB,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBhE"}
|
package/dist/agent.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export class Agent {
|
|
2
|
+
phases;
|
|
3
|
+
constructor(phases) {
|
|
4
|
+
this.phases = phases;
|
|
5
|
+
}
|
|
6
|
+
async run(context, logger) {
|
|
7
|
+
let currentPhase = "interview";
|
|
8
|
+
while (currentPhase !== "done") {
|
|
9
|
+
const phase = this.phases[currentPhase];
|
|
10
|
+
if (!phase) {
|
|
11
|
+
throw new Error(`Unknown phase: ${currentPhase}`);
|
|
12
|
+
}
|
|
13
|
+
logger.log({
|
|
14
|
+
type: "phase_transition",
|
|
15
|
+
message: `Entering ${currentPhase} phase`,
|
|
16
|
+
});
|
|
17
|
+
context.store.setPhase(currentPhase);
|
|
18
|
+
const result = await phase.execute(context);
|
|
19
|
+
currentPhase = result.next;
|
|
20
|
+
}
|
|
21
|
+
logger.log({
|
|
22
|
+
type: "phase_transition",
|
|
23
|
+
message: "All phases complete",
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,KAAK;IACR,MAAM,CAAW;IAEzB,YAAY,MAAgB;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAqB,EAAE,MAAc;QAC7C,IAAI,YAAY,GAAc,WAAW,CAAC;QAE1C,OAAO,YAAY,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAU,IAAI,CAAC,MAAM,CAAC,YAA8B,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,CAAC,GAAG,CAAC;gBACT,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,YAAY,YAAY,QAAQ;aAC1C,CAAC,CAAC;YAEH,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrC,MAAM,MAAM,GAAgB,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,CAAC;QAED,MAAM,CAAC,GAAG,CAAC;YACT,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,aAAa,IAAI,OAAO,CAsGvC"}
|
package/dist/commands.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { loadConfig, createStore, createProjectStore, createLogger, formatForTerminal } from "@small-singularity/core";
|
|
3
|
+
import { Agent } from "./agent.js";
|
|
4
|
+
import { InterviewPhase } from "./phases/interview/index.js";
|
|
5
|
+
import { SpecPhase } from "./phases/spec/index.js";
|
|
6
|
+
import { ExecutionPhase } from "./phases/execution/index.js";
|
|
7
|
+
import { StandbyPhase } from "./phases/standby/index.js";
|
|
8
|
+
import { printBanner } from "./output.js";
|
|
9
|
+
import { resolve } from "path";
|
|
10
|
+
import { mkdirSync } from "fs";
|
|
11
|
+
export function createProgram() {
|
|
12
|
+
const program = new Command();
|
|
13
|
+
program
|
|
14
|
+
.name("small-singularity")
|
|
15
|
+
.description("Autonomous project agent")
|
|
16
|
+
.version("0.1.0");
|
|
17
|
+
program
|
|
18
|
+
.command("start")
|
|
19
|
+
.description("Start the agent on a project directory")
|
|
20
|
+
.argument("<project-path>", "Path to the project directory")
|
|
21
|
+
.option("-m, --model <model>", "Claude model to use", "sonnet")
|
|
22
|
+
.option("--budget <amount>", "Max total budget in USD", "20")
|
|
23
|
+
.option("--budget-per-goal <amount>", "Max budget per goal in USD", "2")
|
|
24
|
+
.option("-v, --verbose", "Verbose logging", false)
|
|
25
|
+
.action(async (projectPath, opts) => {
|
|
26
|
+
const resolvedPath = resolve(projectPath);
|
|
27
|
+
mkdirSync(resolvedPath, { recursive: true });
|
|
28
|
+
console.log(printBanner());
|
|
29
|
+
const config = loadConfig({
|
|
30
|
+
projectPath: resolvedPath,
|
|
31
|
+
model: opts.model,
|
|
32
|
+
budget: {
|
|
33
|
+
maxTotal: parseFloat(opts.budget),
|
|
34
|
+
maxPerGoal: parseFloat(opts.budgetPerGoal),
|
|
35
|
+
},
|
|
36
|
+
verbose: opts.verbose,
|
|
37
|
+
});
|
|
38
|
+
const projectStore = createProjectStore();
|
|
39
|
+
let project = projectStore.getProjectByPath(resolvedPath);
|
|
40
|
+
if (!project) {
|
|
41
|
+
const name = resolvedPath.split("/").pop() || "unnamed";
|
|
42
|
+
project = projectStore.createProject(name, resolvedPath);
|
|
43
|
+
}
|
|
44
|
+
projectStore.close();
|
|
45
|
+
const store = createStore(project.id);
|
|
46
|
+
const logger = createLogger({
|
|
47
|
+
sink: (event) => {
|
|
48
|
+
console.log(formatForTerminal(event));
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
const agent = new Agent({
|
|
52
|
+
interview: new InterviewPhase(),
|
|
53
|
+
spec: new SpecPhase(),
|
|
54
|
+
execution: new ExecutionPhase(logger),
|
|
55
|
+
standby: new StandbyPhase(),
|
|
56
|
+
});
|
|
57
|
+
await agent.run({
|
|
58
|
+
config,
|
|
59
|
+
store,
|
|
60
|
+
projectPath: resolvedPath,
|
|
61
|
+
spec: store.getSpec(),
|
|
62
|
+
}, logger);
|
|
63
|
+
store.close();
|
|
64
|
+
console.log("\nAgent stopped. State saved.");
|
|
65
|
+
});
|
|
66
|
+
program
|
|
67
|
+
.command("status")
|
|
68
|
+
.description("Show current project status")
|
|
69
|
+
.argument("<project-path>", "Path to the project directory")
|
|
70
|
+
.action((projectPath) => {
|
|
71
|
+
const resolvedPath = resolve(projectPath);
|
|
72
|
+
const projectStore = createProjectStore();
|
|
73
|
+
const project = projectStore.getProjectByPath(resolvedPath);
|
|
74
|
+
if (!project) {
|
|
75
|
+
console.log("No project found. Run 'start' first.");
|
|
76
|
+
projectStore.close();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
projectStore.close();
|
|
80
|
+
const store = createStore(project.id);
|
|
81
|
+
const phase = store.getPhase();
|
|
82
|
+
const totalCost = store.getTotalCost();
|
|
83
|
+
const goals = store.getGoals();
|
|
84
|
+
console.log(`Phase: ${phase}`);
|
|
85
|
+
console.log(`Total cost: $${totalCost.toFixed(2)}`);
|
|
86
|
+
console.log(`Goals: ${goals.length}`);
|
|
87
|
+
for (const goal of goals) {
|
|
88
|
+
console.log(` ${goal.id}: ${goal.status} ($${goal.costUsd.toFixed(2)})`);
|
|
89
|
+
}
|
|
90
|
+
store.close();
|
|
91
|
+
});
|
|
92
|
+
return program;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEvH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,mBAAmB,CAAC;SACzB,WAAW,CAAC,0BAA0B,CAAC;SACvC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wCAAwC,CAAC;SACrD,QAAQ,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,QAAQ,CAAC;SAC9D,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,IAAI,CAAC;SAC5D,MAAM,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,GAAG,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,KAAK,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,IAAI,EAAE,EAAE;QAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,WAAW,EAAE,YAAY;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;gBACjC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;aAC3C;YACD,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,IAAI,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;YACxD,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAW,YAAY,CAAC;YAClC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,SAAS,EAAE,IAAI,cAAc,EAAE;YAC/B,IAAI,EAAE,IAAI,SAAS,EAAE;YACrB,SAAS,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC;YACrC,OAAO,EAAE,IAAI,YAAY,EAAE;SAC5B,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,GAAG,CACb;YACE,MAAM;YACN,KAAK;YACL,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;SACtB,EACD,MAAM,CACP,CAAC;QAEF,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,QAAQ,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,CAAC,WAAmB,EAAE,EAAE;QAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAE1C,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC;QAED,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|