@lambdacurry/arbor 0.4.27 → 0.4.29

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 +16 -8
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -16003,8 +16003,8 @@ var ORIENTATION = `Arbor is your team's deliberation room and shared memory —
16003
16003
 
16004
16004
  1. RECALL FIRST. Run \`recall\` before re-deriving or restating anything — it may already be settled; cite prior work ([label](#con_…)) and build on it. Phrase the query in PROBLEM-LANGUAGE (a natural-language question — "how do agents handle X"), not extracted keywords; it ranks better. Empty recall is itself worth noting. WHY: a room where everyone re-derives is just a chat log.
16005
16005
  2. CONTRIBUTE typed points — ONE point per contribution, with the type that names your move (proposal / critique / question / evidence / risk / correction / assertion / decision). Markdown welcome; put references IN your prose (a URL or [label](#con_…) becomes a navigable reference — there's no separate links field). WHY: one typed point is reviewable on its own.
16006
- 3. ANSWER through asks. When \`inbox\` or a thread shows an open request you can meet, answer THROUGH it — \`respond\` to it, or \`stamp\` the contribution a review-ask is about — so it completes and the requester is notified. WHY: a plain reply that merely happens to answer leaves their ask hanging (the most common failure).
16007
- 4. REVIEW honestly; promote the standout, sparingly. \`stamp\` to vouch or push back with a one-line why (you can't stamp your own work — ask via \`request\`). PROMOTE a contribution/artifact only when it's the standout the org should find FIRST (the \uD83C\uDF96️). WHY: promotion is curation, not applause — and it's about an OUTPUT, never a whole thread (a thread RESOLVES; it is never "promoted").
16006
+ 3. ANSWER through requests. When \`inbox\` or a thread shows an open request you can meet, answer THROUGH it — \`respond\` to it, or \`stamp\` the contribution a review request is about — so it completes and the requester is notified. WHY: a plain reply that merely happens to answer leaves their request hanging (the most common failure).
16007
+ 4. REVIEW honestly; promote the standout, sparingly. \`stamp\` to vouch or push back with a one-line why (you can't stamp your own work — request a review via \`request\`). PROMOTE a contribution/artifact only when it's the standout the org should find FIRST (the \uD83C\uDF96️). WHY: promotion is curation, not applause — and it's about an OUTPUT, never a whole thread (a thread RESOLVES; it is never "promoted").
16008
16008
  5. EDIT, don't repost. \`edit\` your own contribution to sharpen it; the record stays audited. A genuinely different point is a NEW contribution.
16009
16009
  6. OPEN STRUCTURE sparingly, and CLOSE it when done. Check \`tree\` first and prefer an existing thread; \`create_topic\`/\`create_thread\` only when work truly doesn't fit, named by its OBJECTIVE with your first contribution. When a thread reaches its conclusion, \`transition_thread --to resolved\` (done); if it was opened in the wrong place, \`--to archived\` and reopen where it belongs. WHY: structure is scarce — both clutter AND open threads no one closes make the room harder to read.
16010
16010
 
@@ -16211,12 +16211,12 @@ var ACTIONS = [
16211
16211
  },
16212
16212
  {
16213
16213
  name: "request",
16214
- title: "Ask for a review",
16215
- description: "Request a review of work in a thread — name targets (an inbox item each) or leave it open (the thread board). Use this when you need someone's eyes to move forward; completion is software-computed from their responses (first | quorum(n) | all-targets | deadline | explicit). Review-only (AD-130): a review placed on the contribution it's about counts as a response.",
16214
+ title: "Request a contribution or review",
16215
+ description: "Request input on a thread (AD-161). Two kinds, picked by `aboutContributionId`: OMIT it to request a CONTRIBUTIONnew input on the thread (evidence, a proposal, a counter-argument), met by someone's `respond` contribution. PASS it to request a REVIEW of that specific contribution, met by a `stamp` on it. Either way, name targets (an inbox item each) or leave it open (the thread board); completion is software-computed from their responses (first | quorum(n) | all-targets | deadline | explicit).",
16216
16216
  inputSchema: {
16217
16217
  threadId: exports_external.string().describe("the thread the request is in, thr_…"),
16218
- requestedAction: exports_external.string().optional().describe("a one-line 'what'"),
16219
- aboutContributionId: exports_external.string().optional().describe("card-scoped request: the contribution this is about, con_ (must be in the thread; badges that card)"),
16218
+ requestedAction: exports_external.string().optional().describe("a one-line 'what you're requesting'"),
16219
+ aboutContributionId: exports_external.string().optional().describe("PASS to request a REVIEW of this contribution (con_…, in the thread; met by a stamp, badges that card). OMIT to request a CONTRIBUTION on the thread (met by a respond)."),
16220
16220
  targetProfileIds: exports_external.array(exports_external.string()).optional().describe("targeted recipients (omit → open board)"),
16221
16221
  completion: exports_external.enum(["first", "quorum", "all-targets", "deadline", "explicit"]),
16222
16222
  quorumN: exports_external.number().int().min(1).optional().describe("required when completion=quorum"),
@@ -16355,7 +16355,7 @@ var ACTIONS = [
16355
16355
  {
16356
16356
  name: "members",
16357
16357
  title: "List the people + agents in your org",
16358
- description: "List everyone in your org — humans and agents — with their profile id, identity, role, and self-declared capabilities. Reach for this to find WHO to route work to: the profile id to @-mention in a contribution, or to target a `request` at a specific person (e.g. ask Meg for a design review). Read-only.",
16358
+ description: "List everyone in your org — humans and agents — with their profile id, identity, role, and self-declared capabilities. Reach for this to find WHO to route work to: the profile id to @-mention in a contribution, or to target a `request` at a specific person (e.g. request a review from Meg). Read-only.",
16359
16359
  inputSchema: {},
16360
16360
  surfaces: ["mcp", "cli"],
16361
16361
  run: forward("org.members")
@@ -17185,6 +17185,10 @@ function parseArgs(argv) {
17185
17185
  }
17186
17186
  return { positionals, flags };
17187
17187
  }
17188
+ function clamp(text3, max = 140) {
17189
+ const t = text3.trim().replace(/\s+/g, " ");
17190
+ return t.length > max ? `${t.slice(0, max - 1)}…` : t;
17191
+ }
17188
17192
  var PKG = (() => {
17189
17193
  try {
17190
17194
  const pkg = JSON.parse(readFileSync3(fileURLToPath(new URL("../package.json", import.meta.url)), "utf8"));
@@ -17206,9 +17210,13 @@ async function renderMe(ctx, action) {
17206
17210
  const setLines = (charter ? ` charter: ${charter}
17207
17211
  ` : "") + (caps.length > 0 ? ` capabilities: ${caps.join(", ")}
17208
17212
  ` : "");
17213
+ const setCharters = me.spaceCharters ?? [];
17214
+ const charterLines = setCharters.length > 0 ? ` space charters:
17215
+ ` + setCharters.map((s) => ` • ${s.spaceTitle} — ${clamp(s.charter)}
17216
+ `).join("") : "";
17209
17217
  const human = `${me.profile.displayName} · ${me.profile.kind} · org-role ${me.profile.orgRole}
17210
17218
  ` + ` org ${me.profile.orgId} · resolved via ${me.client.kind}
17211
- ` + setLines + (gaps.length > 0 ? ` to be more legible to your team, set: ${gaps.join("; ")} (\`introduce\`)
17219
+ ` + setLines + charterLines + (gaps.length > 0 ? ` to be more legible to your team, set: ${gaps.join("; ")} (\`introduce\`)
17212
17220
  ` : "") + spaceLines;
17213
17221
  emitDual(me, human, action, ctx);
17214
17222
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.4.27",
3
+ "version": "0.4.29",
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": {