@lambdacurry/arbor 0.22.8 → 0.22.10

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 +62 -61
  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.8",
5
+ version: "0.22.10",
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",
@@ -9252,6 +9252,13 @@ var MCP_OUTPUT_SCHEMAS = {
9252
9252
  function outputSchemaFor(actionName) {
9253
9253
  return MCP_OUTPUT_SCHEMAS[actionName];
9254
9254
  }
9255
+
9256
+ // ../actions/src/agent-guides.ts
9257
+ var AGENT_GUIDE_URLS = {
9258
+ tldraw: "https://arborthreads.com/docs/agents/tldraw",
9259
+ computer: "https://arborthreads.com/docs/agents/computer",
9260
+ apps: "https://arborthreads.com/docs/agents/apps"
9261
+ };
9255
9262
  // ../actions/src/output-shaping.ts
9256
9263
  function record2(value) {
9257
9264
  return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -9675,6 +9682,54 @@ function mcpAnnotationsFor(name) {
9675
9682
  return annotations;
9676
9683
  }
9677
9684
 
9685
+ // ../actions/src/skill.ts
9686
+ var ARBOR_SKILL_NAME = "arbor";
9687
+ 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).";
9688
+ var ARBOR_SKILL_FRONTMATTER = {
9689
+ name: ARBOR_SKILL_NAME,
9690
+ description: ARBOR_SKILL_DESCRIPTION,
9691
+ license: "MIT"
9692
+ };
9693
+ var ORIGIN = "https://arborthreads.com";
9694
+ function renderArborSkill(orientation) {
9695
+ const base = ORIGIN;
9696
+ const fm = ARBOR_SKILL_FRONTMATTER;
9697
+ return `---
9698
+ name: ${fm.name}
9699
+ description: "${fm.description}"
9700
+ license: ${fm.license}
9701
+ ---
9702
+
9703
+ # Arbor
9704
+
9705
+ Arbor is the team's deliberation room and shared memory: people and agents settle typed work in
9706
+ Spaces → Topics → Threads, review each other's contributions, and promote the durable ones into
9707
+ Artifacts Arbor keeps current. Use it to decide things with others and to remember what was decided.
9708
+
9709
+ ## Reaching Arbor
9710
+
9711
+ - **MCP** — two servers over one identity. \`${base}/mcp\` is collaboration + durable knowledge
9712
+ (Spaces, Topics, Threads, contributions, requests, reviews, Goals, Artifacts, recall, inbox).
9713
+ \`${base}/computer/mcp\` is Arbor Computer, the software workflow (open, run, verify, package,
9714
+ deploy, operate). If the tools are already connected in this session, use them directly.
9715
+ - **CLI** — \`npx -y @lambdacurry/arbor@latest <command>\` (or \`arbor <command>\` when installed). The
9716
+ same actions as MCP; \`arbor help\` lists every command with a when-to-use and an example, and
9717
+ \`arbor <command> --help\` gives that command's flags. Long bodies go in via \`--body-file -\` (stdin).
9718
+ Add \`--json\` for a structured envelope.
9719
+ - **Auth** — a personal access token (acts as its human) or an agent key (acts as the agent), sent as
9720
+ a Bearer header to MCP or as \`ARBOR_TOKEN\` / \`arbor auth <token>\` for the CLI. Identity is resolved
9721
+ server-side from the credential; never assert who you are. Not connected yet? \`${base}/connect.md\`
9722
+ walks the setup for each client.
9723
+ - **Start** with \`whoami\` (confirm who you are acting as) and \`inbox\` (what you owe). Then follow the
9724
+ etiquette below — it is the same text Arbor sends as MCP \`instructions\` at connect and prints from
9725
+ \`arbor orient\`.
9726
+
9727
+ ## How to work well in Arbor
9728
+
9729
+ ${orientation}
9730
+ `;
9731
+ }
9732
+
9678
9733
  // ../actions/src/tldraw-agent.ts
9679
9734
  var TLDRAW_EXEC_MAX_OPERATIONS = 100;
9680
9735
  var shapeId = string2().regex(/^shape:[A-Za-z0-9_-]{1,128}$/).describe("stable tldraw shape id, shape:…");
@@ -9755,61 +9810,7 @@ var TLDRAW_EXEC_OPERATIONS_SCHEMA = array(TLDRAW_EXEC_OPERATION_SCHEMA).min(1).m
9755
9810
  });
9756
9811
  }
