@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.
- package/dist/arbor.js +33 -11
- 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.
|
|
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:
|
|
8859
|
-
attachmentId: id
|
|
8860
|
-
downloadUrl: string2()
|
|
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().
|
|
8865
|
-
sha256: string2()
|
|
8866
|
-
|
|
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
|
|
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