@lambdacurry/arbor 0.3.0 → 0.3.2
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 +75 -1
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -824,6 +824,67 @@ Subquery.prototype.getSQL = function() {
|
|
|
824
824
|
return new SQL([this]);
|
|
825
825
|
};
|
|
826
826
|
|
|
827
|
+
// ../../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/alias.js
|
|
828
|
+
class ColumnAliasProxyHandler {
|
|
829
|
+
constructor(table) {
|
|
830
|
+
this.table = table;
|
|
831
|
+
}
|
|
832
|
+
static [entityKind] = "ColumnAliasProxyHandler";
|
|
833
|
+
get(columnObj, prop) {
|
|
834
|
+
if (prop === "table") {
|
|
835
|
+
return this.table;
|
|
836
|
+
}
|
|
837
|
+
return columnObj[prop];
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
class TableAliasProxyHandler {
|
|
842
|
+
constructor(alias, replaceOriginalName) {
|
|
843
|
+
this.alias = alias;
|
|
844
|
+
this.replaceOriginalName = replaceOriginalName;
|
|
845
|
+
}
|
|
846
|
+
static [entityKind] = "TableAliasProxyHandler";
|
|
847
|
+
get(target, prop) {
|
|
848
|
+
if (prop === Table.Symbol.IsAlias) {
|
|
849
|
+
return true;
|
|
850
|
+
}
|
|
851
|
+
if (prop === Table.Symbol.Name) {
|
|
852
|
+
return this.alias;
|
|
853
|
+
}
|
|
854
|
+
if (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {
|
|
855
|
+
return this.alias;
|
|
856
|
+
}
|
|
857
|
+
if (prop === ViewBaseConfig) {
|
|
858
|
+
return {
|
|
859
|
+
...target[ViewBaseConfig],
|
|
860
|
+
name: this.alias,
|
|
861
|
+
isAlias: true
|
|
862
|
+
};
|
|
863
|
+
}
|
|
864
|
+
if (prop === Table.Symbol.Columns) {
|
|
865
|
+
const columns = target[Table.Symbol.Columns];
|
|
866
|
+
if (!columns) {
|
|
867
|
+
return columns;
|
|
868
|
+
}
|
|
869
|
+
const proxiedColumns = {};
|
|
870
|
+
Object.keys(columns).map((key) => {
|
|
871
|
+
proxiedColumns[key] = new Proxy(columns[key], new ColumnAliasProxyHandler(new Proxy(target, this)));
|
|
872
|
+
});
|
|
873
|
+
return proxiedColumns;
|
|
874
|
+
}
|
|
875
|
+
const value = target[prop];
|
|
876
|
+
if (is(value, Column)) {
|
|
877
|
+
return new Proxy(value, new ColumnAliasProxyHandler(new Proxy(target, this)));
|
|
878
|
+
}
|
|
879
|
+
return value;
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
// ../../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/sqlite-core/alias.js
|
|
884
|
+
function alias(table, alias2) {
|
|
885
|
+
return new Proxy(table, new TableAliasProxyHandler(alias2, false));
|
|
886
|
+
}
|
|
887
|
+
|
|
827
888
|
// ../../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/utils.js
|
|
828
889
|
function getColumnNameAndConfig(a, b) {
|
|
829
890
|
return {
|
|
@@ -1521,7 +1582,6 @@ var threads = sqliteTable("threads", {
|
|
|
1521
1582
|
objective: text("objective").notNull(),
|
|
1522
1583
|
status: text("status").$type().notNull().default("active"),
|
|
1523
1584
|
waysToHelp: text("ways_to_help", { mode: "json" }).$type().notNull().default([]),
|
|
1524
|
-
producedArtifactId: text("produced_artifact_id"),
|
|
1525
1585
|
openQuestions: text("open_questions", { mode: "json" }).$type().notNull().default([]),
|
|
1526
1586
|
expectedOutput: text("expected_output").notNull().default(""),
|
|
1527
1587
|
createdAt: ts("created_at").notNull()
|
|
@@ -1635,6 +1695,7 @@ var requests = sqliteTable("requests", {
|
|
|
1635
1695
|
createdByProfileId: text("created_by_profile_id").notNull().references(() => profiles.id),
|
|
1636
1696
|
kind: text("kind").$type().notNull(),
|
|
1637
1697
|
requestedAction: text("requested_action"),
|
|
1698
|
+
aboutContributionId: text("about_contribution_id"),
|
|
1638
1699
|
audience: text("audience", { mode: "json" }).$type().notNull(),
|
|
1639
1700
|
completionPolicy: text("completion_policy", { mode: "json" }).$type().notNull(),
|
|
1640
1701
|
status: text("status").$type().notNull().default("open"),
|
|
@@ -1698,6 +1759,8 @@ var notificationCursors = sqliteTable("notification_cursors", {
|
|
|
1698
1759
|
var EMOJI_RE = new RegExp("^\\p{RGI_Emoji}$", "v");
|
|
1699
1760
|
// ../core/src/ops/agent-pairing.ts
|
|
1700
1761
|
var PAIRING_TTL_MS = 15 * 60 * 1000;
|
|
1762
|
+
// ../core/src/queries/activity.ts
|
|
1763
|
+
var targetAuthor = alias(profiles, "target_author");
|
|
1701
1764
|
// ../core/src/blob/in-memory.ts
|
|
1702
1765
|
class InMemoryBlobStore {
|
|
1703
1766
|
store = new Map;
|
|
@@ -16193,6 +16256,16 @@ var ACTIONS = [
|
|
|
16193
16256
|
surfaces: ["mcp", "cli"],
|
|
16194
16257
|
run: forward("contribution.promote")
|
|
16195
16258
|
},
|
|
16259
|
+
{
|
|
16260
|
+
name: "demote_contribution",
|
|
16261
|
+
title: "Demote a promoted contribution",
|
|
16262
|
+
description: "The deliberate UNDO of promote_contribution: removes the contribution's standout mark and archives its artifact (a restorable lifecycle move, not a delete). Reach for this when a promotion was premature or superseded. Idempotent — demoting an unpromoted contribution is a quiet no-op.",
|
|
16263
|
+
inputSchema: {
|
|
16264
|
+
contributionId: exports_external.string().describe("the promoted contribution to demote, con_…")
|
|
16265
|
+
},
|
|
16266
|
+
surfaces: ["mcp", "cli"],
|
|
16267
|
+
run: forward("contribution.demote")
|
|
16268
|
+
},
|
|
16196
16269
|
{
|
|
16197
16270
|
name: "request",
|
|
16198
16271
|
title: "Raise a request in a thread",
|
|
@@ -16201,6 +16274,7 @@ var ACTIONS = [
|
|
|
16201
16274
|
threadId: exports_external.string().describe("the thread the ask is in, thr_…"),
|
|
16202
16275
|
kind: exports_external.enum(["request-review", "request-critique"]).describe("the kind of ask"),
|
|
16203
16276
|
requestedAction: exports_external.string().optional().describe("a one-line 'what'"),
|
|
16277
|
+
aboutContributionId: exports_external.string().optional().describe("card-scoped ask: the contribution this is about, con_… (must be in the thread; badges that card)"),
|
|
16204
16278
|
targetProfileIds: exports_external.array(exports_external.string()).optional().describe("targeted recipients (omit → open board)"),
|
|
16205
16279
|
completion: exports_external.enum(["first", "quorum", "all-targets", "deadline", "explicit"]),
|
|
16206
16280
|
quorumN: exports_external.number().int().min(1).optional().describe("required when completion=quorum"),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lambdacurry/arbor",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
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": {
|