@lambdacurry/arbor 0.21.13 → 0.21.14

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 +28 -22
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -17211,6 +17211,9 @@ config(en_default());
17211
17211
  var EXTERNAL_DEFAULT_PAGE_SIZE = 50;
17212
17212
  var EXTERNAL_DEFAULT_CONTRIB_LIMIT = 50;
17213
17213
  var EXTERNAL_DEFAULT_THREAD_VIEW = "compact";
17214
+ var EXTERNAL_DEFAULT_ARTIFACT_VIEW = "card";
17215
+ var ARTIFACT_SOURCE_WINDOW_DEFAULT = 80;
17216
+ var ARTIFACT_SOURCE_WINDOW_MAX = 200;
17214
17217
  var EXTERNAL_READ_DEFAULTS_BY_OPERATION = {};
17215
17218
  function recordExternalReadDefaults(operation, defaults) {
17216
17219
  if (!operation || !defaults)
@@ -18126,21 +18129,19 @@ var MCP_OUTPUT_SCHEMAS = {
18126
18129
  threadId: id.nullable().optional(),
18127
18130
  changed: exports_external.boolean().optional()
18128
18131
  }),
18129
- artifact_get: exports_external.looseObject({
18132
+ artifact_get: exports_external.object({
18130
18133
  id,
18131
18134
  title: exports_external.string(),
18132
18135
  kind: exports_external.string(),
18133
- status: exports_external.string(),
18134
- content: jsonObject,
18135
- version: exports_external.number().optional(),
18136
- versions: exports_external.array(jsonObject).optional(),
18137
- appBundles: exports_external.array(jsonObject),
18138
- usedByApps: exports_external.array(jsonObject),
18139
- livePreview: artifactLivePreview.nullable(),
18140
- snapshot: jsonObject.nullable().optional(),
18141
- sourceLivePreview: jsonObject.nullable().optional(),
18142
- watching: exports_external.boolean(),
18143
- url: exports_external.string()
18136
+ version: exports_external.number().int().nonnegative(),
18137
+ lineCount: exports_external.number().int().nonnegative(),
18138
+ byteLength: exports_external.number().int().nonnegative(),
18139
+ outline: exports_external.array(exports_external.object({ title: exports_external.string(), startLine: exports_external.number().int().min(1) })),
18140
+ source: exports_external.string().optional(),
18141
+ startLine: exports_external.number().int().min(0).optional(),
18142
+ endLine: exports_external.number().int().min(0).optional(),
18143
+ nextLine: exports_external.number().int().min(1).nullable().optional(),
18144
+ totalLines: exports_external.number().int().nonnegative().optional()
18144
18145
  }),
18145
18146
  artifact_transition: exports_external.looseObject({
18146
18147
  artifactId: id,
@@ -19012,6 +19013,15 @@ function runAdminFeedback(ex, input) {
19012
19013
  return Promise.reject(new Error(`unknown verb "${verb ?? ""}" — expected one of: ${ADMIN_FEEDBACK_VERB_HELP}`));
19013
19014
  }
19014
19015
  var NOTIFICATION_TRIAGE_DESCRIPTION = "List your awareness feed newest first with unseen count and derived triage class: `settled-context` = settled Thread context; `owed-by-me` = an open request pointing to `inbox`; `judgment-available` = live engagement inviting judgment; `closed-loop` = your request completed; `room-motion` = ambient activity. Notifications are FYI, not a second obligation surface: `inbox` alone contains work owed by you; this cannot mark notifications read or modify inbox obligations.";
19016
+ var ARTIFACT_GET_INPUT = {
19017
+ artifactId: exports_external.string().describe("the Artifact, art_…"),
19018
+ version: exports_external.number().int().min(1).optional().describe("read this old snapshot instead of the current"),
19019
+ startLine: exports_external.number().int().min(1).optional().describe("1-indexed source window start; omit with heading for a section window"),
19020
+ limit: exports_external.number().int().min(1).max(ARTIFACT_SOURCE_WINDOW_MAX).optional().describe(`source window size when startLine or heading is set (default ${ARTIFACT_SOURCE_WINDOW_DEFAULT}, max ${ARTIFACT_SOURCE_WINDOW_MAX}). This is not a list page size`),
19021
+ heading: exports_external.string().min(1).optional().describe("first ##/### title that matches exactly, else the first prefix match"),
19022
+ all: exports_external.boolean().optional().describe("explicit complete source. Cannot combine with startLine, heading, or limit; prefer a window unless you need every line")
19023
+ };
19024
+ var ARTIFACT_GET_DESCRIPTION = `Read an Artifact as a compact card (id, title, kind, version, lineCount, byteLength, ##/### outline with startLine) so a plan can be oriented without loading source; pass startLine+limit (default ${ARTIFACT_SOURCE_WINDOW_DEFAULT}, max ${ARTIFACT_SOURCE_WINDOW_MAX}) or heading (first ##/### exact or prefix) for a source window, or all=true/--all for the full source. Pass version for an older snapshot; this read cannot edit content, bind a surface, change lifecycle, or delete.`;
19015
19025
  var PAGINATION_INPUT = {
19016
19026
  limit: exports_external.number().int().min(1).optional().describe(`max items to return. MCP/CLI/API default to ${EXTERNAL_DEFAULT_PAGE_SIZE} and return nextCursor when more remain; pass all=true/--all for the complete list. In-process web omit is still a compatibility full read`),
19017
19027
  cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)"),
@@ -19955,11 +19965,9 @@ var ACTION_DEFINITIONS = [
19955
19965
  {
19956
19966
  name: "get_artifact",
19957
19967
  title: "Read an artifact",
19958
- description: "Read an Artifact's current source/version/history plus its current executable Live Preview surface when bound. READ BEFORE YOU EDIT — the version number you read is the baseVersion your edit must name. Surface binding is current Artifact identity metadata and remains current even when --version reads old content.",
19959
- inputSchema: {
19960
- artifactId: exports_external.string().describe("the artifact, art_…"),
19961
- version: exports_external.number().optional().describe("read this old snapshot instead of the current")
19962
- },
19968
+ description: ARTIFACT_GET_DESCRIPTION,
19969
+ inputSchema: ARTIFACT_GET_INPUT,
19970
+ externalReadDefaults: { view: EXTERNAL_DEFAULT_ARTIFACT_VIEW },
19963
19971
  surfaces: ["cli"],
19964
19972
  toolset: "artifacts",
19965
19973
  run: forward("artifact.get")
@@ -20864,11 +20872,9 @@ var ACTION_DEFINITIONS = [
20864
20872
  {
20865
20873
  name: "artifact_get",
20866
20874
  title: "Read an Artifact",
20867
- description: "Read an Artifact's current source, version, immutable history, AppBundle references, and current executable Live Preview surface, or pass version for an older content snapshot. Computer-file Artifacts return snapshot state from set_snapshot (null until set_snapshot, meaning the asleep face is not checkable); this read cannot edit content, bind a surface, change lifecycle, promote an attachment, or delete an Artifact.",
20868
- inputSchema: {
20869
- artifactId: exports_external.string().describe("the Artifact, art_…"),
20870
- version: exports_external.number().optional().describe("read this old snapshot instead of the current")
20871
- },
20875
+ description: ARTIFACT_GET_DESCRIPTION,
20876
+ inputSchema: ARTIFACT_GET_INPUT,
20877
+ externalReadDefaults: { view: EXTERNAL_DEFAULT_ARTIFACT_VIEW },
20872
20878
  surfaces: ["mcp"],
20873
20879
  toolset: "artifacts",
20874
20880
  run: forward("artifact.get")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.21.13",
3
+ "version": "0.21.14",
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",