@lambdacurry/arbor 0.21.8 → 0.21.9
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 +83 -5
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -17864,6 +17864,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17864
17864
|
}),
|
|
17865
17865
|
admin_feedback_capability: jsonObject,
|
|
17866
17866
|
admin_feedback_evidence: jsonObject,
|
|
17867
|
+
admin_feedback: jsonObject,
|
|
17867
17868
|
admin_feedback_topic: jsonObject,
|
|
17868
17869
|
admin_feedback_thread: jsonObject,
|
|
17869
17870
|
admin_feedback_publish: jsonObject,
|
|
@@ -18770,6 +18771,7 @@ var MCP_TOOL_ANNOTATIONS = {
|
|
|
18770
18771
|
feedback_status: readOnly,
|
|
18771
18772
|
admin_feedback_capability: destructiveIdempotent,
|
|
18772
18773
|
admin_feedback_evidence: destructive,
|
|
18774
|
+
admin_feedback: destructive,
|
|
18773
18775
|
admin_feedback_topic: destructive,
|
|
18774
18776
|
admin_feedback_thread: destructive,
|
|
18775
18777
|
admin_feedback_publish: additive,
|
|
@@ -18938,6 +18940,49 @@ function dispatch(map2, reshape) {
|
|
|
18938
18940
|
return ex.call(op, reshape && verb ? reshape(verb, rest) : rest);
|
|
18939
18941
|
};
|
|
18940
18942
|
}
|
|
18943
|
+
var ADMIN_FEEDBACK_VERBS = [
|
|
18944
|
+
"publish",
|
|
18945
|
+
"merge",
|
|
18946
|
+
"transition",
|
|
18947
|
+
"edit",
|
|
18948
|
+
"curate",
|
|
18949
|
+
"topic",
|
|
18950
|
+
"create",
|
|
18951
|
+
"update",
|
|
18952
|
+
"move",
|
|
18953
|
+
"archive",
|
|
18954
|
+
"restore"
|
|
18955
|
+
];
|
|
18956
|
+
var ADMIN_FEEDBACK_THREAD_VERBS = new Set([
|
|
18957
|
+
"create",
|
|
18958
|
+
"update",
|
|
18959
|
+
"move",
|
|
18960
|
+
"transition",
|
|
18961
|
+
"archive",
|
|
18962
|
+
"restore",
|
|
18963
|
+
"merge"
|
|
18964
|
+
]);
|
|
18965
|
+
var ADMIN_FEEDBACK_VERB_HELP = ADMIN_FEEDBACK_VERBS.join(" | ");
|
|
18966
|
+
function runAdminFeedback(ex, input) {
|
|
18967
|
+
const { verb, ...rest } = input;
|
|
18968
|
+
if (verb === "curate") {
|
|
18969
|
+
if (rest.curate === "delete")
|
|
18970
|
+
return ex.call("feedback_admin.remove", rest);
|
|
18971
|
+
if (rest.curate === "restore")
|
|
18972
|
+
return ex.call("feedback_admin.restore", rest);
|
|
18973
|
+
return Promise.reject(new Error('curate requires curate "delete" or "restore"'));
|
|
18974
|
+
}
|
|
18975
|
+
if (verb && ADMIN_FEEDBACK_THREAD_VERBS.has(verb)) {
|
|
18976
|
+
return ex.call("feedback_admin.thread", { ...rest, action: verb });
|
|
18977
|
+
}
|
|
18978
|
+
if (verb === "publish")
|
|
18979
|
+
return ex.call("feedback_admin.publish", rest);
|
|
18980
|
+
if (verb === "edit")
|
|
18981
|
+
return ex.call("feedback_admin.edit", rest);
|
|
18982
|
+
if (verb === "topic")
|
|
18983
|
+
return ex.call("feedback_admin.topic", rest);
|
|
18984
|
+
return Promise.reject(new Error(`unknown verb "${verb ?? ""}" — expected one of: ${ADMIN_FEEDBACK_VERB_HELP}`));
|
|
18985
|
+
}
|
|
18941
18986
|
var NOTIFICATION_TRIAGE_DESCRIPTION = "READ ONLY: List your awareness feed newest first with unseen count and derived triage class: `settled-context` = settled Thread context; `owed-by-me` = an open request pointing to `inbox`; `judgment-available` = live engagement inviting judgment; `closed-loop` = your request completed; `room-motion` = ambient activity. Notifications are FYI, not a second obligation surface: `inbox` alone contains work owed by you; this cannot mark notifications read or modify inbox obligations.";
|
|
18942
18987
|
var PAGINATION_INPUT = {
|
|
18943
18988
|
limit: exports_external.number().int().min(1).optional().describe("max items to return — enables pagination"),
|
|
@@ -19129,6 +19174,36 @@ var ACTION_DEFINITIONS = [
|
|
|
19129
19174
|
status: "feedback_admin.status"
|
|
19130
19175
|
})
|
|
19131
19176
|
},
|
|
19177
|
+
{
|
|
19178
|
+
name: "admin_feedback",
|
|
19179
|
+
title: "Moderate shared Arbor Feedback",
|
|
19180
|
+
description: "After a ship, recall matching Feedback, merge duplicates, publish the outcome, and transition the canonical Thread to resolved. Moderators only: this cannot file reports or expose receipt metadata.",
|
|
19181
|
+
inputSchema: {
|
|
19182
|
+
verb: exports_external.enum(ADMIN_FEEDBACK_VERBS).describe("close loop: publish, merge, transition; also edit, curate, topic, and thread lifecycle"),
|
|
19183
|
+
threadId: exports_external.string().optional().describe("publish / update / move / transition / archive / restore: Thread id"),
|
|
19184
|
+
type: exports_external.enum(CONTRIBUTION_TYPES).optional().describe("publish/edit: shared contribution type, including maintainer decision"),
|
|
19185
|
+
body: exports_external.string().min(1).optional().describe("publish: follow-on body · edit: replacement body"),
|
|
19186
|
+
summary: exports_external.string().max(500).nullable().optional().describe("publish/edit: gist; edit null/empty clears"),
|
|
19187
|
+
confidence: exports_external.number().int().min(0).max(100).optional().describe("publish: 0–100 confidence"),
|
|
19188
|
+
idempotencyKey: exports_external.string().min(1).max(200).optional().describe("publish: stable retry key"),
|
|
19189
|
+
feedbackId: exports_external.string().optional().describe("publish: optional receipt id; additionally requires review_private"),
|
|
19190
|
+
contributionId: exports_external.string().optional().describe("edit/curate: shared contribution id"),
|
|
19191
|
+
curate: exports_external.enum(["delete", "restore"]).optional().describe("curate: delete or restore a shared contribution"),
|
|
19192
|
+
action: exports_external.enum(["create", "update", "archive", "restore"]).optional().describe("topic: create, update, archive, or restore"),
|
|
19193
|
+
topicId: exports_external.string().optional().describe("topic / create / move / update: Feedback Topic id"),
|
|
19194
|
+
title: exports_external.string().min(1).optional().describe("topic/create/update: title"),
|
|
19195
|
+
purpose: exports_external.string().optional().describe("topic: purpose"),
|
|
19196
|
+
sourceThreadId: exports_external.string().optional().describe("merge: duplicate source Thread id"),
|
|
19197
|
+
targetThreadId: exports_external.string().optional().describe("merge: canonical destination Thread id"),
|
|
19198
|
+
objective: exports_external.string().min(1).optional().describe("create/update: Thread objective"),
|
|
19199
|
+
status: exports_external.enum(["active", "needs-review", "stuck", "standing", "resolved", "archived"]).optional().describe("transition/update: target Thread status"),
|
|
19200
|
+
reason: exports_external.string().optional().describe("merge: concise auditable rationale")
|
|
19201
|
+
},
|
|
19202
|
+
surfaces: ["mcp"],
|
|
19203
|
+
toolset: "admin",
|
|
19204
|
+
requiresCapability: "moderate",
|
|
19205
|
+
run: runAdminFeedback
|
|
19206
|
+
},
|
|
19132
19207
|
{
|
|
19133
19208
|
name: "admin_feedback_topic",
|
|
19134
19209
|
title: "Maintain shared Feedback Topics",
|
|
@@ -19139,7 +19214,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19139
19214
|
title: exports_external.string().min(1).optional().describe("create/update: Topic title"),
|
|
19140
19215
|
purpose: exports_external.string().optional().describe("create/update: Topic purpose")
|
|
19141
19216
|
},
|
|
19142
|
-
surfaces: ["
|
|
19217
|
+
surfaces: ["cli"],
|
|
19143
19218
|
toolset: "admin",
|
|
19144
19219
|
run: forward("feedback_admin.topic")
|
|
19145
19220
|
},
|
|
@@ -19158,7 +19233,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19158
19233
|
status: exports_external.enum(["active", "needs-review", "stuck", "standing", "resolved", "archived"]).optional().describe("transition/update: target Thread status"),
|
|
19159
19234
|
reason: exports_external.string().optional().describe("merge: concise auditable rationale")
|
|
19160
19235
|
},
|
|
19161
|
-
surfaces: ["
|
|
19236
|
+
surfaces: ["cli"],
|
|
19162
19237
|
toolset: "admin",
|
|
19163
19238
|
run: forward("feedback_admin.thread")
|
|
19164
19239
|
},
|
|
@@ -19175,7 +19250,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19175
19250
|
idempotencyKey: exports_external.string().min(1).max(200).optional(),
|
|
19176
19251
|
feedbackId: exports_external.string().optional().describe("optional receipt id; additionally requires review_private")
|
|
19177
19252
|
},
|
|
19178
|
-
surfaces: ["
|
|
19253
|
+
surfaces: ["cli"],
|
|
19179
19254
|
toolset: "admin",
|
|
19180
19255
|
run: forward("feedback_admin.publish")
|
|
19181
19256
|
},
|
|
@@ -19189,7 +19264,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19189
19264
|
summary: exports_external.string().max(500).nullable().optional().describe("replacement gist; null/empty clears"),
|
|
19190
19265
|
type: exports_external.enum(CONTRIBUTION_TYPES).optional().describe("replacement shared contribution type")
|
|
19191
19266
|
},
|
|
19192
|
-
surfaces: ["
|
|
19267
|
+
surfaces: ["cli"],
|
|
19193
19268
|
toolset: "admin",
|
|
19194
19269
|
run: forward("feedback_admin.edit")
|
|
19195
19270
|
},
|
|
@@ -19201,7 +19276,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19201
19276
|
verb: exports_external.enum(["delete", "restore"]),
|
|
19202
19277
|
contributionId: exports_external.string().describe("shared Feedback contribution id")
|
|
19203
19278
|
},
|
|
19204
|
-
surfaces: ["
|
|
19279
|
+
surfaces: ["cli"],
|
|
19205
19280
|
toolset: "admin",
|
|
19206
19281
|
run: dispatch({ delete: "feedback_admin.remove", restore: "feedback_admin.restore" })
|
|
19207
19282
|
},
|
|
@@ -21249,6 +21324,9 @@ var ACTION_DEFINITIONS = [
|
|
|
21249
21324
|
}
|
|
21250
21325
|
];
|
|
21251
21326
|
var ACTIONS = ACTION_DEFINITIONS.map((action) => {
|
|
21327
|
+
if (action.requiresCapability && !action.surfaces.includes("mcp")) {
|
|
21328
|
+
throw new Error(`${action.name}: requiresCapability is an MCP catalog gate`);
|
|
21329
|
+
}
|
|
21252
21330
|
if (!action.surfaces.some((surface) => surface === "mcp" || surface === "computer-mcp")) {
|
|
21253
21331
|
return action;
|
|
21254
21332
|
}
|
package/package.json
CHANGED