@lambdacurry/arbor 0.23.35 → 0.23.37
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 +12 -12
- 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.23.
|
|
5
|
+
version: "0.23.37",
|
|
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",
|
|
@@ -11104,7 +11104,7 @@ var ORIENTATION_SECTIONS = [
|
|
|
11104
11104
|
},
|
|
11105
11105
|
{
|
|
11106
11106
|
brief: null,
|
|
11107
|
-
full: `Run \`arbor help\` (or read the MCP tool list) for
|
|
11107
|
+
full: `Run \`arbor help\` (or read the MCP tool list) for exact commands and flags. Computers are temporary: push Git work or publish/export a needed artifact outside them, suspend for an external wait, and finish the Run when done.`
|
|
11108
11108
|
}
|
|
11109
11109
|
];
|
|
11110
11110
|
var ORIENTATION = renderOrientation(ORIENTATION_SECTIONS);
|
|
@@ -11132,12 +11132,12 @@ var COMPUTER_ORIENTATION_SECTIONS = [
|
|
|
11132
11132
|
full: `2. READ THE CAPABILITIES CARD, NOT THE BACKEND. runId is the one address: every runtime tool takes it, and the computerSessionId a Run carries is legacy input. computer_status(runId) describes the live PARENT Thread Computer behind a shared Run; it does not establish isolated Run activity, so use computer_run_receipt(runId) and computer_process_read for Run-owned work. Command-line utilities, including Git and package managers, run through computer_exec; check unfamiliar binaries with command -v.`
|
|
11133
11133
|
},
|
|
11134
11134
|
{
|
|
11135
|
-
brief: "3.
|
|
11136
|
-
full: `3. ONE RUN PER TASK. A write Run defaults to an isolated execution environment with its own filesystem, processes, ports, and /tmp while preserving /workspace paths; a read Run shares the parent. Pass runId to Run-aware tools. If a response is lost, recover the durable operation/process identity from computer_run_receipt and read it before retrying. computer_process_read settles a provider-absent current-generation process from exact evidence; computer_process_terminate sends one termination request and preserves the actual native terminal outcome from one bounded read. computer_run_suspend performs bounded settlement internally and never replays unknown work. A still-active process returns a retryable busy state; an unknown current-generation mutation fail-closes.
|
|
11135
|
+
brief: "3. Computers are temporary: one Run per task; save work outside the Computer, then finish; suspend for a wait.",
|
|
11136
|
+
full: `3. ONE RUN PER TASK. A write Run defaults to an isolated execution environment with its own filesystem, processes, ports, and /tmp while preserving /workspace paths; a read Run shares the parent. Pass runId to Run-aware tools. Ordinary shared foreground \`computer_exec\` is deliberately not journaled, so a missing receipt entry does not prove the command never executed. Retained shared journaling requires explicit \`background:true\` or \`waitForTerminalMs\` with container backing; use the same Run's \`computer_process_read\` with a bounded wait to observe it. If a response is lost, recover the durable operation/process identity from computer_run_receipt and read it before retrying. computer_process_read settles a provider-absent current-generation process from exact evidence; computer_process_terminate sends one termination request and preserves the actual native terminal outcome from one bounded read. computer_run_suspend performs bounded settlement internally and never replays unknown work. A still-active process returns a retryable busy state; an unknown current-generation mutation fail-closes. Save or publish needed work outside the temporary Computer before suspending or finishing; an isolated local commit or Preview is not Git publication, so push coherent work before computer_run_finish. discard=true with outcome failed or cancelled explicitly abandons Git work only after provider work is quiescent; it never overrides active or unknown execution.`
|
|
11137
11137
|
},
|
|
11138
11138
|
{
|
|
11139
11139
|
brief: "4. Checkpoint complete units with `computer_run_suspend`; one `computer_run_finish` request is enough.",
|
|
11140
|
-
full: `4. CHECKPOINT COMPLETE UNITS THROUGH THE RUN. computer_run_suspend(runId) checkpoints an intermediate complete unit — an isolated Run publishes its exact workspace and releases its Sandbox, a shared Run
|
|
11140
|
+
full: `4. CHECKPOINT COMPLETE UNITS THROUGH THE RUN. computer_run_suspend(runId) checkpoints an intermediate complete unit — an isolated Run publishes its exact workspace and releases its Sandbox, while a shared Run checkpoints the parent without releasing it — and the same runId resumes later. A normal shared computer_run_finish(runId) checkpoints the parent and stops it when this is the last active shared Run; shared discard with outcome=cancelled or failed closes only the Run record, without checkpointing, stopping shared processes, or preserving unread output. Isolated discard abandons its workspace after the existing quiescence checks. An accepted isolated finish may return status active with finishRequest.state pending while the lifecycle owner preserves output, verifies Git, checkpoints, and releases without caller cleanup; one request is sufficient, and computer_run_receipt is an optional observation rather than a progress trigger. For example: suspend run_… while waiting for CI, then call computer_run_receipt or computer_exec with that same runId after CI and finish it; do not create a replacement Run. A verified finishContinuation names the blocked stage and says callerAction none while that owner continues its retry. An isolated Run Preview is durable review output, not adoption or a checkpoint. The internal provider-handle publication operations are not agent tools.`
|
|
11141
11141
|
},
|
|
11142
11142
|
{
|
|
11143
11143
|
brief: "5. Git and gh run through `computer_exec` once authorized; fetch before trusting remote state.",
|
|
@@ -11934,7 +11934,7 @@ var ACTION_DEFINITIONS = [
|
|
|
11934
11934
|
{
|
|
11935
11935
|
name: "computer_run_start",
|
|
11936
11936
|
title: "Start a run",
|
|
11937
|
-
description: `Start an isolated write Run or shared/read Run with one idempotencyKey;
|
|
11937
|
+
description: `Start an isolated write Run or shared/read Run with one idempotencyKey; pending admission returns runStartId for receipt observation while the lifecycle owner continues independently. Save work outside the temporary Computer and finish the Run when done; first use: read the Computer guide at ${AGENT_GUIDE_URLS.computer}.`,
|
|
11938
11938
|
inputSchema: {
|
|
11939
11939
|
threadId: string2().optional().describe("the Thread whose Computer this Run works in, thr_…; the canonical Run-first front door"),
|
|
11940
11940
|
computerSessionId: string2().optional().describe("legacy compatibility alternative to threadId: an existing parent computerSessionId, cms_…"),
|
|
@@ -11954,7 +11954,7 @@ var ACTION_DEFINITIONS = [
|
|
|
11954
11954
|
{
|
|
11955
11955
|
name: "computer_run_suspend",
|
|
11956
11956
|
title: "Suspend a run",
|
|
11957
|
-
description: "Checkpoint an active WRITE Run for an external wait:
|
|
11957
|
+
description: "Checkpoint an active WRITE Run for an external wait: save or publish needed work outside the Computer first; shared Runs checkpoint the parent without releasing it, while isolated Runs publish their exact workspace and release the Sandbox; resume with the same runId. Unread terminal output is retained for 30 days; no drain required; active/unknown work or failed preservation blocks release.",
|
|
11958
11958
|
inputSchema: {
|
|
11959
11959
|
runId: string2().describe("the active WRITE Run to suspend, run_…")
|
|
11960
11960
|
},
|
|
@@ -11976,7 +11976,7 @@ var ACTION_DEFINITIONS = [
|
|
|
11976
11976
|
{
|
|
11977
11977
|
name: "computer_run_finish",
|
|
11978
11978
|
title: "Finish a run",
|
|
11979
|
-
description: "
|
|
11979
|
+
description: "Finish after saving/publishing needed work outside the Computer; shared finish checkpoints parent and stops last shared Run; shared discard with failed/cancelled only closes record (no checkpoint, shared stop, unread preservation); isolated discard abandons workspace after quiescence. May stay pending for quiescence, durability, checkpoint, release; discard=true requires failed/cancelled.",
|
|
11980
11980
|
inputSchema: {
|
|
11981
11981
|
runId: string2().describe("the runId returned by computer_run_start, run_…"),
|
|
11982
11982
|
outcome: _enum(["finished", "failed", "cancelled"]).optional().describe("terminal outcome; defaults to finished"),
|
|
@@ -11990,7 +11990,7 @@ var ACTION_DEFINITIONS = [
|
|
|
11990
11990
|
{
|
|
11991
11991
|
name: "computer_run_receipt",
|
|
11992
11992
|
title: "Read a run receipt",
|
|
11993
|
-
description: "Read
|
|
11993
|
+
description: "Read pending admission, finish continuation, Run-owned operation/activity state, and providerLifecycle with exactly one of runId or runStartId instead of parent computer_status. This read drives nothing; setupReadiness is not an instruction to reinstall: run computer_run_setup when the task needs a prepared workspace, then save work outside the temporary Computer before finishing.",
|
|
11994
11994
|
inputSchema: {
|
|
11995
11995
|
runId: string2().optional().describe("the Run to read, run_…; provide exactly one of runId or runStartId"),
|
|
11996
11996
|
runStartId: string2().optional().describe("the pending or linked RunStart to read, rsr_…; alternative to runId")
|
|
@@ -12054,7 +12054,7 @@ var ACTION_DEFINITIONS = [
|
|
|
12054
12054
|
{
|
|
12055
12055
|
name: "computer_exec",
|
|
12056
12056
|
title: "Run a command",
|
|
12057
|
-
description: "Run a shell command in runId with ambient GitHub authorization; timeout kills the process
|
|
12057
|
+
description: "Run a shell command in runId with ambient GitHub authorization; timeout kills the process, so save results outside this Computer and finish the Run when done. Use waitForTerminalMs, then computer_process_read with nextCursor for a truncated output page; background is mutually exclusive, and after response loss read computer_run_receipt.operations[].operationId instead of repeating the mutation.",
|
|
12058
12058
|
inputSchema: {
|
|
12059
12059
|
computerSessionId: string2().optional().describe("legacy alternative to runId: a computerSessionId on that Computer, cms_…; required unless runId is supplied"),
|
|
12060
12060
|
command: string2().min(1).describe("the shell command to run"),
|
|
@@ -12104,7 +12104,7 @@ var ACTION_DEFINITIONS = [
|
|
|
12104
12104
|
{
|
|
12105
12105
|
name: "computer_status",
|
|
12106
12106
|
title: "Inspect a computer",
|
|
12107
|
-
description: "Inspect the live PARENT Thread Computer behind runId
|
|
12107
|
+
description: "Inspect the live PARENT Thread Computer behind runId for capabilities, can-I-exec readiness, processes, and profile; save needed work outside this temporary Computer. It does not report isolated Run command state (computer_run_receipt) or restore-safety (get_computer); transient unavailability drops command capabilities, and a terminal unknown mutation is a non-retryable stop.",
|
|
12108
12108
|
inputSchema: {
|
|
12109
12109
|
runId: string2().optional().describe("the Run whose parent Computer to inspect, run_…"),
|
|
12110
12110
|
computerSessionId: string2().optional().describe("legacy alternative to runId: a computerSessionId on that Computer, cms_…")
|
|
@@ -15735,7 +15735,7 @@ async function renderMe(ctx, action) {
|
|
|
15735
15735
|
` : "") + spaceLines;
|
|
15736
15736
|
emitDual(me, human, action, ctx);
|
|
15737
15737
|
}
|
|
15738
|
-
var CLI_NOTE = `On this CLI, before your first write: commands are NOUN-VERB (\`thread get\`, \`space get\`, not \`get thread\`). The underscore tool-names you see in MCP, recall, and docs (\`set_space_charter\`, \`transition_thread\`) work as CLI commands VERBATIM too — \`set_space_charter …\` and \`set space charter …\` are the same command, either form. Computer work is Run-first: start project work with \`arbor computer run start --thread-id thr_… --mode write --idempotency-key scope-run-1\`, reuse that key only for the same logical Run, keep its runId, and pass \`--run-id run_…\` to later commands such as \`computer run suspend --run-id run_…\`, \`computer run finish --run-id run_…\`, and \`computer run receipt --run-id run_…\`.
|
|
15738
|
+
var CLI_NOTE = `On this CLI, before your first write: commands are NOUN-VERB (\`thread get\`, \`space get\`, not \`get thread\`). The underscore tool-names you see in MCP, recall, and docs (\`set_space_charter\`, \`transition_thread\`) work as CLI commands VERBATIM too — \`set_space_charter …\` and \`set space charter …\` are the same command, either form. Computer work is Run-first: start project work with \`arbor computer run start --thread-id thr_… --mode write --idempotency-key scope-run-1\`, reuse that key only for the same logical Run, keep its runId, and pass \`--run-id run_…\` to later commands such as \`computer run suspend --run-id run_…\`, \`computer run finish --run-id run_…\`, and \`computer run receipt --run-id run_…\`. Computers are temporary: push Git work or publish/export a needed artifact outside them; suspend for a wait and make one durable finish request when done. Read the receipt when you need the result. Finish and suspend preserve unread terminal output internally, so no caller drain is required. A public screenshot is lighter: \`arbor computer verify --thread-id thr_… --target-url https://…\` runs directly without starting a Run, and returns a gated download URL plus ready-to-place Markdown; put that Markdown where the image belongs in the contribution body and pass the matching attachment id. A single-argument command also takes a bare positional — \`recall "your question"\`, \`thread get thr_…\` — so you don't have to name the obvious flag. Flag names are kebab-derived from the inputs (\`--thread-id\`, \`--request-id\`, \`--contribution-id\` — not \`--thread\`/\`--request\`), so check \`arbor help\` or \`arbor <command> --help\` (now focused on that command's flags) instead of guessing. Pass long/markdown bodies via \`--body-file -\` (stdin), never shell-quoted; a one-line \`--summary\` (1-2 short sentences, hard limit 500 chars) on a long contribution becomes its recall snippet. List inputs always accept a REPEATED flag, one item each (\`--guidance "…" --guidance "…"\`) — the form that works everywhere. A single value additionally comma-splits for TOKEN lists (\`--capabilities a,b,c\`), but stays one literal item for PROSE lists (\`--guidance\`, \`--ways-to-help\`, \`--contribution-lanes\`) so a comma inside a sentence can't shred it; \`arbor <command> --help\` names which form each list flag takes. \`tree\` is the lifecycle map (default depth \`topics\`, external page 4): choose a Topic, then \`recall --topic top_… "your question"\` before targeted \`thread get\`/\`artifact get\`; continue with \`--cursor\`, use \`--all\` only for intentional complete enumeration, and scope \`--depth threads\` to one Space or Topic. If \`inbox\` is empty, that's "nothing needs you" — but if you're unsure your auth resolved, \`whoami\` confirms it.`;
|
|
15739
15739
|
function renderOrient(ctx) {
|
|
15740
15740
|
emitDual({ orientation: ORIENTATION, cliNote: CLI_NOTE }, `${ORIENTATION}
|
|
15741
15741
|
|
package/package.json
CHANGED