@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.
Files changed (32) hide show
  1. package/commands/dashboard.md +1 -1
  2. package/package.json +3 -1
  3. package/src/server/adapters/factory.ts +6 -28
  4. package/src/server/adapters/github/__tests__/criteria-deps.test.ts +579 -0
  5. package/src/server/adapters/github/__tests__/documents-stats.test.ts +789 -0
  6. package/src/server/adapters/github/__tests__/epic-task-crud.test.ts +1072 -0
  7. package/src/server/adapters/github/__tests__/foundation.test.ts +537 -0
  8. package/src/server/adapters/github/__tests__/index-store.test.ts +319 -0
  9. package/src/server/adapters/github/__tests__/prd-crud.test.ts +836 -0
  10. package/src/server/adapters/github/adapter.ts +1680 -0
  11. package/src/server/adapters/github/client.ts +34 -0
  12. package/src/server/adapters/github/config.ts +59 -0
  13. package/src/server/adapters/github/helpers/criteria.ts +157 -0
  14. package/src/server/adapters/github/helpers/index-store.ts +79 -0
  15. package/src/server/adapters/github/helpers/meta.ts +26 -0
  16. package/src/server/adapters/github/index.ts +5 -0
  17. package/src/server/adapters/github/mappers/epic.ts +21 -0
  18. package/src/server/adapters/github/mappers/index.ts +15 -0
  19. package/src/server/adapters/github/mappers/prd.ts +50 -0
  20. package/src/server/adapters/github/mappers/task.ts +37 -0
  21. package/src/server/adapters/github/types.ts +33 -0
  22. package/src/server/adapters/linear/adapter.ts +121 -105
  23. package/src/server/adapters/linear/client.ts +21 -14
  24. package/src/server/adapters/types.ts +1 -1
  25. package/src/server/index.ts +2 -0
  26. package/src/server/tools/__tests__/mcp-interface.test.ts +6 -0
  27. package/src/server/tools/__tests__/z-configure-github.test.ts +560 -0
  28. package/src/server/tools/__tests__/z-get-linear-url.test.ts +2 -2
  29. package/src/server/tools/__tests__/z-init-project.test.ts +168 -0
  30. package/src/server/tools/configure-github.ts +550 -0
  31. package/src/server/tools/index.ts +2 -1
  32. 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 = ["local", "specflux", "linear", "notion"] as const;
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
- initDb();
84
-
85
- const projectId = generateId("proj");
86
- const db = getDb();
87
- insert(db, "projects", {
88
- id: projectId,
89
- name: parsed.name,
90
- ref_prefix: refPrefix,
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. Run /flux:prd to start planning.`,
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|specflux|linear|notion, default 'local'). Creates .flux/ directory with project.json and SQLite database. Returns {success, project, message}. Fails if .flux/ already exists.",
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
  };