jumbo-cli 2.7.2 → 2.8.0

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 (35) hide show
  1. package/assets/skills/jumbo-add-component/SKILL.md +45 -0
  2. package/assets/skills/jumbo-add-decision/SKILL.md +42 -0
  3. package/assets/skills/jumbo-add-dependency/SKILL.md +41 -0
  4. package/assets/skills/jumbo-add-guideline/SKILL.md +47 -0
  5. package/assets/skills/jumbo-add-invariant/SKILL.md +44 -0
  6. package/dist/application/context/project/init/AgentSelection.d.ts +1 -1
  7. package/dist/application/context/project/init/AgentSelection.d.ts.map +1 -1
  8. package/dist/domain/project/CursorRulesContent.d.ts +32 -0
  9. package/dist/domain/project/CursorRulesContent.d.ts.map +1 -0
  10. package/dist/domain/project/CursorRulesContent.js +60 -0
  11. package/dist/domain/project/CursorRulesContent.js.map +1 -0
  12. package/dist/infrastructure/context/project/init/AgentFileProtocol.d.ts.map +1 -1
  13. package/dist/infrastructure/context/project/init/AgentFileProtocol.js +6 -2
  14. package/dist/infrastructure/context/project/init/AgentFileProtocol.js.map +1 -1
  15. package/dist/infrastructure/context/project/init/CodexConfigurer.d.ts +34 -0
  16. package/dist/infrastructure/context/project/init/CodexConfigurer.d.ts.map +1 -0
  17. package/dist/infrastructure/context/project/init/CodexConfigurer.js +43 -0
  18. package/dist/infrastructure/context/project/init/CodexConfigurer.js.map +1 -0
  19. package/dist/infrastructure/context/project/init/CopilotConfigurer.d.ts +14 -4
  20. package/dist/infrastructure/context/project/init/CopilotConfigurer.d.ts.map +1 -1
  21. package/dist/infrastructure/context/project/init/CopilotConfigurer.js +97 -4
  22. package/dist/infrastructure/context/project/init/CopilotConfigurer.js.map +1 -1
  23. package/dist/infrastructure/context/project/init/CursorConfigurer.d.ts +60 -0
  24. package/dist/infrastructure/context/project/init/CursorConfigurer.d.ts.map +1 -0
  25. package/dist/infrastructure/context/project/init/CursorConfigurer.js +236 -0
  26. package/dist/infrastructure/context/project/init/CursorConfigurer.js.map +1 -0
  27. package/dist/infrastructure/context/project/init/VibeConfigurer.d.ts +33 -0
  28. package/dist/infrastructure/context/project/init/VibeConfigurer.d.ts.map +1 -0
  29. package/dist/infrastructure/context/project/init/VibeConfigurer.js +42 -0
  30. package/dist/infrastructure/context/project/init/VibeConfigurer.js.map +1 -0
  31. package/package.json +1 -1
  32. package/dist/infrastructure/context/project/init/GitHubHooksConfigurer.d.ts +0 -40
  33. package/dist/infrastructure/context/project/init/GitHubHooksConfigurer.d.ts.map +0 -1
  34. package/dist/infrastructure/context/project/init/GitHubHooksConfigurer.js +0 -135
  35. package/dist/infrastructure/context/project/init/GitHubHooksConfigurer.js.map +0 -1
