jumbo-cli 2.7.1 → 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 (63) 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/audience-pains/add/AddAudiencePainCommandHandler.d.ts +1 -2
  7. package/dist/application/context/audience-pains/add/AddAudiencePainCommandHandler.d.ts.map +1 -1
  8. package/dist/application/context/audience-pains/add/AddAudiencePainCommandHandler.js +2 -3
  9. package/dist/application/context/audience-pains/add/AddAudiencePainCommandHandler.js.map +1 -1
  10. package/dist/application/context/audiences/add/AddAudienceCommandHandler.d.ts +1 -2
  11. package/dist/application/context/audiences/add/AddAudienceCommandHandler.d.ts.map +1 -1
  12. package/dist/application/context/audiences/add/AddAudienceCommandHandler.js +2 -3
  13. package/dist/application/context/audiences/add/AddAudienceCommandHandler.js.map +1 -1
  14. package/dist/application/context/components/add/AddComponentCommandHandler.js +2 -2
  15. package/dist/application/context/components/add/AddComponentCommandHandler.js.map +1 -1
  16. package/dist/application/context/decisions/add/AddDecisionCommandHandler.js +2 -2
  17. package/dist/application/context/decisions/add/AddDecisionCommandHandler.js.map +1 -1
  18. package/dist/application/context/goals/add/AddGoalCommandHandler.js +2 -2
  19. package/dist/application/context/goals/add/AddGoalCommandHandler.js.map +1 -1
  20. package/dist/application/context/guidelines/add/AddGuidelineCommandHandler.js +2 -2
  21. package/dist/application/context/guidelines/add/AddGuidelineCommandHandler.js.map +1 -1
  22. package/dist/application/context/invariants/add/AddInvariantCommandHandler.js +2 -2
  23. package/dist/application/context/invariants/add/AddInvariantCommandHandler.js.map +1 -1
  24. package/dist/application/context/project/init/AgentSelection.d.ts +1 -1
  25. package/dist/application/context/project/init/AgentSelection.d.ts.map +1 -1
  26. package/dist/application/context/relations/add/AddRelationCommandHandler.js +2 -2
  27. package/dist/application/context/relations/add/AddRelationCommandHandler.js.map +1 -1
  28. package/dist/application/context/sessions/start/StartSessionCommandHandler.js +2 -2
  29. package/dist/application/context/sessions/start/StartSessionCommandHandler.js.map +1 -1
  30. package/dist/application/context/value-propositions/add/AddValuePropositionCommandHandler.js +2 -2
  31. package/dist/application/context/value-propositions/add/AddValuePropositionCommandHandler.js.map +1 -1
  32. package/dist/application/identity/IdGenerator.d.ts +4 -0
  33. package/dist/application/identity/IdGenerator.d.ts.map +1 -0
  34. package/dist/application/identity/IdGenerator.js +11 -0
  35. package/dist/application/identity/IdGenerator.js.map +1 -0
  36. package/dist/domain/project/CursorRulesContent.d.ts +32 -0
  37. package/dist/domain/project/CursorRulesContent.d.ts.map +1 -0
  38. package/dist/domain/project/CursorRulesContent.js +60 -0
  39. package/dist/domain/project/CursorRulesContent.js.map +1 -0
  40. package/dist/infrastructure/context/project/init/AgentFileProtocol.d.ts.map +1 -1
  41. package/dist/infrastructure/context/project/init/AgentFileProtocol.js +6 -2
  42. package/dist/infrastructure/context/project/init/AgentFileProtocol.js.map +1 -1
  43. package/dist/infrastructure/context/project/init/CodexConfigurer.d.ts +34 -0
  44. package/dist/infrastructure/context/project/init/CodexConfigurer.d.ts.map +1 -0
  45. package/dist/infrastructure/context/project/init/CodexConfigurer.js +43 -0
  46. package/dist/infrastructure/context/project/init/CodexConfigurer.js.map +1 -0
  47. package/dist/infrastructure/context/project/init/CopilotConfigurer.d.ts +14 -4
  48. package/dist/infrastructure/context/project/init/CopilotConfigurer.d.ts.map +1 -1
  49. package/dist/infrastructure/context/project/init/CopilotConfigurer.js +97 -4
  50. package/dist/infrastructure/context/project/init/CopilotConfigurer.js.map +1 -1
  51. package/dist/infrastructure/context/project/init/CursorConfigurer.d.ts +60 -0
  52. package/dist/infrastructure/context/project/init/CursorConfigurer.d.ts.map +1 -0
  53. package/dist/infrastructure/context/project/init/CursorConfigurer.js +236 -0
  54. package/dist/infrastructure/context/project/init/CursorConfigurer.js.map +1 -0
  55. package/dist/infrastructure/context/project/init/VibeConfigurer.d.ts +33 -0
  56. package/dist/infrastructure/context/project/init/VibeConfigurer.d.ts.map +1 -0
  57. package/dist/infrastructure/context/project/init/VibeConfigurer.js +42 -0
  58. package/dist/infrastructure/context/project/init/VibeConfigurer.js.map +1 -0
  59. package/package.json +1 -2
  60. package/dist/infrastructure/context/project/init/GitHubHooksConfigurer.d.ts +0 -40
  61. package/dist/infrastructure/context/project/init/GitHubHooksConfigurer.d.ts.map +0 -1
  62. package/dist/infrastructure/context/project/init/GitHubHooksConfigurer.js +0 -135
  63. package/dist/infrastructure/context/project/init/GitHubHooksConfigurer.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorRulesContent.d.ts","sourceRoot":"","sources":["../../../src/domain/project/CursorRulesContent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAEvE;;;OAGG;IACH,MAAM,CAAC,cAAc,IAAI,MAAM;IAa/B;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,MAAM;IAIjC;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAc9D"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * Domain Value Object: Cursor Rules Content
