@lambdacurry/arbor 0.21.11 → 0.21.13

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 +39 -34
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -18020,6 +18020,8 @@ var MCP_OUTPUT_SCHEMAS = {
18020
18020
  space: space3,
18021
18021
  topics: exports_external.array(topic2).optional(),
18022
18022
  members: exports_external.array(member).optional(),
18023
+ total: exports_external.number().int().min(0),
18024
+ nextCursor: exports_external.string().optional(),
18023
18025
  computerConfig: resolvedComputerConfig.nullable().optional()
18024
18026
  }),
18025
18027
  topic_get: exports_external.looseObject({
@@ -18027,6 +18029,8 @@ var MCP_OUTPUT_SCHEMAS = {
18027
18029
  space: space3,
18028
18030
  threads: exports_external.array(thread3).optional(),
18029
18031
  promotedArtifacts: exports_external.array(artifact4).optional(),
18032
+ total: exports_external.number().int().min(0),
18033
+ nextCursor: exports_external.string().optional(),
18030
18034
  computerConfig: resolvedComputerConfig.nullable().optional()
18031
18035
  }),
18032
18036
  goal: exports_external.looseObject({
@@ -19007,7 +19011,7 @@ function runAdminFeedback(ex, input) {
19007
19011
  return ex.call("feedback_admin.topic", rest);
19008
19012
  return Promise.reject(new Error(`unknown verb "${verb ?? ""}" — expected one of: ${ADMIN_FEEDBACK_VERB_HELP}`));
19009
19013
  }
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.";
19014
+ 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
19015
  var PAGINATION_INPUT = {
19012
19016
  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
19017
  cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)"),
@@ -19025,7 +19029,7 @@ var ACTION_DEFINITIONS = [
19025
19029
  {
19026
19030
  name: "server_info",
19027
19031
  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.",
19032
+ 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
19033
  inputSchema: {},
19030
19034
  surfaces: ["mcp", "cli", "computer-mcp", "computer-cli"],
19031
19035
  toolset: "structure",
@@ -19034,7 +19038,7 @@ var ACTION_DEFINITIONS = [
19034
19038
  {
19035
19039
  name: "github_repositories",
19036
19040
  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.",
19041
+ 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
19042
  inputSchema: { ...PAGINATION_INPUT },
19039
19043
  surfaces: ["computer-mcp", "cli"],
19040
19044
  toolset: "projects",
@@ -19084,7 +19088,7 @@ var ACTION_DEFINITIONS = [
19084
19088
  {
19085
19089
  name: "recall",
19086
19090
  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.",
19091
+ 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
19092
  inputSchema: {
19089
19093
  query: exports_external.string().min(1).describe("what you want to recall, in natural language"),
19090
19094
  space: exports_external.string().optional().describe("optional space id to scope the search"),
@@ -19100,7 +19104,7 @@ var ACTION_DEFINITIONS = [
19100
19104
  {
19101
19105
  name: "feedback_tree",
19102
19106
  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.",
19107
+ 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
19108
  inputSchema: {
19105
19109
  depth: exports_external.enum(["topics", "threads"]).optional().describe("topics (default) or threads to include each Topic's shared Thread roster"),
19106
19110
  includeArchived: exports_external.boolean().optional().describe("include archived Topics/Threads for historical moderation or lookup (default false)")
@@ -19112,7 +19116,7 @@ var ACTION_DEFINITIONS = [
19112
19116
  {
19113
19117
  name: "feedback_recall",
19114
19118
  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.",
19119
+ 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
19120
  inputSchema: {
19117
19121
  query: exports_external.string().min(1).describe("the Arbor friction, issue, workaround, or idea to find"),
19118
19122
  topicId: exports_external.string().optional().describe("optional shared Feedback Topic id from feedback_tree"),
@@ -19125,7 +19129,7 @@ var ACTION_DEFINITIONS = [
19125
19129
  {
19126
19130
  name: "feedback_thread_get",
19127
19131
  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.",
19132
+ 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
19133
  inputSchema: {
19130
19134
  threadId: exports_external.string().describe("the shared Feedback Thread id, thr_…")
19131
19135
  },
@@ -19154,7 +19158,7 @@ var ACTION_DEFINITIONS = [
19154
19158
  {
19155
19159
  name: "feedback_status",
19156
19160
  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.",
19161
+ 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
19162
  inputSchema: {
19159
19163
  feedbackId: exports_external.string().describe("your Arbor feedback receipt id, fbk_…")
19160
19164
  },
@@ -19588,7 +19592,7 @@ var ACTION_DEFINITIONS = [
19588
19592
  {
19589
19593
  name: "computer_repo_work_status",
19590
19594
  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.",
19595
+ 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
19596
  inputSchema: {
19593
19597
  runId: exports_external.string().describe("the active isolated WRITE Run to inspect, run_…")
19594
19598
  },
@@ -19613,7 +19617,7 @@ var ACTION_DEFINITIONS = [
19613
19617
  {
19614
19618
  name: "computer_run_receipt",
19615
19619
  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.",
19620
+ 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
19621
  inputSchema: {
19618
19622
  runId: exports_external.string().describe("the run to read, run_… (from computer_run_start or computer_runs)")
19619
19623
  },
@@ -19624,7 +19628,7 @@ var ACTION_DEFINITIONS = [
19624
19628
  {
19625
19629
  name: "computer_runs",
19626
19630
  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.",
19631
+ 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
19632
  inputSchema: {
19629
19633
  computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
19630
19634
  status: exports_external.enum(["active", "finished", "failed", "cancelled"]).optional().describe("filter to one lifecycle status"),
@@ -19656,7 +19660,7 @@ var ACTION_DEFINITIONS = [
19656
19660
  {
19657
19661
  name: "computer_process_read",
19658
19662
  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.",
19663
+ 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
19664
  inputSchema: {
19661
19665
  computerSessionId: exports_external.string().optional().describe("the computerSessionId returned by computer_open, cms_…; required unless runId is supplied"),
19662
19666
  runId: exports_external.string().optional().describe("the Run that owns this process, if it was started inside a Run"),
@@ -19684,7 +19688,7 @@ var ACTION_DEFINITIONS = [
19684
19688
  {
19685
19689
  name: "computer_status",
19686
19690
  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.",
19691
+ 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
19692
  inputSchema: {
19689
19693
  computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…")
19690
19694
  },
@@ -19707,7 +19711,7 @@ var ACTION_DEFINITIONS = [
19707
19711
  {
19708
19712
  name: "code_symbols",
19709
19713
  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.",
19714
+ 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
19715
  inputSchema: {
19712
19716
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19713
19717
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19720,7 +19724,7 @@ var ACTION_DEFINITIONS = [
19720
19724
  {
19721
19725
  name: "code_find_symbol",
19722
19726
  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.",
19727
+ 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
19728
  inputSchema: {
19725
19729
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19726
19730
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19736,7 +19740,7 @@ var ACTION_DEFINITIONS = [
19736
19740
  {
19737
19741
  name: "code_references",
19738
19742
  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.",
19743
+ 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
19744
  inputSchema: {
19741
19745
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19742
19746
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19750,7 +19754,7 @@ var ACTION_DEFINITIONS = [
19750
19754
  {
19751
19755
  name: "code_implementations",
19752
19756
  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.",
19757
+ 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
19758
  inputSchema: {
19755
19759
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19756
19760
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19764,7 +19768,7 @@ var ACTION_DEFINITIONS = [
19764
19768
  {
19765
19769
  name: "code_diagnostics",
19766
19770
  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.",
19771
+ 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
19772
  inputSchema: {
19769
19773
  computerSessionId: exports_external.string().optional().describe("parent Computer target; optional when runId is supplied, otherwise required; if both are supplied they must agree"),
19770
19774
  runId: exports_external.string().optional().describe("Run target that resolves its owning Computer session, run_…"),
@@ -19881,7 +19885,7 @@ var ACTION_DEFINITIONS = [
19881
19885
  {
19882
19886
  name: "get_computer",
19883
19887
  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.",
19888
+ 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
19889
  inputSchema: {
19886
19890
  threadId: exports_external.string().describe("the Thread, thr_…"),
19887
19891
  lineageLimit: exports_external.number().int().min(1).max(100).optional().describe("recent receipts/lineage rows (default 20)")
@@ -19893,7 +19897,7 @@ var ACTION_DEFINITIONS = [
19893
19897
  {
19894
19898
  name: "computer_inventory",
19895
19899
  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.",
19900
+ 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
19901
  inputSchema: {
19898
19902
  topicId: exports_external.string().optional().describe("optional Topic to scope the inventory"),
19899
19903
  limit: exports_external.number().int().min(1).max(50).optional().describe("rows to return (default 25)"),
@@ -20235,7 +20239,7 @@ var ACTION_DEFINITIONS = [
20235
20239
  {
20236
20240
  name: "thread_get",
20237
20241
  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.",
20242
+ 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
20243
  inputSchema: {
20240
20244
  threadId: exports_external.string().describe("the thread id, e.g. thr_…"),
20241
20245
  view: exports_external.enum(["full", "compact"]).optional().describe("MCP/CLI/API default compact = bounded decision-ready context; full = transcript page"),
@@ -20267,7 +20271,7 @@ var ACTION_DEFINITIONS = [
20267
20271
  {
20268
20272
  name: "tree",
20269
20273
  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.",
20274
+ 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
20275
  inputSchema: {
20272
20276
  space: exports_external.string().optional().describe("scope to one space id (spc_…)"),
20273
20277
  topic: exports_external.string().optional().describe("scope to one topic id (top_…)"),
@@ -20280,7 +20284,7 @@ var ACTION_DEFINITIONS = [
20280
20284
  {
20281
20285
  name: "members",
20282
20286
  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.",
20287
+ 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
20288
  inputSchema: {},
20285
20289
  surfaces: ["mcp", "cli"],
20286
20290
  toolset: "loop",
@@ -20536,9 +20540,10 @@ var ACTION_DEFINITIONS = [
20536
20540
  {
20537
20541
  name: "space_get",
20538
20542
  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.",
20543
+ description: "Read a Space's durable context—purpose, guidance, contribution lanes, 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.",
20540
20544
  inputSchema: {
20541
- spaceId: exports_external.string().min(1).describe("the space id")
20545
+ spaceId: exports_external.string().min(1).describe("the space id"),
20546
+ ...PAGINATION_INPUT
20542
20547
  },
20543
20548
  surfaces: ["mcp", "cli"],
20544
20549
  toolset: "loop",
@@ -20547,9 +20552,10 @@ var ACTION_DEFINITIONS = [
20547
20552
  {
20548
20553
  name: "topic_get",
20549
20554
  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.",
20555
+ description: "Read a Topic's durable context, guidance, 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`.",
20551
20556
  inputSchema: {
20552
- topicId: exports_external.string().min(1).describe("the topic id")
20557
+ topicId: exports_external.string().min(1).describe("the topic id"),
20558
+ ...PAGINATION_INPUT
20553
20559
  },
20554
20560
  surfaces: ["mcp", "cli"],
20555
20561
  toolset: "loop",
@@ -21082,7 +21088,7 @@ var ACTION_DEFINITIONS = [
21082
21088
  {
21083
21089
  name: "app_list",
21084
21090
  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.",
21091
+ description: "List Apps visible to you, including authorized archived Apps when requested. It cannot modify App state, deployment state, access, or durable SQLite.",
21086
21092
  inputSchema: {
21087
21093
  includeArchived: exports_external.boolean().optional().describe("include archived Apps you are authorized to inspect")
21088
21094
  },
@@ -21093,7 +21099,7 @@ var ACTION_DEFINITIONS = [
21093
21099
  {
21094
21100
  name: "app_get",
21095
21101
  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.",
21102
+ 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
21103
  inputSchema: { appId: exports_external.string().describe("the App, app_…") },
21098
21104
  surfaces: ["computer-mcp", "cli"],
21099
21105
  toolset: "apps",
@@ -21117,7 +21123,7 @@ var ACTION_DEFINITIONS = [
21117
21123
  {
21118
21124
  name: "preview_app_get",
21119
21125
  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.",
21126
+ 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
21127
  inputSchema: { previewAppId: exports_external.string().describe("the Preview App, papp_…") },
21122
21128
  surfaces: ["computer-mcp", "cli"],
21123
21129
  toolset: "apps",
@@ -21193,7 +21199,7 @@ var ACTION_DEFINITIONS = [
21193
21199
  {
21194
21200
  name: "app_deployment_get",
21195
21201
  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.",
21202
+ 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
21203
  inputSchema: {
21198
21204
  appId: exports_external.string().describe("owning App, app_…"),
21199
21205
  deploymentId: exports_external.string().describe("deployment, dep_…")
@@ -21205,7 +21211,7 @@ var ACTION_DEFINITIONS = [
21205
21211
  {
21206
21212
  name: "app_fetch",
21207
21213
  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.",
21214
+ 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
21215
  inputSchema: {
21210
21216
  appId: exports_external.string().describe("target App, app_…"),
21211
21217
  path: exports_external.string().min(1).max(2048).describe("relative App path beginning with /; may include a query string"),
@@ -21366,8 +21372,7 @@ var ACTIONS = ACTION_DEFINITIONS.map((action) => {
21366
21372
  if (!outputSchema)
21367
21373
  throw new Error(`${action.name}: MCP action is missing an output schema`);
21368
21374
  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 };
21375
+ return { ...action, externalReadDefaults, outputSchema, annotations };
21371
21376
  });
21372
21377
 
21373
21378
  // 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.13",
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",