@lambdacurry/arbor 0.22.3 → 0.22.5
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.
- package/dist/arbor.js +64 -5
- 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.
|
|
5
|
+
version: "0.22.5",
|
|
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.
|
|
10189
|
+
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"),
|
|
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.
|
|
10204
|
+
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"),
|
|
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.
|
|
10219
|
+
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"),
|
|
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.
|
|
10235
|
+
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"),
|
|
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