@cristiancorreau/forge 3.1.0 → 3.2.1

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 (87) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +265 -109
  3. package/assets/adapters/claude-code/commands/laravel-eloquent.md +7 -0
  4. package/assets/adapters/claude-code/commands/laravel-mcp.md +7 -0
  5. package/assets/adapters/claude-code/commands/laravel-pest.md +7 -0
  6. package/assets/adapters/claude-code/commands/laravel-security.md +7 -0
  7. package/assets/adapters/claude-code/commands/laravel-verify.md +7 -0
  8. package/assets/core/hooks/pre-bash-check.js +46 -0
  9. package/assets/core/hooks/pre-edit-check.js +14 -0
  10. package/assets/core/skills/laravel-eloquent/SKILL.md +453 -0
  11. package/assets/core/skills/laravel-mcp/SKILL.md +468 -0
  12. package/assets/core/skills/laravel-pest/SKILL.md +686 -0
  13. package/assets/core/skills/laravel-security/SKILL.md +658 -0
  14. package/assets/core/skills/laravel-verify/SKILL.md +462 -0
  15. package/assets/manifest.json +27 -2
  16. package/assets/profiles/astro/agents/frontend-engineer.md +2 -0
  17. package/assets/profiles/django/agents/api-engineer.md +2 -0
  18. package/assets/profiles/expo/agents/mobile-engineer.md +2 -0
  19. package/assets/profiles/express/agents/api-engineer.md +2 -0
  20. package/assets/profiles/fastapi/agents/api-engineer.md +2 -0
  21. package/assets/profiles/flask/agents/api-engineer.md +2 -0
  22. package/assets/profiles/flutter/agents/mobile-engineer.md +12 -10
  23. package/assets/profiles/go-gin/agents/api-engineer.md +3 -1
  24. package/assets/profiles/hono-drizzle/agents/api-engineer.md +2 -0
  25. package/assets/profiles/laravel/README.md +16 -2
  26. package/assets/profiles/laravel/agents/api-engineer.md +2 -0
  27. package/assets/profiles/laravel/agents/fullstack-engineer.md +4 -2
  28. package/assets/profiles/laravel/agents/laravel-specialist.md +607 -0
  29. package/assets/profiles/laravel/agents/laravel-test-engineer.md +448 -0
  30. package/assets/profiles/nestjs/agents/api-engineer.md +3 -1
  31. package/assets/profiles/nextjs-admin/agents/admin-engineer.md +2 -0
  32. package/assets/profiles/playwright-crawler/agents/scanner-engineer.md +2 -0
  33. package/assets/profiles/rails/agents/fullstack-engineer.md +2 -0
  34. package/assets/profiles/rust/agents/api-engineer.md +2 -0
  35. package/assets/profiles/springboot/agents/api-engineer.md +11 -9
  36. package/assets/profiles/sveltekit/agents/frontend-engineer.md +4 -2
  37. package/assets/profiles/vuenuxt/agents/frontend-engineer.md +12 -10
  38. package/assets/profiles/wordpress/agents/divi-engineer.md +2 -0
  39. package/assets/profiles/wordpress/agents/elementor-engineer.md +2 -0
  40. package/dist/cli.js +10 -0
  41. package/dist/cli.js.map +1 -1
  42. package/dist/commands/add.d.ts +2 -0
  43. package/dist/commands/add.d.ts.map +1 -0
  44. package/dist/commands/add.js +187 -0
  45. package/dist/commands/add.js.map +1 -0
  46. package/dist/commands/mcp.d.ts +42 -0
  47. package/dist/commands/mcp.d.ts.map +1 -0
  48. package/dist/commands/mcp.js +141 -0
  49. package/dist/commands/mcp.js.map +1 -0
  50. package/dist/lib/catalog.d.ts.map +1 -1
  51. package/dist/lib/catalog.js +5 -0
  52. package/dist/lib/catalog.js.map +1 -1
  53. package/dist/lib/mcp-tools.d.ts +37 -0
  54. package/dist/lib/mcp-tools.d.ts.map +1 -0
  55. package/dist/lib/mcp-tools.js +124 -0
  56. package/dist/lib/mcp-tools.js.map +1 -0
  57. package/dist/lib/skill-security.d.ts +66 -0
  58. package/dist/lib/skill-security.d.ts.map +1 -0
  59. package/dist/lib/skill-security.js +225 -0
  60. package/dist/lib/skill-security.js.map +1 -0
  61. package/dist/lib/skill-source.d.ts +29 -0
  62. package/dist/lib/skill-source.d.ts.map +1 -0
  63. package/dist/lib/skill-source.js +94 -0
  64. package/dist/lib/skill-source.js.map +1 -0
  65. package/dist/tui/dashboard.d.ts.map +1 -1
  66. package/dist/tui/dashboard.js +3 -6
  67. package/dist/tui/dashboard.js.map +1 -1
  68. package/dist/tui/panel.d.ts.map +1 -1
  69. package/dist/tui/panel.js +7 -18
  70. package/dist/tui/panel.js.map +1 -1
  71. package/dist/tui/wizard.d.ts.map +1 -1
  72. package/dist/tui/wizard.js +3 -13
  73. package/dist/tui/wizard.js.map +1 -1
  74. package/dist/ui/colors.d.ts +3 -1
  75. package/dist/ui/colors.d.ts.map +1 -1
  76. package/dist/ui/colors.js +11 -2
  77. package/dist/ui/colors.js.map +1 -1
  78. package/dist/ui/header.d.ts.map +1 -1
  79. package/dist/ui/header.js +4 -3
  80. package/dist/ui/header.js.map +1 -1
  81. package/dist/ui/theme.d.ts +24 -0
  82. package/dist/ui/theme.d.ts.map +1 -0
  83. package/dist/ui/theme.js +32 -0
  84. package/dist/ui/theme.js.map +1 -0
  85. package/dist/version.d.ts +1 -1
  86. package/dist/version.js +1 -1
  87. package/package.json +2 -2
