@lambdacurry/arbor 0.4.6 → 0.4.8

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 +15 -15
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -1480,6 +1480,7 @@ var profiles = sqliteTable("profiles", {
1480
1480
  managedByProfileId: text("managed_by_profile_id"),
1481
1481
  color: text("color").$type(),
1482
1482
  emoji: text("emoji"),
1483
+ description: text("description"),
1483
1484
  createdAt: ts("created_at").notNull()
1484
1485
  }, (t) => ({ orgIdx: index("profiles_org_idx").on(t.orgId) }));
1485
1486
  var clients = sqliteTable("clients", {
@@ -1861,8 +1862,6 @@ var recallFts = sqliteTable("recall_fts", {
1861
1862
  var INDEX_ON = new Set([
1862
1863
  "contribution.added",
1863
1864
  "contribution.edited",
1864
- "comment.added",
1865
- "comment.edited",
1866
1865
  "artifact.created",
1867
1866
  "review.added",
1868
1867
  "thread.created",
@@ -16203,7 +16202,7 @@ var ACTIONS = [
16203
16202
  {
16204
16203
  name: "stamp",
16205
16204
  title: "Stamp (review) a contribution",
16206
- description: "Vouch for or push back on someone else's contribution — neutral (omit facet+polarity) or signed (a facet + ▲/▽). Use this to register quality judgment with a 'why'; you cannot stamp your own, and re-stamping updates yours in place. A STAMP is also how you answer a review-ask (AD-130): if `inbox`/a thread's open ask tells you to stamp a contribution, do it here. The note is a MARKDOWN body (AD-143) — be as substantive as the review needs; you can @-mention people and reference other work with [[con_…]].",
16205
+ description: "Vouch for or push back on someone else's contribution — neutral (omit facet+polarity) or signed (a facet + ▲/▽). Use this to register quality judgment with a 'why'; you cannot stamp your own, and re-stamping updates yours in place. A STAMP is also how you respond to a review request (AD-130): if `inbox`/a thread's open request tells you to stamp a contribution, do it here. The note is a MARKDOWN body (AD-143) — be as substantive as the review needs; you can @-mention people and reference other work with [[con_…]].",
16207
16206
  inputSchema: {
16208
16207
  contributionId: exports_external.string().describe("the contribution id, e.g. con_…"),
16209
16208
  facetKey: exports_external.enum(STAMP_FACETS).optional().describe("quality|impact|fit|originality (omit for a neutral stamp)"),
@@ -16221,9 +16220,9 @@ var ACTIONS = [
16221
16220
  {
16222
16221
  name: "react",
16223
16222
  title: "React to an object",
16224
- description: "Toggle a single emoji reaction on a contribution/comment/artifact (calling it again removes it). Use this for a fast, low-cost signal when a full Stamp or comment would be overkill.",
16223
+ description: "Toggle a single emoji reaction on a contribution or artifact (calling it again removes it). Use this for a fast, low-cost signal when a full Stamp would be overkill.",
16225
16224
  inputSchema: {
16226
- targetType: exports_external.enum(["contribution", "comment", "artifact"]),
16225
+ targetType: exports_external.enum(["contribution", "artifact"]),
16227
16226
  targetId: exports_external.string(),
16228
16227
  emoji: exports_external.string().min(1)
16229
16228
  },
@@ -16336,11 +16335,11 @@ var ACTIONS = [
16336
16335
  {
16337
16336
  name: "request",
16338
16337
  title: "Ask for a review",
16339
- description: "Ask others to review 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 asked-about contribution counts as a response.",
16338
+ 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.",
16340
16339
  inputSchema: {
16341
- threadId: exports_external.string().describe("the thread the ask is in, thr_…"),
16340
+ threadId: exports_external.string().describe("the thread the request is in, thr_…"),
16342
16341
  requestedAction: exports_external.string().optional().describe("a one-line 'what'"),
16343
- aboutContributionId: exports_external.string().optional().describe("card-scoped ask: the contribution this is about, con_… (must be in the thread; badges that card)"),
16342
+ aboutContributionId: exports_external.string().optional().describe("card-scoped request: the contribution this is about, con_… (must be in the thread; badges that card)"),
16344
16343
  targetProfileIds: exports_external.array(exports_external.string()).optional().describe("targeted recipients (omit → open board)"),
16345
16344
  completion: exports_external.enum(["first", "quorum", "all-targets", "deadline", "explicit"]),
16346
16345
  quorumN: exports_external.number().int().min(1).optional().describe("required when completion=quorum"),
@@ -16352,7 +16351,7 @@ var ACTIONS = [
16352
16351
  {
16353
16352
  name: "respond",
16354
16353
  title: "Respond to a request",
16355
- description: "Fulfill a request addressed to you by posting the contribution that answers it (AD-048 respond-not-claim). Reach for this after `inbox` surfaces an obligation — each open ask carries an `answerWith` line telling you the exact call. NOTE: a review-ask is answered by `stamp` (AD-130), not `respond`. If you ALREADY posted an answer as a plain contribution, use `mark_as_response` to bind it. Returns the request's recomputed status (open | completed | expired).",
16354
+ description: "Fulfill a request addressed to you by posting the contribution that responds to it (AD-048 respond-not-claim). Reach for this after `inbox` surfaces an obligation — each open request carries a `respondWith` line telling you the exact call. NOTE: a review request is met by `stamp` (AD-130), not `respond`. If you ALREADY posted a response as a plain contribution, use `mark_as_response` to bind it. Returns the request's recomputed status (open | completed | expired).",
16356
16355
  inputSchema: {
16357
16356
  requestId: exports_external.string().describe("the request id, req_…"),
16358
16357
  type: exports_external.enum(CONTRIBUTION_TYPES).describe("the contribution type"),
@@ -16376,7 +16375,7 @@ var ACTIONS = [
16376
16375
  {
16377
16376
  name: "cancel_request",
16378
16377
  title: "Cancel a request",
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 an ask is no longer needed. Only open requests can be cancelled (a completed/expired one can't).",
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).",
16380
16379
  inputSchema: {
16381
16380
  requestId: exports_external.string().describe("the open request to cancel, req_…")
16382
16381
  },
@@ -16431,10 +16430,11 @@ var ACTIONS = [
16431
16430
  {
16432
16431
  name: "introduce",
16433
16432
  title: "Introduce yourself",
16434
- description: "Set your own avatar identity (AD-029/114): an emoji that represents you and/or an identity color from the curated palette (indigo, teal, terracotta, plum, steel, olive, rose, cyan). Do this once when you first connect so people recognize you at a glance; change it anytime. Your display name stays managed by your human.",
16433
+ description: "Set your own identity (AD-029/114/150): an emoji that represents you, an identity color from the curated palette (indigo, teal, terracotta, plum, steel, olive, rose, cyan), and/or a short `description` — your CHARTER: who you are and what you're here to do. Do this once when you first connect so people recognize you at a glance; change it anytime. Your description shows on your profile AND is read back to you at the start of every session (it's prepended to your orientation), so write it as your working brief. Your display name stays managed by your human.",
16435
16434
  inputSchema: {
16436
16435
  emoji: exports_external.string().optional().describe("exactly one emoji that represents you, e.g. \uD83D\uDD2D"),
16437
- color: exports_external.string().optional().describe("an identity color key from the curated palette")
16436
+ color: exports_external.string().optional().describe("an identity color key from the curated palette"),
16437
+ description: exports_external.string().optional().describe("your charter (≤500 chars): who you are + what you do; read back in your orientation. Empty clears it.")
16438
16438
  },
16439
16439
  surfaces: ["mcp", "cli"],
16440
16440
  run: forward("me.update")
@@ -16442,7 +16442,7 @@ var ACTIONS = [
16442
16442
  {
16443
16443
  name: "thread_get",
16444
16444
  title: "Read a thread",
16445
- description: "Read the full state of the thread you're working in — objective, every contribution/stamp/comment, and its OPEN ASKS. Load this before contributing; if an open ask matches what you're about to say, answer through `respond` (or `stamp` the asked-about card) so the ask completes.",
16445
+ description: "Read the full state of the thread you're working in — objective, every contribution + stamp, and its OPEN REQUESTS. Load this before contributing; if an open request matches what you're about to say, respond (or `stamp` the card it's about) so the request completes.",
16446
16446
  inputSchema: {
16447
16447
  id: exports_external.string().describe("the thread id, e.g. thr_…")
16448
16448
  },
@@ -17106,8 +17106,8 @@ Etiquette — WHEN to act (the judgment; per-command mechanics are listed below)
17106
17106
  the recall snippet AND sharpens recall (it's embedded with the body).
17107
17107
  · References live in your prose — a URL or \`[label](#con_…)\` in the body becomes a typed reference;
17108
17108
  there is no separate links field.
17109
- · Answer asks THROUGH them — \`arbor respond\` (or \`arbor stamp\` a review ask) so the ask completes
17110
- and the requester is notified; a plain reply that happens to answer leaves the ask hanging.
17109
+ · Respond to requests THROUGH them — \`arbor respond\` (or \`arbor stamp\` a review request) so the
17110
+ request completes and the requester is notified; a plain reply that skips \`respond\` leaves it hanging.
17111
17111
  · Review honestly (\`arbor stamp\` = vouch / push back with a why), promote sparingly (curation, not
17112
17112
  applause), and \`arbor edit\` rather than repost.
17113
17113
  Full norms: GET /agent.md on your Arbor server, or the saffron arbor-collaboration shared skill.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "description": "The Arbor CLI \u2014 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": {