@lambdacurry/arbor 0.22.4 → 0.22.6

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 +64 -5
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // package.json
3
3
  var package_default = {
4
4
  name: "@lambdacurry/arbor",
5
- version: "0.22.4",
5
+ version: "0.22.6",
6
6
  description: "The Arbor CLI — a shared workspace for people and agents. The human + headless-agent write path over Arbor's guarded operation surface.",
7
7
  keywords: [
8
8
  "agents",
@@ -9463,6 +9463,53 @@ function mcpAnnotationsFor(name) {
9463
9463
  return annotations;
9464
9464
  }
9465
9465
 
9466
+ // ../actions/src/skill.ts
9467
+ var ARBOR_SKILL_NAME = "arbor";
9468
+ var ARBOR_SKILL_DESCRIPTION = "Work in Arbor (arborthreads.com), the team's deliberation room and shared memory for people and agents. " + "Use when you need to decide something with teammates or agents, record what was settled, check what you owe (inbox, requests, reviews), " + "recall prior decisions before re-deriving them, post evidence or a proposal to a Thread, keep a durable output as an Artifact, " + "or run software work on a Thread's Computer. Reach Arbor through its MCP tools or the arbor CLI (npx -y @lambdacurry/arbor@latest).";
9469
+ var ARBOR_SKILL_FRONTMATTER = {
9470
+ name: ARBOR_SKILL_NAME,
9471
+ description: ARBOR_SKILL_DESCRIPTION,
9472
+ license: "MIT"
9473
+ };
9474
+ var ORIGIN = "https://arborthreads.com";
9475
+ function renderArborSkill(orientation) {
9476
+ const base = ORIGIN;
9477
+ const fm = ARBOR_SKILL_FRONTMATTER;
9478
+ return `---
9479
+ name: ${fm.name}
9480
+ description: "${fm.description}"
9481
+ license: ${fm.license}
9482
+ ---
9483
+
9484
+ # Arbor
9485
+
9486
+ Arbor is the team's deliberation room and shared memory: people and agents settle typed work in
9487
+ Spaces → Topics → Threads, review each other's contributions, and promote the durable ones into
9488
+ Artifacts Arbor keeps current. Use it to decide things with others and to remember what was decided.
9489
+
9490
+ ## Reaching Arbor
9491
+
9492
+ - **MCP** — two servers over one identity. \`${base}/mcp\` is collaboration + durable knowledge
9493
+ (Spaces, Topics, Threads, contributions, requests, reviews, Goals, Artifacts, recall, inbox).
9494
+ \`${base}/computer/mcp\` is Arbor Computer, the software workflow (open, run, verify, package,
9495
+ deploy, operate). If the tools are already connected in this session, use them directly.
9496
+ - **CLI** — \`npx -y @lambdacurry/arbor@latest <command>\` (or \`arbor <command>\` when installed). The
9497
+ same actions as MCP; \`arbor help\` lists every command with a when-to-use and an example, and
9498
+ \`arbor <command> --help\` gives that command's flags. Long bodies go in via \`--body-file -\` (stdin).
9499
+ Add \`--json\` for a structured envelope.
9500
+ - **Auth** — a personal access token (acts as its human) or an agent key (acts as the agent), sent as
9501
+ a Bearer header to MCP or as \`ARBOR_TOKEN\` / \`arbor auth <token>\` for the CLI. Identity is resolved
9502
+ server-side from the credential; never assert who you are. Not connected yet? \`${base}/connect.md\`
9503
+ walks the setup for each client.
9504
+ - **Start** with \`whoami\` (confirm who you are acting as) and \`inbox\` (what you owe). Then follow the
9505
+ etiquette below — it is the same text Arbor sends as MCP \`instructions\` at connect and prints from
9506
+ \`arbor orient\`.
9507
+
9508
+ ## How to work well in Arbor
9509
+
9510
+ ${orientation}
9511
+ `;
9512
+ }
9466
9513
  // ../actions/src/index.ts
9467
9514
  var ARBOR_FEEDBACK_INPUT_TYPES = [...ARBOR_FEEDBACK_TYPES, "friction"];
9468
9515
  var CONTRIBUTION_ADD_LINK_RELS = [
@@ -9491,6 +9538,7 @@ Arbor's MCP is the collaboration and durable-knowledge surface. Configure, autho
9491
9538
  8. DURABLE OUTPUT IS AN ARTIFACT, NOT A LONG CONTRIBUTION (AD-201). A contribution is one point in a conversation; an ARTIFACT is a first-class output the room holds and keeps CURRENT — a doc, a table, a diagram, a spec, or an uploaded file. When your point is really a deliverable the team will read or UPDATE later — a table of options, a reference doc, a plan, a rubric — make it an artifact (\`artifact\` verb=create with kind doc/table/diagram/html + \`source\`, or promote a file) instead of pasting it into prose. Text-kind artifacts are LIVING: \`artifact_get\` it, then \`artifact\` verb=edit naming the \`baseVersion\` you read — patches apply exact-match and atomically, one version per call, every version attributed. An artifact created FROM a thread is listed on that thread automatically (no link post needed); cite it inline with [label](#art_…) wherever it's relevant. WHY: a thread remembers what was SAID; an artifact holds what is TRUE NOW — a 40-row table pasted into a contribution is frozen the instant it's posted and unreadable the moment it's edited, while the same table as an artifact stays live, diffable, and findable by its content.
9492
9539
 
9493
9540
  Run \`arbor help\` (or read the MCP tool list) for the exact command/flags — those stay generated from the live action surface, so they're always current.`;
9541
+ var ARBOR_SKILL_MARKDOWN = renderArborSkill(ORIENTATION);
9494
9542
  var COMPUTER_ORIENTATION = `Long Computer work returns a handle — do not hold one tool call for a full test or build. \`computer_exec\` runs a command; if the result is still running, take \`processId\` and poll \`computer_process_read\`. Do not chain \`pnpm test && pnpm build\` in one exec; split steps or pass \`background:true\`. The CLI waits on the same handle unless \`--no-wait\`.
9495
9543
 
9496
9544
  Arbor Computer is the complete software execution platform attached to Arbor's durable collaboration graph. It configures project environments, executes and verifies work, packages and releases Apps, and preserves reviewable evidence; it does not schedule agents or replace Arbor collaboration.
@@ -10138,7 +10186,7 @@ var ACTION_DEFINITIONS = [
10138
10186
  description: "DESTRUCTIVE REPLACE: Replace the organization's entire sparse Computer-default layer; omitted fields are cleared from this layer and fall back to provider defaults, while lower scopes may override. This is config only and allocates no runtime; repeating the same full layer is idempotent.",
10139
10187
  inputSchema: {
10140
10188
  backend: _enum(["worker-shell", "container"]).nullable().optional().describe("default execution tier, or null to use worker-shell"),
10141
- containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.1, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear"),
10189
+ containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.2, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear"),
10142
10190
  setupScript: string2().nullable().optional().describe("optional strict Bash setup run after connected repositories materialize, or null to clear"),
10143
10191
  repositories: array(string2()).max(MAX_COMPUTER_REPOSITORIES).nullable().optional().describe("connected GitHub repositories to materialize into a fresh reusable base and allow for later Git calls; [] clears and null inherits")
10144
10192
  },
@@ -10153,7 +10201,7 @@ var ACTION_DEFINITIONS = [
10153
10201
  inputSchema: {
10154
10202
  spaceId: string2().describe("the Space, spc_…"),
10155
10203
  backend: _enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
10156
- containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.1, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
10204
+ containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.2, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
10157
10205
  setupScript: string2().nullable().optional().describe("optional strict Bash setup run after connected repositories materialize, or null to clear"),
10158
10206
  repositories: array(string2()).max(MAX_COMPUTER_REPOSITORIES).nullable().optional().describe("connected GitHub repositories to materialize into a fresh reusable base and allow for later Git calls; [] clears and null inherits")
10159
10207
  },
@@ -10168,7 +10216,7 @@ var ACTION_DEFINITIONS = [
10168
10216
  inputSchema: {
10169
10217
  topicId: string2().describe("the Topic, top_…"),
10170
10218
  backend: _enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
10171
- containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.1, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
10219
+ containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.2, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
10172
10220
  setupScript: string2().nullable().optional().describe("optional strict Bash setup run after connected repositories materialize"),
10173
10221
  repositories: array(string2()).max(MAX_COMPUTER_REPOSITORIES).nullable().optional().describe("connected GitHub repositories to materialize into a fresh reusable base and allow for later Git calls; [] clears and null inherits"),
10174
10222
  ...LIVE_PREVIEW_CONFIG_INPUT
@@ -10184,7 +10232,7 @@ var ACTION_DEFINITIONS = [
10184
10232
  inputSchema: {
10185
10233
  threadId: string2().describe("the Thread, thr_…"),
10186
10234
  backend: _enum(["worker-shell", "container"]).nullable().optional().describe("override execution tier, or null to inherit"),
10187
- containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.1, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
10235
+ containerProfile: string2().nullable().optional().describe("logical container profile; bun-typescript-v1 guarantees Bash, Git, GitHub CLI (gh), Bun 1.4.2, bunx, Node 26.5.1, pnpm 10.33.0, Python 3.13.15 (python/python3), jq, and ripgrep (rg), or null to clear inherited profile"),
10188
10236
  setupScript: string2().nullable().optional().describe("optional strict Bash setup run after connected repositories materialize"),
10189
10237
  repositories: array(string2()).max(MAX_COMPUTER_REPOSITORIES).nullable().optional().describe("connected GitHub repositories to materialize into a fresh reusable base and allow for later Git calls; [] clears and null inherits"),
10190
10238
  ...LIVE_PREVIEW_CONFIG_INPUT
@@ -13665,6 +13713,13 @@ function renderOrient(ctx) {
13665
13713
  ${CLI_NOTE}
13666
13714
  `, "orient", ctx);
13667
13715
  }
13716
+ function renderSkill(ctx) {
13717
+ emitDual({
13718
+ name: ARBOR_SKILL_NAME,
13719
+ description: ARBOR_SKILL_DESCRIPTION,
13720
+ markdown: ARBOR_SKILL_MARKDOWN
13721
+ }, ARBOR_SKILL_MARKDOWN, "skill", ctx);
13722
+ }
13668
13723
  function renderVersion(ctx) {
13669
13724
  emitDual({ name: package_default.name, version: CLI_VERSION }, `arbor ${CLI_VERSION}
13670
13725
  `, "version", ctx);
@@ -13688,6 +13743,7 @@ Usage: arbor <command> [--flags]
13688
13743
  profile clear-default intentionally return ordinary commands to legacy config
13689
13744
  profile delete <name> delete a non-default named profile
13690
13745
  orient print how to work well in Arbor (the room etiquette — when + why)
13746
+ skill print the Arbor Agent Skill (SKILL.md) to install in any skills-aware host
13691
13747
  whoami print who your token resolves to
13692
13748
  logout forget the stored token
13693
13749
  version print the CLI version
@@ -13875,6 +13931,9 @@ ${CLI_NOTE}
13875
13931
  case "orient":
13876
13932
  renderOrient(ctx);
13877
13933
  return;
13934
+ case "skill":
13935
+ renderSkill(ctx);
13936
+ return;
13878
13937
  case "health":
13879
13938
  await renderHealth(ctx);
13880
13939
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.22.4",
3
+ "version": "0.22.6",
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",