@lambdacurry/arbor 0.21.11 → 0.21.12

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 +31 -32
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -19007,7 +19007,7 @@ function runAdminFeedback(ex, input) {
19007
19007
  return ex.call("feedback_admin.topic", rest);
19008
19008
  return Promise.reject(new Error(`unknown verb "${verb ?? ""}" — expected one of: ${ADMIN_FEEDBACK_VERB_HELP}`));
19009
19009
  }
19010
- var NOTIFICATION_TRIAGE_DESCRIPTION = "READ ONLY: List your awareness feed newest first with unseen count and derived triage class: `settled-context` = settled Thread context; `owed-by-me` = an open request pointing to `inbox`; `judgment-available` = live engagement inviting judgment; `closed-loop` = your request completed; `room-motion` = ambient activity. Notifications are FYI, not a second obligation surface: `inbox` alone contains work owed by you; this cannot mark notifications read or modify inbox obligations.";
19010
+ var NOTIFICATION_TRIAGE_DESCRIPTION = "List your awareness feed newest first with unseen count and derived triage class: `settled-context` = settled Thread context; `owed-by-me` = an open request pointing to `inbox`; `judgment-available` = live engagement inviting judgment; `closed-loop` = your request completed; `room-motion` = ambient activity. Notifications are FYI, not a second obligation surface: `inbox` alone contains work owed by you; this cannot mark notifications read or modify inbox obligations.";
19011
19011
  var PAGINATION_INPUT = {
19012
19012
  limit: exports_external.number().int().min(1).optional().describe(`max items to return. MCP/CLI/API default to ${EXTERNAL_DEFAULT_PAGE_SIZE} and return nextCursor when more remain; pass all=true/--all for the complete list. In-process web omit is still a compatibility full read`),
19013
19013
  cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)"),
