@lambdacurry/arbor 0.4.25 → 0.4.26
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 +5 -4
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -1404,6 +1404,7 @@ var invitations = sqliteTable("invitations", {
|
|
|
1404
1404
|
token: text("token"),
|
|
1405
1405
|
expiresAt: ts("expires_at"),
|
|
1406
1406
|
invitedByProfileId: text("invited_by_profile_id").references(() => profiles.id),
|
|
1407
|
+
spaceIds: text("space_ids", { mode: "json" }).$type(),
|
|
1407
1408
|
createdAt: ts("created_at").notNull()
|
|
1408
1409
|
}, (t) => ({
|
|
1409
1410
|
emailIdx: index("invitations_email_idx").on(t.email, t.status),
|
|
@@ -16000,7 +16001,7 @@ config(en_default());
|
|
|
16000
16001
|
// ../actions/src/index.ts
|
|
16001
16002
|
var ORIENTATION = `Arbor is your team's deliberation room and shared memory — people and agents settle typed work here, and Arbor remembers what's decided. To work well:
|
|
16002
16003
|
|
|
16003
|
-
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. Empty recall is itself worth noting. WHY: a room where everyone re-derives is just a chat log.
|
|
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.
|
|
16004
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.
|
|
16005
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).
|
|
16006
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").
|
|
@@ -16342,11 +16343,11 @@ var ACTIONS = [
|
|
|
16342
16343
|
{
|
|
16343
16344
|
name: "tree",
|
|
16344
16345
|
title: "Navigate the workspace tree",
|
|
16345
|
-
description: "Map the workspace
|
|
16346
|
+
description: "Map the workspace — a GLANCEABLE structure map, not a full dump. By default (depth `topics`) you get your accessible spaces (purpose, governance stage) → their topics, plus a LIGHT roster (who's in each space by name/kind/role). Go DEEPER with the targeted reads, not by inflating the tree: `space_get` for a space's full roster + capabilities + charters, `topic_get` for a topic's threads, `thread_get` for a thread's contributions. Depths: `spaces` (just the spaces — lightest), `topics` (default — spaces + topics + light roster), `threads` (also expands each topic's threads with contribution counts). Scope with space or topic to map just that subtree.",
|
|
16346
16347
|
inputSchema: {
|
|
16347
16348
|
space: exports_external.string().optional().describe("scope to one space id (spc_…)"),
|
|
16348
16349
|
topic: exports_external.string().optional().describe("scope to one topic id (top_…)"),
|
|
16349
|
-
depth: exports_external.enum(["topics", "threads"]).optional().describe("how deep to expand: topics | threads (
|
|
16350
|
+
depth: exports_external.enum(["spaces", "topics", "threads"]).optional().describe("how deep to expand: spaces (just spaces) | topics (default: + topics + light roster) | threads (+ each topic's threads). For one topic's threads or one thread's contributions, prefer topic_get / thread_get.")
|
|
16350
16351
|
},
|
|
16351
16352
|
surfaces: ["mcp", "cli"],
|
|
16352
16353
|
run: forward("navigation.tree")
|
|
@@ -17160,7 +17161,7 @@ async function renderMe(ctx, action) {
|
|
|
17160
17161
|
` : "") + spaceLines;
|
|
17161
17162
|
emitDual(me, human, action, ctx);
|
|
17162
17163
|
}
|
|
17163
|
-
var CLI_NOTE = `On this CLI, before your first write:
|
|
17164
|
+
var CLI_NOTE = `On this CLI, before your first write: commands are NOUN-VERB (\`thread get\`, \`space get\`, not \`get thread\`). Flag names are kebab-derived from the inputs (\`--thread-id\`, \`--request-id\`, \`--contribution-id\` — not \`--thread\`/\`--request\`), so check \`arbor help\` or \`arbor <command> --help\` for a command's exact flags instead of guessing. Pass long/markdown bodies via \`--body-file -\` (stdin), never shell-quoted; a one-line \`--summary\` (≤300 chars) on a long contribution becomes its recall snippet. List inputs (e.g. \`--capabilities\`) accept EITHER a comma list (\`--capabilities a,b,c\`) OR a repeated flag (\`--capabilities a --capabilities b\`) — both build the array. \`tree\` is a glanceable map (default depth \`topics\`); drill down with \`space get\`/\`topic get\`/\`thread get\` rather than expanding the whole tree. If \`inbox\` is empty, that's "nothing needs you" — but if you're unsure your auth resolved, \`whoami\` confirms it.`;
|
|
17164
17165
|
function renderOrient(ctx) {
|
|
17165
17166
|
emitDual({ orientation: ORIENTATION, cliNote: CLI_NOTE }, `${ORIENTATION}
|
|
17166
17167
|
|
package/package.json
CHANGED