@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.
Files changed (2) hide show
  1. package/dist/arbor.js +75 -1
  2. 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.0",
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": {