@theronap/agnoclast-mcp 0.9.246 → 0.9.248
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/lib/arrivals_notice.mjs +7 -1
- package/lib/server.mjs +5 -1
- package/package.json +1 -1
package/lib/arrivals_notice.mjs
CHANGED
|
@@ -90,6 +90,12 @@ export function formatPressing(pressing) {
|
|
|
90
90
|
const when = !Number.isFinite(m) ? 'Starting soon' : m > 0 ? `In ${mins(m)}` : m === 0 ? 'Starting now' : `Started ${mins(-m)} ago`
|
|
91
91
|
const where = p.location ? ` · ${String(p.location).replace(/\s+/g, ' ').trim().slice(0, 80)}` : ''
|
|
92
92
|
lines.push(`⏰ ${when}: ${named(p.title)}${p.at ? ` — ${p.at}` : ''}${where}`)
|
|
93
|
+
} else if (p?.kind === 'record_offer') {
|
|
94
|
+
// Theron, 2026-10-20: "offer to record for me right as an event is starting". An OFFER: ask, and
|
|
95
|
+
// only point them at it — a session cannot hear the room.
|
|
96
|
+
const m = Number(p.minutes)
|
|
97
|
+
const when = Number.isFinite(m) && m < 0 ? `started ${mins(-m)} ago` : 'is starting now'
|
|
98
|
+
lines.push(`🎙 ${named(p.title)} ${when} — OFFER TO RECORD IT: ask if they want it recorded; if yes, Record now in Agnoclast's meeting pill (desktop app or web console) captures it.`)
|
|
93
99
|
} else if (p?.kind === 'due_soon') {
|
|
94
100
|
const m = Number(p.minutes)
|
|
95
101
|
// ⚠ A record may already have discharged this. Then the session must ASK: telling someone they
|
|
@@ -165,7 +171,7 @@ export function pressingAcks(pressing) {
|
|
|
165
171
|
const handoff = p.kind === 'asked' || p.kind === 'given' || p.kind === 'declined' || p.kind === 'lapsed'
|
|
166
172
|
|| p.kind === 'meeting_missing' || p.kind === 'meeting_waiting'
|
|
167
173
|
const rollup = (p.kind === 'due_today' || p.kind === 'work_now') && Number(p.count) > 0
|
|
168
|
-
if (p.kind === 'event' || p.kind === 'due_soon' || handoff || rollup) {
|
|
174
|
+
if (p.kind === 'event' || p.kind === 'record_offer' || p.kind === 'due_soon' || handoff || rollup) {
|
|
169
175
|
out.push({ subject: p.subject, bucket: p.bucket })
|
|
170
176
|
}
|
|
171
177
|
}
|
package/lib/server.mjs
CHANGED
|
@@ -6491,7 +6491,11 @@ function renderNudge(payload) {
|
|
|
6491
6491
|
const out = await res.json().catch(() => null)
|
|
6492
6492
|
if (!res.ok) return toolError(`Could not ${action}: ${out?.error ?? res.status}`)
|
|
6493
6493
|
const verb = { granted: 'now has access to', already_granted: 'already had access to', revoked: 'no longer has access to', not_granted: 'had no grant on' }[out.action]
|
|
6494
|
-
|
|
6494
|
+
// Agent oversight (2026-10-20): a confidential page shared with an AI agent is shared with its creator and
|
|
6495
|
+
// manager too. The sharer must be told who else can now read it.
|
|
6496
|
+
const also = Array.isArray(out.alsoGranted) && out.alsoGranted.length
|
|
6497
|
+
? ` Because ${out.grantee} is an AI agent, its overseers can read it too: ${out.alsoGranted.join(', ')}.` : ''
|
|
6498
|
+
return { content: [{ type: 'text', text: `Done — ${out.grantee} ${verb} the ${out.tier} page.${also}` }] }
|
|
6495
6499
|
},
|
|
6496
6500
|
)
|
|
6497
6501
|
|
package/package.json
CHANGED