@lambdacurry/arbor 0.21.10 → 0.21.12
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 +65 -40
- 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) => {
|
|
@@ -18989,10 +19007,11 @@ function runAdminFeedback(ex, input) {
|
|
|
18989
19007
|
return ex.call("feedback_admin.topic", rest);
|
|
18990
19008
|
return Promise.reject(new Error(`unknown verb "${verb ?? ""}" — expected one of: ${ADMIN_FEEDBACK_VERB_HELP}`));
|
|
18991
19009
|
}
|
|
18992
|
-
var NOTIFICATION_TRIAGE_DESCRIPTION = "
|
|
19010
|
+
var NOTIFICATION_TRIAGE_DESCRIPTION = "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({
|
|
@@ -19006,7 +19025,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19006
19025
|
{
|
|
19007
19026
|
name: "server_info",
|
|
19008
19027
|
title: "Inspect Arbor server version",
|
|
19009
|
-
description: "
|
|
19028
|
+
description: "Return the Arbor release version and current Cloudflare deployment identity so a client can distinguish a fresh server from a cached tool catalog. This cannot modify Arbor, Computer, App, access, or durable state.",
|
|
19010
19029
|
inputSchema: {},
|
|
19011
19030
|
surfaces: ["mcp", "cli", "computer-mcp", "computer-cli"],
|
|
19012
19031
|
toolset: "structure",
|
|
@@ -19015,7 +19034,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19015
19034
|
{
|
|
19016
19035
|
name: "github_repositories",
|
|
19017
19036
|
title: "List installed GitHub repositories",
|
|
19018
|
-
description: "
|
|
19037
|
+
description: "List repositories covered by this organization's verified Arbor Computer GitHub App, returning ids and metadata but never credentials. Use github_connect_repository to authorize one at an Arbor scope; listing alone grants no Computer access.",
|
|
19019
19038
|
inputSchema: { ...PAGINATION_INPUT },
|
|
19020
19039
|
surfaces: ["computer-mcp", "cli"],
|
|
19021
19040
|
toolset: "projects",
|
|
@@ -19065,7 +19084,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19065
19084
|
{
|
|
19066
19085
|
name: "recall",
|
|
19067
19086
|
title: "Recall existing knowledge",
|
|
19068
|
-
description: "
|
|
19087
|
+
description: "Search Arbor semantically for existing contributions, artifacts, and decisions. Use `tree` for lifecycle/attention routing; once you know the area, pass space/topic/thread to keep recall inside that working set before targeted reads.",
|
|
19069
19088
|
inputSchema: {
|
|
19070
19089
|
query: exports_external.string().min(1).describe("what you want to recall, in natural language"),
|
|
19071
19090
|
space: exports_external.string().optional().describe("optional space id to scope the search"),
|
|
@@ -19081,7 +19100,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19081
19100
|
{
|
|
19082
19101
|
name: "feedback_tree",
|
|
19083
19102
|
title: "Browse the shared Arbor Feedback forum",
|
|
19084
|
-
description: "
|
|
19103
|
+
description: "Browse the global Arbor Feedback forum by Topic and optional Thread roster; the global scope is implied and no Space id is required. New reports appear as their own shared Threads as submitted; private receipt metadata and reviewer diagnostics are never returned.",
|
|
19085
19104
|
inputSchema: {
|
|
19086
19105
|
depth: exports_external.enum(["topics", "threads"]).optional().describe("topics (default) or threads to include each Topic's shared Thread roster"),
|
|
19087
19106
|
includeArchived: exports_external.boolean().optional().describe("include archived Topics/Threads for historical moderation or lookup (default false)")
|
|
@@ -19093,7 +19112,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19093
19112
|
{
|
|
19094
19113
|
name: "feedback_recall",
|
|
19095
19114
|
title: "Find known Arbor feedback",
|
|
19096
|
-
description: "
|
|
19115
|
+
description: "Search the global shared Arbor Feedback forum for reports, workarounds, and decisions; scope to a Topic after feedback_tree when useful. New report bodies are searchable as submitted; private receipt ids, reporter metadata, and reviewer diagnostics are never returned.",
|
|
19097
19116
|
inputSchema: {
|
|
19098
19117
|
query: exports_external.string().min(1).describe("the Arbor friction, issue, workaround, or idea to find"),
|
|
19099
19118
|
topicId: exports_external.string().optional().describe("optional shared Feedback Topic id from feedback_tree"),
|
|
@@ -19106,7 +19125,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19106
19125
|
{
|
|
19107
19126
|
name: "feedback_thread_get",
|
|
19108
19127
|
title: "Read a shared Arbor Feedback thread",
|
|
19109
|
-
description: "
|
|
19128
|
+
description: "Read one shared Arbor Feedback Thread, following a merge redirect to its canonical destination while preserving shared provenance. A newly filed report appears here as submitted; private receipt ids, reporter organization metadata, diagnostics, and private associations are not projected.",
|
|
19110
19129
|
inputSchema: {
|
|
19111
19130
|
threadId: exports_external.string().describe("the shared Feedback Thread id, thr_…")
|
|
19112
19131
|
},
|
|
@@ -19135,7 +19154,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19135
19154
|
{
|
|
19136
19155
|
name: "feedback_status",
|
|
19137
19156
|
title: "Check your Arbor feedback receipt",
|
|
19138
|
-
description: "
|
|
19157
|
+
description: "Check triage metadata and the shared identity for one Arbor feedback receipt you own. Missing and not-owned receipts look identical; receiptPrivate=true covers reviewer metadata, while visibility/sharedThreadId describe the filed report, and no raw body, identities, diagnostics, or private association targets are returned.",
|
|
19139
19158
|
inputSchema: {
|
|
19140
19159
|
feedbackId: exports_external.string().describe("your Arbor feedback receipt id, fbk_…")
|
|
19141
19160
|
},
|
|
@@ -19569,7 +19588,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19569
19588
|
{
|
|
19570
19589
|
name: "computer_repo_work_status",
|
|
19571
19590
|
title: "Inspect repository finish state",
|
|
19572
|
-
description: "
|
|
19591
|
+
description: "Inspect an active isolated WRITE Run's Git publication, PR, CI, and review before retry, wait, or finish. Returns repository state (e.g. ci-pending) plus runDisposition.action computer_run_suspend when published work waits on CI/review/human authorization — the same runId resumes; dirty, unpublished, unknown-publication, failing, or changes-requested work keeps the local nextAction.",
|
|
19573
19592
|
inputSchema: {
|
|
19574
19593
|
runId: exports_external.string().describe("the active isolated WRITE Run to inspect, run_…")
|
|
19575
19594
|
},
|
|
@@ -19594,7 +19613,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19594
19613
|
{
|
|
19595
19614
|
name: "computer_run_receipt",
|
|
19596
19615
|
title: "Read a run receipt",
|
|
19597
|
-
description: "
|
|
19616
|
+
description: "Inspect one Run's durable receipt during or after execution, including its Run-owned operation/activity state and a compact providerLifecycle journal (generation, last phase, typed reason) separate from command/process activity. Use this instead of parent computer_status; it returns compact history, not transcripts, and does not rewrite terminal reasonCode.",
|
|
19598
19617
|
inputSchema: {
|
|
19599
19618
|
runId: exports_external.string().describe("the run to read, run_… (from computer_run_start or computer_runs)")
|
|
19600
19619
|
},
|
|
@@ -19605,7 +19624,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19605
19624
|
{
|
|
19606
19625
|
name: "computer_runs",
|
|
19607
19626
|
title: "List runs",
|
|
19608
|
-
description: "
|
|
19627
|
+
description: "List active or recent Runs for this Thread Computer when deciding whether to resume existing work or start another unit. Returns each Run's mode, execution placement, workspace identity, and lifecycle status.",
|
|
19609
19628
|
inputSchema: {
|
|
19610
19629
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
19611
19630
|
status: exports_external.enum(["active", "finished", "failed", "cancelled"]).optional().describe("filter to one lifecycle status"),
|
|
@@ -19637,7 +19656,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19637
19656
|
{
|
|
19638
19657
|
name: "computer_process_read",
|
|
19639
19658
|
title: "Read a background process",
|
|
19640
|
-
description: "
|
|
19659
|
+
description: "Read a provider-owned process from computer_exec, including a foreground operation recovered from a Run receipt, and use nextCursor for incremental output. Returns compact activity or recovery state plus the final exit result when observable.",
|
|
19641
19660
|
inputSchema: {
|
|
19642
19661
|
computerSessionId: exports_external.string().optional().describe("the computerSessionId returned by computer_open, cms_…; required unless runId is supplied"),
|
|
19643
19662
|
runId: exports_external.string().optional().describe("the Run that owns this process, if it was started inside a Run"),
|
|
@@ -19665,7 +19684,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19665
19684
|
{
|
|
19666
19685
|
name: "computer_status",
|
|
19667
19686
|
title: "Inspect a computer",
|
|
19668
|
-
description: "
|
|
19687
|
+
description: "Inspect the live PARENT Thread Computer's capabilities, execution readiness, processes, and profile. If its named command session is unavailable, command capabilities disappear and recovery points to computer_open; this does not report isolated Run command state, so use computer_run_receipt for Run state or get_computer for durable lineage.",
|
|
19669
19688
|
inputSchema: {
|
|
19670
19689
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…")
|
|
19671
19690
|
},
|
|
@@ -19688,7 +19707,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19688
19707
|
{
|
|
19689
19708
|
name: "code_symbols",
|
|
19690
19709
|
title: "Outline a file's symbols",
|
|
19691
|
-
description: "
|
|
19710
|
+
description: "Outline real declarations in a file or directory when you need structure without reading or searching the whole source. Uses the language server to return symbols and kinds, distinguishing declarations from textual matches.",
|
|
19692
19711
|
inputSchema: {
|
|
19693
19712
|
computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
|
|
19694
19713
|
runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
|
|
@@ -19701,7 +19720,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19701
19720
|
{
|
|
19702
19721
|
name: "code_find_symbol",
|
|
19703
19722
|
title: "Find a symbol by name path",
|
|
19704
|
-
description: "
|
|
19723
|
+
description: "Locate a declaration by name path when you need the definition rather than text matches. Uses the language server and can include the symbol body and bounded child depth.",
|
|
19705
19724
|
inputSchema: {
|
|
19706
19725
|
computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
|
|
19707
19726
|
runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
|
|
@@ -19717,7 +19736,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19717
19736
|
{
|
|
19718
19737
|
name: "code_references",
|
|
19719
19738
|
title: "Find what references a symbol",
|
|
19720
|
-
description: "
|
|
19739
|
+
description: "Find semantic references to a declaration when you need to know what actually depends on it before a change. Uses the language server to return resolved references with snippets, excluding unrelated textual matches.",
|
|
19721
19740
|
inputSchema: {
|
|
19722
19741
|
computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
|
|
19723
19742
|
runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
|
|
@@ -19731,7 +19750,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19731
19750
|
{
|
|
19732
19751
|
name: "code_implementations",
|
|
19733
19752
|
title: "Find implementations of a symbol",
|
|
19734
|
-
description: "
|
|
19753
|
+
description: "Find concrete implementations or subtypes of an interface, abstract type, or method. Uses the language server to resolve type relationships that text search cannot follow.",
|
|
19735
19754
|
inputSchema: {
|
|
19736
19755
|
computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
|
|
19737
19756
|
runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
|
|
@@ -19745,7 +19764,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19745
19764
|
{
|
|
19746
19765
|
name: "code_diagnostics",
|
|
19747
19766
|
title: "Read language-server diagnostics for a file",
|
|
19748
|
-
description: "
|
|
19767
|
+
description: "Check live language-server errors and warnings for one file, especially after an edit. Returns diagnostics mapped to symbols for fast local feedback; it does not replace a whole-project build or typecheck.",
|
|
19749
19768
|
inputSchema: {
|
|
19750
19769
|
computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
|
|
19751
19770
|
runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
|
|
@@ -19862,7 +19881,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19862
19881
|
{
|
|
19863
19882
|
name: "get_computer",
|
|
19864
19883
|
title: "Read a Thread computer",
|
|
19865
|
-
description: "
|
|
19884
|
+
description: "Inspect a Thread's durable Computer recipe/materialization state, compatibility, snapshot lineage, recent receipts, Runs, and reprovision outcomes; setup content and credentials stay redacted. Use computer_open or computer_status for live execution state; this surface reports durable Arbor protocol state.",
|
|
19866
19885
|
inputSchema: {
|
|
19867
19886
|
threadId: exports_external.string().describe("the Thread, thr_…"),
|
|
19868
19887
|
lineageLimit: exports_external.number().int().min(1).max(100).optional().describe("recent receipts/lineage rows (default 20)")
|
|
@@ -19874,7 +19893,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19874
19893
|
{
|
|
19875
19894
|
name: "computer_inventory",
|
|
19876
19895
|
title: "Inventory organization Computers",
|
|
19877
|
-
description: "
|
|
19896
|
+
description: "Inventory materialized Thread Computers in your organization, optionally scoped to a Topic, with active generation, compatibility, lifecycle counts, and factual anomaly flags. Organization owner/admin only; this is evidence, not a deletion recommendation.",
|
|
19878
19897
|
inputSchema: {
|
|
19879
19898
|
topicId: exports_external.string().optional().describe("optional Topic to scope the inventory"),
|
|
19880
19899
|
limit: exports_external.number().int().min(1).max(50).optional().describe("rows to return (default 25)"),
|
|
@@ -20216,14 +20235,19 @@ var ACTION_DEFINITIONS = [
|
|
|
20216
20235
|
{
|
|
20217
20236
|
name: "thread_get",
|
|
20218
20237
|
title: "Read a thread",
|
|
20219
|
-
description: "
|
|
20238
|
+
description: "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",
|
|
@@ -20243,7 +20267,7 @@ var ACTION_DEFINITIONS = [
|
|
|
20243
20267
|
{
|
|
20244
20268
|
name: "tree",
|
|
20245
20269
|
title: "Navigate the workspace tree",
|
|
20246
|
-
description: "
|
|
20270
|
+
description: "Map Spaces to Topics to Threads for orientation; Topic `activeThreadCount` is the current working set (active/stuck/needs-review/standing), while `status` is area attention (`stuck`=any stuck, `attention`=needs-review or open request, `healthy`=neither), not personal obligation (`inbox`). In a large Space, choose the Topic here, scope recall to it, then read only the returned Thread/Artifact; expand tree or use topic_get only for explicit enumeration or Topic-wide context.",
|
|
20247
20271
|
inputSchema: {
|
|
20248
20272
|
space: exports_external.string().optional().describe("scope to one space id (spc_…)"),
|
|
20249
20273
|
topic: exports_external.string().optional().describe("scope to one topic id (top_…)"),
|
|
@@ -20256,7 +20280,7 @@ var ACTION_DEFINITIONS = [
|
|
|
20256
20280
|
{
|
|
20257
20281
|
name: "members",
|
|
20258
20282
|
title: "List the people + agents in your org",
|
|
20259
|
-
description: "
|
|
20283
|
+
description: "List everyone in your org with profile id, human/agent identity, role, charter, and capabilities needed for routing. Use it to resolve profile ids for mentions or targeted requests; it cannot modify membership.",
|
|
20260
20284
|
inputSchema: {},
|
|
20261
20285
|
surfaces: ["mcp", "cli"],
|
|
20262
20286
|
toolset: "loop",
|
|
@@ -20512,7 +20536,7 @@ var ACTION_DEFINITIONS = [
|
|
|
20512
20536
|
{
|
|
20513
20537
|
name: "space_get",
|
|
20514
20538
|
title: "Read a space",
|
|
20515
|
-
description: "
|
|
20539
|
+
description: "Read a Space's durable context: purpose, guidance, contribution lanes, Topics, and full member roster with roles, capabilities, and charters. Use it after tree when you need the room's full norms or collaborator context; it cannot modify membership or guidance.",
|
|
20516
20540
|
inputSchema: {
|
|
20517
20541
|
spaceId: exports_external.string().min(1).describe("the space id")
|
|
20518
20542
|
},
|
|
@@ -20523,7 +20547,7 @@ var ACTION_DEFINITIONS = [
|
|
|
20523
20547
|
{
|
|
20524
20548
|
name: "topic_get",
|
|
20525
20549
|
title: "Read a topic",
|
|
20526
|
-
description: "
|
|
20550
|
+
description: "Read a Topic's full details, guidance, complete Thread roster, open requests, and promoted artifacts. Use it for intentional Topic-wide context or enumeration; for a concrete question in a large Topic, prefer Topic-scoped recall first.",
|
|
20527
20551
|
inputSchema: {
|
|
20528
20552
|
topicId: exports_external.string().min(1).describe("the topic id")
|
|
20529
20553
|
},
|
|
@@ -21058,7 +21082,7 @@ var ACTION_DEFINITIONS = [
|
|
|
21058
21082
|
{
|
|
21059
21083
|
name: "app_list",
|
|
21060
21084
|
title: "List visible Apps",
|
|
21061
|
-
description: "
|
|
21085
|
+
description: "List Apps visible to you, including authorized archived Apps when requested. It cannot modify App state, deployment state, access, or durable SQLite.",
|
|
21062
21086
|
inputSchema: {
|
|
21063
21087
|
includeArchived: exports_external.boolean().optional().describe("include archived Apps you are authorized to inspect")
|
|
21064
21088
|
},
|
|
@@ -21069,7 +21093,7 @@ var ACTION_DEFINITIONS = [
|
|
|
21069
21093
|
{
|
|
21070
21094
|
name: "app_get",
|
|
21071
21095
|
title: "Read an App",
|
|
21072
|
-
description: "
|
|
21096
|
+
description: "Inspect one App's stable URL, active deployment, pending control intent, deployment history, provider health, deployment-aware redacted configuration readiness for the active release, and durable state generation. It cannot modify App state, deployment state, access, or durable SQLite; use its activeDeploymentId as app_activate's expectedActiveDeploymentId.",
|
|
21073
21097
|
inputSchema: { appId: exports_external.string().describe("the App, app_…") },
|
|
21074
21098
|
surfaces: ["computer-mcp", "cli"],
|
|
21075
21099
|
toolset: "apps",
|
|
@@ -21093,7 +21117,7 @@ var ACTION_DEFINITIONS = [
|
|
|
21093
21117
|
{
|
|
21094
21118
|
name: "preview_app_get",
|
|
21095
21119
|
title: "Read a Preview App",
|
|
21096
|
-
description: "
|
|
21120
|
+
description: "Inspect one Preview App's public URL, pinned ArtifactVersion/AppBundle lineage, absolute expiry, Thread status, and bounded WebSocket room contract. It is not a Space App catalog read.",
|
|
21097
21121
|
inputSchema: { previewAppId: exports_external.string().describe("the Preview App, papp_…") },
|
|
21098
21122
|
surfaces: ["computer-mcp", "cli"],
|
|
21099
21123
|
toolset: "apps",
|
|
@@ -21169,7 +21193,7 @@ var ACTION_DEFINITIONS = [
|
|
|
21169
21193
|
{
|
|
21170
21194
|
name: "app_deployment_get",
|
|
21171
21195
|
title: "Inspect an App deployment",
|
|
21172
|
-
description: "
|
|
21196
|
+
description: "Inspect one deployment's state, source bundle, provider receipt, phased redacted health (load|activation|runtime), and config readiness. It cannot modify App state, deployment state, access, or durable SQLite.",
|
|
21173
21197
|
inputSchema: {
|
|
21174
21198
|
appId: exports_external.string().describe("owning App, app_…"),
|
|
21175
21199
|
deploymentId: exports_external.string().describe("deployment, dep_…")
|
|
@@ -21181,7 +21205,7 @@ var ACTION_DEFINITIONS = [
|
|
|
21181
21205
|
{
|
|
21182
21206
|
name: "app_fetch",
|
|
21183
21207
|
title: "Fetch from an App",
|
|
21184
|
-
description: "
|
|
21208
|
+
description: "Invoke GET or HEAD on one relative path of an App using your current Arbor identity; for Space Apps, current Space membership is rechecked on every call. It cannot modify App lifecycle, deployments, access, or durable SQLite; browser grants, cookies, credentials, and reserved /__arbor paths are never exposed to App code.",
|
|
21185
21209
|
inputSchema: {
|
|
21186
21210
|
appId: exports_external.string().describe("target App, app_…"),
|
|
21187
21211
|
path: exports_external.string().min(1).max(2048).describe("relative App path beginning with /; may include a query string"),
|
|
@@ -21333,15 +21357,16 @@ 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
|
-
|
|
21344
|
-
return { ...action, description, outputSchema, annotations };
|
|
21369
|
+
return { ...action, externalReadDefaults, outputSchema, annotations };
|
|
21345
21370
|
});
|
|
21346
21371
|
|
|
21347
21372
|
// src/config.ts
|
package/package.json
CHANGED