task-o-matic 0.0.9 → 0.0.10
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/lib/index.d.ts +5 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +7 -1
- package/dist/test/hooks.test.js +19 -10
- package/dist/test/task-loop-git.test.js +33 -0
- package/dist/test/validation.test.d.ts +2 -0
- package/dist/test/validation.test.d.ts.map +1 -0
- package/dist/test/validation.test.js +22 -0
- package/package.json +1 -1
package/dist/lib/index.d.ts
CHANGED
|
@@ -31,6 +31,11 @@ export { PRDService } from "../services/prd";
|
|
|
31
31
|
* Handles project initialization, PRD management, task generation, and task splitting
|
|
32
32
|
*/
|
|
33
33
|
export { WorkflowService } from "../services/workflow";
|
|
34
|
+
/**
|
|
35
|
+
* BenchmarkService - AI model benchmarking
|
|
36
|
+
* Handles running benchmarks, storing results, and comparing models
|
|
37
|
+
*/
|
|
38
|
+
export { BenchmarkService } from "../services/benchmark";
|
|
34
39
|
/**
|
|
35
40
|
* Result types for workflow service operations
|
|
36
41
|
*/
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;GAGG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD;;GAEG;AACH,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAMnC;;;GAGG;AACH,cAAc,UAAU,CAAC;AAEzB;;GAEG;AACH,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAM1B;;;GAGG;AACH,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAM5D;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjD;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,OAAO,EACL,sBAAsB,EACtB,wCAAwC,GACzC,MAAM,4BAA4B,CAAC;AAMpC;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/lib/index.js
CHANGED
|
@@ -32,7 +32,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
32
32
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.runValidations = exports.isValidAIProvider = exports.createStreamingOptionsWithCustomHandlers = exports.createStreamingOptions = exports.formatStackInfo = exports.PromptBuilder = exports.ContextBuilder = exports.ModelProvider = exports.AIOperations = exports.configManager = exports.ConfigManager = exports.FileSystemStorage = exports.buildAIConfig = exports.resetServiceInstances = exports.getContextBuilder = exports.getStorage = exports.getModelProvider = exports.getAIOperations = exports.WorkflowService = exports.PRDService = exports.TaskService = void 0;
|
|
35
|
+
exports.runValidations = exports.isValidAIProvider = exports.createStreamingOptionsWithCustomHandlers = exports.createStreamingOptions = exports.formatStackInfo = exports.PromptBuilder = exports.ContextBuilder = exports.ModelProvider = exports.AIOperations = exports.configManager = exports.ConfigManager = exports.FileSystemStorage = exports.buildAIConfig = exports.resetServiceInstances = exports.getContextBuilder = exports.getStorage = exports.getModelProvider = exports.getAIOperations = exports.BenchmarkService = exports.WorkflowService = exports.PRDService = exports.TaskService = void 0;
|
|
36
36
|
// ============================================================================
|
|
37
37
|
// Main Services - Business Logic Layer
|
|
38
38
|
// ============================================================================
|
|
@@ -54,6 +54,12 @@ Object.defineProperty(exports, "PRDService", { enumerable: true, get: function (
|
|
|
54
54
|
*/
|
|
55
55
|
var workflow_1 = require("../services/workflow");
|
|
56
56
|
Object.defineProperty(exports, "WorkflowService", { enumerable: true, get: function () { return workflow_1.WorkflowService; } });
|
|
57
|
+
/**
|
|
58
|
+
* BenchmarkService - AI model benchmarking
|
|
59
|
+
* Handles running benchmarks, storing results, and comparing models
|
|
60
|
+
*/
|
|
61
|
+
var benchmark_1 = require("../services/benchmark");
|
|
62
|
+
Object.defineProperty(exports, "BenchmarkService", { enumerable: true, get: function () { return benchmark_1.BenchmarkService; } });
|
|
57
63
|
// ============================================================================
|
|
58
64
|
// Core Types - Type Definitions
|
|
59
65
|
// ============================================================================
|
package/dist/test/hooks.test.js
CHANGED
|
@@ -44,15 +44,24 @@ describe("HookRegistry", () => {
|
|
|
44
44
|
});
|
|
45
45
|
it("should not fail if a listener throws", async () => {
|
|
46
46
|
const task = { id: "1", title: "Test Task" };
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
// Suppress console.error for this test
|
|
48
|
+
const originalConsoleError = console.error;
|
|
49
|
+
console.error = () => { };
|
|
50
|
+
try {
|
|
51
|
+
hooks_1.hooks.on("task:created", () => {
|
|
52
|
+
throw new Error("Oops");
|
|
53
|
+
});
|
|
54
|
+
let secondCalled = false;
|
|
55
|
+
hooks_1.hooks.on("task:created", () => {
|
|
56
|
+
secondCalled = true;
|
|
57
|
+
});
|
|
58
|
+
// Should not throw
|
|
59
|
+
await hooks_1.hooks.emit("task:created", { task });
|
|
60
|
+
node_assert_1.default.strictEqual(secondCalled, true);
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
// Restore console.error
|
|
64
|
+
console.error = originalConsoleError;
|
|
65
|
+
}
|
|
57
66
|
});
|
|
58
67
|
});
|
|
@@ -59,4 +59,37 @@ describe("Task Loop Git Integration", () => {
|
|
|
59
59
|
assert_1.default.strictEqual(result.message, `feat: complete task ${mockTaskTitle}`);
|
|
60
60
|
assert_1.default.deepStrictEqual(result.files, []);
|
|
61
61
|
});
|
|
62
|
+
it("should handle git command failures gracefully", async () => {
|
|
63
|
+
const gitState = {
|
|
64
|
+
beforeHead: "abc",
|
|
65
|
+
afterHead: "def",
|
|
66
|
+
hasUncommittedChanges: false,
|
|
67
|
+
};
|
|
68
|
+
const mockExec = async () => {
|
|
69
|
+
throw new Error("Git failed");
|
|
70
|
+
};
|
|
71
|
+
const result = await (0, task_loop_execution_1.extractCommitInfo)("1", mockTaskTitle, mockExecutionMessage, gitState, mockExec);
|
|
72
|
+
assert_1.default.strictEqual(result.message, `feat: complete task ${mockTaskTitle}`);
|
|
73
|
+
assert_1.default.deepStrictEqual(result.files, []);
|
|
74
|
+
});
|
|
75
|
+
it("should handle invalid AI JSON response", async () => {
|
|
76
|
+
const gitState = {
|
|
77
|
+
beforeHead: "abc",
|
|
78
|
+
afterHead: "abc",
|
|
79
|
+
hasUncommittedChanges: true,
|
|
80
|
+
};
|
|
81
|
+
const mockExec = async (cmd) => {
|
|
82
|
+
if (cmd.includes("git diff"))
|
|
83
|
+
return { stdout: "diff", stderr: "" };
|
|
84
|
+
if (cmd.includes("git status"))
|
|
85
|
+
return { stdout: " M file.ts", stderr: "" };
|
|
86
|
+
return { stdout: "", stderr: "" };
|
|
87
|
+
};
|
|
88
|
+
const mockAiOps = {
|
|
89
|
+
streamText: async () => "Not JSON",
|
|
90
|
+
};
|
|
91
|
+
const result = await (0, task_loop_execution_1.extractCommitInfo)("1", mockTaskTitle, mockExecutionMessage, gitState, mockExec, mockAiOps);
|
|
92
|
+
assert_1.default.strictEqual(result.message, `feat: complete task ${mockTaskTitle}`);
|
|
93
|
+
assert_1.default.deepStrictEqual(result.files, ["file.ts"]);
|
|
94
|
+
});
|
|
62
95
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../../src/test/validation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const validation_1 = require("../lib/validation");
|
|
8
|
+
describe("Validation Utils", () => {
|
|
9
|
+
describe("isValidAIProvider", () => {
|
|
10
|
+
it("should return true for valid providers", () => {
|
|
11
|
+
assert_1.default.strictEqual((0, validation_1.isValidAIProvider)("openrouter"), true);
|
|
12
|
+
assert_1.default.strictEqual((0, validation_1.isValidAIProvider)("openai"), true);
|
|
13
|
+
assert_1.default.strictEqual((0, validation_1.isValidAIProvider)("anthropic"), true);
|
|
14
|
+
assert_1.default.strictEqual((0, validation_1.isValidAIProvider)("custom"), true);
|
|
15
|
+
});
|
|
16
|
+
it("should return false for invalid providers", () => {
|
|
17
|
+
assert_1.default.strictEqual((0, validation_1.isValidAIProvider)("invalid"), false);
|
|
18
|
+
assert_1.default.strictEqual((0, validation_1.isValidAIProvider)(""), false);
|
|
19
|
+
assert_1.default.strictEqual((0, validation_1.isValidAIProvider)("gpt-4"), false);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
});
|