@lambdacurry/arbor 0.3.1 → 0.3.3

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 -4
  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()
@@ -1699,6 +1759,8 @@ var notificationCursors = sqliteTable("notification_cursors", {
1699
1759
  var EMOJI_RE = new RegExp("^\\p{RGI_Emoji}$", "v");
1700
1760
  // ../core/src/ops/agent-pairing.ts
1701
1761
  var PAIRING_TTL_MS = 15 * 60 * 1000;
1762
+ // ../core/src/queries/activity.ts
1763
+ var targetAuthor = alias(profiles, "target_author");
1702
1764
  // ../core/src/blob/in-memory.ts
1703
1765
  class InMemoryBlobStore {
1704
1766
  store = new Map;
@@ -16194,13 +16256,22 @@ var ACTIONS = [
16194
16256
  surfaces: ["mcp", "cli"],
16195
16257
  run: forward("contribution.promote")
16196
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
+ },
16197
16269
  {
16198
16270
  name: "request",
16199
- title: "Raise a request in a thread",
16200
- description: "Ask others for review or critique — name targets (an inbox item each) or leave it open (the thread board). Use this when you need someone's input to move forward; completion is software-computed from their responses (first | quorum(n) | all-targets | deadline | explicit).",
16271
+ title: "Ask for a review",
16272
+ 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.",
16201
16273
  inputSchema: {
16202
16274
  threadId: exports_external.string().describe("the thread the ask is in, thr_…"),
16203
- kind: exports_external.enum(["request-review", "request-critique"]).describe("the kind of ask"),
16204
16275
  requestedAction: exports_external.string().optional().describe("a one-line 'what'"),
16205
16276
  aboutContributionId: exports_external.string().optional().describe("card-scoped ask: the contribution this is about, con_… (must be in the thread; badges that card)"),
16206
16277
  targetProfileIds: exports_external.array(exports_external.string()).optional().describe("targeted recipients (omit → open board)"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
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": {