@lambdacurry/arbor 0.24.8 → 0.24.9
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 +11 -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.24.
|
|
5
|
+
version: "0.24.9",
|
|
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",
|
|
@@ -9675,8 +9675,8 @@ function buildOutputSchemas() {
|
|
|
9675
9675
|
})
|
|
9676
9676
|
});
|
|
9677
9677
|
const computerRunFinishAssessment = looseObject({
|
|
9678
|
-
state: _enum(["safe", "blocked", "unknown"]),
|
|
9679
|
-
requiresDiscard: boolean2(),
|
|
9678
|
+
state: _enum(["safe", "blocked", "unknown"]).describe("advisory Git state; never blocks finish: blocked = non-durable or unprovable local work, unknown = unverified or not inspected (ordinary finish runs no Git command)"),
|
|
9679
|
+
requiresDiscard: boolean2().describe("legacy marker: true only for an explicit discard or a pre-ARB-574 record; Git state never requires discard"),
|
|
9680
9680
|
repositories: array(looseObject({
|
|
9681
9681
|
repository: string2().nullable(),
|
|
9682
9682
|
path: string2(),
|
|
@@ -12255,7 +12255,7 @@ var ORIENTATION_SECTIONS = [
|
|
|
12255
12255
|
},
|
|
12256
12256
|
{
|
|
12257
12257
|
brief: null,
|
|
12258
|
-
full: `Run \`arbor help\` (or read the MCP tool list) for exact commands and flags. Start Runs with a short intention; suspend if you need the workspace again, finish with an accomplishments summary when done with it.
|
|
12258
|
+
full: `Run \`arbor help\` (or read the MCP tool list) for exact commands and flags. Start Runs with a short intention; suspend if you need the workspace again, finish with an accomplishments summary when done with it. Finish does not require Git publication; process and output safety guards still apply.`
|
|
12259
12259
|
}
|
|
12260
12260
|
];
|
|
12261
12261
|
var ORIENTATION = renderOrientation(ORIENTATION_SECTIONS);
|
|
@@ -12284,11 +12284,11 @@ var COMPUTER_ORIENTATION_SECTIONS = [
|
|
|
12284
12284
|
},
|
|
12285
12285
|
{
|
|
12286
12286
|
brief: "3. State Run intent in label; suspend to return to its workspace, finish with a summary when done with it.",
|
|
12287
|
-
full: `3. ONE OWNER PER RUN. State a short intention in label at start and an accomplishments summary in reason at finish; later calls need only runId, without repeated narration. 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. Suspend if you need this workspace again; finish intentionally ends the segment and releases isolated execution.
|
|
12287
|
+
full: `3. ONE OWNER PER RUN. State a short intention in label at start and an accomplishments summary in reason at finish; later calls need only runId, without repeated narration. 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. Suspend if you need this workspace again; finish intentionally ends the segment and releases isolated execution. Push or export work that needs independent durability: isolated finish runs no Git command and releases unpublished workspace work, so suspend instead to keep it. discard=true with outcome failed or cancelled explicitly abandons the workspace only after provider work is quiescent; it never overrides active or unknown execution.`
|
|
12288
12288
|
},
|
|
12289
12289
|
{
|
|
12290
12290
|
brief: "4. Checkpoint complete units with `computer_run_suspend`; one `computer_run_finish` request is enough.",
|
|
12291
|
-
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, reason }) 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,
|
|
12291
|
+
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, reason }) 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, 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.`
|
|
12292
12292
|
},
|
|
12293
12293
|
{
|
|
12294
12294
|
brief: "5. Git and gh run through `computer_exec` once authorized; fetch before trusting remote state.",
|
|
@@ -13096,7 +13096,7 @@ var ACTION_DEFINITIONS = [
|
|
|
13096
13096
|
{
|
|
13097
13097
|
name: "computer_run_start",
|
|
13098
13098
|
title: "Start a run",
|
|
13099
|
-
description: `Start isolated write or shared/read work with a short intention in label and one idempotencyKey; pending admission returns runStartId. Suspend if you need this workspace again; finish with an accomplishments summary when done
|
|
13099
|
+
description: `Start isolated write or shared/read work with a short intention in label and one idempotencyKey; pending admission returns runStartId. Suspend if you need this workspace again; finish with an accomplishments summary when done (Git publication not required); first use: read the Computer guide at ${AGENT_GUIDE_URLS.computer}.`,
|
|
13100
13100
|
inputSchema: {
|
|
13101
13101
|
threadId: string2().optional().describe("the Thread whose Computer this Run works in, thr_… or a short id like BUD-34; the canonical Run-first front door"),
|
|
13102
13102
|
computerSessionId: string2().optional().describe("legacy compatibility alternative to threadId: an existing parent computerSessionId, cms_…"),
|
|
@@ -13127,7 +13127,7 @@ var ACTION_DEFINITIONS = [
|
|
|
13127
13127
|
{
|
|
13128
13128
|
name: "computer_repo_work_status",
|
|
13129
13129
|
title: "Inspect repository finish state",
|
|
13130
|
-
description: "Inspect workspace Git worktrees, including manual clones, for publication, PR, CI, and review in an active isolated WRITE Run. Returns repository state and runDisposition.action computer_run_suspend when published work waits on CI/review/human authorization, resuming the same runId; dirty, missing, unpublished, or unverified work keeps a local nextAction.",
|
|
13130
|
+
description: "Inspect workspace Git worktrees, including manual clones, for publication, PR, CI, and review in an active isolated WRITE Run. Returns repository state and runDisposition.action computer_run_suspend when published work waits on CI/review/human authorization, resuming the same runId; dirty, missing, unpublished, or unverified work keeps a local nextAction (diagnostic; finish does not require it).",
|
|
13131
13131
|
inputSchema: {
|
|
13132
13132
|
runId: string2().describe("the active isolated WRITE Run to inspect, run_…")
|
|
13133
13133
|
},
|
|
@@ -13138,12 +13138,12 @@ var ACTION_DEFINITIONS = [
|
|
|
13138
13138
|
{
|
|
13139
13139
|
name: "computer_run_finish",
|
|
13140
13140
|
title: "Finish a run",
|
|
13141
|
-
description: "End this Run with an accomplishments summary when done with its workspace; suspend if you expect to return.
|
|
13141
|
+
description: "End this Run with an accomplishments summary when done with its workspace; suspend if you expect to return. Git publication not required (isolated finish drops unpublished work); shared finish checkpoints/stops last shared Run; shared discard closes only record; isolated discard abandons after quiescence; May stay pending for quiescence, checkpoint, release; discard=true requires failed/cancelled.",
|
|
13142
13142
|
inputSchema: {
|
|
13143
13143
|
runId: string2().describe("the runId returned by computer_run_start, run_…"),
|
|
13144
13144
|
outcome: _enum(["finished", "failed", "cancelled"]).optional().describe("terminal outcome; defaults to finished"),
|
|
13145
13145
|
reason: string2().trim().max(500).optional().describe("required for a new finish intent: accomplishments and useful outcomes or limits; exact accepted legacy retries reuse their original text or omission"),
|
|
13146
|
-
discard: boolean2().optional().describe("explicitly abandon
|
|
13146
|
+
discard: boolean2().optional().describe("explicitly abandon this Run's workspace only after provider quiescence; requires outcome failed or cancelled and never overrides active or unknown execution")
|
|
13147
13147
|
},
|
|
13148
13148
|
surfaces: ["computer-mcp", "computer-cli"],
|
|
13149
13149
|
toolset: "loop",
|
|
@@ -17419,7 +17419,7 @@ async function renderMe(ctx, action) {
|
|
|
17419
17419
|
` : "") + spaceLines;
|
|
17420
17420
|
emitDual(me, human, action, ctx);
|
|
17421
17421
|
}
|
|
17422
|
-
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 --label Fix-CI --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_… --reason Fixed-CI-and-verified-checks\`, and \`computer run receipt --run-id run_…\`. State an actual intention in --label; suspend if you need the workspace again, and finish with an accomplishments summary in --reason when done with it.
|
|
17422
|
+
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 --label Fix-CI --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_… --reason Fixed-CI-and-verified-checks\`, and \`computer run receipt --run-id run_…\`. State an actual intention in --label; suspend if you need the workspace again, and finish with an accomplishments summary in --reason when done with it. Finish does not require Git publication and releases unpublished workspace work; push/export work that needs independent durability. 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.`;
|
|
17423
17423
|
function renderOrient(ctx) {
|
|
17424
17424
|
emitDual({ orientation: ORIENTATION, cliNote: CLI_NOTE }, `${ORIENTATION}
|
|
17425
17425
|
|
package/package.json
CHANGED