@lambdacurry/arbor 0.22.23 → 0.22.25
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 +31 -15
- 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.25",
|
|
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",
|
|
@@ -6636,6 +6636,7 @@ var computerRuns = sqliteTable("computer_runs", {
|
|
|
6636
6636
|
runtimeState: text("runtime_state").$type().notNull().default("shared"),
|
|
6637
6637
|
runtimeUpdatedAt: ts("runtime_updated_at"),
|
|
6638
6638
|
gitStart: text("git_start", { mode: "json" }).$type(),
|
|
6639
|
+
finishRequest: text("finish_request", { mode: "json" }).$type(),
|
|
6639
6640
|
status: text("status").$type().notNull().default("active"),
|
|
6640
6641
|
label: text("label"),
|
|
6641
6642
|
reason: text("reason"),
|
|
@@ -7909,7 +7910,7 @@ var computerRunFinishAssessment = looseObject({
|
|
|
7909
7910
|
state: _enum(["safe", "blocked", "unknown"]),
|
|
7910
7911
|
requiresDiscard: boolean2(),
|
|
7911
7912
|
repositories: array(looseObject({
|
|
7912
|
-
repository: string2(),
|
|
7913
|
+
repository: string2().nullable(),
|
|
7913
7914
|
path: string2(),
|
|
7914
7915
|
startHead: string2().nullable(),
|
|
7915
7916
|
currentHead: string2().nullable(),
|
|
@@ -7950,7 +7951,7 @@ var computerAgentBrief = looseObject({
|
|
|
7950
7951
|
});
|
|
7951
7952
|
var computerRunGitStart = looseObject({
|
|
7952
7953
|
repositories: array(looseObject({
|
|
7953
|
-
repository: string2(),
|
|
7954
|
+
repository: string2().nullable(),
|
|
7954
7955
|
path: string2(),
|
|
7955
7956
|
git: computerRunGitState.nullable()
|
|
7956
7957
|
}))
|
|
@@ -7995,6 +7996,21 @@ var computerRunReceipt2 = looseObject({
|
|
|
7995
7996
|
gitStart: computerRunGitStart.nullable().optional(),
|
|
7996
7997
|
durability: computerRunDurability,
|
|
7997
7998
|
finishAssessment: computerRunFinishAssessment.nullable(),
|
|
7999
|
+
finishRequest: looseObject({
|
|
8000
|
+
intentId: id,
|
|
8001
|
+
outcome: _enum(["finished", "failed", "cancelled"]),
|
|
8002
|
+
reason: string2().nullable(),
|
|
8003
|
+
discard: boolean2(),
|
|
8004
|
+
expectedCurrentSnapshotId: id,
|
|
8005
|
+
requestedAt: timestamp,
|
|
8006
|
+
updatedAt: timestamp,
|
|
8007
|
+
state: _enum(["pending", "rejected", "completed"]),
|
|
8008
|
+
phase: _enum(["quiescence", "git", "checkpoint", "release", "rejected"]),
|
|
8009
|
+
reasonCode: string2().nullable(),
|
|
8010
|
+
finishAssessment: computerRunFinishAssessment.nullable(),
|
|
8011
|
+
providerGeneration: number2().int().nonnegative().nullable(),
|
|
8012
|
+
releasedSnapshotId: id.nullable()
|
|
8013
|
+
}).nullable(),
|
|
7998
8014
|
status: _enum(["active", "finished", "failed", "cancelled"]),
|
|
7999
8015
|
outcome: _enum(["finished", "failed", "cancelled"]).nullable(),
|
|
8000
8016
|
reason: string2().nullable(),
|
|
@@ -9136,7 +9152,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
9136
9152
|
durablyFinishable: boolean2(),
|
|
9137
9153
|
finishAssessment: computerRunFinishAssessment,
|
|
9138
9154
|
repositories: array(looseObject({
|
|
9139
|
-
repository: string2(),
|
|
9155
|
+
repository: string2().nullable(),
|
|
9140
9156
|
path: string2(),
|
|
9141
9157
|
start: computerRunGitState.nullable(),
|
|
9142
9158
|
current: computerRunGitState.nullable(),
|
|
@@ -10022,7 +10038,7 @@ Arbor Computer is the complete software execution platform attached to Arbor's d
|
|
|
10022
10038
|
|
|
10023
10039
|
${ARBOR_FEEDBACK_GUIDANCE}
|
|
10024
10040
|
|
|
10025
|
-
1. ORIENT, CONFIGURE, AND AUTHORIZE. Start with provider-free get_computer(threadId) to inspect the effective inherited recipe, repository authorization, compatibility, recoverySafety, and durable lineage without contacting execution. Use set_organization_computer, set_space_computer, set_topic_computer, or set_thread_computer only when the corresponding complete sparse layer must be replaced; use github_repositories
|
|
10041
|
+
1. ORIENT, CONFIGURE, AND AUTHORIZE. Start with provider-free get_computer(threadId) to inspect the effective inherited recipe, repository authorization, compatibility, recoverySafety, and durable lineage without contacting execution. Use set_organization_computer, set_space_computer, set_topic_computer, or set_thread_computer only when the corresponding complete sparse layer must be replaced; use github_connect_repository with a known installed id, exact owner/name, or canonical GitHub URL, or use github_repositories when browsing, to authorize repositories at the narrowest scope that should inherit them. If github_repositories looks stale, github_refresh_installation reconciles the cached inventory from GitHub. computer_run_start(threadId, mode) is the front door: it attaches durable identity itself and starts an isolated write Run from the Thread's base snapshot without booting the parent. Each returned repository entry includes verified root instruction pointers when that repo has an AGENTS.md: read surfaced repository instructions before substantial edits or verification, then check for a nearer nested AGENTS.md once the target path is known. Repo-local instructions/scripts/config beat guessed formatter, test, lint, or build commands.
|
|
10026
10042
|
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.
|
|
10027
10043
|
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 and computer_process_terminate settle a provider-absent current-generation process from exact evidence; computer_run_suspend performs that bounded settlement internally and never replays unknown work. A still-active process returns a retryable busy state; an unknown current-generation mutation fail-closes. An isolated local commit or Preview is not Git publication; push coherent work and prove it with computer_repo_work_status before computer_run_finish destroys the final placement. discard=true with outcome failed or cancelled is the explicit choice to abandon unknown or proven non-durable work without replaying it.
|
|
10028
10044
|
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 advances the parent lineage — and computer_run_finish(runId) makes the final one; finishing the last active shared Run also stops the parent. An isolated Run Preview is durable review output, not adoption or a checkpoint. The internal provider-handle publication operations are not agent tools.
|
|
@@ -10176,9 +10192,9 @@ var ACTION_DEFINITIONS = [
|
|
|
10176
10192
|
{
|
|
10177
10193
|
name: "github_connect_repository",
|
|
10178
10194
|
title: "Connect a GitHub repository",
|
|
10179
|
-
description: "Connect or disconnect
|
|
10195
|
+
description: "Connect or disconnect an installed GitHub repository at organization, Space, Topic, or Thread scope; pass its installed id, exact owner/name, or canonical GitHub URL, so browsing the inventory is optional. The caller must manage that scope, GitHub installation coverage remains a separate gate, and get_computer shows the effective grant.",
|
|
10180
10196
|
inputSchema: {
|
|
10181
|
-
repositoryId: string2().describe("installed repository id from github_repositories
|
|
10197
|
+
repositoryId: string2().describe("installed repository id from github_repositories (ghr_…), exact owner/name, or canonical https://github.com/owner/name URL"),
|
|
10182
10198
|
scope: _enum(["organization", "space", "topic", "thread"]).describe("the Arbor scope that may use this repository's context; topic is the durable choice for a project every Thread under it develops"),
|
|
10183
10199
|
scopeId: string2().describe("id matching the selected scope"),
|
|
10184
10200
|
connected: boolean2().describe("true to connect; false to disconnect recoverably")
|
|
@@ -10664,7 +10680,7 @@ var ACTION_DEFINITIONS = [
|
|
|
10664
10680
|
inputSchema: {
|
|
10665
10681
|
backend: _enum(["worker-shell", "container"]).nullable().optional().describe("default execution tier, or null to use worker-shell"),
|
|
10666
10682
|
containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.2, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear"),
|
|
10667
|
-
setupScript: string2().nullable().optional().describe("optional strict Bash setup
|
|
10683
|
+
setupScript: string2().nullable().optional().describe("optional strict Bash setup for a fresh base after repositories materialize; install scoped tools in /workspace/.local/bin so exec finds them and snapshots retain them; null clears"),
|
|
10668
10684
|
repositories: array(string2()).max(MAX_COMPUTER_REPOSITORIES).nullable().optional().describe("connected GitHub repositories to materialize into a fresh reusable base and allow for later Git calls; [] clears and null inherits")
|
|
10669
10685
|
},
|
|
10670
10686
|
surfaces: ["computer-mcp", "cli"],
|
|
@@ -10679,7 +10695,7 @@ var ACTION_DEFINITIONS = [
|
|
|
10679
10695
|
spaceId: string2().describe("the Space, spc_…"),
|
|
10680
10696
|
backend: _enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
|
|
10681
10697
|
containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.2, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
|
|
10682
|
-
setupScript: string2().nullable().optional().describe("optional strict Bash setup
|
|
10698
|
+
setupScript: string2().nullable().optional().describe("optional strict Bash setup for a fresh base after repositories materialize; install scoped tools in /workspace/.local/bin so exec finds them and snapshots retain them; null clears"),
|
|
10683
10699
|
repositories: array(string2()).max(MAX_COMPUTER_REPOSITORIES).nullable().optional().describe("connected GitHub repositories to materialize into a fresh reusable base and allow for later Git calls; [] clears and null inherits")
|
|
10684
10700
|
},
|
|
10685
10701
|
surfaces: ["computer-mcp", "cli"],
|
|
@@ -10694,7 +10710,7 @@ var ACTION_DEFINITIONS = [
|
|
|
10694
10710
|
topicId: string2().describe("the Topic, top_…"),
|
|
10695
10711
|
backend: _enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
|
|
10696
10712
|
containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.2, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
|
|
10697
|
-
setupScript: string2().nullable().optional().describe("optional strict Bash setup
|
|
10713
|
+
setupScript: string2().nullable().optional().describe("optional strict Bash setup for a fresh base after repositories materialize; install scoped tools in /workspace/.local/bin so exec finds them and snapshots retain them"),
|
|
10698
10714
|
repositories: array(string2()).max(MAX_COMPUTER_REPOSITORIES).nullable().optional().describe("connected GitHub repositories to materialize into a fresh reusable base and allow for later Git calls; [] clears and null inherits"),
|
|
10699
10715
|
...LIVE_PREVIEW_CONFIG_INPUT
|
|
10700
10716
|
},
|
|
@@ -10710,7 +10726,7 @@ var ACTION_DEFINITIONS = [
|
|
|
10710
10726
|
threadId: string2().describe("the Thread, thr_…"),
|
|
10711
10727
|
backend: _enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
|
|
10712
10728
|
containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.2, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
|
|
10713
|
-
setupScript: string2().nullable().optional().describe("optional strict Bash setup
|
|
10729
|
+
setupScript: string2().nullable().optional().describe("optional strict Bash setup for a fresh base after repositories materialize; install scoped tools in /workspace/.local/bin so exec finds them and snapshots retain them"),
|
|
10714
10730
|
repositories: array(string2()).max(MAX_COMPUTER_REPOSITORIES).nullable().optional().describe("connected GitHub repositories to materialize into a fresh reusable base and allow for later Git calls; [] clears and null inherits"),
|
|
10715
10731
|
...LIVE_PREVIEW_CONFIG_INPUT
|
|
10716
10732
|
},
|
|
@@ -10790,7 +10806,7 @@ var ACTION_DEFINITIONS = [
|
|
|
10790
10806
|
{
|
|
10791
10807
|
name: "computer_repo_work_status",
|
|
10792
10808
|
title: "Inspect repository finish state",
|
|
10793
|
-
description: "Inspect
|
|
10809
|
+
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.",
|
|
10794
10810
|
inputSchema: {
|
|
10795
10811
|
runId: string2().describe("the active isolated WRITE Run to inspect, run_…")
|
|
10796
10812
|
},
|
|
@@ -10801,7 +10817,7 @@ var ACTION_DEFINITIONS = [
|
|
|
10801
10817
|
{
|
|
10802
10818
|
name: "computer_run_finish",
|
|
10803
10819
|
title: "Finish a run",
|
|
10804
|
-
description: "Finish a Run
|
|
10820
|
+
description: "Finish a Run with unread terminal output preserved for 30 days without caller drain; active/unknown work, failed preservation, incomplete Git discovery, or unsafe worktrees block release. The last shared Run stops the parent; to abandon an unknown or non-durable disposable Run, pass discard=true with outcome failed or cancelled and retry safely from its receipt.",
|
|
10805
10821
|
inputSchema: {
|
|
10806
10822
|
runId: string2().describe("the runId returned by computer_run_start, run_…"),
|
|
10807
10823
|
outcome: _enum(["finished", "failed", "cancelled"]).optional().describe("terminal outcome; defaults to finished"),
|
|
@@ -10815,7 +10831,7 @@ var ACTION_DEFINITIONS = [
|
|
|
10815
10831
|
{
|
|
10816
10832
|
name: "computer_run_receipt",
|
|
10817
10833
|
title: "Read a run receipt",
|
|
10818
|
-
description: "Inspect one Run's durable receipt during or after execution, including its Run-owned operation/activity state and a compact providerLifecycle journal (generation, last phase, typed reason) separate from command/process activity. Use this instead of parent computer_status; it returns compact history, not transcripts, and does not rewrite terminal reasonCode.",
|
|
10834
|
+
description: "Inspect one Run's durable receipt during or after execution, including its finishRequest, Run-owned operation/activity state, and a compact providerLifecycle journal (generation, last phase, typed reason) separate from command/process activity. Use this instead of parent computer_status; it returns compact history, not transcripts, and does not rewrite terminal reasonCode.",
|
|
10819
10835
|
inputSchema: {
|
|
10820
10836
|
runId: string2().describe("the run to read, run_… (from computer_run_start or computer_runs)")
|
|
10821
10837
|
},
|
|
@@ -10840,7 +10856,7 @@ var ACTION_DEFINITIONS = [
|
|
|
10840
10856
|
{
|
|
10841
10857
|
name: "computer_exec",
|
|
10842
10858
|
title: "Run a command",
|
|
10843
|
-
description: "Run
|
|
10859
|
+
description: "Run a shell command in runId with ambient GitHub authorization and /workspace/.local/bin on PATH; timeout kills the process. Observe running work with computer_process_read, use nextCursor for a truncated output page when needed, and finish without draining; after a missed response use computer_run_receipt.operations[].operationId with computer_process_read instead of repeating the mutation.",
|
|
10844
10860
|
inputSchema: {
|
|
10845
10861
|
computerSessionId: string2().optional().describe("legacy alternative to runId: a computerSessionId on that Computer, cms_…; required unless runId is supplied"),
|
|
10846
10862
|
command: string2().min(1).describe("the shell command to run"),
|
package/package.json
CHANGED