@unbrained/pm-web 2026.7.27 → 2026.7.29

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 (108) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +1 -2
  3. package/dist/app.js +2 -0
  4. package/dist/app.js.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/oidc.js.map +1 -1
  7. package/dist/routes/extensions.d.ts +16 -0
  8. package/dist/routes/extensions.js +214 -0
  9. package/dist/routes/extensions.js.map +1 -0
  10. package/dist/routes/oidc.d.ts +1 -1
  11. package/dist/routes/pm.js +125 -0
  12. package/dist/routes/pm.js.map +1 -1
  13. package/dist/services/mutation-event-watcher.d.ts +1 -1
  14. package/dist/services/package-catalog.d.ts +108 -0
  15. package/dist/services/package-catalog.js +256 -0
  16. package/dist/services/package-catalog.js.map +1 -0
  17. package/dist/services/pm-runner.d.ts +66 -1
  18. package/dist/services/pm-runner.js +83 -47
  19. package/dist/services/pm-runner.js.map +1 -1
  20. package/dist/services/project-watcher.d.ts +1 -1
  21. package/dist/services/realtime-bus.d.ts +1 -1
  22. package/manifest.json +1 -1
  23. package/package.json +24 -11
  24. package/public/index.html +4 -0
  25. package/public/src/api-types.js +17 -0
  26. package/public/src/api-types.js.map +1 -0
  27. package/public/src/api-types.ts +618 -0
  28. package/public/src/api.js +6 -3
  29. package/public/src/api.js.map +1 -1
  30. package/public/src/api.ts +30 -10
  31. package/public/src/app.js +11 -4
  32. package/public/src/app.js.map +1 -1
  33. package/public/src/app.ts +55 -12
  34. package/public/src/constants.js +1 -1
  35. package/public/src/constants.js.map +1 -1
  36. package/public/src/constants.ts +1 -1
  37. package/public/src/i18n/de.json +25 -1
  38. package/public/src/i18n/en.json +25 -1
  39. package/public/src/i18n/es.json +25 -1
  40. package/public/src/i18n/zh.json +26 -2
  41. package/public/src/i18n.ts +1 -1
  42. package/public/src/sw.ts +2 -0
  43. package/public/src/types.ts +11 -2
  44. package/public/src/views/activity.js +1 -1
  45. package/public/src/views/activity.js.map +1 -1
  46. package/public/src/views/activity.ts +5 -4
  47. package/public/src/views/calendar.js +1 -1
  48. package/public/src/views/calendar.js.map +1 -1
  49. package/public/src/views/calendar.ts +13 -11
  50. package/public/src/views/comments-audit.js.map +1 -1
  51. package/public/src/views/comments-audit.ts +7 -6
  52. package/public/src/views/config.js +1 -1
  53. package/public/src/views/config.js.map +1 -1
  54. package/public/src/views/config.ts +2 -2
  55. package/public/src/views/context.js +3 -3
  56. package/public/src/views/context.js.map +1 -1
  57. package/public/src/views/context.ts +10 -9
  58. package/public/src/views/create.js.map +1 -1
  59. package/public/src/views/create.ts +3 -2
  60. package/public/src/views/dedupe.js +5 -5
  61. package/public/src/views/dedupe.js.map +1 -1
  62. package/public/src/views/dedupe.ts +9 -8
  63. package/public/src/views/export.js.map +1 -1
  64. package/public/src/views/export.ts +2 -2
  65. package/public/src/views/github.js +5 -4
  66. package/public/src/views/github.js.map +1 -1
  67. package/public/src/views/github.ts +20 -18
  68. package/public/src/views/graph.js +7 -9
  69. package/public/src/views/graph.js.map +1 -1
  70. package/public/src/views/graph.ts +11 -13
  71. package/public/src/views/groups.js +1 -1
  72. package/public/src/views/groups.js.map +1 -1
  73. package/public/src/views/groups.ts +9 -8
  74. package/public/src/views/health.js +16 -2
  75. package/public/src/views/health.js.map +1 -1
  76. package/public/src/views/health.ts +26 -8
  77. package/public/src/views/items.js +18 -12
  78. package/public/src/views/items.js.map +1 -1
  79. package/public/src/views/items.ts +65 -35
  80. package/public/src/views/normalize.js.map +1 -1
  81. package/public/src/views/normalize.ts +5 -4
  82. package/public/src/views/packages.js +230 -0
  83. package/public/src/views/packages.js.map +1 -0
  84. package/public/src/views/packages.ts +255 -0
  85. package/public/src/views/plan.js +0 -2
  86. package/public/src/views/plan.js.map +1 -1
  87. package/public/src/views/plan.ts +5 -6
  88. package/public/src/views/projects.js.map +1 -1
  89. package/public/src/views/projects.ts +8 -7
  90. package/public/src/views/router.js +5 -0
  91. package/public/src/views/router.js.map +1 -1
  92. package/public/src/views/router.ts +3 -0
  93. package/public/src/views/search.js.map +1 -1
  94. package/public/src/views/search.ts +3 -2
  95. package/public/src/views/settings.js.map +1 -1
  96. package/public/src/views/settings.ts +8 -6
  97. package/public/src/views/shared.js.map +1 -1
  98. package/public/src/views/shared.ts +4 -3
  99. package/public/src/views/sharing.js.map +1 -1
  100. package/public/src/views/sharing.ts +5 -4
  101. package/public/src/views/stats.js +1 -1
  102. package/public/src/views/stats.js.map +1 -1
  103. package/public/src/views/stats.ts +10 -9
  104. package/public/src/views/templates.js.map +1 -1
  105. package/public/src/views/templates.ts +6 -5
  106. package/public/src/views/validate.js.map +1 -1
  107. package/public/src/views/validate.ts +6 -5
  108. package/public/sw.js +2 -0
