@lambdacurry/arbor 0.13.9 → 0.14.0
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 +68 -7
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -1810,6 +1810,9 @@ var appBundles = sqliteTable("app_bundles", {
|
|
|
1810
1810
|
modules: text("modules", { mode: "json" }).$type().notNull(),
|
|
1811
1811
|
staticAssets: text("static_assets", { mode: "json" }).$type().notNull(),
|
|
1812
1812
|
buildProvenance: text("build_provenance", { mode: "json" }).$type(),
|
|
1813
|
+
sourceProvenance: text("source_provenance", {
|
|
1814
|
+
mode: "json"
|
|
1815
|
+
}).$type(),
|
|
1813
1816
|
runtimeEntrypoint: text("runtime_entrypoint").$type().notNull(),
|
|
1814
1817
|
capabilityRequirements: text("capability_requirements", { mode: "json" }).$type().notNull().default([]),
|
|
1815
1818
|
stateSchemaVersion: integer("state_schema_version").notNull().default(0),
|
|
@@ -1835,6 +1838,7 @@ var apps = sqliteTable("apps", {
|
|
|
1835
1838
|
orgId: text("org_id").notNull().references(() => orgs.id),
|
|
1836
1839
|
spaceId: text("space_id").notNull().references(() => spaces.id),
|
|
1837
1840
|
title: text("title").notNull(),
|
|
1841
|
+
description: text("description").notNull().default(""),
|
|
1838
1842
|
slug: text("slug").notNull(),
|
|
1839
1843
|
lifecycle: text("lifecycle").$type().notNull().default("active"),
|
|
1840
1844
|
access: text("access").$type().notNull(),
|
|
@@ -16534,6 +16538,29 @@ var checkpoint = exports_external.looseObject({
|
|
|
16534
16538
|
backup: exports_external.string(),
|
|
16535
16539
|
published: jsonObject
|
|
16536
16540
|
});
|
|
16541
|
+
var computerProfile = exports_external.looseObject({
|
|
16542
|
+
id: exports_external.string(),
|
|
16543
|
+
version: exports_external.number(),
|
|
16544
|
+
shell: exports_external.string(),
|
|
16545
|
+
runtimes: exports_external.looseObject({ bun: exports_external.string() }),
|
|
16546
|
+
tools: exports_external.array(exports_external.string()),
|
|
16547
|
+
recommendedEditingPrimitive: exports_external.string()
|
|
16548
|
+
});
|
|
16549
|
+
var appBundleSourceProvenance = exports_external.looseObject({
|
|
16550
|
+
entryPath: exports_external.string(),
|
|
16551
|
+
artifactVersionSha256: exports_external.string(),
|
|
16552
|
+
entryPathSha256: exports_external.string(),
|
|
16553
|
+
git: exports_external.looseObject({
|
|
16554
|
+
repositoryRoot: exports_external.string(),
|
|
16555
|
+
head: exports_external.string().nullable(),
|
|
16556
|
+
branch: exports_external.string().nullable(),
|
|
16557
|
+
dirty: exports_external.boolean(),
|
|
16558
|
+
trackedChanges: exports_external.number().int().min(0),
|
|
16559
|
+
untrackedFiles: exports_external.number().int().min(0),
|
|
16560
|
+
entryPathTracked: exports_external.boolean()
|
|
16561
|
+
}).nullable(),
|
|
16562
|
+
warnings: exports_external.array(exports_external.string())
|
|
16563
|
+
});
|
|
16537
16564
|
var profile2 = exports_external.looseObject({
|
|
16538
16565
|
id,
|
|
16539
16566
|
kind: exports_external.string(),
|
|
@@ -16720,6 +16747,10 @@ var paged = (key, item) => exports_external.looseObject({
|
|
|
16720
16747
|
nextCursor: exports_external.string().optional()
|
|
16721
16748
|
});
|
|
16722
16749
|
var MCP_OUTPUT_SCHEMAS = {
|
|
16750
|
+
server_info: exports_external.looseObject({
|
|
16751
|
+
serverVersion: exports_external.string(),
|
|
16752
|
+
deployment: exports_external.looseObject({ id: exports_external.string(), sourceRevision: exports_external.string().nullable(), deployedAt: timestamp }).nullable()
|
|
16753
|
+
}),
|
|
16723
16754
|
recall: exports_external.object({ result: exports_external.array(recallHit) }),
|
|
16724
16755
|
contribute: exports_external.looseObject({
|
|
16725
16756
|
contributionId: id,
|
|
@@ -17011,6 +17042,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17011
17042
|
computerId: id,
|
|
17012
17043
|
computerSessionId: id,
|
|
17013
17044
|
backend: exports_external.enum(["worker-shell", "container"]),
|
|
17045
|
+
profile: computerProfile.nullable(),
|
|
17014
17046
|
startingSnapshot: snapshot.nullable(),
|
|
17015
17047
|
materialized: checkpoint.nullable(),
|
|
17016
17048
|
runtime: jsonObject
|
|
@@ -17020,13 +17052,15 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17020
17052
|
stderr: exports_external.string().optional(),
|
|
17021
17053
|
exitCode: exports_external.number().optional(),
|
|
17022
17054
|
jobId: exports_external.string().optional(),
|
|
17023
|
-
status: exports_external.string().optional()
|
|
17055
|
+
status: exports_external.string().optional(),
|
|
17056
|
+
strict: exports_external.boolean()
|
|
17024
17057
|
}),
|
|
17025
17058
|
computer_status: exports_external.looseObject({
|
|
17026
17059
|
ok: exports_external.boolean().optional(),
|
|
17027
17060
|
status: exports_external.string().optional(),
|
|
17028
17061
|
backend: exports_external.string().optional(),
|
|
17029
|
-
processes: exports_external.array(jsonObject).optional()
|
|
17062
|
+
processes: exports_external.array(jsonObject).optional(),
|
|
17063
|
+
profile: computerProfile.nullable()
|
|
17030
17064
|
}),
|
|
17031
17065
|
computer_verify: exports_external.looseObject({
|
|
17032
17066
|
passed: exports_external.literal(true),
|
|
@@ -17125,6 +17159,8 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17125
17159
|
assetCount: exports_external.number().optional(),
|
|
17126
17160
|
byteCount: exports_external.number().optional(),
|
|
17127
17161
|
buildProvenance: jsonObject,
|
|
17162
|
+
sourceProvenance: appBundleSourceProvenance.nullable(),
|
|
17163
|
+
warnings: exports_external.array(exports_external.string()),
|
|
17128
17164
|
replayed: exports_external.boolean()
|
|
17129
17165
|
}),
|
|
17130
17166
|
computer_stop: exports_external.looseObject({ checkpoint, stopped: jsonObject })
|
|
@@ -17183,6 +17219,7 @@ var idempotentOpenWorld = {
|
|
|
17183
17219
|
openWorldHint: true
|
|
17184
17220
|
};
|
|
17185
17221
|
var MCP_TOOL_ANNOTATIONS = {
|
|
17222
|
+
server_info: readOnly,
|
|
17186
17223
|
recall: readOnly,
|
|
17187
17224
|
contribute: additive,
|
|
17188
17225
|
edit: additive,
|
|
@@ -17319,6 +17356,15 @@ var PAGINATION_INPUT = {
|
|
|
17319
17356
|
cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)")
|
|
17320
17357
|
};
|
|
17321
17358
|
var ACTION_DEFINITIONS = [
|
|
17359
|
+
{
|
|
17360
|
+
name: "server_info",
|
|
17361
|
+
title: "Inspect Arbor server version",
|
|
17362
|
+
description: "READ ONLY: 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.",
|
|
17363
|
+
inputSchema: {},
|
|
17364
|
+
surfaces: ["mcp", "cli", "computer-mcp", "computer-cli"],
|
|
17365
|
+
toolset: "structure",
|
|
17366
|
+
run: forward("server.info")
|
|
17367
|
+
},
|
|
17322
17368
|
{
|
|
17323
17369
|
name: "github_repositories",
|
|
17324
17370
|
title: "List installed GitHub repositories",
|
|
@@ -17588,7 +17634,7 @@ var ACTION_DEFINITIONS = [
|
|
|
17588
17634
|
{
|
|
17589
17635
|
name: "computer_open",
|
|
17590
17636
|
title: "Open a Thread computer",
|
|
17591
|
-
description: "Open or resume this Thread's project environment for filesystem or command work. Returns computerSessionId; pass
|
|
17637
|
+
description: "Open or resume this Thread's project environment for filesystem or command work. Returns computerSessionId and, when a declared container profile is selected, its guaranteed shell/runtimes/tools/editing primitive; pass the session id unchanged to later Computer tools and to Contributions or responses produced from the work.",
|
|
17592
17638
|
inputSchema: {
|
|
17593
17639
|
threadId: exports_external.string().describe("the Arbor Thread whose stable computer to open, thr_…"),
|
|
17594
17640
|
vcpus: exports_external.number().int().min(1).max(4).optional().describe("optional container vCPU request"),
|
|
@@ -17601,13 +17647,14 @@ var ACTION_DEFINITIONS = [
|
|
|
17601
17647
|
{
|
|
17602
17648
|
name: "computer_exec",
|
|
17603
17649
|
title: "Run a command",
|
|
17604
|
-
description: "Run
|
|
17650
|
+
description: "Run one bounded logical operation in an opened Thread computer, normally from /workspace. Strict Bash semantics are ON by default: an early command failure or failed pipeline makes the execution nonzero, while explicit handling such as `cmd || fallback` still works. Set strict=false only for an intentional best-effort script. Use background only for the container backend; worker-shell deliberately serializes mutations and rejects long-lived processes.",
|
|
17605
17651
|
inputSchema: {
|
|
17606
17652
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
17607
17653
|
command: exports_external.string().min(1).describe("the shell command to run"),
|
|
17608
17654
|
cwd: exports_external.string().optional().describe("working directory under /workspace"),
|
|
17609
17655
|
timeout: exports_external.number().int().min(1000).max(1800000).optional().describe("timeout in milliseconds, from 1,000 through 1,800,000"),
|
|
17610
|
-
background: exports_external.boolean().optional().describe("start a container process and return its pid")
|
|
17656
|
+
background: exports_external.boolean().optional().describe("start a container process and return its pid"),
|
|
17657
|
+
strict: exports_external.boolean().optional().describe("fail on the first unhandled command or pipeline failure; defaults to true, set false only for intentional best-effort execution")
|
|
17611
17658
|
},
|
|
17612
17659
|
surfaces: ["computer-mcp", "computer-cli"],
|
|
17613
17660
|
toolset: "loop",
|
|
@@ -17616,7 +17663,7 @@ var ACTION_DEFINITIONS = [
|
|
|
17616
17663
|
{
|
|
17617
17664
|
name: "computer_status",
|
|
17618
17665
|
title: "Inspect a computer",
|
|
17619
|
-
description: "Read live Currybox process and
|
|
17666
|
+
description: "READ ONLY: Read live Currybox process/runtime status and the declared container profile contract for an opened computer. This cannot modify files, processes, checkpoints, or Thread state; use get_computer on the Arbor surface for durable config and snapshot lineage.",
|
|
17620
17667
|
inputSchema: {
|
|
17621
17668
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…")
|
|
17622
17669
|
},
|
|
@@ -17775,7 +17822,7 @@ var ACTION_DEFINITIONS = [
|
|
|
17775
17822
|
{
|
|
17776
17823
|
name: "computer_publish_app_bundle",
|
|
17777
17824
|
title: "Publish an immutable AppBundle",
|
|
17778
|
-
description: "After a Bun container build is green, freeze
|
|
17825
|
+
description: "After a Bun container build is green, verify that entryPath bytes exactly match the referenced ArtifactVersion, capture source hashes plus Git/workspace provenance, then freeze the Worker module and optional static assets into a content-addressed AppBundle. A mismatch is rejected; dirty or untracked source is allowed but returned as an explicit warning. Use the returned bundleId with app_deploy; retries require the same idempotencyKey.",
|
|
17779
17826
|
inputSchema: {
|
|
17780
17827
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
17781
17828
|
artifactVersionId: exports_external.string().describe("the source ArtifactVersion, artv_…"),
|
|
@@ -18834,6 +18881,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18834
18881
|
inputSchema: {
|
|
18835
18882
|
spaceId: exports_external.string().describe("owning Space, spc_…"),
|
|
18836
18883
|
title: exports_external.string().min(1).max(160).describe("short factual App title"),
|
|
18884
|
+
description: exports_external.string().min(1).max(200).describe("one line of what this App is for, read by whoever is deciding whether to open it — not a changelog and not the source Artifact's summary"),
|
|
18837
18885
|
slug: exports_external.string().min(1).max(59).describe("stable DNS label used by app-<slug>.arborthreads.dev"),
|
|
18838
18886
|
access: exports_external.enum(["space", "public"]).describe("space requires membership; public is anonymous at the gateway"),
|
|
18839
18887
|
discovery: exports_external.enum(["unlisted", "listed"]).nullable().optional().describe("public Apps only; default unlisted"),
|
|
@@ -18935,6 +18983,19 @@ var ACTION_DEFINITIONS = [
|
|
|
18935
18983
|
toolset: "apps",
|
|
18936
18984
|
run: forward("app.rollback")
|
|
18937
18985
|
},
|
|
18986
|
+
{
|
|
18987
|
+
name: "app_update",
|
|
18988
|
+
title: "Edit an App's title or description",
|
|
18989
|
+
description: "Change the human-facing metadata a reader sees before opening an App. The description is the one line that answers 'what is this for'; keep it factual and current, because the directory and the App page both lead with it. Slug is deliberately not editable — the URL is the App's stable identity. Access, lifecycle, release, and state each have their own operation.",
|
|
18990
|
+
inputSchema: {
|
|
18991
|
+
appId: exports_external.string().describe("target App, app_…"),
|
|
18992
|
+
title: exports_external.string().min(1).max(160).optional().describe("short factual App title"),
|
|
18993
|
+
description: exports_external.string().min(1).max(200).optional().describe("one line of what this App is for")
|
|
18994
|
+
},
|
|
18995
|
+
surfaces: ["cli"],
|
|
18996
|
+
toolset: "apps",
|
|
18997
|
+
run: forward("app.update")
|
|
18998
|
+
},
|
|
18938
18999
|
{
|
|
18939
19000
|
name: "app_set_access",
|
|
18940
19001
|
title: "Change App access",
|
package/package.json
CHANGED