4
+ *
5
+ * Codifies the content for .cursor/rules/jumbo.mdc that directs
6
+ * Cursor agents to read JUMBO.md on startup.
7
+ * Handles content generation with YAML frontmatter (alwaysApply: true)
8
+ * and section replacement for repair operations.
9
+ *
10
+ * Rationale: Codified in domain rather than template file to support
11
+ * npm distribution (no file copying during build).
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.CursorRulesContent = void 0;
15
+ class CursorRulesContent {
16
+ /**
17
+ * Generate full .cursor/rules/jumbo.mdc content with YAML frontmatter
18
+ * and a reference to JUMBO.md.
19
+ */
20
+ static getFullContent() {
21
+ return `---
22
+ alwaysApply: true
23
+ ---
24
+
25
+ ${this.SECTION_MARKER}
26
+
27
+ # Jumbo Context Management
28
+
29
+ See JUMBO.md and follow all instructions. If the file does not exist, then ignore this instruction.
30
+ `;
31
+ }
32
+ /**
33
+ * Marker used to detect if Jumbo section already exists in the rules file.
34
+ */
35
+ static getSectionMarker() {
36
+ return this.SECTION_MARKER;
37
+ }
38
+ /**
39
+ * Replace the Jumbo section in an existing rules file with the current content.
40
+ * Finds the section marker and replaces everything from there to EOF
41
+ * with the current section content.
42
+ *
43
+ * @returns Updated content, or null if marker not found
44
+ */
45
+ static replaceSection(existingContent) {
46
+ const markerIndex = existingContent.indexOf(this.SECTION_MARKER);
47
+ if (markerIndex === -1)
48
+ return null;
49
+ const before = existingContent.substring(0, markerIndex);
50
+ return before + `${this.SECTION_MARKER}
51
+
52
+ # Jumbo Context Management
53
+
54
+ See JUMBO.md and follow all instructions. If the file does not exist, then ignore this instruction.
55
+ `;
56
+ }
57
+ }
58
+ exports.CursorRulesContent = CursorRulesContent;
59
+ CursorRulesContent.SECTION_MARKER = "<!-- jumbo:cursor-rules -->";
60
+ //# sourceMappingURL=CursorRulesContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorRulesContent.js","sourceRoot":"","sources":["../../../src/domain/project/CursorRulesContent.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,MAAa,kBAAkB;IAG7B;;;OAGG;IACH,MAAM,CAAC,cAAc;QACnB,OAAO;;;;EAIT,IAAI,CAAC,cAAc;;;;;CAKpB,CAAC;IACA,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,eAAuB;QAC3C,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjE,IAAI,WAAW,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAEzD,OAAO,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc;;;;;CAKzC,CAAC;IACA,CAAC;;AA/CH,gDAgDC;AA/CyB,iCAAc,GAAG,6BAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentFileProtocol.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/AgentFileProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gEAAgE,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAoBtG,qBAAa,iBAAkB,YAAW,kBAAkB;IAQ9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAP/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAK1B;gBAE2B,kBAAkB,GAAE,MAAqC;IAEtF;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvD;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxD;;OAEG;IACG,yBAAyB,CAC7B,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,SAAS,OAAO,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvD;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxD;;OAEG;IACG,yBAAyB,CAC7B,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,SAAS,OAAO,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IAYhB,kBAAkB,IAAI,SAAS,cAAc,EAAE;IAI/C;;OAEG;IACG,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,SAAS,OAAO,EAAE,GACpC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YA+BjB,0BAA0B;YAiC1B,yBAAyB;YAkCzB,0BAA0B;YA8B1B,qBAAqB;IAanC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,iBAAiB;CAW1B"}
1
+ {"version":3,"file":"AgentFileProtocol.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/AgentFileProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gEAAgE,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAsBtG,qBAAa,iBAAkB,YAAW,kBAAkB;IAU9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAT/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAO1B;gBAE2B,kBAAkB,GAAE,MAAqC;IAEtF;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvD;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxD;;OAEG;IACG,yBAAyB,CAC7B,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,SAAS,OAAO,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvD;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxD;;OAEG;IACG,yBAAyB,CAC7B,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,SAAS,OAAO,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IAYhB,kBAAkB,IAAI,SAAS,cAAc,EAAE;IAI/C;;OAEG;IACG,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,SAAS,OAAO,EAAE,GACpC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YA+BjB,0BAA0B;YAiC1B,yBAAyB;YAkCzB,0BAA0B;YA8B1B,qBAAqB;IAanC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,iBAAiB;CAW1B"}
@@ -25,7 +25,9 @@ const AgentsMdContent_js_1 = require("../../../../domain/project/AgentsMdContent
25
25
  const ClaudeConfigurer_js_1 = require("./ClaudeConfigurer.js");
26
26
  const GeminiConfigurer_js_1 = require("./GeminiConfigurer.js");
27
27
  const CopilotConfigurer_js_1 = require("./CopilotConfigurer.js");
28
- const GitHubHooksConfigurer_js_1 = require("./GitHubHooksConfigurer.js");
28
+ const VibeConfigurer_js_1 = require("./VibeConfigurer.js");
29
+ const CodexConfigurer_js_1 = require("./CodexConfigurer.js");
30
+ const CursorConfigurer_js_1 = require("./CursorConfigurer.js");
29
31
  const DEFAULT_TEMPLATE_SKILLS_ROOT = path_1.default.resolve(__dirname, "..", "..", "..", "..", "..", "assets", "skills");
30
32
  class AgentFileProtocol {
31
33
  constructor(templateSkillsRoot = DEFAULT_TEMPLATE_SKILLS_ROOT) {
@@ -34,7 +36,9 @@ class AgentFileProtocol {
34
36
  new ClaudeConfigurer_js_1.ClaudeConfigurer(),
35
37
  new GeminiConfigurer_js_1.GeminiConfigurer(),
36
38
  new CopilotConfigurer_js_1.CopilotConfigurer(),
37
- new GitHubHooksConfigurer_js_1.GitHubHooksConfigurer(),
39
+ new VibeConfigurer_js_1.VibeConfigurer(),
40
+ new CodexConfigurer_js_1.CodexConfigurer(),
41
+ new CursorConfigurer_js_1.CursorConfigurer(),
38
42
  ];
39
43
  }
40
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AgentFileProtocol.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/AgentFileProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentFileProtocol.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/AgentFileProtocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Infrastructure: OpenAI Codex Configurer
3
+ *
4
+ * Encapsulates all knowledge about OpenAI Codex configuration:
5
+ * - Skills distributed to .codex/skills
6
+ *
7
+ * Codex reads AGENTS.md natively, so no instruction file is needed.
8
+ * Codex does not support lifecycle hooks, so configuration is
9
+ * limited to skill distribution.
10
+ *
11
+ * Operations are idempotent and gracefully handle errors.
12
+ */
13
+ import { IConfigurer } from "./IConfigurer.js";
14
+ import { PlannedFileChange } from "../../../../application/context/project/init/PlannedFileChange.js";
15
+ export declare class CodexConfigurer implements IConfigurer {
16
+ readonly agent: {
17
+ readonly id: "codex";
18
+ readonly name: "Codex";
19
+ };
20
+ readonly skillPlatforms: readonly [".codex/skills"];
21
+ /**
22
+ * Configure all OpenAI Codex requirements for Jumbo.
23
+ * Codex reads AGENTS.md natively and has no hook system,
24
+ * so no additional configuration files are needed.
25
+ *
26
+ * @param projectRoot Absolute path to project root directory
27
+ */
28
+ configure(_projectRoot: string): Promise<void>;
29
+ /**
30
+ * Return what changes this configurer will make without executing.
31
+ */
32
+ getPlannedFileChanges(_projectRoot: string): Promise<PlannedFileChange[]>;
33
+ }
34
+ //# sourceMappingURL=CodexConfigurer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexConfigurer.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/CodexConfigurer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAEtG,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,KAAK;;;MAGH;IAEX,QAAQ,CAAC,cAAc,6BAA8B;IAErD;;;;;;OAMG;IACG,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD;;OAEG;IACG,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAGhF"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /**
3
+ * Infrastructure: OpenAI Codex Configurer
4
+ *
5
+ * Encapsulates all knowledge about OpenAI Codex configuration:
6
+ * - Skills distributed to .codex/skills
7
+ *
8
+ * Codex reads AGENTS.md natively, so no instruction file is needed.
9
+ * Codex does not support lifecycle hooks, so configuration is
10
+ * limited to skill distribution.
11
+ *
12
+ * Operations are idempotent and gracefully handle errors.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CodexConfigurer = void 0;
16
+ class CodexConfigurer {
17
+ constructor() {
18
+ this.agent = {
19
+ id: "codex",
20
+ name: "Codex",
21
+ };
22
+ this.skillPlatforms = [".codex/skills"];
23
+ }
24
+ /**
25
+ * Configure all OpenAI Codex requirements for Jumbo.
26
+ * Codex reads AGENTS.md natively and has no hook system,
27
+ * so no additional configuration files are needed.
28
+ *
29
+ * @param projectRoot Absolute path to project root directory
30
+ */
31
+ async configure(_projectRoot) {
32
+ // Codex reads AGENTS.md natively - no additional files needed.
33
+ // Skills are installed by AgentFileProtocol via skillPlatforms.
34
+ }
35
+ /**
36
+ * Return what changes this configurer will make without executing.
37
+ */
38
+ async getPlannedFileChanges(_projectRoot) {
39
+ return [];
40
+ }
41
+ }
42
+ exports.CodexConfigurer = CodexConfigurer;
43
+ //# sourceMappingURL=CodexConfigurer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexConfigurer.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/CodexConfigurer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAKH,MAAa,eAAe;IAA5B;QACW,UAAK,GAAG;YACf,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,OAAO;SACL,CAAC;QAEF,mBAAc,GAAG,CAAC,eAAe,CAAU,CAAC;IAoBvD,CAAC;IAlBC;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,+DAA+D;QAC/D,gEAAgE;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,YAAoB;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AA1BD,0CA0BC"}
@@ -3,9 +3,7 @@
3
3
  *
4
4
  * Encapsulates all knowledge about GitHub Copilot configuration:
5
5
  * - .github/copilot-instructions.md with thin reference to JUMBO.md
6
- *
7
- * Note: Copilot does not support SessionStart hooks, so configuration
8
- * is limited to static instruction files.
6
+ * - .github/hooks/hooks.json with SessionStart hooks
9
7
  *
10
8
  * Operations are idempotent and gracefully handle errors.
11
9
  */
@@ -28,7 +26,19 @@ export declare class CopilotConfigurer implements IConfigurer {
28
26
  */
29
27
  private ensureCopilotInstructions;
30
28
  /**
31
- * Repair Copilot configuration by replacing stale Jumbo section
29
+ * Ensure GitHub hooks are configured in .github/hooks/hooks.json
30
+ */
31
+ private ensureGitHubHooks;
32
+ /**
33
+ * Merge hooks, preserving existing content and adding missing Jumbo hooks
34
+ */
35
+ private mergeHooks;
36
+ /**
37
+ * Merge hook arrays, deduplicating by command content
38
+ */
39
+ private mergeHookArray;
40
+ /**
41
+ * Repair Copilot configuration by replacing stale Jumbo section and ensuring hooks
32
42
  */
33
43
  repair(projectRoot: string): Promise<void>;
34
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CopilotConfigurer.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/CopilotConfigurer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAEtG,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,KAAK;;;MAGH;IAEX,QAAQ,CAAC,cAAc,8BAA+B;IAEtD;;;;OAIG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;OAEG;YACW,yBAAyB;IA6CvC;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;YACW,yBAAyB;IA2CvC;;OAEG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAe/E"}
1
+ {"version":3,"file":"CopilotConfigurer.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/CopilotConfigurer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAEtG,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,KAAK;;;MAGH;IAEX,QAAQ,CAAC,cAAc,8BAA+B;IAEtD;;;;OAIG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD;;OAEG;YACW,yBAAyB;IA6CvC;;OAEG;YACW,iBAAiB;IA0D/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAuBlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhD;;OAEG;YACW,yBAAyB;IA2CvC;;OAEG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAqB/E"}
@@ -4,9 +4,7 @@
4
4
  *
5
5
  * Encapsulates all knowledge about GitHub Copilot configuration:
6
6
  * - .github/copilot-instructions.md with thin reference to JUMBO.md
7
- *
8
- * Note: Copilot does not support SessionStart hooks, so configuration
9
- * is limited to static instruction files.
7
+ * - .github/hooks/hooks.json with SessionStart hooks
10
8
  *
11
9
  * Operations are idempotent and gracefully handle errors.
12
10
  */
@@ -33,6 +31,7 @@ class CopilotConfigurer {
33
31
  */
34
32
  async configure(projectRoot) {
35
33
  await this.ensureCopilotInstructions(projectRoot);
34
+ await this.ensureGitHubHooks(projectRoot);
36
35
  }
37
36
  /**
38
37
  * Ensure GitHub Copilot instructions exist in .github/copilot-instructions.md
@@ -68,10 +67,98 @@ See ../JUMBO.md and follow all instructions. If the file does not exist, then ig
68
67
  }
69
68
  }
70
69
  /**
71
- * Repair Copilot configuration by replacing stale Jumbo section
70
+ * Ensure GitHub hooks are configured in .github/hooks/hooks.json
71
+ */
72
+ async ensureGitHubHooks(projectRoot) {
73
+ try {
74
+ const hooksPath = path_1.default.join(projectRoot, ".github", "hooks", "hooks.json");
75
+ // Ensure .github/hooks directory exists
76
+ await fs_extra_1.default.ensureDir(path_1.default.join(projectRoot, ".github", "hooks"));
77
+ // Define all Jumbo hooks for GitHub
78
+ const jumboHooks = {
79
+ version: 1,
80
+ hooks: {
81
+ sessionStart: [
82
+ {
83
+ type: "command",
84
+ bash: "jumbo session start",
85
+ cwd: ".",
86
+ timeoutSec: 10
87
+ }
88
+ ]
89
+ }
90
+ };
91
+ // Check if file exists
92
+ const exists = await fs_extra_1.default.pathExists(hooksPath);
93
+ if (!exists) {
94
+ // File doesn't exist - create with full content
95
+ await fs_extra_1.default.writeFile(hooksPath, JSON.stringify(jumboHooks, null, 2) + "\n", "utf-8");
96
+ return;
97
+ }
98
+ // File exists - merge with existing content
99
+ const existingContent = await fs_extra_1.default.readFile(hooksPath, "utf-8");
100
+ let existingHooks = {};
101
+ if (existingContent.trim()) {
102
+ try {
103
+ existingHooks = JSON.parse(existingContent);
104
+ }
105
+ catch (parseError) {
106
+ // If JSON is malformed, overwrite with our content
107
+ await fs_extra_1.default.writeFile(hooksPath, JSON.stringify(jumboHooks, null, 2) + "\n", "utf-8");
108
+ return;
109
+ }
110
+ }
111
+ // Merge hooks - ensure sessionStart hooks are present
112
+ const mergedHooks = this.mergeHooks(existingHooks, jumboHooks);
113
+ await fs_extra_1.default.writeFile(hooksPath, JSON.stringify(mergedHooks, null, 2) + "\n", "utf-8");
114
+ }
115
+ catch (error) {
116
+ // Graceful degradation - log but don't throw
117
+ console.warn(`Warning: Failed to configure GitHub hooks: ${error instanceof Error ? error.message : String(error)}`);
118
+ }
119
+ }
120
+ /**
121
+ * Merge hooks, preserving existing content and adding missing Jumbo hooks
122
+ */
123
+ mergeHooks(existing, jumbo) {
124
+ const result = { ...existing };
125
+ // Ensure version is set
126
+ if (jumbo.version !== undefined) {
127
+ result.version = jumbo.version;
128
+ }
129
+ // Merge hooks
130
+ if (jumbo.hooks) {
131
+ result.hooks = result.hooks ?? {};
132
+ for (const [hookType, hooks] of Object.entries(jumbo.hooks)) {
133
+ if (hooks && Array.isArray(hooks)) {
134
+ const existingHooks = Array.isArray(result.hooks[hookType]) ? result.hooks[hookType] : [];
135
+ result.hooks[hookType] = this.mergeHookArray(existingHooks, hooks);
136
+ }
137
+ }
138
+ }
139
+ return result;
140
+ }
141
+ /**
142
+ * Merge hook arrays, deduplicating by command content
143
+ */
144
+ mergeHookArray(existing, additions) {
145
+ const merged = [...existing];
146
+ const existingCommands = new Set(existing.map(h => JSON.stringify(h)));
147
+ for (const addition of additions) {
148
+ const additionKey = JSON.stringify(addition);
149
+ if (!existingCommands.has(additionKey)) {
150
+ merged.push(addition);
151
+ existingCommands.add(additionKey);
152
+ }
153
+ }
154
+ return merged;
155
+ }
156
+ /**
157
+ * Repair Copilot configuration by replacing stale Jumbo section and ensuring hooks
72
158
  */
73
159
  async repair(projectRoot) {
74
160
  await this.repairCopilotInstructions(projectRoot);
161
+ await this.ensureGitHubHooks(projectRoot);
75
162
  }
76
163
  /**
77
164
  * Repair copilot-instructions.md by replacing the Jumbo section with current thin reference
@@ -110,12 +197,18 @@ See ../JUMBO.md and follow all instructions. If the file does not exist, then ig
110
197
  */
111
198
  async getPlannedFileChanges(projectRoot) {
112
199
  const copilotInstructionsPath = path_1.default.join(projectRoot, ".github", "copilot-instructions.md");
200
+ const hooksPath = path_1.default.join(projectRoot, ".github", "hooks", "hooks.json");
113
201
  return [
114
202
  {
115
203
  path: ".github/copilot-instructions.md",
116
204
  action: (await fs_extra_1.default.pathExists(copilotInstructionsPath)) ? "modify" : "create",
117
205
  description: "Add Jumbo instructions",
118
206
  },
207
+ {
208
+ path: ".github/hooks/hooks.json",
209
+ action: (await fs_extra_1.default.pathExists(hooksPath)) ? "modify" : "create",
210
+ description: "Add GitHub hooks configuration",
211
+ },
119
212
  ];
120
213
  }
121
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CopilotConfigurer.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/CopilotConfigurer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CopilotConfigurer.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/CopilotConfigurer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Infrastructure: Cursor Configurer
3
+ *
4
+ * Encapsulates all knowledge about Cursor configuration:
5
+ * - .cursor/rules/jumbo.mdc with YAML frontmatter (alwaysApply: true) referencing JUMBO.md
6
+ * - .cursor/hooks.json with Cursor-native sessionStart hook
7
+ *
8
+ * Operations are idempotent and gracefully handle errors.
9
+ */
10
+ import { IConfigurer } from "./IConfigurer.js";
11
+ import { PlannedFileChange } from "../../../../application/context/project/init/PlannedFileChange.js";
12
+ export declare class CursorConfigurer implements IConfigurer {
13
+ readonly agent: {
14
+ readonly id: "cursor";
15
+ readonly name: "Cursor";
16
+ };
17
+ readonly skillPlatforms: readonly [];
18
+ /**
19
+ * Configure all Cursor requirements for Jumbo
20
+ *
21
+ * @param projectRoot Absolute path to project root directory
22
+ */
23
+ configure(projectRoot: string): Promise<void>;
24
+ /**
25
+ * Ensure .cursor/rules/jumbo.mdc exists with YAML frontmatter and JUMBO.md reference
26
+ */
27
+ private ensureCursorRules;
28
+ /**
29
+ * Ensure Cursor hooks are configured in .cursor/hooks.json
30
+ */
31
+ private ensureCursorHooks;
32
+ /**
33
+ * Merge hooks, preserving existing content and adding missing Jumbo hooks
34
+ */
35
+ private mergeHooks;
36
+ /**
37
+ * Merge hook arrays, deduplicating by command content
38
+ */
39
+ private mergeHookArray;
40
+ /**
41
+ * Normalize existing hook entries to Cursor's schema and remove stale
42
+ * Jumbo preCompact hooks when no resume trigger exists in Cursor.
43
+ */
44
+ private normalizeExistingHooks;
45
+ private normalizeHookEntry;
46
+ private isJumboPauseHook;
47
+ /**
48
+ * Repair Cursor configuration by replacing stale content
49
+ */
50
+ repair(projectRoot: string): Promise<void>;
51
+ /**
52
+ * Repair .cursor/rules/jumbo.mdc by replacing the Jumbo section with current content
53
+ */
54
+ private repairCursorRules;
55
+ /**
56
+ * Return what changes this configurer will make without executing.
57
+ */
58
+ getPlannedFileChanges(projectRoot: string): Promise<PlannedFileChange[]>;
59
+ }
60
+ //# sourceMappingURL=CursorConfigurer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorConfigurer.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/init/CursorConfigurer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAEtG,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,KAAK;;;MAGH;IAEX,QAAQ,CAAC,cAAc,cAAe;IAEtC;;;;OAIG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD;;OAEG;YACW,iBAAiB;IA0B/B;;OAEG;YACW,iBAAiB;IA8C/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAqBlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhD;;OAEG;YACW,iBAAiB;IA6B/B;;OAEG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAmB/E"}