@cliangdev/flux-plugin 0.2.0 → 0.3.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 +11 -7
- package/agents/coder.md +150 -25
- package/bin/install.cjs +171 -16
- package/commands/breakdown.md +47 -10
- package/commands/dashboard.md +29 -0
- package/commands/flux.md +92 -12
- package/commands/implement.md +166 -17
- package/commands/linear.md +6 -5
- package/commands/prd.md +996 -82
- package/manifest.json +2 -1
- package/package.json +9 -11
- package/skills/flux-orchestrator/SKILL.md +11 -3
- package/skills/prd-writer/SKILL.md +761 -0
- package/skills/ux-ui-design/SKILL.md +346 -0
- package/skills/ux-ui-design/references/design-tokens.md +359 -0
- package/src/__tests__/version.test.ts +37 -0
- package/src/adapters/local/.gitkeep +0 -0
- package/src/dashboard/__tests__/api.test.ts +211 -0
- package/src/dashboard/browser.ts +35 -0
- package/src/dashboard/public/app.js +869 -0
- package/src/dashboard/public/index.html +90 -0
- package/src/dashboard/public/styles.css +807 -0
- package/src/dashboard/public/vendor/highlight.css +10 -0
- package/src/dashboard/public/vendor/highlight.min.js +8422 -0
- package/src/dashboard/public/vendor/marked.min.js +2210 -0
- package/src/dashboard/server.ts +296 -0
- package/src/dashboard/watchers.ts +83 -0
- package/src/server/__tests__/config.test.ts +163 -0
- package/src/server/adapters/__tests__/a-client-linear.test.ts +197 -0
- package/src/server/adapters/__tests__/adapter-factory.test.ts +230 -0
- package/src/server/adapters/__tests__/dependency-ops.test.ts +429 -0
- package/src/server/adapters/__tests__/document-ops.test.ts +306 -0
- package/src/server/adapters/__tests__/linear-adapter.test.ts +91 -0
- package/src/server/adapters/__tests__/linear-config.test.ts +425 -0
- package/src/server/adapters/__tests__/linear-criteria-parser.test.ts +287 -0
- package/src/server/adapters/__tests__/linear-description-test.ts +238 -0
- package/src/server/adapters/__tests__/linear-epic-crud.test.ts +496 -0
- package/src/server/adapters/__tests__/linear-mappers-description.test.ts +276 -0
- package/src/server/adapters/__tests__/linear-mappers-epic.test.ts +294 -0
- package/src/server/adapters/__tests__/linear-mappers-prd.test.ts +300 -0
- package/src/server/adapters/__tests__/linear-mappers-task.test.ts +197 -0
- package/src/server/adapters/__tests__/linear-prd-crud.test.ts +620 -0
- package/src/server/adapters/__tests__/linear-stats.test.ts +450 -0
- package/src/server/adapters/__tests__/linear-task-crud.test.ts +534 -0
- package/src/server/adapters/__tests__/linear-types.test.ts +243 -0
- package/src/server/adapters/__tests__/status-ops.test.ts +441 -0
- package/src/server/adapters/factory.ts +90 -0
- package/src/server/adapters/index.ts +9 -0
- package/src/server/adapters/linear/adapter.ts +1141 -0
- package/src/server/adapters/linear/client.ts +169 -0
- package/src/server/adapters/linear/config.ts +152 -0
- package/src/server/adapters/linear/helpers/criteria-parser.ts +197 -0
- package/src/server/adapters/linear/helpers/index.ts +7 -0
- package/src/server/adapters/linear/index.ts +16 -0
- package/src/server/adapters/linear/mappers/description.ts +136 -0
- package/src/server/adapters/linear/mappers/epic.ts +81 -0
- package/src/server/adapters/linear/mappers/index.ts +27 -0
- package/src/server/adapters/linear/mappers/prd.ts +178 -0
- package/src/server/adapters/linear/mappers/task.ts +82 -0
- package/src/server/adapters/linear/types.ts +264 -0
- package/src/server/adapters/local-adapter.ts +1009 -0
- package/src/server/adapters/types.ts +293 -0
- package/src/server/config.ts +73 -0
- package/src/server/db/__tests__/queries.test.ts +473 -0
- package/src/server/db/ids.ts +17 -0
- package/src/server/db/index.ts +69 -0
- package/src/server/db/queries.ts +142 -0
- package/src/server/db/refs.ts +60 -0
- package/src/server/db/schema.ts +97 -0
- package/src/server/db/sqlite.ts +10 -0
- package/src/server/index.ts +81 -0
- package/src/server/tools/__tests__/crud.test.ts +411 -0
- package/src/server/tools/__tests__/get-version.test.ts +27 -0
- package/src/server/tools/__tests__/mcp-interface.test.ts +479 -0
- package/src/server/tools/__tests__/query.test.ts +405 -0
- package/src/server/tools/__tests__/z-configure-linear.test.ts +511 -0
- package/src/server/tools/__tests__/z-get-linear-url.test.ts +108 -0
- package/src/server/tools/configure-linear.ts +373 -0
- package/src/server/tools/create-epic.ts +44 -0
- package/src/server/tools/create-prd.ts +40 -0
- package/src/server/tools/create-task.ts +47 -0
- package/src/server/tools/criteria.ts +50 -0
- package/src/server/tools/delete-entity.ts +76 -0
- package/src/server/tools/dependencies.ts +55 -0
- package/src/server/tools/get-entity.ts +240 -0
- package/src/server/tools/get-linear-url.ts +28 -0
- package/src/server/tools/get-stats.ts +52 -0
- package/src/server/tools/get-version.ts +20 -0
- package/src/server/tools/index.ts +158 -0
- package/src/server/tools/init-project.ts +108 -0
- package/src/server/tools/query-entities.ts +167 -0
- package/src/server/tools/render-status.ts +219 -0
- package/src/server/tools/update-entity.ts +140 -0
- package/src/server/tools/update-status.ts +166 -0
- package/src/server/utils/__tests__/mcp-response.test.ts +331 -0
- package/src/server/utils/logger.ts +9 -0
- package/src/server/utils/mcp-response.ts +254 -0
- package/src/server/utils/status-transitions.ts +160 -0
- package/src/status-line/__tests__/status-line.test.ts +215 -0
- package/src/status-line/index.ts +147 -0
- package/src/utils/__tests__/chalk-import.test.ts +32 -0
- package/src/utils/__tests__/display.test.ts +97 -0
- package/src/utils/__tests__/status-renderer.test.ts +310 -0
- package/src/utils/display.ts +62 -0
- package/src/utils/status-renderer.ts +214 -0
- package/src/version.ts +5 -0
- package/dist/server/index.js +0 -87063
- package/skills/prd-template/SKILL.md +0 -242
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates the appropriate adapter based on project configuration.
|
|
5
|
+
* Supports LocalAdapter and LinearAdapter; future adapters will be added here.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
9
|
+
import { config } from "../config.js";
|
|
10
|
+
import { LinearAdapter } from "./linear/adapter.js";
|
|
11
|
+
import { linearConfigExists, loadLinearConfig } from "./linear/config.js";
|
|
12
|
+
import { LocalAdapter } from "./local-adapter.js";
|
|
13
|
+
import type { AdapterConfig, BackendAdapter } from "./types.js";
|
|
14
|
+
|
|
15
|
+
let cachedAdapter: BackendAdapter | null = null;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Get the adapter configuration from project.json
|
|
19
|
+
*/
|
|
20
|
+
function getAdapterConfig(): AdapterConfig {
|
|
21
|
+
if (!existsSync(config.projectJsonPath)) {
|
|
22
|
+
// Default to local adapter if project not initialized
|
|
23
|
+
return { type: "local" };
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
const content = readFileSync(config.projectJsonPath, "utf-8");
|
|
28
|
+
const project = JSON.parse(content);
|
|
29
|
+
return project.adapter ?? { type: "local" };
|
|
30
|
+
} catch {
|
|
31
|
+
return { type: "local" };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Create an adapter instance based on configuration.
|
|
37
|
+
*
|
|
38
|
+
* @param adapterConfig - Optional override for adapter configuration
|
|
39
|
+
* @returns The appropriate BackendAdapter implementation
|
|
40
|
+
*/
|
|
41
|
+
export function createAdapter(adapterConfig?: AdapterConfig): BackendAdapter {
|
|
42
|
+
const cfg = adapterConfig ?? getAdapterConfig();
|
|
43
|
+
|
|
44
|
+
switch (cfg.type) {
|
|
45
|
+
case "local":
|
|
46
|
+
return new LocalAdapter();
|
|
47
|
+
case "specflux":
|
|
48
|
+
// TODO: Implement SpecFluxAdapter
|
|
49
|
+
throw new Error("SpecFlux adapter not yet implemented");
|
|
50
|
+
case "linear": {
|
|
51
|
+
if (!linearConfigExists()) {
|
|
52
|
+
throw new Error(
|
|
53
|
+
"Linear adapter configured but no configuration found. " +
|
|
54
|
+
"Run configure_linear tool first.",
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
const linearConfig = loadLinearConfig();
|
|
58
|
+
return new LinearAdapter(linearConfig);
|
|
59
|
+
}
|
|
60
|
+
case "notion":
|
|
61
|
+
// TODO: Implement NotionAdapter
|
|
62
|
+
throw new Error("Notion adapter not yet implemented");
|
|
63
|
+
default: {
|
|
64
|
+
const _exhaustive: never = cfg.type;
|
|
65
|
+
throw new Error(`Unknown adapter type: ${cfg.type}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Get or create a cached adapter instance.
|
|
72
|
+
* Uses singleton pattern to avoid creating multiple adapter instances.
|
|
73
|
+
*
|
|
74
|
+
* @param forceNew - If true, creates a new adapter even if one is cached
|
|
75
|
+
* @returns The cached or newly created adapter
|
|
76
|
+
*/
|
|
77
|
+
export function getAdapter(forceNew = false): BackendAdapter {
|
|
78
|
+
if (forceNew || !cachedAdapter) {
|
|
79
|
+
cachedAdapter = createAdapter();
|
|
80
|
+
}
|
|
81
|
+
return cachedAdapter;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Clear the cached adapter instance.
|
|
86
|
+
* Useful for testing or when project configuration changes.
|
|
87
|
+
*/
|
|
88
|
+
export function clearAdapterCache(): void {
|
|
89
|
+
cachedAdapter = null;
|
|
90
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Adapters
|
|
3
|
+
*
|
|
4
|
+
* Exports adapter types and implementations for different storage backends.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { clearAdapterCache, createAdapter, getAdapter } from "./factory.js";
|
|
8
|
+
export { LocalAdapter } from "./local-adapter.js";
|
|
9
|
+
export * from "./types.js";
|