@lambdacurry/arbor 0.15.2 → 0.16.1
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 +168 -13
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -16727,6 +16727,27 @@ var computerProfile = exports_external.looseObject({
|
|
|
16727
16727
|
tools: exports_external.array(exports_external.string()),
|
|
16728
16728
|
recommendedEditingPrimitive: exports_external.string()
|
|
16729
16729
|
});
|
|
16730
|
+
var computerCapabilityCard = exports_external.looseObject({
|
|
16731
|
+
capabilities: exports_external.array(exports_external.looseObject({
|
|
16732
|
+
id: exports_external.string(),
|
|
16733
|
+
state: exports_external.enum(["ready", "available"]),
|
|
16734
|
+
surface: exports_external.array(exports_external.string()),
|
|
16735
|
+
hint: exports_external.string().optional()
|
|
16736
|
+
})),
|
|
16737
|
+
diagnostics: exports_external.looseObject({
|
|
16738
|
+
backend: exports_external.enum(["worker-shell", "container"]),
|
|
16739
|
+
containerProfile: nullableString,
|
|
16740
|
+
runtimeActive: exports_external.boolean()
|
|
16741
|
+
})
|
|
16742
|
+
});
|
|
16743
|
+
var codeSymbol = exports_external.looseObject({
|
|
16744
|
+
namePath: exports_external.string(),
|
|
16745
|
+
kind: exports_external.string(),
|
|
16746
|
+
path: exports_external.string(),
|
|
16747
|
+
startLine: exports_external.number().optional(),
|
|
16748
|
+
endLine: exports_external.number().optional(),
|
|
16749
|
+
body: exports_external.string().optional()
|
|
16750
|
+
});
|
|
16730
16751
|
var appBundleSourceProvenance = exports_external.looseObject({
|
|
16731
16752
|
entryPath: exports_external.string(),
|
|
16732
16753
|
artifactVersionSha256: exports_external.string(),
|
|
@@ -17002,6 +17023,12 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17002
17023
|
get_computer: exports_external.looseObject({
|
|
17003
17024
|
threadId: id,
|
|
17004
17025
|
config: redactedComputerRecipe,
|
|
17026
|
+
repositoryAuthorization: exports_external.array(exports_external.looseObject({
|
|
17027
|
+
repository: exports_external.string(),
|
|
17028
|
+
connected: exports_external.boolean(),
|
|
17029
|
+
grantedByScope: exports_external.enum(["organization", "space", "topic", "thread"]).nullable(),
|
|
17030
|
+
inheritedBySiblingThreads: exports_external.boolean()
|
|
17031
|
+
})),
|
|
17005
17032
|
compatibility: exports_external.looseObject({
|
|
17006
17033
|
state: exports_external.enum(["ready", "stale_config", "backend_mismatch", "replacement_required"]),
|
|
17007
17034
|
reason: exports_external.string(),
|
|
@@ -17016,6 +17043,19 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17016
17043
|
lineage: exports_external.array(jsonObject),
|
|
17017
17044
|
reprovisions: exports_external.array(jsonObject)
|
|
17018
17045
|
}),
|
|
17046
|
+
github_repositories: exports_external.looseObject({
|
|
17047
|
+
repositories: exports_external.array(jsonObject),
|
|
17048
|
+
nextCursor: exports_external.string().nullable().optional(),
|
|
17049
|
+
hasMore: exports_external.boolean().optional()
|
|
17050
|
+
}),
|
|
17051
|
+
github_connect_repository: exports_external.looseObject({
|
|
17052
|
+
repositoryId: id,
|
|
17053
|
+
scope: exports_external.enum(["organization", "space", "topic", "thread"]),
|
|
17054
|
+
scopeId: id,
|
|
17055
|
+
status: exports_external.enum(["active", "disconnected"]),
|
|
17056
|
+
connected: exports_external.boolean(),
|
|
17057
|
+
inheritedBySiblingThreads: exports_external.boolean()
|
|
17058
|
+
}),
|
|
17019
17059
|
publish_topic_computer: exports_external.looseObject({
|
|
17020
17060
|
published: exports_external.boolean(),
|
|
17021
17061
|
snapshot
|
|
@@ -17292,6 +17332,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17292
17332
|
profile: computerProfile.nullable(),
|
|
17293
17333
|
startingSnapshot: snapshot.nullable(),
|
|
17294
17334
|
materialized: checkpoint.nullable(),
|
|
17335
|
+
capabilities: computerCapabilityCard,
|
|
17295
17336
|
runtime: jsonObject
|
|
17296
17337
|
}),
|
|
17297
17338
|
computer_reprovision: exports_external.looseObject({
|
|
@@ -17316,11 +17357,13 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17316
17357
|
strict: exports_external.boolean()
|
|
17317
17358
|
}),
|
|
17318
17359
|
computer_status: exports_external.looseObject({
|
|
17319
|
-
|
|
17320
|
-
|
|
17321
|
-
|
|
17322
|
-
|
|
17323
|
-
profile: computerProfile.nullable()
|
|
17360
|
+
computerSessionId: id,
|
|
17361
|
+
computerId: id,
|
|
17362
|
+
status: exports_external.enum(["running", "dormant"]),
|
|
17363
|
+
backend: exports_external.enum(["worker-shell", "container"]),
|
|
17364
|
+
profile: computerProfile.nullable(),
|
|
17365
|
+
capabilities: computerCapabilityCard,
|
|
17366
|
+
runtime: jsonObject
|
|
17324
17367
|
}),
|
|
17325
17368
|
computer_verify: exports_external.looseObject({
|
|
17326
17369
|
passed: exports_external.literal(true),
|
|
@@ -17427,7 +17470,47 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17427
17470
|
warnings: exports_external.array(exports_external.string()),
|
|
17428
17471
|
replayed: exports_external.boolean()
|
|
17429
17472
|
}),
|
|
17430
|
-
computer_stop: exports_external.looseObject({ checkpoint, stopped: jsonObject })
|
|
17473
|
+
computer_stop: exports_external.looseObject({ checkpoint, stopped: jsonObject }),
|
|
17474
|
+
code_symbols: exports_external.looseObject({
|
|
17475
|
+
computerSessionId: id,
|
|
17476
|
+
path: exports_external.string(),
|
|
17477
|
+
symbols: exports_external.array(codeSymbol)
|
|
17478
|
+
}),
|
|
17479
|
+
code_find_symbol: exports_external.looseObject({
|
|
17480
|
+
computerSessionId: id,
|
|
17481
|
+
namePath: exports_external.string(),
|
|
17482
|
+
symbols: exports_external.array(codeSymbol)
|
|
17483
|
+
}),
|
|
17484
|
+
code_references: exports_external.looseObject({
|
|
17485
|
+
computerSessionId: id,
|
|
17486
|
+
namePath: exports_external.string(),
|
|
17487
|
+
path: exports_external.string(),
|
|
17488
|
+
references: exports_external.array(exports_external.looseObject({
|
|
17489
|
+
path: exports_external.string(),
|
|
17490
|
+
namePath: exports_external.string().optional(),
|
|
17491
|
+
startLine: exports_external.number().optional(),
|
|
17492
|
+
snippet: exports_external.string().optional()
|
|
17493
|
+
})),
|
|
17494
|
+
truncated: exports_external.boolean()
|
|
17495
|
+
}),
|
|
17496
|
+
code_implementations: exports_external.looseObject({
|
|
17497
|
+
computerSessionId: id,
|
|
17498
|
+
namePath: exports_external.string(),
|
|
17499
|
+
path: exports_external.string(),
|
|
17500
|
+
symbols: exports_external.array(codeSymbol)
|
|
17501
|
+
}),
|
|
17502
|
+
code_diagnostics: exports_external.looseObject({
|
|
17503
|
+
computerSessionId: id,
|
|
17504
|
+
path: exports_external.string(),
|
|
17505
|
+
diagnostics: exports_external.array(exports_external.looseObject({
|
|
17506
|
+
severity: exports_external.enum(["error", "warning", "information", "hint"]),
|
|
17507
|
+
message: exports_external.string(),
|
|
17508
|
+
path: exports_external.string(),
|
|
17509
|
+
startLine: exports_external.number().optional(),
|
|
17510
|
+
namePath: exports_external.string().optional()
|
|
17511
|
+
})),
|
|
17512
|
+
truncated: exports_external.boolean()
|
|
17513
|
+
})
|
|
17431
17514
|
};
|
|
17432
17515
|
function outputSchemaFor(actionName) {
|
|
17433
17516
|
return MCP_OUTPUT_SCHEMAS[actionName];
|
|
@@ -17551,10 +17634,17 @@ var MCP_TOOL_ANNOTATIONS = {
|
|
|
17551
17634
|
app_restore_state: destructiveIdempotent,
|
|
17552
17635
|
app_archive: additive,
|
|
17553
17636
|
charter: destructive,
|
|
17637
|
+
github_repositories: readOnly,
|
|
17638
|
+
github_connect_repository: idempotent,
|
|
17554
17639
|
computer_open: additive,
|
|
17555
17640
|
computer_reprovision: destructiveIdempotent,
|
|
17556
17641
|
computer_exec: destructiveOpenWorld,
|
|
17557
17642
|
computer_status: readOnly,
|
|
17643
|
+
code_symbols: readOnly,
|
|
17644
|
+
code_find_symbol: readOnly,
|
|
17645
|
+
code_references: readOnly,
|
|
17646
|
+
code_implementations: readOnly,
|
|
17647
|
+
code_diagnostics: readOnly,
|
|
17558
17648
|
computer_verify: openWorld,
|
|
17559
17649
|
computer_read: readOnly,
|
|
17560
17650
|
computer_export: idempotent,
|
|
@@ -17635,23 +17725,23 @@ var ACTION_DEFINITIONS = [
|
|
|
17635
17725
|
{
|
|
17636
17726
|
name: "github_repositories",
|
|
17637
17727
|
title: "List installed GitHub repositories",
|
|
17638
|
-
description: "List repositories projected from this organization's verified Arbor Computer GitHub App installation. This returns repository ids and metadata, never credentials; use the id with github_connect_repository.",
|
|
17728
|
+
description: "READ ONLY: List repositories projected from this organization's verified Arbor Computer GitHub App installation. This returns repository ids and metadata, never credentials; use the id with github_connect_repository.",
|
|
17639
17729
|
inputSchema: { ...PAGINATION_INPUT },
|
|
17640
|
-
surfaces: ["cli"],
|
|
17730
|
+
surfaces: ["mcp", "cli"],
|
|
17641
17731
|
toolset: "admin",
|
|
17642
17732
|
run: forward("github.repositories")
|
|
17643
17733
|
},
|
|
17644
17734
|
{
|
|
17645
17735
|
name: "github_connect_repository",
|
|
17646
17736
|
title: "Connect a GitHub repository",
|
|
17647
|
-
description: "Connect or disconnect one installed GitHub repository at an Arbor organization, Space, Topic, or Thread. This explicit, recoverable connection is required before Arbor may use private repository context there; it does not grant an agent a Git credential.",
|
|
17737
|
+
description: "Connect or disconnect one installed GitHub repository at an Arbor organization, Space, Topic, or Thread. This explicit, recoverable connection is required before Arbor may use private repository context there; it does not grant an agent a Git credential. THE SCOPE IS THE DECISION: a Computer recipe only NAMES repositories, and a Thread materializes one only when a connection at its own scope or an ANCESTOR authorizes it — so connect at the Topic that owns the project and every Thread opened under it inherits the environment, while connecting at a single Thread authorizes that Thread alone and no sibling. Read get_computer's repositoryAuthorization to see which scope currently grants each configured repository. Owner/admin only.",
|
|
17648
17738
|
inputSchema: {
|
|
17649
17739
|
repositoryId: exports_external.string().describe("installed repository id from github_repositories, ghr_…"),
|
|
17650
|
-
scope: exports_external.enum(["organization", "space", "topic", "thread"]).describe("the Arbor scope that may use this repository's context"),
|
|
17740
|
+
scope: exports_external.enum(["organization", "space", "topic", "thread"]).describe("the Arbor scope that may use this repository's context; topic is the durable choice for a project every Thread under it develops"),
|
|
17651
17741
|
scopeId: exports_external.string().describe("id matching the selected scope"),
|
|
17652
17742
|
connected: exports_external.boolean().describe("true to connect; false to disconnect recoverably")
|
|
17653
17743
|
},
|
|
17654
|
-
surfaces: ["cli"],
|
|
17744
|
+
surfaces: ["mcp", "cli"],
|
|
17655
17745
|
toolset: "admin",
|
|
17656
17746
|
run: forward("github.set_repository_connection")
|
|
17657
17747
|
},
|
|
@@ -17928,7 +18018,7 @@ var ACTION_DEFINITIONS = [
|
|
|
17928
18018
|
{
|
|
17929
18019
|
name: "computer_open",
|
|
17930
18020
|
title: "Open a Thread computer",
|
|
17931
|
-
description: "Open or resume this Thread's project environment for filesystem or command work. Every configured repository is re-authorized through its explicit GitHub connection; a fresh reusable base clones it with a request-scoped contents:read credential before strict setup runs, while a restore receives no credential. Returns computerSessionId and the selected profile contract
|
|
18021
|
+
description: "Open or resume this Thread's project environment for filesystem or command work. Every configured repository is re-authorized through its explicit GitHub connection; a fresh reusable base clones it with a request-scoped contents:read credential before strict setup runs, while a restore receives no credential. Returns computerSessionId — pass it unchanged to later Computer tools and cited work — plus the selected profile contract and a resolved capabilities card naming what this computer can do, each entry ready (usable now) or available (starts on demand).",
|
|
17932
18022
|
inputSchema: {
|
|
17933
18023
|
threadId: exports_external.string().describe("the Arbor Thread whose stable computer to open, thr_…"),
|
|
17934
18024
|
vcpus: exports_external.number().int().min(1).max(4).optional().describe("optional container vCPU request"),
|
|
@@ -17970,7 +18060,7 @@ var ACTION_DEFINITIONS = [
|
|
|
17970
18060
|
{
|
|
17971
18061
|
name: "computer_status",
|
|
17972
18062
|
title: "Inspect a computer",
|
|
17973
|
-
description: "READ ONLY: Read live Currybox process/runtime status and the declared container profile contract for
|
|
18063
|
+
description: "READ ONLY: Read what this computer can do right now — the same resolved capabilities card computer_open returns, each entry ready or available — plus live Currybox process/runtime status and the declared container profile contract. Reach for it when you are unsure whether a capability — background processes, semantic code intelligence, Preview publication — is usable on this session. This cannot modify files, processes, checkpoints, or Thread state; use get_computer on the Arbor surface for durable config and snapshot lineage.",
|
|
17974
18064
|
inputSchema: {
|
|
17975
18065
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…")
|
|
17976
18066
|
},
|
|
@@ -17990,6 +18080,71 @@ var ACTION_DEFINITIONS = [
|
|
|
17990
18080
|
toolset: "loop",
|
|
17991
18081
|
run: forward("computer_runtime.verify")
|
|
17992
18082
|
},
|
|
18083
|
+
{
|
|
18084
|
+
name: "code_symbols",
|
|
18085
|
+
title: "Outline a file's symbols",
|
|
18086
|
+
description: "Outline the symbols a file or directory defines, resolved by the project's language server. Reach for this before reading a large unfamiliar file — unlike a grep through `computer_exec`, it returns the real declarations with their kinds rather than every textual match. Needs the semantic-code capability shown on the computer_status card.",
|
|
18087
|
+
inputSchema: {
|
|
18088
|
+
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18089
|
+
path: exports_external.string().max(512).describe("file or directory, absolute under /workspace or workspace-relative")
|
|
18090
|
+
},
|
|
18091
|
+
surfaces: ["computer-mcp", "computer-cli"],
|
|
18092
|
+
toolset: "loop",
|
|
18093
|
+
run: forward("computer_code.symbols")
|
|
18094
|
+
},
|
|
18095
|
+
{
|
|
18096
|
+
name: "code_find_symbol",
|
|
18097
|
+
title: "Find a symbol by name path",
|
|
18098
|
+
description: "Locate a declaration by its name path (`ClassName/methodName`) and optionally return its body. Use it instead of a `computer_exec` grep when you want THE definition rather than every line mentioning the name; the language server distinguishes the declaration from its call sites and its string occurrences. Needs the semantic-code capability shown on the computer_status card.",
|
|
18099
|
+
inputSchema: {
|
|
18100
|
+
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18101
|
+
namePath: exports_external.string().min(1).max(200).describe("symbol name path within a file, e.g. MyClass/myMethod"),
|
|
18102
|
+
path: exports_external.string().max(512).optional().describe("optional file or directory to restrict the search to"),
|
|
18103
|
+
includeBody: exports_external.boolean().optional().describe("include each symbol's source body"),
|
|
18104
|
+
depth: exports_external.number().int().min(0).max(3).optional().describe("how many levels of children to include (default 0)")
|
|
18105
|
+
},
|
|
18106
|
+
surfaces: ["computer-mcp", "computer-cli"],
|
|
18107
|
+
toolset: "loop",
|
|
18108
|
+
run: forward("computer_code.find_symbol")
|
|
18109
|
+
},
|
|
18110
|
+
{
|
|
18111
|
+
name: "code_references",
|
|
18112
|
+
title: "Find what references a symbol",
|
|
18113
|
+
description: 'List the places that actually reference a symbol, each with a short snippet. This is the operation `computer_exec` cannot do: a text search finds the same identifier in comments, unrelated modules, and shadowed scopes, while the language server resolves real references — so it answers "is this safe to change". Needs the semantic-code capability shown on the computer_status card.',
|
|
18114
|
+
inputSchema: {
|
|
18115
|
+
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18116
|
+
namePath: exports_external.string().min(1).max(200).describe("name path of the symbol to trace"),
|
|
18117
|
+
path: exports_external.string().max(512).describe("the file declaring that symbol, absolute under /workspace or workspace-relative")
|
|
18118
|
+
},
|
|
18119
|
+
surfaces: ["computer-mcp", "computer-cli"],
|
|
18120
|
+
toolset: "loop",
|
|
18121
|
+
run: forward("computer_code.references")
|
|
18122
|
+
},
|
|
18123
|
+
{
|
|
18124
|
+
name: "code_implementations",
|
|
18125
|
+
title: "Find implementations of a symbol",
|
|
18126
|
+
description: "List the concrete implementations or subtypes of an interface, abstract type, or method. A `computer_exec` search cannot follow a type relationship — only the language server knows which declarations satisfy this one. Needs the semantic-code capability shown on the computer_status card.",
|
|
18127
|
+
inputSchema: {
|
|
18128
|
+
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18129
|
+
namePath: exports_external.string().min(1).max(200).describe("name path of the interface, type, or method"),
|
|
18130
|
+
path: exports_external.string().max(512).describe("the file declaring that symbol, absolute under /workspace or workspace-relative")
|
|
18131
|
+
},
|
|
18132
|
+
surfaces: ["computer-mcp", "computer-cli"],
|
|
18133
|
+
toolset: "loop",
|
|
18134
|
+
run: forward("computer_code.implementations")
|
|
18135
|
+
},
|
|
18136
|
+
{
|
|
18137
|
+
name: "code_diagnostics",
|
|
18138
|
+
title: "Read language-server diagnostics for a file",
|
|
18139
|
+
description: "Return the language server's live errors and warnings for one file, mapped to symbols. Reach for it on a file you just edited: it answers in seconds without the whole-project build a `computer_exec` typecheck runs, though a green result here is not a substitute for that build. Needs the semantic-code capability shown on the computer_status card.",
|
|
18140
|
+
inputSchema: {
|
|
18141
|
+
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18142
|
+
path: exports_external.string().max(512).describe("the file to inspect, absolute under /workspace or workspace-relative")
|
|
18143
|
+
},
|
|
18144
|
+
surfaces: ["computer-mcp", "computer-cli"],
|
|
18145
|
+
toolset: "loop",
|
|
18146
|
+
run: forward("computer_code.diagnostics")
|
|
18147
|
+
},
|
|
17993
18148
|
{
|
|
17994
18149
|
name: "computer_read",
|
|
17995
18150
|
title: "Read a project file",
|
package/package.json
CHANGED