@lambdacurry/arbor 0.21.12 → 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 +38 -26
  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)
@@ -18020,6 +18023,8 @@ var MCP_OUTPUT_SCHEMAS = {
18020
18023
  space: space3,
18021
18024
  topics: exports_external.array(topic2).optional(),
18022
18025
  members: exports_external.array(member).optional(),
18026
+ total: exports_external.number().int().min(0),
18027
+ nextCursor: exports_external.string().optional(),
18023
18028
  computerConfig: resolvedComputerConfig.nullable().optional()
18024
18029
  }),
18025
18030
  topic_get: exports_external.looseObject({
@@ -18027,6 +18032,8 @@ var MCP_OUTPUT_SCHEMAS = {
18027
18032
  space: space3,
18028
18033
  threads: exports_external.array(thread3).optional(),
18029
18034
  promotedArtifacts: exports_external.array(artifact4).optional(),
18035
+ total: exports_external.number().int().min(0),
18036
+ nextCursor: exports_external.string().optional(),
18030
18037
  computerConfig: resolvedComputerConfig.nullable().optional()
18031
18038
  }),
18032
18039
  goal: exports_external.looseObject({
@@ -18122,21 +18129,19 @@ var MCP_OUTPUT_SCHEMAS = {
18122
18129
  threadId: id.nullable().optional(),
18123
18130
  changed: exports_external.boolean().optional()
18124
18131
  }),
18125
- artifact_get: exports_external.looseObject({
18132
+ artifact_get: exports_external.object({
18126
18133
  id,
18127
18134
  title: exports_external.string(),
18128
18135
  kind: exports_external.string(),
18129
- status: exports_external.string(),
18130
- content: jsonObject,
18131
- version: exports_external.number().optional(),
18132
- versions: exports_external.array(jsonObject).optional(),
18133
- appBundles: exports_external.array(jsonObject),
18134
- usedByApps: exports_external.array(jsonObject),
18135
- livePreview: artifactLivePreview.nullable(),
18136
- snapshot: jsonObject.nullable().optional(),
18137
- sourceLivePreview: jsonObject.nullable().optional(),
18138
- watching: exports_external.boolean(),
18139
- 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()
18140
18145
  }),
18141
18146
  artifact_transition: exports_external.looseObject({
18142
18147
  artifactId: id,
@@ -19008,6 +19013,15 @@ function runAdminFeedback(ex, input) {
19008
19013
  return Promise.reject(new Error(`unknown verb "${verb ?? ""}" — expected one of: ${ADMIN_FEEDBACK_VERB_HELP}`));
19009
19014
  }
19010
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.`;
19011
19025
  var PAGINATION_INPUT = {
19012
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`),
19013
19027
  cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)"),
@@ -19951,11 +19965,9 @@ var ACTION_DEFINITIONS = [
19951
19965
  {
19952
19966
  name: "get_artifact",
19953
19967
  title: "Read an artifact",
19954
- 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.",
19955
- inputSchema: {
19956
- artifactId: exports_external.string().describe("the artifact, art_…"),
19957
- version: exports_external.number().optional().describe("read this old snapshot instead of the current")
19958
- },
19968
+ description: ARTIFACT_GET_DESCRIPTION,
19969
+ inputSchema: ARTIFACT_GET_INPUT,
19970
+ externalReadDefaults: { view: EXTERNAL_DEFAULT_ARTIFACT_VIEW },
19959
19971
  surfaces: ["cli"],
19960
19972
  toolset: "artifacts",
19961
19973
  run: forward("artifact.get")
@@ -20536,9 +20548,10 @@ var ACTION_DEFINITIONS = [
20536
20548
  {
20537
20549
  name: "space_get",
20538
20550
  title: "Read a space",
20539
- description: "Read a Space's durable context: purpose, guidance, contribution lanes, Topics, and full member roster with roles, capabilities, and charters. Use it after tree when you need the room's full norms or collaborator context; it cannot modify membership or guidance.",
20551
+ description: "Read a Space's durable context—purpose, guidance, contribution lanes, Topics—and a paged member roster with roles, capabilities, and charters (default 50; `total` is the full roster size). Continue with `cursor`, or use `all=true` / `--all` only when you need every member; it cannot modify membership or guidance.",
20540
20552
  inputSchema: {
20541
- spaceId: exports_external.string().min(1).describe("the space id")
20553
+ spaceId: exports_external.string().min(1).describe("the space id"),
20554
+ ...PAGINATION_INPUT
20542
20555
  },
20543
20556
  surfaces: ["mcp", "cli"],
20544
20557
  toolset: "loop",
@@ -20547,9 +20560,10 @@ var ACTION_DEFINITIONS = [
20547
20560
  {
20548
20561
  name: "topic_get",
20549
20562
  title: "Read a topic",
20550
- description: "Read a Topic's full details, guidance, complete Thread roster, open requests, and promoted artifacts. Use it for intentional Topic-wide context or enumeration; for a concrete question in a large Topic, prefer Topic-scoped recall first.",
20563
+ description: "Read a Topic's durable context, guidance, open requests, promoted artifacts, and a paged Thread roster (default 50; `total` is the full roster size). Continue with `cursor`, or use `all=true` / `--all` only for intentional complete enumeration; for a concrete question in a large Topic, prefer Topic-scoped `recall`.",
20551
20564
  inputSchema: {
20552
- topicId: exports_external.string().min(1).describe("the topic id")
20565
+ topicId: exports_external.string().min(1).describe("the topic id"),
20566
+ ...PAGINATION_INPUT
20553
20567
  },
20554
20568
  surfaces: ["mcp", "cli"],
20555
20569
  toolset: "loop",
@@ -20858,11 +20872,9 @@ var ACTION_DEFINITIONS = [
20858
20872
  {
20859
20873
  name: "artifact_get",
20860
20874
  title: "Read an Artifact",
20861
- 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.",
20862
- inputSchema: {
20863
- artifactId: exports_external.string().describe("the Artifact, art_…"),
20864
- version: exports_external.number().optional().describe("read this old snapshot instead of the current")
20865
- },
20875
+ description: ARTIFACT_GET_DESCRIPTION,
20876
+ inputSchema: ARTIFACT_GET_INPUT,
20877
+ externalReadDefaults: { view: EXTERNAL_DEFAULT_ARTIFACT_VIEW },
20866
20878
  surfaces: ["mcp"],
20867
20879
  toolset: "artifacts",
20868
20880
  run: forward("artifact.get")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.21.12",
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",