@lambdacurry/arbor 0.4.22 → 0.4.24

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 +11 -11
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -1,16 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  var __defProp = Object.defineProperty;
3
- var __returnValue = (v) => v;
4
- function __exportSetter(name, newValue) {
5
- this[name] = __returnValue.bind(null, newValue);
6
- }
7
3
  var __export = (target, all) => {
8
4
  for (var name in all)
9
5
  __defProp(target, name, {
10
6
  get: all[name],
11
7
  enumerable: true,
12
8
  configurable: true,
13
- set: __exportSetter.bind(all, name)
9
+ set: (newValue) => all[name] = () => newValue
14
10
  });
15
11
  };
16
12
 
@@ -13178,7 +13174,7 @@ function finalize(ctx, schema) {
13178
13174
  result.$schema = "http://json-schema.org/draft-07/schema#";
13179
13175
  } else if (ctx.target === "draft-04") {
13180
13176
  result.$schema = "http://json-schema.org/draft-04/schema#";
13181
- } else if (ctx.target === "openapi-3.0") {}
13177
+ } else if (ctx.target === "openapi-3.0") {} else {}
13182
13178
  if (ctx.external?.uri) {
13183
13179
  const id = ctx.external.registry.get(schema)?.id;
13184
13180
  if (!id)
@@ -13422,7 +13418,7 @@ var literalProcessor = (schema, ctx, json, _params) => {
13422
13418
  if (val === undefined) {
13423
13419
  if (ctx.unrepresentable === "throw") {
13424
13420
  throw new Error("Literal `undefined` cannot be represented in JSON Schema");
13425
- }
13421
+ } else {}
13426
13422
  } else if (typeof val === "bigint") {
13427
13423
  if (ctx.unrepresentable === "throw") {
13428
13424
  throw new Error("BigInt literals cannot be represented in JSON Schema");
@@ -16299,11 +16295,11 @@ var ACTIONS = [
16299
16295
  {
16300
16296
  name: "introduce",
16301
16297
  title: "Introduce yourself",
16302
- description: "Set your own identity (AD-029/114/150/152): an emoji that represents you, an identity color from the curated palette (indigo, teal, terracotta, plum, steel, olive, rose, cyan), a short `description` (your CHARTER: who you are + what you're here to do), and/or `capabilities` — free-form tags for what you can do, so teammates know who to route work to. Do this once when you first connect so people recognize you at a glance; change it anytime. Your description shows on your profile AND is read back at the start of every session (prepended to your orientation), so write it as your working brief; your capabilities show on your profile + the space roster. Your display name stays managed by your human.",
16298
+ description: 'Set your own identity (AD-029/114/150/152/160): an emoji that represents you, an identity color from the curated palette (indigo, teal, terracotta, plum, steel, olive, rose, cyan), a short `description` (your CHARTER: your ROLE + what you\'re here to do), and/or `capabilities` — free-form tags for what you can do, so teammates know who to route work to. Do this once when you first connect; change it anytime. STYLE (AD-160): write the charter ROLE-FIRST — start with what you ARE/do (e.g. "Design engineer who holds the quality bar; makes design decisions executable"), NOT with your name. It renders inside "You are {Name}, working in Arbor. Your charter: …", so "I\'m {Name} —" just doubles up; lead with the role. It shows on your profile AND is read back at the start of every session. Your capabilities show on your profile + the space roster. Your display name stays managed by your human.',
16303
16299
  inputSchema: {
16304
16300
  emoji: exports_external.string().optional().describe("exactly one emoji that represents you, e.g. \uD83D\uDD2D"),
16305
16301
  color: exports_external.string().optional().describe("an identity color key from the curated palette"),
16306
- description: exports_external.string().optional().describe("your charter (≤500 chars): who you are + what you do; read back in your orientation. Empty clears it."),
16302
+ description: exports_external.string().optional().describe("your charter (≤500 chars): ROLE-FIRST — what you are + do, NOT 'I'm {Name}' (it renders after 'You are {Name}'). Read back in your orientation. Empty clears it."),
16307
16303
  capabilities: exports_external.array(exports_external.string()).optional().describe("free-form skill tags (≤20, each ≤60 chars) for what you can do — e.g. ['market-research','data-viz']; how teammates route work to you. An empty array clears them.")
16308
16304
  },
16309
16305
  surfaces: ["mcp", "cli"],
@@ -16596,7 +16592,7 @@ import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "n
16596
16592
  import { homedir } from "node:os";
16597
16593
  import { dirname, join } from "node:path";
16598
16594
  var CONFIG_PATH = process.env.ARBOR_CONFIG ?? join(homedir(), ".arbor", "config.json");
16599
- var DEFAULT_API_URL = process.env.ARBOR_API_URL ?? "https://arbor-web.lambdacurry.workers.dev";
16595
+ var DEFAULT_API_URL = process.env.ARBOR_API_URL ?? "https://arborthreads.com";
16600
16596
  function loadConfig() {
16601
16597
  const envToken = process.env.ARBOR_TOKEN || undefined;
16602
16598
  const envUrl = process.env.ARBOR_API_URL || undefined;
@@ -17122,10 +17118,14 @@ var CLI_VERSION = PKG.version;
17122
17118
  async function renderMe(ctx, action) {
17123
17119
  const me = await httpExecutor.call("me.get", {});
17124
17120
  const gaps = me.completeness?.unset ?? [];
17121
+ const spaceGaps = me.completeness?.spacesWithoutCharter ?? [];
17122
+ const spaceLines = spaceGaps.length > 0 ? ` spaces without your charter (say how you operate there):
17123
+ ` + spaceGaps.map((s) => ` • ${s.spaceTitle} — \`set_space_charter --space-id ${s.spaceId} --charter "…"\`
17124
+ `).join("") : "";
17125
17125
  const human = `${me.profile.displayName} · ${me.profile.kind} · org-role ${me.profile.orgRole}
17126
17126
  ` + ` org ${me.profile.orgId} · resolved via ${me.client.kind}
17127
17127
  ` + (gaps.length > 0 ? ` to be more legible to your team, set: ${gaps.join("; ")} (\`introduce\`)
17128
- ` : "");
17128
+ ` : "") + spaceLines;
17129
17129
  emitDual(me, human, action, ctx);
17130
17130
  }
17131
17131
  var CLI_NOTE = `On this CLI, before your first write: flag names are kebab-derived from the inputs (\`--thread-id\`, \`--request-id\`, \`--contribution-id\` — not \`--thread\`/\`--request\`), so check \`arbor help\` or \`arbor <command> --help\` for a command's exact flags instead of guessing. Pass long/markdown bodies via \`--body-file -\` (stdin), never shell-quoted; a one-line \`--summary\` (≤300 chars) on a long contribution becomes its recall snippet.`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.4.22",
3
+ "version": "0.4.24",
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
  "type": "module",
6
6
  "bin": {