@programinglive/dev-workflow-mcp-server 1.5.2 → 1.5.4

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 (78) hide show
  1. package/.agent/workflows/dev-workflow-bugfix.md +250 -250
  2. package/.agent/workflows/dev-workflow-feature.md +201 -201
  3. package/.agent/workflows/dev-workflow-full-cycle.md +400 -400
  4. package/.agent/workflows/dev-workflow-refactor.md +238 -238
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +34 -34
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +25 -25
  7. package/.github/pull_request_template.md +22 -22
  8. package/.github/workflows/github-release.yml +56 -0
  9. package/.github/workflows/npm-publish.yml +50 -50
  10. package/.husky/commit-msg +0 -0
  11. package/CHANGELOG.md +759 -741
  12. package/CODE_OF_CONDUCT.md +79 -79
  13. package/CONTRIBUTING.md +60 -60
  14. package/LICENSE +21 -21
  15. package/README.md +632 -632
  16. package/SECURITY.md +20 -20
  17. package/db/index.js +204 -204
  18. package/docs/NETLIFY_DEPLOYMENT.md +125 -125
  19. package/docs/PLESK_DEPLOYMENT.md +170 -170
  20. package/docs/WORKFLOW-BEST-PRACTICES.md +58 -58
  21. package/docs/antigravity/EXAMPLES.md +535 -535
  22. package/docs/antigravity/GETTING-STARTED.md +292 -292
  23. package/docs/antigravity/TROUBLESHOOTING.md +742 -742
  24. package/docs/antigravity/WALKTHROUGH.md +25 -25
  25. package/docs/antigravity/WORKFLOW-TEMPLATES.md +670 -670
  26. package/docs/product/PRD.md +67 -67
  27. package/docs/release-notes/RELEASE_NOTES.md +233 -226
  28. package/docs/web-dashboard.md +175 -175
  29. package/exec.js +49 -49
  30. package/index.js +279 -279
  31. package/install.js +73 -73
  32. package/package.json +4 -4
  33. package/release-wrapper.js +192 -192
  34. package/scripts/build-docs.js +63 -63
  35. package/scripts/extract-release-notes.cjs +78 -0
  36. package/scripts/hello-world.js +1 -1
  37. package/scripts/release.cjs +252 -252
  38. package/scripts/release.js +252 -0
  39. package/scripts/update-release-notes.cjs +178 -178
  40. package/scripts/update-release-notes.js +182 -0
  41. package/server.json +23 -23
  42. package/tailwind.config.js +8 -8
  43. package/tests/build.test.js +83 -83
  44. package/tests/exec.test.js +35 -35
  45. package/tests/handlers.test.js +1058 -1058
  46. package/tests/hello-world.test.js +13 -13
  47. package/tests/mcpRegistry.test.js +65 -65
  48. package/tests/patch-release.test.js +7 -0
  49. package/tests/release-wrapper.test.js +107 -107
  50. package/tests/workflowState.test.js +505 -505
  51. package/tools/definitions.js +332 -332
  52. package/tools/handlers.js +1019 -1019
  53. package/vite.config.js +43 -43
  54. package/vite.web.config.js +23 -23
  55. package/web/README.md +36 -36
  56. package/web/app/docs/page.tsx +202 -202
  57. package/web/app/globals.css +90 -90
  58. package/web/app/layout.tsx +36 -36
  59. package/web/app/page.tsx +15 -15
  60. package/web/components/ApiReference.tsx +20 -20
  61. package/web/components/Features.tsx +61 -61
  62. package/web/components/Footer.tsx +9 -9
  63. package/web/components/Hero.tsx +96 -96
  64. package/web/components/History.tsx +143 -143
  65. package/web/components/Navbar.tsx +64 -64
  66. package/web/components/Terminal.tsx +114 -114
  67. package/web/eslint.config.mjs +18 -18
  68. package/web/lib/db.js +131 -131
  69. package/web/lib/docs.js +73 -73
  70. package/web/netlify.toml +3 -3
  71. package/web/next.config.ts +12 -12
  72. package/web/package-lock.json +6560 -6560
  73. package/web/package.json +28 -28
  74. package/web/postcss.config.mjs +9 -9
  75. package/web/server.js +31 -31
  76. package/web/tailwind.config.ts +19 -19
  77. package/web/tsconfig.json +42 -42
  78. package/workflow-state.js +612 -612
