@lambdacurry/arbor 0.21.24 → 0.21.25
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 +9 -4
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -2434,6 +2434,7 @@ var appBundles = sqliteTable("app_bundles", {
|
|
|
2434
2434
|
capabilityRequirements: text("capability_requirements", { mode: "json" }).$type().notNull().default([]),
|
|
2435
2435
|
runtimeConfigRequirements: text("runtime_config_requirements", { mode: "json" }).$type().notNull().default([]),
|
|
2436
2436
|
protectedIngress: text("protected_ingress", { mode: "json" }).$type().notNull().default([]),
|
|
2437
|
+
roomEntrypoint: text("room_entrypoint", { mode: "json" }).$type(),
|
|
2437
2438
|
stateSchemaVersion: integer("state_schema_version").notNull().default(0),
|
|
2438
2439
|
stateCompatibleFrom: integer("state_compatible_from").notNull().default(0),
|
|
2439
2440
|
stateCompatibleThrough: integer("state_compatible_through").notNull().default(0),
|
|
@@ -2493,6 +2494,7 @@ var apps = sqliteTable("apps", {
|
|
|
2493
2494
|
runtimeHealth: text("runtime_health").$type().notNull().default("unknown"),
|
|
2494
2495
|
runtimeHealthUpdatedAt: ts("runtime_health_updated_at"),
|
|
2495
2496
|
stateMode: text("state_mode").$type().notNull(),
|
|
2497
|
+
roomMode: text("room_mode").$type().notNull().default("none"),
|
|
2496
2498
|
stateIdentity: text("state_identity").notNull(),
|
|
2497
2499
|
stateGeneration: integer("state_generation").notNull().default(0),
|
|
2498
2500
|
pendingStateOperationId: text("pending_state_reset_id"),
|
|
@@ -20028,6 +20030,7 @@ var ACTION_DEFINITIONS = [
|
|
|
20028
20030
|
});
|
|
20029
20031
|
}
|
|
20030
20032
|
}).optional().describe("externally routable protected App paths; v1 supports one MCP route using Arbor OAuth and injects no caller principal into App code"),
|
|
20033
|
+
roomEntrypoint: exports_external.object({ className: exports_external.literal("Room"), protocol: exports_external.literal("websocket") }).optional().describe("declare that this fetch bundle also exports class Room for ephemeral App rooms (AD-295); requires no runtime config and changes the bundle's content digest"),
|
|
20031
20034
|
idempotencyKey: exports_external.string().min(1).max(200).describe("stable key for this one logical bundle publication")
|
|
20032
20035
|
},
|
|
20033
20036
|
surfaces: ["computer-mcp", "computer-cli"],
|
|
@@ -21319,7 +21322,8 @@ var ACTION_DEFINITIONS = [
|
|
|
21319
21322
|
slug: exports_external.string().min(1).max(59).describe("stable DNS label used by app-<slug>.arborthreads.dev"),
|
|
21320
21323
|
access: exports_external.enum(["space", "public"]).describe("space requires membership; public is anonymous at the gateway"),
|
|
21321
21324
|
discovery: exports_external.enum(["unlisted", "listed"]).nullable().optional().describe("public Apps only; default unlisted"),
|
|
21322
|
-
stateMode: exports_external.enum(["none", "durable"]).describe("durable allocates Space-only isolated facet SQLite; deployment never resets it")
|
|
21325
|
+
stateMode: exports_external.enum(["none", "durable"]).describe("durable allocates Space-only isolated facet SQLite; deployment never resets it"),
|
|
21326
|
+
roomMode: exports_external.enum(["none", "ephemeral"]).optional().describe("ephemeral opts a public stateMode:none App into bounded TTL-scoped anonymous rooms (AD-295); default none keeps every room surface off")
|
|
21323
21327
|
},
|
|
21324
21328
|
surfaces: ["computer-mcp", "cli"],
|
|
21325
21329
|
toolset: "apps",
|
|
@@ -21435,12 +21439,13 @@ var ACTION_DEFINITIONS = [
|
|
|
21435
21439
|
},
|
|
21436
21440
|
{
|
|
21437
21441
|
name: "app_update",
|
|
21438
|
-
title: "Edit an App's
|
|
21439
|
-
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.",
|
|
21442
|
+
title: "Edit an App's metadata or room mode",
|
|
21443
|
+
description: "Change the human-facing metadata a reader sees before opening an App, or toggle its ephemeral-room capability. 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.",
|
|
21440
21444
|
inputSchema: {
|
|
21441
21445
|
appId: exports_external.string().describe("target App, app_…"),
|
|
21442
21446
|
title: exports_external.string().min(1).max(160).optional().describe("short factual App title"),
|
|
21443
|
-
description: exports_external.string().min(1).max(200).optional().describe("one line of what this App is for")
|
|
21447
|
+
description: exports_external.string().min(1).max(200).optional().describe("one line of what this App is for"),
|
|
21448
|
+
roomMode: exports_external.enum(["none", "ephemeral"]).optional().describe("ephemeral requires a public stateMode:none App; rooms serve once the active release declares a Room entrypoint, and none turns the surface off")
|
|
21444
21449
|
},
|
|
21445
21450
|
surfaces: ["cli"],
|
|
21446
21451
|
toolset: "apps",
|
package/package.json
CHANGED