@lambdacurry/arbor 0.23.0 → 0.23.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.
Files changed (2) hide show
  1. package/dist/arbor.js +26 -5
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // package.json
3
3
  var package_default = {
4
4
  name: "@lambdacurry/arbor",
5
- version: "0.23.0",
5
+ version: "0.23.1",
6
6
  description: "The Arbor CLI — a shared workspace for people and agents. The human + headless-agent write path over Arbor's guarded operation surface.",
7
7
  keywords: [
8
8
  "agents",
@@ -6512,6 +6512,7 @@ var threads = sqliteTable("threads", {
6512
6512
  status: text("status").$type().notNull().default("active"),
6513
6513
  lifecycleType: text("lifecycle_type").$type().notNull().default("active"),
6514
6514
  lifecycleLabel: text("lifecycle_label").notNull().default("active"),
6515
+ rank: text("rank"),
6515
6516
  waysToHelp: text("ways_to_help", { mode: "json" }).$type().notNull().default([]),
6516
6517
  openQuestions: text("open_questions", { mode: "json" }).$type().notNull().default([]),
6517
6518
  expectedOutput: text("expected_output").notNull().default(""),
@@ -6519,7 +6520,8 @@ var threads = sqliteTable("threads", {
6519
6520
  }, (t) => ({
6520
6521
  topicIdx: index("threads_topic_idx").on(t.topicId),
6521
6522
  spaceIdx: index("threads_space_idx").on(t.spaceId),
6522
- lifecycleTypeIdx: index("threads_lifecycle_type_idx").on(t.lifecycleType)
6523
+ lifecycleTypeIdx: index("threads_lifecycle_type_idx").on(t.lifecycleType),
6524
+ topicLifecycleRankIdx: index("threads_topic_lifecycle_rank_idx").on(t.topicId, t.lifecycleType, t.rank)
6523
6525
  }));
6524
6526
  var computerConfigs = sqliteTable("computer_configs", {
6525
6527
  id: text("id").primaryKey(),
@@ -7738,6 +7740,23 @@ var STATUS_OPENNESS = {
7738
7740
  var typesWhere = (sense) => Object.keys(STATUS_OPENNESS).filter((s) => STATUS_OPENNESS[s][sense]);
7739
7741
  var WORKING_THREAD_STATUSES = typesWhere("working");
7740
7742
  var CURRENT_WORK_THREAD_STATUSES = typesWhere("currentWork");
7743
+ // ../core/src/lifecycle/rank.ts
7744
+ var THREAD_RANK_MAX = 128;
7745
+ var BASE62_CLASS = "[0-9A-Za-z]";
7746
+ var NON_ZERO_BASE62 = "[1-9A-Za-z]";
7747
+ var JIRA_LEXORANK = "[0-2]\\|[0-9a-z]+:[0-9a-z]*";
7748
+ function figmaFamilyPattern() {
7749
+ const arms = [];
7750
+ for (let i = 0;i < 26; i++) {
7751
+ const extra = String(i + 1);
7752
+ const lower = String.fromCharCode(97 + i);
7753
+ const upper = String.fromCharCode(90 - i);
7754
+ const rest = `${BASE62_CLASS}{${extra}}(?:${BASE62_CLASS}*${NON_ZERO_BASE62})?`;
7755
+ arms.push(`${lower}${rest}`, `${upper}${rest}`);
7756
+ }
7757
+ return arms.join("|");
7758
+ }
7759
+ var THREAD_RANK_PATTERN = new RegExp(`^(?:${JIRA_LEXORANK}|${figmaFamilyPattern()})$`);
7741
7760
  // ../core/src/lifecycle/workflow.ts
7742
7761
  var WORKFLOW_SUMMARY_MAX = 500;
7743
7762
  var WORKFLOW_LABEL_DESCRIPTION_MAX = 200;
@@ -8579,6 +8598,7 @@ var thread3 = looseObject({
8579
8598
  status: string2().optional(),
8580
8599
  lifecycleType: string2().optional(),
8581
8600
  lifecycleLabel: string2().optional(),
8601
+ rank: nullableString.optional(),
8582
8602
  url: string2().optional()
8583
8603
  });
8584
8604
  var workflowSummary = looseObject({
@@ -8904,7 +8924,8 @@ var MCP_OUTPUT_SCHEMAS = {
8904
8924
  id,
8905
8925
  title: string2().optional(),
8906
8926
  objective: string2().optional(),
8907
- topicId: string2().optional()
8927
+ topicId: string2().optional(),
8928
+ rank: nullableString.optional()
8908
8929
  }),
8909
8930
  set_organization_computer: looseObject({ config: computerConfigLayer.nullable() }),
8910
8931
  set_space_computer: looseObject({ config: computerConfigLayer.nullable() }),
@@ -11204,13 +11225,13 @@ var ACTION_DEFINITIONS = [
11204
11225
  {
11205
11226
  name: "thread_update",
11206
11227
  title: "Edit a thread's title, objective, or topic",
11207
- description: "Correct a Thread's title or objective, or move it under another Topic of the same Space, patching only supplied fields; use it to make done clear or refile misfiled work instead of archiving and reopening. Status moves stay with `transition_thread`, column order with `--rank` (not stored yet), and the temporary help list with `charter` ways_to_help.",
11228
+ description: "Correct a Thread's title or objective, or move it under another Topic of the same Space, patching only supplied fields; use it to make done clear or refile misfiled work instead of archiving and reopening. Status moves stay with `transition_thread`, column order with `--rank`, and the temporary help list with `charter` ways_to_help.",
11208
11229
  inputSchema: {
11209
11230
  threadId: string2().describe("the thread to edit, thr_…"),
11210
11231
  title: string2().min(1).optional().describe("a new title — the question, outcome, investigation, instance, or standing concern"),
11211
11232
  objective: string2().min(1).optional().describe("a new objective — what this Thread should accomplish; for finite work, what done means"),
11212
11233
  topicId: string2().optional().describe("move the thread under this topic of the same space, top_…"),
11213
- rank: string2().optional().describe("LexoRank string for card order inside one lifecycle column; not stored yet (returns 400 until S6)")
11234
+ rank: string2().max(THREAD_RANK_MAX).regex(THREAD_RANK_PATTERN).nullable().optional().describe("LexoRank string for card order inside one lifecycle column; omit to leave unchanged, null to restore recency")
11214
11235
  },
11215
11236
  surfaces: ["mcp", "cli"],
11216
11237
  toolset: "loop",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.23.0",
3
+ "version": "0.23.1",
4
4
  "description": "The Arbor CLI — a shared workspace for people and agents. The human + headless-agent write path over Arbor's guarded operation surface.",
5
5
  "keywords": [
6
6
  "agents",