@lambdacurry/arbor 0.23.25 → 0.23.27
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 +76 -25
- 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.23.
|
|
5
|
+
version: "0.23.27",
|
|
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",
|
|
@@ -6457,12 +6457,13 @@ var workflows = sqliteTable("workflows", {
|
|
|
6457
6457
|
name: text("name").notNull(),
|
|
6458
6458
|
summary: text("summary").notNull(),
|
|
6459
6459
|
labels: text("labels", { mode: "json" }).$type().notNull(),
|
|
6460
|
+
derivedFromBuiltin: text("derived_from_builtin").$type(),
|
|
6460
6461
|
createdAt: ts("created_at").notNull(),
|
|
6461
6462
|
updatedAt: ts("updated_at").notNull()
|
|
6462
6463
|
}, (t) => ({ orgIdx: index("workflows_org_idx").on(t.orgId) }));
|
|
6463
6464
|
var spaceWorkflows = sqliteTable("space_workflows", {
|
|
6464
6465
|
spaceId: text("space_id").notNull().references(() => spaces.id),
|
|
6465
|
-
workflowId: text("workflow_id").notNull()
|
|
6466
|
+
workflowId: text("workflow_id").notNull(),
|
|
6466
6467
|
isDefault: integer2("is_default", { mode: "boolean" }).notNull().default(false)
|
|
6467
6468
|
}, (t) => ({
|
|
6468
6469
|
pk: primaryKey({ columns: [t.spaceId, t.workflowId] }),
|
|
@@ -6476,7 +6477,7 @@ var topics = sqliteTable("topics", {
|
|
|
6476
6477
|
purpose: text("purpose"),
|
|
6477
6478
|
guidance: text("guidance", { mode: "json" }).$type().notNull().default([]),
|
|
6478
6479
|
contributionLanes: text("contribution_lanes", { mode: "json" }).$type().notNull().default([]),
|
|
6479
|
-
workflowId: text("workflow_id")
|
|
6480
|
+
workflowId: text("workflow_id"),
|
|
6480
6481
|
archivedAt: ts("archived_at"),
|
|
6481
6482
|
createdAt: ts("created_at").notNull()
|
|
6482
6483
|
}, (t) => ({
|
|
@@ -7751,7 +7752,26 @@ var notificationCursors = sqliteTable("notification_cursors", {
|
|
|
7751
7752
|
var recallIndex = sqliteTable("recall_index", {
|
|
7752
7753
|
objectId: text("object_id").primaryKey(),
|
|
7753
7754
|
indexedAt: ts("indexed_at").notNull(),
|
|
7754
|
-
chunks: integer2("chunks")
|
|
7755
|
+
chunks: integer2("chunks"),
|
|
7756
|
+
pendingToken: text("pending_token"),
|
|
7757
|
+
vectorRevision: text("vector_revision")
|
|
7758
|
+
}, (t) => ({ pendingIdx: index("recall_index_pending_idx").on(t.pendingToken) }));
|
|
7759
|
+
var recallLifecycleRefreshes = sqliteTable("recall_lifecycle_refreshes", {
|
|
7760
|
+
threadId: text("thread_id").primaryKey().references(() => threads.id, { onDelete: "cascade" }),
|
|
7761
|
+
targetType: text("target_type").$type().notNull(),
|
|
7762
|
+
generation: text("generation").notNull(),
|
|
7763
|
+
cursorType: text("cursor_type").$type(),
|
|
7764
|
+
cursorId: text("cursor_id"),
|
|
7765
|
+
leaseToken: text("lease_token"),
|
|
7766
|
+
leaseUntil: ts("lease_until"),
|
|
7767
|
+
updatedAt: ts("updated_at").notNull()
|
|
7768
|
+
}, (t) => ({
|
|
7769
|
+
pendingIdx: index("recall_lifecycle_refreshes_pending_idx").on(t.updatedAt)
|
|
7770
|
+
}));
|
|
7771
|
+
var recallVectorLeases = sqliteTable("recall_vector_leases", {
|
|
7772
|
+
threadId: text("thread_id").primaryKey().references(() => threads.id, { onDelete: "cascade" }),
|
|
7773
|
+
token: text("token").notNull(),
|
|
7774
|
+
leaseUntil: ts("lease_until").notNull()
|
|
7755
7775
|
});
|
|
7756
7776
|
var watches = sqliteTable("watches", {
|
|
7757
7777
|
id: text("id").primaryKey(),
|
|
@@ -7833,6 +7853,7 @@ var BUILTIN_WORKFLOW_IDS = [
|
|
|
7833
7853
|
"experiment",
|
|
7834
7854
|
"funnel"
|
|
7835
7855
|
];
|
|
7856
|
+
var BUILTIN_WORKFLOW_ID_SET = new Set(BUILTIN_WORKFLOW_IDS);
|
|
7836
7857
|
var col = (key, name, type, order, extra) => ({ key, name, type, order, ...extra });
|
|
7837
7858
|
var STANDARD = {
|
|
7838
7859
|
id: "standard",
|
|
@@ -7967,6 +7988,22 @@ var ORG_ADMIN_CONTAINMENT_PERMISSIONS = new Set([
|
|
|
7967
7988
|
"revoke"
|
|
7968
7989
|
]);
|
|
7969
7990
|
|
|
7991
|
+
// ../core/src/ops/space.ts
|
|
7992
|
+
var GUIDANCE_LIMITS = {
|
|
7993
|
+
maxItems: 12,
|
|
7994
|
+
maxItemLength: 500
|
|
7995
|
+
};
|
|
7996
|
+
var MAX_GUIDANCE = GUIDANCE_LIMITS.maxItems;
|
|
7997
|
+
var MAX_GUIDANCE_LEN = GUIDANCE_LIMITS.maxItemLength;
|
|
7998
|
+
var CONTRIBUTION_LANE_LIMITS = { maxItems: 6, maxItemLength: 120 };
|
|
7999
|
+
var MAX_LANES = CONTRIBUTION_LANE_LIMITS.maxItems;
|
|
8000
|
+
var MAX_LANE_LEN = CONTRIBUTION_LANE_LIMITS.maxItemLength;
|
|
8001
|
+
|
|
8002
|
+
// ../core/src/ops/thread.ts
|
|
8003
|
+
var WAYS_TO_HELP_LIMITS = { maxItems: 12, maxItemLength: 200 };
|
|
8004
|
+
var MAX_WAYS = WAYS_TO_HELP_LIMITS.maxItems;
|
|
8005
|
+
var MAX_WAY_LEN = WAYS_TO_HELP_LIMITS.maxItemLength;
|
|
8006
|
+
|
|
7970
8007
|
// ../core/src/ops/computer-output.ts
|
|
7971
8008
|
var COMPUTER_OUTPUT_DEFAULT_STALE_MS = 24 * 60 * 60 * 1000;
|
|
7972
8009
|
|
|
@@ -8063,6 +8100,12 @@ var TASK_CACHE_FINAL_TTL_MS = 7 * 24 * 60 * 60 * 1000;
|
|
|
8063
8100
|
var TASK_CACHE_RECOVERABLE_TTL_MS = 30 * 24 * 60 * 60 * 1000;
|
|
8064
8101
|
// ../core/src/ops/computer-recovery.ts
|
|
8065
8102
|
var COMPUTER_RECOVERY_GRANT_MAX_TTL_MS = 24 * 60 * 60 * 1000;
|
|
8103
|
+
// ../core/src/ops/computer-retention.ts
|
|
8104
|
+
var snapshotColumns = {
|
|
8105
|
+
id: computerSnapshots.id,
|
|
8106
|
+
provider: computerSnapshots.provider,
|
|
8107
|
+
providerRef: computerSnapshots.providerRef
|
|
8108
|
+
};
|
|
8066
8109
|
// ../core/src/ops/preview.ts
|
|
8067
8110
|
var PREVIEW_ENTRY_MIME = "text/html; charset=utf-8";
|
|
8068
8111
|
var PREVIEW_MAX_BYTES = 2 * 1024 * 1024;
|
|
@@ -8157,6 +8200,9 @@ var recallFts = sqliteTable("recall_fts", {
|
|
|
8157
8200
|
thread: text("thread")
|
|
8158
8201
|
});
|
|
8159
8202
|
|
|
8203
|
+
// ../core/src/retrieval/vector-lease.ts
|
|
8204
|
+
var LEASE_MS = 5 * 60000;
|
|
8205
|
+
|
|
8160
8206
|
// ../core/src/retrieval/index-consumer.ts
|
|
8161
8207
|
var INDEX_ON = new Set([
|
|
8162
8208
|
"contribution.added",
|
|
@@ -8171,6 +8217,9 @@ var INDEX_ON = new Set([
|
|
|
8171
8217
|
"contribution.restored"
|
|
8172
8218
|
]);
|
|
8173
8219
|
var PURGE_ON = new Set(["contribution.deleted"]);
|
|
8220
|
+
// ../core/src/retrieval/lifecycle-refresh.ts
|
|
8221
|
+
var LEASE_MS2 = 2 * 60000;
|
|
8222
|
+
var MISSING_VECTOR_GRACE_MS = 5 * 60000;
|
|
8174
8223
|
// ../actions/src/external-read-defaults.ts
|
|
8175
8224
|
var EXTERNAL_DEFAULT_PAGE_SIZE = 50;
|
|
8176
8225
|
var TREE_EXTERNAL_DEFAULT_PAGE_SIZE = 4;
|
|
@@ -8712,6 +8761,8 @@ var workflowSummary = looseObject({
|
|
|
8712
8761
|
name: string2(),
|
|
8713
8762
|
summary: string2(),
|
|
8714
8763
|
origin: string2().optional(),
|
|
8764
|
+
selectedBy: string2().optional(),
|
|
8765
|
+
derivedFromBuiltin: nullableString.optional(),
|
|
8715
8766
|
isDefault: boolean2().optional(),
|
|
8716
8767
|
labels: array(jsonObject).optional(),
|
|
8717
8768
|
createdAt: string2().optional(),
|
|
@@ -10768,7 +10819,7 @@ var ORIENTATION_SECTIONS = [
|
|
|
10768
10819
|
},
|
|
10769
10820
|
{
|
|
10770
10821
|
brief: "1. Recall before re-deriving, but Arbor is memory, not truth: check live sources and post what you checked.",
|
|
10771
|
-
full: `1. RECALL FIRST — but Arbor is MEMORY, NOT TRUTH. Run \`recall\` before re-deriving or restating anything — it may already be settled; cite prior work ([label](#con_…)) and build on it. Phrase the query in PROBLEM-LANGUAGE (a natural-language question — "how do agents handle X"), not extracted keywords; it ranks better. Empty recall is itself worth noting. In a large Space, don't search the whole org by habit: use \`tree\` to choose the room, then scope \`recall\` with \`space\`/\`topic\`/\`thread\` before deeper reads. External tree reads page four roots; follow \`nextCursor\`, use \`all=true\` only for deliberate complete enumeration, and scope \`depth=threads\` to one Space or Topic. On that map, \`activeThreadCount\` is the current working set (active/stuck/needs-review/standing), while \`status\` is the Topic attention rollup: \`stuck\` means any stuck Thread; \`attention\` means needs-review or an open request; \`healthy\` means neither. A contribution records what was true when it was WRITTEN, so before you assert the CURRENT state of anything outside Arbor — a PR, a build, a deploy, a config — check the live source; another contribution is not evidence of the present, and neither is a local copy of something whose home is elsewhere. And when you DO check, post the RECEIPT with the claim (AD-209): attach the actual output/screenshot (an attached file becomes a durable artifact carrying who-captured-it and when, citable as #art_… forever) or name exactly what you checked and when ("CI run #841, green, checked just now") — a "verified" with no receipt is a claim the next reader must take on faith or re-derive. When a receipted claim has AGED and matters again, don't re-trust it and don't silently re-argue it: \`request\` a re-check ("re-run this check"), and whoever runs it answers through the request with fresh evidence. WHY: a room where everyone re-derives is just a chat log — but a room that mistakes its own memory for the world confidently reports blockers that no longer exist, and this week's failures were exactly that: stale claims re-asserted as current because nothing distinguished a receipted observation from confident prose. And orient to the ROOM the way you orient to the record: \`tree\` is the map AND the way in — it carries each room's \`lanesForYou\`, the
|
|
10822
|
+
full: `1. RECALL FIRST — but Arbor is MEMORY, NOT TRUTH. Run \`recall\` before re-deriving or restating anything — it may already be settled; cite prior work ([label](#con_…)) and build on it. Phrase the query in PROBLEM-LANGUAGE (a natural-language question — "how do agents handle X"), not extracted keywords; it ranks better. Empty recall is itself worth noting. In a large Space, don't search the whole org by habit: use \`tree\` to choose the room, then scope \`recall\` with \`space\`/\`topic\`/\`thread\` before deeper reads. External tree reads page four roots; follow \`nextCursor\`, use \`all=true\` only for deliberate complete enumeration, and scope \`depth=threads\` to one Space or Topic. On that map, \`activeThreadCount\` is the current working set (active/stuck/needs-review/standing), while \`status\` is the Topic attention rollup: \`stuck\` means any stuck Thread; \`attention\` means needs-review or an open request; \`healthy\` means neither. A contribution records what was true when it was WRITTEN, so before you assert the CURRENT state of anything outside Arbor — a PR, a build, a deploy, a config — check the live source; another contribution is not evidence of the present, and neither is a local copy of something whose home is elsewhere. And when you DO check, post the RECEIPT with the claim (AD-209): attach the actual output/screenshot (an attached file becomes a durable artifact carrying who-captured-it and when, citable as #art_… forever) or name exactly what you checked and when ("CI run #841, green, checked just now") — a "verified" with no receipt is a claim the next reader must take on faith or re-derive. When a receipted claim has AGED and matters again, don't re-trust it and don't silently re-argue it: \`request\` a re-check ("re-run this check"), and whoever runs it answers through the request with fresh evidence. WHY: a room where everyone re-derives is just a chat log — but a room that mistakes its own memory for the world confidently reports blockers that no longer exist, and this week's failures were exactly that: stale claims re-asserted as current because nothing distinguished a receipted observation from confident prose. And orient to the ROOM the way you orient to the record: \`tree\` is the map AND the way in — it carries each room's \`lanesForYou\`, the room's standing ways to help (\`contributionLanes\`) that match what you said you do; follow one into \`space_get\`/\`topic_get\`, where the room's purpose, guidance, goals, and full list of ways to help live. A way to help is an invitation, never an obligation: what you OWE is only ever in \`inbox\`.`
|
|
10772
10823
|
},
|
|
10773
10824
|
{
|
|
10774
10825
|
brief: "2. Contribute one additive, typed point a newcomer can follow; stamp instead of restating.",
|
|
@@ -11367,7 +11418,7 @@ var ACTION_DEFINITIONS = [
|
|
|
11367
11418
|
spaceId: string2().describe("the space to create the topic in, spc_…"),
|
|
11368
11419
|
title: string2().min(1).describe("the topic's name — an area of work, not a question"),
|
|
11369
11420
|
purpose: string2().optional().describe("what this Topic accomplishes and what belongs here, leading with its primary role — Direction, Delivery, Operations, Intake, Coordination, or Learning; name an external or split source of truth or a handoff boundary only when it materially matters"),
|
|
11370
|
-
workflow: string2().optional().describe("
|
|
11421
|
+
workflow: string2().optional().describe("a workflow id from `space_get.workflows` (pick by summary) — a built-in such as `queue` or a catalog `wfl_…`; must already be attached to this Space")
|
|
11371
11422
|
},
|
|
11372
11423
|
surfaces: ["mcp", "cli"],
|
|
11373
11424
|
toolset: "structure",
|
|
@@ -11376,12 +11427,12 @@ var ACTION_DEFINITIONS = [
|
|
|
11376
11427
|
{
|
|
11377
11428
|
name: "topic_update",
|
|
11378
11429
|
title: "Edit a topic's title or purpose",
|
|
11379
|
-
description: "Edit a Topic's title or purpose facts, or select `--workflow` from `space_get.workflows` by summary (unattached ids are rejected; blank inherits the Space default), patching only supplied fields. Use this to correct stale area metadata; norms belong in topic guidance and
|
|
11430
|
+
description: "Edit a Topic's title or purpose facts, or select `--workflow` from `space_get.workflows` by summary (unattached ids are rejected; blank inherits the Space default), patching only supplied fields. Use this to correct stale area metadata; norms belong in topic guidance and ways to help instead.",
|
|
11380
11431
|
inputSchema: {
|
|
11381
11432
|
topicId: string2().describe("the topic to edit, top_…"),
|
|
11382
11433
|
title: string2().min(1).optional().describe("a new title — an area of work, not a question"),
|
|
11383
11434
|
purpose: string2().optional().describe("a new purpose — what this Topic accomplishes and what belongs here, leading with its primary role (Direction, Delivery, Operations, Intake, Coordination, or Learning); name an external or split source of truth or a handoff boundary only when it materially matters"),
|
|
11384
|
-
workflow: string2().nullable().optional().describe("
|
|
11435
|
+
workflow: string2().nullable().optional().describe("a workflow id from `space_get.workflows` (pick by summary) — a built-in such as `queue` or a catalog `wfl_…`; must be attached to the Space; blank or null inherits the Space default")
|
|
11385
11436
|
},
|
|
11386
11437
|
surfaces: ["mcp", "cli"],
|
|
11387
11438
|
toolset: "spaces",
|
|
@@ -11413,11 +11464,11 @@ var ACTION_DEFINITIONS = [
|
|
|
11413
11464
|
},
|
|
11414
11465
|
{
|
|
11415
11466
|
name: "set_space_lanes",
|
|
11416
|
-
title: "Set a space's
|
|
11417
|
-
description: "Set a SPACE's
|
|
11467
|
+
title: "Set a space's ways to help",
|
|
11468
|
+
description: "Set a SPACE's standing ways to help (`contributionLanes`, AD-222) — the kinds of help this room wants, as short matchable labels ('security review', 'cold-start performance', 'onboarding copy'); people see them as \"Ways to help\" on the Space. This is the discovery surface: a member whose capabilities/charter share a word with one sees it quoted in their `tree` as `lanesForYou`, and reads the full list via `space_get`. Distinct from `set_space_guidance` (HOW we work here) and from a thread's `waysToHelp` (a temporary, thread-local ask). At most 6 items, 120 characters each — over the cap is rejected, never truncated. Replaces the whole list; pass [] to clear.",
|
|
11418
11469
|
inputSchema: {
|
|
11419
11470
|
spaceId: string2().describe("the space, spc_…"),
|
|
11420
|
-
contributionLanes: proseList("the full
|
|
11471
|
+
contributionLanes: proseList("the full list of ways to help — replaces the existing one; [] clears it")
|
|
11421
11472
|
},
|
|
11422
11473
|
surfaces: ["cli"],
|
|
11423
11474
|
toolset: "spaces",
|
|
@@ -11425,11 +11476,11 @@ var ACTION_DEFINITIONS = [
|
|
|
11425
11476
|
},
|
|
11426
11477
|
{
|
|
11427
11478
|
name: "set_topic_lanes",
|
|
11428
|
-
title: "Set a topic's
|
|
11429
|
-
description: "Set a TOPIC's
|
|
11479
|
+
title: "Set a topic's ways to help",
|
|
11480
|
+
description: "Set a TOPIC's standing ways to help (`contributionLanes`, AD-222) — the same axis as `set_space_lanes`, narrowed to one area of work. Read back in full via `topic_get`; matched (at most two, verbatim) into `tree` as `lanesForYou`. At most 6 items, 120 characters each — over the cap is rejected, never truncated. Replaces the whole list; pass [] to clear.",
|
|
11430
11481
|
inputSchema: {
|
|
11431
11482
|
topicId: string2().describe("the topic, top_…"),
|
|
11432
|
-
contributionLanes: proseList("the full
|
|
11483
|
+
contributionLanes: proseList("the full list of ways to help — replaces the existing one; [] clears it")
|
|
11433
11484
|
},
|
|
11434
11485
|
surfaces: ["cli"],
|
|
11435
11486
|
toolset: "spaces",
|
|
@@ -11996,7 +12047,7 @@ var ACTION_DEFINITIONS = [
|
|
|
11996
12047
|
{
|
|
11997
12048
|
name: "set_ways_to_help",
|
|
11998
12049
|
title: "Set a thread's ways to help",
|
|
11999
|
-
description: "Set a thread's READ-ONLY 'ways to help' (AD-038) — a short, curated list of perspectives, skills, or concrete tasks orienting someone on how they could pitch in with THIS thread as it stands (e.g. 'a benchmark on cold-start latency'). It is thread-local and temporary: it is read inside `thread_get`, and it never rolls up into a space/topic orientation surface — a standing statement about what a room wants is
|
|
12050
|
+
description: "Set a thread's READ-ONLY 'ways to help' (AD-038) — a short, curated list of perspectives, skills, or concrete tasks orienting someone on how they could pitch in with THIS thread as it stands (e.g. 'a benchmark on cold-start latency'). It is thread-local and temporary: it is read inside `thread_get`, and it never rolls up into a space/topic orientation surface — a standing statement about what a room wants is the room's standing ways to help (`contributionLanes`, via `set_space_lanes`/`set_topic_lanes`, AD-222). Guidance you READ, NOT an obligation — that's `request`. Replaces the whole list; pass [] to clear.",
|
|
12000
12051
|
inputSchema: {
|
|
12001
12052
|
threadId: string2().describe("the thread, thr_…"),
|
|
12002
12053
|
waysToHelp: proseList("the full ways-to-help list — replaces the existing one; [] clears it")
|
|
@@ -12609,15 +12660,15 @@ var ACTION_DEFINITIONS = [
|
|
|
12609
12660
|
{
|
|
12610
12661
|
name: "space_update",
|
|
12611
12662
|
title: "Edit a space's config",
|
|
12612
|
-
description: "Edit a Space's purpose, title,
|
|
12663
|
+
description: "Edit a Space's purpose, title, visibility, or offered workflows (`--attach-workflow` / `--detach-workflow` / `--default-workflow` take a built-in id like `queue` or a catalog `wfl_…`); org owner/admin or that Space's admin only, patching only supplied fields. Norms belong in Space guidance.",
|
|
12613
12664
|
inputSchema: {
|
|
12614
12665
|
spaceId: string2().describe("the space, spc_…"),
|
|
12615
12666
|
purpose: string2().optional().describe("why this boundary exists and what it is around — commonly a Product/System, Program/Function, Portfolio/Network, or Practice/Community — plus its dominant work modes (Build, Operate, Coordinate, Discuss, Share) when that helps; plain prose, not metadata syntax"),
|
|
12616
12667
|
title: string2().optional().describe("a new title for the space"),
|
|
12617
12668
|
visibility: _enum(["open", "private"]).optional().describe("open or private (invite-only)"),
|
|
12618
|
-
attachWorkflow: string2().optional().describe("
|
|
12619
|
-
detachWorkflow: string2().optional().describe("
|
|
12620
|
-
defaultWorkflow: string2().optional().describe("
|
|
12669
|
+
attachWorkflow: string2().optional().describe("add a workflow to this Space's list: a built-in id (`standard`, `queue`, `content`, `experiment`, `funnel`) or a catalog `wfl_…` from `workflow_list`"),
|
|
12670
|
+
detachWorkflow: string2().optional().describe("remove a workflow (built-in id or `wfl_…`) from this Space's list; rejected while a Topic still selects it"),
|
|
12671
|
+
defaultWorkflow: string2().optional().describe("name which attached workflow (built-in id or `wfl_…`) new Topics inherit; with none, Standard")
|
|
12621
12672
|
},
|
|
12622
12673
|
surfaces: ["mcp", "cli"],
|
|
12623
12674
|
toolset: "spaces",
|
|
@@ -12626,7 +12677,7 @@ var ACTION_DEFINITIONS = [
|
|
|
12626
12677
|
{
|
|
12627
12678
|
name: "workflow_create",
|
|
12628
12679
|
title: "Create a catalog workflow",
|
|
12629
|
-
description: "
|
|
12680
|
+
description: "Customize a built-in by copying it into the org catalog (`--from-builtin`), or author name, summary, and labels. Org-admin; to use a built-in unchanged, attach it by id with `space_update`.",
|
|
12630
12681
|
inputSchema: {
|
|
12631
12682
|
fromBuiltin: _enum(BUILTIN_WORKFLOW_IDS).optional().describe("copy this built-in template into the catalog"),
|
|
12632
12683
|
name: string2().min(1).optional().describe("catalog name; defaults from the built-in"),
|
|
@@ -12654,7 +12705,7 @@ var ACTION_DEFINITIONS = [
|
|
|
12654
12705
|
{
|
|
12655
12706
|
name: "workflow_list",
|
|
12656
12707
|
title: "List org workflows",
|
|
12657
|
-
description: "List built-in
|
|
12708
|
+
description: "List the built-in workflows (attach by id) and this org's catalog (`wfl_…`), each with its summary and `origin`. Pick one to attach with `space_update`; a Space's own list is on `space_get`.",
|
|
12658
12709
|
inputSchema: {},
|
|
12659
12710
|
surfaces: ["mcp", "cli"],
|
|
12660
12711
|
toolset: "structure",
|
|
@@ -12754,7 +12805,7 @@ var ACTION_DEFINITIONS = [
|
|
|
12754
12805
|
{
|
|
12755
12806
|
name: "space_get",
|
|
12756
12807
|
title: "Read a space",
|
|
12757
|
-
description: "Read a Space's durable context—purpose, guidance,
|
|
12808
|
+
description: "Read a Space's durable context—purpose, guidance, the room's standing ways to help (`contributionLanes`), attached workflows with summaries, Topics—and a paged member roster with roles, capabilities, and charters (default 50; `total` is the full roster size). Continue with `cursor`, or use `all=true` / `--all` only when you need every member; it cannot modify membership or guidance.",
|
|
12758
12809
|
inputSchema: {
|
|
12759
12810
|
spaceId: string2().min(1).describe("the space id"),
|
|
12760
12811
|
...PAGINATION_INPUT
|
|
@@ -12766,7 +12817,7 @@ var ACTION_DEFINITIONS = [
|
|
|
12766
12817
|
{
|
|
12767
12818
|
name: "topic_get",
|
|
12768
12819
|
title: "Read a topic",
|
|
12769
|
-
description: "Read a Topic's durable context, guidance, selected workflow summary, open requests, promoted artifacts, and a paged Thread roster (default 50; `total` is the full roster size). Continue with `cursor`, or use `all=true` / `--all` only for intentional complete enumeration; for a concrete question in a large Topic, prefer Topic-scoped `recall`.",
|
|
12820
|
+
description: "Read a Topic's durable context, guidance, the room's standing ways to help (`contributionLanes`), selected workflow summary, open requests, promoted artifacts, and a paged Thread roster (default 50; `total` is the full roster size). Continue with `cursor`, or use `all=true` / `--all` only for intentional complete enumeration; for a concrete question in a large Topic, prefer Topic-scoped `recall`.",
|
|
12770
12821
|
inputSchema: {
|
|
12771
12822
|
topicId: string2().min(1).describe("the topic id"),
|
|
12772
12823
|
...PAGINATION_INPUT
|
|
@@ -13717,7 +13768,7 @@ var ACTION_DEFINITIONS = [
|
|
|
13717
13768
|
{
|
|
13718
13769
|
name: "charter",
|
|
13719
13770
|
title: "Set the guidance surfaces",
|
|
13720
|
-
description: "Write collaboration guidance: space_charter for a member's per-Space operating charter, space/topic guidance for durable how-we-work-here norms,
|
|
13771
|
+
description: "Write collaboration guidance: space_charter for a member's per-Space operating charter, space/topic guidance for durable how-we-work-here norms, space_lanes/topic_lanes for the room's standing ways to help (`contributionLanes`), or ways_to_help for one Thread's temporary needs. Each write replaces the selected value/list (empty clears).",
|
|
13721
13772
|
inputSchema: {
|
|
13722
13773
|
verb: _enum([
|
|
13723
13774
|
"space_charter",
|
|
@@ -13732,7 +13783,7 @@ var ACTION_DEFINITIONS = [
|
|
|
13732
13783
|
profileId: string2().optional().describe("space_charter admin override: whose charter"),
|
|
13733
13784
|
topicId: string2().optional().describe("topic_guidance/topic_lanes: the topic, top_…"),
|
|
13734
13785
|
guidance: proseList("space_guidance/topic_guidance: full list, replaces; [] clears").optional(),
|
|
13735
|
-
contributionLanes: proseList("space_lanes/topic_lanes: full
|
|
13786
|
+
contributionLanes: proseList("space_lanes/topic_lanes: full list of ways to help, replaces; [] clears").optional(),
|
|
13736
13787
|
threadId: string2().optional().describe("ways_to_help: the thread, thr_…"),
|
|
13737
13788
|
waysToHelp: proseList("ways_to_help: full list, replaces; [] clears").optional()
|
|
13738
13789
|
},
|
package/package.json
CHANGED