@aibloom/core 0.2.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 +16 -0
- package/dist/design-docs/ConflictDetector.d.ts +21 -0
- package/dist/design-docs/ConflictDetector.d.ts.map +1 -0
- package/dist/design-docs/ConflictDetector.js +221 -0
- package/dist/design-docs/ConflictDetector.js.map +1 -0
- package/dist/design-docs/DesignDocParser.d.ts +17 -0
- package/dist/design-docs/DesignDocParser.d.ts.map +1 -0
- package/dist/design-docs/DesignDocParser.js +112 -0
- package/dist/design-docs/DesignDocParser.js.map +1 -0
- package/dist/design-docs/DesignSystemSynthesizer.d.ts +9 -0
- package/dist/design-docs/DesignSystemSynthesizer.d.ts.map +1 -0
- package/dist/design-docs/DesignSystemSynthesizer.js +141 -0
- package/dist/design-docs/DesignSystemSynthesizer.js.map +1 -0
- package/dist/design-docs/FusionOptionGenerator.d.ts +11 -0
- package/dist/design-docs/FusionOptionGenerator.d.ts.map +1 -0
- package/dist/design-docs/FusionOptionGenerator.js +157 -0
- package/dist/design-docs/FusionOptionGenerator.js.map +1 -0
- package/dist/design-docs/StyleFingerprintExtractor.d.ts +32 -0
- package/dist/design-docs/StyleFingerprintExtractor.d.ts.map +1 -0
- package/dist/design-docs/StyleFingerprintExtractor.js +365 -0
- package/dist/design-docs/StyleFingerprintExtractor.js.map +1 -0
- package/dist/design-docs/TokenNormalizer.d.ts +13 -0
- package/dist/design-docs/TokenNormalizer.d.ts.map +1 -0
- package/dist/design-docs/TokenNormalizer.js +97 -0
- package/dist/design-docs/TokenNormalizer.js.map +1 -0
- package/dist/errors.d.ts +7 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +11 -0
- package/dist/errors.js.map +1 -0
- package/dist/framework/FrameworkAdapter.d.ts +10 -0
- package/dist/framework/FrameworkAdapter.d.ts.map +1 -0
- package/dist/framework/FrameworkAdapter.js +2 -0
- package/dist/framework/FrameworkAdapter.js.map +1 -0
- package/dist/framework/package.d.ts +8 -0
- package/dist/framework/package.d.ts.map +1 -0
- package/dist/framework/package.js +32 -0
- package/dist/framework/package.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/json.d.ts +5 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +43 -0
- package/dist/json.js.map +1 -0
- package/dist/safety/FileChangeApplier.d.ts +8 -0
- package/dist/safety/FileChangeApplier.d.ts.map +1 -0
- package/dist/safety/FileChangeApplier.js +73 -0
- package/dist/safety/FileChangeApplier.js.map +1 -0
- package/dist/state/ProjectStateStore.d.ts +16 -0
- package/dist/state/ProjectStateStore.d.ts.map +1 -0
- package/dist/state/ProjectStateStore.js +164 -0
- package/dist/state/ProjectStateStore.js.map +1 -0
- package/dist/state/RunRecordStore.d.ts +10 -0
- package/dist/state/RunRecordStore.d.ts.map +1 -0
- package/dist/state/RunRecordStore.js +39 -0
- package/dist/state/RunRecordStore.js.map +1 -0
- package/dist/tasks/TaskStore.d.ts +12 -0
- package/dist/tasks/TaskStore.d.ts.map +1 -0
- package/dist/tasks/TaskStore.js +48 -0
- package/dist/tasks/TaskStore.js.map +1 -0
- package/package.json +24 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { RunRecordSchema } from "@aibloom/schemas";
|
|
4
|
+
import { readJsonFile, writeJsonFile } from "../json.js";
|
|
5
|
+
export class RunRecordStore {
|
|
6
|
+
runsDir;
|
|
7
|
+
constructor(projectRoot = process.cwd()) {
|
|
8
|
+
this.runsDir = path.join(projectRoot, ".vibeui", "runs");
|
|
9
|
+
}
|
|
10
|
+
async append(run) {
|
|
11
|
+
const parsed = RunRecordSchema.parse(run);
|
|
12
|
+
await writeJsonFile(path.join(this.runsDir, `${run.id}.json`), parsed);
|
|
13
|
+
}
|
|
14
|
+
async get(runId) {
|
|
15
|
+
try {
|
|
16
|
+
return await readJsonFile(path.join(this.runsDir, `${runId}.json`), RunRecordSchema);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async list() {
|
|
23
|
+
try {
|
|
24
|
+
const entries = await fs.readdir(this.runsDir);
|
|
25
|
+
const records = await Promise.all(entries
|
|
26
|
+
.filter((entry) => entry.endsWith(".json"))
|
|
27
|
+
.map((entry) => readJsonFile(path.join(this.runsDir, entry), RunRecordSchema)));
|
|
28
|
+
return records.sort((a, b) => Date.parse(b.startedAt) - Date.parse(a.startedAt));
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async lastRun() {
|
|
35
|
+
const runs = await this.list();
|
|
36
|
+
return runs[0] ?? null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=RunRecordStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunRecordStore.js","sourceRoot":"","sources":["../../src/state/RunRecordStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAkB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,OAAO,cAAc;IACR,OAAO,CAAS;IAEjC,YAAY,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAc;QACzB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;QACvF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO;iBACJ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAC1C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC,CACjF,CAAC;YACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type HostTask, type HostTaskResult } from "@aibloom/schemas";
|
|
2
|
+
export declare class TaskStore {
|
|
3
|
+
private readonly tasksDir;
|
|
4
|
+
constructor(projectRoot?: string);
|
|
5
|
+
private taskDir;
|
|
6
|
+
create(task: HostTask): Promise<void>;
|
|
7
|
+
get(taskId: string): Promise<HostTask>;
|
|
8
|
+
list(): Promise<HostTask[]>;
|
|
9
|
+
next(): Promise<HostTask | null>;
|
|
10
|
+
saveResult(result: HostTaskResult): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=TaskStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskStore.d.ts","sourceRoot":"","sources":["../../src/tasks/TaskStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAI1B,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,WAAW,SAAgB;IAIvC,OAAO,CAAC,OAAO;IAIT,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQtC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAU3B,IAAI,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAKhC,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAWxD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { HostTaskResultSchema, HostTaskSchema, } from "@aibloom/schemas";
|
|
4
|
+
import { VibeUIError } from "../errors.js";
|
|
5
|
+
import { readJsonFile, writeJsonFile } from "../json.js";
|
|
6
|
+
export class TaskStore {
|
|
7
|
+
tasksDir;
|
|
8
|
+
constructor(projectRoot = process.cwd()) {
|
|
9
|
+
this.tasksDir = path.join(projectRoot, ".vibeui", "tasks");
|
|
10
|
+
}
|
|
11
|
+
taskDir(taskId) {
|
|
12
|
+
return path.join(this.tasksDir, taskId);
|
|
13
|
+
}
|
|
14
|
+
async create(task) {
|
|
15
|
+
await writeJsonFile(path.join(this.taskDir(task.id), "task.json"), HostTaskSchema.parse(task));
|
|
16
|
+
}
|
|
17
|
+
async get(taskId) {
|
|
18
|
+
try {
|
|
19
|
+
return await readJsonFile(path.join(this.taskDir(taskId), "task.json"), HostTaskSchema);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
throw new VibeUIError("TASK_NOT_FOUND", `Task not found: ${taskId}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async list() {
|
|
26
|
+
try {
|
|
27
|
+
const entries = await fs.readdir(this.tasksDir);
|
|
28
|
+
const tasks = await Promise.all(entries.map((entry) => this.get(entry)));
|
|
29
|
+
return tasks.sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt));
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async next() {
|
|
36
|
+
const tasks = await this.list();
|
|
37
|
+
return tasks.find((task) => task.status === "pending") ?? null;
|
|
38
|
+
}
|
|
39
|
+
async saveResult(result) {
|
|
40
|
+
await writeJsonFile(path.join(this.taskDir(result.taskId), "result.json"), HostTaskResultSchema.parse(result));
|
|
41
|
+
const task = await this.get(result.taskId);
|
|
42
|
+
await this.create({
|
|
43
|
+
...task,
|
|
44
|
+
status: result.status === "completed" ? "completed" : "failed",
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=TaskStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskStore.js","sourceRoot":"","sources":["../../src/tasks/TaskStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,cAAc,GAGf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,OAAO,SAAS;IACH,QAAQ,CAAS;IAElC,YAAY,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAEO,OAAO,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAc;QACzB,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAc;QACtB,IAAI,CAAC;YACH,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC;QAC1F,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,mBAAmB,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACjF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAsB;QACrC,MAAM,aAAa,CACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,EACrD,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CACnC,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,MAAM,CAAC;YAChB,GAAG,IAAI;YACP,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;SAC/D,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aibloom/core",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Aibloom workflow engine, orchestrator, state machine, and design pipeline core",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": ["dist", "README.md"],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.json",
|
|
18
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@aibloom/schemas": "0.2.0",
|
|
22
|
+
"zod": "^3.23.0"
|
|
23
|
+
}
|
|
24
|
+
}
|