@lambdacurry/arbor 0.17.4 → 0.17.6
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 +14 -153
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -16678,6 +16678,7 @@ var redactedComputerRecipe = exports_external.looseObject({
|
|
|
16678
16678
|
provider: exports_external.string(),
|
|
16679
16679
|
backend: exports_external.enum(["worker-shell", "container"]),
|
|
16680
16680
|
containerProfile: nullableString,
|
|
16681
|
+
containerProfileRevision: exports_external.number().int().nullable(),
|
|
16681
16682
|
repositories: exports_external.array(exports_external.string()),
|
|
16682
16683
|
setupScriptConfigured: exports_external.boolean(),
|
|
16683
16684
|
configRevision: exports_external.string(),
|
|
@@ -17345,7 +17346,13 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17345
17346
|
repositories: exports_external.array(exports_external.looseObject({ repository: exports_external.string(), path: exports_external.string() })),
|
|
17346
17347
|
defaultCwd: exports_external.string(),
|
|
17347
17348
|
capabilities: computerCapabilityCard,
|
|
17348
|
-
runtime: jsonObject
|
|
17349
|
+
runtime: jsonObject,
|
|
17350
|
+
reconciliation: exports_external.looseObject({
|
|
17351
|
+
action: exports_external.literal("automatic_reprovision"),
|
|
17352
|
+
reason: exports_external.literal("container_profile_revision"),
|
|
17353
|
+
fromContainerProfileRevision: exports_external.number().int().nullable(),
|
|
17354
|
+
toContainerProfileRevision: exports_external.number().int().nullable()
|
|
17355
|
+
}).optional()
|
|
17349
17356
|
}),
|
|
17350
17357
|
computer_reprovision: exports_external.looseObject({
|
|
17351
17358
|
reprovisionId: id,
|
|
@@ -17415,11 +17422,6 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17415
17422
|
sha256: exports_external.string()
|
|
17416
17423
|
})
|
|
17417
17424
|
}),
|
|
17418
|
-
computer_read: exports_external.looseObject({
|
|
17419
|
-
content: exports_external.string(),
|
|
17420
|
-
size: exports_external.number().optional(),
|
|
17421
|
-
encoding: exports_external.string().optional()
|
|
17422
|
-
}),
|
|
17423
17425
|
computer_export: exports_external.looseObject({
|
|
17424
17426
|
computerSessionId: id,
|
|
17425
17427
|
replayed: exports_external.boolean(),
|
|
@@ -17431,56 +17433,6 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17431
17433
|
path: exports_external.string().optional(),
|
|
17432
17434
|
size: exports_external.number().optional()
|
|
17433
17435
|
}),
|
|
17434
|
-
computer_clone: exports_external.looseObject({
|
|
17435
|
-
ok: exports_external.literal(true),
|
|
17436
|
-
operation: exports_external.literal("clone"),
|
|
17437
|
-
repository: exports_external.string(),
|
|
17438
|
-
dir: exports_external.string(),
|
|
17439
|
-
credential: exports_external.literal("caller"),
|
|
17440
|
-
branch: exports_external.string().optional(),
|
|
17441
|
-
head: exports_external.string().optional(),
|
|
17442
|
-
refs: exports_external.array(exports_external.string()).optional()
|
|
17443
|
-
}),
|
|
17444
|
-
computer_fetch: exports_external.looseObject({
|
|
17445
|
-
ok: exports_external.literal(true),
|
|
17446
|
-
operation: exports_external.literal("fetch"),
|
|
17447
|
-
repository: exports_external.string(),
|
|
17448
|
-
dir: exports_external.string(),
|
|
17449
|
-
credential: exports_external.enum(["caller", "arbor-managed"]),
|
|
17450
|
-
branch: exports_external.string().optional(),
|
|
17451
|
-
head: exports_external.string().optional(),
|
|
17452
|
-
fetchHead: exports_external.string().optional(),
|
|
17453
|
-
refs: exports_external.array(exports_external.string()).optional()
|
|
17454
|
-
}),
|
|
17455
|
-
computer_pull: exports_external.looseObject({
|
|
17456
|
-
ok: exports_external.literal(true),
|
|
17457
|
-
operation: exports_external.literal("pull"),
|
|
17458
|
-
repository: exports_external.string(),
|
|
17459
|
-
dir: exports_external.string(),
|
|
17460
|
-
credential: exports_external.enum(["caller", "arbor-managed"]),
|
|
17461
|
-
branch: exports_external.string().optional(),
|
|
17462
|
-
head: exports_external.string().optional(),
|
|
17463
|
-
before: exports_external.string().optional(),
|
|
17464
|
-
after: exports_external.string().optional(),
|
|
17465
|
-
fetchHead: exports_external.string().optional(),
|
|
17466
|
-
refs: exports_external.array(exports_external.string()).optional(),
|
|
17467
|
-
remoteTracking: exports_external.union([
|
|
17468
|
-
exports_external.looseObject({ updated: exports_external.literal(true), ref: exports_external.string(), head: exports_external.string() }),
|
|
17469
|
-
exports_external.looseObject({ updated: exports_external.literal(false), reason: exports_external.literal("untracked_workspace") })
|
|
17470
|
-
])
|
|
17471
|
-
}),
|
|
17472
|
-
computer_push: exports_external.looseObject({
|
|
17473
|
-
ok: exports_external.literal(true),
|
|
17474
|
-
operation: exports_external.literal("push"),
|
|
17475
|
-
repository: exports_external.string(),
|
|
17476
|
-
dir: exports_external.string(),
|
|
17477
|
-
credential: exports_external.enum(["caller", "github-user"]),
|
|
17478
|
-
branch: exports_external.string().optional(),
|
|
17479
|
-
head: exports_external.string().optional(),
|
|
17480
|
-
before: exports_external.string().optional(),
|
|
17481
|
-
after: exports_external.string().optional(),
|
|
17482
|
-
refs: exports_external.array(exports_external.string()).optional()
|
|
17483
|
-
}),
|
|
17484
17436
|
computer_checkpoint: checkpoint,
|
|
17485
17437
|
computer_publish_preview: exports_external.looseObject({
|
|
17486
17438
|
previewId: id,
|
|
@@ -17595,12 +17547,6 @@ var destructiveOpenWorld = {
|
|
|
17595
17547
|
idempotentHint: false,
|
|
17596
17548
|
openWorldHint: true
|
|
17597
17549
|
};
|
|
17598
|
-
var idempotentOpenWorld = {
|
|
17599
|
-
readOnlyHint: false,
|
|
17600
|
-
destructiveHint: false,
|
|
17601
|
-
idempotentHint: true,
|
|
17602
|
-
openWorldHint: true
|
|
17603
|
-
};
|
|
17604
17550
|
var MCP_TOOL_ANNOTATIONS = {
|
|
17605
17551
|
server_info: readOnly,
|
|
17606
17552
|
recall: readOnly,
|
|
@@ -17684,13 +17630,8 @@ var MCP_TOOL_ANNOTATIONS = {
|
|
|
17684
17630
|
code_implementations: readOnly,
|
|
17685
17631
|
code_diagnostics: readOnly,
|
|
17686
17632
|
computer_verify: openWorld,
|
|
17687
|
-
computer_read: readOnly,
|
|
17688
17633
|
computer_export: idempotent,
|
|
17689
17634
|
computer_write: destructive,
|
|
17690
|
-
computer_clone: idempotentOpenWorld,
|
|
17691
|
-
computer_fetch: idempotentOpenWorld,
|
|
17692
|
-
computer_pull: destructiveOpenWorld,
|
|
17693
|
-
computer_push: destructiveOpenWorld,
|
|
17694
17635
|
computer_checkpoint: additive,
|
|
17695
17636
|
computer_publish_preview: idempotent,
|
|
17696
17637
|
computer_publish_app_bundle: idempotent,
|
|
@@ -18056,7 +17997,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18056
17997
|
{
|
|
18057
17998
|
name: "computer_open",
|
|
18058
17999
|
title: "Open a Thread computer",
|
|
18059
|
-
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 (including GitHub CLI (gh) on bun-typescript-v1), a resolved capabilities card, workspaceRoot, each materialized repositories[].path, and defaultCwd. Omitted computer_exec.cwd uses defaultCwd: the single checkout when exactly one repository is configured, workspaceRoot otherwise.",
|
|
18000
|
+
description: "Open or resume this Thread's project environment for filesystem or command work. A safe living-profile revision drift is reconciled automatically by replacing the generation, restoring supported state, and returning reconciliation metadata; structural recipe changes still fail explicitly with computer_reprovision as the suggested action. 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 (including GitHub CLI (gh) on bun-typescript-v1), a resolved capabilities card, workspaceRoot, each materialized repositories[].path, and defaultCwd. Omitted computer_exec.cwd uses defaultCwd: the single checkout when exactly one repository is configured, workspaceRoot otherwise.",
|
|
18060
18001
|
inputSchema: {
|
|
18061
18002
|
threadId: exports_external.string().describe("the Arbor Thread whose stable computer to open, thr_…"),
|
|
18062
18003
|
vcpus: exports_external.number().int().min(1).max(4).optional().describe("optional container vCPU request"),
|
|
@@ -18208,18 +18149,6 @@ var ACTION_DEFINITIONS = [
|
|
|
18208
18149
|
toolset: "loop",
|
|
18209
18150
|
run: forward("computer_code.diagnostics")
|
|
18210
18151
|
},
|
|
18211
|
-
{
|
|
18212
|
-
name: "computer_read",
|
|
18213
|
-
title: "Read a project file",
|
|
18214
|
-
description: "Read one file from the opened computer when command output is the wrong shape. Paths must stay under /workspace.",
|
|
18215
|
-
inputSchema: {
|
|
18216
|
-
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18217
|
-
path: exports_external.string().describe("absolute path under /workspace")
|
|
18218
|
-
},
|
|
18219
|
-
surfaces: ["computer-mcp", "computer-cli"],
|
|
18220
|
-
toolset: "loop",
|
|
18221
|
-
run: forward("computer_runtime.read")
|
|
18222
|
-
},
|
|
18223
18152
|
{
|
|
18224
18153
|
name: "computer_export",
|
|
18225
18154
|
title: "Export a Thread file",
|
|
@@ -18248,81 +18177,10 @@ var ACTION_DEFINITIONS = [
|
|
|
18248
18177
|
toolset: "loop",
|
|
18249
18178
|
run: forward("computer_runtime.write")
|
|
18250
18179
|
},
|
|
18251
|
-
{
|
|
18252
|
-
name: "computer_clone",
|
|
18253
|
-
title: "Clone an allowed repository",
|
|
18254
|
-
description: "Clone a repository named by the resolved computer recipe, supplying the working collaborator's GitHub token just in time. The token is spent only on this call and is neither returned nor persisted in the workspace.",
|
|
18255
|
-
inputSchema: {
|
|
18256
|
-
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18257
|
-
repository: exports_external.string().describe("allowed owner/repository slug"),
|
|
18258
|
-
githubToken: exports_external.string().min(1).describe("short-lived GitHub token supplied by the caller"),
|
|
18259
|
-
githubUsername: exports_external.string().optional().describe("GitHub username; defaults to x-access-token")
|
|
18260
|
-
},
|
|
18261
|
-
surfaces: ["computer-mcp", "computer-cli"],
|
|
18262
|
-
toolset: "loop",
|
|
18263
|
-
run: forward("computer_runtime.clone")
|
|
18264
|
-
},
|
|
18265
|
-
{
|
|
18266
|
-
name: "computer_sync",
|
|
18267
|
-
title: "Sync an allowed repository",
|
|
18268
|
-
description: "Fetch, fast-forward pull, or push the checked-out branch of a cloned recipe repository. OMIT githubToken to refresh a repository named in this computer's effective recipe with Arbor's own managed credential — Arbor rechecks the repository connection and mints a request-scoped one-repository read credential server-side, so a restored computer can reach current history with no token of yours. Managed refresh covers fetch and pull; push writes to GitHub, so omit githubToken there to push as the signed-in human's GitHub identity connected in Account Settings, or supply your just-in-time collaborator token as an override. The lightweight Computer fixes the allowlisted GitHub URL, never force-pushes or deletes refs, and neither stores nor returns either credential.",
|
|
18269
|
-
inputSchema: {
|
|
18270
|
-
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18271
|
-
repository: exports_external.string().describe("allowed owner/repository slug already cloned by computer_clone"),
|
|
18272
|
-
operation: exports_external.enum(["fetch", "pull", "push"]).describe("network operation to perform"),
|
|
18273
|
-
githubToken: exports_external.string().min(1).optional().describe("short-lived collaborator GitHub token; omit for fetch/pull to use Arbor's managed read credential, or for push to use the signed-in human's connected GitHub identity"),
|
|
18274
|
-
githubUsername: exports_external.string().optional().describe("GitHub username for a supplied githubToken; defaults to x-access-token")
|
|
18275
|
-
},
|
|
18276
|
-
surfaces: ["computer-cli"],
|
|
18277
|
-
toolset: "loop",
|
|
18278
|
-
run: forward("computer_runtime.sync")
|
|
18279
|
-
},
|
|
18280
|
-
{
|
|
18281
|
-
name: "computer_fetch",
|
|
18282
|
-
title: "Fetch an allowed repository",
|
|
18283
|
-
description: `Fetch remote refs for a cloned recipe repository without changing its checked-out branch or any remote ref. OMIT githubToken and Arbor refreshes it for you: it rechecks that the repository is in this computer's effective recipe and still connected, mints a request-scoped one-repository read credential server-side, spends it on this fetch alone, and returns credential: "arbor-managed" — this is the way a RESTORED computer, which deliberately holds no credential, catches up with the remote. Supply githubToken instead to fetch as the collaborator. Neither credential is stored or returned.`,
|
|
18284
|
-
inputSchema: {
|
|
18285
|
-
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18286
|
-
repository: exports_external.string().describe("allowed owner/repository slug already cloned"),
|
|
18287
|
-
githubToken: exports_external.string().min(1).optional().describe("short-lived collaborator GitHub token; omit to use Arbor's managed recipe credential"),
|
|
18288
|
-
githubUsername: exports_external.string().optional().describe("GitHub username for a supplied githubToken; defaults to x-access-token")
|
|
18289
|
-
},
|
|
18290
|
-
surfaces: ["computer-mcp"],
|
|
18291
|
-
toolset: "loop",
|
|
18292
|
-
run: (ex, input) => ex.call("computer_runtime.sync", { ...input, operation: "fetch" })
|
|
18293
|
-
},
|
|
18294
|
-
{
|
|
18295
|
-
name: "computer_pull",
|
|
18296
|
-
title: "Fast-forward an allowed repository",
|
|
18297
|
-
description: "Fetch and fast-forward the checked-out branch of a cloned recipe repository; divergent history, a dirty working tree, and anything needing a merge are rejected rather than forced. A returned pull also PROVES the branch's remote-tracking ref reached the fetched tip and reports it as remoteTracking, so ordinary `git status` and `git log origin/<branch>` stay true instead of showing a level checkout as ahead; if that cannot be proven the call fails as retryable with the landed fast-forward attached, rather than reporting a truthful pull it did not verify. remoteTracking.updated is false only when the checked-out branch does not track this repository at all. OMIT githubToken and Arbor pulls with its own managed recipe credential after rechecking the repository connection — the way a restored computer reaches current history. Supply githubToken instead to pull as the collaborator. Neither credential is stored or returned.",
|
|
18298
|
-
inputSchema: {
|
|
18299
|
-
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18300
|
-
repository: exports_external.string().describe("allowed owner/repository slug already cloned"),
|
|
18301
|
-
githubToken: exports_external.string().min(1).optional().describe("short-lived collaborator GitHub token; omit to use Arbor's managed recipe credential"),
|
|
18302
|
-
githubUsername: exports_external.string().optional().describe("GitHub username for a supplied githubToken; defaults to x-access-token")
|
|
18303
|
-
},
|
|
18304
|
-
surfaces: ["computer-mcp"],
|
|
18305
|
-
toolset: "loop",
|
|
18306
|
-
run: (ex, input) => ex.call("computer_runtime.sync", { ...input, operation: "pull" })
|
|
18307
|
-
},
|
|
18308
|
-
{
|
|
18309
|
-
name: "computer_push",
|
|
18310
|
-
title: "Push an allowed repository",
|
|
18311
|
-
description: "Push the checked-out branch to its fixed allowlisted GitHub repository without force-pushing or deleting refs. OMIT githubToken to use the signed-in human's GitHub connection from Account Settings; Arbor refreshes that GitHub App user credential server-side and never returns or persists it in the Computer. Supply githubToken only for an explicit caller credential override.",
|
|
18312
|
-
inputSchema: {
|
|
18313
|
-
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18314
|
-
repository: exports_external.string().describe("allowed owner/repository slug already cloned"),
|
|
18315
|
-
githubToken: exports_external.string().min(1).optional().describe("optional short-lived GitHub token override; omit to use your connected GitHub identity"),
|
|
18316
|
-
githubUsername: exports_external.string().optional().describe("GitHub username for a supplied githubToken; omit for your connected GitHub identity")
|
|
18317
|
-
},
|
|
18318
|
-
surfaces: ["computer-mcp"],
|
|
18319
|
-
toolset: "loop",
|
|
18320
|
-
run: (ex, input) => ex.call("computer_runtime.sync", { ...input, operation: "push" })
|
|
18321
|
-
},
|
|
18322
18180
|
{
|
|
18323
18181
|
name: "computer_checkpoint",
|
|
18324
18182
|
title: "Checkpoint completed work",
|
|
18325
|
-
description: "Save an intermediate complete unit of project work into durable Thread lineage. For the final unit, call computer_stop instead; it performs the final checkpoint before teardown. No checkpoint is needed for computer_verify alone because remote visual capture starts no project runtime.",
|
|
18183
|
+
description: "Save an intermediate complete unit of project work into durable Thread lineage. A running background process may still be writing the workspace, so checkpointing refuses until it is finished or explicitly terminated; use computer_status to inspect active processes. For the final unit, call computer_stop instead; it performs the final checkpoint before teardown. No checkpoint is needed for computer_verify alone because remote visual capture starts no project runtime.",
|
|
18326
18184
|
inputSchema: {
|
|
18327
18185
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…")
|
|
18328
18186
|
},
|
|
@@ -18369,7 +18227,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18369
18227
|
{
|
|
18370
18228
|
name: "computer_stop",
|
|
18371
18229
|
title: "Checkpoint and stop",
|
|
18372
|
-
description: "Finish an opened computer after a unit of work. Currybox checkpoints and Arbor publishes before teardown; any durability failure refuses the stop instead of silently discarding state.",
|
|
18230
|
+
description: "Finish an opened computer after a unit of work. Currybox checkpoints and Arbor publishes before teardown; any durability failure refuses the stop instead of silently discarding state. A running background process also refuses the checkpoint; use computer_status to inspect it and computer_process_terminate when it should be stopped.",
|
|
18373
18231
|
inputSchema: {
|
|
18374
18232
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…")
|
|
18375
18233
|
},
|
|
@@ -19921,6 +19779,9 @@ function parseErrorDetails(value) {
|
|
|
19921
19779
|
if (typeof raw.compatibilityState === "string") {
|
|
19922
19780
|
details.compatibilityState = raw.compatibilityState;
|
|
19923
19781
|
}
|
|
19782
|
+
if (typeof raw.compatibilityReason === "string") {
|
|
19783
|
+
details.compatibilityReason = raw.compatibilityReason;
|
|
19784
|
+
}
|
|
19924
19785
|
if (typeof raw.suggestedAction === "string")
|
|
19925
19786
|
details.suggestedAction = raw.suggestedAction;
|
|
19926
19787
|
return details;
|
package/package.json
CHANGED