@lambdacurry/arbor 0.22.19 → 0.22.21

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 +13 -4
  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.19",
5
+ version: "0.22.21",
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",
@@ -9153,6 +9153,9 @@ var MCP_OUTPUT_SCHEMAS = {
9153
9153
  exitCode: number2().optional(),
9154
9154
  processId: string2().optional(),
9155
9155
  status: string2().optional(),
9156
+ timedOut: boolean2().optional(),
9157
+ truncated: boolean2().optional().describe("true when returned stdout/stderr is partial and more output remains"),
9158
+ nextCursor: string2().optional().describe("opaque cursor for continuing partial output with computer_process_read"),
9156
9159
  cwd: string2().optional(),
9157
9160
  execution: _enum(["completed", "running"]).optional(),
9158
9161
  nextAction: literal("computer_process_read").optional()
@@ -9160,6 +9163,7 @@ var MCP_OUTPUT_SCHEMAS = {
9160
9163
  computer_process_read: looseObject({
9161
9164
  processId: string2(),
9162
9165
  status: string2(),
9166
+ timedOut: boolean2().optional(),
9163
9167
  endedAt: timestamp.nullable().optional(),
9164
9168
  durationMs: number2().int().min(0).nullable().optional(),
9165
9169
  stdout: string2().optional(),
@@ -9549,6 +9553,9 @@ var OUTPUT_SHAPERS = {
9549
9553
  ["exitCode", omitNull(result.exitCode)],
9550
9554
  ["processId", omitNull(result.processId)],
9551
9555
  ["status", omitNull(result.status)],
9556
+ ["timedOut", omitNull(result.timedOut)],
9557
+ ["truncated", omitNull(result.truncated)],
9558
+ ["nextCursor", omitNull(result.nextCursor)],
9552
9559
  ["execution", omitProviderNativeExecution(result.execution)],
9553
9560
  ["nextAction", omitNull(result.nextAction)],
9554
9561
  ["cwd", input.cwd === undefined ? omitNull(result.cwd) : undefined]
@@ -9556,6 +9563,7 @@ var OUTPUT_SHAPERS = {
9556
9563
  computer_process_read: (result) => defined([
9557
9564
  ["processId", result.processId],
9558
9565
  ["status", result.status],
9566
+ ["timedOut", omitNull(result.timedOut)],
9559
9567
  ["stdout", result.stdout],
9560
9568
  ["stderr", result.stderr],
9561
9569
  ["truncated", result.truncated],
@@ -10765,7 +10773,7 @@ var ACTION_DEFINITIONS = [
10765
10773
  {
10766
10774
  name: "computer_exec",
10767
10775
  title: "Run a command",
10768
- 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.",
10776
+ 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.",
10769
10777
  inputSchema: {
10770
10778
  computerSessionId: string2().optional().describe("legacy alternative to runId: a computerSessionId on that Computer, cms_…; required unless runId is supplied"),
10771
10779
  command: string2().min(1).describe("the shell command to run"),
@@ -13537,7 +13545,7 @@ function sleep(ms) {
13537
13545
  }
13538
13546
  function isComputerExecHandle(value) {
13539
13547
  const rec = record3(value);
13540
- return Boolean(rec && typeof rec.processId === "string" && isRunning(rec));
13548
+ return Boolean(rec && typeof rec.processId === "string" && (isRunning(rec) || rec.truncated === true));
13541
13549
  }
13542
13550
  async function waitForComputerExec(executor, input, value, ctx) {
13543
13551
  if (!processRead || !isComputerExecHandle(value))
@@ -13549,7 +13557,8 @@ async function waitForComputerExec(executor, input, value, ctx) {
13549
13557
  if (stdoutPages)
13550
13558
  advise(stdoutPages, ctx);
13551
13559
  const deadline = Date.now() + (typeof input.timeout === "number" && Number.isFinite(input.timeout) ? input.timeout : DEFAULT_PROCESS_DEADLINE_MS);
13552
- advise(`Process ${String(latest.processId)} is still running; polling computer_process_read.
13560
+ advise(isRunning(latest) ? `Process ${String(latest.processId)} is still running; polling computer_process_read.
13561
+ ` : `Process ${String(latest.processId)} has unread output; polling computer_process_read.
13553
13562
  `, ctx);
13554
13563
  while ((isRunning(latest) || latest.truncated === true) && Date.now() < deadline) {
13555
13564
  await sleep(POLL_MS);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.22.19",
3
+ "version": "0.22.21",
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",