@lambdacurry/arbor 0.24.27 → 0.24.28
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 -11
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -8544,12 +8544,22 @@ var topics = sqliteTable("topics", {
|
|
|
8544
8544
|
guidance: text("guidance", { mode: "json" }).$type().notNull().default([]),
|
|
8545
8545
|
contributionLanes: text("contribution_lanes", { mode: "json" }).$type().notNull().default([]),
|
|
8546
8546
|
workflowId: text("workflow_id"),
|
|
8547
|
+
visibility: text("visibility").$type().notNull().default("open"),
|
|
8548
|
+
ownerProfileId: text("owner_profile_id").references(() => profiles.id),
|
|
8547
8549
|
archivedAt: ts("archived_at"),
|
|
8548
8550
|
createdAt: ts("created_at").notNull()
|
|
8549
8551
|
}, (t) => ({
|
|
8550
8552
|
spaceIdx: index("topics_space_idx").on(t.spaceId),
|
|
8551
8553
|
workflowIdx: index("topics_workflow_idx").on(t.workflowId)
|
|
8552
8554
|
}));
|
|
8555
|
+
var topicMemberships = sqliteTable("topic_memberships", {
|
|
8556
|
+
topicId: text("topic_id").notNull().references(() => topics.id, { onDelete: "cascade" }),
|
|
8557
|
+
profileId: text("profile_id").notNull().references(() => profiles.id, { onDelete: "cascade" }),
|
|
8558
|
+
createdAt: ts("created_at").notNull()
|
|
8559
|
+
}, (t) => ({
|
|
8560
|
+
pk: primaryKey({ columns: [t.topicId, t.profileId] }),
|
|
8561
|
+
profileIdx: index("topic_memberships_profile_idx").on(t.profileId)
|
|
8562
|
+
}));
|
|
8553
8563
|
var initiatives = sqliteTable("initiatives", {
|
|
8554
8564
|
id: text("id").primaryKey(),
|
|
8555
8565
|
orgId: text("org_id").notNull().references(() => orgs.id),
|
|
@@ -11374,7 +11384,8 @@ function buildOutputSchemas() {
|
|
|
11374
11384
|
id,
|
|
11375
11385
|
title: string2().optional(),
|
|
11376
11386
|
purpose: nullableString.optional(),
|
|
11377
|
-
workflowId: nullableString.optional()
|
|
11387
|
+
workflowId: nullableString.optional(),
|
|
11388
|
+
visibility: _enum(["open", "private"]).optional()
|
|
11378
11389
|
}),
|
|
11379
11390
|
create_thread: looseObject({ threadId: id, url: string2().optional() }),
|
|
11380
11391
|
thread_update: looseObject({
|
|
@@ -11696,6 +11707,11 @@ function buildOutputSchemas() {
|
|
|
11696
11707
|
goal_delete: looseObject({ ok: boolean2() }),
|
|
11697
11708
|
membership: looseObject({
|
|
11698
11709
|
spaceId: id.optional(),
|
|
11710
|
+
topicId: id.optional(),
|
|
11711
|
+
visibility: _enum(["open", "private"]).optional(),
|
|
11712
|
+
members: array(jsonObject).optional(),
|
|
11713
|
+
added: array(string2()).optional(),
|
|
11714
|
+
removed: string2().optional(),
|
|
11699
11715
|
profileId: id.optional(),
|
|
11700
11716
|
role: string2().optional(),
|
|
11701
11717
|
left: boolean2().optional(),
|
|
@@ -14056,7 +14072,8 @@ var ACTION_DEFINITIONS = [
|
|
|
14056
14072
|
spaceId: string2().describe("the space to create the topic in, spc_…"),
|
|
14057
14073
|
title: string2().min(1).describe("the topic's name — an area of work, not a question"),
|
|
14058
14074
|
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"),
|
|
14059
|
-
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")
|
|
14075
|
+
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"),
|
|
14076
|
+
visibility: _enum(["open", "private"]).optional().describe("`open` (default): every Space member sees it. `private`: only its roster plus the Space's admins and the org's owner/admins — creating one takes Space admin; you start on the roster")
|
|
14060
14077
|
},
|
|
14061
14078
|
surfaces: ["mcp", "cli"],
|
|
14062
14079
|
toolset: "structure",
|
|
@@ -14071,12 +14088,48 @@ var ACTION_DEFINITIONS = [
|
|
|
14071
14088
|
title: string2().min(1).optional().describe("a new title — an area of work, not a question"),
|
|
14072
14089
|
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"),
|
|
14073
14090
|
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"),
|
|
14074
|
-
archived: boolean2().optional().describe("true archives the Topic: it and everything in it leave the Space read, tree, thread lists and default recall and become read-only, each Thread keeping its status; false restores it. Org owner/admin or Space admin only, as the only change; refused while a Run in it is active")
|
|
14091
|
+
archived: boolean2().optional().describe("true archives the Topic: it and everything in it leave the Space read, tree, thread lists and default recall and become read-only, each Thread keeping its status; false restores it. Org owner/admin or Space admin only, as the only change; refused while a Run in it is active"),
|
|
14092
|
+
visibility: _enum(["open", "private"]).optional().describe("Space admin only: `private` limits the Topic (its threads, contributions, artifacts) to its roster plus Space/org admins; `open` shows it to every Space member again")
|
|
14075
14093
|
},
|
|
14076
14094
|
surfaces: ["mcp", "cli"],
|
|
14077
14095
|
toolset: "spaces",
|
|
14078
14096
|
run: forward("topic.setConfig")
|
|
14079
14097
|
},
|
|
14098
|
+
{
|
|
14099
|
+
name: "topic_members",
|
|
14100
|
+
title: "List a topic's members",
|
|
14101
|
+
description: "List a Topic's roster — who can see a PRIVATE Topic besides the Space's admins and the org's owner/admins (who always can). An open Topic is visible to every Space member; its roster is kept for when it is made private.",
|
|
14102
|
+
inputSchema: {
|
|
14103
|
+
topicId: string2().describe("the topic, top_…")
|
|
14104
|
+
},
|
|
14105
|
+
surfaces: ["cli"],
|
|
14106
|
+
toolset: "spaces",
|
|
14107
|
+
run: forward("topic.members")
|
|
14108
|
+
},
|
|
14109
|
+
{
|
|
14110
|
+
name: "add_to_topic",
|
|
14111
|
+
title: "Add members to a topic",
|
|
14112
|
+
description: "Space admin only: admit Space members to a private Topic's roster so they can see its threads, contributions, and artifacts. Each profile must already be a member of the Topic's Space (add them to the Space first).",
|
|
14113
|
+
inputSchema: {
|
|
14114
|
+
topicId: string2().describe("the topic, top_…"),
|
|
14115
|
+
profileIds: array(string2()).min(1).max(20).describe("profile ids to admit, prof_… (Space members only; at most 20)")
|
|
14116
|
+
},
|
|
14117
|
+
surfaces: ["cli"],
|
|
14118
|
+
toolset: "spaces",
|
|
14119
|
+
run: forward("topic.addMembers")
|
|
14120
|
+
},
|
|
14121
|
+
{
|
|
14122
|
+
name: "remove_from_topic",
|
|
14123
|
+
title: "Remove a member from a topic",
|
|
14124
|
+
description: "Space admin only: take a profile off a Topic's roster. While the Topic is private they stop seeing it, unless they administer the Space or the org.",
|
|
14125
|
+
inputSchema: {
|
|
14126
|
+
topicId: string2().describe("the topic, top_…"),
|
|
14127
|
+
profileId: string2().describe("the profile to remove, prof_…")
|
|
14128
|
+
},
|
|
14129
|
+
surfaces: ["cli"],
|
|
14130
|
+
toolset: "spaces",
|
|
14131
|
+
run: forward("topic.removeMember")
|
|
14132
|
+
},
|
|
14080
14133
|
{
|
|
14081
14134
|
name: "set_topic_guidance",
|
|
14082
14135
|
title: "Set a topic's guidance",
|
|
@@ -15795,13 +15848,22 @@ var ACTION_DEFINITIONS = [
|
|
|
15795
15848
|
},
|
|
15796
15849
|
{
|
|
15797
15850
|
name: "membership",
|
|
15798
|
-
title: "Space membership moves",
|
|
15799
|
-
description: "Join an open Space, add
|
|
15851
|
+
title: "Space and Topic membership moves",
|
|
15852
|
+
description: "Join an open Space, add members, or accept an invitation; on a private Topic read its roster (topic_members) or, as a Space admin, add or remove members (topic_add, topic_remove). Leave via space_leave; list with space_list_open or space_invitation_list.",
|
|
15800
15853
|
inputSchema: {
|
|
15801
|
-
verb: _enum([
|
|
15854
|
+
verb: _enum([
|
|
15855
|
+
"join",
|
|
15856
|
+
"add_member",
|
|
15857
|
+
"add_members",
|
|
15858
|
+
"accept_invite",
|
|
15859
|
+
"topic_members",
|
|
15860
|
+
"topic_add",
|
|
15861
|
+
"topic_remove"
|
|
15862
|
+
]).describe("which membership move to make"),
|
|
15802
15863
|
spaceId: string2().optional().describe("join/add_member/add_members: the Space, spc_…"),
|
|
15803
|
-
|
|
15804
|
-
|
|
15864
|
+
topicId: string2().optional().describe("topic_members/topic_add/topic_remove: the Topic, top_…"),
|
|
15865
|
+
profileId: string2().optional().describe("add_member/topic_remove: who, prof_…"),
|
|
15866
|
+
profileIds: array(string2()).optional().describe("add_members: who to add — agents join directly, people are invited; topic_add: Space members to admit (at most 20), prof_…"),
|
|
15805
15867
|
invitationId: string2().optional().describe("accept_invite: the invitation, sinv_…")
|
|
15806
15868
|
},
|
|
15807
15869
|
surfaces: ["mcp"],
|
|
@@ -15810,7 +15872,10 @@ var ACTION_DEFINITIONS = [
|
|
|
15810
15872
|
join: "space.join",
|
|
15811
15873
|
add_member: "space.addMember",
|
|
15812
15874
|
add_members: "space.addMembers",
|
|
15813
|
-
accept_invite: "space.acceptInvite"
|
|
15875
|
+
accept_invite: "space.acceptInvite",
|
|
15876
|
+
topic_members: "topic.members",
|
|
15877
|
+
topic_add: "topic.addMembers",
|
|
15878
|
+
topic_remove: "topic.removeMember"
|
|
15814
15879
|
})
|
|
15815
15880
|
},
|
|
15816
15881
|
{
|
|
@@ -16669,7 +16734,7 @@ var ACTIONS = ACTION_DEFINITIONS.map((action) => {
|
|
|
16669
16734
|
});
|
|
16670
16735
|
|
|
16671
16736
|
// ../actions/src/retention-entry.ts
|
|
16672
|
-
var ARBOR_VERSION = "0.24.
|
|
16737
|
+
var ARBOR_VERSION = "0.24.28";
|
|
16673
16738
|
var historyPolicySchema = _enum(["full", "checkpoint"]).optional().describe("text Artifacts: future history retention policy; full retains every source snapshot, checkpoint keeps metadata for every revision and source only when explicitly retained");
|
|
16674
16739
|
var retainSourceSchema = boolean2().optional().describe("edit: in checkpoint mode, retain this newly minted content revision's source");
|
|
16675
16740
|
var checkpointSchema = boolean2().optional().describe("edit: retain the exact current version source without incrementing content version");
|
|
@@ -17077,7 +17142,7 @@ function dispositionFilename(value) {
|
|
|
17077
17142
|
// package.json
|
|
17078
17143
|
var package_default = {
|
|
17079
17144
|
name: "@lambdacurry/arbor",
|
|
17080
|
-
version: "0.24.
|
|
17145
|
+
version: "0.24.28",
|
|
17081
17146
|
description: "The Arbor CLI — a shared workspace for people and agents. The human + headless-agent write path over Arbor's guarded operation surface.",
|
|
17082
17147
|
keywords: [
|
|
17083
17148
|
"agents",
|
package/package.json
CHANGED