@cliangdev/flux-plugin 0.3.1 → 0.4.0-dev.38b2bd1
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/commands/dashboard.md +1 -1
- package/package.json +3 -1
- package/src/server/adapters/factory.ts +6 -28
- package/src/server/adapters/github/__tests__/criteria-deps.test.ts +579 -0
- package/src/server/adapters/github/__tests__/documents-stats.test.ts +789 -0
- package/src/server/adapters/github/__tests__/epic-task-crud.test.ts +1072 -0
- package/src/server/adapters/github/__tests__/foundation.test.ts +537 -0
- package/src/server/adapters/github/__tests__/index-store.test.ts +319 -0
- package/src/server/adapters/github/__tests__/prd-crud.test.ts +836 -0
- package/src/server/adapters/github/adapter.ts +1680 -0
- package/src/server/adapters/github/client.ts +34 -0
- package/src/server/adapters/github/config.ts +59 -0
- package/src/server/adapters/github/helpers/criteria.ts +157 -0
- package/src/server/adapters/github/helpers/index-store.ts +79 -0
- package/src/server/adapters/github/helpers/meta.ts +26 -0
- package/src/server/adapters/github/index.ts +5 -0
- package/src/server/adapters/github/mappers/epic.ts +21 -0
- package/src/server/adapters/github/mappers/index.ts +15 -0
- package/src/server/adapters/github/mappers/prd.ts +50 -0
- package/src/server/adapters/github/mappers/task.ts +37 -0
- package/src/server/adapters/github/types.ts +33 -0
- package/src/server/adapters/linear/adapter.ts +121 -105
- package/src/server/adapters/linear/client.ts +21 -14
- package/src/server/adapters/types.ts +1 -1
- package/src/server/index.ts +2 -0
- package/src/server/tools/__tests__/mcp-interface.test.ts +6 -0
- package/src/server/tools/__tests__/z-configure-github.test.ts +560 -0
- package/src/server/tools/__tests__/z-get-linear-url.test.ts +2 -2
- package/src/server/tools/__tests__/z-init-project.test.ts +168 -0
- package/src/server/tools/configure-github.ts +550 -0
- package/src/server/tools/index.ts +2 -1
- package/src/server/tools/init-project.ts +26 -12
|
@@ -64,7 +64,7 @@ export function createProjectNotInitializedError(
|
|
|
64
64
|
params: {
|
|
65
65
|
name: "Project name (required)",
|
|
66
66
|
vision: "Brief project description (required)",
|
|
67
|
-
adapter: "local | linear (default: local)",
|
|
67
|
+
adapter: "local | linear | github (default: local)",
|
|
68
68
|
},
|
|
69
69
|
},
|
|
70
70
|
],
|
|
@@ -140,6 +140,7 @@ export function registerTools(server: Server, tools: ToolDefinition[]) {
|
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
+
export { configureGithubTool } from "./configure-github.js";
|
|
143
144
|
export { configureLinearTool } from "./configure-linear.js";
|
|
144
145
|
export { createEpicTool } from "./create-epic.js";
|
|
145
146
|
export { createPrdTool } from "./create-prd.js";
|
|
@@ -48,7 +48,13 @@ function setupClaudeSettings(projectRoot: string): void {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
const adapterTypes = [
|
|
51
|
+
const adapterTypes = [
|
|
52
|
+
"local",
|
|
53
|
+
"specflux",
|
|
54
|
+
"linear",
|
|
55
|
+
"notion",
|
|
56
|
+
"github",
|
|
57
|
+
] as const;
|
|
52
58
|
|
|
53
59
|
const inputSchema = z.object({
|
|
54
60
|
name: z.string().min(1, "Project name is required"),
|
|
@@ -80,29 +86,37 @@ async function handler(input: unknown) {
|
|
|
80
86
|
writeFileSync(config.projectJsonPath, JSON.stringify(projectJson, null, 2));
|
|
81
87
|
config.clearCache();
|
|
82
88
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
if (parsed.adapter === "local") {
|
|
90
|
+
initDb();
|
|
91
|
+
const projectId = generateId("proj");
|
|
92
|
+
const db = getDb();
|
|
93
|
+
insert(db, "projects", {
|
|
94
|
+
id: projectId,
|
|
95
|
+
name: parsed.name,
|
|
96
|
+
ref_prefix: refPrefix,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
92
99
|
|
|
93
100
|
setupClaudeSettings(config.projectRoot);
|
|
94
101
|
|
|
102
|
+
const nextStep =
|
|
103
|
+
parsed.adapter === "github"
|
|
104
|
+
? "Run configure_github to connect your GitHub tracking repository."
|
|
105
|
+
: parsed.adapter === "linear"
|
|
106
|
+
? "Run configure_linear to connect your Linear workspace."
|
|
107
|
+
: "Run /flux:prd to start planning.";
|
|
108
|
+
|
|
95
109
|
return {
|
|
96
110
|
success: true,
|
|
97
111
|
project: projectJson,
|
|
98
|
-
message: `Flux project initialized.
|
|
112
|
+
message: `Flux project initialized. ${nextStep}`,
|
|
99
113
|
};
|
|
100
114
|
}
|
|
101
115
|
|
|
102
116
|
export const initProjectTool: ToolDefinition = {
|
|
103
117
|
name: "init_project",
|
|
104
118
|
description:
|
|
105
|
-
"Initialize a new Flux project. Required: name, vision. Optional: adapter (local|
|
|
119
|
+
"Initialize a new Flux project. Required: name, vision. Optional: adapter (local|linear|github, default 'local'). Creates .flux/ directory with project.json. For local adapter, also initializes SQLite database. For github or linear, run configure_github or configure_linear next. Returns {success, project, message}. Fails if .flux/ already exists.",
|
|
106
120
|
inputSchema,
|
|
107
121
|
handler,
|
|
108
122
|
};
|