9757
9812
  });
9758
- }).describe("preferred declarative edits, applied in order; mutually exclusive with code — read skill://arbor/references/tldraw.md before first use");
9759
-
9760
- // ../actions/src/skill.ts
9761
- var ARBOR_SKILL_NAME = "arbor";
9762
- 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).";
9763
- var ARBOR_SKILL_FRONTMATTER = {
9764
- name: ARBOR_SKILL_NAME,
9765
- description: ARBOR_SKILL_DESCRIPTION,
9766
- license: "MIT"
9767
- };
9768
- var ORIGIN = "https://arborthreads.com";
9769
- function renderArborSkill(orientation) {
9770
- const base = ORIGIN;
9771
- const fm = ARBOR_SKILL_FRONTMATTER;
9772
- return `---
9773
- name: ${fm.name}
9774
- description: "${fm.description}"
9775
- license: ${fm.license}
9776
- ---
9777
-
9778
- # Arbor
9779
-
9780
- Arbor is the team's deliberation room and shared memory: people and agents settle typed work in
9781
- Spaces → Topics → Threads, review each other's contributions, and promote the durable ones into
9782
- Artifacts Arbor keeps current. Use it to decide things with others and to remember what was decided.
9783
-
9784
- ## Reaching Arbor
9785
-
9786
- - **MCP** — two servers over one identity. \`${base}/mcp\` is collaboration + durable knowledge
9787
- (Spaces, Topics, Threads, contributions, requests, reviews, Goals, Artifacts, recall, inbox).
9788
- \`${base}/computer/mcp\` is Arbor Computer, the software workflow (open, run, verify, package,
9789
- deploy, operate). If the tools are already connected in this session, use them directly.
9790
- - **CLI** — \`npx -y @lambdacurry/arbor@latest <command>\` (or \`arbor <command>\` when installed). The
9791
- same actions as MCP; \`arbor help\` lists every command with a when-to-use and an example, and
9792
- \`arbor <command> --help\` gives that command's flags. Long bodies go in via \`--body-file -\` (stdin).
9793
- Add \`--json\` for a structured envelope.
9794
- - **Auth** — a personal access token (acts as its human) or an agent key (acts as the agent), sent as
9795
- a Bearer header to MCP or as \`ARBOR_TOKEN\` / \`arbor auth <token>\` for the CLI. Identity is resolved
9796
- server-side from the credential; never assert who you are. Not connected yet? \`${base}/connect.md\`
9797
- walks the setup for each client.
9798
- - **Start** with \`whoami\` (confirm who you are acting as) and \`inbox\` (what you owe). Then follow the
9799
- etiquette below — it is the same text Arbor sends as MCP \`instructions\` at connect and prints from
9800
- \`arbor orient\`.
9801
-
9802
- ## How to work well in Arbor
9803
-
9804
- ${orientation}
9805
-
9806
- ## Native tldraw
9807
-
9808
- Before creating or modifying a native tldraw Artifact, read the bundled
9809
- references/tldraw.md. Over MCP it is skill://arbor/references/tldraw.md; when only the CLI or web is
9810
- available, read ${base}/skill/tldraw.md.
9811
- `;
9812
- }
9813
+ }).describe("preferred declarative edits, applied in order; mutually exclusive with code");
9813
9814
  // ../actions/src/index.ts
9814
9815
  var ARBOR_FEEDBACK_INPUT_TYPES = [...ARBOR_FEEDBACK_TYPES, "friction"];
