@withpica/mcp-server 2.5.2 → 2.5.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.
- package/assets/fonts/GeistSans-Light.woff2 +0 -0
- package/assets/fonts/InstrumentSerif-Italic.woff2 +0 -0
- package/assets/fonts/InstrumentSerif-Regular.woff2 +0 -0
- package/dist/apps/briefing.d.ts +2 -0
- package/dist/apps/briefing.d.ts.map +1 -0
- package/dist/apps/briefing.js +308 -0
- package/dist/apps/briefing.js.map +1 -0
- package/dist/apps/generated/shared-bundle.d.ts +5 -0
- package/dist/apps/generated/shared-bundle.d.ts.map +1 -0
- package/dist/apps/generated/shared-bundle.js +7 -0
- package/dist/apps/generated/shared-bundle.js.map +1 -0
- package/dist/apps/shared.d.ts +4 -0
- package/dist/apps/shared.d.ts.map +1 -0
- package/dist/apps/shared.js +268 -0
- package/dist/apps/shared.js.map +1 -0
- package/dist/config.d.ts +3 -25
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +25 -12
- package/dist/config.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/pica-sdk.d.ts +11 -0
- package/dist/pica-sdk.d.ts.map +1 -1
- package/dist/pica-sdk.js +16 -0
- package/dist/pica-sdk.js.map +1 -1
- package/dist/prompts/index.js +24 -24
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/index.d.ts +3 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +101 -53
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/llms-primer.d.ts +1 -1
- package/dist/resources/llms-primer.d.ts.map +1 -1
- package/dist/resources/llms-primer.js +4 -4
- package/dist/server-instructions.d.ts +9 -0
- package/dist/server-instructions.d.ts.map +1 -0
- package/dist/server-instructions.js +34 -0
- package/dist/server-instructions.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +30 -8
- package/dist/server.js.map +1 -1
- package/dist/tools/agreement-types.d.ts +9 -19
- package/dist/tools/agreement-types.d.ts.map +1 -1
- package/dist/tools/agreement-types.js +201 -417
- package/dist/tools/agreement-types.js.map +1 -1
- package/dist/tools/agreements.d.ts +2 -3
- package/dist/tools/agreements.d.ts.map +1 -1
- package/dist/tools/agreements.js +71 -51
- package/dist/tools/agreements.js.map +1 -1
- package/dist/tools/app-tools.d.ts +18 -0
- package/dist/tools/app-tools.d.ts.map +1 -0
- package/dist/tools/app-tools.js +87 -0
- package/dist/tools/app-tools.js.map +1 -0
- package/dist/tools/assets.d.ts +1 -3
- package/dist/tools/assets.d.ts.map +1 -1
- package/dist/tools/assets.js +63 -45
- package/dist/tools/assets.js.map +1 -1
- package/dist/tools/audio-files.d.ts +2 -3
- package/dist/tools/audio-files.d.ts.map +1 -1
- package/dist/tools/audio-files.js +61 -33
- package/dist/tools/audio-files.js.map +1 -1
- package/dist/tools/auth.d.ts +20 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +195 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/collaborators.js +1 -1
- package/dist/tools/collaborators.js.map +1 -1
- package/dist/tools/credits.d.ts.map +1 -1
- package/dist/tools/credits.js +128 -18
- package/dist/tools/credits.js.map +1 -1
- package/dist/tools/dashboard.d.ts +1 -2
- package/dist/tools/dashboard.d.ts.map +1 -1
- package/dist/tools/dashboard.js +19 -27
- package/dist/tools/dashboard.js.map +1 -1
- package/dist/tools/duplicates.d.ts.map +1 -1
- package/dist/tools/duplicates.js +15 -0
- package/dist/tools/duplicates.js.map +1 -1
- package/dist/tools/enrichment.d.ts +0 -3
- package/dist/tools/enrichment.d.ts.map +1 -1
- package/dist/tools/enrichment.js +17 -120
- package/dist/tools/enrichment.js.map +1 -1
- package/dist/tools/import-documents.d.ts +3 -3
- package/dist/tools/import-documents.d.ts.map +1 -1
- package/dist/tools/import-documents.js +64 -50
- package/dist/tools/import-documents.js.map +1 -1
- package/dist/tools/import.d.ts +1 -0
- package/dist/tools/import.d.ts.map +1 -1
- package/dist/tools/import.js +63 -1
- package/dist/tools/import.js.map +1 -1
- package/dist/tools/index.d.ts +44 -3
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +410 -81
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/metadata.d.ts +15 -0
- package/dist/tools/metadata.d.ts.map +1 -0
- package/dist/tools/metadata.js +1057 -0
- package/dist/tools/metadata.js.map +1 -0
- package/dist/tools/people.d.ts +4 -12
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +148 -109
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/publishers.d.ts +16 -0
- package/dist/tools/publishers.d.ts.map +1 -0
- package/dist/tools/publishers.js +69 -0
- package/dist/tools/publishers.js.map +1 -0
- package/dist/tools/recordings.d.ts +8 -8
- package/dist/tools/recordings.d.ts.map +1 -1
- package/dist/tools/recordings.js +121 -48
- package/dist/tools/recordings.js.map +1 -1
- package/dist/tools/recovery-hints.d.ts +14 -0
- package/dist/tools/recovery-hints.d.ts.map +1 -0
- package/dist/tools/recovery-hints.js +277 -0
- package/dist/tools/recovery-hints.js.map +1 -0
- package/dist/tools/royalties.js +1 -1
- package/dist/tools/royalties.js.map +1 -1
- package/dist/tools/search.js +2 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/send.d.ts +1 -2
- package/dist/tools/send.d.ts.map +1 -1
- package/dist/tools/send.js +19 -27
- package/dist/tools/send.js.map +1 -1
- package/dist/tools/split-sheets.d.ts.map +1 -1
- package/dist/tools/split-sheets.js +12 -0
- package/dist/tools/split-sheets.js.map +1 -1
- package/dist/tools/works.d.ts +4 -12
- package/dist/tools/works.d.ts.map +1 -1
- package/dist/tools/works.js +201 -116
- package/dist/tools/works.js.map +1 -1
- package/dist/utils/audit.d.ts +28 -0
- package/dist/utils/audit.d.ts.map +1 -0
- package/dist/utils/audit.js +28 -0
- package/dist/utils/audit.js.map +1 -0
- package/dist/utils/confirmation.d.ts +12 -0
- package/dist/utils/confirmation.d.ts.map +1 -0
- package/dist/utils/confirmation.js +78 -0
- package/dist/utils/confirmation.js.map +1 -0
- package/dist/utils/credentials.d.ts +11 -0
- package/dist/utils/credentials.d.ts.map +1 -0
- package/dist/utils/credentials.js +47 -0
- package/dist/utils/credentials.js.map +1 -0
- package/dist/utils/enrichment-format.d.ts +31 -0
- package/dist/utils/enrichment-format.d.ts.map +1 -0
- package/dist/utils/enrichment-format.js +69 -0
- package/dist/utils/enrichment-format.js.map +1 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +29 -5
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/formatting.d.ts +1 -0
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +30 -2
- package/dist/utils/formatting.js.map +1 -1
- package/package.json +3 -1
- package/scripts/bundle-apps.ts +61 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"briefing.d.ts","sourceRoot":"","sources":["../../src/apps/briefing.ts"],"names":[],"mappings":"AAyTA,eAAO,MAAM,aAAa,EAAE,MAI3B,CAAC"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
|
|
2
|
+
import { buildAppHtml } from "./shared.js";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Body HTML — briefing card structure
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
const BRIEFING_BODY_HTML = `
|
|
7
|
+
<div class="stack gap-8" style="padding: 24px 20px;">
|
|
8
|
+
|
|
9
|
+
<!-- Section 1: Attention items -->
|
|
10
|
+
<section class="section" id="attention-section">
|
|
11
|
+
<div class="row between" style="margin-bottom: 16px;">
|
|
12
|
+
<h2 class="heading heading-md">needs attention</h2>
|
|
13
|
+
<span class="badge badge-copper" id="attention-count">0</span>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="stack gap-4" id="attention-list">
|
|
16
|
+
<div class="card-flat" style="color: var(--text-tertiary); font-size: 0.875rem;">loading...</div>
|
|
17
|
+
</div>
|
|
18
|
+
</section>
|
|
19
|
+
|
|
20
|
+
<!-- Section 2: Catalog health -->
|
|
21
|
+
<section class="section" id="health-section">
|
|
22
|
+
<h2 class="heading heading-md" style="margin-bottom: 16px;">catalog health</h2>
|
|
23
|
+
<div class="row" style="gap: 24px; margin-bottom: 16px; align-items: flex-end;">
|
|
24
|
+
<span class="heading heading-lg" id="health-score" style="color: var(--accent);">--</span>
|
|
25
|
+
<div class="row" style="gap: 20px; flex: 1;">
|
|
26
|
+
<div class="stack" style="gap: 2px;">
|
|
27
|
+
<span class="heading heading-sm" id="health-complete">--</span>
|
|
28
|
+
<span class="label">complete</span>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="stack" style="gap: 2px;">
|
|
31
|
+
<span class="heading heading-sm" id="health-incomplete">--</span>
|
|
32
|
+
<span class="label">incomplete</span>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="stack" style="gap: 2px;">
|
|
35
|
+
<span class="heading heading-sm" id="health-attention">--</span>
|
|
36
|
+
<span class="label">attention</span>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="health-bar" id="health-bar"></div>
|
|
41
|
+
</section>
|
|
42
|
+
|
|
43
|
+
<!-- Section 3: Recent activity -->
|
|
44
|
+
<section class="section" id="activity-section">
|
|
45
|
+
<div class="row between clickable" onclick="toggleActivity()" style="margin-bottom: 0;" id="activity-header">
|
|
46
|
+
<h2 class="heading heading-md">recent activity</h2>
|
|
47
|
+
<span id="activity-toggle" style="color: var(--text-tertiary); font-size: 0.875rem;">▼</span>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="stack gap-4" id="activity-list" style="margin-top: 16px;">
|
|
50
|
+
<div class="card-flat" style="color: var(--text-tertiary); font-size: 0.875rem;">loading...</div>
|
|
51
|
+
</div>
|
|
52
|
+
</section>
|
|
53
|
+
|
|
54
|
+
<!-- Section 4: Quick actions -->
|
|
55
|
+
<section class="section">
|
|
56
|
+
<div class="row" style="gap: 12px; flex-wrap: wrap;">
|
|
57
|
+
<button class="btn-ghost" onclick="picaAgentAction('enrich all incomplete works')">enrich incomplete</button>
|
|
58
|
+
<button class="btn-ghost" onclick="picaAgentAction('send attestation requests for all unattested credits')">request attestations</button>
|
|
59
|
+
</div>
|
|
60
|
+
</section>
|
|
61
|
+
|
|
62
|
+
</div>
|
|
63
|
+
`;
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
// Card-specific JavaScript — ES5 compatible, DOM API only (no innerHTML)
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
const BRIEFING_APP_JS = `
|
|
68
|
+
(function () {
|
|
69
|
+
'use strict';
|
|
70
|
+
|
|
71
|
+
var activityCollapsed = false;
|
|
72
|
+
|
|
73
|
+
function renderBriefing(data) {
|
|
74
|
+
var briefing = data && data.briefing ? data.briefing : null;
|
|
75
|
+
var pulse = data && data.pulse ? data.pulse : null;
|
|
76
|
+
var attention = data && data.attention ? data.attention : [];
|
|
77
|
+
|
|
78
|
+
renderAttention(attention);
|
|
79
|
+
renderHealth(briefing, pulse);
|
|
80
|
+
renderActivity(pulse);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function renderAttention(items) {
|
|
84
|
+
var list = document.getElementById('attention-list');
|
|
85
|
+
var countEl = document.getElementById('attention-count');
|
|
86
|
+
if (!list || !countEl) return;
|
|
87
|
+
|
|
88
|
+
// Clear existing content
|
|
89
|
+
while (list.firstChild) { list.removeChild(list.firstChild); }
|
|
90
|
+
|
|
91
|
+
if (!items || items.length === 0) {
|
|
92
|
+
var emptyCard = document.createElement('div');
|
|
93
|
+
emptyCard.className = 'card-flat';
|
|
94
|
+
emptyCard.style.cssText = 'color: var(--text-tertiary); font-size: 0.875rem;';
|
|
95
|
+
emptyCard.textContent = 'no items need attention right now';
|
|
96
|
+
list.appendChild(emptyCard);
|
|
97
|
+
countEl.textContent = '0';
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
countEl.textContent = String(items.length);
|
|
102
|
+
|
|
103
|
+
for (var i = 0; i < items.length; i++) {
|
|
104
|
+
var item = items[i];
|
|
105
|
+
var card = document.createElement('div');
|
|
106
|
+
card.className = 'card-flat clickable';
|
|
107
|
+
card.style.cssText = 'display: flex; flex-direction: column; gap: 6px;';
|
|
108
|
+
|
|
109
|
+
var action = item.action || ('investigate: ' + (item.title || 'item'));
|
|
110
|
+
(function (actionStr) {
|
|
111
|
+
card.onclick = function () { picaAgentAction(actionStr); };
|
|
112
|
+
})(action);
|
|
113
|
+
|
|
114
|
+
var headerRow = document.createElement('div');
|
|
115
|
+
headerRow.style.cssText = 'display: flex; align-items: center; justify-content: space-between; gap: 8px;';
|
|
116
|
+
|
|
117
|
+
var titleEl = document.createElement('span');
|
|
118
|
+
titleEl.style.cssText = 'font-size: 0.9375rem; color: var(--text-primary);';
|
|
119
|
+
titleEl.textContent = item.title || 'untitled';
|
|
120
|
+
headerRow.appendChild(titleEl);
|
|
121
|
+
|
|
122
|
+
if (item.priority === 'high') {
|
|
123
|
+
var badge = document.createElement('span');
|
|
124
|
+
badge.className = 'badge badge-copper';
|
|
125
|
+
badge.textContent = 'high';
|
|
126
|
+
headerRow.appendChild(badge);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
card.appendChild(headerRow);
|
|
130
|
+
|
|
131
|
+
if (item.description) {
|
|
132
|
+
var desc = document.createElement('span');
|
|
133
|
+
desc.style.cssText = 'font-size: 0.8125rem; color: var(--text-secondary);';
|
|
134
|
+
desc.textContent = item.description;
|
|
135
|
+
card.appendChild(desc);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
list.appendChild(card);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function renderHealth(briefing, pulse) {
|
|
143
|
+
var scoreEl = document.getElementById('health-score');
|
|
144
|
+
var completeEl = document.getElementById('health-complete');
|
|
145
|
+
var incompleteEl = document.getElementById('health-incomplete');
|
|
146
|
+
var attentionEl = document.getElementById('health-attention');
|
|
147
|
+
var barEl = document.getElementById('health-bar');
|
|
148
|
+
|
|
149
|
+
if (!scoreEl || !barEl) return;
|
|
150
|
+
|
|
151
|
+
var total = 0;
|
|
152
|
+
var complete = 0;
|
|
153
|
+
var incomplete = 0;
|
|
154
|
+
var attention = 0;
|
|
155
|
+
var score = 0;
|
|
156
|
+
|
|
157
|
+
if (briefing) {
|
|
158
|
+
total = (briefing.total_works || briefing.total || 0);
|
|
159
|
+
complete = (briefing.complete_works || briefing.complete || 0);
|
|
160
|
+
incomplete = (briefing.incomplete_works || briefing.incomplete || 0);
|
|
161
|
+
attention = (briefing.attention_works || briefing.attention || 0);
|
|
162
|
+
score = (briefing.health_score || briefing.score || 0);
|
|
163
|
+
} else if (pulse) {
|
|
164
|
+
total = (pulse.total_works || pulse.total || 0);
|
|
165
|
+
complete = (pulse.complete_works || pulse.complete || 0);
|
|
166
|
+
incomplete = (pulse.incomplete_works || pulse.incomplete || 0);
|
|
167
|
+
attention = (pulse.attention_works || pulse.attention || 0);
|
|
168
|
+
score = (pulse.health_score || pulse.score || 0);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
scoreEl.textContent = score ? String(Math.round(score)) + '%' : '--';
|
|
172
|
+
if (completeEl) completeEl.textContent = String(complete);
|
|
173
|
+
if (incompleteEl) incompleteEl.textContent = String(incomplete);
|
|
174
|
+
if (attentionEl) attentionEl.textContent = String(attention);
|
|
175
|
+
|
|
176
|
+
// Build health bar segments using DOM API
|
|
177
|
+
while (barEl.firstChild) { barEl.removeChild(barEl.firstChild); }
|
|
178
|
+
|
|
179
|
+
if (total > 0) {
|
|
180
|
+
var completePct = Math.round((complete / total) * 100);
|
|
181
|
+
var attentionPct = Math.round((attention / total) * 100);
|
|
182
|
+
var incompletePct = Math.max(0, 100 - completePct - attentionPct);
|
|
183
|
+
|
|
184
|
+
if (completePct > 0) {
|
|
185
|
+
var seg1 = document.createElement('div');
|
|
186
|
+
seg1.className = 'health-bar__complete';
|
|
187
|
+
seg1.style.width = completePct + '%';
|
|
188
|
+
barEl.appendChild(seg1);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (attentionPct > 0) {
|
|
192
|
+
var seg2 = document.createElement('div');
|
|
193
|
+
seg2.className = 'health-bar__attention';
|
|
194
|
+
seg2.style.width = attentionPct + '%';
|
|
195
|
+
barEl.appendChild(seg2);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (incompletePct > 0) {
|
|
199
|
+
var seg3 = document.createElement('div');
|
|
200
|
+
seg3.className = 'health-bar__incomplete';
|
|
201
|
+
seg3.style.width = incompletePct + '%';
|
|
202
|
+
barEl.appendChild(seg3);
|
|
203
|
+
}
|
|
204
|
+
} else {
|
|
205
|
+
// Empty state bar
|
|
206
|
+
var emptyBar = document.createElement('div');
|
|
207
|
+
emptyBar.className = 'health-bar__incomplete';
|
|
208
|
+
emptyBar.style.width = '100%';
|
|
209
|
+
barEl.appendChild(emptyBar);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
function renderActivity(pulse) {
|
|
214
|
+
var list = document.getElementById('activity-list');
|
|
215
|
+
if (!list) return;
|
|
216
|
+
|
|
217
|
+
while (list.firstChild) { list.removeChild(list.firstChild); }
|
|
218
|
+
|
|
219
|
+
var tasks = (pulse && pulse.background_tasks) ? pulse.background_tasks : [];
|
|
220
|
+
var deadlines = (pulse && pulse.upcoming_deadlines) ? pulse.upcoming_deadlines : [];
|
|
221
|
+
|
|
222
|
+
if (tasks.length === 0 && deadlines.length === 0) {
|
|
223
|
+
var emptyCard = document.createElement('div');
|
|
224
|
+
emptyCard.className = 'card-flat';
|
|
225
|
+
emptyCard.style.cssText = 'color: var(--text-tertiary); font-size: 0.875rem;';
|
|
226
|
+
emptyCard.textContent = 'no recent activity';
|
|
227
|
+
list.appendChild(emptyCard);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
for (var i = 0; i < tasks.length; i++) {
|
|
232
|
+
var task = tasks[i];
|
|
233
|
+
var card = document.createElement('div');
|
|
234
|
+
card.className = 'card-flat';
|
|
235
|
+
card.style.cssText = 'display: flex; flex-direction: column; gap: 4px;';
|
|
236
|
+
|
|
237
|
+
var titleEl = document.createElement('span');
|
|
238
|
+
titleEl.style.cssText = 'font-size: 0.9375rem; color: var(--text-primary);';
|
|
239
|
+
titleEl.textContent = task.label || task.name || 'background task';
|
|
240
|
+
card.appendChild(titleEl);
|
|
241
|
+
|
|
242
|
+
if (task.status || task.progress) {
|
|
243
|
+
var sub = document.createElement('span');
|
|
244
|
+
sub.style.cssText = 'font-size: 0.8125rem; color: var(--text-tertiary);';
|
|
245
|
+
sub.textContent = task.status || (String(task.progress) + '%');
|
|
246
|
+
card.appendChild(sub);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
list.appendChild(card);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
for (var j = 0; j < deadlines.length; j++) {
|
|
253
|
+
var deadline = deadlines[j];
|
|
254
|
+
var dcard = document.createElement('div');
|
|
255
|
+
dcard.className = 'card-flat clickable';
|
|
256
|
+
dcard.style.cssText = 'display: flex; flex-direction: column; gap: 4px;';
|
|
257
|
+
|
|
258
|
+
var dlabel = deadline.label || deadline.title || 'upcoming deadline';
|
|
259
|
+
(function (dl) {
|
|
260
|
+
dcard.onclick = function () { picaAgentAction('tell me about: ' + dl); };
|
|
261
|
+
})(dlabel);
|
|
262
|
+
|
|
263
|
+
var dtitleEl = document.createElement('span');
|
|
264
|
+
dtitleEl.style.cssText = 'font-size: 0.9375rem; color: var(--text-primary);';
|
|
265
|
+
dtitleEl.textContent = dlabel;
|
|
266
|
+
dcard.appendChild(dtitleEl);
|
|
267
|
+
|
|
268
|
+
if (deadline.due || deadline.date) {
|
|
269
|
+
var ddue = document.createElement('span');
|
|
270
|
+
ddue.style.cssText = 'font-size: 0.8125rem; color: var(--accent);';
|
|
271
|
+
ddue.textContent = deadline.due || deadline.date;
|
|
272
|
+
dcard.appendChild(ddue);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
list.appendChild(dcard);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function toggleActivity() {
|
|
280
|
+
var section = document.getElementById('activity-section');
|
|
281
|
+
var toggle = document.getElementById('activity-toggle');
|
|
282
|
+
var contentList = document.getElementById('activity-list');
|
|
283
|
+
if (!section || !contentList) return;
|
|
284
|
+
|
|
285
|
+
activityCollapsed = !activityCollapsed;
|
|
286
|
+
|
|
287
|
+
if (activityCollapsed) {
|
|
288
|
+
contentList.style.display = 'none';
|
|
289
|
+
if (toggle) toggle.textContent = '\\u25B6';
|
|
290
|
+
} else {
|
|
291
|
+
contentList.style.display = '';
|
|
292
|
+
if (toggle) toggle.textContent = '\\u25BC';
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
window.toggleActivity = toggleActivity;
|
|
297
|
+
|
|
298
|
+
window.onPicaToolResult = function (data) {
|
|
299
|
+
renderBriefing(data);
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
})();
|
|
303
|
+
`;
|
|
304
|
+
// ---------------------------------------------------------------------------
|
|
305
|
+
// Export
|
|
306
|
+
// ---------------------------------------------------------------------------
|
|
307
|
+
export const BRIEFING_HTML = buildAppHtml("pica \u2014 daily briefing", BRIEFING_BODY_HTML, BRIEFING_APP_JS);
|
|
308
|
+
//# sourceMappingURL=briefing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"briefing.js","sourceRoot":"","sources":["../../src/apps/briefing.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,8EAA8E;AAC9E,sCAAsC;AACtC,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyD1B,CAAC;AAEF,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4OvB,CAAC;AAEF,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAW,YAAY,CAC/C,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,CAChB,CAAC"}
|