@lambdacurry/arbor 0.4.30 → 0.4.31
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/dist/arbor.js +36 -2
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -1629,6 +1629,8 @@ var INVITE_TTL_MS = 7 * 24 * 60 * 60 * 1000;
|
|
|
1629
1629
|
var EMOJI_RE = new RegExp("^\\p{RGI_Emoji}$", "v");
|
|
1630
1630
|
// ../core/src/ops/agent-pairing.ts
|
|
1631
1631
|
var PAIRING_TTL_MS = 15 * 60 * 1000;
|
|
1632
|
+
// ../core/src/ops/request.ts
|
|
1633
|
+
var REQUEST_TTL_MS = 14 * 24 * 60 * 60 * 1000;
|
|
1632
1634
|
// ../core/src/queries/activity.ts
|
|
1633
1635
|
var targetAuthor = alias(profiles, "target_author");
|
|
1634
1636
|
// ../core/src/blob/in-memory.ts
|
|
@@ -16106,6 +16108,17 @@ var ACTIONS = [
|
|
|
16106
16108
|
surfaces: ["mcp", "cli"],
|
|
16107
16109
|
run: forward("topic.create")
|
|
16108
16110
|
},
|
|
16111
|
+
{
|
|
16112
|
+
name: "set_topic_guidance",
|
|
16113
|
+
title: "Set a topic's guidance",
|
|
16114
|
+
description: "Set a topic's SOFT guidance — the local how-we-work norms for this topic (culture/quality, AD-063), e.g. 'recall before re-deriving', 'one typed point per contribution'. Soft norms only; hard governance (permissions, rate, join) lives at the space. You READ guidance to learn the room's habits — it's distinct from `set_ways_to_help` (what's open on a thread) and `request` (obligations). Replaces the whole list; pass [] to clear.",
|
|
16115
|
+
inputSchema: {
|
|
16116
|
+
topicId: exports_external.string().describe("the topic, top_…"),
|
|
16117
|
+
guidance: exports_external.array(exports_external.string()).describe("the full guidance list — replaces the existing one; [] clears it")
|
|
16118
|
+
},
|
|
16119
|
+
surfaces: ["mcp", "cli"],
|
|
16120
|
+
run: forward("topic.update")
|
|
16121
|
+
},
|
|
16109
16122
|
{
|
|
16110
16123
|
name: "create_thread",
|
|
16111
16124
|
title: "Open a thread",
|
|
@@ -16119,6 +16132,17 @@ var ACTIONS = [
|
|
|
16119
16132
|
surfaces: ["mcp", "cli"],
|
|
16120
16133
|
run: forward("thread.create")
|
|
16121
16134
|
},
|
|
16135
|
+
{
|
|
16136
|
+
name: "set_ways_to_help",
|
|
16137
|
+
title: "Set a thread's ways to help",
|
|
16138
|
+
description: "Set a thread's READ-ONLY 'ways to help' (AD-038) — a short, curated list of perspectives, skills, or concrete tasks that orient someone on how they could pitch in (e.g. 'a design read on the onboarding flow', 'a benchmark on cold-start latency', 'ops perspective'). It's guidance you READ to learn how to participate, NOT an obligation — the actionable layer is `request`. Replaces the whole list; pass [] to clear.",
|
|
16139
|
+
inputSchema: {
|
|
16140
|
+
threadId: exports_external.string().describe("the thread, thr_…"),
|
|
16141
|
+
waysToHelp: exports_external.array(exports_external.string()).describe("the full ways-to-help list — replaces the existing one; [] clears it")
|
|
16142
|
+
},
|
|
16143
|
+
surfaces: ["mcp", "cli"],
|
|
16144
|
+
run: forward("thread.update")
|
|
16145
|
+
},
|
|
16122
16146
|
{
|
|
16123
16147
|
name: "transition_thread",
|
|
16124
16148
|
title: "Move a thread's lifecycle",
|
|
@@ -16212,7 +16236,7 @@ var ACTIONS = [
|
|
|
16212
16236
|
{
|
|
16213
16237
|
name: "request",
|
|
16214
16238
|
title: "Request a contribution or review",
|
|
16215
|
-
description: "Request input on a thread (AD-161). Two kinds, picked by `aboutContributionId`: OMIT it to request a CONTRIBUTION — new input on the thread (evidence, a proposal, a counter-argument), met by someone's `respond` contribution. PASS it to request a REVIEW of that specific contribution, met by a `stamp` on it. Either way, name targets (an inbox item each) or leave it open (the thread board); completion is software-computed from their responses (first | quorum(n) | all-targets | deadline | explicit).",
|
|
16239
|
+
description: "Request input on a thread (AD-161). Two kinds, picked by `aboutContributionId`: OMIT it to request a CONTRIBUTION — new input on the thread (evidence, a proposal, a counter-argument, OR a decision/approval you need from someone), met by someone's `respond` contribution. PASS it to request a REVIEW of that specific contribution, met ONLY by a `stamp` on it. So when you want a prose answer or a yes/no decision, raise a CONTRIBUTION request (omit `aboutContributionId`) — do NOT wrap a decision as a review, because a review can only be answered by stamping, not by replying. Either way, name targets (an inbox item each) or leave it open (the thread board); completion is software-computed from their responses (first | quorum(n) | all-targets | deadline | explicit). Every request expires (default 14 days if you omit `expiresAt`), so nothing hangs forever.",
|
|
16216
16240
|
inputSchema: {
|
|
16217
16241
|
threadId: exports_external.string().describe("the thread the request is in, thr_…"),
|
|
16218
16242
|
requestedAction: exports_external.string().optional().describe("a one-line 'what you're requesting'"),
|
|
@@ -16220,7 +16244,7 @@ var ACTIONS = [
|
|
|
16220
16244
|
targetProfileIds: exports_external.array(exports_external.string()).optional().describe("targeted recipients (omit → open board)"),
|
|
16221
16245
|
completion: exports_external.enum(["first", "quorum", "all-targets", "deadline", "explicit"]),
|
|
16222
16246
|
quorumN: exports_external.number().int().min(1).optional().describe("required when completion=quorum"),
|
|
16223
|
-
expiresAt: exports_external.string().optional().describe("ISO-8601 deadline")
|
|
16247
|
+
expiresAt: exports_external.string().optional().describe("ISO-8601 deadline (default: 14 days from creation, AD-167)")
|
|
16224
16248
|
},
|
|
16225
16249
|
surfaces: ["mcp", "cli"],
|
|
16226
16250
|
run: forward("request.create")
|
|
@@ -16270,6 +16294,16 @@ var ACTIONS = [
|
|
|
16270
16294
|
surfaces: ["mcp", "cli"],
|
|
16271
16295
|
run: forward("inbox.list")
|
|
16272
16296
|
},
|
|
16297
|
+
{
|
|
16298
|
+
name: "dismiss",
|
|
16299
|
+
title: "Dismiss an inbox item",
|
|
16300
|
+
description: "Clear one of YOUR open obligations from your inbox without answering it (AD-167) — use this when an ask no longer needs your response (you handled it out of band, or it's stale/not for you). It's silent and recipient-side: it removes the item from your inbox but does NOT touch the underlying request or notify the requester, so their ask still completes or expires on its own. To actually ANSWER a request, `respond` (or `stamp` a review request) instead — dismissing is declining, not responding.",
|
|
16301
|
+
inputSchema: {
|
|
16302
|
+
inboxItemId: exports_external.string().describe("the inbox item to dismiss, inb_…")
|
|
16303
|
+
},
|
|
16304
|
+
surfaces: ["mcp", "cli"],
|
|
16305
|
+
run: forward("inbox.dismiss")
|
|
16306
|
+
},
|
|
16273
16307
|
{
|
|
16274
16308
|
name: "notifications",
|
|
16275
16309
|
title: "List your notifications",
|
package/package.json
CHANGED