@lambdacurry/arbor 0.22.32 → 0.22.34

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 +16 -7
  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.22.32",
5
+ version: "0.22.34",
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",
@@ -9981,6 +9981,13 @@ var update = object({
9981
9981
  var shapeIds = array(shapeId).min(1).max(TLDRAW_EXEC_MAX_OPERATIONS);
9982
9982
  var diagramKey = string2().min(1).max(80).describe("caller-meaningful node key; returned as the alias for its generated tldraw shape id");
9983
9983
  var diagramLabel = string2().min(1).max(160);
9984
+ var stack = object({
9985
+ op: literal("stack"),
9986
+ ids: shapeIds.min(2).describe("native shapes in the exact stack order; first id is the anchor"),
9987
+ axis: _enum(["horizontal", "vertical"]),
9988
+ gap: finite.min(0).describe("required edge-to-edge gap between adjacent shapes"),
9989
+ alignment: _enum(["start", "center", "end"]).optional().describe("optional cross-axis alignment relative to the first shape")
9990
+ }).strict();
9984
9991
  var connect = object({
9985
9992
  op: literal("connect"),
9986
9993
  sourceId: shapeId.describe("existing native shape to bind the arrow start to"),
@@ -10018,6 +10025,7 @@ var TLDRAW_EXEC_OPERATION_SCHEMA = discriminatedUnion("op", [
10018
10025
  ids: shapeIds.min(2),
10019
10026
  groupId: shapeId.optional()
10020
10027
  }).strict(),
10028
+ stack,
10021
10029
  connect,
10022
10030
  diagram
10023
10031
  ]);
@@ -10987,7 +10995,7 @@ var ACTION_DEFINITIONS = [
10987
10995
  {
10988
10996
  name: "computer_process_read",
10989
10997
  title: "Read a background process",
10990
- description: "Read process output with nextCursor; preserved bytes remain available for 30 days after preservation, including repeated cursors after finish/suspend, without provider wake. waitForTerminalMs adds one bounded native observation and page; expiry or descendants may still run, transport failure stays unknown/unsafe, and Arbor settles the durable operation only from terminal or exact absence proof.",
10998
+ description: "Read output with nextCursor, including repeated cursors for 30 days after preservation without provider wake. durationMs is process elapsed runtime (final at terminal), not RPC latency; waitForTerminalMs adds one bounded observation/page; expiry may leave work running; transport failure stays unknown/unsafe; only terminal or exact absence proof settles the durable operation.",
10991
10999
  inputSchema: {
10992
11000
  computerSessionId: string2().optional().describe("legacy alternative to runId: a computerSessionId on that Computer, cms_…; required unless runId is supplied"),
10993
11001
  runId: string2().optional().describe("the Run that owns this process, if it was started inside a Run"),
@@ -11354,7 +11362,7 @@ var ACTION_DEFINITIONS = [
11354
11362
  {
11355
11363
  name: "promote_attachment",
11356
11364
  title: "Promote a file attachment to an artifact",
11357
- description: "Turn a file uploaded to a thread into a first-class artifact — the blob becomes the artifact's content, owned by the author of the contribution it hangs off (not necessarily you). Reach for this when an attached file is itself a deliverable worth retaining and citing. The attachment must share the contribution's thread; idempotent re-promoting the same file returns the same artifact.",
11365
+ description: "Turn a file uploaded to a thread into a separate first-class file Artifact from a source Contribution — the blob becomes the Artifact's content, owned by that contribution's author (not necessarily you). Use the Attachment's durable downloadUrl to reference an exported report within an existing baseline Artifact instead of promoting it into that artifactId; the Attachment must share the source Contribution's Thread, and re-promoting the same file is idempotent.",
11358
11366
  inputSchema: {
11359
11367
  attachmentId: string2().describe("the uploaded attachment, att_…"),
11360
11368
  sourceContributionId: string2().describe("the contribution it's produced by, con_… (must share the attachment's thread)")
@@ -12174,7 +12182,7 @@ var ACTION_DEFINITIONS = [
12174
12182
  {
12175
12183
  name: "artifact",
12176
12184
  title: "Create or edit an Artifact",
12177
- description: "Create or edit a durable versioned Artifact, bind its executable Thread Live Preview, set a Computer-file asleep/share snapshot, or promote a Thread attachment; for a computer:// .tldr snapshot mint: computer_export the exact locator path and same-Thread PNG, then use set_snapshot. Board save and TLP do not mint snapshots. set_snapshot does not wake Computer or change the locator; read artifact_get before changing it, while lifecycle/removal stay in artifact_transition and artifact_delete.",
12185
+ description: "Create or edit a durable versioned Artifact, bind its executable Thread Live Preview, set a Computer-file asleep/share snapshot, or promote a Thread attachment into a separate file Artifact from a source Contribution. To reference an exported report within an existing baseline Artifact, use the Attachment's durable downloadUrl instead of promoting it into that artifactId. For a computer:// .tldr snapshot mint: computer_export the exact locator path and same-Thread PNG, then use set_snapshot. Board save and TLP do not mint snapshots. set_snapshot does not wake Computer or change the locator; read artifact_get before changing it, while lifecycle/removal stay in artifact_transition and artifact_delete.",
12178
12186
  inputSchema: {
12179
12187
  verb: _enum(["create", "edit", "set_live_preview", "set_snapshot", "promote_attachment"]).describe("which artifact move"),
12180
12188
  title: string2().optional().describe("create: the artifact's title"),
@@ -12194,7 +12202,8 @@ var ACTION_DEFINITIONS = [
12194
12202
  note: string2().optional().describe("edit: one-line summary of what changed"),
12195
12203
  sourceAttachmentId: string2().optional().describe("set_snapshot: computer_export of the exact computer:// locator path; MIME application/vnd.tldraw+json, computerPath stamped and matching defaultCwd + locator"),
12196
12204
  previewAttachmentId: string2().optional().describe("set_snapshot: same-Thread computer_export image/png Attachment, used as the asleep face preview"),
12197
- attachmentId: string2().optional().describe("promote_attachment: the upload, att_…")
12205
+ attachmentId: string2().optional().describe("promote_attachment: the upload, att_…"),
12206
+ sourceContributionId: string2().optional().describe("promote_attachment: REQUIRED source Contribution, con_… (must share the Attachment's Thread)")
12198
12207
  },
12199
12208
  surfaces: ["mcp"],
12200
12209
  toolset: "artifacts",
@@ -12358,7 +12367,7 @@ var ACTION_DEFINITIONS = [
12358
12367
  {
12359
12368
  name: "tldraw_exec",
12360
12369
  title: "Run a one-shot tldraw program",
12361
- description: `Modify the current live tldraw board with preferred declarative operations or bounded JavaScript, including graph-scoped diagram layout and safe native bound connect between shape IDs without caller-supplied connector geometry, then return a durable execution receipt; use IDs from a fresh observe, reacquire this current schema after compaction, and never replay an unknown result. First use: read the tldraw guide at ${AGENT_GUIDE_URLS.tldraw}.`,
12370
+ description: `Modify the current live tldraw board with preferred declarative operations or bounded JavaScript, including graph-scoped diagram layout, ordered exact-gap stack composition, and safe native bound connect without caller-supplied connector geometry, then return a durable execution receipt; use IDs from a fresh observe, reacquire this current schema after compaction, and never replay an unknown result. First use: read the tldraw guide at ${AGENT_GUIDE_URLS.tldraw}.`,
12362
12371
  inputSchema: {
12363
12372
  artifactId: string2().describe("the tldraw Artifact, art_…"),
12364
12373
  code: string2().min(1).max(1e5).optional().describe("advanced script source; mutually exclusive with operations"),
@@ -12941,7 +12950,7 @@ function retentionAction(action) {
12941
12950
  if (action.name === "artifact") {
12942
12951
  return {
12943
12952
  ...action,
12944
- description: "Create or edit a durable versioned Artifact with bounded full|checkpoint retention, or manage its Live Preview/snapshot/attachment surface. Content edits return artifactVersionId; byte-identical edits reuse the current version, while policy changes and checkpoints preserve the content version.",
12953
+ description: "Create/edit a durable versioned Artifact with bounded full|checkpoint retention or manage its Live Preview/snapshot/attachment surface; promote_attachment creates a separate file Artifact from a source Contribution, while exported reports in an existing baseline Artifact use the Attachment's durable downloadUrl instead of promotion into that artifactId. Content edits return artifactVersionId; byte-identical edits reuse current version, while policy changes/checkpoints preserve content version.",
12945
12954
  inputSchema: {
12946
12955
  ...action.inputSchema,
12947
12956
  historyPolicy: historyPolicySchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.22.32",
3
+ "version": "0.22.34",
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",