tempo-agent 1.3.1 → 1.3.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.
- package/README.md +3 -3
- package/dist/cli/index.js +3 -3
- package/dist/controller/runPipeline.js +6 -6
- package/dist/controller/runPipeline.js.map +1 -1
- package/dist/executor/aiClient.d.ts +2 -0
- package/dist/executor/aiClient.d.ts.map +1 -0
- package/dist/executor/{claudeClient.js → aiClient.js} +3 -3
- package/dist/executor/aiClient.js.map +1 -0
- package/dist/executor/runStep.d.ts +1 -1
- package/dist/executor/runStep.d.ts.map +1 -1
- package/dist/executor/runStep.js +6 -6
- package/dist/executor/runStep.js.map +1 -1
- package/dist/ideation/tune.js +3 -3
- package/dist/ideation/tune.js.map +1 -1
- package/package.json +1 -2
- package/dist/executor/claudeClient.d.ts +0 -2
- package/dist/executor/claudeClient.d.ts.map +0 -1
- package/dist/executor/claudeClient.js.map +0 -1
package/README.md
CHANGED
|
@@ -96,10 +96,10 @@ tempo run my-feature
|
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
Tempo will:
|
|
99
|
-
- Send each Step to
|
|
100
|
-
- Write
|
|
99
|
+
- Send each Step to the AI with the current file contents
|
|
100
|
+
- Write the AI's response back to disk
|
|
101
101
|
- Run lint, build, and tests
|
|
102
|
-
- Retry up to 3 times on failure, feeding errors back to
|
|
102
|
+
- Retry up to 3 times on failure, feeding errors back to the AI
|
|
103
103
|
- Save a full Session log to `.tempo/sessions/`
|
|
104
104
|
|
|
105
105
|
## Config
|
package/dist/cli/index.js
CHANGED
|
@@ -40,7 +40,7 @@ function cmdInit() {
|
|
|
40
40
|
if (!fs_1.default.existsSync(globalContextPath)) {
|
|
41
41
|
fs_1.default.writeFileSync(globalContextPath, `# Global Context
|
|
42
42
|
|
|
43
|
-
This file is injected into every
|
|
43
|
+
This file is injected into every AI prompt. Use it to define project-wide
|
|
44
44
|
design principles, code style rules, and safety constraints.
|
|
45
45
|
|
|
46
46
|
---
|
|
@@ -64,7 +64,7 @@ design principles, code style rules, and safety constraints.
|
|
|
64
64
|
|
|
65
65
|
## Safety & Constraints
|
|
66
66
|
|
|
67
|
-
<!-- Rules
|
|
67
|
+
<!-- Rules the AI must always follow when modifying code. Examples: -->
|
|
68
68
|
<!-- - Never modify files outside of files_allowed -->
|
|
69
69
|
<!-- - Do not introduce new external dependencies without a comment explaining why -->
|
|
70
70
|
<!-- - Never remove error handling or logging -->
|
|
@@ -89,7 +89,7 @@ design principles, code style rules, and safety constraints.
|
|
|
89
89
|
|
|
90
90
|
## Additional Notes
|
|
91
91
|
|
|
92
|
-
<!-- Anything else
|
|
92
|
+
<!-- Anything else the AI should always keep in mind for this project. -->
|
|
93
93
|
|
|
94
94
|
`, 'utf-8');
|
|
95
95
|
}
|
|
@@ -16,10 +16,10 @@ function ensureHistoryDir(cwd, runTimestamp) {
|
|
|
16
16
|
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
17
17
|
return dir;
|
|
18
18
|
}
|
|
19
|
-
function saveStepHistory(historyDir, stepId, instruction, filesAllowed,
|
|
19
|
+
function saveStepHistory(historyDir, stepId, instruction, filesAllowed, aiResponse, result) {
|
|
20
20
|
const content = `# Step ${stepId}
|
|
21
21
|
|
|
22
|
-
## Instruction Sent to
|
|
22
|
+
## Instruction Sent to AI
|
|
23
23
|
|
|
24
24
|
\`\`\`
|
|
25
25
|
${instruction}
|
|
@@ -29,10 +29,10 @@ ${instruction}
|
|
|
29
29
|
|
|
30
30
|
${filesAllowed.map((f) => `- ${f}`).join('\n')}
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## AI Response
|
|
33
33
|
|
|
34
34
|
\`\`\`
|
|
35
|
-
${
|
|
35
|
+
${aiResponse}
|
|
36
36
|
\`\`\`
|
|
37
37
|
|
|
38
38
|
## Result
|
|
@@ -85,7 +85,7 @@ async function runPipeline(spec, cwd) {
|
|
|
85
85
|
const validation = await (0, runValidation_1.runValidation)(cwd);
|
|
86
86
|
if (validation.success) {
|
|
87
87
|
(0, logger_1.logSuccess)(`Step ${step.id} passed validation`);
|
|
88
|
-
saveStepHistory(historyDir, step.id, stepResult.instruction, stepResult.filesAllowed, stepResult.
|
|
88
|
+
saveStepHistory(historyDir, step.id, stepResult.instruction, stepResult.filesAllowed, stepResult.aiResponse, 'success');
|
|
89
89
|
succeeded = true;
|
|
90
90
|
passed++;
|
|
91
91
|
break;
|
|
@@ -94,7 +94,7 @@ async function runPipeline(spec, cwd) {
|
|
|
94
94
|
(0, logger_1.logRetry)(attempt, MAX_RETRIES, validation.errors);
|
|
95
95
|
if (attempt === MAX_RETRIES) {
|
|
96
96
|
saveErrors(historyDir, step.id, validation.errors, attempt);
|
|
97
|
-
saveStepHistory(historyDir, step.id, stepResult.instruction, stepResult.filesAllowed, stepResult.
|
|
97
|
+
saveStepHistory(historyDir, step.id, stepResult.instruction, stepResult.filesAllowed, stepResult.aiResponse, 'failure');
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
if (!succeeded) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runPipeline.js","sourceRoot":"","sources":["../../src/controller/runPipeline.ts"],"names":[],"mappings":";;;;;AA8EA,kCAkEC;AAhJD,gDAAwB;AACxB,4CAAoB;AACpB,kDAA0B;AAE1B,iDAA8C;AAC9C,8DAA2D;AAC3D,4CAAiG;AAEjG,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,SAAS,gBAAgB,CAAC,GAAW,EAAE,YAAoB;IACzD,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,YAAY,EAAE,CAAC,CAAC;IAC5E,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CACtB,UAAkB,EAClB,MAAc,EACd,WAAmB,EACnB,YAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"runPipeline.js","sourceRoot":"","sources":["../../src/controller/runPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aiClient.d.ts","sourceRoot":"","sources":["../../src/executor/aiClient.ts"],"names":[],"mappings":"AAKA,wBAAsB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiCtF"}
|
|
@@ -3,11 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.callAI = callAI;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const GEMINI_MODEL = 'gemini-2.5-flash';
|
|
9
9
|
const GEMINI_API_URL = `https://generativelanguage.googleapis.com/v1beta/models/${GEMINI_MODEL}:generateContent`;
|
|
10
|
-
async function
|
|
10
|
+
async function callAI(systemPrompt, userPrompt) {
|
|
11
11
|
const apiKey = process.env.GEMINI_API_KEY;
|
|
12
12
|
if (!apiKey) {
|
|
13
13
|
throw new Error('GEMINI_API_KEY environment variable is not set');
|
|
@@ -36,4 +36,4 @@ async function callClaude(systemPrompt, userPrompt) {
|
|
|
36
36
|
}
|
|
37
37
|
return text;
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=aiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aiClient.js","sourceRoot":"","sources":["../../src/executor/aiClient.ts"],"names":[],"mappings":";;;;;AAKA,wBAiCC;AAtCD,kDAA0C;AAE1C,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACxC,MAAM,cAAc,GAAG,2DAA2D,YAAY,kBAAkB,CAAC;AAE1G,KAAK,UAAU,MAAM,CAAC,YAAoB,EAAE,UAAkB;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CACzB,GAAG,cAAc,QAAQ,MAAM,EAAE,EACjC;YACE,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;YACtD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YAC3D,gBAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;SAC5C,EACD;YACE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,GAAiB,CAAC;QACnC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACtE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -3,7 +3,7 @@ export interface StepResult {
|
|
|
3
3
|
stepId: number;
|
|
4
4
|
instruction: string;
|
|
5
5
|
filesAllowed: string[];
|
|
6
|
-
|
|
6
|
+
aiResponse: string;
|
|
7
7
|
filesWritten: string[];
|
|
8
8
|
}
|
|
9
9
|
export declare function runStep(step: Step, spec: Spec, cwd: string, extraContext?: string): Promise<StepResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runStep.d.ts","sourceRoot":"","sources":["../../src/executor/runStep.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AA8B5C,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"runStep.d.ts","sourceRoot":"","sources":["../../src/executor/runStep.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AA8B5C,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AA0CD,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,CAAC,CAoCrB"}
|
package/dist/executor/runStep.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.runStep = runStep;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const
|
|
9
|
+
const aiClient_1 = require("./aiClient");
|
|
10
10
|
const logger_1 = require("../utils/logger");
|
|
11
11
|
const BASE_SYSTEM_PROMPT = `You are an expert software engineer. You will receive:
|
|
12
12
|
1. A task description
|
|
@@ -45,7 +45,7 @@ function readAllowedFiles(filesAllowed, cwd) {
|
|
|
45
45
|
}
|
|
46
46
|
return contents;
|
|
47
47
|
}
|
|
48
|
-
function
|
|
48
|
+
function parseAIResponse(response) {
|
|
49
49
|
const files = {};
|
|
50
50
|
const regex = /===FILE: (.+?)===\n([\s\S]*?)===END===/g;
|
|
51
51
|
let match;
|
|
@@ -90,15 +90,15 @@ Current file contents:
|
|
|
90
90
|
${fileSection}
|
|
91
91
|
${extraContext ? `\nAdditional context:\n${extraContext}` : ''}
|
|
92
92
|
`.trim();
|
|
93
|
-
(0, logger_1.logInfo)(`Sending step ${step.id} to
|
|
94
|
-
const
|
|
95
|
-
const parsedFiles =
|
|
93
|
+
(0, logger_1.logInfo)(`Sending step ${step.id} to AI...`);
|
|
94
|
+
const aiResponse = await (0, aiClient_1.callAI)(buildSystemPrompt(cwd), instruction);
|
|
95
|
+
const parsedFiles = parseAIResponse(aiResponse);
|
|
96
96
|
const filesWritten = writeFiles(parsedFiles, cwd, step.files_allowed);
|
|
97
97
|
return {
|
|
98
98
|
stepId: step.id,
|
|
99
99
|
instruction,
|
|
100
100
|
filesAllowed: step.files_allowed,
|
|
101
|
-
|
|
101
|
+
aiResponse,
|
|
102
102
|
filesWritten,
|
|
103
103
|
};
|
|
104
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runStep.js","sourceRoot":"","sources":["../../src/executor/runStep.ts"],"names":[],"mappings":";;;;;AAgFA,0BAyCC;AAzHD,4CAAoB;AACpB,gDAAwB;AAExB,
|
|
1
|
+
{"version":3,"file":"runStep.js","sourceRoot":"","sources":["../../src/executor/runStep.ts"],"names":[],"mappings":"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"}
|
package/dist/ideation/tune.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.tuneIdeation = tuneIdeation;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
-
const
|
|
10
|
+
const aiClient_1 = require("../executor/aiClient");
|
|
11
11
|
const ROUGH_PREFIX_REGEX = /^\[(rough|r)\]/i;
|
|
12
12
|
const SYSTEM_PROMPT = `You are a senior software architect. Your task is to transform a rough feature blurb into a clean, organized design specification.
|
|
13
13
|
|
|
@@ -51,10 +51,10 @@ async function tuneIdeation(cwd) {
|
|
|
51
51
|
const blurb = fs_1.default.readFileSync(filePath, 'utf-8').trim();
|
|
52
52
|
let spec;
|
|
53
53
|
try {
|
|
54
|
-
spec = await (0,
|
|
54
|
+
spec = await (0, aiClient_1.callAI)(SYSTEM_PROMPT, `Here is the rough feature blurb:\n\n${blurb}`);
|
|
55
55
|
}
|
|
56
56
|
catch (err) {
|
|
57
|
-
console.error(chalk_1.default.red(` ✗
|
|
57
|
+
console.error(chalk_1.default.red(` ✗ AI call failed: ${err.message}`));
|
|
58
58
|
continue;
|
|
59
59
|
}
|
|
60
60
|
const output = `${spec.trim()}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tune.js","sourceRoot":"","sources":["../../src/ideation/tune.ts"],"names":[],"mappings":";;;;;AAgCA,oCAiDC;AAjFD,4CAAoB;AACpB,gDAAwB;AACxB,kDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"tune.js","sourceRoot":"","sources":["../../src/ideation/tune.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tempo-agent",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "A modular CLI tool for AI-driven code generation and validation",
|
|
5
5
|
"main": "dist/cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
"cli",
|
|
23
23
|
"tempo",
|
|
24
24
|
"orchestrator",
|
|
25
|
-
"claude",
|
|
26
25
|
"ai"
|
|
27
26
|
],
|
|
28
27
|
"repository": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claudeClient.d.ts","sourceRoot":"","sources":["../../src/executor/claudeClient.ts"],"names":[],"mappings":"AAKA,wBAAsB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiC1F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claudeClient.js","sourceRoot":"","sources":["../../src/executor/claudeClient.ts"],"names":[],"mappings":";;;;;AAKA,gCAiCC;AAtCD,kDAA0C;AAE1C,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACxC,MAAM,cAAc,GAAG,2DAA2D,YAAY,kBAAkB,CAAC;AAE1G,KAAK,UAAU,UAAU,CAAC,YAAoB,EAAE,UAAkB;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CACzB,GAAG,cAAc,QAAQ,MAAM,EAAE,EACjC;YACE,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE;YACtD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YAC3D,gBAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;SAC5C,EACD;YACE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,GAAiB,CAAC;QACnC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACtE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|