fraim-framework 2.0.63 → 2.0.65

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 (106) hide show
  1. package/bin/fraim-mcp.js +52 -19
  2. package/bin/fraim.js +23 -0
  3. package/dist/src/cli/commands/add-ide.js +53 -14
  4. package/dist/src/cli/commands/doctor.js +12 -24
  5. package/dist/src/cli/commands/init-project.js +0 -3
  6. package/dist/src/cli/commands/init.js +0 -2
  7. package/dist/src/cli/commands/mcp.js +65 -0
  8. package/dist/src/cli/commands/setup.js +17 -1
  9. package/dist/src/cli/commands/sync.js +173 -104
  10. package/dist/src/cli/setup/auto-mcp-setup.js +6 -4
  11. package/dist/src/cli/setup/mcp-config-generator.js +65 -41
  12. package/dist/src/fraim/issue-tracking/ado-provider.js +304 -0
  13. package/dist/src/fraim/issue-tracking/factory.js +63 -0
  14. package/dist/src/fraim/issue-tracking/github-provider.js +200 -0
  15. package/dist/src/fraim/issue-tracking/types.js +7 -0
  16. package/dist/src/fraim/issue-tracking-config.js +83 -0
  17. package/dist/src/local-mcp-server/stdio-server.js +91 -15
  18. package/dist/src/utils/remote-sync.js +130 -0
  19. package/package.json +3 -4
  20. package/dist/src/utils/enforcement-utils.js +0 -239
  21. package/dist/src/utils/validate-workflows.js +0 -101
  22. package/registry/scripts/cleanup-branch.ts +0 -341
  23. package/registry/scripts/code-quality-check.sh +0 -566
  24. package/registry/scripts/comprehensive-explorer.py +0 -297
  25. package/registry/scripts/create-git-labels.sh +0 -49
  26. package/registry/scripts/create-website-structure.js +0 -562
  27. package/registry/scripts/detect-tautological-tests.sh +0 -38
  28. package/registry/scripts/evaluate-code-quality.ts +0 -36
  29. package/registry/scripts/exec-with-timeout.ts +0 -122
  30. package/registry/scripts/generate-engagement-emails.ts +0 -830
  31. package/registry/scripts/interactive-explorer.py +0 -270
  32. package/registry/scripts/markdown-to-pdf.js +0 -395
  33. package/registry/scripts/newsletter-helpers.ts +0 -777
  34. package/registry/scripts/pdf-styles.css +0 -172
  35. package/registry/scripts/prep-issue.sh +0 -548
  36. package/registry/scripts/productivity/build-productivity-csv.mjs +0 -242
  37. package/registry/scripts/productivity/fetch-pr-details.mjs +0 -144
  38. package/registry/scripts/productivity/productivity-report.sh +0 -147
  39. package/registry/scripts/profile-server.ts +0 -426
  40. package/registry/scripts/run-thank-you-workflow.ts +0 -122
  41. package/registry/scripts/scrape-site.py +0 -302
  42. package/registry/scripts/send-newsletter-simple.ts +0 -102
  43. package/registry/scripts/send-thank-you-emails.ts +0 -57
  44. package/registry/scripts/validate-openapi-limits.ts +0 -366
  45. package/registry/scripts/validate-test-coverage.ts +0 -280
  46. package/registry/scripts/verify-pr-comments.sh +0 -74
  47. package/registry/scripts/verify-test-coverage.ts +0 -36
  48. package/registry/stubs/workflows/bootstrap/create-architecture.md +0 -11
  49. package/registry/stubs/workflows/bootstrap/detect-broken-windows.md +0 -11
  50. package/registry/stubs/workflows/bootstrap/evaluate-code-quality.md +0 -11
  51. package/registry/stubs/workflows/bootstrap/verify-test-coverage.md +0 -11
  52. package/registry/stubs/workflows/brainstorming/blue-sky-brainstorming.md +0 -11
  53. package/registry/stubs/workflows/brainstorming/codebase-brainstorming.md +0 -11
  54. package/registry/stubs/workflows/business-development/create-business-plan.md +0 -11
  55. package/registry/stubs/workflows/business-development/ideate-business-opportunity.md +0 -11
  56. package/registry/stubs/workflows/business-development/price-product.md +0 -18
  57. package/registry/stubs/workflows/compliance/detect-compliance-requirements.md +0 -11
  58. package/registry/stubs/workflows/compliance/generate-audit-evidence.md +0 -11
  59. package/registry/stubs/workflows/compliance/soc2-evidence-generator.md +0 -11
  60. package/registry/stubs/workflows/customer-development/insight-analysis.md +0 -11
  61. package/registry/stubs/workflows/customer-development/insight-triage.md +0 -11
  62. package/registry/stubs/workflows/customer-development/interview-preparation.md +0 -11
  63. package/registry/stubs/workflows/customer-development/linkedin-outreach.md +0 -11
  64. package/registry/stubs/workflows/customer-development/strategic-brainstorming.md +0 -11
  65. package/registry/stubs/workflows/customer-development/thank-customers.md +0 -11
  66. package/registry/stubs/workflows/customer-development/user-survey-dispatch.md +0 -11
  67. package/registry/stubs/workflows/customer-development/users-to-target.md +0 -11
  68. package/registry/stubs/workflows/customer-development/weekly-newsletter.md +0 -11
  69. package/registry/stubs/workflows/deploy/cloud-deployment.md +0 -11
  70. package/registry/stubs/workflows/improve-fraim/contribute.md +0 -11
  71. package/registry/stubs/workflows/improve-fraim/file-issue.md +0 -11
  72. package/registry/stubs/workflows/learning/build-skillset.md +0 -11
  73. package/registry/stubs/workflows/learning/synthesize-learnings.md +0 -11
  74. package/registry/stubs/workflows/legal/contract-review-analysis.md +0 -11
  75. package/registry/stubs/workflows/legal/nda.md +0 -11
  76. package/registry/stubs/workflows/legal/patent-filing.md +0 -11
  77. package/registry/stubs/workflows/legal/saas-contract-development.md +0 -11
  78. package/registry/stubs/workflows/legal/trademark-filing.md +0 -11
  79. package/registry/stubs/workflows/marketing/content-creation.md +0 -11
  80. package/registry/stubs/workflows/marketing/convert-to-pdf.md +0 -11
  81. package/registry/stubs/workflows/marketing/create-modern-website.md +0 -11
  82. package/registry/stubs/workflows/marketing/domain-registration.md +0 -11
  83. package/registry/stubs/workflows/marketing/hbr-article.md +0 -11
  84. package/registry/stubs/workflows/marketing/launch-checklist.md +0 -11
  85. package/registry/stubs/workflows/marketing/marketing-strategy.md +0 -11
  86. package/registry/stubs/workflows/marketing/storytelling.md +0 -11
  87. package/registry/stubs/workflows/performance/analyze-performance.md +0 -11
  88. package/registry/stubs/workflows/product-building/design.md +0 -11
  89. package/registry/stubs/workflows/product-building/implement.md +0 -11
  90. package/registry/stubs/workflows/product-building/iterate-on-pr-comments.md +0 -11
  91. package/registry/stubs/workflows/product-building/prep-issue.md +0 -11
  92. package/registry/stubs/workflows/product-building/prototype.md +0 -11
  93. package/registry/stubs/workflows/product-building/resolve.md +0 -11
  94. package/registry/stubs/workflows/product-building/retrospect.md +0 -11
  95. package/registry/stubs/workflows/product-building/spec.md +0 -11
  96. package/registry/stubs/workflows/product-building/test.md +0 -11
  97. package/registry/stubs/workflows/productivity-report/productivity-report.md +0 -11
  98. package/registry/stubs/workflows/quality-assurance/browser-validation.md +0 -11
  99. package/registry/stubs/workflows/quality-assurance/iterative-improvement-cycle.md +0 -11
  100. package/registry/stubs/workflows/replicate/replicate-discovery.md +0 -11
  101. package/registry/stubs/workflows/replicate/replicate-to-issues.md +0 -11
  102. package/registry/stubs/workflows/reviewer/review-implementation-vs-design-spec.md +0 -11
  103. package/registry/stubs/workflows/reviewer/review-implementation-vs-feature-spec.md +0 -11
  104. package/registry/stubs/workflows/startup-credits/aws-activate-application.md +0 -11
  105. package/registry/stubs/workflows/startup-credits/google-cloud-application.md +0 -11
  106. package/registry/stubs/workflows/startup-credits/microsoft-azure-application.md +0 -11
