@lambdacurry/arbor 0.3.3 → 0.3.5
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 +40 -11
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -1607,6 +1607,7 @@ var contributions = sqliteTable("contributions", {
|
|
|
1607
1607
|
links: text("links", { mode: "json" }).$type(),
|
|
1608
1608
|
mentions: text("mentions", { mode: "json" }).$type(),
|
|
1609
1609
|
attachmentIds: text("attachment_ids", { mode: "json" }).$type(),
|
|
1610
|
+
editedAt: ts("edited_at"),
|
|
1610
1611
|
createdAt: ts("created_at").notNull()
|
|
1611
1612
|
}, (t) => ({ threadIdx: index("contributions_thread_idx").on(t.threadId) }));
|
|
1612
1613
|
var reviews = sqliteTable("reviews", {
|
|
@@ -1841,7 +1842,13 @@ var recallFts = sqliteTable("recall_fts", {
|
|
|
1841
1842
|
});
|
|
1842
1843
|
|
|
1843
1844
|
// ../core/src/retrieval/index-consumer.ts
|
|
1844
|
-
var INDEX_ON = new Set([
|
|
1845
|
+
var INDEX_ON = new Set([
|
|
1846
|
+
"contribution.added",
|
|
1847
|
+
"contribution.edited",
|
|
1848
|
+
"comment.added",
|
|
1849
|
+
"comment.edited",
|
|
1850
|
+
"artifact.created"
|
|
1851
|
+
]);
|
|
1845
1852
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
1846
1853
|
var exports_external = {};
|
|
1847
1854
|
__export(exports_external, {
|
|
@@ -9438,8 +9445,8 @@ function ko_default() {
|
|
|
9438
9445
|
};
|
|
9439
9446
|
}
|
|
9440
9447
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/lt.js
|
|
9441
|
-
var capitalizeFirstCharacter = (
|
|
9442
|
-
return
|
|
9448
|
+
var capitalizeFirstCharacter = (text3) => {
|
|
9449
|
+
return text3.charAt(0).toUpperCase() + text3.slice(1);
|
|
9443
9450
|
};
|
|
9444
9451
|
function getUnitTypeFromNumber(number2) {
|
|
9445
9452
|
const abs = Math.abs(number2);
|
|
@@ -16145,7 +16152,7 @@ var ACTIONS = [
|
|
|
16145
16152
|
{
|
|
16146
16153
|
name: "contribute",
|
|
16147
16154
|
title: "Contribute to a thread",
|
|
16148
|
-
description: "Add your own typed contribution (a claim, question, proposal, etc.) to a thread you're working in. This is how you put new substance on the record; attribution is server-resolved from your credential.",
|
|
16155
|
+
description: "Add your own typed contribution (a claim, question, proposal, etc.) to a thread you're working in. This is how you put new substance on the record; attribution is server-resolved from your credential. PUT REFERENCES IN THE BODY (AD-135): markdown links to PRs/Linear issues/urls and inline [label](#con_…) refs are scanned server-side into typed cites edges and render as smart pills — the separate links[] param is for non-prose rels (delivered-by/tracked-as) or link-only posts.",
|
|
16149
16156
|
inputSchema: {
|
|
16150
16157
|
threadId: exports_external.string().describe("the thread id, e.g. thr_…"),
|
|
16151
16158
|
type: exports_external.enum(CONTRIBUTION_TYPES).describe("the contribution type (AD-066 taxonomy)"),
|
|
@@ -16168,6 +16175,28 @@ var ACTIONS = [
|
|
|
16168
16175
|
surfaces: ["mcp", "cli"],
|
|
16169
16176
|
run: forward("contribution.add")
|
|
16170
16177
|
},
|
|
16178
|
+
{
|
|
16179
|
+
name: "edit",
|
|
16180
|
+
title: "Edit your contribution",
|
|
16181
|
+
description: "Edit the BODY of your own contribution (AD-132 — editable-but-audited: the displayed text changes, an 'edited' marker appears, and the event log keeps the previous body). Author-only; the type and links are fixed — a different point is a NEW contribution, not an edit.",
|
|
16182
|
+
inputSchema: {
|
|
16183
|
+
contributionId: exports_external.string().describe("your contribution's id, con_…"),
|
|
16184
|
+
body: exports_external.string().min(1).describe("the replacement markdown body")
|
|
16185
|
+
},
|
|
16186
|
+
surfaces: ["mcp", "cli"],
|
|
16187
|
+
run: forward("contribution.update")
|
|
16188
|
+
},
|
|
16189
|
+
{
|
|
16190
|
+
name: "edit_comment",
|
|
16191
|
+
title: "Edit your comment",
|
|
16192
|
+
description: "Edit the body of your own comment (editable-but-audited, AD-060/132 — an 'edited' marker appears; the event log keeps the trail). Author-only.",
|
|
16193
|
+
inputSchema: {
|
|
16194
|
+
commentId: exports_external.string().describe("your comment's id, cmt_…"),
|
|
16195
|
+
body: exports_external.string().min(1).describe("the replacement text")
|
|
16196
|
+
},
|
|
16197
|
+
surfaces: ["mcp", "cli"],
|
|
16198
|
+
run: forward("comment.update")
|
|
16199
|
+
},
|
|
16171
16200
|
{
|
|
16172
16201
|
name: "stamp",
|
|
16173
16202
|
title: "Stamp (review) a contribution",
|
|
@@ -16686,14 +16715,14 @@ function acceptedFlags(inputSchema) {
|
|
|
16686
16715
|
return out;
|
|
16687
16716
|
}
|
|
16688
16717
|
function readTextSource(src) {
|
|
16689
|
-
let
|
|
16718
|
+
let text3;
|
|
16690
16719
|
try {
|
|
16691
|
-
|
|
16720
|
+
text3 = readFileSync2(src === "-" ? 0 : src, "utf8");
|
|
16692
16721
|
} catch (e) {
|
|
16693
16722
|
const where = src === "-" ? "stdin" : src;
|
|
16694
16723
|
throw new UsageError(`could not read ${where}: ${e instanceof Error ? e.message : String(e)}`);
|
|
16695
16724
|
}
|
|
16696
|
-
return
|
|
16725
|
+
return text3.replace(/[\r\n]+$/, "");
|
|
16697
16726
|
}
|
|
16698
16727
|
function flagsForSchema(inputSchema) {
|
|
16699
16728
|
return Object.entries(inputSchema).map(([field, raw]) => {
|
|
@@ -16740,10 +16769,10 @@ function buildInput(inputSchema, flags) {
|
|
|
16740
16769
|
break;
|
|
16741
16770
|
}
|
|
16742
16771
|
case "array": {
|
|
16743
|
-
const
|
|
16744
|
-
if (
|
|
16772
|
+
const text3 = String(raw).trim();
|
|
16773
|
+
if (text3.startsWith("[")) {
|
|
16745
16774
|
try {
|
|
16746
|
-
const parsed = JSON.parse(
|
|
16775
|
+
const parsed = JSON.parse(text3);
|
|
16747
16776
|
if (Array.isArray(parsed)) {
|
|
16748
16777
|
input[spec.field] = parsed;
|
|
16749
16778
|
break;
|
|
@@ -16752,7 +16781,7 @@ function buildInput(inputSchema, flags) {
|
|
|
16752
16781
|
throw new UsageError(`--${spec.flag} looks like JSON but failed to parse — check the quoting`);
|
|
16753
16782
|
}
|
|
16754
16783
|
}
|
|
16755
|
-
input[spec.field] =
|
|
16784
|
+
input[spec.field] = text3.split(",").map((s) => s.trim()).filter(Boolean);
|
|
16756
16785
|
break;
|
|
16757
16786
|
}
|
|
16758
16787
|
case "boolean":
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lambdacurry/arbor",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
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": {
|