@lambdacurry/arbor 0.20.11 → 0.20.12

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.
Files changed (2) hide show
  1. package/dist/arbor.js +75 -7
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -16795,6 +16795,60 @@ var computerProfile = exports_external.looseObject({
16795
16795
  tools: exports_external.array(exports_external.string()),
16796
16796
  recommendedEditingPrimitive: exports_external.string()
16797
16797
  });
16798
+ var computerRunPublicationState = exports_external.enum(["not-required", "durable", "not-durable", "unknown"]);
16799
+ var computerRunDurability = exports_external.looseObject({
16800
+ workspace: exports_external.enum(["shared", "isolated"]),
16801
+ parentMutation: exports_external.enum(["direct", "none"]),
16802
+ providerExecution: exports_external.enum(["parent", "disposable"]),
16803
+ finishDestroysExecution: exports_external.boolean(),
16804
+ baseSnapshotId: id.nullable(),
16805
+ gitPublication: exports_external.looseObject({
16806
+ state: computerRunPublicationState,
16807
+ reasonCode: exports_external.string()
16808
+ })
16809
+ });
16810
+ var computerRunFinishAssessment = exports_external.looseObject({
16811
+ state: exports_external.enum(["safe", "blocked", "unknown"]),
16812
+ requiresDiscard: exports_external.boolean(),
16813
+ repositories: exports_external.array(exports_external.looseObject({
16814
+ repository: exports_external.string(),
16815
+ path: exports_external.string(),
16816
+ startHead: exports_external.string().nullable(),
16817
+ currentHead: exports_external.string().nullable(),
16818
+ currentDirty: exports_external.boolean().nullable(),
16819
+ changedSinceStart: exports_external.boolean().nullable(),
16820
+ publication: exports_external.looseObject({
16821
+ state: computerRunPublicationState,
16822
+ reasonCode: exports_external.string(),
16823
+ remoteRef: exports_external.string().optional()
16824
+ })
16825
+ }))
16826
+ });
16827
+ var operatingGuidanceEntry = exports_external.looseObject({
16828
+ class: exports_external.literal("guidance"),
16829
+ scope: exports_external.enum(["space", "topic"]),
16830
+ sourceId: id,
16831
+ strength: exports_external.literal("recommended"),
16832
+ message: exports_external.string()
16833
+ });
16834
+ var computerAgentBrief = exports_external.looseObject({
16835
+ work: exports_external.looseObject({ threadId: id, title: exports_external.string(), objective: exports_external.string() }),
16836
+ guidance: exports_external.array(operatingGuidanceEntry),
16837
+ computer: exports_external.looseObject({
16838
+ computerId: id,
16839
+ backend: exports_external.enum(["worker-shell", "container"]),
16840
+ containerProfile: exports_external.string().nullable(),
16841
+ repositories: exports_external.array(exports_external.looseObject({ repository: exports_external.string(), path: exports_external.string() })),
16842
+ durableSnapshotId: id.nullable()
16843
+ }),
16844
+ activeRuns: exports_external.array(exports_external.looseObject({
16845
+ runId: id,
16846
+ label: exports_external.string().nullable(),
16847
+ mode: exports_external.enum(["read", "write"]),
16848
+ execution: exports_external.enum(["shared", "isolated"]),
16849
+ status: exports_external.enum(["active", "finished", "failed", "cancelled"])
16850
+ }))
16851
+ });
16798
16852
  var computerRunGitStart = exports_external.looseObject({
16799
16853
  repositories: exports_external.array(exports_external.looseObject({
16800
16854
  repository: exports_external.string(),
@@ -16820,6 +16874,7 @@ var computerRun = exports_external.looseObject({
16820
16874
  workspaceDir: exports_external.string(),
16821
16875
  baseSnapshotId: id.nullable(),
16822
16876
  gitStart: computerRunGitStart.nullable().optional(),
16877
+ durability: computerRunDurability,
16823
16878
  status: exports_external.enum(["active", "finished", "failed", "cancelled"]),
16824
16879
  label: exports_external.string().nullable(),
16825
16880
  reason: exports_external.string().nullable(),
@@ -16842,6 +16897,8 @@ var computerRunReceipt = exports_external.looseObject({
16842
16897
  workspace: exports_external.looseObject({ dir: exports_external.string() }),
16843
16898
  baseSnapshotId: id.nullable(),
16844
16899
  gitStart: computerRunGitStart.nullable().optional(),
16900
+ durability: computerRunDurability,
16901
+ finishAssessment: computerRunFinishAssessment.nullable(),
16845
16902
  status: exports_external.enum(["active", "finished", "failed", "cancelled"]),
16846
16903
  outcome: exports_external.enum(["finished", "failed", "cancelled"]).nullable(),
16847
16904
  reason: exports_external.string().nullable(),
@@ -17450,6 +17507,7 @@ var MCP_OUTPUT_SCHEMAS = {
17450
17507
  repositories: exports_external.array(exports_external.looseObject({ repository: exports_external.string(), path: exports_external.string() })),
17451
17508
  defaultCwd: exports_external.string(),
17452
17509
  capabilities: computerCapabilityCard,
17510
+ agentBrief: computerAgentBrief,
17453
17511
  runtime: jsonObject,
17454
17512
  reconciliation: exports_external.looseObject({
17455
17513
  action: exports_external.literal("automatic_reprovision"),
@@ -17463,11 +17521,15 @@ var MCP_OUTPUT_SCHEMAS = {
17463
17521
  execution: exports_external.enum(["shared", "isolated"]),
17464
17522
  baseSnapshotId: id.nullable(),
17465
17523
  gitStart: computerRunGitStart.nullable().optional(),
17524
+ durability: computerRunDurability,
17525
+ guidance: exports_external.array(operatingGuidanceEntry),
17466
17526
  status: exports_external.string()
17467
17527
  }),
17468
17528
  computer_run_finish: exports_external.looseObject({
17469
17529
  status: exports_external.string(),
17470
- replayed: exports_external.boolean()
17530
+ replayed: exports_external.boolean(),
17531
+ durability: computerRunDurability,
17532
+ finishAssessment: computerRunFinishAssessment.nullable()
17471
17533
  }),
17472
17534
  computer_run_receipt: exports_external.looseObject({
17473
17535
  receipt: computerRunReceipt
@@ -17519,6 +17581,7 @@ var MCP_OUTPUT_SCHEMAS = {
17519
17581
  backend: exports_external.enum(["worker-shell", "container"]),
17520
17582
  profile: computerProfile.nullable(),
17521
17583
  capabilities: computerCapabilityCard,
17584
+ agentBrief: computerAgentBrief,
17522
17585
  runtime: jsonObject
17523
17586
  }),
17524
17587
  computer_verify: exports_external.looseObject({
@@ -17673,6 +17736,8 @@ var OUTPUT_SHAPERS = {
17673
17736
  ["execution", run.execution],
17674
17737
  ["baseSnapshotId", run.baseSnapshotId],
17675
17738
  ["gitStart", run.gitStart],
17739
+ ["durability", run.durability],
17740
+ ["guidance", result.guidance],
17676
17741
  ["status", run.status]
17677
17742
  ]);
17678
17743
  },
@@ -17680,7 +17745,9 @@ var OUTPUT_SHAPERS = {
17680
17745
  const run = record2(result.run) ?? {};
17681
17746
  return defined([
17682
17747
  ["status", run.status],
17683
- ["replayed", result.replayed]
17748
+ ["replayed", result.replayed],
17749
+ ["durability", run.durability],
17750
+ ["finishAssessment", result.finishAssessment]
17684
17751
  ]);
17685
17752
  },
17686
17753
  computer_exec: (result, input) => defined([
@@ -18221,7 +18288,7 @@ var ACTION_DEFINITIONS = [
18221
18288
  {
18222
18289
  name: "computer_open",
18223
18290
  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 the selected profile contract (including GitHub CLI (gh) on bun-typescript-v1), 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.",
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.",
18225
18292
  inputSchema: {
18226
18293
  threadId: exports_external.string().describe("the Arbor Thread whose stable computer to open, thr_…"),
18227
18294
  vcpus: exports_external.number().int().min(1).max(4).optional().describe("optional container vCPU request"),
@@ -18247,7 +18314,7 @@ var ACTION_DEFINITIONS = [
18247
18314
  {
18248
18315
  name: "computer_run_start",
18249
18316
  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. Finish every Run with computer_run_finish, which destroys its isolated environment. This creates no second Thread or durable Computer.",
18317
+ 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
18318
  inputSchema: {
18252
18319
  computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
18253
18320
  mode: exports_external.enum(["read", "write"]).describe("write for mutable work; read for shared inspection"),
@@ -18261,11 +18328,12 @@ var ACTION_DEFINITIONS = [
18261
18328
  {
18262
18329
  name: "computer_run_finish",
18263
18330
  title: "Finish a run",
18264
- description: "Close a Run with its terminal outcome and the one line that explains it. Finishing an isolated write Run destroys its execution environment, so push or otherwise publish anything that must outlive the Run before finishing it. Repeating the same outcome is a safe no-op, and it keeps the reason the first caller settled a different one conflicts. Say what happened in reason: it is what computer_run_receipt shows a reader who was not here.",
18331
+ 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
18332
  inputSchema: {
18266
18333
  runId: exports_external.string().describe("the runId returned by computer_run_start, run_…"),
18267
18334
  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")
18335
+ 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"),
18336
+ discard: exports_external.boolean().optional().describe("explicitly allow teardown when Arbor proved current Run work is not durable")
18269
18337
  },
18270
18338
  surfaces: ["computer-mcp", "computer-cli"],
18271
18339
  toolset: "loop",
@@ -18274,7 +18342,7 @@ var ACTION_DEFINITIONS = [
18274
18342
  {
18275
18343
  name: "computer_run_receipt",
18276
18344
  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, execution placement, 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.",
18345
+ 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
18346
  inputSchema: {
18279
18347
  runId: exports_external.string().describe("the run to read, run_… (from computer_run_start or computer_runs)")
18280
18348
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.20.11",
3
+ "version": "0.20.12",
4
4
  "description": "The Arbor CLI — a shared workspace for people and agents. The human + headless-agent write path over Arbor's guarded operation surface.",
5
5
  "keywords": [
6
6
  "agents",