@lambdacurry/arbor 0.21.26 → 0.21.28

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 +41 -11
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -17281,6 +17281,11 @@ var appInvocationResponse = exports_external.object({
17281
17281
  unsupportedReason: exports_external.enum(["binary_content_type", "invalid_utf8"]).optional(),
17282
17282
  json: exports_external.json().optional()
17283
17283
  });
17284
+ var appFetchResponse = appInvocationResponse.extend({
17285
+ offset: exports_external.number().int().min(0).max(25 * 1024 * 1024),
17286
+ nextOffset: exports_external.number().int().min(1).max(25 * 1024 * 1024).nullable(),
17287
+ continuationLimitReached: exports_external.boolean()
17288
+ });
17284
17289
  var spaceRef = exports_external.looseObject({ id, title: nullableString });
17285
17290
  var recallHit = exports_external.looseObject({
17286
17291
  id,
@@ -18301,7 +18306,7 @@ var MCP_OUTPUT_SCHEMAS = {
18301
18306
  bundle: jsonObject,
18302
18307
  configurationReadiness: jsonObject
18303
18308
  }),
18304
- app_fetch: appInvocationResponse,
18309
+ app_fetch: appFetchResponse,
18305
18310
  app_request: appInvocationResponse,
18306
18311
  app_create: app2,
18307
18312
  app_config_apply: exports_external.object({ appId: id, dryRun: exports_external.boolean(), changes: exports_external.array(jsonObject) }),
@@ -20281,6 +20286,7 @@ var ACTION_DEFINITIONS = [
20281
20286
  requestId: exports_external.string().describe("the request id, req_…"),
20282
20287
  type: exports_external.enum(CONTRIBUTION_TYPES).describe("the contribution type"),
20283
20288
  body: exports_external.string().min(1).describe("your response"),
20289
+ summary: exports_external.string().max(500).optional().describe("optional gist, 1-2 short sentences (HARD LIMIT 500 characters)"),
20284
20290
  confidence: exports_external.number().int().min(0).max(100).optional(),
20285
20291
  computerSessionId: exports_external.string().optional().describe("computer receipt to cite when the response came from computer work, cms_…"),
20286
20292
  attachmentIds: exports_external.array(exports_external.string()).max(10).optional().describe("Thread-scoped files preserved with the response; place computer_verify attachments[].markdown in the body for exact inline image placement")
@@ -21385,11 +21391,12 @@ var ACTION_DEFINITIONS = [
21385
21391
  {
21386
21392
  name: "app_fetch",
21387
21393
  title: "Fetch from an App",
21388
- description: "Invoke GET or HEAD on one relative path of an App using your current Arbor identity; for Space Apps, current Space membership is rechecked on every call. It cannot modify App lifecycle, deployments, access, or durable SQLite; browser grants, cookies, credentials, and reserved /__arbor paths are never exposed to App code.",
21394
+ description: "Invoke GET or HEAD on one relative path of an App using your current Arbor identity; a GET may continue text with nextOffset until continuationLimitReached marks the 25 MiB terminal ceiling. Each response remains capped at 64 KiB; current Space membership is rechecked on every call, and browser grants, credentials, and reserved /__arbor paths never reach App code.",
21389
21395
  inputSchema: {
21390
21396
  appId: exports_external.string().describe("target App, app_…"),
21391
21397
  path: exports_external.string().min(1).max(2048).describe("relative App path beginning with /; may include a query string"),
21392
- method: exports_external.enum(["GET", "HEAD"]).optional().describe("safe read method; default GET")
21398
+ method: exports_external.enum(["GET", "HEAD"]).optional().describe("safe read method; default GET"),
21399
+ offset: exports_external.number().int().min(0).max(25 * 1024 * 1024).optional().describe("GET response byte offset; use the prior result's nextOffset to continue")
21393
21400
  },
21394
21401
  surfaces: ["computer-mcp", "cli"],
21395
21402
  toolset: "apps",
@@ -22208,11 +22215,29 @@ var COMMAND_WORD_OVERRIDES = {
22208
22215
  feedback_thread_get: "feedback thread",
22209
22216
  feedback_status: "feedback status"
22210
22217
  };
22218
+ var MCP_COMMAND_ALIASES = {
22219
+ artifact_get: "get_artifact",
22220
+ artifact_transition: "transition_artifact",
22221
+ goal_delete: "delete_goal",
22222
+ goal_get: "get_goal",
22223
+ goal_list: "list_goals",
22224
+ notification_list: "notifications",
22225
+ space_invitation_list: "my_space_invites",
22226
+ space_leave: "leave_space",
22227
+ space_list_open: "list_open_spaces",
22228
+ watch_list: "watches"
22229
+ };
22211
22230
  function commandWords(action) {
22212
22231
  return COMMAND_WORD_OVERRIDES[action.name] ?? action.name.replace(/_/g, " ");
22213
22232
  }
22214
22233
  var CLI_ACTIONS = ACTIONS.filter((a) => a.surfaces.includes("cli") || a.surfaces.includes("computer-cli"));
22234
+ var BY_ACTION_NAME = new Map(CLI_ACTIONS.map((action) => [action.name, action]));
22215
22235
  var BY_COMMAND = new Map(CLI_ACTIONS.map((a) => [commandWords(a), a]));
22236
+ for (const [alias2, actionName] of Object.entries(MCP_COMMAND_ALIASES)) {
22237
+ const action = BY_ACTION_NAME.get(actionName);
22238
+ if (action)
22239
+ BY_COMMAND.set(alias2, action);
22240
+ }
22216
22241
  var MAX_WORDS = Math.max(1, ...CLI_ACTIONS.map((a) => commandWords(a).split(" ").length));
22217
22242
  var POSITIONAL_FIELDS = {
22218
22243
  contribute_arbor_feedback: ["body"],
@@ -22296,8 +22321,11 @@ function matchCommand(positionals) {
22296
22321
  }
22297
22322
  return;
22298
22323
  }
22299
- function toolNameAlias(action) {
22300
- return action.name.includes("_") ? action.name : "";
22324
+ function toolNameAliases(action) {
22325
+ return [
22326
+ ...action.name.includes("_") ? [action.name] : [],
22327
+ ...Object.entries(MCP_COMMAND_ALIASES).filter(([, actionName]) => actionName === action.name).map(([alias2]) => alias2)
22328
+ ];
22301
22329
  }
22302
22330
  function helpLine(action) {
22303
22331
  const positionals = positionalSpecs(action);
@@ -22307,8 +22335,8 @@ function helpLine(action) {
22307
22335
  const token = f.kind === "boolean" ? `--${f.flag}` : `--${f.flag} <>`;
22308
22336
  return f.required ? token : `[${token}]`;
22309
22337
  }).join(" ");
22310
- const alias2 = toolNameAlias(action);
22311
- const head = ` ${commandWords(action)}${alias2 ? ` (${alias2})` : ""}${args}${flags ? ` ${flags}` : ""}`;
22338
+ const aliases = toolNameAliases(action);
22339
+ const head = ` ${commandWords(action)}${aliases.length ? ` (${aliases.join(", ")})` : ""}${args}${flags ? ` ${flags}` : ""}`;
22312
22340
  return `${head}
22313
22341
  ${action.description}`;
22314
22342
  }
@@ -22347,11 +22375,13 @@ A single bare argument fills --${primary.flag} (e.g. \`arbor ${commandWords(acti
22347
22375
  const explicitNote = explicitPositionals.length > 0 ? `
22348
22376
 
22349
22377
  Bare arguments fill ${explicitPositionals.map((spec) => `--${spec.flag}`).join(" then ")}; the equivalent flags remain accepted.` : "";
22350
- const alias2 = toolNameAlias(action);
22351
- const aliasNote = alias2 ? `
22378
+ const aliases = toolNameAliases(action);
22379
+ const aliasNote = aliases.length === 1 ? `
22380
+
22381
+ Alias: \`arbor ${aliases[0]}\` (the tool-name form) resolves to this same command.` : aliases.length > 1 ? `
22352
22382
 
22353
- Alias: \`arbor ${alias2}\` (the tool-name form) resolves to this same command.` : "";
22354
- const heading = `${commandWords(action)}${alias2 ? ` (alias: ${alias2})` : ""}`;
22383
+ Aliases: ${aliases.map((alias2) => `\`arbor ${alias2}\``).join(", ")} (tool-name forms) resolve to this same command.` : "";
22384
+ const heading = `${commandWords(action)}${aliases.length === 1 ? ` (alias: ${aliases[0]})` : aliases.length > 1 ? ` (aliases: ${aliases.join(", ")})` : ""}`;
22355
22385
  const waitLines = action.name === "computer_exec" ? [
22356
22386
  " --no-wait [<boolean>] [optional] — return a running processId immediately instead of polling computer_process_read"
22357
22387
  ] : [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.21.26",
3
+ "version": "0.21.28",
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",