@aria-framework/ask 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +195 -0
- package/README.md +95 -4
- package/assets/ask.js +19 -3
- package/index.js +15 -13
- package/lib/bench.js +90 -23
- package/lib/catalogue.js +188 -25
- package/lib/check.js +319 -21
- package/lib/eta.js +51 -0
- package/lib/history.js +66 -4
- package/lib/prompts.js +71 -14
- package/lib/routes.js +46 -9
- package/lib/run.js +64 -13
- package/lib/store.js +33 -3
- package/lib/text.js +118 -0
- package/package.json +1 -1
- package/views/ask/admin.ejs +1 -1
- package/views/ask/none.ejs +56 -0
- package/views/ask/review.ejs +1 -0
package/views/ask/admin.ejs
CHANGED
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
</div>
|
|
52
52
|
<% } %>
|
|
53
53
|
<% if (benchState.running) { %>
|
|
54
|
-
<p class="small mb-2"><span class="tagpill sm">Running</span> <%= benchState.endpoint || 'starting' %> ·
|
|
54
|
+
<p class="small mb-2"><span class="tagpill sm">Running</span> <%= benchState.endpoint || 'starting' %> · <span data-bench-eta><%= benchLine %></span> (calls; each case runs three times: twice without its payload, once with it).</p>
|
|
55
55
|
<progress class="d-block w-100 mb-2" data-bench-progress max="<%= benchState.of || corpusSize * 3 %>" value="<%= benchState.done %>"><%= benchState.done %> of <%= benchState.of || corpusSize * 3 %></progress>
|
|
56
56
|
<% } else if (benchState.error) { %>
|
|
57
57
|
<p class="small text-danger mb-2">The last bench run failed: <%= benchState.error %></p>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<% var _L = (typeof askLayout !== 'undefined' && askLayout) ? askLayout : { head: 'partials/staff-head', tabs: 'partials/admin-tabs', foot: 'partials/staff-foot' }; %>
|
|
2
|
+
<% var _base = (typeof askReviewBase === 'string' && askReviewBase) ? askReviewBase : '/admin/ai/ask-review'; %>
|
|
3
|
+
<%- include(_L.head) %>
|
|
4
|
+
|
|
5
|
+
<%- include(_L.tabs) %>
|
|
6
|
+
|
|
7
|
+
<%# QUESTIONS ASK COULD NOT ANSWER (@aria-framework/ask 0.2.0): every question whose plan said "none", with the planner's
|
|
8
|
+
reason — no tool covers it, it is not about these records, or it asks for a judgement. For the platform
|
|
9
|
+
(ai_config.view): every partner's rows, with a Partner filter. Question text AS TYPED, escaped, as data. Rows go when
|
|
10
|
+
the question's retention ends. App locals used: whenTag; askLayout and askReviewBase are optional. %>
|
|
11
|
+
|
|
12
|
+
<div class="card mb-3"><div class="card-body">
|
|
13
|
+
<h6 class="card-title">Questions Ask could not answer <span class="cnt"><%= rows.length %></span></h6>
|
|
14
|
+
<p class="small text-body-secondary">What people asked that no look-up answers, and why the planner said so. <a href="<%= _base %>">Answers marked not helpful →</a></p>
|
|
15
|
+
<form method="GET" action="<%= _base %>/none" class="row g-2 align-items-end mb-3">
|
|
16
|
+
<div class="col-auto">
|
|
17
|
+
<label class="form-label small" for="nn-partner">Partner</label>
|
|
18
|
+
<select class="form-select form-select-sm" id="nn-partner" name="partner">
|
|
19
|
+
<option value="">All partners</option>
|
|
20
|
+
<% partners.forEach(function (p) { %><option value="<%= p.id %>" <%= partner === p.id ? 'selected' : '' %>><%= p.name %><%= p.isHouse ? ' (house)' : '' %></option><% }) %>
|
|
21
|
+
</select>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="col-auto">
|
|
24
|
+
<label class="form-label small" for="nn-reason">Reason</label>
|
|
25
|
+
<select class="form-select form-select-sm" id="nn-reason" name="reason">
|
|
26
|
+
<option value="">Any reason</option>
|
|
27
|
+
<% Object.keys(reasons).forEach(function (k) { %><option value="<%= k %>" <%= reason === k ? 'selected' : '' %>><%= reasons[k] %></option><% }) %>
|
|
28
|
+
</select>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="col-auto"><button type="submit" class="btn btn-sm btn-outline-primary">Filter</button></div>
|
|
31
|
+
<div class="col-auto small text-body-secondary">Kept as long as the Ask retention setting — older questions are deleted.</div>
|
|
32
|
+
</form>
|
|
33
|
+
|
|
34
|
+
<% if (!rows.length) { %>
|
|
35
|
+
<p class="small mb-0">No questions Ask could not answer<%= reason ? ' for this reason' : '' %>.</p>
|
|
36
|
+
<% } else { %>
|
|
37
|
+
<div class="table-responsive"><table class="table table-sm align-top mb-0">
|
|
38
|
+
<thead><tr><th>Time</th><th>User</th><th>Partner</th><th>App</th><th>Question</th><th>Page</th><th>Reason</th></tr></thead>
|
|
39
|
+
<tbody>
|
|
40
|
+
<% rows.forEach(function (r) { %>
|
|
41
|
+
<tr>
|
|
42
|
+
<td class="small text-nowrap"><%- whenTag(r.created_at) %></td>
|
|
43
|
+
<td class="small"><%= r.asked_by_name %><%= r.acting ? ' (working inside)' : '' %></td>
|
|
44
|
+
<td class="small"><%= r.partner_name %></td>
|
|
45
|
+
<td class="small"><%= typeof appName !== 'undefined' ? appName : '' %></td>
|
|
46
|
+
<td><%= r.question %></td>
|
|
47
|
+
<td class="small"><%= r.context_kind || '—' %></td>
|
|
48
|
+
<td class="small" data-none-reason="<%= r.none_reason || '' %>"><%= r.reasonWords %></td>
|
|
49
|
+
</tr>
|
|
50
|
+
<% }) %>
|
|
51
|
+
</tbody>
|
|
52
|
+
</table></div>
|
|
53
|
+
<% } %>
|
|
54
|
+
</div></div>
|
|
55
|
+
|
|
56
|
+
<%- include(_L.foot) %>
|
package/views/ask/review.ejs
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
<div class="card mb-3"><div class="card-body">
|
|
14
14
|
<h6 class="card-title">Questions marked not helpful <span class="cnt"><%= rows.length %></span></h6>
|
|
15
|
+
<p class="small text-body-secondary"><a href="<%= _base %>/none">Questions Ask could not answer, and why →</a></p>
|
|
15
16
|
<form method="GET" action="<%= _base %>" class="row g-2 align-items-end mb-3">
|
|
16
17
|
<div class="col-auto">
|
|
17
18
|
<label class="form-label small" for="rv-partner">Partner</label>
|