@lambdacurry/arbor 0.21.10 → 0.21.11
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 -10
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -17207,6 +17207,17 @@ function date4(params) {
|
|
|
17207
17207
|
|
|
17208
17208
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
17209
17209
|
config(en_default());
|
|
17210
|
+
// ../actions/src/external-read-defaults.ts
|
|
17211
|
+
var EXTERNAL_DEFAULT_PAGE_SIZE = 50;
|
|
17212
|
+
var EXTERNAL_DEFAULT_CONTRIB_LIMIT = 50;
|
|
17213
|
+
var EXTERNAL_DEFAULT_THREAD_VIEW = "compact";
|
|
17214
|
+
var EXTERNAL_READ_DEFAULTS_BY_OPERATION = {};
|
|
17215
|
+
function recordExternalReadDefaults(operation, defaults) {
|
|
17216
|
+
if (!operation || !defaults)
|
|
17217
|
+
return;
|
|
17218
|
+
EXTERNAL_READ_DEFAULTS_BY_OPERATION[operation] = defaults;
|
|
17219
|
+
}
|
|
17220
|
+
|
|
17210
17221
|
// ../actions/src/output-schemas.ts
|
|
17211
17222
|
var id = exports_external.string();
|
|
17212
17223
|
var timestamp = exports_external.string();
|
|
@@ -18507,7 +18518,6 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
18507
18518
|
function outputSchemaFor(actionName) {
|
|
18508
18519
|
return MCP_OUTPUT_SCHEMAS[actionName];
|
|
18509
18520
|
}
|
|
18510
|
-
|
|
18511
18521
|
// ../actions/src/output-shaping.ts
|
|
18512
18522
|
function record2(value) {
|
|
18513
18523
|
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
@@ -18935,7 +18945,15 @@ function isProseList(schema) {
|
|
|
18935
18945
|
return PROSE_LISTS.has(schema);
|
|
18936
18946
|
}
|
|
18937
18947
|
function forward(operation) {
|
|
18938
|
-
|
|
18948
|
+
const run = (ex, input) => ex.call(operation, input);
|
|
18949
|
+
run.operation = operation;
|
|
18950
|
+
return run;
|
|
18951
|
+
}
|
|
18952
|
+
function forwardedOperation(run) {
|
|
18953
|
+
if (!("operation" in run))
|
|
18954
|
+
return;
|
|
18955
|
+
const value = run.operation;
|
|
18956
|
+
return typeof value === "string" ? value : undefined;
|
|
18939
18957
|
}
|
|
18940
18958
|
function dispatch(map2, reshape) {
|
|
18941
18959
|
return (ex, input) => {
|
|
@@ -18991,8 +19009,9 @@ function runAdminFeedback(ex, input) {
|
|
|
18991
19009
|
}
|
|
18992
19010
|
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.";
|
|
18993
19011
|
var PAGINATION_INPUT = {
|
|
18994
|
-
limit: exports_external.number().int().min(1).optional().describe(
|
|
18995
|
-
cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)")
|
|
19012
|
+
limit: exports_external.number().int().min(1).optional().describe(`max items to return. MCP/CLI/API default to ${EXTERNAL_DEFAULT_PAGE_SIZE} and return nextCursor when more remain; pass all=true/--all for the complete list. In-process web omit is still a compatibility full read`),
|
|
19013
|
+
cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)"),
|
|
19014
|
+
all: exports_external.boolean().optional().describe("explicit complete retrieval — skip the bounded default page. Prefer limit+cursor unless you need the whole collection")
|
|
18996
19015
|
};
|
|
18997
19016
|
var LIVE_PREVIEW_CONFIG_INPUT = {
|
|
18998
19017
|
livePreview: exports_external.object({
|
|
@@ -20216,14 +20235,19 @@ var ACTION_DEFINITIONS = [
|
|
|
20216
20235
|
{
|
|
20217
20236
|
name: "thread_get",
|
|
20218
20237
|
title: "Read a thread",
|
|
20219
|
-
description: "READ ONLY: Read one Thread
|
|
20238
|
+
description: "READ ONLY: Read one Thread as compact current context (distillate, requests, artifacts, recent tail, cursored unchanged checks) — not the durable transcript; pass view=full to page history (contribLimit default 50) or all=true for the complete transcript. Read it before contributing so you can answer open requests correctly.",
|
|
20220
20239
|
inputSchema: {
|
|
20221
20240
|
threadId: exports_external.string().describe("the thread id, e.g. thr_…"),
|
|
20222
|
-
view: exports_external.enum(["full", "compact"]).optional().describe("
|
|
20241
|
+
view: exports_external.enum(["full", "compact"]).optional().describe("MCP/CLI/API default compact = bounded decision-ready context; full = transcript page"),
|
|
20223
20242
|
cursor: exports_external.string().optional().describe("compact reads only: cursor from the previous compact response; if context is unchanged the response collapses to a tiny unchanged envelope"),
|
|
20224
20243
|
recentLimit: exports_external.number().int().min(1).max(20).optional().describe("compact reads only: latest contributions to include (default 6, max 20)"),
|
|
20225
|
-
contribLimit: exports_external.number().int().positive().optional().describe(
|
|
20226
|
-
contribCursor: exports_external.string().optional().describe("full reads only: continuation cursor from a previous page's contributionPage.nextCursor")
|
|
20244
|
+
contribLimit: exports_external.number().int().positive().optional().describe(`full reads only: max contributions to return (AD-151 keyset paging). MCP/CLI/API default to ${EXTERNAL_DEFAULT_CONTRIB_LIMIT}; pass all=true for the whole thread`),
|
|
20245
|
+
contribCursor: exports_external.string().optional().describe("full reads only: continuation cursor from a previous page's contributionPage.nextCursor"),
|
|
20246
|
+
all: exports_external.boolean().optional().describe("explicit complete transcript on view=full — skip the bounded contribLimit. Prefer contribLimit+contribCursor unless you need every contribution")
|
|
20247
|
+
},
|
|
20248
|
+
externalReadDefaults: {
|
|
20249
|
+
view: EXTERNAL_DEFAULT_THREAD_VIEW,
|
|
20250
|
+
contribLimit: EXTERNAL_DEFAULT_CONTRIB_LIMIT
|
|
20227
20251
|
},
|
|
20228
20252
|
surfaces: ["mcp", "cli"],
|
|
20229
20253
|
toolset: "loop",
|
|
@@ -21333,15 +21357,17 @@ var ACTIONS = ACTION_DEFINITIONS.map((action) => {
|
|
|
21333
21357
|
if (action.requiresCapability && !action.surfaces.includes("mcp")) {
|
|
21334
21358
|
throw new Error(`${action.name}: requiresCapability is an MCP catalog gate`);
|
|
21335
21359
|
}
|
|
21360
|
+
const externalReadDefaults = action.inputSchema.limit === PAGINATION_INPUT.limit ? { ...action.externalReadDefaults, limit: EXTERNAL_DEFAULT_PAGE_SIZE } : action.externalReadDefaults;
|
|
21361
|
+
recordExternalReadDefaults(forwardedOperation(action.run), externalReadDefaults);
|
|
21336
21362
|
if (!action.surfaces.some((surface) => surface === "mcp" || surface === "computer-mcp")) {
|
|
21337
|
-
return action;
|
|
21363
|
+
return externalReadDefaults ? { ...action, externalReadDefaults } : action;
|
|
21338
21364
|
}
|
|
21339
21365
|
const outputSchema = outputSchemaFor(action.name);
|
|
21340
21366
|
if (!outputSchema)
|
|
21341
21367
|
throw new Error(`${action.name}: MCP action is missing an output schema`);
|
|
21342
21368
|
const annotations = mcpAnnotationsFor(action.name);
|
|
21343
21369
|
const description = annotations.readOnlyHint && !action.description.startsWith("READ ONLY") ? `READ ONLY: ${action.description}` : action.description;
|
|
21344
|
-
return { ...action, description, outputSchema, annotations };
|
|
21370
|
+
return { ...action, externalReadDefaults, description, outputSchema, annotations };
|
|
21345
21371
|
});
|
|
21346
21372
|
|
|
21347
21373
|
// src/config.ts
|
package/package.json
CHANGED