@arnavpisces/sutra 1.0.1 → 1.0.4

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 (88) hide show
  1. package/README.md +2 -5
  2. package/dist/api/jira-client.d.ts +16 -1
  3. package/dist/api/jira-client.d.ts.map +1 -1
  4. package/dist/api/jira-client.js +81 -2
  5. package/dist/api/jira-client.js.map +1 -1
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +178 -6
  8. package/dist/app.js.map +1 -1
  9. package/dist/components/common/EditableTextBox.d.ts.map +1 -1
  10. package/dist/components/common/EditableTextBox.js +2 -1
  11. package/dist/components/common/EditableTextBox.js.map +1 -1
  12. package/dist/components/common/FuzzySelect.d.ts.map +1 -1
  13. package/dist/components/common/FuzzySelect.js +5 -1
  14. package/dist/components/common/FuzzySelect.js.map +1 -1
  15. package/dist/components/common/Header.d.ts +3 -1
  16. package/dist/components/common/Header.d.ts.map +1 -1
  17. package/dist/components/common/Header.js +3 -3
  18. package/dist/components/common/Header.js.map +1 -1
  19. package/dist/components/common/SavedList.d.ts.map +1 -1
  20. package/dist/components/common/SavedList.js +7 -2
  21. package/dist/components/common/SavedList.js.map +1 -1
  22. package/dist/components/common/ShortcutHints.d.ts +12 -0
  23. package/dist/components/common/ShortcutHints.d.ts.map +1 -0
  24. package/dist/components/common/ShortcutHints.js +10 -0
  25. package/dist/components/common/ShortcutHints.js.map +1 -0
  26. package/dist/components/common/TextEditor.d.ts.map +1 -1
  27. package/dist/components/common/TextEditor.js +13 -2
  28. package/dist/components/common/TextEditor.js.map +1 -1
  29. package/dist/components/confluence/ConfluenceView.d.ts.map +1 -1
  30. package/dist/components/confluence/ConfluenceView.js +7 -3
  31. package/dist/components/confluence/ConfluenceView.js.map +1 -1
  32. package/dist/components/confluence/PageAttachments.d.ts.map +1 -1
  33. package/dist/components/confluence/PageAttachments.js +11 -2
  34. package/dist/components/confluence/PageAttachments.js.map +1 -1
  35. package/dist/components/confluence/PageBrowser.d.ts.map +1 -1
  36. package/dist/components/confluence/PageBrowser.js +7 -1
  37. package/dist/components/confluence/PageBrowser.js.map +1 -1
  38. package/dist/components/confluence/PageComments.d.ts.map +1 -1
  39. package/dist/components/confluence/PageComments.js +5 -1
  40. package/dist/components/confluence/PageComments.js.map +1 -1
  41. package/dist/components/confluence/PageEditor.d.ts.map +1 -1
  42. package/dist/components/confluence/PageEditor.js +5 -1
  43. package/dist/components/confluence/PageEditor.js.map +1 -1
  44. package/dist/components/confluence/PageLabels.d.ts.map +1 -1
  45. package/dist/components/confluence/PageLabels.js +10 -2
  46. package/dist/components/confluence/PageLabels.js.map +1 -1
  47. package/dist/components/confluence/PageList.d.ts.map +1 -1
  48. package/dist/components/confluence/PageList.js +13 -3
  49. package/dist/components/confluence/PageList.js.map +1 -1
  50. package/dist/components/confluence/PageViewer.d.ts.map +1 -1
  51. package/dist/components/confluence/PageViewer.js +13 -1
  52. package/dist/components/confluence/PageViewer.js.map +1 -1
  53. package/dist/components/jira/CommentForm.d.ts.map +1 -1
  54. package/dist/components/jira/CommentForm.js +11 -2
  55. package/dist/components/jira/CommentForm.js.map +1 -1
  56. package/dist/components/jira/CreateTicket.d.ts.map +1 -1
  57. package/dist/components/jira/CreateTicket.js +164 -8
  58. package/dist/components/jira/CreateTicket.js.map +1 -1
  59. package/dist/components/jira/IssueList.d.ts.map +1 -1
  60. package/dist/components/jira/IssueList.js +8 -2
  61. package/dist/components/jira/IssueList.js.map +1 -1
  62. package/dist/components/jira/JiraView.d.ts +2 -1
  63. package/dist/components/jira/JiraView.d.ts.map +1 -1
  64. package/dist/components/jira/JiraView.js +63 -10
  65. package/dist/components/jira/JiraView.js.map +1 -1
  66. package/dist/components/jira/JqlSearch.d.ts.map +1 -1
  67. package/dist/components/jira/JqlSearch.js +5 -1
  68. package/dist/components/jira/JqlSearch.js.map +1 -1
  69. package/dist/components/jira/QuickFilters.d.ts.map +1 -1
  70. package/dist/components/jira/QuickFilters.js +31 -4
  71. package/dist/components/jira/QuickFilters.js.map +1 -1
  72. package/dist/components/jira/TicketDetail.d.ts +2 -1
  73. package/dist/components/jira/TicketDetail.d.ts.map +1 -1
  74. package/dist/components/jira/TicketDetail.js +83 -13
  75. package/dist/components/jira/TicketDetail.js.map +1 -1
  76. package/dist/components/jira/TicketEditor.d.ts.map +1 -1
  77. package/dist/components/jira/TicketEditor.js +15 -2
  78. package/dist/components/jira/TicketEditor.js.map +1 -1
  79. package/dist/components/jira/TicketList.d.ts.map +1 -1
  80. package/dist/components/jira/TicketList.js +9 -3
  81. package/dist/components/jira/TicketList.js.map +1 -1
  82. package/dist/index.js +11 -3
  83. package/dist/index.js.map +1 -1
  84. package/dist/utils/auto-updater.d.ts +12 -0
  85. package/dist/utils/auto-updater.d.ts.map +1 -0
  86. package/dist/utils/auto-updater.js +261 -0
  87. package/dist/utils/auto-updater.js.map +1 -0
  88. package/package.json +1 -1