9815
9816
  var CONTRIBUTION_ADD_LINK_RELS = [
@@ -10582,7 +10583,7 @@ var ACTION_DEFINITIONS = [
10582
10583
  {
10583
10584
  name: "computer_run_start",
10584
10585
  title: "Start a run",
10585
- description: "Start one bounded unit of work on a Thread's Computer by threadId, no computer_open first: an isolated write Run (the default) restores its own environment from the Thread's snapshot without booting the parent; shared and read Runs use the live parent. The caller-owned idempotencyKey makes a lost response recover zero-or-one Run, and failures return the exact runId for computer_run_receipt.",
10586
+ description: `Start one bounded unit of work by threadId, no computer_open first: write defaults to an isolated Run from the Thread snapshot without booting the parent; shared/read Runs use the live parent; idempotencyKey recovers zero-or-one Run after response loss, and failures return runId for computer_run_receipt. First use: read the Computer guide at ${AGENT_GUIDE_URLS.computer}.`,
10586
10587
  inputSchema: {
10587
10588
  threadId: string2().optional().describe("the Thread whose Computer this Run works in, thr_…; the front door — no computer_open first"),
10588
10589
  computerSessionId: string2().optional().describe("alternative to threadId: an existing computerSessionId from computer_open, cms_… (parent already open)"),
@@ -10861,7 +10862,7 @@ var ACTION_DEFINITIONS = [
10861
10862
  {
10862
10863
  name: "computer_publish_app_bundle",
10863
10864
  title: "Publish an immutable AppBundle",
10864
- description: "Publish an immutable AppBundle from the parent Computer behind a shared write Run (runId) after a green build when an ArtifactVersion is ready; Arbor acquires compatible bun-typescript-v1 execution internally. Verifies entry bytes against the ArtifactVersion, captures source/Git provenance and static assets, and returns bundleId; isolated Runs are refused, so push and start a shared Run first.",
10865
+ description: `Publish an immutable AppBundle from parent bytes behind a shared write Run after a green build; Arbor acquires compatible bun-typescript-v1 execution, verifies bytes against ArtifactVersion, captures provenance/assets, and returns bundleId; isolated Runs are refused, so push then start shared first. First use: read the Apps guide at ${AGENT_GUIDE_URLS.apps}.`,
10865
10866
  inputSchema: {
10866
10867
  runId: string2().optional().describe("an active shared write Run on the parent whose bytes to publish, run_…"),
10867
10868
  computerSessionId: string2().optional().describe("legacy alternative to runId: a computerSessionId on that Computer, cms_…"),
@@ -12024,7 +12025,7 @@ var ACTION_DEFINITIONS = [
12024
12025
  {
12025
12026
  name: "tldraw_observe",
12026
12027
  title: "Observe a tldraw board",
12027
- description: "Capture a fresh bounded tldraw scene, lint result, document clock and digest, plus a PNG attachment for visual review. Observe before editing; first-time agents should read skill://arbor/references/tldraw.md (or https://arborthreads.com/skill/tldraw.md).",
12028
+ description: `Capture a fresh bounded tldraw scene, lint result, document clock and digest, plus a PNG attachment for visual review; observe before editing. First use: read the tldraw guide at ${AGENT_GUIDE_URLS.tldraw}.`,
12028
12029
  inputSchema: {
12029
12030
  artifactId: string2().describe("the tldraw Artifact, art_…"),
12030
12031
  pageId: string2().min(1).max(200).optional().describe("optional page to observe"),
@@ -12038,7 +12039,7 @@ var ACTION_DEFINITIONS = [
12038
12039
  {
12039
12040
  name: "tldraw_exec",
12040
12041
  title: "Run a one-shot tldraw program",
12041
- description: "Modify the current live tldraw board with preferred declarative operations or bounded JavaScript, then return a durable execution receipt. Observe first and read skill://arbor/references/tldraw.md (or https://arborthreads.com/skill/tldraw.md); an unknown result is never replayed automatically.",
12042
+ description: `Modify the current live tldraw board with preferred declarative operations or bounded JavaScript, then return a durable execution receipt; observe first, and never replay an unknown result automatically. First use: read the tldraw guide at ${AGENT_GUIDE_URLS.tldraw}.`,
12042
12043
  inputSchema: {
12043
12044
  artifactId: string2().describe("the tldraw Artifact, art_…"),
12044
12045
  code: string2().min(1).max(1e5).optional().describe("advanced script source; mutually exclusive with operations"),
@@ -12320,7 +12321,7 @@ var ACTION_DEFINITIONS = [
12320
12321
  {
12321
12322
  name: "app_create",
12322
12323
  title: "Create an App",
12323
- description: "Create a stable first-class App identity in a Space before deploying code. Public Apps are stateless and start public+unlisted+none; durable Apps are always space+durable with membership authorization and isolated SQLite state.",
12324
+ description: `Create a stable first-class App identity in a Space before deploying code; public Apps are stateless and start public+unlisted+none, while durable Apps are always space+durable with membership authorization and isolated SQLite state. First use: read the Apps guide at ${AGENT_GUIDE_URLS.apps}.`,
12324
12325
  inputSchema: {
12325
12326
  spaceId: string2().describe("owning Space, spc_…"),
12326
12327
  title: string2().min(1).max(160).describe("short factual App title"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.22.8",
3
+ "version": "0.22.10",
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",