@@ -1,135 +0,0 @@
1
- "use strict";
2
- /**
3
- * Infrastructure: GitHub Hooks Configurer
4
- *
5
- * Encapsulates all knowledge about GitHub hooks configuration:
6
- * - .github/hooks/hooks.json with SessionStart hooks
7
- *
8
- * Operations are idempotent and gracefully handle errors.
9
- */
10
- var __importDefault = (this && this.__importDefault) || function (mod) {
11
- return (mod && mod.__esModule) ? mod : { "default": mod };
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.GitHubHooksConfigurer = void 0;
15
- const path_1 = __importDefault(require("path"));
16
- const fs_extra_1 = __importDefault(require("fs-extra"));
17
- class GitHubHooksConfigurer {
18
- constructor() {
19
- this.agent = {
20
- id: "github-hooks",
21
- name: "GitHub Hooks",
22
- };
23
- this.skillPlatforms = [".vibe/skills"];
24
- }
25
- /**
26
- * Configure all GitHub hooks requirements for Jumbo
27
- *
28
- * @param projectRoot Absolute path to project root directory
29
- */
30
- async configure(projectRoot) {
31
- await this.ensureGitHubHooks(projectRoot);
32
- }
33
- /**
34
- * Ensure GitHub hooks are configured in .github/hooks/hooks.json
35
- */
36
- async ensureGitHubHooks(projectRoot) {
37
- try {
38
- const hooksPath = path_1.default.join(projectRoot, ".github", "hooks", "hooks.json");
39
- // Ensure .github/hooks directory exists
40
- await fs_extra_1.default.ensureDir(path_1.default.join(projectRoot, ".github", "hooks"));
41
- // Define all Jumbo hooks for GitHub
42
- const jumboHooks = {
43
- version: 1,
44
- hooks: {
45
- sessionStart: [
46
- {
47
- type: "command",
48
- bash: "jumbo session start",
49
- cwd: ".",
50
- timeoutSec: 10
51
- }
52
- ]
53
- }
54
- };
55
- // Check if file exists
56
- const exists = await fs_extra_1.default.pathExists(hooksPath);
57
- if (!exists) {
58
- // File doesn't exist - create with full content
59
- await fs_extra_1.default.writeFile(hooksPath, JSON.stringify(jumboHooks, null, 2) + "\n", "utf-8");
60
- return;
61
- }
62
- // File exists - merge with existing content
63
- const existingContent = await fs_extra_1.default.readFile(hooksPath, "utf-8");
64
- let existingHooks = {};
65
- if (existingContent.trim()) {
66
- try {
67
- existingHooks = JSON.parse(existingContent);
68
- }
69
- catch (parseError) {
70
- // If JSON is malformed, overwrite with our content
71
- await fs_extra_1.default.writeFile(hooksPath, JSON.stringify(jumboHooks, null, 2) + "\n", "utf-8");
72
- return;
73
- }
74
- }
75
- // Merge hooks - ensure sessionStart hooks are present
76
- const mergedHooks = this.mergeHooks(existingHooks, jumboHooks);
77
- await fs_extra_1.default.writeFile(hooksPath, JSON.stringify(mergedHooks, null, 2) + "\n", "utf-8");
78
- }
79
- catch (error) {
80
- // Graceful degradation - log but don't throw
81
- console.warn(`Warning: Failed to configure GitHub hooks: ${error instanceof Error ? error.message : String(error)}`);
82
- }
83
- }
84
- /**
85
- * Merge hooks, preserving existing content and adding missing Jumbo hooks
86
- */
87
- mergeHooks(existing, jumbo) {
88
- const result = { ...existing };
89
- // Ensure version is set
90
- if (jumbo.version !== undefined) {
91
- result.version = jumbo.version;
92
- }
93
- // Merge hooks
94
- if (jumbo.hooks) {
95
- result.hooks = result.hooks ?? {};
96
- for (const [hookType, hooks] of Object.entries(jumbo.hooks)) {
97
- if (hooks && Array.isArray(hooks)) {
98
- const existingHooks = Array.isArray(result.hooks[hookType]) ? result.hooks[hookType] : [];
99
- result.hooks[hookType] = this.mergeHookArray(existingHooks, hooks);
100
- }
101
- }
102
- }
103
- return result;
104
- }
105
- /**
106
- * Merge hook arrays, deduplicating by command content
107
- */
108
- mergeHookArray(existing, additions) {
109
- const merged = [...existing];
110
- const existingCommands = new Set(existing.map(h => JSON.stringify(h)));
111
- for (const addition of additions) {
112
- const additionKey = JSON.stringify(addition);
113
- if (!existingCommands.has(additionKey)) {
114
- merged.push(addition);
115
- existingCommands.add(additionKey);
116
- }
117
- }
118
- return merged;
119
- }
120
- /**
121
- * Return what changes this configurer will make without executing.
122
- */
123
- async getPlannedFileChanges(projectRoot) {
124
- const hooksPath = path_1.default.join(projectRoot, ".github", "hooks", "hooks.json");
125
- return [
126
- {
127
- path: ".github/hooks/hooks.json",
128
- action: (await fs_extra_1.default.pathExists(hooksPath)) ? "modify" : "create",
129
- description: "Add GitHub hooks configuration",
130
- },
131
- ];
132
- }
133
- }
134
- exports.GitHubHooksConfigurer = GitHubHooksConfigurer;
135
- //# sourceMappingURL=GitHubHooksConfigurer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitHubHooksConfigurer.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/GitHubHooksConfigurer.ts"],"names":[],"mappings":"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"}