@aibloom/cli 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 ADDED
@@ -0,0 +1,11 @@
1
+ # @aibloom/cli
2
+
3
+ Aibloom is a deterministic orchestration CLI for design-first frontend work performed by host coding agents.
4
+
5
+ ```bash
6
+ pnpm add -g @aibloom/cli
7
+ aibloom doctor
8
+ aibloom prepare-page "Agent operations dashboard" --design ./DESIGN.md --framework auto --json
9
+ ```
10
+
11
+ `prepare-page` is the main host-agent entrypoint. It prepares the design system when needed, creates page artifacts, and emits a HostTask for Claude Code or Codex to implement.
@@ -0,0 +1,17 @@
1
+ import { type FrameworkAdapter } from "@aibloom/core";
2
+ import type { FrameworkId, ProjectContext } from "@aibloom/schemas";
3
+ export declare function adapterById(id: FrameworkId): FrameworkAdapter;
4
+ export declare function detectFramework(projectRoot: string, requested?: FrameworkId | "auto"): Promise<{
5
+ adapter: FrameworkAdapter;
6
+ context: ProjectContext;
7
+ }>;
8
+ export declare function allDetections(projectRoot: string): Promise<{
9
+ adapter: "vite-react" | "next";
10
+ detection: {
11
+ framework: "next" | "vite-react";
12
+ detected: boolean;
13
+ confidence: number;
14
+ evidence: string[];
15
+ };
16
+ }[]>;
17
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOpE,wBAAgB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAI7D;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IACpG,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC,CA4BD;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM;;;;;;;;KAOtD"}
@@ -0,0 +1,38 @@
1
+ import { NextAdapter } from "@aibloom/adapter-next";
2
+ import { ViteReactAdapter } from "@aibloom/adapter-vite-react";
3
+ import { VibeUIError } from "@aibloom/core";
4
+ const adapters = [
5
+ new NextAdapter(),
6
+ new ViteReactAdapter(),
7
+ ];
8
+ export function adapterById(id) {
9
+ const adapter = adapters.find((item) => item.id === id);
10
+ if (!adapter)
11
+ throw new VibeUIError("FRAMEWORK_NOT_DETECTED", `No adapter registered for ${id}`);
12
+ return adapter;
13
+ }
14
+ export async function detectFramework(projectRoot, requested) {
15
+ if (requested && requested !== "auto") {
16
+ const adapter = adapterById(requested);
17
+ const result = await adapter.detect(projectRoot);
18
+ if (!result.detected) {
19
+ throw new VibeUIError("FRAMEWORK_NOT_DETECTED", `Requested framework ${requested} was not detected`, result.evidence.join("\n"));
20
+ }
21
+ return { adapter, context: await adapter.inspect(projectRoot) };
22
+ }
23
+ const detections = await Promise.all(adapters.map(async (adapter) => ({ adapter, detection: await adapter.detect(projectRoot) })));
24
+ const match = detections
25
+ .filter((item) => item.detection.detected)
26
+ .sort((a, b) => b.detection.confidence - a.detection.confidence)[0];
27
+ if (!match) {
28
+ throw new VibeUIError("FRAMEWORK_NOT_DETECTED", "Could not detect Next.js App Router or Vite React project", detections.flatMap((item) => item.detection.evidence).join("\n"));
29
+ }
30
+ return { adapter: match.adapter, context: await match.adapter.inspect(projectRoot) };
31
+ }
32
+ export async function allDetections(projectRoot) {
33
+ return Promise.all(adapters.map(async (adapter) => ({
34
+ adapter: adapter.id,
35
+ detection: await adapter.detect(projectRoot),
36
+ })));
37
+ }
38
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAC;AAGnE,MAAM,QAAQ,GAAuB;IACnC,IAAI,WAAW,EAAE;IACjB,IAAI,gBAAgB,EAAE;CACvB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAe;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,WAAW,CAAC,wBAAwB,EAAE,6BAA6B,EAAE,EAAE,CAAC,CAAC;IACjG,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,SAAgC;IAIzF,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,WAAW,CACnB,wBAAwB,EACxB,uBAAuB,SAAS,mBAAmB,EACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAC7F,CAAC;IACF,MAAM,KAAK,GAAG,UAAU;SACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,WAAW,CACnB,wBAAwB,EACxB,2DAA2D,EAC3D,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACjE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/B,OAAO,EAAE,OAAO,CAAC,EAAE;QACnB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;KAC7C,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}