package/web/lib/docs.js CHANGED
@@ -1,73 +1,73 @@
1
- import { readFile, access } from "fs/promises";
2
- import { join, dirname } from "path";
3
- import { existsSync } from "fs";
4
- import path from "path";
5
-
6
- function getProjectRoot() {
7
- const initCwd = process.env.INIT_CWD || process.cwd();
8
- let projectRoot = initCwd;
9
- while (projectRoot !== path.dirname(projectRoot)) {
10
- if (existsSync(path.join(projectRoot, "package.json")) && existsSync(path.join(projectRoot, "docs"))) return projectRoot;
11
- projectRoot = path.dirname(projectRoot);
12
- }
13
- return path.join(process.cwd(), "..");
14
- }
15
-
16
- const projectRoot = getProjectRoot();
17
-
18
- const docSources = {
19
- "README.md": {
20
- markdown: join(projectRoot, "README.md"),
21
- html: join(projectRoot, "dist", "docs", "README.html"),
22
- },
23
- "web-dashboard.md": {
24
- markdown: join(projectRoot, "docs", "web-dashboard.md"),
25
- html: join(projectRoot, "dist", "docs", "web-dashboard.html"),
26
- },
27
- "GETTING-STARTED.md": {
28
- markdown: join(projectRoot, "docs", "antigravity", "GETTING-STARTED.md"),
29
- html: join(projectRoot, "dist", "docs", "GETTING-STARTED.html"),
30
- },
31
- "EXAMPLES.md": {
32
- markdown: join(projectRoot, "docs", "antigravity", "EXAMPLES.md"),
33
- html: join(projectRoot, "dist", "docs", "EXAMPLES.html"),
34
- },
35
- "WORKFLOW-TEMPLATES.md": {
36
- markdown: join(projectRoot, "docs", "antigravity", "WORKFLOW-TEMPLATES.md"),
37
- html: join(projectRoot, "dist", "docs", "WORKFLOW-TEMPLATES.html"),
38
- },
39
- "TROUBLESHOOTING.md": {
40
- markdown: join(projectRoot, "docs", "antigravity", "TROUBLESHOOTING.md"),
41
- html: join(projectRoot, "dist", "docs", "TROUBLESHOOTING.html"),
42
- },
43
- "RELEASE_NOTES.md": {
44
- markdown: join(projectRoot, "docs", "release-notes", "RELEASE_NOTES.md"),
45
- html: join(projectRoot, "dist", "docs", "RELEASE_NOTES.html"),
46
- },
47
- };
48
-
49
- export async function resolveDocContent(docKey) {
50
- const entry = docSources[docKey];
51
- if (!entry) {
52
- return { exists: false };
53
- }
54
-
55
- // Try HTML first, fall back to Markdown in development or if HTML missing.
56
- const candidates = [entry.html, entry.markdown];
57
- for (const candidate of candidates) {
58
- try {
59
- await access(candidate);
60
- const content = await readFile(candidate, "utf-8");
61
- const format = candidate.endsWith(".html") ? "html" : "markdown";
62
- return { exists: true, content, format };
63
- } catch {
64
- // try next candidate
65
- }
66
- }
67
-
68
- return { exists: false };
69
- }
70
-
71
- export function getAvailableDocs() {
72
- return Object.keys(docSources);
73
- }
1
+ import { readFile, access } from "fs/promises";
2
+ import { join, dirname } from "path";
3
+ import { existsSync } from "fs";
4
+ import path from "path";
5
+
6
+ function getProjectRoot() {
7
+ const initCwd = process.env.INIT_CWD || process.cwd();
8
+ let projectRoot = initCwd;
9
+ while (projectRoot !== path.dirname(projectRoot)) {
10
+ if (existsSync(path.join(projectRoot, "package.json")) && existsSync(path.join(projectRoot, "docs"))) return projectRoot;
11
+ projectRoot = path.dirname(projectRoot);
12
+ }
13
+ return path.join(process.cwd(), "..");
14
+ }
15
+
16
+ const projectRoot = getProjectRoot();
17
+
18
+ const docSources = {
19
+ "README.md": {
20
+ markdown: join(projectRoot, "README.md"),
21
+ html: join(projectRoot, "dist", "docs", "README.html"),
22
+ },
23
+ "web-dashboard.md": {
24
+ markdown: join(projectRoot, "docs", "web-dashboard.md"),
25
+ html: join(projectRoot, "dist", "docs", "web-dashboard.html"),
26
+ },
27
+ "GETTING-STARTED.md": {
28
+ markdown: join(projectRoot, "docs", "antigravity", "GETTING-STARTED.md"),
29
+ html: join(projectRoot, "dist", "docs", "GETTING-STARTED.html"),
30
+ },
31
+ "EXAMPLES.md": {
32
+ markdown: join(projectRoot, "docs", "antigravity", "EXAMPLES.md"),
33
+ html: join(projectRoot, "dist", "docs", "EXAMPLES.html"),
34
+ },
35
+ "WORKFLOW-TEMPLATES.md": {
36
+ markdown: join(projectRoot, "docs", "antigravity", "WORKFLOW-TEMPLATES.md"),
37
+ html: join(projectRoot, "dist", "docs", "WORKFLOW-TEMPLATES.html"),
38
+ },
39
+ "TROUBLESHOOTING.md": {
40
+ markdown: join(projectRoot, "docs", "antigravity", "TROUBLESHOOTING.md"),
41
+ html: join(projectRoot, "dist", "docs", "TROUBLESHOOTING.html"),
42
+ },
43
+ "RELEASE_NOTES.md": {
44
+ markdown: join(projectRoot, "docs", "release-notes", "RELEASE_NOTES.md"),
45
+ html: join(projectRoot, "dist", "docs", "RELEASE_NOTES.html"),
46
+ },
47
+ };
48
+
49
+ export async function resolveDocContent(docKey) {
50
+ const entry = docSources[docKey];
51
+ if (!entry) {
52
+ return { exists: false };
53
+ }
54
+
55
+ // Try HTML first, fall back to Markdown in development or if HTML missing.
56
+ const candidates = [entry.html, entry.markdown];
57
+ for (const candidate of candidates) {
58
+ try {
59
+ await access(candidate);
60
+ const content = await readFile(candidate, "utf-8");
61
+ const format = candidate.endsWith(".html") ? "html" : "markdown";
62
+ return { exists: true, content, format };
63
+ } catch {
64
+ // try next candidate
65
+ }
66
+ }
67
+
68
+ return { exists: false };
69
+ }
70
+
71
+ export function getAvailableDocs() {
72
+ return Object.keys(docSources);
73
+ }
package/web/netlify.toml CHANGED
@@ -1,3 +1,3 @@
1
- [build]
2
- command = "npm run build"
3
- publish = "out"
1
+ [build]
2
+ command = "npm run build"
3
+ publish = "out"
@@ -1,12 +1,12 @@
1
- import type { NextConfig } from "next";
2
-
3
- const nextConfig: NextConfig = {
4
- // Static export for Netlify deployment
5
- output: 'export',
6
- // Disable image optimization for static export
7
- images: {
8
- unoptimized: true,
9
- },
10
- };
11
-
12
- export default nextConfig;
1
+ import type { NextConfig } from "next";
2
+
3
+ const nextConfig: NextConfig = {
4
+ // Static export for Netlify deployment
5
+ output: 'export',
6
+ // Disable image optimization for static export
7
+ images: {
8
+ unoptimized: true,
9
+ },
10
+ };
11
+
12
+ export default nextConfig;