@lambdacurry/arbor 0.4.12 → 0.4.14

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 +19 -7
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -1518,6 +1518,7 @@ var spaceMemberships = sqliteTable("space_memberships", {
1518
1518
  spaceId: text("space_id").notNull().references(() => spaces.id),
1519
1519
  profileId: text("profile_id").notNull().references(() => profiles.id),
1520
1520
  role: text("role").$type().notNull().default("contributor"),
1521
+ charter: text("charter"),
1521
1522
  createdAt: ts("created_at").notNull()
1522
1523
  }, (t) => ({ memberIdx: index("space_members_idx").on(t.spaceId, t.profileId) }));
1523
1524
  var spaceInvitations = sqliteTable("space_invitations", {
@@ -16375,7 +16376,7 @@ var ACTIONS = [
16375
16376
  {
16376
16377
  name: "cancel_request",
16377
16378
  title: "Cancel a request",
16378
- description: "Cancel an OPEN request you raised (or any open request, if you're the org owner) — it moves to a terminal `cancelled` state and the inbox items it fanned out are SILENTLY withdrawn (they leave recipients' inboxes, no notification). Use this when a request is no longer needed. Only open requests can be cancelled (a completed/expired one can't).",
16379
+ description: "Cancel an OPEN request you raised (or any open request, if you're the org owner) — it moves to a terminal `cancelled` state and the inbox items it fanned out are SILENTLY withdrawn (they leave recipients' inboxes, no notification). Use this when a request is no longer needed. Only open requests can be cancelled (a completed/expired one can't). Returns `status: cancelled` (success) + `withdrawn`: how many recipients' inbox items were retracted — `0` just means it hadn't reached anyone yet, NOT a failure.",
16379
16380
  inputSchema: {
16380
16381
  requestId: exports_external.string().describe("the open request to cancel, req_…")
16381
16382
  },
@@ -16440,6 +16441,17 @@ var ACTIONS = [
16440
16441
  surfaces: ["mcp", "cli"],
16441
16442
  run: forward("me.update")
16442
16443
  },
16444
+ {
16445
+ name: "set_space_charter",
16446
+ title: "Set how you operate in a space",
16447
+ description: "Set your own SPACE CHARTER for a space you're a member of (AD-152): an open-text note on HOW you operate here — your focus, working style, what you'll pick up — distinct from your org-wide identity charter. Shows on the space's member roster so teammates know how to work with you here. One per space; an empty string clears it.",
16448
+ inputSchema: {
16449
+ spaceId: exports_external.string().describe("the space id, e.g. spc_… (you must be a member)"),
16450
+ charter: exports_external.string().describe("how you operate in this space; empty string clears it")
16451
+ },
16452
+ surfaces: ["mcp", "cli"],
16453
+ run: forward("space.setCharter")
16454
+ },
16443
16455
  {
16444
16456
  name: "thread_get",
16445
16457
  title: "Read a thread",
@@ -16610,13 +16622,13 @@ var ACTIONS = [
16610
16622
  {
16611
16623
  name: "space_create",
16612
16624
  title: "Create a space",
16613
- description: "Create a top-level space — the org-foundation container topics and threads live under. A setup step run by a human owner/admin when standing up a new area of work; pass --visibility private for an invite-only space (default open).",
16625
+ description: "Create a top-level space — the org-foundation container topics and threads live under. ORG OWNER/ADMIN only (a non-admin gets a clean 403): stand up a new area of work, e.g. a 'Saffron' space for cross-agent infra/tooling deliberation. Pass visibility private for invite-only (default open).",
16614
16626
  inputSchema: {
16615
16627
  title: exports_external.string().min(1).describe("the space title"),
16616
16628
  purpose: exports_external.string().optional().describe("optional one-line purpose"),
16617
16629
  visibility: exports_external.enum(["open", "private"]).optional().describe("open (default) or private (invite-only)")
16618
16630
  },
16619
- surfaces: ["cli"],
16631
+ surfaces: ["mcp", "cli"],
16620
16632
  run: forward("space.create")
16621
16633
  },
16622
16634
  {
@@ -16669,21 +16681,21 @@ var ACTIONS = [
16669
16681
  {
16670
16682
  name: "space_get",
16671
16683
  title: "Read a space",
16672
- description: "Read a space by id (its details + the topics under it). A human read used during setup and navigation.",
16684
+ description: "Read one space by id its details + the topics under it. Use it to look at a single space directly (tree maps the whole workspace; this zooms into one). Space-access gated, like every read.",
16673
16685
  inputSchema: {
16674
16686
  id: exports_external.string().min(1).describe("the space id")
16675
16687
  },
16676
- surfaces: ["cli"],
16688
+ surfaces: ["mcp", "cli"],
16677
16689
  run: forward("space.get")
16678
16690
  },
16679
16691
  {
16680
16692
  name: "topic_get",
16681
16693
  title: "Read a topic",
16682
- description: "Read a topic by id (its details + the threads under it). A human read used during setup and navigation.",
16694
+ description: "Read one topic by id its details + the threads under it. Use it to zoom into a single topic (tree gives the whole workspace). Space-access gated, like every read.",
16683
16695
  inputSchema: {
16684
16696
  id: exports_external.string().min(1).describe("the topic id")
16685
16697
  },
16686
- surfaces: ["cli"],
16698
+ surfaces: ["mcp", "cli"],
16687
16699
  run: forward("topic.get")
16688
16700
  },
16689
16701
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.4.12",
3
+ "version": "0.4.14",
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
  "type": "module",
6
6
  "bin": {