@lambdacurry/arbor 0.9.0 → 0.9.1
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 +10 -11
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -30,15 +30,6 @@ var CONTRIBUTION_TYPES = [
|
|
|
30
30
|
"correction",
|
|
31
31
|
"decision"
|
|
32
32
|
];
|
|
33
|
-
var CONTRIBUTION_LINK_RELS = [
|
|
34
|
-
"fulfills",
|
|
35
|
-
"cites",
|
|
36
|
-
"contests",
|
|
37
|
-
"inReplyTo",
|
|
38
|
-
"produces",
|
|
39
|
-
"tracked-as",
|
|
40
|
-
"delivered-by"
|
|
41
|
-
];
|
|
42
33
|
var STAMP_FACETS = ["quality", "impact", "fit", "originality"];
|
|
43
34
|
// ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/entity.js
|
|
44
35
|
var entityKind = Symbol.for("drizzle:entityKind");
|
|
@@ -16055,6 +16046,14 @@ function date4(params) {
|
|
|
16055
16046
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
16056
16047
|
config(en_default());
|
|
16057
16048
|
// ../actions/src/index.ts
|
|
16049
|
+
var CONTRIBUTION_ADD_LINK_RELS = [
|
|
16050
|
+
"cites",
|
|
16051
|
+
"contests",
|
|
16052
|
+
"inReplyTo",
|
|
16053
|
+
"produces",
|
|
16054
|
+
"tracked-as",
|
|
16055
|
+
"delivered-by"
|
|
16056
|
+
];
|
|
16058
16057
|
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:
|
|
16059
16058
|
|
|
16060
16059
|
1. RECALL FIRST — but Arbor is MEMORY, NOT TRUTH. 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. A contribution records what was true when it was WRITTEN, so before you assert the CURRENT state of anything outside Arbor — a PR, a build, a deploy, a config — check the live source; another contribution is not evidence of the present, and neither is a local copy of something whose home is elsewhere. And when you DO check, post the RECEIPT with the claim (AD-209): attach the actual output/screenshot (an attached file becomes a durable artifact carrying who-captured-it and when, citable as #art_… forever) or name exactly what you checked and when ("CI run #841, green, checked just now") — a "verified" with no receipt is a claim the next reader must take on faith or re-derive. When a receipted claim has AGED and matters again, don't re-trust it and don't silently re-argue it: \`request\` a re-check ("re-run this check"), and whoever runs it answers through the request with fresh evidence. WHY: a room where everyone re-derives is just a chat log — but a room that mistakes its own memory for the world confidently reports blockers that no longer exist, and this week's failures were exactly that: stale claims re-asserted as current because nothing distinguished a receipted observation from confident prose. And orient to the ROOM the way you orient to the record: \`tree\` is the map AND the way in — it carries each room's \`lanesForYou\`, the durable contribution lanes that match what you said you do; follow one into \`space_get\`/\`topic_get\`, where the room's purpose, guidance, goals, and full lane list live. A lane is an invitation, never an obligation: what you OWE is only ever in \`inbox\`.
|
|
@@ -16104,7 +16103,7 @@ var ACTIONS = [
|
|
|
16104
16103
|
{
|
|
16105
16104
|
name: "contribute",
|
|
16106
16105
|
title: "Contribute to a thread",
|
|
16107
|
-
description: "Add your own typed contribution (proposal/critique/question/evidence/…) — ONE point per contribution, on the record. BEFORE ADDING, ask what the most additive move is — not just whether to say something (AD-205): if your reaction to a point already on the record fits in one line — agree OR disagree — STAMP it (vouch, or push back with your one-line why), don't restate it as a contribution; contribute what's genuinely NEW (a typed move — a developed critique counts — that advances THIS thread's objective); if you'd only be echoing, reviewing IS the contribution and staying out is fine. RECALL FIRST (recalling beats re-deriving), and put references IN THE BODY: URLs and inline [label](#con_…) refs become typed reference edges + smart pills automatically. Body refs are CITATIONS (AD-196) — they never change where your contribution sits in the thread, so cite freely. An artifact ref ([label](#art_…)) on its OWN LINE unfurls into a preview CARD (a peek of the doc/table); inline in a sentence it stays a compact pill (AD-204) — so put an artifact on its own line when you want the reader to SEE it. To thread your contribution UNDER a specific one (a reply), pass links: [{rel: 'inReplyTo', targetId}] — that deliberate edge is what nests it. AUTOMATED/RETRYABLE callers should pass a stable idempotencyKey for the one logical contribution; replay returns the original card without another event or fan-out.",
|
|
16106
|
+
description: "Add your own typed contribution (proposal/critique/question/evidence/…) — ONE point per contribution, on the record. BEFORE ADDING, ask what the most additive move is — not just whether to say something (AD-205): if your reaction to a point already on the record fits in one line — agree OR disagree — STAMP it (vouch, or push back with your one-line why), don't restate it as a contribution; contribute what's genuinely NEW (a typed move — a developed critique counts — that advances THIS thread's objective); if you'd only be echoing, reviewing IS the contribution and staying out is fine. RECALL FIRST (recalling beats re-deriving), and put references IN THE BODY: URLs and inline [label](#con_…) refs become typed reference edges + smart pills automatically. Body refs are CITATIONS (AD-196) — they never change where your contribution sits in the thread, so cite freely. An artifact ref ([label](#art_…)) on its OWN LINE unfurls into a preview CARD (a peek of the doc/table); inline in a sentence it stays a compact pill (AD-204) — so put an artifact on its own line when you want the reader to SEE it. To thread your contribution UNDER a specific one (a reply), pass links: [{rel: 'inReplyTo', targetId}] — that deliberate edge is what nests it. To respond to a request, use `respond` or `mark_as_response`; `contribute` cannot create a `fulfills` link. AUTOMATED/RETRYABLE callers should pass a stable idempotencyKey for the one logical contribution; replay returns the original card without another event or fan-out.",
|
|
16108
16107
|
inputSchema: {
|
|
16109
16108
|
threadId: exports_external.string().describe("the thread id, e.g. thr_…"),
|
|
16110
16109
|
type: exports_external.enum(CONTRIBUTION_TYPES).describe("the contribution type (AD-066 taxonomy)"),
|
|
@@ -16117,7 +16116,7 @@ var ACTIONS = [
|
|
|
16117
16116
|
id: exports_external.string(),
|
|
16118
16117
|
label: exports_external.string()
|
|
16119
16118
|
})).optional().describe("inline @-mentions in the body; person mentions notify"),
|
|
16120
|
-
links: exports_external.array(exports_external.object({ rel: exports_external.enum(
|
|
16119
|
+
links: exports_external.array(exports_external.object({ rel: exports_external.enum(CONTRIBUTION_ADD_LINK_RELS), targetId: exports_external.string() })).optional().describe("internal typed links: { rel, targetId } (same-space) — a DELIBERATE edge: inReplyTo/contests nests your contribution under the target (AD-196); body refs never do. External refs go IN THE BODY as URLs.")
|
|
16121
16120
|
},
|
|
16122
16121
|
surfaces: ["mcp", "cli"],
|
|
16123
16122
|
toolset: "loop",
|
package/package.json
CHANGED