@lambdacurry/arbor 0.23.28 → 0.23.30

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 +39 -9
  2. package/package.json +3 -3
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.28",
5
+ version: "0.23.30",
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",
@@ -31,7 +31,7 @@ var package_default = {
31
31
  scripts: {
32
32
  arbor: "tsx src/bin.ts",
33
33
  build: "bun build ./src/bin.ts --target=node --outfile=dist/arbor.js",
34
- test: "vitest run --passWithNoTests",
34
+ test: "vp test run --passWithNoTests",
35
35
  typecheck: "tsc -b",
36
36
  prepublishOnly: "bun run build"
37
37
  },
@@ -42,7 +42,7 @@ var package_default = {
42
42
  "just-bash": "3.4.2",
43
43
  tsx: "^4.20.6",
44
44
  typescript: "^5.8.0",
45
- vitest: "^4.1.10",
45
+ "vite-plus": "catalog:",
46
46
  zod: "^4.4.3"
47
47
  },
48
48
  engines: {
@@ -8193,6 +8193,7 @@ var COMPUTER_RUN_F1_FINAL_FAILURE_CODES = new Set([
8193
8193
  var TERMINAL = new Set(["finished", "failed", "cancelled"]);
8194
8194
  var RUN_LIFECYCLE_TYPES = new Set(["run.started", "run.finished", "run.failed", "run.cancelled"]);
8195
8195
  var COMPUTER_RUN_RECOVERY_WINDOW_MS = 60 * 60 * 1000;
8196
+ var COMPUTER_RUN_OWNER_DECISION_WINDOW_MS = 24 * 60 * 60 * 1000;
8196
8197
  var COMPUTER_RUN_ACTIVITY_LABEL_MAX = 120;
8197
8198
  var RUN_PROVIDER_LIFECYCLE_PHASES = [
8198
8199
  "allocate",
@@ -8934,7 +8935,8 @@ var workflowSummary = looseObject({
8934
8935
  isDefault: boolean2().optional(),
8935
8936
  labels: array(jsonObject).optional(),
8936
8937
  createdAt: string2().optional(),
8937
- updatedAt: string2().optional()
8938
+ updatedAt: string2().optional(),
8939
+ usedBySpaceCount: number2().optional()
8938
8940
  });
8939
8941
  var transitionFrom = looseObject({
8940
8942
  label: string2(),
@@ -8947,7 +8949,8 @@ var topic2 = looseObject({
8947
8949
  spaceId: id.optional(),
8948
8950
  title: string2(),
8949
8951
  purpose: nullableString.optional(),
8950
- url: string2().optional()
8952
+ url: string2().optional(),
8953
+ workflowId: nullableString.optional()
8951
8954
  });
8952
8955
  var space3 = looseObject({
8953
8956
  id,
@@ -9454,7 +9457,32 @@ var MCP_OUTPUT_SCHEMAS = {
9454
9457
  stage: string2().optional(),
9455
9458
  attached: jsonObject.optional(),
9456
9459
  defaulted: jsonObject.optional(),
9457
- detached: jsonObject.optional()
9460
+ detached: jsonObject.optional(),
9461
+ dryRun: boolean2().optional(),
9462
+ preview: looseObject({
9463
+ target: looseObject({ id, name: string2() }),
9464
+ current: looseObject({ id, name: string2() }),
9465
+ changesDefault: boolean2(),
9466
+ inheritingTopics: array(looseObject({
9467
+ topicId: id,
9468
+ title: string2(),
9469
+ threadCount: number2(),
9470
+ moves: array(looseObject({
9471
+ fromLabel: string2(),
9472
+ fromName: string2(),
9473
+ toLabel: string2(),
9474
+ toName: string2(),
9475
+ type: string2(),
9476
+ count: number2()
9477
+ }))
9478
+ })),
9479
+ blocking: array(looseObject({
9480
+ topicId: id,
9481
+ title: string2(),
9482
+ types: array(string2()),
9483
+ threadCount: number2()
9484
+ }))
9485
+ }).optional()
9458
9486
  }),
9459
9487
  space_get: looseObject({
9460
9488
  space: space3,
@@ -9938,7 +9966,8 @@ var MCP_OUTPUT_SCHEMAS = {
9938
9966
  parent: object({
9939
9967
  checkpoint: string2().nullable(),
9940
9968
  stopped: boolean2(),
9941
- asleep: boolean2().optional()
9969
+ asleep: boolean2().optional(),
9970
+ expired: boolean2().optional()
9942
9971
  }).optional()
9943
9972
  }),
9944
9973
  computer_repo_work_status: looseObject({
@@ -12834,7 +12863,7 @@ var ACTION_DEFINITIONS = [
12834
12863
  {
12835
12864
  name: "space_update",
12836
12865
  title: "Edit a space's config",
12837
- description: "Edit a Space's purpose, title, visibility, or offered workflows (`--attach-workflow` / `--detach-workflow` / `--default-workflow` take a built-in id like `queue` or a catalog `wfl_…`); org owner/admin or that Space's admin only, patching only supplied fields. Norms belong in Space guidance.",
12866
+ description: "Edit a Space's purpose, title, visibility, or offered workflows (`--attach-workflow` / `--detach-workflow` / `--default-workflow` take a built-in id or catalog `wfl_…`; `--dry-run` previews Topic moves); org owner/admin or that Space's admin only, patching only supplied fields. Norms belong in Space guidance.",
12838
12867
  inputSchema: {
12839
12868
  spaceId: string2().describe("the space, spc_…"),
12840
12869
  purpose: string2().optional().describe("why this boundary exists and what it is around — commonly a Product/System, Program/Function, Portfolio/Network, or Practice/Community — plus its dominant work modes (Build, Operate, Coordinate, Discuss, Share) when that helps; plain prose, not metadata syntax"),
@@ -12842,7 +12871,8 @@ var ACTION_DEFINITIONS = [
12842
12871
  visibility: _enum(["open", "private"]).optional().describe("open or private (invite-only)"),
12843
12872
  attachWorkflow: string2().optional().describe("add a workflow to this Space's list: a built-in id (`standard`, `queue`, `content`, `experiment`, `funnel`) or a catalog `wfl_…` from `workflow_list`"),
12844
12873
  detachWorkflow: string2().optional().describe("remove a workflow (built-in id or `wfl_…`) from this Space's list; rejected while a Topic still selects it"),
12845
- defaultWorkflow: string2().optional().describe("name which attached workflow (built-in id or `wfl_…`) new Topics inherit; with none, Standard")
12874
+ defaultWorkflow: string2().optional().describe("name which attached workflow (built-in id or `wfl_…`) new Topics inherit; with none, Standard"),
12875
+ dryRun: boolean2().optional().describe("preview a `defaultWorkflow` change or a `detachWorkflow` without writing: returns `preview` with `inheritingTopics` (each with its label `moves`) and `blocking` Topics whose threads sit in a type the new default lacks")
12846
12876
  },
12847
12877
  surfaces: ["mcp", "cli"],
12848
12878
  toolset: "spaces",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.23.28",
3
+ "version": "0.23.30",
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",
@@ -29,7 +29,7 @@
29
29
  "scripts": {
30
30
  "arbor": "tsx src/bin.ts",
31
31
  "build": "bun build ./src/bin.ts --target=node --outfile=dist/arbor.js",
32
- "test": "vitest run --passWithNoTests",
32
+ "test": "vp test run --passWithNoTests",
33
33
  "typecheck": "tsc -b",
34
34
  "prepublishOnly": "bun run build"
35
35
  },
@@ -40,7 +40,7 @@
40
40
  "just-bash": "3.4.2",
41
41
  "tsx": "^4.20.6",
42
42
  "typescript": "^5.8.0",
43
- "vitest": "^4.1.10",
43
+ "vite-plus": "catalog:",
44
44
  "zod": "^4.4.3"
45
45
  },
46
46
  "engines": {