@@ -0,0 +1,32 @@
1
+ /**
2
+ * forge UI theme — ember/amber on near-black, matching the landing page so the
3
+ * terminal and the website share one identity. Shared by the static header
4
+ * (chalk) and the OpenTUI wizard/dashboard/panel.
5
+ */
6
+ export const THEME = {
7
+ // Primary accent. The key is named `cyan` for back-compat with the existing
8
+ // TUI code (which references C.cyan everywhere), but the VALUE is forge's
9
+ // ember accent — it used to be #00e5ff.
10
+ cyan: '#ff8a1c',
11
+ // Brighter accent for values/highlights (e.g. "TypeScript · Node 20").
12
+ amber: '#ffb454',
13
+ yellow: '#ffd740',
14
+ green: '#56d364',
15
+ red: '#f85149',
16
+ muted: '#8b949e',
17
+ dim: '#5a5f66',
18
+ bg: '#0a0a0b',
19
+ bgPanel: '#141416',
20
+ bgInput: '#1c1c20',
21
+ bgFocus: '#2a2420',
22
+ white: '#e6edf3',
23
+ };
24
+ /** Per-row ember gradient for the 6-line FORGE banner (top → bottom). */
25
+ export const BANNER_GRADIENT = [
26
+ '#ffc163', '#ffb04a', '#ff9f30', '#ff8a1c', '#f9761b', '#f2641a',
27
+ ];
28
+ /** Color for banner row `i` (falls back to the accent for extra rows). */
29
+ export function bannerRowColor(i) {
30
+ return BANNER_GRADIENT[i] ?? THEME.cyan;
31
+ }
32
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,4EAA4E;IAC5E,0EAA0E;IAC1E,wCAAwC;IACxC,IAAI,EAAE,SAAS;IACf,uEAAuE;IACvE,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,EAAE,EAAE,SAAS;IACb,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;CACR,CAAC;AAEX,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CACxD,CAAC;AAEX,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAC1C,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version (kept in sync with package.json). */
2
- export declare const VERSION = "3.1.0";
2
+ export declare const VERSION = "3.2.1";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version (kept in sync with package.json). */
2
- export const VERSION = '3.1.0';
2
+ export const VERSION = '3.2.1';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cristiancorreau/forge",
3
- "version": "3.1.0",
3
+ "version": "3.2.1",
4
4
  "description": "Agentic development framework — multi-runtime support for Claude Code, OpenCode, Codex and Kiro",
5
5
  "author": "Cristian Correa <cristian@socialweb.cl>",
6
6
  "license": "Apache-2.0",
@@ -28,7 +28,7 @@
28
28
  "build:all": "node scripts/build-assets.mjs && tsc",
29
29
  "dev": "tsc --watch",
30
30
  "prepublishOnly": "npm run build:all",
31
- "test": "node --test test/commands.test.mjs test/assets.test.mjs test/hook-spec-gate.test.mjs test/claude-md-specialized.test.mjs test/wiki.test.mjs test/panel.test.mjs test/catalog-install.test.mjs test/windows-compat.test.mjs test/bun-relaunch.test.mjs test/wizard-project-type.test.mjs test/adopt.test.mjs test/more-technologies.test.mjs test/tier2-profiles.test.mjs test/python-sunset.test.mjs test/update.test.mjs"
31
+ "test": "node --test test/commands.test.mjs test/assets.test.mjs test/hook-spec-gate.test.mjs test/claude-md-specialized.test.mjs test/wiki.test.mjs test/panel.test.mjs test/catalog-install.test.mjs test/windows-compat.test.mjs test/bun-relaunch.test.mjs test/wizard-project-type.test.mjs test/adopt.test.mjs test/more-technologies.test.mjs test/tier2-profiles.test.mjs test/python-sunset.test.mjs test/update.test.mjs test/laravel-skills.test.mjs test/skill-security.test.mjs test/add.test.mjs test/hook-guardrail.test.mjs test/mcp-tools.test.mjs"
32
32
  },
33
33
  "files": [
34
34
  "dist",