@lambdacurry/arbor 0.20.12 → 0.20.13
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 +139 -19
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -1806,6 +1806,18 @@ var previewViewerGrantUses = sqliteTable("preview_viewer_grant_uses", {
|
|
|
1806
1806
|
profileId: text("profile_id").notNull().references(() => profiles.id),
|
|
1807
1807
|
consumedAt: ts("consumed_at").notNull()
|
|
1808
1808
|
});
|
|
1809
|
+
var livePreviewViewerGrantUses = sqliteTable("live_preview_viewer_grant_uses", {
|
|
1810
|
+
jti: text("jti").primaryKey(),
|
|
1811
|
+
threadId: text("thread_id").notNull().references(() => threads.id),
|
|
1812
|
+
profileId: text("profile_id").notNull().references(() => profiles.id),
|
|
1813
|
+
consumedAt: ts("consumed_at").notNull()
|
|
1814
|
+
});
|
|
1815
|
+
var threadLivePreviewSessions = sqliteTable("thread_live_preview_sessions", {
|
|
1816
|
+
threadId: text("thread_id").notNull().references(() => threads.id),
|
|
1817
|
+
profileId: text("profile_id").notNull().references(() => profiles.id),
|
|
1818
|
+
computerSessionId: text("computer_session_id").notNull().references(() => computerSessions.id),
|
|
1819
|
+
updatedAt: ts("updated_at").notNull()
|
|
1820
|
+
}, (t) => ({ pk: primaryKey({ columns: [t.threadId, t.profileId] }) }));
|
|
1809
1821
|
var threadInitiatives = sqliteTable("thread_initiatives", {
|
|
1810
1822
|
threadId: text("thread_id").notNull().references(() => threads.id),
|
|
1811
1823
|
initiativeId: text("initiative_id").notNull().references(() => initiatives.id)
|
|
@@ -16796,6 +16808,18 @@ var computerProfile = exports_external.looseObject({
|
|
|
16796
16808
|
recommendedEditingPrimitive: exports_external.string()
|
|
16797
16809
|
});
|
|
16798
16810
|
var computerRunPublicationState = exports_external.enum(["not-required", "durable", "not-durable", "unknown"]);
|
|
16811
|
+
var computerRunGitState = exports_external.looseObject({
|
|
16812
|
+
head: exports_external.string().nullable(),
|
|
16813
|
+
branch: exports_external.string().nullable(),
|
|
16814
|
+
upstream: exports_external.string().nullable(),
|
|
16815
|
+
dirty: exports_external.boolean(),
|
|
16816
|
+
remote: exports_external.looseObject({ name: exports_external.string(), repository: exports_external.string().nullable() }).nullable()
|
|
16817
|
+
});
|
|
16818
|
+
var computerRunPublication = exports_external.looseObject({
|
|
16819
|
+
state: computerRunPublicationState,
|
|
16820
|
+
reasonCode: exports_external.string(),
|
|
16821
|
+
remoteRef: exports_external.string().optional()
|
|
16822
|
+
});
|
|
16799
16823
|
var computerRunDurability = exports_external.looseObject({
|
|
16800
16824
|
workspace: exports_external.enum(["shared", "isolated"]),
|
|
16801
16825
|
parentMutation: exports_external.enum(["direct", "none"]),
|
|
@@ -16817,11 +16841,7 @@ var computerRunFinishAssessment = exports_external.looseObject({
|
|
|
16817
16841
|
currentHead: exports_external.string().nullable(),
|
|
16818
16842
|
currentDirty: exports_external.boolean().nullable(),
|
|
16819
16843
|
changedSinceStart: exports_external.boolean().nullable(),
|
|
16820
|
-
publication:
|
|
16821
|
-
state: computerRunPublicationState,
|
|
16822
|
-
reasonCode: exports_external.string(),
|
|
16823
|
-
remoteRef: exports_external.string().optional()
|
|
16824
|
-
})
|
|
16844
|
+
publication: computerRunPublication
|
|
16825
16845
|
}))
|
|
16826
16846
|
});
|
|
16827
16847
|
var operatingGuidanceEntry = exports_external.looseObject({
|
|
@@ -16839,7 +16859,12 @@ var computerAgentBrief = exports_external.looseObject({
|
|
|
16839
16859
|
backend: exports_external.enum(["worker-shell", "container"]),
|
|
16840
16860
|
containerProfile: exports_external.string().nullable(),
|
|
16841
16861
|
repositories: exports_external.array(exports_external.looseObject({ repository: exports_external.string(), path: exports_external.string() })),
|
|
16842
|
-
durableSnapshotId: id.nullable()
|
|
16862
|
+
durableSnapshotId: id.nullable(),
|
|
16863
|
+
repositoryState: exports_external.looseObject({
|
|
16864
|
+
source: exports_external.enum(["durable-snapshot", "workspace"]),
|
|
16865
|
+
remoteFreshness: exports_external.literal("unchecked"),
|
|
16866
|
+
guidance: exports_external.string()
|
|
16867
|
+
})
|
|
16843
16868
|
}),
|
|
16844
16869
|
activeRuns: exports_external.array(exports_external.looseObject({
|
|
16845
16870
|
runId: id,
|
|
@@ -16853,13 +16878,7 @@ var computerRunGitStart = exports_external.looseObject({
|
|
|
16853
16878
|
repositories: exports_external.array(exports_external.looseObject({
|
|
16854
16879
|
repository: exports_external.string(),
|
|
16855
16880
|
path: exports_external.string(),
|
|
16856
|
-
git:
|
|
16857
|
-
head: exports_external.string().nullable(),
|
|
16858
|
-
branch: exports_external.string().nullable(),
|
|
16859
|
-
upstream: exports_external.string().nullable(),
|
|
16860
|
-
dirty: exports_external.boolean(),
|
|
16861
|
-
remote: exports_external.looseObject({ name: exports_external.string(), repository: exports_external.string().nullable() }).nullable()
|
|
16862
|
-
}).nullable()
|
|
16881
|
+
git: computerRunGitState.nullable()
|
|
16863
16882
|
}))
|
|
16864
16883
|
});
|
|
16865
16884
|
var computerRun = exports_external.looseObject({
|
|
@@ -17212,6 +17231,19 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17212
17231
|
effectiveRecipe: redactedComputerRecipe,
|
|
17213
17232
|
materializedRecipe: redactedComputerRecipe.nullable()
|
|
17214
17233
|
}),
|
|
17234
|
+
livePreview: exports_external.looseObject({
|
|
17235
|
+
url: exports_external.string(),
|
|
17236
|
+
surface: exports_external.looseObject({
|
|
17237
|
+
command: exports_external.string(),
|
|
17238
|
+
cwd: exports_external.string(),
|
|
17239
|
+
port: exports_external.number().int(),
|
|
17240
|
+
healthPath: exports_external.string()
|
|
17241
|
+
}),
|
|
17242
|
+
configuredBy: exports_external.looseObject({
|
|
17243
|
+
scope: exports_external.enum(["topic", "thread"]),
|
|
17244
|
+
scopeId: id
|
|
17245
|
+
})
|
|
17246
|
+
}).nullable(),
|
|
17215
17247
|
topicBase: jsonObject.nullable(),
|
|
17216
17248
|
computer: jsonObject.nullable(),
|
|
17217
17249
|
activeGenerationId: id.nullable(),
|
|
@@ -17531,6 +17563,63 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17531
17563
|
durability: computerRunDurability,
|
|
17532
17564
|
finishAssessment: computerRunFinishAssessment.nullable()
|
|
17533
17565
|
}),
|
|
17566
|
+
computer_repo_work_status: exports_external.looseObject({
|
|
17567
|
+
runId: id,
|
|
17568
|
+
status: exports_external.enum(["blocked", "unknown", "reviewable", "in-progress"]),
|
|
17569
|
+
canFinishRun: exports_external.boolean(),
|
|
17570
|
+
durablyFinishable: exports_external.boolean(),
|
|
17571
|
+
finishAssessment: computerRunFinishAssessment,
|
|
17572
|
+
repositories: exports_external.array(exports_external.looseObject({
|
|
17573
|
+
repository: exports_external.string(),
|
|
17574
|
+
path: exports_external.string(),
|
|
17575
|
+
start: computerRunGitState.nullable(),
|
|
17576
|
+
current: computerRunGitState.nullable(),
|
|
17577
|
+
changedSinceRunStart: exports_external.boolean().nullable(),
|
|
17578
|
+
publication: computerRunPublication,
|
|
17579
|
+
pullRequest: exports_external.looseObject({
|
|
17580
|
+
state: exports_external.enum(["none", "head-mismatch", "open", "merged", "closed", "unknown"]),
|
|
17581
|
+
number: exports_external.number().int().positive().optional(),
|
|
17582
|
+
url: exports_external.string().optional(),
|
|
17583
|
+
headSha: exports_external.string().optional(),
|
|
17584
|
+
baseRef: exports_external.string().optional(),
|
|
17585
|
+
draft: exports_external.boolean().optional()
|
|
17586
|
+
}),
|
|
17587
|
+
ci: exports_external.looseObject({
|
|
17588
|
+
state: exports_external.enum(["none", "pending", "passed", "failed", "unknown"]),
|
|
17589
|
+
total: exports_external.number().int().min(0),
|
|
17590
|
+
pending: exports_external.number().int().min(0),
|
|
17591
|
+
passed: exports_external.number().int().min(0),
|
|
17592
|
+
failed: exports_external.number().int().min(0)
|
|
17593
|
+
}),
|
|
17594
|
+
review: exports_external.looseObject({
|
|
17595
|
+
state: exports_external.enum(["not-applicable", "none", "approved", "changes-requested", "unknown"]),
|
|
17596
|
+
approvals: exports_external.number().int().min(0),
|
|
17597
|
+
changesRequested: exports_external.number().int().min(0)
|
|
17598
|
+
}),
|
|
17599
|
+
githubProof: exports_external.looseObject({
|
|
17600
|
+
state: exports_external.enum(["known", "unknown"]),
|
|
17601
|
+
reasonCode: exports_external.string()
|
|
17602
|
+
}),
|
|
17603
|
+
state: exports_external.enum([
|
|
17604
|
+
"unchanged",
|
|
17605
|
+
"working",
|
|
17606
|
+
"committed-local",
|
|
17607
|
+
"publication-unknown",
|
|
17608
|
+
"pushed-durable",
|
|
17609
|
+
"github-unknown",
|
|
17610
|
+
"pr-head-mismatch",
|
|
17611
|
+
"pr-open",
|
|
17612
|
+
"ci-pending",
|
|
17613
|
+
"reviewable",
|
|
17614
|
+
"merged"
|
|
17615
|
+
]),
|
|
17616
|
+
retrySafety: exports_external.looseObject({
|
|
17617
|
+
push: exports_external.enum(["not-needed", "safe", "unknown"]),
|
|
17618
|
+
prCreate: exports_external.enum(["not-needed", "safe", "manual", "unknown"])
|
|
17619
|
+
}),
|
|
17620
|
+
nextAction: exports_external.string()
|
|
17621
|
+
}))
|
|
17622
|
+
}),
|
|
17534
17623
|
computer_run_receipt: exports_external.looseObject({
|
|
17535
17624
|
receipt: computerRunReceipt
|
|
17536
17625
|
}),
|
|
@@ -17568,7 +17657,15 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17568
17657
|
stderr: exports_external.string().optional(),
|
|
17569
17658
|
truncated: exports_external.boolean().optional(),
|
|
17570
17659
|
nextCursor: exports_external.string().optional(),
|
|
17571
|
-
exitCode: exports_external.number().int().nullable().optional()
|
|
17660
|
+
exitCode: exports_external.number().int().nullable().optional(),
|
|
17661
|
+
activity: exports_external.looseObject({
|
|
17662
|
+
state: exports_external.enum(["output", "compute", "quiet", "terminal", "unknown"]),
|
|
17663
|
+
observedAt: timestamp,
|
|
17664
|
+
outputAdvanced: exports_external.boolean(),
|
|
17665
|
+
cpuPercent: exports_external.number().min(0).nullable(),
|
|
17666
|
+
processCount: exports_external.number().int().min(0).nullable(),
|
|
17667
|
+
reasonCode: exports_external.string()
|
|
17668
|
+
}).optional()
|
|
17572
17669
|
}),
|
|
17573
17670
|
computer_process_terminate: exports_external.looseObject({
|
|
17574
17671
|
status: exports_external.string(),
|
|
@@ -17766,7 +17863,8 @@ var OUTPUT_SHAPERS = {
|
|
|
17766
17863
|
["nextCursor", result.nextCursor],
|
|
17767
17864
|
["endedAt", result.endedAt],
|
|
17768
17865
|
["durationMs", result.durationMs],
|
|
17769
|
-
["exitCode", result.exitCode]
|
|
17866
|
+
["exitCode", result.exitCode],
|
|
17867
|
+
["activity", result.activity]
|
|
17770
17868
|
]),
|
|
17771
17869
|
computer_process_terminate: (result) => defined([
|
|
17772
17870
|
["status", result.status],
|
|
@@ -17908,6 +18006,7 @@ var MCP_TOOL_ANNOTATIONS = {
|
|
|
17908
18006
|
computer_open: additive,
|
|
17909
18007
|
computer_reprovision: destructiveIdempotent,
|
|
17910
18008
|
computer_run_start: additive,
|
|
18009
|
+
computer_repo_work_status: readOnly,
|
|
17911
18010
|
computer_run_finish: idempotent,
|
|
17912
18011
|
computer_run_receipt: readOnly,
|
|
17913
18012
|
computer_runs: readOnly,
|
|
@@ -17982,6 +18081,14 @@ var PAGINATION_INPUT = {
|
|
|
17982
18081
|
limit: exports_external.number().int().min(1).optional().describe("max items to return — enables pagination"),
|
|
17983
18082
|
cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)")
|
|
17984
18083
|
};
|
|
18084
|
+
var LIVE_PREVIEW_CONFIG_INPUT = {
|
|
18085
|
+
livePreview: exports_external.object({
|
|
18086
|
+
command: exports_external.string().min(1).max(4000).describe("explicit project preview command"),
|
|
18087
|
+
cwd: exports_external.string().startsWith("/workspace/").describe("workspace directory containing the project"),
|
|
18088
|
+
port: exports_external.number().int().min(1).max(65535).describe("local HTTP/WebSocket port"),
|
|
18089
|
+
healthPath: exports_external.string().startsWith("/").describe("HTTP health path checked before proxying")
|
|
18090
|
+
}).nullable().optional().describe("one inherited Thread Live Preview startup surface; null disables an inherited surface. This is runtime policy and does not change Computer recipe identity")
|
|
18091
|
+
};
|
|
17985
18092
|
var ACTION_DEFINITIONS = [
|
|
17986
18093
|
{
|
|
17987
18094
|
name: "server_info",
|
|
@@ -18253,7 +18360,8 @@ var ACTION_DEFINITIONS = [
|
|
|
18253
18360
|
backend: exports_external.enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
|
|
18254
18361
|
containerProfile: exports_external.string().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.3.3, 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"),
|
|
18255
18362
|
setupScript: exports_external.string().nullable().optional().describe("optional strict Bash setup run after connected repositories materialize"),
|
|
18256
|
-
repositories: exports_external.array(exports_external.string()).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")
|
|
18363
|
+
repositories: exports_external.array(exports_external.string()).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"),
|
|
18364
|
+
...LIVE_PREVIEW_CONFIG_INPUT
|
|
18257
18365
|
},
|
|
18258
18366
|
surfaces: ["mcp", "cli"],
|
|
18259
18367
|
toolset: "structure",
|
|
@@ -18268,7 +18376,8 @@ var ACTION_DEFINITIONS = [
|
|
|
18268
18376
|
backend: exports_external.enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
|
|
18269
18377
|
containerProfile: exports_external.string().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.3.3, 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"),
|
|
18270
18378
|
setupScript: exports_external.string().nullable().optional().describe("optional strict Bash setup run after connected repositories materialize"),
|
|
18271
|
-
repositories: exports_external.array(exports_external.string()).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")
|
|
18379
|
+
repositories: exports_external.array(exports_external.string()).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"),
|
|
18380
|
+
...LIVE_PREVIEW_CONFIG_INPUT
|
|
18272
18381
|
},
|
|
18273
18382
|
surfaces: ["mcp", "cli"],
|
|
18274
18383
|
toolset: "structure",
|
|
@@ -18288,7 +18397,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18288
18397
|
{
|
|
18289
18398
|
name: "computer_open",
|
|
18290
18399
|
title: "Open a Thread computer",
|
|
18291
|
-
description: "Open or resume this Thread's project environment for filesystem or command work. A safe living-profile revision drift is reconciled automatically by replacing the generation, restoring supported state, and returning reconciliation metadata; structural recipe changes still fail explicitly with computer_reprovision as the suggested action. Every configured repository is re-authorized through its explicit GitHub connection; a fresh reusable base clones it with a request-scoped contents:read credential before strict setup runs, while a restore receives no credential. Returns computerSessionId — pass it unchanged to later Computer tools and cited work — plus a compact Agent Brief with Thread objective, scoped Space/Topic guidance and provenance, durable parent snapshot, repositories, and active Runs; the selected profile contract; a resolved capabilities card; workspaceRoot; each materialized repositories[].path; and defaultCwd. Omitted computer_exec.cwd uses defaultCwd: the single checkout when exactly one repository is configured, workspaceRoot otherwise.",
|
|
18400
|
+
description: "Open or resume this Thread's project environment for filesystem or command work. A safe living-profile revision drift is reconciled automatically by replacing the generation, restoring supported state, and returning reconciliation metadata; structural recipe changes still fail explicitly with computer_reprovision as the suggested action. Every configured repository is re-authorized through its explicit GitHub connection; a fresh reusable base clones it with a request-scoped contents:read credential before strict setup runs, while a restore receives no credential. Returns computerSessionId — pass it unchanged to later Computer tools and cited work — plus a compact Agent Brief with Thread objective, scoped Space/Topic guidance and provenance, durable parent snapshot, repositories, explicit unchecked remote-freshness guidance, and active Runs; the selected profile contract; a resolved capabilities card; workspaceRoot; each materialized repositories[].path; and defaultCwd. Omitted computer_exec.cwd uses defaultCwd: the single checkout when exactly one repository is configured, workspaceRoot otherwise.",
|
|
18292
18401
|
inputSchema: {
|
|
18293
18402
|
threadId: exports_external.string().describe("the Arbor Thread whose stable computer to open, thr_…"),
|
|
18294
18403
|
vcpus: exports_external.number().int().min(1).max(4).optional().describe("optional container vCPU request"),
|
|
@@ -18325,6 +18434,17 @@ var ACTION_DEFINITIONS = [
|
|
|
18325
18434
|
toolset: "loop",
|
|
18326
18435
|
run: forward("computer_runtime.run_start")
|
|
18327
18436
|
},
|
|
18437
|
+
{
|
|
18438
|
+
name: "computer_repo_work_status",
|
|
18439
|
+
title: "Inspect repository finish state",
|
|
18440
|
+
description: "READ ONLY: resolve repository-finish state for an active isolated WRITE Run from authoritative Git remote proof plus GitHub PR, CI, and review reads; the bounded inspection uses three batched provider exec phases and at most four GitHub REST calls per eligible repository. It reports durable state, explicit push/PR retrySafety, known PR-head mismatches versus unavailable GitHub proof, the next action, and Run finishability; it never commits, pushes, creates a PR, merges, or deploys.",
|
|
18441
|
+
inputSchema: {
|
|
18442
|
+
runId: exports_external.string().describe("the active isolated WRITE Run to inspect, run_…")
|
|
18443
|
+
},
|
|
18444
|
+
surfaces: ["computer-mcp", "computer-cli"],
|
|
18445
|
+
toolset: "loop",
|
|
18446
|
+
run: forward("computer_runtime.repo_work_status")
|
|
18447
|
+
},
|
|
18328
18448
|
{
|
|
18329
18449
|
name: "computer_run_finish",
|
|
18330
18450
|
title: "Finish a run",
|
|
@@ -18385,7 +18505,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18385
18505
|
{
|
|
18386
18506
|
name: "computer_process_read",
|
|
18387
18507
|
title: "Read a background process",
|
|
18388
|
-
description: "READ ONLY: Tail one process returned by computer_exec(background=true). With no cursor, returns only the latest small output window; pass nextCursor on the next read to receive only newer output. Defaults to 4 KB total and allows an explicit larger read up to 64 KB. Once terminal, also returns the final exit result.",
|
|
18508
|
+
description: "READ ONLY: Tail one process returned by computer_exec(background=true). With no cursor, returns only the latest small output window; pass nextCursor on the next read to receive only newer output. Defaults to 4 KB total and allows an explicit larger read up to 64 KB. Returns a compact activity receipt that distinguishes fresh output, active CPU work, quiet running, terminal state, and unavailable telemetry without exposing raw process tables. Once terminal, also returns the final exit result.",
|
|
18389
18509
|
inputSchema: {
|
|
18390
18510
|
computerSessionId: exports_external.string().optional().describe("the computerSessionId returned by computer_open, cms_…; required unless runId is supplied"),
|
|
18391
18511
|
runId: exports_external.string().optional().describe("the Run that owns this process, if it was started inside a Run"),
|
package/package.json
CHANGED