@@ -1,122 +0,0 @@
1
- import { spawn } from "child_process";
2
- import * as fs from "fs";
3
- import * as path from "path";
4
- import fg from "fast-glob";
5
- import kill from "tree-kill";
6
- import os from "os";
7
-
8
- function parseArgs(argv: string[]) {
9
- const out: any = { cmd: [], timeout: 120, logfile: "run.log" };
10
- let parsingCmd = false;
11
-
12
- for (let i = 0; i < argv.length; i++) {
13
- const a = argv[i];
14
-
15
- if (!parsingCmd) {
16
- if (a === "--timeout" && argv[i + 1]) {
17
- out.timeout = parseInt(argv[++i], 10);
18
- } else if (a.startsWith("--timeout=")) {
19
- out.timeout = parseInt(a.split("=")[1], 10);
20
- } else if (a === "--logfile" && argv[i + 1]) {
21
- out.logfile = argv[++i];
22
- } else if (a.startsWith("--logfile=")) {
23
- out.logfile = a.split("=")[1];
24
- } else if (a === "--") {
25
- parsingCmd = true; // everything after this is command
26
- } else {
27
- parsingCmd = true;
28
- out.cmd.push(a);
29
- }
30
- } else {
31
- out.cmd.push(a);
32
- }
33
- }
34
-
35
- return out;
36
- }
37
-
38
- async function main() {
39
- const args = parseArgs(process.argv.slice(2));
40
- if (!args.cmd.length) {
41
- console.error(
42
- "Usage: exec-with-timeout <cmd> [args...] [--timeout 120] [--logfile run.log]"
43
- );
44
- process.exit(2);
45
- }
46
-
47
- const logPath = path.resolve(process.cwd(), args.logfile);
48
- const out = fs.createWriteStream(logPath, { flags: "a" });
49
- out.write(
50
- `\n--- RUN: ${args.cmd.join(" ")} @ ${new Date().toISOString()} (timeout ${
51
- args.timeout
52
- }s) ---\n`
53
- );
54
-
55
- // Expand globs (e.g. test*.ts)
56
- let [cmd, ...argv] = args.cmd;
57
- let expanded: string[] = [];
58
- for (const a of argv) {
59
- if (a.includes("*")) {
60
- const matches = await fg(a);
61
- expanded.push(...matches);
62
- } else {
63
- expanded.push(a);
64
- }
65
- }
66
-
67
- let child;
68
- if (os.platform() === "win32" && (cmd === "npm" || cmd === "npx")) {
69
- // On Windows, run the full command line with shell
70
- const fullCommand = [cmd, ...expanded].join(" ");
71
- child = spawn(fullCommand, { stdio: ["ignore", "pipe", "pipe"], shell: true });
72
- } else {
73
- // On Linux/Mac, do it the normal way
74
- child = spawn(cmd, expanded, { stdio: ["ignore", "pipe", "pipe"] });
75
- }
76
-
77
-
78
-
79
- child.stdout.on("data", (d) => {
80
- process.stdout.write(d);
81
- out.write(d);
82
- });
83
-
84
- child.stderr.on("data", (d) => {
85
- process.stderr.write(d);
86
- out.write(d);
87
- });
88
-
89
- let timedOut = false;
90
- const timer = setTimeout(() => {
91
- timedOut = true;
92
- out.write(
93
- `\n[exec-with-timeout] TIMEOUT after ${args.timeout}s → killing process tree\n`
94
- );
95
- kill(child.pid!, "SIGTERM");
96
-
97
- setTimeout(() => {
98
- try {
99
- kill(child.pid!, "SIGKILL");
100
- } catch {}
101
- }, 2000);
102
- }, args.timeout * 1000);
103
-
104
- child.on("exit", (code, signal) => {
105
- clearTimeout(timer);
106
- out.write(
107
- `\n--- EXIT: code=${code} signal=${signal} timedOut=${timedOut} ---\n`
108
- );
109
- out.end();
110
-
111
- if (timedOut) {
112
- console.error(`[guard] Command timed out: ${args.cmd.join(" ")}`);
113
- process.exit(124);
114
- }
115
- process.exit(code === null ? 1 : code);
116
- });
117
- }
118
-
119
- main().catch((err) => {
120
- console.error(err);
121
- process.exit(1);
122
- });