@lambdacurry/arbor 0.20.11 → 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 +207 -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)
|
|
@@ -16795,17 +16807,78 @@ var computerProfile = exports_external.looseObject({
|
|
|
16795
16807
|
tools: exports_external.array(exports_external.string()),
|
|
16796
16808
|
recommendedEditingPrimitive: exports_external.string()
|
|
16797
16809
|
});
|
|
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
|
+
});
|
|
16823
|
+
var computerRunDurability = exports_external.looseObject({
|
|
16824
|
+
workspace: exports_external.enum(["shared", "isolated"]),
|
|
16825
|
+
parentMutation: exports_external.enum(["direct", "none"]),
|
|
16826
|
+
providerExecution: exports_external.enum(["parent", "disposable"]),
|
|
16827
|
+
finishDestroysExecution: exports_external.boolean(),
|
|
16828
|
+
baseSnapshotId: id.nullable(),
|
|
16829
|
+
gitPublication: exports_external.looseObject({
|
|
16830
|
+
state: computerRunPublicationState,
|
|
16831
|
+
reasonCode: exports_external.string()
|
|
16832
|
+
})
|
|
16833
|
+
});
|
|
16834
|
+
var computerRunFinishAssessment = exports_external.looseObject({
|
|
16835
|
+
state: exports_external.enum(["safe", "blocked", "unknown"]),
|
|
16836
|
+
requiresDiscard: exports_external.boolean(),
|
|
16837
|
+
repositories: exports_external.array(exports_external.looseObject({
|
|
16838
|
+
repository: exports_external.string(),
|
|
16839
|
+
path: exports_external.string(),
|
|
16840
|
+
startHead: exports_external.string().nullable(),
|
|
16841
|
+
currentHead: exports_external.string().nullable(),
|
|
16842
|
+
currentDirty: exports_external.boolean().nullable(),
|
|
16843
|
+
changedSinceStart: exports_external.boolean().nullable(),
|
|
16844
|
+
publication: computerRunPublication
|
|
16845
|
+
}))
|
|
16846
|
+
});
|
|
16847
|
+
var operatingGuidanceEntry = exports_external.looseObject({
|
|
16848
|
+
class: exports_external.literal("guidance"),
|
|
16849
|
+
scope: exports_external.enum(["space", "topic"]),
|
|
16850
|
+
sourceId: id,
|
|
16851
|
+
strength: exports_external.literal("recommended"),
|
|
16852
|
+
message: exports_external.string()
|
|
16853
|
+
});
|
|
16854
|
+
var computerAgentBrief = exports_external.looseObject({
|
|
16855
|
+
work: exports_external.looseObject({ threadId: id, title: exports_external.string(), objective: exports_external.string() }),
|
|
16856
|
+
guidance: exports_external.array(operatingGuidanceEntry),
|
|
16857
|
+
computer: exports_external.looseObject({
|
|
16858
|
+
computerId: id,
|
|
16859
|
+
backend: exports_external.enum(["worker-shell", "container"]),
|
|
16860
|
+
containerProfile: exports_external.string().nullable(),
|
|
16861
|
+
repositories: exports_external.array(exports_external.looseObject({ repository: exports_external.string(), path: exports_external.string() })),
|
|
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
|
+
})
|
|
16868
|
+
}),
|
|
16869
|
+
activeRuns: exports_external.array(exports_external.looseObject({
|
|
16870
|
+
runId: id,
|
|
16871
|
+
label: exports_external.string().nullable(),
|
|
16872
|
+
mode: exports_external.enum(["read", "write"]),
|
|
16873
|
+
execution: exports_external.enum(["shared", "isolated"]),
|
|
16874
|
+
status: exports_external.enum(["active", "finished", "failed", "cancelled"])
|
|
16875
|
+
}))
|
|
16876
|
+
});
|
|
16798
16877
|
var computerRunGitStart = exports_external.looseObject({
|
|
16799
16878
|
repositories: exports_external.array(exports_external.looseObject({
|
|
16800
16879
|
repository: exports_external.string(),
|
|
16801
16880
|
path: exports_external.string(),
|
|
16802
|
-
git:
|
|
16803
|
-
head: exports_external.string().nullable(),
|
|
16804
|
-
branch: exports_external.string().nullable(),
|
|
16805
|
-
upstream: exports_external.string().nullable(),
|
|
16806
|
-
dirty: exports_external.boolean(),
|
|
16807
|
-
remote: exports_external.looseObject({ name: exports_external.string(), repository: exports_external.string().nullable() }).nullable()
|
|
16808
|
-
}).nullable()
|
|
16881
|
+
git: computerRunGitState.nullable()
|
|
16809
16882
|
}))
|
|
16810
16883
|
});
|
|
16811
16884
|
var computerRun = exports_external.looseObject({
|
|
@@ -16820,6 +16893,7 @@ var computerRun = exports_external.looseObject({
|
|
|
16820
16893
|
workspaceDir: exports_external.string(),
|
|
16821
16894
|
baseSnapshotId: id.nullable(),
|
|
16822
16895
|
gitStart: computerRunGitStart.nullable().optional(),
|
|
16896
|
+
durability: computerRunDurability,
|
|
16823
16897
|
status: exports_external.enum(["active", "finished", "failed", "cancelled"]),
|
|
16824
16898
|
label: exports_external.string().nullable(),
|
|
16825
16899
|
reason: exports_external.string().nullable(),
|
|
@@ -16842,6 +16916,8 @@ var computerRunReceipt = exports_external.looseObject({
|
|
|
16842
16916
|
workspace: exports_external.looseObject({ dir: exports_external.string() }),
|
|
16843
16917
|
baseSnapshotId: id.nullable(),
|
|
16844
16918
|
gitStart: computerRunGitStart.nullable().optional(),
|
|
16919
|
+
durability: computerRunDurability,
|
|
16920
|
+
finishAssessment: computerRunFinishAssessment.nullable(),
|
|
16845
16921
|
status: exports_external.enum(["active", "finished", "failed", "cancelled"]),
|
|
16846
16922
|
outcome: exports_external.enum(["finished", "failed", "cancelled"]).nullable(),
|
|
16847
16923
|
reason: exports_external.string().nullable(),
|
|
@@ -17155,6 +17231,19 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17155
17231
|
effectiveRecipe: redactedComputerRecipe,
|
|
17156
17232
|
materializedRecipe: redactedComputerRecipe.nullable()
|
|
17157
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(),
|
|
17158
17247
|
topicBase: jsonObject.nullable(),
|
|
17159
17248
|
computer: jsonObject.nullable(),
|
|
17160
17249
|
activeGenerationId: id.nullable(),
|
|
@@ -17450,6 +17539,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17450
17539
|
repositories: exports_external.array(exports_external.looseObject({ repository: exports_external.string(), path: exports_external.string() })),
|
|
17451
17540
|
defaultCwd: exports_external.string(),
|
|
17452
17541
|
capabilities: computerCapabilityCard,
|
|
17542
|
+
agentBrief: computerAgentBrief,
|
|
17453
17543
|
runtime: jsonObject,
|
|
17454
17544
|
reconciliation: exports_external.looseObject({
|
|
17455
17545
|
action: exports_external.literal("automatic_reprovision"),
|
|
@@ -17463,11 +17553,72 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17463
17553
|
execution: exports_external.enum(["shared", "isolated"]),
|
|
17464
17554
|
baseSnapshotId: id.nullable(),
|
|
17465
17555
|
gitStart: computerRunGitStart.nullable().optional(),
|
|
17556
|
+
durability: computerRunDurability,
|
|
17557
|
+
guidance: exports_external.array(operatingGuidanceEntry),
|
|
17466
17558
|
status: exports_external.string()
|
|
17467
17559
|
}),
|
|
17468
17560
|
computer_run_finish: exports_external.looseObject({
|
|
17469
17561
|
status: exports_external.string(),
|
|
17470
|
-
replayed: exports_external.boolean()
|
|
17562
|
+
replayed: exports_external.boolean(),
|
|
17563
|
+
durability: computerRunDurability,
|
|
17564
|
+
finishAssessment: computerRunFinishAssessment.nullable()
|
|
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
|
+
}))
|
|
17471
17622
|
}),
|
|
17472
17623
|
computer_run_receipt: exports_external.looseObject({
|
|
17473
17624
|
receipt: computerRunReceipt
|
|
@@ -17506,7 +17657,15 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17506
17657
|
stderr: exports_external.string().optional(),
|
|
17507
17658
|
truncated: exports_external.boolean().optional(),
|
|
17508
17659
|
nextCursor: exports_external.string().optional(),
|
|
17509
|
-
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()
|
|
17510
17669
|
}),
|
|
17511
17670
|
computer_process_terminate: exports_external.looseObject({
|
|
17512
17671
|
status: exports_external.string(),
|
|
@@ -17519,6 +17678,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17519
17678
|
backend: exports_external.enum(["worker-shell", "container"]),
|
|
17520
17679
|
profile: computerProfile.nullable(),
|
|
17521
17680
|
capabilities: computerCapabilityCard,
|
|
17681
|
+
agentBrief: computerAgentBrief,
|
|
17522
17682
|
runtime: jsonObject
|
|
17523
17683
|
}),
|
|
17524
17684
|
computer_verify: exports_external.looseObject({
|
|
@@ -17673,6 +17833,8 @@ var OUTPUT_SHAPERS = {
|
|
|
17673
17833
|
["execution", run.execution],
|
|
17674
17834
|
["baseSnapshotId", run.baseSnapshotId],
|
|
17675
17835
|
["gitStart", run.gitStart],
|
|
17836
|
+
["durability", run.durability],
|
|
17837
|
+
["guidance", result.guidance],
|
|
17676
17838
|
["status", run.status]
|
|
17677
17839
|
]);
|
|
17678
17840
|
},
|
|
@@ -17680,7 +17842,9 @@ var OUTPUT_SHAPERS = {
|
|
|
17680
17842
|
const run = record2(result.run) ?? {};
|
|
17681
17843
|
return defined([
|
|
17682
17844
|
["status", run.status],
|
|
17683
|
-
["replayed", result.replayed]
|
|
17845
|
+
["replayed", result.replayed],
|
|
17846
|
+
["durability", run.durability],
|
|
17847
|
+
["finishAssessment", result.finishAssessment]
|
|
17684
17848
|
]);
|
|
17685
17849
|
},
|
|
17686
17850
|
computer_exec: (result, input) => defined([
|
|
@@ -17699,7 +17863,8 @@ var OUTPUT_SHAPERS = {
|
|
|
17699
17863
|
["nextCursor", result.nextCursor],
|
|
17700
17864
|
["endedAt", result.endedAt],
|
|
17701
17865
|
["durationMs", result.durationMs],
|
|
17702
|
-
["exitCode", result.exitCode]
|
|
17866
|
+
["exitCode", result.exitCode],
|
|
17867
|
+
["activity", result.activity]
|
|
17703
17868
|
]),
|
|
17704
17869
|
computer_process_terminate: (result) => defined([
|
|
17705
17870
|
["status", result.status],
|
|
@@ -17841,6 +18006,7 @@ var MCP_TOOL_ANNOTATIONS = {
|
|
|
17841
18006
|
computer_open: additive,
|
|
17842
18007
|
computer_reprovision: destructiveIdempotent,
|
|
17843
18008
|
computer_run_start: additive,
|
|
18009
|
+
computer_repo_work_status: readOnly,
|
|
17844
18010
|
computer_run_finish: idempotent,
|
|
17845
18011
|
computer_run_receipt: readOnly,
|
|
17846
18012
|
computer_runs: readOnly,
|
|
@@ -17915,6 +18081,14 @@ var PAGINATION_INPUT = {
|
|
|
17915
18081
|
limit: exports_external.number().int().min(1).optional().describe("max items to return — enables pagination"),
|
|
17916
18082
|
cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)")
|
|
17917
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
|
+
};
|
|
17918
18092
|
var ACTION_DEFINITIONS = [
|
|
17919
18093
|
{
|
|
17920
18094
|
name: "server_info",
|
|
@@ -18186,7 +18360,8 @@ var ACTION_DEFINITIONS = [
|
|
|
18186
18360
|
backend: exports_external.enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
|
|
18187
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"),
|
|
18188
18362
|
setupScript: exports_external.string().nullable().optional().describe("optional strict Bash setup run after connected repositories materialize"),
|
|
18189
|
-
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
|
|
18190
18365
|
},
|
|
18191
18366
|
surfaces: ["mcp", "cli"],
|
|
18192
18367
|
toolset: "structure",
|
|
@@ -18201,7 +18376,8 @@ var ACTION_DEFINITIONS = [
|
|
|
18201
18376
|
backend: exports_external.enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
|
|
18202
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"),
|
|
18203
18378
|
setupScript: exports_external.string().nullable().optional().describe("optional strict Bash setup run after connected repositories materialize"),
|
|
18204
|
-
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
|
|
18205
18381
|
},
|
|
18206
18382
|
surfaces: ["mcp", "cli"],
|
|
18207
18383
|
toolset: "structure",
|
|
@@ -18221,7 +18397,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18221
18397
|
{
|
|
18222
18398
|
name: "computer_open",
|
|
18223
18399
|
title: "Open a Thread computer",
|
|
18224
|
-
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
|
|
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.",
|
|
18225
18401
|
inputSchema: {
|
|
18226
18402
|
threadId: exports_external.string().describe("the Arbor Thread whose stable computer to open, thr_…"),
|
|
18227
18403
|
vcpus: exports_external.number().int().min(1).max(4).optional().describe("optional container vCPU request"),
|
|
@@ -18247,7 +18423,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18247
18423
|
{
|
|
18248
18424
|
name: "computer_run_start",
|
|
18249
18425
|
title: "Start a run",
|
|
18250
|
-
description: "Start one unit of work inside an opened Thread computer. Write Runs default to isolated execution restored from the Computer's current base snapshot, so independent work does not collide. For intentional live collaboration, pass execution='shared' and the Run works directly in the Thread Computer alongside other shared Runs. Read Runs always share. All placements present the same /workspace layout; pass runId to Run-aware Computer operations and Arbor routes them correctly.
|
|
18426
|
+
description: "Start one unit of work inside an opened Thread computer. Write Runs default to isolated execution restored from the Computer's current base snapshot, so independent work does not collide. For intentional live collaboration, pass execution='shared' and the Run works directly in the Thread Computer alongside other shared Runs. Read Runs always share. All placements present the same /workspace layout; pass runId to Run-aware Computer operations and Arbor routes them correctly. An isolated WRITE Run does not mutate the parent Computer, its provider environment is disposable, and finish destroys that environment. The start result states those durability facts and returns the inherited scoped guidance; follow any durability-first project guidance before broad validation. Git publication remains unknown until Arbor can prove a clean changed HEAD exists on the configured remote; a local commit, isolated filesystem, or Preview is not that proof. This creates no second Thread or durable Computer.",
|
|
18251
18427
|
inputSchema: {
|
|
18252
18428
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18253
18429
|
mode: exports_external.enum(["read", "write"]).describe("write for mutable work; read for shared inspection"),
|
|
@@ -18258,14 +18434,26 @@ var ACTION_DEFINITIONS = [
|
|
|
18258
18434
|
toolset: "loop",
|
|
18259
18435
|
run: forward("computer_runtime.run_start")
|
|
18260
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
|
+
},
|
|
18261
18448
|
{
|
|
18262
18449
|
name: "computer_run_finish",
|
|
18263
18450
|
title: "Finish a run",
|
|
18264
|
-
description: "Close a Run with its terminal outcome and the one line that explains it.
|
|
18451
|
+
description: "Close a Run with its terminal outcome and the one line that explains it. Before destroying an isolated WRITE environment, Arbor inspects bounded Git state: newly dirty work or a live remote check proving the new HEAD is absent blocks ordinary finish. Publication uncertainty remains explicitly unknown. Pass discard=true only when intentionally destroying work Arbor proved non-durable. Repeating the same outcome is a safe no-op, and the terminal receipt preserves the durability assessment.",
|
|
18265
18452
|
inputSchema: {
|
|
18266
18453
|
runId: exports_external.string().describe("the runId returned by computer_run_start, run_…"),
|
|
18267
18454
|
outcome: exports_external.enum(["finished", "failed", "cancelled"]).optional().describe("terminal outcome; defaults to finished"),
|
|
18268
|
-
reason: exports_external.string().max(500).optional().describe("one factual line on how this unit of work ended, e.g. what shipped or what broke")
|
|
18455
|
+
reason: exports_external.string().max(500).optional().describe("one factual line on how this unit of work ended, e.g. what shipped or what broke"),
|
|
18456
|
+
discard: exports_external.boolean().optional().describe("explicitly allow teardown when Arbor proved current Run work is not durable")
|
|
18269
18457
|
},
|
|
18270
18458
|
surfaces: ["computer-mcp", "computer-cli"],
|
|
18271
18459
|
toolset: "loop",
|
|
@@ -18274,7 +18462,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18274
18462
|
{
|
|
18275
18463
|
name: "computer_run_receipt",
|
|
18276
18464
|
title: "Read a run receipt",
|
|
18277
|
-
description: "READ ONLY: read one run's compact receipt — its purpose, actor, computer session, base snapshot and starting Git projection,
|
|
18465
|
+
description: "READ ONLY: read one run's compact receipt — its purpose, actor, computer session, base snapshot and starting Git projection, explicit isolation/durability contract, pre-teardown durability assessment when available (including publication that remains unknown unless proven), meaningful activity, and terminal outcome. Background work may appear as distilled labels/outcomes, but Arbor keeps no raw command transcript or process output. The receipt stays readable after the Run is terminal.",
|
|
18278
18466
|
inputSchema: {
|
|
18279
18467
|
runId: exports_external.string().describe("the run to read, run_… (from computer_run_start or computer_runs)")
|
|
18280
18468
|
},
|
|
@@ -18317,7 +18505,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18317
18505
|
{
|
|
18318
18506
|
name: "computer_process_read",
|
|
18319
18507
|
title: "Read a background process",
|
|
18320
|
-
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.",
|
|
18321
18509
|
inputSchema: {
|
|
18322
18510
|
computerSessionId: exports_external.string().optional().describe("the computerSessionId returned by computer_open, cms_…; required unless runId is supplied"),
|
|
18323
18511
|
runId: exports_external.string().optional().describe("the Run that owns this process, if it was started inside a Run"),
|
package/package.json
CHANGED