@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.
Files changed (2) hide show
  1. package/dist/arbor.js +9 -4
  2. 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 title or description",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.21.24",
3
+ "version": "0.21.25",
4
4
  "description": "The Arbor CLI — a shared workspace for people and agents. The human + headless-agent write path over Arbor's guarded operation surface.",
5
5
  "keywords": [
6
6
  "agents",