@lambdacurry/arbor 0.21.5 → 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.
- package/dist/arbor.js +49 -39
- 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,10 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17794
17798
|
feedbackId: id,
|
|
17795
17799
|
type: exports_external.string(),
|
|
17796
17800
|
status: exports_external.string(),
|
|
17797
|
-
|
|
17801
|
+
visibility: exports_external.literal("shared"),
|
|
17802
|
+
receiptPrivate: exports_external.literal(true),
|
|
17803
|
+
sharedThreadId: id,
|
|
17804
|
+
sharedContributionId: id,
|
|
17798
17805
|
replayed: exports_external.boolean(),
|
|
17799
17806
|
association: jsonObject.nullable(),
|
|
17800
17807
|
message: exports_external.string()
|
|
@@ -17803,7 +17810,10 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17803
17810
|
feedbackId: id,
|
|
17804
17811
|
type: exports_external.enum(ARBOR_FEEDBACK_TYPES),
|
|
17805
17812
|
status: exports_external.enum(ARBOR_FEEDBACK_STATUSES),
|
|
17806
|
-
|
|
17813
|
+
visibility: exports_external.enum(["shared", "receipt-only"]),
|
|
17814
|
+
receiptPrivate: exports_external.literal(true),
|
|
17815
|
+
sharedThreadId: id.nullable(),
|
|
17816
|
+
sharedContributionId: id.nullable(),
|
|
17807
17817
|
associatedWithSharedKnowledge: exports_external.boolean(),
|
|
17808
17818
|
createdAt: timestamp,
|
|
17809
17819
|
updatedAt: timestamp,
|
|
@@ -18830,7 +18840,7 @@ var CONTRIBUTION_ADD_LINK_RELS = [
|
|
|
18830
18840
|
"tracked-as",
|
|
18831
18841
|
"delivered-by"
|
|
18832
18842
|
];
|
|
18833
|
-
var ARBOR_FEEDBACK_GUIDANCE = `ARBOR-SPECIFIC FEEDBACK —
|
|
18843
|
+
var ARBOR_FEEDBACK_GUIDANCE = `ARBOR-SPECIFIC FEEDBACK — File ONE bounded report through \`contribute_arbor_feedback\` when Arbor itself caused meaningful friction: confusing semantics; surprising Arbor UI/MCP/CLI behavior; a missing Arbor capability; repeated Arbor retries; an Arbor-specific workaround; or misleading state, recovery guidance, or ergonomics. Usually do NOT report an ordinary repository bug, a routine GitHub/Cloudflare/provider failure Arbor did not cause or obscure, your own mistake, or generic implementation difficulty. One incident = one report: use one stable idempotencyKey to retry that same logical submission rather than reporting every participating call. Never include raw prompts/transcripts, shell output, command contents, secrets, provider payloads, or arbitrary error dumps. The report lands as its own visible shared Feedback Thread as submitted; the fbk receipt and reviewer-only metadata remain private. \`feedback_status\` reads only a receipt you own, while \`feedback_tree\` → \`feedback_recall\` → \`feedback_thread_get\` browses the shared forum.`;
|
|
18834
18844
|
var ORIENTATION = `Arbor is your team's deliberation room and shared memory — people and agents settle typed work here, and Arbor remembers what's decided. To work well:
|
|
18835
18845
|
|
|
18836
18846
|
${ARBOR_FEEDBACK_GUIDANCE}
|
|
@@ -18857,10 +18867,10 @@ ${ARBOR_FEEDBACK_GUIDANCE}
|
|
|
18857
18867
|
3. ONE RUN PER TASK. A write Run defaults to an isolated execution environment with its own filesystem, processes, ports, and /tmp while preserving /workspace paths; a read Run shares the parent. Pass runId to Run-aware tools. If a response is lost, recover the durable operation/process identity from computer_run_receipt and read it before retrying. Once every operation is settled, computer_run_suspend publishes the exact workspace and releases the provider during an external wait; the next Run-aware operation restores that checkpoint under the same runId automatically. Suspension refuses active processes or unsettled outcomes and never replays unknown work, so reconcile process and Git/publication evidence first. An isolated local commit or Preview is not Git publication; push coherent work and prove it with computer_repo_work_status before computer_run_finish destroys the final placement. discard=true is the explicit choice to destroy proven non-durable work.
|
|
18858
18868
|
4. CHECKPOINT COMPLETE PARENT UNITS. computer_checkpoint advances immutable parent lineage after an intermediate complete unit; computer_stop performs the final checkpoint before teardown. An isolated Run Preview is durable review output, not adoption or a checkpoint. The internal provider-handle publication operations are not agent tools.
|
|
18859
18869
|
5. GIT AND GITHUB ARE ORDINARY COMMANDS AFTER AUTHORIZATION. Clone, fetch, pull, push, and gh run through computer_exec using a connected human's just-in-time ambient GitHub identity. Credentials never enter argv, workspace files, Git config, checkpoints, Events, logs, or receipts. A restored Computer deliberately keeps the checkout age of its snapshot, so fetch/pull before trusting remote state.
|
|
18860
|
-
6. VERIFY, PREVIEW, AND EXPORT. computer_verify captures a public URL directly without opening a project runtime. computer_publish_preview preserves immutable static output from either the parent or an active isolated write Run. computer_export moves bounded files into durable Thread Attachments; place returned Markdown exactly where the media belongs and cite the matching attachment ids.
|
|
18870
|
+
6. VERIFY, PREVIEW, AND EXPORT. computer_verify captures a public URL directly without opening a project runtime. computer_publish_preview preserves immutable static output from either the parent or an active isolated write Run. computer_export moves bounded files into durable Thread Attachments; for a computer:// file Artifact asleep face, export the exact locator path .tldr and a same-Thread PNG, then use artifact set_snapshot. computer_export itself does not call set_snapshot; place returned Markdown exactly where the media belongs and cite the matching attachment ids.
|
|
18861
18871
|
7. PACKAGE, DEPLOY, ACTIVATE, AND OPERATE APPS HERE. computer_publish_app_bundle creates the immutable executable bundle from verified parent bytes. For short-lived public Artifact experiments use preview_app_create/get/retire; for published Space Apps use app_create, app_config_apply, app_deploy, app_deployment_get, app_activate, app_get, app_fetch/app_request, app_rollback, app_set_access, app_reset_state/app_restore_state, and app_archive as one workflow-closed release surface. First-class Organization/Profile Secrets remain on Arbor's collaboration MCP because they are broader identity-owned resources; App configuration here references existing Secret ids and never accepts or returns secret material.
|
|
18862
18872
|
8. FINISH WHAT YOU START. Stop the parent after its final complete unit, finish every Run, and preserve evidence before teardown. When reporting collaboration conclusions through Arbor, pass the producing computerSessionId and attachmentIds to contribute or respond.
|
|
18863
|
-
9. CLOSE OUT ARBOR DOGFOOD. When developing Arbor through Arbor, ask: “Did Arbor itself create meaningful friction or require an Arbor-specific workaround?” If yes, apply the classifier above and
|
|
18873
|
+
9. CLOSE OUT ARBOR DOGFOOD. When developing Arbor through Arbor, ask: “Did Arbor itself create meaningful friction or require an Arbor-specific workaround?” If yes, apply the classifier above and file one bounded report before closing the development loop; keep unrelated product friction out of the implementation Thread. If no, close normally without manufacturing feedback.`;
|
|
18864
18874
|
var PROSE_LISTS = exports_external.registry();
|
|
18865
18875
|
function proseList(description) {
|
|
18866
18876
|
const schema = exports_external.array(exports_external.string()).describe(description);
|
|
@@ -18974,7 +18984,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18974
18984
|
{
|
|
18975
18985
|
name: "feedback_tree",
|
|
18976
18986
|
title: "Browse the shared Arbor Feedback forum",
|
|
18977
|
-
description: "READ ONLY: Browse the global
|
|
18987
|
+
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.",
|
|
18978
18988
|
inputSchema: {
|
|
18979
18989
|
depth: exports_external.enum(["topics", "threads"]).optional().describe("topics (default) or threads to include each Topic's shared Thread roster"),
|
|
18980
18990
|
includeArchived: exports_external.boolean().optional().describe("include archived Topics/Threads for historical moderation or lookup (default false)")
|
|
@@ -18986,7 +18996,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18986
18996
|
{
|
|
18987
18997
|
name: "feedback_recall",
|
|
18988
18998
|
title: "Find known Arbor feedback",
|
|
18989
|
-
description: "READ ONLY: Search the global shared Arbor Feedback forum for
|
|
18999
|
+
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.",
|
|
18990
19000
|
inputSchema: {
|
|
18991
19001
|
query: exports_external.string().min(1).describe("the Arbor friction, issue, workaround, or idea to find"),
|
|
18992
19002
|
topicId: exports_external.string().optional().describe("optional shared Feedback Topic id from feedback_tree"),
|
|
@@ -18999,7 +19009,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18999
19009
|
{
|
|
19000
19010
|
name: "feedback_thread_get",
|
|
19001
19011
|
title: "Read a shared Arbor Feedback thread",
|
|
19002
|
-
description: "READ ONLY: Read one
|
|
19012
|
+
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.",
|
|
19003
19013
|
inputSchema: {
|
|
19004
19014
|
threadId: exports_external.string().describe("the shared Feedback Thread id, thr_…")
|
|
19005
19015
|
},
|
|
@@ -19009,16 +19019,16 @@ var ACTION_DEFINITIONS = [
|
|
|
19009
19019
|
},
|
|
19010
19020
|
{
|
|
19011
19021
|
name: "contribute_arbor_feedback",
|
|
19012
|
-
title: "
|
|
19013
|
-
description: "
|
|
19022
|
+
title: "Contribute feedback about Arbor",
|
|
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.",
|
|
19014
19024
|
inputSchema: {
|
|
19015
19025
|
type: exports_external.enum(ARBOR_FEEDBACK_TYPES).optional().describe("the contribution move (default comment); decision is reserved for shared forum curation"),
|
|
19016
|
-
body: exports_external.string().min(1).describe("the
|
|
19017
|
-
summary: exports_external.string().max(500).optional().describe("optional
|
|
19026
|
+
body: exports_external.string().min(1).describe("the feedback body, shared as submitted in its own Thread"),
|
|
19027
|
+
summary: exports_external.string().max(500).optional().describe("optional gist, at most 500 characters; also seeds the shared Thread title"),
|
|
19018
19028
|
confidence: exports_external.number().int().min(0).max(100).optional().describe("optional 0–100 confidence"),
|
|
19019
|
-
idempotencyKey: exports_external.string().min(1).max(200).optional().describe("stable key for this ONE
|
|
19020
|
-
threadId: exports_external.string().optional().describe("optional shared Feedback Thread
|
|
19021
|
-
topicId: exports_external.string().optional().describe("optional shared Feedback Topic
|
|
19029
|
+
idempotencyKey: exports_external.string().min(1).max(200).optional().describe("stable key for this ONE report; safe retries return the same receipt and shared Thread"),
|
|
19030
|
+
threadId: exports_external.string().optional().describe("optional related shared Feedback Thread; its Topic becomes the new report Thread's Topic"),
|
|
19031
|
+
topicId: exports_external.string().optional().describe("optional destination shared Feedback Topic for the new report Thread"),
|
|
19022
19032
|
computerSessionId: exports_external.string().optional().describe("optional Arbor Computer session you own; only its id is attached, never shell output or files")
|
|
19023
19033
|
},
|
|
19024
19034
|
surfaces: ["mcp", "cli"],
|
|
@@ -19027,10 +19037,10 @@ var ACTION_DEFINITIONS = [
|
|
|
19027
19037
|
},
|
|
19028
19038
|
{
|
|
19029
19039
|
name: "feedback_status",
|
|
19030
|
-
title: "Check your
|
|
19031
|
-
description: "READ ONLY: Check the
|
|
19040
|
+
title: "Check your Arbor feedback receipt",
|
|
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.",
|
|
19032
19042
|
inputSchema: {
|
|
19033
|
-
feedbackId: exports_external.string().describe("your
|
|
19043
|
+
feedbackId: exports_external.string().describe("your Arbor feedback receipt id, fbk_…")
|
|
19034
19044
|
},
|
|
19035
19045
|
surfaces: ["mcp", "cli"],
|
|
19036
19046
|
toolset: "feedback",
|
|
@@ -19039,11 +19049,11 @@ var ACTION_DEFINITIONS = [
|
|
|
19039
19049
|
{
|
|
19040
19050
|
name: "admin_feedback_capability",
|
|
19041
19051
|
title: "Manage Arbor Feedback capabilities",
|
|
19042
|
-
description: "Privileged: list or set explicit shared-moderation and
|
|
19052
|
+
description: "Privileged: list or set explicit shared-moderation and receipt-review grants. These capabilities are deliberately separate; granting moderation does not grant access to reporter/reviewer receipt metadata.",
|
|
19043
19053
|
inputSchema: {
|
|
19044
19054
|
verb: exports_external.enum(["list", "set"]).describe("list grants, or set one profile capability"),
|
|
19045
19055
|
profileId: exports_external.string().optional().describe("set: the profile receiving or losing the grant"),
|
|
19046
|
-
capability: exports_external.enum(ARBOR_FEEDBACK_CAPABILITIES).optional().describe("set: moderate shared forum or review_private
|
|
19056
|
+
capability: exports_external.enum(ARBOR_FEEDBACK_CAPABILITIES).optional().describe("set: moderate shared forum or review_private receipt metadata"),
|
|
19047
19057
|
enabled: exports_external.boolean().optional().describe("set: true to grant; false to revoke")
|
|
19048
19058
|
},
|
|
19049
19059
|
surfaces: ["mcp", "cli"],
|
|
@@ -19052,11 +19062,11 @@ var ACTION_DEFINITIONS = [
|
|
|
19052
19062
|
},
|
|
19053
19063
|
{
|
|
19054
19064
|
name: "admin_feedback_evidence",
|
|
19055
|
-
title: "Review
|
|
19056
|
-
description: "Privileged
|
|
19065
|
+
title: "Review Arbor feedback receipt metadata",
|
|
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.",
|
|
19057
19067
|
inputSchema: {
|
|
19058
19068
|
verb: exports_external.enum(["list", "get", "associate", "disassociate", "status"]).describe("the private-evidence review action"),
|
|
19059
|
-
feedbackId: exports_external.string().optional().describe("get/associate/disassociate/status:
|
|
19069
|
+
feedbackId: exports_external.string().optional().describe("get/associate/disassociate/status: feedback receipt id"),
|
|
19060
19070
|
associationId: exports_external.string().optional().describe("disassociate: association id to remove"),
|
|
19061
19071
|
topicId: exports_external.string().optional().describe("associate: shared Feedback Topic id"),
|
|
19062
19072
|
threadId: exports_external.string().optional().describe("associate: shared Feedback Thread id"),
|
|
@@ -19076,7 +19086,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19076
19086
|
{
|
|
19077
19087
|
name: "admin_feedback_topic",
|
|
19078
19088
|
title: "Maintain shared Feedback Topics",
|
|
19079
|
-
description: "Privileged shared-forum moderation: create, update, archive, or restore one global Feedback Topic without database intervention. This capability does not expose
|
|
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.",
|
|
19080
19090
|
inputSchema: {
|
|
19081
19091
|
action: exports_external.enum(["create", "update", "archive", "restore"]),
|
|
19082
19092
|
topicId: exports_external.string().optional().describe("update/archive/restore: shared Feedback Topic id"),
|
|
@@ -19090,7 +19100,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19090
19100
|
{
|
|
19091
19101
|
name: "admin_feedback_thread",
|
|
19092
19102
|
title: "Maintain and merge shared Feedback Threads",
|
|
19093
|
-
description: "Privileged shared-forum moderation: create/update/move/transition/archive/restore Threads or merge a duplicate into a canonical destination with redirect and provenance. Merge safely repoints
|
|
19103
|
+
description: "Privileged shared-forum moderation: create/update/move/transition/archive/restore Threads or merge a duplicate into a canonical destination with redirect and provenance. Merge safely repoints receipt associations without duplicating report bodies.",
|
|
19094
19104
|
inputSchema: {
|
|
19095
19105
|
action: exports_external.enum(["create", "update", "move", "transition", "archive", "restore", "merge"]).describe("the Thread lifecycle or merge action"),
|
|
19096
19106
|
threadId: exports_external.string().optional().describe("update/move/transition/archive/restore: Thread id"),
|
|
@@ -19108,16 +19118,16 @@ var ACTION_DEFINITIONS = [
|
|
|
19108
19118
|
},
|
|
19109
19119
|
{
|
|
19110
19120
|
name: "admin_feedback_publish",
|
|
19111
|
-
title: "
|
|
19112
|
-
description: "Privileged: author a
|
|
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.",
|
|
19113
19123
|
inputSchema: {
|
|
19114
19124
|
threadId: exports_external.string().describe("shared Feedback Thread id or merged source redirect"),
|
|
19115
19125
|
type: exports_external.enum(CONTRIBUTION_TYPES).describe("shared contribution type, including maintainer decision"),
|
|
19116
|
-
body: exports_external.string().min(1).describe("
|
|
19126
|
+
body: exports_external.string().min(1).describe("separately authored shared follow-on body"),
|
|
19117
19127
|
summary: exports_external.string().max(500).optional().describe("optional shared gist"),
|
|
19118
19128
|
confidence: exports_external.number().int().min(0).max(100).optional(),
|
|
19119
19129
|
idempotencyKey: exports_external.string().min(1).max(200).optional(),
|
|
19120
|
-
feedbackId: exports_external.string().optional().describe("optional
|
|
19130
|
+
feedbackId: exports_external.string().optional().describe("optional receipt id; additionally requires review_private")
|
|
19121
19131
|
},
|
|
19122
19132
|
surfaces: ["mcp", "cli"],
|
|
19123
19133
|
toolset: "admin",
|
|
@@ -19125,11 +19135,11 @@ var ACTION_DEFINITIONS = [
|
|
|
19125
19135
|
},
|
|
19126
19136
|
{
|
|
19127
19137
|
name: "admin_feedback_edit",
|
|
19128
|
-
title: "Edit
|
|
19129
|
-
description: "Privileged shared-forum moderation: correct a shared Feedback contribution's body, summary, or type while preserving normal Arbor audit history. This cannot
|
|
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.",
|
|
19130
19140
|
inputSchema: {
|
|
19131
19141
|
contributionId: exports_external.string().describe("shared Feedback contribution id"),
|
|
19132
|
-
body: exports_external.string().min(1).optional().describe("replacement
|
|
19142
|
+
body: exports_external.string().min(1).optional().describe("replacement shared body"),
|
|
19133
19143
|
summary: exports_external.string().max(500).nullable().optional().describe("replacement gist; null/empty clears"),
|
|
19134
19144
|
type: exports_external.enum(CONTRIBUTION_TYPES).optional().describe("replacement shared contribution type")
|
|
19135
19145
|
},
|
|
@@ -19140,7 +19150,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19140
19150
|
{
|
|
19141
19151
|
name: "admin_feedback_curate",
|
|
19142
19152
|
title: "Curate shared Feedback content",
|
|
19143
|
-
description: "Privileged shared-forum moderation: soft-delete or restore a
|
|
19153
|
+
description: "Privileged shared-forum moderation: soft-delete or restore a shared contribution. This capability remains independent of receipt-review access.",
|
|
19144
19154
|
inputSchema: {
|
|
19145
19155
|
verb: exports_external.enum(["delete", "restore"]),
|
|
19146
19156
|
contributionId: exports_external.string().describe("shared Feedback contribution id")
|
|
@@ -19621,7 +19631,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19621
19631
|
{
|
|
19622
19632
|
name: "computer_export",
|
|
19623
19633
|
title: "Export a Thread file",
|
|
19624
|
-
description: "Export one bounded file from the parent Computer or a Run
|
|
19634
|
+
description: "Export one bounded file from the parent Computer or a Run as a durable Thread Attachment, with ready-to-place attachments[].markdown to put exactly where the media belongs and bind by attachment id. For a Layer 1 snapshot, export the exact computer:// .tldr locator path (stamping computerPath) and a same-Thread PNG, then use artifact set_snapshot; this command never mints.",
|
|
19625
19635
|
inputSchema: {
|
|
19626
19636
|
computerSessionId: exports_external.string().optional().describe("the computerSessionId returned by computer_open, cms_…; required unless runId is supplied"),
|
|
19627
19637
|
runId: exports_external.string().optional().describe("route this export according to this Run execution placement, run_…"),
|
|
@@ -19825,7 +19835,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19825
19835
|
{
|
|
19826
19836
|
name: "set_artifact_snapshot",
|
|
19827
19837
|
title: "Set an Artifact's stored file snapshot",
|
|
19828
|
-
description: "
|
|
19838
|
+
description: "After computer_export of the exact computer:// .tldr locator path and a same-Thread PNG, use this command (the artifact verb=set_snapshot move) to pin those exported bytes as the Computer-backed file Artifact's asleep/share face. This does not change its locator or create runtime.",
|
|
19829
19839
|
inputSchema: {
|
|
19830
19840
|
artifactId: exports_external.string().describe("the Computer-backed file Artifact, art_…"),
|
|
19831
19841
|
sourceAttachmentId: exports_external.string().describe("exported .tldr Attachment, att_…"),
|
|
@@ -20662,7 +20672,7 @@ var ACTION_DEFINITIONS = [
|
|
|
20662
20672
|
{
|
|
20663
20673
|
name: "artifact",
|
|
20664
20674
|
title: "Create or edit an Artifact",
|
|
20665
|
-
description: "Create or edit a durable versioned Artifact, bind its executable Thread Live Preview, set a Computer-file asleep/share snapshot, or promote a Thread attachment; read artifact_get before changing it, while lifecycle/removal stay in artifact_transition and artifact_delete.
|
|
20675
|
+
description: "Create or edit a durable versioned Artifact, bind its executable Thread Live Preview, set a Computer-file asleep/share snapshot, or promote a Thread attachment; for a computer:// .tldr snapshot mint: computer_export the exact locator path and same-Thread PNG, then use set_snapshot. Board save and TLP do not mint snapshots. set_snapshot does not wake Computer or change the locator; read artifact_get before changing it, while lifecycle/removal stay in artifact_transition and artifact_delete.",
|
|
20666
20676
|
inputSchema: {
|
|
20667
20677
|
verb: exports_external.enum(["create", "edit", "set_live_preview", "set_snapshot", "promote_attachment"]).describe("which artifact move"),
|
|
20668
20678
|
title: exports_external.string().optional().describe("create: the artifact's title"),
|
|
@@ -20680,8 +20690,8 @@ var ACTION_DEFINITIONS = [
|
|
|
20680
20690
|
baseVersion: exports_external.number().optional().describe("edit: the version you READ (from get/create) — stale base is rejected with the current source"),
|
|
20681
20691
|
patches: exports_external.array(exports_external.object({ old: exports_external.string(), new: exports_external.string() })).optional().describe("edit: exact-match hunks applied in order, atomically; each old must match exactly once"),
|
|
20682
20692
|
note: exports_external.string().optional().describe("edit: one-line summary of what changed"),
|
|
20683
|
-
sourceAttachmentId: exports_external.string().optional().describe("set_snapshot:
|
|
20684
|
-
previewAttachmentId: exports_external.string().optional().describe("set_snapshot:
|
|
20693
|
+
sourceAttachmentId: exports_external.string().optional().describe("set_snapshot: computer_export of the exact computer:// locator path; MIME application/vnd.tldraw+json, computerPath stamped and matching defaultCwd + locator"),
|
|
20694
|
+
previewAttachmentId: exports_external.string().optional().describe("set_snapshot: same-Thread computer_export image/png Attachment, used as the asleep face preview"),
|
|
20685
20695
|
attachmentId: exports_external.string().optional().describe("promote_attachment: the upload, att_…")
|
|
20686
20696
|
},
|
|
20687
20697
|
surfaces: ["mcp"],
|
|
@@ -20697,7 +20707,7 @@ var ACTION_DEFINITIONS = [
|
|
|
20697
20707
|
{
|
|
20698
20708
|
name: "artifact_get",
|
|
20699
20709
|
title: "Read an Artifact",
|
|
20700
|
-
description: "Read an Artifact's current source, version, immutable history, AppBundle references, and current executable Live Preview surface, or pass version for an older content snapshot.
|
|
20710
|
+
description: "Read an Artifact's current source, version, immutable history, AppBundle references, and current executable Live Preview surface, or pass version for an older content snapshot. Computer-file Artifacts return snapshot state from set_snapshot (null until set_snapshot, meaning the asleep face is not checkable); this read cannot edit content, bind a surface, change lifecycle, promote an attachment, or delete an Artifact.",
|
|
20701
20711
|
inputSchema: {
|
|
20702
20712
|
artifactId: exports_external.string().describe("the Artifact, art_…"),
|
|
20703
20713
|
version: exports_external.number().optional().describe("read this old snapshot instead of the current")
|
package/package.json
CHANGED