@@ -171,9 +171,17 @@ export interface Stats {
171
171
  byType?: Record<string, number>;
172
172
  }
173
173
 
174
+ /** A single project-health issue from `pm health`. */
175
+ export interface HealthIssue {
176
+ message?: string;
177
+ description?: string;
178
+ /** Issue kind reported by `pm health` (e.g. `history_drift`). */
179
+ type?: string;
180
+ }
181
+
174
182
  export interface HealthData {
175
183
  score?: number;
176
- issues?: Array<{ message?: string; description?: string }>;
184
+ issues?: HealthIssue[];
177
185
  summary?: string;
178
186
  }
179
187
 
@@ -240,7 +248,8 @@ export interface AdminGroup {
240
248
  name: string;
241
249
  description?: string;
242
250
  owner_email: string;
243
- member_count: number;
251
+ /** See `GroupSummary.member_count` in api-types.ts — a string, not a number. */
252
+ member_count: string;
244
253
  created_at: string;
245
254
  }
246
255
 
@@ -31,7 +31,7 @@ export async function renderActivityView() {
31
31
  }
32
32
  listEl.innerHTML = items.map((a) => `
33
33
  <div class="activity-item">
34
- <div class="activity-icon">${TYPE_ICONS[a.type] || '◎'}</div>
34
+ <div class="activity-icon">${TYPE_ICONS[a.type || ''] || '◎'}</div>
35
35
  <div class="activity-body">
36
36
  <div class="activity-desc">${escHtml(a.message || a.title || a.action || JSON.stringify(a))}</div>
37
37
  <div class="activity-time">${relTime(a.timestamp || a.created_at)} ${a.id ? `· <span class="mono" style="font-size:11px">${escHtml(a.id)}</span>` : ''}</div>
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["activity.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,gBAAgB;AAChB,kEAAkE;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAAC,EAAE,CAAC,SAAS,GAAG,wFAAwF,CAAC;QAAC,OAAO;IAAC,CAAC;IAC/I,EAAE,CAAC,SAAS,GAAG;;gGAE+E,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;;;iJAGe,CAAC;IAEhJ,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,EAAC,aAAa,KAAK,CAAC,cAAc,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAI,IAAY,CAAC,QAAQ,IAAK,IAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,SAAS,GAAG,yHAAyH,CAAC;YAC7I,OAAO;QACT,CAAC;QACD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAC,EAAE,CAAA;;qCAEN,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,GAAG;;uCAErB,OAAO,CAAC,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,MAAM,IAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;uCACxD,OAAO,CAAC,CAAC,CAAC,SAAS,IAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA,CAAC,CAAA,+CAA+C,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAA,CAAC,CAAA,EAAE;;aAE7I,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IAAC,OAAM,GAAY,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,MAAM,CAAC,SAAS,GAAG,iEAAiE,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IAC1K,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["activity.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,gBAAgB;AAChB,kEAAkE;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAAC,EAAE,CAAC,SAAS,GAAG,wFAAwF,CAAC;QAAC,OAAO;IAAC,CAAC;IAC/I,EAAE,CAAC,SAAS,GAAG;;gGAE+E,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;;;iJAGe,CAAC;IAEhJ,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAmB,KAAK,EAAC,aAAa,KAAK,CAAC,cAAc,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC5G,MAAM,KAAK,GAAoB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,SAAS,GAAG,yHAAyH,CAAC;YAC7I,OAAO;QACT,CAAC;QACD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,EAAE,CAAA;;qCAED,UAAU,CAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,IAAE,GAAG;;uCAEzB,OAAO,CAAC,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,MAAM,IAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;uCACxD,OAAO,CAAC,CAAC,CAAC,SAAS,IAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA,CAAC,CAAA,+CAA+C,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAA,CAAC,CAAA,EAAE;;aAE7I,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IAAC,OAAM,GAAY,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,MAAM,CAAC,SAAS,GAAG,iEAAiE,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IAC1K,CAAC;AACH,CAAC"}
@@ -5,6 +5,7 @@ import { state } from '../state.js';
5
5
  import { api } from '../api.js';
6
6
  import { escHtml, relTime } from '../utils.js';
7
7
  import { TYPE_ICONS } from '../constants.js';
8
+ import type { ActivityEntry, ActivityResponse } from '../api-types.js';
8
9
 
9
10
  export async function renderActivityView(): Promise<void> {
10
11
  const el = document.getElementById('content-activity');
@@ -18,17 +19,17 @@ export async function renderActivityView(): Promise<void> {
18
19
  <div class="card"><div class="card-body" id="activity-list"><div class="loading-state"><div class="loading-spinner"></div></div></div></div>`;
19
20
 
20
21
  try {
21
- const data = await api('GET',`/projects/${state.currentProject.id}/pm/activity?limit=50`);
22
- const items = (data as any).activity || (data as any).items || [];
22
+ const data = await api<ActivityResponse>('GET',`/projects/${state.currentProject.id}/pm/activity?limit=50`);
23
+ const items: ActivityEntry[] = data.activity || data.items || [];
23
24
  const listEl = document.getElementById('activity-list');
24
25
  if (!listEl) return;
25
26
  if (items.length === 0) {
26
27
  listEl.innerHTML = `<div class="empty-state"><div class="empty-state-icon">◎</div><div class="empty-state-text">No activity yet</div></div>`;
27
28
  return;
28
29
  }
29
- listEl.innerHTML = items.map((a: any)=>`
30
+ listEl.innerHTML = items.map((a)=>`
30
31
  <div class="activity-item">
31
- <div class="activity-icon">${TYPE_ICONS[a.type]||'◎'}</div>
32
+ <div class="activity-icon">${TYPE_ICONS[a.type||'']||'◎'}</div>
32
33
  <div class="activity-body">
33
34
  <div class="activity-desc">${escHtml(a.message||a.title||a.action||JSON.stringify(a))}</div>
34
35
  <div class="activity-time">${relTime(a.timestamp||a.created_at)} ${a.id?`· <span class="mono" style="font-size:11px">${escHtml(a.id)}</span>`:''}</div>
@@ -114,7 +114,7 @@ export function showDayItems(dateStr) {
114
114
  return;
115
115
  createModal('day-items-modal', `Items due ${dateStr}`, '<div class="loading-state"><div class="loading-spinner"></div></div>', '', true);
116
116
  showModal('day-items-modal');
117
- api('GET', `/projects/${state.currentProject.id}/pm/list-all?limit=9999`).then(data => {
117
+ api('GET', `/projects/${state.currentProject.id}/pm/list-all?limit=9999`).then((data) => {
118
118
  const items = (data.items || []).filter((i) => {
119
119
  if (!i.deadline)
120
120
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["calendar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["calendar.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ import { escHtml, typeIcon, statusBadge } from '../utils.js';
7
7
  import { skeletonRows } from '../utils.js';
8
8
  import { showModal, createModal } from '../components/modals.js';
9
9
  import { renderItemRow } from './items.js';
10
+ import type { CalendarListItem, CalendarResponse, ListResponse } from '../api-types.js';
11
+ import type { Item } from '../types.js';
10
12
 
11
13
  export async function renderCalendarView(): Promise<void> {
12
14
  const el = document.getElementById('content-calendar');
@@ -27,11 +29,11 @@ export async function renderCalendarView(): Promise<void> {
27
29
 
28
30
  try {
29
31
  const [itemsData, calData] = await Promise.all([
30
- api('GET',`/projects/${state.currentProject.id}/pm/list-all?limit=9999`),
31
- api('GET',`/projects/${state.currentProject.id}/pm/calendar`).catch(()=>({events:[]})),
32
+ api<ListResponse>('GET',`/projects/${state.currentProject.id}/pm/list-all?limit=9999`),
33
+ api<CalendarResponse>('GET',`/projects/${state.currentProject.id}/pm/calendar`).catch(()=>({events:[]} as CalendarResponse)),
32
34
  ]);
33
- const allItems = ((itemsData as any).items || []).filter((i: any) => i.deadline || i.type === 'Event' || i.type === 'Meeting' || i.type === 'Reminder');
34
- const calEvents = (calData as any).events || (calData as any).items || [];
35
+ const allItems = (itemsData.items || []).filter((i) => i.deadline || i.type === 'Event' || i.type === 'Meeting' || i.type === 'Reminder');
36
+ const calEvents: CalendarListItem[] = calData.events || calData.items || [];
35
37
 
36
38
  state.calOffset = state.calOffset || 0;
37
39
  const now = new Date();
@@ -47,8 +49,8 @@ export async function renderCalendarView(): Promise<void> {
47
49
  const daysInPrev = new Date(year, month, 0).getDate();
48
50
  const today = new Date();
49
51
 
50
- const dateMap: Record<string, any[]> = {};
51
- allItems.forEach((item: any) => {
52
+ const dateMap: Record<string, Item[]> = {};
53
+ allItems.forEach((item) => {
52
54
  if (item.deadline) {
53
55
  const d = new Date(item.deadline).toISOString().slice(0, 10);
54
56
  if (!dateMap[d]) dateMap[d] = [];
@@ -69,7 +71,7 @@ export async function renderCalendarView(): Promise<void> {
69
71
  const dayItems = dateMap[dateStr] || [];
70
72
  gridHtml += `<div class="cal-day${isToday?' today':''}" onclick="window.__app.showDayItems('${dateStr}')">`;
71
73
  gridHtml += `<div class="cal-day-num">${d}</div>`;
72
- dayItems.slice(0, 3).forEach((item: any) => {
74
+ dayItems.slice(0, 3).forEach((item) => {
73
75
  gridHtml += `<div class="cal-event-dot status-${item.status}" title="${escHtml(item.title)}" onclick="event.stopPropagation();window.__app.openItemDetail('${escHtml(item.id)}')">${escHtml(item.title.slice(0,12))}</div>`;
74
76
  });
75
77
  if (dayItems.length > 3) {
@@ -87,7 +89,7 @@ export async function renderCalendarView(): Promise<void> {
87
89
  let upcomingHtml = '';
88
90
  if (calEvents.length > 0) {
89
91
  upcomingHtml = '<div class="card" style="margin-top:16px"><div class="card-header"><div class="card-title">Upcoming Events</div></div><div class="card-body">';
90
- calEvents.slice(0, 10).forEach((ev: any) => {
92
+ calEvents.slice(0, 10).forEach((ev) => {
91
93
  upcomingHtml += `<div class="calendar-event" onclick="window.__app.openItemDetail('${escHtml(ev.id||ev.itemId||'')}')">
92
94
  <div class="calendar-event-id">${typeIcon(ev.type||'')} ${escHtml(ev.id||'')}</div>
93
95
  <div class="calendar-event-title">${escHtml(ev.title||ev.name||'')}</div>
@@ -114,15 +116,15 @@ export function showDayItems(dateStr: string): void {
114
116
  if (!state.currentProject) return;
115
117
  createModal('day-items-modal', `Items due ${dateStr}`, '<div class="loading-state"><div class="loading-spinner"></div></div>', '', true);
116
118
  showModal('day-items-modal');
117
- api('GET', `/projects/${state.currentProject.id}/pm/list-all?limit=9999`).then(data => {
118
- const items = ((data as any).items || []).filter((i: any) => {
119
+ api<ListResponse>('GET', `/projects/${state.currentProject.id}/pm/list-all?limit=9999`).then((data: ListResponse) => {
120
+ const items = (data.items || []).filter((i) => {
119
121
  if (!i.deadline) return false;
120
122
  return new Date(i.deadline).toISOString().slice(0,10) === dateStr;
121
123
  });
122
124
  const bodyEl = document.getElementById('day-items-modal')?.querySelector('.modal-body');
123
125
  if (bodyEl) bodyEl.innerHTML = items.length === 0
124
126
  ? '<div style="color:var(--text-muted);font-size:13px">No items due on this date</div>'
125
- : `<div class="item-list">${items.map((item: any) => renderItemRow(item)).join('')}</div>`;
127
+ : `<div class="item-list">${items.map((item) => renderItemRow(item)).join('')}</div>`;
126
128
  }).catch((err: unknown) => {
127
129
  const bodyEl = document.getElementById('day-items-modal')?.querySelector('.modal-body');
128
130
  if (bodyEl) bodyEl.innerHTML = `<div class="empty-state"><div class="empty-state-text">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div></div>`;
@@ -1 +1 @@
1
- {"version":3,"file":"comments-audit.js","sourceRoot":"","sources":["comments-audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comments-audit.js","sourceRoot":"","sources":["comments-audit.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  import { state } from '../state.js';
5
5
  import { api } from '../api.js';
6
6
  import { escHtml, statusBadge, typeIcon } from '../utils.js';
7
+ import type { CommentsAuditResponse, CommentsAuditItem, CommentsAuditSummary, CommentsAuditTypeRow } from '../api-types.js';
7
8
 
8
9
  export async function renderCommentsAuditView(): Promise<void> {
9
10
  const el = document.getElementById('content-comments-audit');
@@ -24,12 +25,12 @@ export async function renderCommentsAuditView(): Promise<void> {
24
25
  </div>
25
26
  <div id="comments-audit-content"><div class="loading-state"><div class="loading-spinner"></div></div></div>`;
26
27
  try {
27
- const data = await api('GET', `/projects/${state.currentProject.id}/pm/comments-audit`);
28
- const items: any[] = (data as any).items || [];
29
- const summary: any = (data as any).summary || {};
28
+ const data = await api<CommentsAuditResponse>('GET', `/projects/${state.currentProject.id}/pm/comments-audit`);
29
+ const items: CommentsAuditItem[] = data.items || [];
30
+ const summary: CommentsAuditSummary = data.summary || {};
30
31
  const totals = summary.totals || {};
31
32
  const coverage = summary.coverage || {};
32
- const byType: any[] = summary.by_type || [];
33
+ const byType: CommentsAuditTypeRow[] = summary.by_type || [];
33
34
 
34
35
  const el2 = document.getElementById('comments-audit-content');
35
36
  if (!el2) return;
@@ -70,7 +71,7 @@ export async function renderCommentsAuditView(): Promise<void> {
70
71
  </tr>
71
72
  </thead>
72
73
  <tbody>
73
- ${byType.map((row: any) => `
74
+ ${byType.map((row) => `
74
75
  <tr style="border-bottom:1px solid var(--border-subtle)">
75
76
  <td style="padding:8px 14px">${typeIcon(row.type || '')} ${escHtml(row.type || '')}</td>
76
77
  <td style="padding:8px 14px;text-align:right">${row.items_scanned || 0}</td>
@@ -88,7 +89,7 @@ export async function renderCommentsAuditView(): Promise<void> {
88
89
  ${items.length === 0
89
90
  ? '<div style="padding:20px;color:var(--text-muted);font-size:13px;text-align:center">No items found</div>'
90
91
  : `<div class="item-list" style="border-radius:0">
91
- ${items.map((item: any) => `
92
+ ${items.map((item) => `
92
93
  <div class="item-row" onclick="window.__app.openItemDetail('${escHtml(item.id)}')">
93
94
  ${typeIcon(item.type || '')}
94
95
  <span class="item-id">${escHtml(item.id)}</span>
@@ -168,7 +168,7 @@ function renderConfigData(el, data) {
168
168
  </div>
169
169
  </div>
170
170
  `;
171
- // Store the current keys in DOM for mutation use
171
+ // Store the current keys in DOM for mutation use (typed extension).
172
172
  el.__configKeys = keys;
173
173
  }
174
174
  // ─── Array field helpers ───────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["config.ts"],"names":[],"mappings":"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"}
@@ -193,8 +193,8 @@ function renderConfigData(el: HTMLElement, data: ConfigResponse): void {
193
193
  </div>
194
194
  `;
195
195
 
196
- // Store the current keys in DOM for mutation use
197
- (el as any).__configKeys = keys;
196
+ // Store the current keys in DOM for mutation use (typed extension).
197
+ (el as HTMLElement & { __configKeys?: ConfigKey[] }).__configKeys = keys;
198
198
  }
199
199
 
200
200
  // ─── Array field helpers ───────────────────────────────────────
@@ -50,7 +50,7 @@ function renderContextData(ctx) {
50
50
  <div class="card"><div class="card-body">
51
51
  ${activeItems.map((item) => `
52
52
  <div class="context-item-row">
53
- ${typeIcon(item.type)} <span class="mono" style="font-size:11px;color:var(--text-muted)">${escHtml(item.id || '')}</span>
53
+ ${typeIcon(item.type || '')} <span class="mono" style="font-size:11px;color:var(--text-muted)">${escHtml(item.id || '')}</span>
54
54
  <span style="flex:1">${escHtml(item.title || '')}</span>
55
55
  ${statusBadge(item.status || 'open')}
56
56
  </div>`).join('')}
@@ -64,7 +64,7 @@ function renderContextData(ctx) {
64
64
  <div class="card"><div class="card-body">
65
65
  ${blockedItems.map((item) => `
66
66
  <div class="context-item-row">
67
- ${typeIcon(item.type)} <span class="mono" style="font-size:11px;color:var(--text-muted)">${escHtml(item.id || '')}</span>
67
+ ${typeIcon(item.type || '')} <span class="mono" style="font-size:11px;color:var(--text-muted)">${escHtml(item.id || '')}</span>
68
68
  <span style="flex:1">${escHtml(item.title || '')}</span>
69
69
  ${statusBadge('blocked')}
70
70
  </div>`).join('')}
@@ -78,7 +78,7 @@ function renderContextData(ctx) {
78
78
  <div class="card"><div class="card-body">
79
79
  ${recentActivity.slice(0, 10).map((a) => `
80
80
  <div class="activity-item">
81
- <div class="activity-icon">${TYPE_ICONS[a.type] || '◎'}</div>
81
+ <div class="activity-icon">${TYPE_ICONS[a.type || ''] || '◎'}</div>
82
82
  <div class="activity-body">
83
83
  <div class="activity-desc">${escHtml(a.message || a.title || a.action || '')}</div>
84
84
  <div class="activity-time">${relTime(a.timestamp || a.created_at)}</div>
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["context.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { state } from '../state.js';
5
5
  import { api } from '../api.js';
6
6
  import { escHtml, relTime, typeIcon, statusBadge } from '../utils.js';
7
7
  import { TYPE_ICONS } from '../constants.js';
8
+ import type { ContextResponse } from '../api-types.js';
8
9
 
9
10
  export async function renderContextView(): Promise<void> {
10
11
  const el = document.getElementById('content-context');
@@ -18,8 +19,8 @@ export async function renderContextView(): Promise<void> {
18
19
  <div id="context-content"><div class="loading-state"><div class="loading-spinner"></div></div></div>`;
19
20
 
20
21
  try {
21
- const data = await api('GET',`/projects/${state.currentProject.id}/pm/context`);
22
- const ctx = (data as any).context || data;
22
+ const data = await api<ContextResponse>('GET',`/projects/${state.currentProject.id}/pm/context`);
23
+ const ctx: ContextResponse = data.context || data;
23
24
  const contentEl = document.getElementById('context-content');
24
25
  if (contentEl) contentEl.innerHTML = renderContextData(ctx);
25
26
  } catch(err: unknown) {
@@ -28,7 +29,7 @@ export async function renderContextView(): Promise<void> {
28
29
  }
29
30
  }
30
31
 
31
- function renderContextData(ctx: any): string {
32
+ function renderContextData(ctx: ContextResponse): string {
32
33
  if (!ctx || typeof ctx !== 'object') {
33
34
  return `<div class="card"><div class="card-body"><div class="context-block">${escHtml(JSON.stringify(ctx,null,2))}</div></div></div>`;
34
35
  }
@@ -47,9 +48,9 @@ function renderContextData(ctx: any): string {
47
48
  sections.push(`<div class="context-section">
48
49
  <div class="context-section-title">⚡ Active Items (${activeItems.length})</div>
49
50
  <div class="card"><div class="card-body">
50
- ${activeItems.map((item: any)=>`
51
+ ${activeItems.map((item)=>`
51
52
  <div class="context-item-row">
52
- ${typeIcon(item.type)} <span class="mono" style="font-size:11px;color:var(--text-muted)">${escHtml(item.id||'')}</span>
53
+ ${typeIcon(item.type||'')} <span class="mono" style="font-size:11px;color:var(--text-muted)">${escHtml(item.id||'')}</span>
53
54
  <span style="flex:1">${escHtml(item.title||'')}</span>
54
55
  ${statusBadge(item.status||'open')}
55
56
  </div>`).join('')}
@@ -62,9 +63,9 @@ function renderContextData(ctx: any): string {
62
63
  sections.push(`<div class="context-section">
63
64
  <div class="context-section-title" style="color:var(--status-blocked)">⛔ Blocked (${blockedItems.length})</div>
64
65
  <div class="card"><div class="card-body">
65
- ${blockedItems.map((item: any)=>`
66
+ ${blockedItems.map((item)=>`
66
67
  <div class="context-item-row">
67
- ${typeIcon(item.type)} <span class="mono" style="font-size:11px;color:var(--text-muted)">${escHtml(item.id||'')}</span>
68
+ ${typeIcon(item.type||'')} <span class="mono" style="font-size:11px;color:var(--text-muted)">${escHtml(item.id||'')}</span>
68
69
  <span style="flex:1">${escHtml(item.title||'')}</span>
69
70
  ${statusBadge('blocked')}
70
71
  </div>`).join('')}
@@ -77,9 +78,9 @@ function renderContextData(ctx: any): string {
77
78
  sections.push(`<div class="context-section">
78
79
  <div class="context-section-title">◎ Recent Activity</div>
79
80
  <div class="card"><div class="card-body">
80
- ${recentActivity.slice(0,10).map((a: any)=>`
81
+ ${recentActivity.slice(0,10).map((a)=>`
81
82
  <div class="activity-item">
82
- <div class="activity-icon">${TYPE_ICONS[a.type]||'◎'}</div>
83
+ <div class="activity-icon">${TYPE_ICONS[a.type||'']||'◎'}</div>
83
84
  <div class="activity-body">
84
85
  <div class="activity-desc">${escHtml(a.message||a.title||a.action||'')}</div>
85
86
  <div class="activity-time">${relTime(a.timestamp||a.created_at)}</div>
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { state } from '../state.js';
5
5
  import { api } from '../api.js';
6
6
  import { escHtml } from '../utils.js';
7
7
  import { toast } from '../components/toast.js';
8
+ import type { CreateItemResponse } from '../api-types.js';
8
9
  import { getTypes, TYPE_ICONS, PRIORITY_LABELS } from '../constants.js';
9
10
  import { showView } from './router.js';
10
11
  import { loadItemsBadge } from './projects.js';
@@ -222,8 +223,8 @@ export async function submitCreateItem(e: Event, openAfter = false): Promise<voi
222
223
  if (reproSteps) bodyData['repro-steps'] = reproSteps;
223
224
  if (expectedResult) bodyData['expected-result'] = expectedResult;
224
225
  if (blockedReason) bodyData['blocked-reason'] = blockedReason;
225
- const data = await api('POST',`/projects/${state.currentProject!.id}/pm/create`,bodyData);
226
- const newId: string = (data as any).item?.id || (data as any).id || '';
226
+ const data = await api<CreateItemResponse>('POST',`/projects/${state.currentProject!.id}/pm/create`,bodyData);
227
+ const newId: string = data.item?.id || data.id || '';
227
228
  toast(`Created ${newId || 'item'}!`,'success');
228
229
  const form = document.getElementById('create-item-form') as HTMLFormElement | null;
229
230
  if (form) form.reset();
@@ -32,11 +32,11 @@ export async function renderDedupeAuditView() {
32
32
  <div class="card" style="margin-bottom:12px">
33
33
  <div class="card-header"><div class="card-title">Potential Duplicate Group ${i + 1} ${g.score !== undefined ? `<span style="font-size:11px;color:var(--text-muted)">· ${Math.round((g.score || 0) * 100)}% similarity</span>` : ''}</div></div>
34
34
  <div class="card-body">
35
- ${(g.items || []).map((item) => `
36
- <div class="item-row" onclick="window.__app.openItemDetail('${escHtml(item.id || item)}')" style="cursor:pointer">
37
- ${typeIcon(item.type || '')} <span class="item-id">${escHtml(item.id || item)}</span>
38
- <span class="item-title">${escHtml(item.title || '')}</span>
39
- <div class="item-meta">${statusBadge(item.status || 'draft')}</div>
35
+ ${(g.items || []).map((raw) => `
36
+ <div class="item-row" onclick="window.__app.openItemDetail('${escHtml(typeof raw === 'string' ? raw : (raw.id || ''))}')" style="cursor:pointer">
37
+ ${typeIcon(typeof raw === 'object' ? (raw.type || '') : '')} <span class="item-id">${escHtml(typeof raw === 'string' ? raw : (raw.id || ''))}</span>
38
+ <span class="item-title">${escHtml(typeof raw === 'object' ? (raw.title || '') : '')}</span>
39
+ <div class="item-meta">${statusBadge(typeof raw === 'object' ? (raw.status || 'draft') : 'draft')}</div>
40
40
  </div>`).join('')}
41
41
  </div>
42
42
  </div>`).join('') || `<div class="card"><div class="card-body"><pre style="font-size:12px;color:var(--text-secondary);white-space:pre-wrap">${escHtml(JSON.stringify(data, null, 2))}</pre></div></div>`;
@@ -1 +1 @@
1
- {"version":3,"file":"dedupe.js","sourceRoot":"","sources":["dedupe.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,oBAAoB;AACpB,kEAAkE;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAAC,EAAE,CAAC,SAAS,GAAG,wFAAwF,CAAC;QAAC,OAAO;IAAC,CAAC;IAC/I,EAAE,CAAC,SAAS,GAAG;;oHAEmG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;;;wGAG9C,CAAC;IACvG,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACtF,MAAM,MAAM,GAAI,IAAY,CAAC,MAAM,IAAK,IAAY,CAAC,UAAU,IAAI,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,SAAS,GAAG,0KAA0K,CAAC;QAC7L,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC;;uFAE+B,CAAC,GAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAG,SAAS,CAAA,CAAC,CAAA,0DAA0D,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,GAAG,CAAC,qBAAqB,CAAA,CAAC,CAAA,EAAE;;cAElN,CAAC,CAAC,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAC,EAAE,CAAA;4EAC+B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAE,IAAI,CAAC;kBAChF,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAE,EAAE,CAAC,0BAA0B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAE,IAAI,CAAC;2CAC9C,OAAO,CAAC,IAAI,CAAC,KAAK,IAAE,EAAE,CAAC;yCACzB,WAAW,CAAC,IAAI,CAAC,MAAM,IAAE,OAAO,CAAC;qBACrD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;eAEhB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,yHAAyH,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC3M,CAAC;IACH,CAAC;IAAC,OAAM,GAAY,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,GAAG;YAAE,GAAG,CAAC,SAAS,GAAG,iEAAiE,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IACpK,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"dedupe.js","sourceRoot":"","sources":["dedupe.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  import { state } from '../state.js';
5
5
  import { api } from '../api.js';
6
6
  import { escHtml, typeIcon, statusBadge } from '../utils.js';
7
+ import type { DedupeResponse, DedupeGroup } from '../api-types.js';
7
8
 
8
9
  export async function renderDedupeAuditView(): Promise<void> {
9
10
  const el = document.getElementById('content-dedupe');
@@ -16,22 +17,22 @@ export async function renderDedupeAuditView(): Promise<void> {
16
17
  </div>
17
18
  <div id="dedupe-content"><div class="loading-state"><div class="loading-spinner"></div></div></div>`;
18
19
  try {
19
- const data = await api('GET', `/projects/${state.currentProject.id}/pm/dedupe-audit`);
20
- const groups = (data as any).groups || (data as any).duplicates || [];
20
+ const data = await api<DedupeResponse>('GET', `/projects/${state.currentProject.id}/pm/dedupe-audit`);
21
+ const groups: DedupeGroup[] = data.groups || data.duplicates || [];
21
22
  const el2 = document.getElementById('dedupe-content');
22
23
  if (!el2) return;
23
24
  if (groups.length === 0) {
24
25
  el2.innerHTML = `<div class="card"><div class="card-body"><div style="color:var(--status-closed);font-size:13px">✓ No potential duplicates found — project looks clean!</div></div></div>`;
25
26
  } else {
26
- el2.innerHTML = groups.map((g: any, i: number) => `
27
+ el2.innerHTML = groups.map((g, i: number) => `
27
28
  <div class="card" style="margin-bottom:12px">
28
29
  <div class="card-header"><div class="card-title">Potential Duplicate Group ${i+1} ${g.score!==undefined?`<span style="font-size:11px;color:var(--text-muted)">· ${Math.round((g.score||0)*100)}% similarity</span>`:''}</div></div>
29
30
  <div class="card-body">
30
- ${(g.items||[]).map((item: any)=>`
31
- <div class="item-row" onclick="window.__app.openItemDetail('${escHtml(item.id||item)}')" style="cursor:pointer">
32
- ${typeIcon(item.type||'')} <span class="item-id">${escHtml(item.id||item)}</span>
33
- <span class="item-title">${escHtml(item.title||'')}</span>
34
- <div class="item-meta">${statusBadge(item.status||'draft')}</div>
31
+ ${(g.items||[]).map((raw)=>`
32
+ <div class="item-row" onclick="window.__app.openItemDetail('${escHtml(typeof raw === 'string' ? raw : (raw.id||''))}')" style="cursor:pointer">
33
+ ${typeIcon(typeof raw === 'object' ? (raw.type||'') : '')} <span class="item-id">${escHtml(typeof raw === 'string' ? raw : (raw.id||''))}</span>
34
+ <span class="item-title">${escHtml(typeof raw === 'object' ? (raw.title||'') : '')}</span>
35
+ <div class="item-meta">${statusBadge(typeof raw === 'object' ? (raw.status||'draft') : 'draft')}</div>
35
36
  </div>`).join('')}
36
37
  </div>
37
38
  </div>`).join('') || `<div class="card"><div class="card-body"><pre style="font-size:12px;color:var(--text-secondary);white-space:pre-wrap">${escHtml(JSON.stringify(data,null,2))}</pre></div></div>`;