@lambdacurry/arbor 0.16.0 → 0.16.1

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 +142 -8
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -16727,6 +16727,27 @@ var computerProfile = exports_external.looseObject({
16727
16727
  tools: exports_external.array(exports_external.string()),
16728
16728
  recommendedEditingPrimitive: exports_external.string()
16729
16729
  });
16730
+ var computerCapabilityCard = exports_external.looseObject({
16731
+ capabilities: exports_external.array(exports_external.looseObject({
16732
+ id: exports_external.string(),
16733
+ state: exports_external.enum(["ready", "available"]),
16734
+ surface: exports_external.array(exports_external.string()),
16735
+ hint: exports_external.string().optional()
16736
+ })),
16737
+ diagnostics: exports_external.looseObject({
16738
+ backend: exports_external.enum(["worker-shell", "container"]),
16739
+ containerProfile: nullableString,
16740
+ runtimeActive: exports_external.boolean()
16741
+ })
16742
+ });
16743
+ var codeSymbol = exports_external.looseObject({
16744
+ namePath: exports_external.string(),
16745
+ kind: exports_external.string(),
16746
+ path: exports_external.string(),
16747
+ startLine: exports_external.number().optional(),
16748
+ endLine: exports_external.number().optional(),
16749
+ body: exports_external.string().optional()
16750
+ });
16730
16751
  var appBundleSourceProvenance = exports_external.looseObject({
16731
16752
  entryPath: exports_external.string(),
16732
16753
  artifactVersionSha256: exports_external.string(),
@@ -17311,6 +17332,7 @@ var MCP_OUTPUT_SCHEMAS = {
17311
17332
  profile: computerProfile.nullable(),
17312
17333
  startingSnapshot: snapshot.nullable(),
17313
17334
  materialized: checkpoint.nullable(),
17335
+ capabilities: computerCapabilityCard,
17314
17336
  runtime: jsonObject
17315
17337
  }),
17316
17338
  computer_reprovision: exports_external.looseObject({
@@ -17335,11 +17357,13 @@ var MCP_OUTPUT_SCHEMAS = {
17335
17357
  strict: exports_external.boolean()
17336
17358
  }),
17337
17359
  computer_status: exports_external.looseObject({
17338
- ok: exports_external.boolean().optional(),
17339
- status: exports_external.string().optional(),
17340
- backend: exports_external.string().optional(),
17341
- processes: exports_external.array(jsonObject).optional(),
17342
- profile: computerProfile.nullable()
17360
+ computerSessionId: id,
17361
+ computerId: id,
17362
+ status: exports_external.enum(["running", "dormant"]),
17363
+ backend: exports_external.enum(["worker-shell", "container"]),
17364
+ profile: computerProfile.nullable(),
17365
+ capabilities: computerCapabilityCard,
17366
+ runtime: jsonObject
17343
17367
  }),
17344
17368
  computer_verify: exports_external.looseObject({
17345
17369
  passed: exports_external.literal(true),
@@ -17446,7 +17470,47 @@ var MCP_OUTPUT_SCHEMAS = {
17446
17470
  warnings: exports_external.array(exports_external.string()),
17447
17471
  replayed: exports_external.boolean()
17448
17472
  }),
17449
- computer_stop: exports_external.looseObject({ checkpoint, stopped: jsonObject })
17473
+ computer_stop: exports_external.looseObject({ checkpoint, stopped: jsonObject }),
17474
+ code_symbols: exports_external.looseObject({
17475
+ computerSessionId: id,
17476
+ path: exports_external.string(),
17477
+ symbols: exports_external.array(codeSymbol)
17478
+ }),
17479
+ code_find_symbol: exports_external.looseObject({
17480
+ computerSessionId: id,
17481
+ namePath: exports_external.string(),
17482
+ symbols: exports_external.array(codeSymbol)
17483
+ }),
17484
+ code_references: exports_external.looseObject({
17485
+ computerSessionId: id,
17486
+ namePath: exports_external.string(),
17487
+ path: exports_external.string(),
17488
+ references: exports_external.array(exports_external.looseObject({
17489
+ path: exports_external.string(),
17490
+ namePath: exports_external.string().optional(),
17491
+ startLine: exports_external.number().optional(),
17492
+ snippet: exports_external.string().optional()
17493
+ })),
17494
+ truncated: exports_external.boolean()
17495
+ }),
17496
+ code_implementations: exports_external.looseObject({
17497
+ computerSessionId: id,
17498
+ namePath: exports_external.string(),
17499
+ path: exports_external.string(),
17500
+ symbols: exports_external.array(codeSymbol)
17501
+ }),
17502
+ code_diagnostics: exports_external.looseObject({
17503
+ computerSessionId: id,
17504
+ path: exports_external.string(),
17505
+ diagnostics: exports_external.array(exports_external.looseObject({
17506
+ severity: exports_external.enum(["error", "warning", "information", "hint"]),
17507
+ message: exports_external.string(),
17508
+ path: exports_external.string(),
17509
+ startLine: exports_external.number().optional(),
17510
+ namePath: exports_external.string().optional()
17511
+ })),
17512
+ truncated: exports_external.boolean()
17513
+ })
17450
17514
  };
17451
17515
  function outputSchemaFor(actionName) {
17452
17516
  return MCP_OUTPUT_SCHEMAS[actionName];
@@ -17576,6 +17640,11 @@ var MCP_TOOL_ANNOTATIONS = {
17576
17640
  computer_reprovision: destructiveIdempotent,
17577
17641
  computer_exec: destructiveOpenWorld,
17578
17642
  computer_status: readOnly,
17643
+ code_symbols: readOnly,
17644
+ code_find_symbol: readOnly,
17645
+ code_references: readOnly,
17646
+ code_implementations: readOnly,
17647
+ code_diagnostics: readOnly,
17579
17648
  computer_verify: openWorld,
17580
17649
  computer_read: readOnly,
17581
17650
  computer_export: idempotent,
@@ -17949,7 +18018,7 @@ var ACTION_DEFINITIONS = [
17949
18018
  {
17950
18019
  name: "computer_open",
17951
18020
  title: "Open a Thread computer",
17952
- description: "Open or resume this Thread's project environment for filesystem or command work. 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 and the selected profile contract; pass the session id unchanged to later Computer tools and cited work.",
18021
+ description: "Open or resume this Thread's project environment for filesystem or command work. 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 and a resolved capabilities card naming what this computer can do, each entry ready (usable now) or available (starts on demand).",
17953
18022
  inputSchema: {
17954
18023
  threadId: exports_external.string().describe("the Arbor Thread whose stable computer to open, thr_…"),
17955
18024
  vcpus: exports_external.number().int().min(1).max(4).optional().describe("optional container vCPU request"),
@@ -17991,7 +18060,7 @@ var ACTION_DEFINITIONS = [
17991
18060
  {
17992
18061
  name: "computer_status",
17993
18062
  title: "Inspect a computer",
17994
- description: "READ ONLY: Read live Currybox process/runtime status and the declared container profile contract for an opened computer. This cannot modify files, processes, checkpoints, or Thread state; use get_computer on the Arbor surface for durable config and snapshot lineage.",
18063
+ description: "READ ONLY: Read what this computer can do right now — the same resolved capabilities card computer_open returns, each entry ready or available — plus live Currybox process/runtime status and the declared container profile contract. Reach for it when you are unsure whether a capability — background processes, semantic code intelligence, Preview publication — is usable on this session. This cannot modify files, processes, checkpoints, or Thread state; use get_computer on the Arbor surface for durable config and snapshot lineage.",
17995
18064
  inputSchema: {
17996
18065
  computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…")
17997
18066
  },
@@ -18011,6 +18080,71 @@ var ACTION_DEFINITIONS = [
18011
18080
  toolset: "loop",
18012
18081
  run: forward("computer_runtime.verify")
18013
18082
  },
18083
+ {
18084
+ name: "code_symbols",
18085
+ title: "Outline a file's symbols",
18086
+ description: "Outline the symbols a file or directory defines, resolved by the project's language server. Reach for this before reading a large unfamiliar file — unlike a grep through `computer_exec`, it returns the real declarations with their kinds rather than every textual match. Needs the semantic-code capability shown on the computer_status card.",
18087
+ inputSchema: {
18088
+ computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
18089
+ path: exports_external.string().max(512).describe("file or directory, absolute under /workspace or workspace-relative")
18090
+ },
18091
+ surfaces: ["computer-mcp", "computer-cli"],
18092
+ toolset: "loop",
18093
+ run: forward("computer_code.symbols")
18094
+ },
18095
+ {
18096
+ name: "code_find_symbol",
18097
+ title: "Find a symbol by name path",
18098
+ description: "Locate a declaration by its name path (`ClassName/methodName`) and optionally return its body. Use it instead of a `computer_exec` grep when you want THE definition rather than every line mentioning the name; the language server distinguishes the declaration from its call sites and its string occurrences. Needs the semantic-code capability shown on the computer_status card.",
18099
+ inputSchema: {
18100
+ computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
18101
+ namePath: exports_external.string().min(1).max(200).describe("symbol name path within a file, e.g. MyClass/myMethod"),
18102
+ path: exports_external.string().max(512).optional().describe("optional file or directory to restrict the search to"),
18103
+ includeBody: exports_external.boolean().optional().describe("include each symbol's source body"),
18104
+ depth: exports_external.number().int().min(0).max(3).optional().describe("how many levels of children to include (default 0)")
18105
+ },
18106
+ surfaces: ["computer-mcp", "computer-cli"],
18107
+ toolset: "loop",
18108
+ run: forward("computer_code.find_symbol")
18109
+ },
18110
+ {
18111
+ name: "code_references",
18112
+ title: "Find what references a symbol",
18113
+ description: 'List the places that actually reference a symbol, each with a short snippet. This is the operation `computer_exec` cannot do: a text search finds the same identifier in comments, unrelated modules, and shadowed scopes, while the language server resolves real references — so it answers "is this safe to change". Needs the semantic-code capability shown on the computer_status card.',
18114
+ inputSchema: {
18115
+ computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
18116
+ namePath: exports_external.string().min(1).max(200).describe("name path of the symbol to trace"),
18117
+ path: exports_external.string().max(512).describe("the file declaring that symbol, absolute under /workspace or workspace-relative")
18118
+ },
18119
+ surfaces: ["computer-mcp", "computer-cli"],
18120
+ toolset: "loop",
18121
+ run: forward("computer_code.references")
18122
+ },
18123
+ {
18124
+ name: "code_implementations",
18125
+ title: "Find implementations of a symbol",
18126
+ description: "List the concrete implementations or subtypes of an interface, abstract type, or method. A `computer_exec` search cannot follow a type relationship — only the language server knows which declarations satisfy this one. Needs the semantic-code capability shown on the computer_status card.",
18127
+ inputSchema: {
18128
+ computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
18129
+ namePath: exports_external.string().min(1).max(200).describe("name path of the interface, type, or method"),
18130
+ path: exports_external.string().max(512).describe("the file declaring that symbol, absolute under /workspace or workspace-relative")
18131
+ },
18132
+ surfaces: ["computer-mcp", "computer-cli"],
18133
+ toolset: "loop",
18134
+ run: forward("computer_code.implementations")
18135
+ },
18136
+ {
18137
+ name: "code_diagnostics",
18138
+ title: "Read language-server diagnostics for a file",
18139
+ description: "Return the language server's live errors and warnings for one file, mapped to symbols. Reach for it on a file you just edited: it answers in seconds without the whole-project build a `computer_exec` typecheck runs, though a green result here is not a substitute for that build. Needs the semantic-code capability shown on the computer_status card.",
18140
+ inputSchema: {
18141
+ computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
18142
+ path: exports_external.string().max(512).describe("the file to inspect, absolute under /workspace or workspace-relative")
18143
+ },
18144
+ surfaces: ["computer-mcp", "computer-cli"],
18145
+ toolset: "loop",
18146
+ run: forward("computer_code.diagnostics")
18147
+ },
18014
18148
  {
18015
18149
  name: "computer_read",
18016
18150
  title: "Read a project file",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
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",