@lambdacurry/arbor 0.22.18 → 0.22.20

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 +33 -11
  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.18",
5
+ version: "0.22.20",
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",
@@ -8855,16 +8855,15 @@ var MCP_OUTPUT_SCHEMAS = {
8855
8855
  serializedByteLimit: number2().int().positive()
8856
8856
  })
8857
8857
  }),
8858
- image: looseObject({
8859
- attachmentId: id.optional(),
8860
- downloadUrl: string2().optional(),
8858
+ image: object({
8859
+ attachmentId: id,
8860
+ downloadUrl: string2(),
8861
8861
  mimeType: literal("image/png"),
8862
8862
  width: number2().int().positive(),
8863
8863
  height: number2().int().positive(),
8864
- size: number2().int().nonnegative().optional(),
8865
- sha256: string2().optional(),
8866
- data: string2().optional()
8867
- })
8864
+ size: number2().int().positive(),
8865
+ sha256: string2()
8866
+ }).strict()
8868
8867
  }),
8869
8868
  tldraw_exec: looseObject({
8870
8869
  executionId: id,
@@ -9154,6 +9153,8 @@ var MCP_OUTPUT_SCHEMAS = {
9154
9153
  exitCode: number2().optional(),
9155
9154
  processId: string2().optional(),
9156
9155
  status: string2().optional(),
9156
+ truncated: boolean2().optional().describe("true when returned stdout/stderr is partial and more output remains"),
9157
+ nextCursor: string2().optional().describe("opaque cursor for continuing partial output with computer_process_read"),
9157
9158
  cwd: string2().optional(),
9158
9159
  execution: _enum(["completed", "running"]).optional(),
9159
9160
  nextAction: literal("computer_process_read").optional()
@@ -9550,6 +9551,8 @@ var OUTPUT_SHAPERS = {
9550
9551
  ["exitCode", omitNull(result.exitCode)],
9551
9552
  ["processId", omitNull(result.processId)],
9552
9553
  ["status", omitNull(result.status)],
9554
+ ["truncated", omitNull(result.truncated)],
9555
+ ["nextCursor", omitNull(result.nextCursor)],
9553
9556
  ["execution", omitProviderNativeExecution(result.execution)],
9554
9557
  ["nextAction", omitNull(result.nextAction)],
9555
9558
  ["cwd", input.cwd === undefined ? omitNull(result.cwd) : undefined]
@@ -9574,6 +9577,24 @@ var OUTPUT_SHAPERS = {
9574
9577
  ["status", result.status],
9575
9578
  ["terminated", result.terminated]
9576
9579
  ]),
9580
+ tldraw_observe: (result) => defined([
9581
+ ["artifactId", result.artifactId],
9582
+ ["documentClock", result.documentClock],
9583
+ ["documentDigest", result.documentDigest],
9584
+ ["scene", result.scene],
9585
+ [
9586
+ "image",
9587
+ selected(result.image, [
9588
+ "attachmentId",
9589
+ "downloadUrl",
9590
+ "mimeType",
9591
+ "width",
9592
+ "height",
9593
+ "size",
9594
+ "sha256"
9595
+ ])
9596
+ ]
9597
+ ]),
9577
9598
  computer_write: (result) => defined([
9578
9599
  ["ok", result.ok],
9579
9600
  ["size", result.size]
@@ -10748,7 +10769,7 @@ var ACTION_DEFINITIONS = [
10748
10769
  {
10749
10770
  name: "computer_exec",
10750
10771
  title: "Run a command",
10751
- description: "Run one bounded shell operation in a Run (pass runId) with ambient GitHub authorization for connected humans. A long command returns processId if still running poll computer_process_read (background:true skips the wait; timeout kills the process); after a missed isolated response use computer_run_receipt.operations[].operationId with computer_process_read instead of repeating the mutation.",
10772
+ description: "Run one bounded shell operation in a Run (pass runId) with ambient GitHub authorization; timeout kills the process. If the command is running or a truncated output page is returned, use processId with computer_process_read and nextCursor when present; after a missed isolated response use computer_run_receipt.operations[].operationId with computer_process_read instead of repeating the mutation.",
10752
10773
  inputSchema: {
10753
10774
  computerSessionId: string2().optional().describe("legacy alternative to runId: a computerSessionId on that Computer, cms_…; required unless runId is supplied"),
10754
10775
  command: string2().min(1).describe("the shell command to run"),
@@ -13520,7 +13541,7 @@ function sleep(ms) {
13520
13541
  }
13521
13542
  function isComputerExecHandle(value) {
13522
13543
  const rec = record3(value);
13523
- return Boolean(rec && typeof rec.processId === "string" && isRunning(rec));
13544
+ return Boolean(rec && typeof rec.processId === "string" && (isRunning(rec) || rec.truncated === true));
13524
13545
  }
13525
13546
  async function waitForComputerExec(executor, input, value, ctx) {
13526
13547
  if (!processRead || !isComputerExecHandle(value))
@@ -13532,7 +13553,8 @@ async function waitForComputerExec(executor, input, value, ctx) {
13532
13553
  if (stdoutPages)
13533
13554
  advise(stdoutPages, ctx);
13534
13555
  const deadline = Date.now() + (typeof input.timeout === "number" && Number.isFinite(input.timeout) ? input.timeout : DEFAULT_PROCESS_DEADLINE_MS);
13535
- advise(`Process ${String(latest.processId)} is still running; polling computer_process_read.
13556
+ advise(isRunning(latest) ? `Process ${String(latest.processId)} is still running; polling computer_process_read.
13557
+ ` : `Process ${String(latest.processId)} has unread output; polling computer_process_read.
13536
13558
  `, ctx);
13537
13559
  while ((isRunning(latest) || latest.truncated === true) && Date.now() < deadline) {
13538
13560
  await sleep(POLL_MS);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.22.18",
3
+ "version": "0.22.20",
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",