@lambdacurry/arbor 0.21.6 → 0.21.7

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 +25 -17
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -2635,6 +2635,8 @@ var arborFeedback = sqliteTable("arbor_feedback", {
2635
2635
  reporterOrgId: text("reporter_org_id").notNull().references(() => orgs.id),
2636
2636
  executionContextId: text("execution_context_id").notNull().references(() => executionContexts.id),
2637
2637
  computerSessionId: text("computer_session_id").references(() => computerSessions.id),
2638
+ sharedThreadId: text("shared_thread_id"),
2639
+ sharedContributionId: text("shared_contribution_id"),
2638
2640
  type: text("type").$type().notNull(),
2639
2641
  body: text("body").notNull(),
2640
2642
  summary: text("summary"),
@@ -2651,6 +2653,8 @@ var arborFeedback = sqliteTable("arbor_feedback", {
2651
2653
  updatedAt: ts("updated_at").notNull()
2652
2654
  }, (t) => ({
2653
2655
  reporterReplayUq: uniqueIndex("arbor_feedback_reporter_replay_uq").on(t.reporterProfileId, t.idempotencyKey),
2656
+ sharedThreadUq: uniqueIndex("arbor_feedback_shared_thread_uq").on(t.sharedThreadId).where(sql`${t.sharedThreadId} is not null`),
2657
+ sharedContributionUq: uniqueIndex("arbor_feedback_shared_contribution_uq").on(t.sharedContributionId).where(sql`${t.sharedContributionId} is not null`),
2654
2658
  statusCreatedIdx: index("arbor_feedback_status_created_idx").on(t.status, t.createdAt),
2655
2659
  orgCreatedIdx: index("arbor_feedback_org_created_idx").on(t.reporterOrgId, t.createdAt)
2656
2660
  }));
@@ -17794,7 +17798,8 @@ var MCP_OUTPUT_SCHEMAS = {
17794
17798
  feedbackId: id,
17795
17799
  type: exports_external.string(),
17796
17800
  status: exports_external.string(),
17797
- private: exports_external.literal(true),
17801
+ visibility: exports_external.literal("shared"),
17802
+ receiptPrivate: exports_external.literal(true),
17798
17803
  sharedThreadId: id,
17799
17804
  sharedContributionId: id,
17800
17805
  replayed: exports_external.boolean(),
@@ -17805,7 +17810,10 @@ var MCP_OUTPUT_SCHEMAS = {
17805
17810
  feedbackId: id,
17806
17811
  type: exports_external.enum(ARBOR_FEEDBACK_TYPES),
17807
17812
  status: exports_external.enum(ARBOR_FEEDBACK_STATUSES),
17808
- private: exports_external.literal(true),
17813
+ visibility: exports_external.enum(["shared", "receipt-only"]),
17814
+ receiptPrivate: exports_external.literal(true),
17815
+ sharedThreadId: id.nullable(),
17816
+ sharedContributionId: id.nullable(),
17809
17817
  associatedWithSharedKnowledge: exports_external.boolean(),
17810
17818
  createdAt: timestamp,
17811
17819
  updatedAt: timestamp,
@@ -19012,7 +19020,7 @@ var ACTION_DEFINITIONS = [
19012
19020
  {
19013
19021
  name: "contribute_arbor_feedback",
19014
19022
  title: "Contribute feedback about Arbor",
19015
- description: "File one bounded report when Arbor itself caused meaningful product or ergonomics friction; do not use this for ordinary repository bugs, routine un-obscured provider failures, agent mistakes, or generic implementation difficulty. The body lands as the first contribution in its own visible shared Feedback Thread; one incident should produce one report, with a stable idempotencyKey used only to retry that same submission.",
19023
+ description: "File one bounded report when Arbor itself caused meaningful product or ergonomics friction; not for ordinary repository bugs, obvious provider failures, agent mistakes, or generic implementation difficulty. It immediately creates its own shared Feedback Thread and returns sharedThreadId/sharedContributionId, visibility=shared, and receiptPrivate=true; use one stable idempotencyKey only to retry that same incident.",
19016
19024
  inputSchema: {
19017
19025
  type: exports_external.enum(ARBOR_FEEDBACK_TYPES).optional().describe("the contribution move (default comment); decision is reserved for shared forum curation"),
19018
19026
  body: exports_external.string().min(1).describe("the feedback body, shared as submitted in its own Thread"),
@@ -19030,9 +19038,9 @@ var ACTION_DEFINITIONS = [
19030
19038
  {
19031
19039
  name: "feedback_status",
19032
19040
  title: "Check your Arbor feedback receipt",
19033
- description: "READ ONLY: Check the useful lifecycle of one private Arbor feedback receipt you own. Missing and not-owned receipts look identical, and this returns no raw body, identities, moderator diagnostics, or shared association targets.",
19041
+ description: "READ ONLY: Check triage metadata and the shared identity for one Arbor feedback receipt you own. Missing and not-owned receipts look identical; receiptPrivate=true covers reviewer metadata, while visibility/sharedThreadId describe the filed report, and no raw body, identities, diagnostics, or private association targets are returned.",
19034
19042
  inputSchema: {
19035
- feedbackId: exports_external.string().describe("your private Arbor feedback receipt id, fbk_…")
19043
+ feedbackId: exports_external.string().describe("your Arbor feedback receipt id, fbk_…")
19036
19044
  },
19037
19045
  surfaces: ["mcp", "cli"],
19038
19046
  toolset: "feedback",
@@ -19045,7 +19053,7 @@ var ACTION_DEFINITIONS = [
19045
19053
  inputSchema: {
19046
19054
  verb: exports_external.enum(["list", "set"]).describe("list grants, or set one profile capability"),
19047
19055
  profileId: exports_external.string().optional().describe("set: the profile receiving or losing the grant"),
19048
- capability: exports_external.enum(ARBOR_FEEDBACK_CAPABILITIES).optional().describe("set: moderate shared forum or review_private raw evidence"),
19056
+ capability: exports_external.enum(ARBOR_FEEDBACK_CAPABILITIES).optional().describe("set: moderate shared forum or review_private receipt metadata"),
19049
19057
  enabled: exports_external.boolean().optional().describe("set: true to grant; false to revoke")
19050
19058
  },
19051
19059
  surfaces: ["mcp", "cli"],
@@ -19054,11 +19062,11 @@ var ACTION_DEFINITIONS = [
19054
19062
  },
19055
19063
  {
19056
19064
  name: "admin_feedback_evidence",
19057
- title: "Review private Arbor feedback evidence",
19065
+ title: "Review Arbor feedback receipt metadata",
19058
19066
  description: "Privileged receipt-review surface: list/get fbk receipt metadata, associate or disassociate receipts with shared Topics/Threads, and mark review state. Report bodies are already filed in their own shared Threads; this surface additionally exposes reporter/reviewer metadata and does not grant shared-forum moderation.",
19059
19067
  inputSchema: {
19060
19068
  verb: exports_external.enum(["list", "get", "associate", "disassociate", "status"]).describe("the private-evidence review action"),
19061
- feedbackId: exports_external.string().optional().describe("get/associate/disassociate/status: private feedback id"),
19069
+ feedbackId: exports_external.string().optional().describe("get/associate/disassociate/status: feedback receipt id"),
19062
19070
  associationId: exports_external.string().optional().describe("disassociate: association id to remove"),
19063
19071
  topicId: exports_external.string().optional().describe("associate: shared Feedback Topic id"),
19064
19072
  threadId: exports_external.string().optional().describe("associate: shared Feedback Thread id"),
@@ -19078,7 +19086,7 @@ var ACTION_DEFINITIONS = [
19078
19086
  {
19079
19087
  name: "admin_feedback_topic",
19080
19088
  title: "Maintain shared Feedback Topics",
19081
- description: "Privileged shared-forum moderation: create, update, archive, or restore one global Feedback Topic without database intervention. This capability does not expose private evidence.",
19089
+ description: "Privileged shared-forum moderation: create, update, archive, or restore one global Feedback Topic without database intervention. This capability does not expose receipt/reviewer metadata.",
19082
19090
  inputSchema: {
19083
19091
  action: exports_external.enum(["create", "update", "archive", "restore"]),
19084
19092
  topicId: exports_external.string().optional().describe("update/archive/restore: shared Feedback Topic id"),
@@ -19110,16 +19118,16 @@ var ACTION_DEFINITIONS = [
19110
19118
  },
19111
19119
  {
19112
19120
  name: "admin_feedback_publish",
19113
- title: "Publish sanitized shared Feedback content",
19114
- description: "Privileged: author a new sanitized shared contribution in a Feedback Thread, optionally recording that private evidence informed it. The body must be separately authored; Arbor refuses an exact raw-body copy and never flips private visibility.",
19121
+ title: "Author a moderator Feedback follow-on",
19122
+ description: "Privileged legacy/follow-on tool, never required to make a filing visible: author a separately written shared contribution in an existing Feedback Thread and optionally record receipt provenance. Arbor refuses an exact duplicate of the filed report body; normal filing and backfill never call this action.",
19115
19123
  inputSchema: {
19116
19124
  threadId: exports_external.string().describe("shared Feedback Thread id or merged source redirect"),
19117
19125
  type: exports_external.enum(CONTRIBUTION_TYPES).describe("shared contribution type, including maintainer decision"),
19118
- body: exports_external.string().min(1).describe("deliberately sanitized shared body"),
19126
+ body: exports_external.string().min(1).describe("separately authored shared follow-on body"),
19119
19127
  summary: exports_external.string().max(500).optional().describe("optional shared gist"),
19120
19128
  confidence: exports_external.number().int().min(0).max(100).optional(),
19121
19129
  idempotencyKey: exports_external.string().min(1).max(200).optional(),
19122
- feedbackId: exports_external.string().optional().describe("optional private evidence id; additionally requires review_private")
19130
+ feedbackId: exports_external.string().optional().describe("optional receipt id; additionally requires review_private")
19123
19131
  },
19124
19132
  surfaces: ["mcp", "cli"],
19125
19133
  toolset: "admin",
@@ -19127,11 +19135,11 @@ var ACTION_DEFINITIONS = [
19127
19135
  },
19128
19136
  {
19129
19137
  name: "admin_feedback_edit",
19130
- title: "Edit sanitized shared Feedback content",
19131
- description: "Privileged shared-forum moderation: correct a shared Feedback contribution's body, summary, or type while preserving normal Arbor audit history. This cannot target private feedback records.",
19138
+ title: "Edit shared Feedback content",
19139
+ description: "Privileged shared-forum moderation: correct a shared Feedback contribution's body, summary, or type while preserving normal Arbor audit history. This cannot edit feedback receipt/reviewer metadata.",
19132
19140
  inputSchema: {
19133
19141
  contributionId: exports_external.string().describe("shared Feedback contribution id"),
19134
- body: exports_external.string().min(1).optional().describe("replacement sanitized body"),
19142
+ body: exports_external.string().min(1).optional().describe("replacement shared body"),
19135
19143
  summary: exports_external.string().max(500).nullable().optional().describe("replacement gist; null/empty clears"),
19136
19144
  type: exports_external.enum(CONTRIBUTION_TYPES).optional().describe("replacement shared contribution type")
19137
19145
  },
@@ -19142,7 +19150,7 @@ var ACTION_DEFINITIONS = [
19142
19150
  {
19143
19151
  name: "admin_feedback_curate",
19144
19152
  title: "Curate shared Feedback content",
19145
- description: "Privileged shared-forum moderation: soft-delete or restore a sanitized shared contribution. This capability remains independent of private-feedback review access.",
19153
+ description: "Privileged shared-forum moderation: soft-delete or restore a shared contribution. This capability remains independent of receipt-review access.",
19146
19154
  inputSchema: {
19147
19155
  verb: exports_external.enum(["delete", "restore"]),
19148
19156
  contributionId: exports_external.string().describe("shared Feedback contribution id")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.21.6",
3
+ "version": "0.21.7",
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",