claude-code-plus-plus 0.3.1 → 0.4.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 (66) hide show
  1. package/dist/constants.d.ts +6 -1
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +7 -2
  4. package/dist/constants.js.map +1 -1
  5. package/dist/diff/diff-handler.d.ts +15 -0
  6. package/dist/diff/diff-handler.d.ts.map +1 -0
  7. package/dist/diff/diff-handler.js +235 -0
  8. package/dist/diff/diff-handler.js.map +1 -0
  9. package/dist/diff/diff-manager.d.ts +63 -0
  10. package/dist/diff/diff-manager.d.ts.map +1 -0
  11. package/dist/diff/diff-manager.js +271 -0
  12. package/dist/diff/diff-manager.js.map +1 -0
  13. package/dist/diff/diff-pane-render.d.ts +34 -0
  14. package/dist/diff/diff-pane-render.d.ts.map +1 -0
  15. package/dist/diff/diff-pane-render.js +222 -0
  16. package/dist/diff/diff-pane-render.js.map +1 -0
  17. package/dist/diff/file-diff-content-handler.d.ts +16 -0
  18. package/dist/diff/file-diff-content-handler.d.ts.map +1 -0
  19. package/dist/diff/file-diff-content-handler.js +142 -0
  20. package/dist/diff/file-diff-content-handler.js.map +1 -0
  21. package/dist/diff/file-diff-header-handler.d.ts +16 -0
  22. package/dist/diff/file-diff-header-handler.d.ts.map +1 -0
  23. package/dist/diff/file-diff-header-handler.js +191 -0
  24. package/dist/diff/file-diff-header-handler.js.map +1 -0
  25. package/dist/diff/file-diff-header-render.d.ts +30 -0
  26. package/dist/diff/file-diff-header-render.d.ts.map +1 -0
  27. package/dist/diff/file-diff-header-render.js +101 -0
  28. package/dist/diff/file-diff-header-render.js.map +1 -0
  29. package/dist/diff/file-diff-render.d.ts +27 -0
  30. package/dist/diff/file-diff-render.d.ts.map +1 -0
  31. package/dist/diff/file-diff-render.js +211 -0
  32. package/dist/diff/file-diff-render.js.map +1 -0
  33. package/dist/diff/git-diff.d.ts +54 -0
  34. package/dist/diff/git-diff.d.ts.map +1 -0
  35. package/dist/diff/git-diff.js +599 -0
  36. package/dist/diff/git-diff.js.map +1 -0
  37. package/dist/diff/index.d.ts +8 -0
  38. package/dist/diff/index.d.ts.map +1 -0
  39. package/dist/diff/index.js +37 -0
  40. package/dist/diff/index.js.map +1 -0
  41. package/dist/sidebar/app.d.ts +69 -0
  42. package/dist/sidebar/app.d.ts.map +1 -1
  43. package/dist/sidebar/app.js +508 -10
  44. package/dist/sidebar/app.js.map +1 -1
  45. package/dist/sidebar/commands.d.ts +1 -0
  46. package/dist/sidebar/commands.d.ts.map +1 -1
  47. package/dist/sidebar/commands.js +11 -0
  48. package/dist/sidebar/commands.js.map +1 -1
  49. package/dist/sidebar/pane-orchestrator.d.ts.map +1 -1
  50. package/dist/sidebar/pane-orchestrator.js +10 -1
  51. package/dist/sidebar/pane-orchestrator.js.map +1 -1
  52. package/dist/sidebar/render.d.ts.map +1 -1
  53. package/dist/sidebar/render.js +2 -1
  54. package/dist/sidebar/render.js.map +1 -1
  55. package/dist/tmux/index.d.ts +1 -1
  56. package/dist/tmux/index.d.ts.map +1 -1
  57. package/dist/tmux/index.js +2 -1
  58. package/dist/tmux/index.js.map +1 -1
  59. package/dist/tmux/pane.d.ts +5 -0
  60. package/dist/tmux/pane.d.ts.map +1 -1
  61. package/dist/tmux/pane.js +10 -0
  62. package/dist/tmux/pane.js.map +1 -1
  63. package/dist/types.d.ts +10 -0
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/types.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * Diff Module Exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.closeFileDiffContentPane = exports.closeFileDiffHeaderPane = exports.startFileDiffContentHandler = exports.startFileDiffHeaderHandler = exports.createFileDiffHeaderPane = exports.createFileDiffContentPane = exports.joinDiffPane = exports.breakDiffPane = exports.closeDiffPane = exports.updateDiffPane = exports.startDiffHandler = exports.createDiffPane = exports.renderFileHeader = exports.findClickedFile = exports.renderDiffPane = exports.watchForChanges = exports.getDiffsOnlyView = exports.getFullFileWithInlineDiff = exports.getFileWithInlineDiff = exports.getFileDiff = exports.getDiffSummary = void 0;
7
+ // Git diff operations
8
+ var git_diff_1 = require("./git-diff");
9
+ Object.defineProperty(exports, "getDiffSummary", { enumerable: true, get: function () { return git_diff_1.getDiffSummary; } });
10
+ Object.defineProperty(exports, "getFileDiff", { enumerable: true, get: function () { return git_diff_1.getFileDiff; } });
11
+ Object.defineProperty(exports, "getFileWithInlineDiff", { enumerable: true, get: function () { return git_diff_1.getFileWithInlineDiff; } });
12
+ Object.defineProperty(exports, "getFullFileWithInlineDiff", { enumerable: true, get: function () { return git_diff_1.getFullFileWithInlineDiff; } });
13
+ Object.defineProperty(exports, "getDiffsOnlyView", { enumerable: true, get: function () { return git_diff_1.getDiffsOnlyView; } });
14
+ Object.defineProperty(exports, "watchForChanges", { enumerable: true, get: function () { return git_diff_1.watchForChanges; } });
15
+ // Diff pane rendering
16
+ var diff_pane_render_1 = require("./diff-pane-render");
17
+ Object.defineProperty(exports, "renderDiffPane", { enumerable: true, get: function () { return diff_pane_render_1.renderDiffPane; } });
18
+ Object.defineProperty(exports, "findClickedFile", { enumerable: true, get: function () { return diff_pane_render_1.findClickedFile; } });
19
+ // File diff header rendering
20
+ var file_diff_header_render_1 = require("./file-diff-header-render");
21
+ Object.defineProperty(exports, "renderFileHeader", { enumerable: true, get: function () { return file_diff_header_render_1.renderFileHeader; } });
22
+ // Diff pane management
23
+ var diff_manager_1 = require("./diff-manager");
24
+ Object.defineProperty(exports, "createDiffPane", { enumerable: true, get: function () { return diff_manager_1.createDiffPane; } });
25
+ Object.defineProperty(exports, "startDiffHandler", { enumerable: true, get: function () { return diff_manager_1.startDiffHandler; } });
26
+ Object.defineProperty(exports, "updateDiffPane", { enumerable: true, get: function () { return diff_manager_1.updateDiffPane; } });
27
+ Object.defineProperty(exports, "closeDiffPane", { enumerable: true, get: function () { return diff_manager_1.closeDiffPane; } });
28
+ Object.defineProperty(exports, "breakDiffPane", { enumerable: true, get: function () { return diff_manager_1.breakDiffPane; } });
29
+ Object.defineProperty(exports, "joinDiffPane", { enumerable: true, get: function () { return diff_manager_1.joinDiffPane; } });
30
+ // File diff view pane management
31
+ Object.defineProperty(exports, "createFileDiffContentPane", { enumerable: true, get: function () { return diff_manager_1.createFileDiffContentPane; } });
32
+ Object.defineProperty(exports, "createFileDiffHeaderPane", { enumerable: true, get: function () { return diff_manager_1.createFileDiffHeaderPane; } });
33
+ Object.defineProperty(exports, "startFileDiffHeaderHandler", { enumerable: true, get: function () { return diff_manager_1.startFileDiffHeaderHandler; } });
34
+ Object.defineProperty(exports, "startFileDiffContentHandler", { enumerable: true, get: function () { return diff_manager_1.startFileDiffContentHandler; } });
35
+ Object.defineProperty(exports, "closeFileDiffHeaderPane", { enumerable: true, get: function () { return diff_manager_1.closeFileDiffHeaderPane; } });
36
+ Object.defineProperty(exports, "closeFileDiffContentPane", { enumerable: true, get: function () { return diff_manager_1.closeFileDiffContentPane; } });
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,sBAAsB;AACtB,uCASoB;AARlB,0GAAA,cAAc,OAAA;AACd,uGAAA,WAAW,OAAA;AACX,iHAAA,qBAAqB,OAAA;AACrB,qHAAA,yBAAyB,OAAA;AACzB,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AAKjB,sBAAsB;AACtB,uDAI4B;AAH1B,kHAAA,cAAc,OAAA;AACd,mHAAA,eAAe,OAAA;AAIjB,6BAA6B;AAC7B,qEAImC;AAHjC,2HAAA,gBAAgB,OAAA;AAKlB,uBAAuB;AACvB,+CAcwB;AAbtB,8GAAA,cAAc,OAAA;AACd,gHAAA,gBAAgB,OAAA;AAChB,8GAAA,cAAc,OAAA;AACd,6GAAA,aAAa,OAAA;AACb,6GAAA,aAAa,OAAA;AACb,4GAAA,YAAY,OAAA;AACZ,iCAAiC;AACjC,yHAAA,yBAAyB,OAAA;AACzB,wHAAA,wBAAwB,OAAA;AACxB,0HAAA,0BAA0B,OAAA;AAC1B,2HAAA,2BAA2B,OAAA;AAC3B,uHAAA,uBAAuB,OAAA;AACvB,wHAAA,wBAAwB,OAAA"}
@@ -8,6 +8,8 @@ export declare class SidebarApp {
8
8
  private state;
9
9
  private worktreeManager;
10
10
  private running;
11
+ private fileWatcherCleanup;
12
+ private diffPaneOpening;
11
13
  constructor(repoPath: string, sessionName: string, mainPaneId: string, sidebarPaneId: string);
12
14
  init(): Promise<void>;
13
15
  start(): void;
@@ -58,6 +60,73 @@ export declare class SidebarApp {
58
60
  * Send updated state to the terminal bar handler
59
61
  */
60
62
  private updateTerminalBar;
63
+ /**
64
+ * Toggle the diff pane visibility
65
+ */
66
+ private toggleDiffPane;
67
+ /**
68
+ * Open the diff pane for a session
69
+ * @param manualOpen - True if user manually opened (toggle), false if auto-open
70
+ */
71
+ private openDiffPane;
72
+ /**
73
+ * Auto-open diff pane if there are changes and not manually hidden
74
+ */
75
+ private autoOpenDiffPaneIfNeeded;
76
+ /**
77
+ * Close the diff pane for a session
78
+ * @param manualClose - True if user manually closed (toggle), false if system close
79
+ */
80
+ private closeDiffPane;
81
+ /**
82
+ * Set up file watcher for auto-refresh and auto-open
83
+ */
84
+ private setupFileWatcher;
85
+ /**
86
+ * Clean up file watcher
87
+ */
88
+ private cleanupFileWatcher;
89
+ /**
90
+ * Execute a diff command received from the diff pane handler
91
+ * Format: "DIFF:<action>:<data>"
92
+ */
93
+ private executeDiffCommand;
94
+ /**
95
+ * Show file diff view (replaces Claude pane + terminals with header + content panes)
96
+ *
97
+ * Architecture:
98
+ * - Claude pane is broken to background (process preserved)
99
+ * - Terminal panes are broken to background (if any)
100
+ * - Diff pane (file list sidebar) remains visible
101
+ * - Content pane shows full file with inline diffs (streaming)
102
+ * - 1-row header pane above content for "Back" button + filename
103
+ * - Content handler handles Esc key to close
104
+ */
105
+ private showFileDiff;
106
+ /**
107
+ * Hide file diff view and restore Claude pane
108
+ *
109
+ * New architecture:
110
+ * - Kill header + content panes
111
+ * - Join Claude pane back from background
112
+ * - Restore diff pane and terminals if any
113
+ */
114
+ private hideFileDiff;
115
+ /**
116
+ * Handle input in file diff view mode
117
+ * With the new architecture, scrolling is handled natively by `less`.
118
+ * The sidebar only handles Escape to close.
119
+ */
120
+ private handleFileDiffInput;
121
+ /**
122
+ * Execute a file diff command received from the file diff header handler
123
+ * Format: "FILEDIFF:<action>" or "FILEDIFF:mode:<mode>"
124
+ */
125
+ private executeFileDiffCommand;
126
+ /**
127
+ * Set the diff view mode and recreate the file diff panes
128
+ */
129
+ private setDiffViewMode;
61
130
  /**
62
131
  * Enter fullscreen modal mode - hides all session panes so sidebar can expand
63
132
  */
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/sidebar/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyDH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAS;gBAGtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM;IA+BjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,KAAK,IAAI,IAAI;IAqBb,IAAI,IAAI,IAAI;IAYZ,OAAO,CAAC,MAAM;IAsCd,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,WAAW;IAiEnB,OAAO,CAAC,eAAe;IA2EvB,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,sBAAsB;IAgD9B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,eAAe;IA4DvB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,gBAAgB;YAyBV,cAAc;IAY5B,OAAO,CAAC,aAAa;IAiErB,OAAO,CAAC,eAAe;YA8DT,cAAc;IAW5B,OAAO,CAAC,aAAa;YAoEP,cAAc;IAiF5B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA0C9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiGtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAoDtB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2C5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8C3B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;CAYxB"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/sidebar/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8EH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,eAAe,CAAS;gBAG9B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM;IAmCjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,KAAK,IAAI,IAAI;IAqBb,IAAI,IAAI,IAAI;IAYZ,OAAO,CAAC,MAAM;IAwCd,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,WAAW;IA8EnB,OAAO,CAAC,eAAe;IA4EvB,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,sBAAsB;IAgD9B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,eAAe;IA4DvB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,gBAAgB;YAyBV,cAAc;IAY5B,OAAO,CAAC,aAAa;YA6FP,eAAe;YAiGf,cAAc;IAW5B,OAAO,CAAC,aAAa;YAuFP,cAAc;IAiF5B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA0C9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiGtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAoDtB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;YACW,cAAc;IAgB5B;;;OAGG;YACW,YAAY;IAsC1B;;OAEG;YACW,wBAAwB;IActC;;;OAGG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;YACW,kBAAkB;IAoChC;;;;;;;;;;OAUG;YACW,YAAY;IA6G1B;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IA+CpB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;YACW,eAAe;IAkE7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+C5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqD3B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;CAYxB"}