@lambdacurry/arbor 0.21.2 → 0.21.3

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 +52 -6
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -2297,6 +2297,16 @@ var artifacts = sqliteTable("artifacts", {
2297
2297
  tierIdx: index("artifacts_tier_idx").on(t.retrievalTier),
2298
2298
  ownerIdx: index("artifacts_owner_idx").on(t.ownerProfileId)
2299
2299
  }));
2300
+ var artifactLivePreviewSurfaces = sqliteTable("artifact_live_preview_surfaces", {
2301
+ artifactId: text("artifact_id").primaryKey().references(() => artifacts.id),
2302
+ threadId: text("thread_id").notNull().references(() => threads.id),
2303
+ boundByProfileId: text("bound_by_profile_id").notNull().references(() => profiles.id),
2304
+ executionContextId: text("execution_context_id").notNull().references(() => executionContexts.id),
2305
+ revision: integer("revision").notNull().default(1),
2306
+ boundAt: ts("bound_at").notNull()
2307
+ }, (t) => ({
2308
+ threadUq: uniqueIndex("artifact_live_preview_surfaces_thread_uniq").on(t.threadId)
2309
+ }));
2300
2310
  var artifactVersions = sqliteTable("artifact_versions", {
2301
2311
  id: text("id").primaryKey(),
2302
2312
  artifactId: text("artifact_id").notNull().references(() => artifacts.id),
@@ -17163,6 +17173,24 @@ var recallHit = exports_external.looseObject({
17163
17173
  url: nullableString,
17164
17174
  createdAt: timestamp
17165
17175
  });
17176
+ var artifactLivePreviewThread = exports_external.looseObject({
17177
+ id,
17178
+ title: exports_external.string()
17179
+ });
17180
+ var artifactLivePreview = exports_external.discriminatedUnion("status", [
17181
+ exports_external.looseObject({
17182
+ thread: artifactLivePreviewThread,
17183
+ boundAt: timestamp,
17184
+ status: exports_external.literal("configured"),
17185
+ url: exports_external.string()
17186
+ }),
17187
+ exports_external.looseObject({
17188
+ thread: artifactLivePreviewThread,
17189
+ boundAt: timestamp,
17190
+ status: exports_external.literal("unavailable"),
17191
+ url: exports_external.never().optional()
17192
+ })
17193
+ ]);
17166
17194
  var contributionRef = exports_external.looseObject({
17167
17195
  id,
17168
17196
  objectType: exports_external.string(),
@@ -17984,7 +18012,10 @@ var MCP_OUTPUT_SCHEMAS = {
17984
18012
  url: exports_external.string().optional(),
17985
18013
  versions: exports_external.array(jsonObject).optional(),
17986
18014
  appBundles: exports_external.array(jsonObject).optional(),
17987
- usedByApps: exports_external.array(jsonObject).optional()
18015
+ usedByApps: exports_external.array(jsonObject).optional(),
18016
+ livePreview: artifactLivePreview.nullable().optional(),
18017
+ threadId: id.nullable().optional(),
18018
+ changed: exports_external.boolean().optional()
17988
18019
  }),
17989
18020
  artifact_get: exports_external.looseObject({
17990
18021
  id,
@@ -17996,6 +18027,7 @@ var MCP_OUTPUT_SCHEMAS = {
17996
18027
  versions: exports_external.array(jsonObject).optional(),
17997
18028
  appBundles: exports_external.array(jsonObject),
17998
18029
  usedByApps: exports_external.array(jsonObject),
18030
+ livePreview: artifactLivePreview.nullable(),
17999
18031
  watching: exports_external.boolean(),
18000
18032
  url: exports_external.string()
18001
18033
  }),
@@ -19687,7 +19719,7 @@ var ACTION_DEFINITIONS = [
19687
19719
  {
19688
19720
  name: "get_artifact",
19689
19721
  title: "Read an artifact",
19690
- description: "Read an artifact: current source + version + immutable versions[].id (artv_…), plus who edited and via what. READ BEFORE YOU EDIT — the version number you read is the baseVersion your edit must name. Use the matching versions[].id as artifactVersionId when publishing an AppBundle. Pass --version to read an old snapshot.",
19722
+ description: "Read an Artifact's current source/version/history plus its current executable Live Preview surface when bound. READ BEFORE YOU EDIT — the version number you read is the baseVersion your edit must name. Surface binding is current Artifact identity metadata and remains current even when --version reads old content.",
19691
19723
  inputSchema: {
19692
19724
  artifactId: exports_external.string().describe("the artifact, art_…"),
19693
19725
  version: exports_external.number().optional().describe("read this old snapshot instead of the current")
@@ -19714,6 +19746,18 @@ var ACTION_DEFINITIONS = [
19714
19746
  verb: Array.isArray(input.patches) ? "patch" : "replace"
19715
19747
  })
19716
19748
  },
19749
+ {
19750
+ name: "set_artifact_live_preview",
19751
+ title: "Set an Artifact's live Thread surface",
19752
+ description: "Bind one Artifact to an existing same-Space Thread Live Preview, making the Artifact the durable entry point for that executable surface. Omit --thread-id to clear the binding; this changes no Artifact source/version and does not create or reconfigure a Computer.",
19753
+ inputSchema: {
19754
+ artifactId: exports_external.string().describe("the Artifact, art_…"),
19755
+ threadId: exports_external.string().optional().describe("the configured Thread Live Preview to bind, thr_…; omit to clear")
19756
+ },
19757
+ surfaces: ["cli"],
19758
+ toolset: "artifacts",
19759
+ run: forward("artifact.setLivePreview")
19760
+ },
19717
19761
  {
19718
19762
  name: "transition_artifact",
19719
19763
  title: "Transition an artifact's lifecycle",
@@ -20529,9 +20573,9 @@ var ACTION_DEFINITIONS = [
20529
20573
  {
20530
20574
  name: "artifact",
20531
20575
  title: "Create or edit an Artifact",
20532
- description: "Create or edit a durable versioned Artifact, or promote a Thread attachment; read artifact_get and its baseVersion before editing, while lifecycle/removal stay in artifact_transition and artifact_delete. Text edits replace source or apply exact-match patches atomically, file artifacts use contentRef, and computer-produced artifacts may cite computerSessionId.",
20576
+ description: "Create or edit a durable versioned Artifact, bind its executable Thread Live Preview, or promote a Thread attachment; read artifact_get before changing it, while lifecycle/removal stay in artifact_transition and artifact_delete. Live-surface binding changes Artifact identity metadata, not source/version content.",
20533
20577
  inputSchema: {
20534
- verb: exports_external.enum(["create", "edit", "promote_attachment"]).describe("which artifact move"),
20578
+ verb: exports_external.enum(["create", "edit", "set_live_preview", "promote_attachment"]).describe("which artifact move"),
20535
20579
  title: exports_external.string().optional().describe("create: the artifact's title"),
20536
20580
  kind: exports_external.enum(["doc", "table", "diagram", "html", "file"]).optional().describe("create: structural kind (default file). doc/table/diagram/html are editable text"),
20537
20581
  type: exports_external.string().optional().describe("create: semantic type, e.g. decision|summary|plan|markdown|table|research-brief"),
@@ -20542,7 +20586,8 @@ var ACTION_DEFINITIONS = [
20542
20586
  sourceThreadId: exports_external.string().optional().describe("create: the thread it came from"),
20543
20587
  computerSessionId: exports_external.string().optional().describe("create: the attached computer session that produced it, cms_…"),
20544
20588
  sourceContributionIds: exports_external.array(exports_external.string()).optional().describe("create: contributions it distills"),
20545
- artifactId: exports_external.string().optional().describe("edit: the Artifact, art_…"),
20589
+ artifactId: exports_external.string().optional().describe("edit/set_live_preview: the Artifact, art_…"),
20590
+ threadId: exports_external.string().optional().describe("set_live_preview: the configured Thread Live Preview, thr_…; omit to clear the binding"),
20546
20591
  baseVersion: exports_external.number().optional().describe("edit: the version you READ (from get/create) — stale base is rejected with the current source"),
20547
20592
  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"),
20548
20593
  note: exports_external.string().optional().describe("edit: one-line summary of what changed"),
@@ -20553,13 +20598,14 @@ var ACTION_DEFINITIONS = [
20553
20598
  run: dispatch({
20554
20599
  create: "artifact.create",
20555
20600
  edit: "artifact.edit",
20601
+ set_live_preview: "artifact.setLivePreview",
20556
20602
  promote_attachment: "attachment.promote"
20557
20603
  }, (verb, input) => verb === "edit" ? { ...input, verb: Array.isArray(input.patches) ? "patch" : "replace" } : input)
20558
20604
  },
20559
20605
  {
20560
20606
  name: "artifact_get",
20561
20607
  title: "Read an Artifact",
20562
- description: "Read an Artifact's current source, version, immutable history, and AppBundle references, or pass version for an older snapshot. It cannot edit content, change lifecycle, promote an attachment, or delete an Artifact.",
20608
+ 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. It cannot edit content, bind a surface, change lifecycle, promote an attachment, or delete an Artifact.",
20563
20609
  inputSchema: {
20564
20610
  artifactId: exports_external.string().describe("the Artifact, art_…"),
20565
20611
  version: exports_external.number().optional().describe("read this old snapshot instead of the current")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.21.2",
3
+ "version": "0.21.3",
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",