package/README.md CHANGED
@@ -29,11 +29,8 @@ Built for day-to-day engineering workflows where speed matters.
29
29
  ### 3) Run JQL search (`currentUser()` example)
30
30
  ![JQL search](https://raw.githubusercontent.com/arnavpisces/sutra/main/docs/media/gifs/jira-jql-search.gif)
31
31
 
32
- ### 4) Search Confluence pages
33
- ![Search Confluence pages](https://raw.githubusercontent.com/arnavpisces/sutra/main/docs/media/gifs/confluence-search.gif)
34
-
35
- ### 5) View and find inside Confluence pages
36
- ![View Confluence page](https://raw.githubusercontent.com/arnavpisces/sutra/main/docs/media/gifs/confluence-view-find.gif)
32
+ ### 4) Search, view and edit Confluence doc
33
+ ![Search, view and edit Confluence doc](https://raw.githubusercontent.com/arnavpisces/sutra/main/docs/media/gifs/confluence-search.gif)
37
34
 
38
35
  ## Features
39
36
 
@@ -5,6 +5,13 @@ export interface JiraIssue {
5
5
  fields: {
6
6
  summary: string;
7
7
  description: any;
8
+ parent?: {
9
+ id?: string;
10
+ key?: string;
11
+ fields?: {
12
+ summary?: string;
13
+ };
14
+ };
8
15
  status: {
9
16
  name: string;
10
17
  id: string;
@@ -30,6 +37,9 @@ export interface JiraTransition {
30
37
  name: string;
31
38
  to: {
32
39
  name: string;
40
+ statusCategory?: {
41
+ key: string;
42
+ };
33
43
  };
34
44
  }
35
45
  export interface JiraSearchResult {
@@ -69,6 +79,8 @@ export declare class JiraClient {
69
79
  }): Promise<void>;
70
80
  getTransitions(key: string): Promise<JiraTransition[]>;
71
81
  transitionIssue(key: string, transitionId: string): Promise<void>;
82
+ assignIssueToUser(key: string, accountId: string): Promise<void>;
83
+ assignIssueToMe(key: string): Promise<void>;
72
84
  addComment(key: string, body: any): Promise<void>;
73
85
  updateComment(issueKey: string, commentId: string, body: any): Promise<void>;
74
86
  getComments(issueKey: string, startAt?: number, maxResults?: number): Promise<{
@@ -79,6 +91,7 @@ export declare class JiraClient {
79
91
  accountId: string;
80
92
  displayName: string;
81
93
  }>;
94
+ getIssueCount(jql: string): Promise<number>;
82
95
  searchIssues(jql: string, maxResults?: number, startAt?: number): Promise<JiraSearchResult>;
83
96
  getProjects(): Promise<{
84
97
  id: string;
@@ -94,8 +107,10 @@ export declare class JiraClient {
94
107
  id: string;
95
108
  name: string;
96
109
  }[]>;
110
+ searchEpics(projectKey: string, query: string, maxResults?: number): Promise<JiraIssue[]>;
111
+ searchParentIssues(projectKey: string, query: string, maxResults?: number): Promise<JiraIssue[]>;
97
112
  getPriorities(): Promise<JiraPriority[]>;
98
- createIssue(projectKey: string, issueTypeId: string, summary: string, description: string, priorityId?: string): Promise<JiraIssue>;
113
+ createIssue(projectKey: string, issueTypeId: string, summary: string, description: string, priorityId?: string, parentKey?: string): Promise<JiraIssue>;
99
114
  downloadAttachment(attachmentId: string): Promise<Buffer>;
100
115
  uploadAttachment(issueKey: string, filePath: string): Promise<void>;
101
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jira-client.d.ts","sourceRoot":"","sources":["../../src/api/jira-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jira-client.d.ts","sourceRoot":"","sources":["../../src/api/jira-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAE,MAAM,aAAa,CAAC;AAIzD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,GAAG,CAAC;QACjB,MAAM,CAAC,EAAE;YACP,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,MAAM,CAAC,EAAE;gBACP,OAAO,CAAC,EAAE,MAAM,CAAC;aAClB,CAAC;SACH,CAAC;QACF,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,EAAE,EAAE,MAAM,CAAC;SACZ,CAAC;QACF,OAAO,CAAC,EAAE;YACR,QAAQ,EAAE,KAAK,CAAC;gBACd,EAAE,EAAE,MAAM,CAAC;gBACX,MAAM,EAAE;oBACN,WAAW,EAAE,MAAM,CAAC;oBACpB,SAAS,CAAC,EAAE,MAAM,CAAC;iBACpB,CAAC;gBACF,OAAO,EAAE,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC;aACX,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;QAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,CAAC,EAAE;YACf,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAMD,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAY;gBAEjB,MAAM,EAAE,eAAe;IAI7B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAQzC,WAAW,CACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,GAAG,CAAC;QAAC,QAAQ,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,GAChF,OAAO,CAAC,IAAI,CAAC;IAIV,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAOtD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjE,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,EAAE,UAAU,GAAE,MAAY,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAOjI,SAAS,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAIhE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkD3C,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,MAAW,EAAE,OAAO,GAAE,MAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwClG,WAAW,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IASnE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IASnF,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAqC1E,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAgB7F,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAgBpG,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAuBxC,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC;IAoCf,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAY1E"}
@@ -1,13 +1,16 @@
1
1
  import { ApiClient } from './client.js';
2
2
  import { readFileSync } from 'fs';
3
3
  import { basename } from 'path';
4
+ function escapeJqlString(value) {
5
+ return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
6
+ }
4
7
  export class JiraClient {
5
8
  constructor(config) {
6
9
  this.apiClient = new ApiClient(config);
7
10
  }
8
11
  async getIssue(key) {
9
12
  const expand = 'changelog,changelog.histories';
10
- const fields = 'summary,description,status,comment,attachment,issuetype,priority,labels,assignee,reporter,created,updated,duedate';
13
+ const fields = 'summary,description,parent,status,comment,attachment,issuetype,priority,labels,assignee,reporter,created,updated,duedate';
11
14
  return this.apiClient.get(`/rest/api/3/issue/${key}?expand=${expand}&fields=${fields}`);
12
15
  }
13
16
  async updateIssue(key, fields) {
@@ -22,6 +25,13 @@ export class JiraClient {
22
25
  transition: { id: transitionId },
23
26
  });
24
27
  }
28
+ async assignIssueToUser(key, accountId) {
29
+ await this.apiClient.put(`/rest/api/3/issue/${key}/assignee`, { accountId });
30
+ }
31
+ async assignIssueToMe(key) {
32
+ const me = await this.getMyself();
33
+ await this.assignIssueToUser(key, me.accountId);
34
+ }
25
35
  async addComment(key, body) {
26
36
  await this.apiClient.post(`/rest/api/3/issue/${key}/comment`, { body });
27
37
  }
@@ -35,6 +45,46 @@ export class JiraClient {
35
45
  async getMyself() {
36
46
  return this.apiClient.get('/rest/api/3/myself');
37
47
  }
48
+ async getIssueCount(jql) {
49
+ const encodedJql = encodeURIComponent(jql);
50
+ const fields = encodeURIComponent('id');
51
+ const pageSize = 100;
52
+ let startAt = 0;
53
+ let counted = 0;
54
+ let pageGuard = 0;
55
+ // Prefer enhanced search API and count incrementally. This avoids relying on `total`,
56
+ // which can be omitted in some Jira Cloud responses.
57
+ while (pageGuard < 100) {
58
+ try {
59
+ const page = await this.apiClient.get(`/rest/api/3/search/jql?jql=${encodedJql}&startAt=${startAt}&maxResults=${pageSize}&fields=${fields}`);
60
+ const issues = Array.isArray(page?.issues) ? page.issues : [];
61
+ const pageCount = issues.length;
62
+ counted += pageCount;
63
+ const hasNext = page?.isLast === false ||
64
+ Boolean(page?.nextPageToken) ||
65
+ (typeof page?.total === 'number' && startAt + pageCount < page.total);
66
+ if (!hasNext || pageCount === 0) {
67
+ if (typeof page?.total === 'number') {
68
+ return Math.max(counted, page.total);
69
+ }
70
+ return counted;
71
+ }
72
+ startAt += pageCount;
73
+ pageGuard += 1;
74
+ }
75
+ catch {
76
+ break;
77
+ }
78
+ }
79
+ // Final fallback for tenants where /search/jql is unavailable.
80
+ try {
81
+ const legacy = await this.apiClient.get(`/rest/api/3/search?jql=${encodedJql}&maxResults=0&fields=id`);
82
+ return typeof legacy?.total === 'number' ? legacy.total : counted;
83
+ }
84
+ catch {
85
+ return counted;
86
+ }
87
+ }
38
88
  async searchIssues(jql, maxResults = 50, startAt = 0) {
39
89
  const fields = encodeURIComponent('summary,status,description,created,issuetype,priority');
40
90
  const encodedJql = encodeURIComponent(jql);
@@ -108,6 +158,32 @@ export class JiraClient {
108
158
  }
109
159
  return [];
110
160
  }
161
+ async searchEpics(projectKey, query, maxResults = 35) {
162
+ const trimmedQuery = query.trim();
163
+ const clauses = [
164
+ `project = "${escapeJqlString(projectKey)}"`,
165
+ 'issuetype = Epic',
166
+ ];
167
+ if (trimmedQuery) {
168
+ clauses.push(`summary ~ "${escapeJqlString(trimmedQuery)}*"`);
169
+ }
170
+ const jql = `${clauses.join(' AND ')} ORDER BY updated DESC`;
171
+ const result = await this.searchIssues(jql, maxResults, 0);
172
+ return result.issues;
173
+ }
174
+ async searchParentIssues(projectKey, query, maxResults = 35) {
175
+ const trimmedQuery = query.trim();
176
+ const clauses = [
177
+ `project = "${escapeJqlString(projectKey)}"`,
178
+ 'parent IS EMPTY',
179
+ ];
180
+ if (trimmedQuery) {
181
+ clauses.push(`summary ~ "${escapeJqlString(trimmedQuery)}*"`);
182
+ }
183
+ const jql = `${clauses.join(' AND ')} ORDER BY updated DESC`;
184
+ const result = await this.searchIssues(jql, maxResults, 0);
185
+ return result.issues;
186
+ }
111
187
  async getPriorities() {
112
188
  try {
113
189
  const modern = await this.apiClient.get('/rest/api/3/priority/search?maxResults=200');
@@ -129,7 +205,7 @@ export class JiraClient {
129
205
  }
130
206
  return [];
131
207
  }
132
- async createIssue(projectKey, issueTypeId, summary, description, priorityId) {
208
+ async createIssue(projectKey, issueTypeId, summary, description, priorityId, parentKey) {
133
209
  const issueFields = {
134
210
  project: { key: projectKey },
135
211
  issuetype: { id: issueTypeId },
@@ -153,6 +229,9 @@ export class JiraClient {
153
229
  if (priorityId) {
154
230
  issueFields.priority = { id: priorityId };
155
231
  }
232
+ if (parentKey) {
233
+ issueFields.parent = { key: parentKey };
234
+ }
156
235
  const body = {
157
236
  fields: issueFields
158
237
  };
@@ -1 +1 @@
1
- {"version":3,"file":"jira-client.js","sourceRoot":"","sources":["../../src/api/jira-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAiEhC,MAAM,OAAO,UAAU;IAGrB,YAAY,MAAuB;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,MAAM,MAAM,GAAG,+BAA+B,CAAC;QAC/C,MAAM,MAAM,GAAG,mHAAmH,CAAC;QACnI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CACvB,qBAAqB,GAAG,WAAW,MAAM,WAAW,MAAM,EAAE,CAC7D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,GAAW,EACX,MAAiF;QAEjF,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CACvC,qBAAqB,GAAG,cAAc,CACvC,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,YAAoB;QACrD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,GAAG,cAAc,EAAE;YAChE,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,IAAS;QACrC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,SAAiB,EAAE,IAAS;QAChE,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,QAAQ,YAAY,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,UAAkB,CAAC,EAAE,aAAqB,GAAG;QAC/E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAClC,qBAAqB,QAAQ,oBAAoB,OAAO,eAAe,UAAU,EAAE,CACpF,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,aAAqB,EAAE,EAAE,UAAkB,CAAC;QAC1E,MAAM,MAAM,GAAG,kBAAkB,CAAC,uDAAuD,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE3C,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CACvC,8BAA8B,UAAU,YAAY,OAAO,eAAe,UAAU,WAAW,MAAM,EAAE,CACxG,CAAC;YAEF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,QAAQ,EAAE,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ;gBAC/C,CAAC,CAAC,QAAQ,CAAC,KAAK;gBAChB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAEtE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACxC,wBAAwB,EACxB;gBACE,GAAG;gBACH,OAAO;gBACP,UAAU;gBACV,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC;gBAChF,MAAM,EAAE,OAAO;aAChB,CACF,CAAC;YAEF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,MAAM,KAAK,GAAG,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ;gBAC/C,CAAC,CAAC,QAAQ,CAAC,KAAK;gBAChB,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAE5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAoB,4CAA4C,CAAC,CAAC;QACtG,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAoB,oCAAoC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzH,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,4DAA4D;QAC5D,kEAAkE;QAClE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CACrC,gCAAgC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAC5E,CAAC;YAEF,MAAM,UAAU,GACd,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,UAAU;gBAClB,EAAE,CAAC;YAEL,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,UAAU;qBACd,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;qBACzE,MAAM,CAAC,CAAC,CAA+B,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CACrC,4CAA4C,kBAAkB,CAAC,UAAU,CAAC,oCAAoC,CAC/G,CAAC;QAEF,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;YACjF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU;iBACjC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;iBACzE,MAAM,CAAC,CAAC,CAA+B,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAM,4CAA4C,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;YAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM;qBACV,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;qBACzE,MAAM,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAM,sBAAsB,CAAC,CAAC;QACrE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM;iBACV,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;iBACzE,MAAM,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,UAAkB,EAClB,WAAmB,EACnB,OAAe,EACf,WAAmB,EACnB,UAAmB;QAEnB,MAAM,WAAW,GAAQ;YACvB,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE;YAC5B,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;YAC9B,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE;gBACX,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,WAAW;6BAClB;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;QAC5C,CAAC;QAED,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAY,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QACvD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9C,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,qBAAqB,QAAQ,cAAc,EAAE,IAAI,EAAE;YACnF,OAAO,EAAE;gBACP,mBAAmB,EAAE,UAAU;aAChC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"jira-client.js","sourceRoot":"","sources":["../../src/api/jira-client.ts"],"names":[],"mappings":"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"}
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,GAAG,4CA2LlB"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AAuBA,wBAAgB,GAAG,4CAqXlB"}
package/dist/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { useState, useEffect, useCallback } from 'react';
2
+ import { useState, useEffect, useCallback, useRef } from 'react';
3
3
  import { Box, Text, useInput, useApp, useStdout } from 'ink';
4
4
  import { ConfigManager } from './config/config-manager.js';
5
5
  import { JiraClient } from './api/jira-client.js';
@@ -12,11 +12,13 @@ import { HelpModal } from './components/common/HelpModal.js';
12
12
  import { Toast } from './components/common/Toast.js';
13
13
  import { JiraView } from './components/jira/JiraView.js';
14
14
  import { ConfluenceView } from './components/confluence/ConfluenceView.js';
15
+ import { subscribeAutoUpdateEvents } from './utils/auto-updater.js';
15
16
  import { te } from './theme/te.js';
16
17
  export function App() {
17
18
  const { exit } = useApp();
18
19
  const { stdout } = useStdout();
19
20
  const [activeTab, setActiveTab] = useState(0);
21
+ const [now, setNow] = useState(() => new Date());
20
22
  const [jiraClient, setJiraClient] = useState(null);
21
23
  const [confluenceClient, setConfluenceClient] = useState(null);
22
24
  const [jiraBaseUrl, setJiraBaseUrl] = useState('');
@@ -24,9 +26,18 @@ export function App() {
24
26
  const [connectionStatus, setConnectionStatus] = useState('loading');
25
27
  const [showHelp, setShowHelp] = useState(false);
26
28
  const [toast, setToast] = useState(null);
29
+ const [toastQueue, setToastQueue] = useState([]);
30
+ const [jiraOpenCount, setJiraOpenCount] = useState(null);
31
+ const [jiraTotalCount, setJiraTotalCount] = useState(null);
32
+ const [myConfluenceDocs, setMyConfluenceDocs] = useState(null);
33
+ const [metricsRefreshNonce, setMetricsRefreshNonce] = useState(0);
34
+ const lastMetricAdjustRef = useRef(0);
27
35
  // Get terminal dimensions for fixed-height rendering
28
36
  // Subtract 1 to ensure content doesn't push header off-screen
29
37
  const terminalHeight = (stdout?.rows || 24) - 1;
38
+ const enqueueToast = useCallback((next) => {
39
+ setToastQueue((prev) => [...prev, next]);
40
+ }, []);
30
41
  useEffect(() => {
31
42
  const initialize = async () => {
32
43
  try {
@@ -60,7 +71,7 @@ export function App() {
60
71
  setJiraBaseUrl(config.jira.baseUrl);
61
72
  setConfluenceClient(confluence);
62
73
  setConnectionStatus('connected');
63
- setToast({
74
+ enqueueToast({
64
75
  type: 'success',
65
76
  message: 'Successful setup: Jira and Confluence credentials verified.',
66
77
  });
@@ -71,7 +82,136 @@ export function App() {
71
82
  }
72
83
  };
73
84
  initialize();
85
+ }, [enqueueToast]);
86
+ useEffect(() => {
87
+ const timer = setInterval(() => setNow(new Date()), 30000);
88
+ return () => clearInterval(timer);
74
89
  }, []);
90
+ useEffect(() => {
91
+ const unsubscribe = subscribeAutoUpdateEvents((event) => {
92
+ if (event.type === 'disabled')
93
+ return;
94
+ if (event.type === 'check-started') {
95
+ enqueueToast({
96
+ type: 'info',
97
+ message: `Auto-update: checking npm for newer versions (current v${event.currentVersion})...`,
98
+ duration: 3000,
99
+ });
100
+ return;
101
+ }
102
+ if (event.type === 'up-to-date') {
103
+ enqueueToast({
104
+ type: 'success',
105
+ message: `Auto-update: you're on the latest version (v${event.currentVersion}).`,
106
+ duration: 3000,
107
+ });
108
+ return;
109
+ }
110
+ if (event.type === 'update-available') {
111
+ enqueueToast({
112
+ type: 'warning',
113
+ message: `Update available: v${event.latestVersion} (current v${event.currentVersion}). Downloading now...`,
114
+ duration: 5000,
115
+ });
116
+ return;
117
+ }
118
+ if (event.type === 'update-install-started') {
119
+ enqueueToast({
120
+ type: 'info',
121
+ message: `Auto-update: installing v${event.latestVersion} in background.`,
122
+ duration: 4000,
123
+ });
124
+ return;
125
+ }
126
+ if (event.type === 'update-install-failed') {
127
+ enqueueToast({
128
+ type: 'error',
129
+ message: `Auto-update failed for v${event.latestVersion}: ${event.error || 'install error'}`,
130
+ duration: 6000,
131
+ });
132
+ return;
133
+ }
134
+ if (event.type === 'check-failed') {
135
+ enqueueToast({
136
+ type: 'warning',
137
+ message: `Auto-update check failed: ${event.error || 'could not reach npm registry'}`,
138
+ duration: 5000,
139
+ });
140
+ }
141
+ });
142
+ return () => unsubscribe();
143
+ }, [enqueueToast]);
144
+ useEffect(() => {
145
+ if (toast || toastQueue.length === 0)
146
+ return;
147
+ const [next, ...rest] = toastQueue;
148
+ setToast(next);
149
+ setToastQueue(rest);
150
+ }, [toast, toastQueue]);
151
+ useEffect(() => {
152
+ if (!jiraClient || !confluenceClient || connectionStatus !== 'connected')
153
+ return;
154
+ let cancelled = false;
155
+ const fetchJiraMetric = async () => {
156
+ try {
157
+ const [openCount, totalCount] = await Promise.all([
158
+ jiraClient.getIssueCount('assignee = currentUser() AND statusCategory = Done'),
159
+ jiraClient.getIssueCount('assignee = currentUser()'),
160
+ ]);
161
+ if (cancelled)
162
+ return;
163
+ // Don't overwrite locally-adjusted counts until the Jira search index catches up
164
+ if (Date.now() - lastMetricAdjustRef.current < 8000)
165
+ return;
166
+ setJiraOpenCount(openCount);
167
+ setJiraTotalCount(totalCount);
168
+ }
169
+ catch {
170
+ // Keep last known values on error (don't null out)
171
+ }
172
+ };
173
+ const fetchConfluenceMetric = async () => {
174
+ try {
175
+ const cql = 'type=page AND creator=currentUser() ORDER BY created DESC';
176
+ const firstPage = await confluenceClient.searchPages(cql, 100, 0);
177
+ const firstAny = firstPage;
178
+ if (typeof firstAny.totalSize === 'number') {
179
+ if (!cancelled)
180
+ setMyConfluenceDocs(firstAny.totalSize);
181
+ return;
182
+ }
183
+ let total = Array.isArray(firstPage.results) ? firstPage.results.length : 0;
184
+ let start = 100;
185
+ let pageGuard = 0;
186
+ let hasNext = Boolean(firstPage._links?.next) || total === 100;
187
+ while (hasNext && pageGuard < 20) {
188
+ const page = await confluenceClient.searchPages(cql, 100, start);
189
+ const count = Array.isArray(page.results) ? page.results.length : 0;
190
+ total += count;
191
+ if (count === 0)
192
+ break;
193
+ start += 100;
194
+ hasNext = Boolean(page._links?.next) || count === 100;
195
+ pageGuard += 1;
196
+ }
197
+ if (!cancelled)
198
+ setMyConfluenceDocs(total);
199
+ }
200
+ catch {
201
+ if (!cancelled)
202
+ setMyConfluenceDocs(null);
203
+ }
204
+ };
205
+ const refreshMetrics = async () => {
206
+ await Promise.all([fetchJiraMetric(), fetchConfluenceMetric()]);
207
+ };
208
+ refreshMetrics();
209
+ const timer = setInterval(refreshMetrics, 30000);
210
+ return () => {
211
+ cancelled = true;
212
+ clearInterval(timer);
213
+ };
214
+ }, [jiraClient, confluenceClient, connectionStatus, metricsRefreshNonce]);
75
215
  useInput((input, key) => {
76
216
  if (key.ctrl && (input === 'q' || input === 'c')) {
77
217
  exit();
@@ -88,6 +228,28 @@ export function App() {
88
228
  });
89
229
  // Memoized callback for Toast dismissal
90
230
  const handleDismissToast = useCallback(() => setToast(null), []);
231
+ const scheduleMetricRecheck = useCallback(() => {
232
+ setTimeout(() => setMetricsRefreshNonce(prev => prev + 1), 2500);
233
+ setTimeout(() => setMetricsRefreshNonce(prev => prev + 1), 8000);
234
+ }, []);
235
+ const handleJiraDataChanged = useCallback((openDelta, totalDelta) => {
236
+ const od = openDelta ?? 0;
237
+ const td = totalDelta ?? 0;
238
+ if (od !== 0 || td !== 0) {
239
+ // Direct local adjustment — protected from API overwrites for 30s
240
+ // so the Jira search index has time to catch up
241
+ if (od !== 0)
242
+ setJiraOpenCount(prev => prev !== null ? Math.max(0, prev + od) : prev);
243
+ if (td !== 0)
244
+ setJiraTotalCount(prev => prev !== null ? Math.max(0, prev + td) : prev);
245
+ lastMetricAdjustRef.current = Date.now();
246
+ scheduleMetricRecheck();
247
+ }
248
+ else {
249
+ // No local adjustment — trigger an immediate API refresh
250
+ setMetricsRefreshNonce(prev => prev + 1);
251
+ }
252
+ }, [scheduleMetricRecheck]);
91
253
  const helpSections = [
92
254
  {
93
255
  title: 'Navigation',
@@ -101,8 +263,8 @@ export function App() {
101
263
  {
102
264
  title: 'Actions',
103
265
  shortcuts: [
104
- { key: '/', description: 'Search' },
105
- { key: 'r', description: 'Refresh data' },
266
+ { key: '/', description: 'Find/Search (where supported)' },
267
+ { key: 'Ctrl+R', description: 'Refresh current item' },
106
268
  { key: 'Ctrl+Y', description: 'Copy link' },
107
269
  { key: 'Ctrl+O', description: 'Open in browser' },
108
270
  { key: 'Ctrl+B', description: 'Toggle bookmark' },
@@ -125,11 +287,21 @@ export function App() {
125
287
  const tabs = ['Jira', 'Confluence'];
126
288
  const shortcuts = [
127
289
  { key: 'Tab', description: 'Switch' },
128
- { key: '/', description: 'Search' },
129
290
  { key: '?', description: 'Help' },
130
291
  { key: 'Ctrl+Q', description: 'Quit' },
131
292
  ];
132
293
  const currentMode = activeTab === 0 ? 'JIRA' : 'CONFLUENCE';
133
- return (_jsxs(Box, { flexDirection: "column", width: "100%", height: terminalHeight, children: [_jsx(Header, { title: "Sutra", version: "1.0.0", connectionStatus: connectionStatus }), _jsx(TabBar, { tabs: tabs, activeTab: activeTab, icons: ['🎫', '📄'] }), toast && (_jsx(Toast, { message: toast.message, type: toast.type, duration: 3000, onDismiss: handleDismissToast })), showHelp ? (_jsx(HelpModal, { visible: showHelp, sections: helpSections, onClose: () => setShowHelp(false) })) : (_jsxs(Box, { flexDirection: "column", width: "100%", flexGrow: 1, children: [activeTab === 0 && _jsx(JiraView, { client: jiraClient, baseUrl: jiraBaseUrl }), activeTab === 1 && _jsx(ConfluenceView, { client: confluenceClient })] })), _jsx(Footer, { shortcuts: shortcuts, mode: currentMode })] }));
294
+ const dateTimeLabel = new Intl.DateTimeFormat('en-US', {
295
+ weekday: 'short',
296
+ month: 'short',
297
+ day: 'numeric',
298
+ year: 'numeric',
299
+ hour: 'numeric',
300
+ minute: '2-digit',
301
+ }).format(now);
302
+ const metricLabel = activeTab === 0
303
+ ? `JIRA: YOUR TICKET STATUS ${jiraOpenCount ?? '--'}/${jiraTotalCount ?? '--'}`
304
+ : `MY DOCS ${myConfluenceDocs ?? '--'}`;
305
+ return (_jsxs(Box, { flexDirection: "column", width: "100%", height: terminalHeight, children: [_jsx(Header, { title: "Sutra", version: "1.0.0", connectionStatus: connectionStatus, metricLabel: metricLabel, dateTimeLabel: dateTimeLabel }), _jsx(TabBar, { tabs: tabs, activeTab: activeTab, icons: ['🎫', '📄'] }), toast && (_jsx(Toast, { message: toast.message, type: toast.type, duration: toast.duration ?? 3000, onDismiss: handleDismissToast })), showHelp ? (_jsx(HelpModal, { visible: showHelp, sections: helpSections, onClose: () => setShowHelp(false) })) : (_jsxs(Box, { flexDirection: "column", width: "100%", flexGrow: 1, children: [activeTab === 0 && (_jsx(JiraView, { client: jiraClient, baseUrl: jiraBaseUrl, onJiraDataChanged: handleJiraDataChanged })), activeTab === 1 && _jsx(ConfluenceView, { client: confluenceClient })] })), _jsx(Footer, { shortcuts: shortcuts, mode: currentMode })] }));
134
306
  }
135
307
  //# sourceMappingURL=app.js.map
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditableTextBox.d.ts","sourceRoot":"","sources":["../../../src/components/common/EditableTextBox.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACjC,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAsBD,wBAAgB,eAAe,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,MAAW,EACX,KAAc,EACd,WAAoB,EACpB,MAAM,EACN,QAAe,EACf,SAAa,EACb,UAAc,EACd,eAAuB,EACvB,QAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GACpB,EAAE,oBAAoB,2CAknBtB"}
1
+ {"version":3,"file":"EditableTextBox.d.ts","sourceRoot":"","sources":["../../../src/components/common/EditableTextBox.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACjC,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAsBD,wBAAgB,eAAe,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,MAAW,EACX,KAAc,EACd,WAAoB,EACpB,MAAM,EACN,QAAe,EACf,SAAa,EACb,UAAc,EACd,eAAuB,EACvB,QAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GACpB,EAAE,oBAAoB,2CA4nBtB"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import { useState, useEffect, useCallback, useRef, useMemo } from 'react';
3
3
  import { Box, Text, useInput, useStdout, useStdin } from 'ink';
4
4
  import { highlightMarkdownLine, highlightCodeLine } from '../../utils/markdown-highlighter.js';
5
+ import { te } from '../../theme/te.js';
5
6
  const SGR_MOUSE_REGEX = /\x1b\[<(\d+);(\d+);(\d+)([Mm])/g;
6
7
  export function EditableTextBox({ content, onChange, height = 15, width = '100%', borderColor = 'cyan', onSave, isActive = true, screenTop = 0, screenLeft = 0, syntaxHighlight = false, readOnly = false, onOpenExternalEditor, onRequestWritable, }) {
7
8
  const [cursor, setCursor] = useState({ row: 0, col: 0 });
@@ -507,6 +508,6 @@ export function EditableTextBox({ content, onChange, height = 15, width = '100%'
507
508
  const actualRow = scrollTop + i;
508
509
  const isCursorLine = actualRow === cursor.row;
509
510
  return (_jsx(Box, { height: 1, children: renderLineWithHighlights(line, actualRow, isCursorLine) }, `line-${actualRow}`));
510
- }), _jsx(Box, { marginTop: 0, children: searchMode ? (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: "Find: " }), _jsx(Text, { children: searchQuery }), _jsx(Text, { backgroundColor: "yellow", color: "black", children: " " }), searchMatches.length > 0 && (_jsxs(Text, { dimColor: true, children: [" (", currentMatchIndex + 1, "/", searchMatches.length, ")"] })), searchQuery && searchMatches.length === 0 && (_jsx(Text, { color: "red", children: " No matches" })), _jsx(Text, { dimColor: true, children: " | Enter: Jump | \u2191\u2193: Navigate | Esc: Cancel" })] })) : (_jsxs(Text, { dimColor: true, wrap: "truncate", children: ["Ln ", cursor.row + 1, ", Col ", cursor.col + 1, " | ", totalLines, " lines | ", scrollPercent, "% | ", readOnly ? 'Read-only | ' : '', "Ctrl+S: Save | Ctrl+F or /: Find"] })) })] }));
511
+ }), _jsx(Box, { marginTop: 0, children: searchMode ? (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: "Find: " }), _jsx(Text, { children: searchQuery }), _jsx(Text, { backgroundColor: "yellow", color: "black", children: " " }), searchMatches.length > 0 && (_jsxs(Text, { dimColor: true, children: [" (", currentMatchIndex + 1, "/", searchMatches.length, ")"] })), searchQuery && searchMatches.length === 0 && (_jsx(Text, { color: "red", children: " No matches" })), _jsx(Text, { dimColor: true, children: " | " }), _jsx(Text, { backgroundColor: te.info, color: "black", children: " Enter " }), _jsx(Text, { dimColor: true, children: " Jump | " }), _jsx(Text, { backgroundColor: te.info, color: "black", children: " \u2191/\u2193 " }), _jsx(Text, { dimColor: true, children: " Navigate | " }), _jsx(Text, { backgroundColor: te.info, color: "black", children: " Esc " }), _jsx(Text, { dimColor: true, children: " Cancel" })] })) : (_jsxs(Text, { dimColor: true, wrap: "truncate", children: ["Ln ", cursor.row + 1, ", Col ", cursor.col + 1, " | ", totalLines, " lines | ", scrollPercent, "% | ", readOnly ? 'Read-only | ' : '', _jsx(Text, { backgroundColor: te.info, color: "black", children: " Ctrl+S " }), _jsx(Text, { dimColor: true, children: " Save | " }), _jsx(Text, { backgroundColor: te.info, color: "black", children: " Ctrl+F or / " }), _jsx(Text, { dimColor: true, children: " Find" })] })) })] }));
511
512
  }
512
513
  //# sourceMappingURL=EditableTextBox.js.map