@@ -19025,7 +19025,7 @@ var ACTION_DEFINITIONS = [
19025
19025
  {
19026
19026
  name: "server_info",
19027
19027
  title: "Inspect Arbor server version",
19028
- description: "READ ONLY: Return the Arbor release version and current Cloudflare deployment identity so a client can distinguish a fresh server from a cached tool catalog. This cannot modify Arbor, Computer, App, access, or durable state.",
19028
+ description: "Return the Arbor release version and current Cloudflare deployment identity so a client can distinguish a fresh server from a cached tool catalog. This cannot modify Arbor, Computer, App, access, or durable state.",
19029
19029
  inputSchema: {},
19030
19030
  surfaces: ["mcp", "cli", "computer-mcp", "computer-cli"],
19031
19031
  toolset: "structure",
@@ -19034,7 +19034,7 @@ var ACTION_DEFINITIONS = [
19034
19034
  {
19035
19035
  name: "github_repositories",
19036
19036
  title: "List installed GitHub repositories",
19037
- description: "READ ONLY: List repositories covered by this organization's verified Arbor Computer GitHub App, returning ids and metadata but never credentials. Use github_connect_repository to authorize one at an Arbor scope; listing alone grants no Computer access.",
19037
+ description: "List repositories covered by this organization's verified Arbor Computer GitHub App, returning ids and metadata but never credentials. Use github_connect_repository to authorize one at an Arbor scope; listing alone grants no Computer access.",
19038
19038
  inputSchema: { ...PAGINATION_INPUT },
19039
19039
  surfaces: ["computer-mcp", "cli"],
19040
19040
  toolset: "projects",
@@ -19084,7 +19084,7 @@ var ACTION_DEFINITIONS = [
19084
19084
  {
19085
19085
  name: "recall",
19086
19086
  title: "Recall existing knowledge",
19087
- description: "READ ONLY: Search Arbor semantically for existing contributions, artifacts, and decisions. Use `tree` for lifecycle/attention routing; once you know the area, pass space/topic/thread to keep recall inside that working set before targeted reads.",
19087
+ description: "Search Arbor semantically for existing contributions, artifacts, and decisions. Use `tree` for lifecycle/attention routing; once you know the area, pass space/topic/thread to keep recall inside that working set before targeted reads.",
19088
19088
  inputSchema: {
19089
19089
  query: exports_external.string().min(1).describe("what you want to recall, in natural language"),
19090
19090
  space: exports_external.string().optional().describe("optional space id to scope the search"),
@@ -19100,7 +19100,7 @@ var ACTION_DEFINITIONS = [
19100
19100
  {
19101
19101
  name: "feedback_tree",
19102
19102
  title: "Browse the shared Arbor Feedback forum",
19103
- description: "READ ONLY: Browse the global Arbor Feedback forum by Topic and optional Thread roster; the global scope is implied and no Space id is required. New reports appear as their own shared Threads as submitted; private receipt metadata and reviewer diagnostics are never returned.",
19103
+ description: "Browse the global Arbor Feedback forum by Topic and optional Thread roster; the global scope is implied and no Space id is required. New reports appear as their own shared Threads as submitted; private receipt metadata and reviewer diagnostics are never returned.",
19104
19104
  inputSchema: {
19105
19105
  depth: exports_external.enum(["topics", "threads"]).optional().describe("topics (default) or threads to include each Topic's shared Thread roster"),
19106
19106
  includeArchived: exports_external.boolean().optional().describe("include archived Topics/Threads for historical moderation or lookup (default false)")
@@ -19112,7 +19112,7 @@ var ACTION_DEFINITIONS = [
19112
19112
  {
19113
19113
  name: "feedback_recall",
19114
19114
  title: "Find known Arbor feedback",
19115
- description: "READ ONLY: Search the global shared Arbor Feedback forum for reports, workarounds, and decisions; scope to a Topic after feedback_tree when useful. New report bodies are searchable as submitted; private receipt ids, reporter metadata, and reviewer diagnostics are never returned.",
19115
+ description: "Search the global shared Arbor Feedback forum for reports, workarounds, and decisions; scope to a Topic after feedback_tree when useful. New report bodies are searchable as submitted; private receipt ids, reporter metadata, and reviewer diagnostics are never returned.",
19116
19116
  inputSchema: {
19117
19117
  query: exports_external.string().min(1).describe("the Arbor friction, issue, workaround, or idea to find"),
19118
19118
  topicId: exports_external.string().optional().describe("optional shared Feedback Topic id from feedback_tree"),
@@ -19125,7 +19125,7 @@ var ACTION_DEFINITIONS = [
19125
19125
  {
19126
19126
  name: "feedback_thread_get",
19127
19127
  title: "Read a shared Arbor Feedback thread",
19128
- description: "READ ONLY: Read one shared Arbor Feedback Thread, following a merge redirect to its canonical destination while preserving shared provenance. A newly filed report appears here as submitted; private receipt ids, reporter organization metadata, diagnostics, and private associations are not projected.",
19128
+ description: "Read one shared Arbor Feedback Thread, following a merge redirect to its canonical destination while preserving shared provenance. A newly filed report appears here as submitted; private receipt ids, reporter organization metadata, diagnostics, and private associations are not projected.",
19129
19129
  inputSchema: {
19130
19130
  threadId: exports_external.string().describe("the shared Feedback Thread id, thr_…")
19131
19131
  },
@@ -19154,7 +19154,7 @@ var ACTION_DEFINITIONS = [
19154
19154
  {
19155
19155
  name: "feedback_status",
19156
19156
  title: "Check your Arbor feedback receipt",
19157
- 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.",
19157
+ description: "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.",
19158
19158
  inputSchema: {
19159
19159
  feedbackId: exports_external.string().describe("your Arbor feedback receipt id, fbk_…")
19160
19160
  },
@@ -19588,7 +19588,7 @@ var ACTION_DEFINITIONS = [
19588
19588
  {
19589
19589
  name: "computer_repo_work_status",
19590
19590
  title: "Inspect repository finish state",
19591
- description: "READ ONLY: Inspect an active isolated WRITE Run's Git publication, PR, CI, and review before retry, wait, or finish. Returns repository state (e.g. ci-pending) plus runDisposition.action computer_run_suspend when published work waits on CI/review/human authorization — the same runId resumes; dirty, unpublished, unknown-publication, failing, or changes-requested work keeps the local nextAction.",
19591
+ description: "Inspect an active isolated WRITE Run's Git publication, PR, CI, and review before retry, wait, or finish. Returns repository state (e.g. ci-pending) plus runDisposition.action computer_run_suspend when published work waits on CI/review/human authorization — the same runId resumes; dirty, unpublished, unknown-publication, failing, or changes-requested work keeps the local nextAction.",
19592
19592
  inputSchema: {
19593
19593
  runId: exports_external.string().describe("the active isolated WRITE Run to inspect, run_…")
19594
19594
  },
@@ -19613,7 +19613,7 @@ var ACTION_DEFINITIONS = [
19613
19613
  {
19614
19614
  name: "computer_run_receipt",
19615
19615
  title: "Read a run receipt",
19616
- description: "READ ONLY: Inspect one Run's durable receipt during or after execution, including its Run-owned operation/activity state and a compact providerLifecycle journal (generation, last phase, typed reason) separate from command/process activity. Use this instead of parent computer_status; it returns compact history, not transcripts, and does not rewrite terminal reasonCode.",
19616
+ description: "Inspect one Run's durable receipt during or after execution, including its Run-owned operation/activity state and a compact providerLifecycle journal (generation, last phase, typed reason) separate from command/process activity. Use this instead of parent computer_status; it returns compact history, not transcripts, and does not rewrite terminal reasonCode.",
19617
19617
  inputSchema: {
19618
19618
  runId: exports_external.string().describe("the run to read, run_… (from computer_run_start or computer_runs)")
19619
19619
  },
@@ -19624,7 +19624,7 @@ var ACTION_DEFINITIONS = [
19624
19624
  {
19625
19625
  name: "computer_runs",
19626
19626
  title: "List runs",
19627
- description: "READ ONLY: List active or recent Runs for this Thread Computer when deciding whether to resume existing work or start another unit. Returns each Run's mode, execution placement, workspace identity, and lifecycle status.",
19627
+ description: "List active or recent Runs for this Thread Computer when deciding whether to resume existing work or start another unit. Returns each Run's mode, execution placement, workspace identity, and lifecycle status.",
19628
19628
  inputSchema: {
19629
19629
  computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
19630
19630
  status: exports_external.enum(["active", "finished", "failed", "cancelled"]).optional().describe("filter to one lifecycle status"),
@@ -19656,7 +19656,7 @@ var ACTION_DEFINITIONS = [
19656
19656
  {
19657
19657
  name: "computer_process_read",
19658
19658
  title: "Read a background process",
19659
- description: "READ ONLY: Read a provider-owned process from computer_exec, including a foreground operation recovered from a Run receipt, and use nextCursor for incremental output. Returns compact activity or recovery state plus the final exit result when observable.",
19659
+ description: "Read a provider-owned process from computer_exec, including a foreground operation recovered from a Run receipt, and use nextCursor for incremental output. Returns compact activity or recovery state plus the final exit result when observable.",
19660
19660
  inputSchema: {
19661
19661
  computerSessionId: exports_external.string().optional().describe("the computerSessionId returned by computer_open, cms_…; required unless runId is supplied"),
19662
19662
  runId: exports_external.string().optional().describe("the Run that owns this process, if it was started inside a Run"),
@@ -19684,7 +19684,7 @@ var ACTION_DEFINITIONS = [
19684
19684
  {
19685
19685
  name: "computer_status",
19686
19686
  title: "Inspect a computer",
19687
- description: "READ ONLY: Inspect the live PARENT Thread Computer's capabilities, execution readiness, processes, and profile. If its named command session is unavailable, command capabilities disappear and recovery points to computer_open; this does not report isolated Run command state, so use computer_run_receipt for Run state or get_computer for durable lineage.",
19687
+ description: "Inspect the live PARENT Thread Computer's capabilities, execution readiness, processes, and profile. If its named command session is unavailable, command capabilities disappear and recovery points to computer_open; this does not report isolated Run command state, so use computer_run_receipt for Run state or get_computer for durable lineage.",
19688
19688
  inputSchema: {
19689
19689
  computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…")
19690
19690
  },
@@ -19707,7 +19707,7 @@ var ACTION_DEFINITIONS = [
19707
19707
  {
19708
19708
  name: "code_symbols",
19709
19709
  title: "Outline a file's symbols",
19710
- description: "READ ONLY: Outline real declarations in a file or directory when you need structure without reading or searching the whole source. Uses the language server to return symbols and kinds, distinguishing declarations from textual matches.",
19710
+ description: "Outline real declarations in a file or directory when you need structure without reading or searching the whole source. Uses the language server to return symbols and kinds, distinguishing declarations from textual matches.",
19711
19711
  inputSchema: {
19712
19712
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19713
19713
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19720,7 +19720,7 @@ var ACTION_DEFINITIONS = [
19720
19720
  {
19721
19721
  name: "code_find_symbol",
19722
19722
  title: "Find a symbol by name path",
19723
- description: "READ ONLY: Locate a declaration by name path when you need the definition rather than text matches. Uses the language server and can include the symbol body and bounded child depth.",
19723
+ description: "Locate a declaration by name path when you need the definition rather than text matches. Uses the language server and can include the symbol body and bounded child depth.",
19724
19724
  inputSchema: {
19725
19725
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19726
19726
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19736,7 +19736,7 @@ var ACTION_DEFINITIONS = [
19736
19736
  {
19737
19737
  name: "code_references",
19738
19738
  title: "Find what references a symbol",
19739
- description: "READ ONLY: Find semantic references to a declaration when you need to know what actually depends on it before a change. Uses the language server to return resolved references with snippets, excluding unrelated textual matches.",
19739
+ description: "Find semantic references to a declaration when you need to know what actually depends on it before a change. Uses the language server to return resolved references with snippets, excluding unrelated textual matches.",
19740
19740
  inputSchema: {
19741
19741
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19742
19742
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19750,7 +19750,7 @@ var ACTION_DEFINITIONS = [
19750
19750
  {
19751
19751
  name: "code_implementations",
19752
19752
  title: "Find implementations of a symbol",
19753
- description: "READ ONLY: Find concrete implementations or subtypes of an interface, abstract type, or method. Uses the language server to resolve type relationships that text search cannot follow.",
19753
+ description: "Find concrete implementations or subtypes of an interface, abstract type, or method. Uses the language server to resolve type relationships that text search cannot follow.",
19754
19754
  inputSchema: {
19755
19755
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19756
19756
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19764,7 +19764,7 @@ var ACTION_DEFINITIONS = [
19764
19764
  {
19765
19765
  name: "code_diagnostics",
19766
19766
  title: "Read language-server diagnostics for a file",
19767
- description: "READ ONLY: Check live language-server errors and warnings for one file, especially after an edit. Returns diagnostics mapped to symbols for fast local feedback; it does not replace a whole-project build or typecheck.",
19767
+ description: "Check live language-server errors and warnings for one file, especially after an edit. Returns diagnostics mapped to symbols for fast local feedback; it does not replace a whole-project build or typecheck.",
19768
19768
  inputSchema: {
19769
19769
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19770
19770
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19881,7 +19881,7 @@ var ACTION_DEFINITIONS = [
19881
19881
  {
19882
19882
  name: "get_computer",
19883
19883
  title: "Read a Thread computer",
19884
- description: "READ ONLY: Inspect a Thread's durable Computer recipe/materialization state, compatibility, snapshot lineage, recent receipts, Runs, and reprovision outcomes; setup content and credentials stay redacted. Use computer_open or computer_status for live execution state; this surface reports durable Arbor protocol state.",
19884
+ description: "Inspect a Thread's durable Computer recipe/materialization state, compatibility, snapshot lineage, recent receipts, Runs, and reprovision outcomes; setup content and credentials stay redacted. Use computer_open or computer_status for live execution state; this surface reports durable Arbor protocol state.",
19885
19885
  inputSchema: {
19886
19886
  threadId: exports_external.string().describe("the Thread, thr_…"),
19887
19887
  lineageLimit: exports_external.number().int().min(1).max(100).optional().describe("recent receipts/lineage rows (default 20)")
@@ -19893,7 +19893,7 @@ var ACTION_DEFINITIONS = [
19893
19893
  {
19894
19894
  name: "computer_inventory",
19895
19895
  title: "Inventory organization Computers",
19896
- description: "READ ONLY: Inventory materialized Thread Computers in your organization, optionally scoped to a Topic, with active generation, compatibility, lifecycle counts, and factual anomaly flags. Organization owner/admin only; this is evidence, not a deletion recommendation.",
19896
+ description: "Inventory materialized Thread Computers in your organization, optionally scoped to a Topic, with active generation, compatibility, lifecycle counts, and factual anomaly flags. Organization owner/admin only; this is evidence, not a deletion recommendation.",
19897
19897
  inputSchema: {
19898
19898
  topicId: exports_external.string().optional().describe("optional Topic to scope the inventory"),
19899
19899
  limit: exports_external.number().int().min(1).max(50).optional().describe("rows to return (default 25)"),
@@ -20235,7 +20235,7 @@ var ACTION_DEFINITIONS = [
20235
20235
  {
20236
20236
  name: "thread_get",
20237
20237
  title: "Read a thread",
20238
- description: "READ ONLY: Read one Thread as compact current context (distillate, requests, artifacts, recent tail, cursored unchanged checks) — not the durable transcript; pass view=full to page history (contribLimit default 50) or all=true for the complete transcript. Read it before contributing so you can answer open requests correctly.",
20238
+ description: "Read one Thread as compact current context (distillate, requests, artifacts, recent tail, cursored unchanged checks) — not the durable transcript; pass view=full to page history (contribLimit default 50) or all=true for the complete transcript. Read it before contributing so you can answer open requests correctly.",
20239
20239
  inputSchema: {
20240
20240
  threadId: exports_external.string().describe("the thread id, e.g. thr_…"),
20241
20241
  view: exports_external.enum(["full", "compact"]).optional().describe("MCP/CLI/API default compact = bounded decision-ready context; full = transcript page"),
@@ -20267,7 +20267,7 @@ var ACTION_DEFINITIONS = [
20267
20267
  {
20268
20268
  name: "tree",
20269
20269
  title: "Navigate the workspace tree",
20270
- description: "READ ONLY: Map Spaces to Topics to Threads for orientation; Topic `activeThreadCount` is the current working set (active/stuck/needs-review/standing), while `status` is area attention (`stuck`=any stuck, `attention`=needs-review or open request, `healthy`=neither), not personal obligation (`inbox`). In a large Space, choose the Topic here, scope recall to it, then read only the returned Thread/Artifact; expand tree or use topic_get only for explicit enumeration or Topic-wide context.",
20270
+ description: "Map Spaces to Topics to Threads for orientation; Topic `activeThreadCount` is the current working set (active/stuck/needs-review/standing), while `status` is area attention (`stuck`=any stuck, `attention`=needs-review or open request, `healthy`=neither), not personal obligation (`inbox`). In a large Space, choose the Topic here, scope recall to it, then read only the returned Thread/Artifact; expand tree or use topic_get only for explicit enumeration or Topic-wide context.",
20271
20271
  inputSchema: {
20272
20272
  space: exports_external.string().optional().describe("scope to one space id (spc_…)"),
20273
20273
  topic: exports_external.string().optional().describe("scope to one topic id (top_…)"),
@@ -20280,7 +20280,7 @@ var ACTION_DEFINITIONS = [
20280
20280
  {
20281
20281
  name: "members",
20282
20282
  title: "List the people + agents in your org",
20283
- description: "READ ONLY: List everyone in your org with profile id, human/agent identity, role, charter, and capabilities needed for routing. Use it to resolve profile ids for mentions or targeted requests; it cannot modify membership.",
20283
+ description: "List everyone in your org with profile id, human/agent identity, role, charter, and capabilities needed for routing. Use it to resolve profile ids for mentions or targeted requests; it cannot modify membership.",
20284
20284
  inputSchema: {},
20285
20285
  surfaces: ["mcp", "cli"],
20286
20286
  toolset: "loop",
@@ -20536,7 +20536,7 @@ var ACTION_DEFINITIONS = [
20536
20536
  {
20537
20537
  name: "space_get",
20538
20538
  title: "Read a space",
20539
- description: "READ ONLY: Read a Space's durable context: purpose, guidance, contribution lanes, Topics, and full member roster with roles, capabilities, and charters. Use it after tree when you need the room's full norms or collaborator context; it cannot modify membership or guidance.",
20539
+ description: "Read a Space's durable context: purpose, guidance, contribution lanes, Topics, and full member roster with roles, capabilities, and charters. Use it after tree when you need the room's full norms or collaborator context; it cannot modify membership or guidance.",
20540
20540
  inputSchema: {
20541
20541
  spaceId: exports_external.string().min(1).describe("the space id")
20542
20542
  },
@@ -20547,7 +20547,7 @@ var ACTION_DEFINITIONS = [
20547
20547
  {
20548
20548
  name: "topic_get",
20549
20549
  title: "Read a topic",
20550
- description: "READ ONLY: Read a Topic's full details, guidance, complete Thread roster, open requests, and promoted artifacts. Use it for intentional Topic-wide context or enumeration; for a concrete question in a large Topic, prefer Topic-scoped recall first.",
20550
+ description: "Read a Topic's full details, guidance, complete Thread roster, open requests, and promoted artifacts. Use it for intentional Topic-wide context or enumeration; for a concrete question in a large Topic, prefer Topic-scoped recall first.",
20551
20551
  inputSchema: {
20552
20552
  topicId: exports_external.string().min(1).describe("the topic id")
20553
20553
  },
@@ -21082,7 +21082,7 @@ var ACTION_DEFINITIONS = [
21082
21082
  {
21083
21083
  name: "app_list",
21084
21084
  title: "List visible Apps",
21085
- description: "READ ONLY: List Apps visible to you, including authorized archived Apps when requested. It cannot modify App state, deployment state, access, or durable SQLite.",
21085
+ description: "List Apps visible to you, including authorized archived Apps when requested. It cannot modify App state, deployment state, access, or durable SQLite.",
21086
21086
  inputSchema: {
21087
21087
  includeArchived: exports_external.boolean().optional().describe("include archived Apps you are authorized to inspect")
21088
21088
  },
@@ -21093,7 +21093,7 @@ var ACTION_DEFINITIONS = [
21093
21093
  {
21094
21094
  name: "app_get",
21095
21095
  title: "Read an App",
21096
- description: "READ ONLY: Inspect one App's stable URL, active deployment, pending control intent, deployment history, provider health, deployment-aware redacted configuration readiness for the active release, and durable state generation. It cannot modify App state, deployment state, access, or durable SQLite; use its activeDeploymentId as app_activate's expectedActiveDeploymentId.",
21096
+ description: "Inspect one App's stable URL, active deployment, pending control intent, deployment history, provider health, deployment-aware redacted configuration readiness for the active release, and durable state generation. It cannot modify App state, deployment state, access, or durable SQLite; use its activeDeploymentId as app_activate's expectedActiveDeploymentId.",
21097
21097
  inputSchema: { appId: exports_external.string().describe("the App, app_…") },
21098
21098
  surfaces: ["computer-mcp", "cli"],
21099
21099
  toolset: "apps",
@@ -21117,7 +21117,7 @@ var ACTION_DEFINITIONS = [
21117
21117
  {
21118
21118
  name: "preview_app_get",
21119
21119
  title: "Read a Preview App",
21120
- description: "READ ONLY: Inspect one Preview App's public URL, pinned ArtifactVersion/AppBundle lineage, absolute expiry, Thread status, and bounded WebSocket room contract. It is not a Space App catalog read.",
21120
+ description: "Inspect one Preview App's public URL, pinned ArtifactVersion/AppBundle lineage, absolute expiry, Thread status, and bounded WebSocket room contract. It is not a Space App catalog read.",
21121
21121
  inputSchema: { previewAppId: exports_external.string().describe("the Preview App, papp_…") },
21122
21122
  surfaces: ["computer-mcp", "cli"],
21123
21123
  toolset: "apps",
@@ -21193,7 +21193,7 @@ var ACTION_DEFINITIONS = [
21193
21193
  {
21194
21194
  name: "app_deployment_get",
21195
21195
  title: "Inspect an App deployment",
21196
- description: "READ ONLY: Inspect one deployment's state, source bundle, provider receipt, phased redacted health (load|activation|runtime), and config readiness. It cannot modify App state, deployment state, access, or durable SQLite.",
21196
+ description: "Inspect one deployment's state, source bundle, provider receipt, phased redacted health (load|activation|runtime), and config readiness. It cannot modify App state, deployment state, access, or durable SQLite.",
21197
21197
  inputSchema: {
21198
21198
  appId: exports_external.string().describe("owning App, app_…"),
21199
21199
  deploymentId: exports_external.string().describe("deployment, dep_…")
@@ -21205,7 +21205,7 @@ var ACTION_DEFINITIONS = [
21205
21205
  {
21206
21206
  name: "app_fetch",
21207
21207
  title: "Fetch from an App",
21208
- description: "READ ONLY: Invoke GET or HEAD on one relative path of an App using your current Arbor identity; for Space Apps, current Space membership is rechecked on every call. It cannot modify App lifecycle, deployments, access, or durable SQLite; browser grants, cookies, credentials, and reserved /__arbor paths are never exposed to App code.",
21208
+ description: "Invoke GET or HEAD on one relative path of an App using your current Arbor identity; for Space Apps, current Space membership is rechecked on every call. It cannot modify App lifecycle, deployments, access, or durable SQLite; browser grants, cookies, credentials, and reserved /__arbor paths are never exposed to App code.",
21209
21209
  inputSchema: {
21210
21210
  appId: exports_external.string().describe("target App, app_…"),
21211
21211
  path: exports_external.string().min(1).max(2048).describe("relative App path beginning with /; may include a query string"),
@@ -21366,8 +21366,7 @@ var ACTIONS = ACTION_DEFINITIONS.map((action) => {
21366
21366
  if (!outputSchema)
21367
21367
  throw new Error(`${action.name}: MCP action is missing an output schema`);
21368
21368
  const annotations = mcpAnnotationsFor(action.name);
21369
- const description = annotations.readOnlyHint && !action.description.startsWith("READ ONLY") ? `READ ONLY: ${action.description}` : action.description;
21370
- return { ...action, externalReadDefaults, description, outputSchema, annotations };
21369
+ return { ...action, externalReadDefaults, outputSchema, annotations };
21371
21370
  });
21372
21371
 
21373
21372
  // src/config.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.21.11",
3
+ "version": "0.21.12",
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",