@lambdacurry/arbor 0.20.10 → 0.20.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.
- package/dist/arbor.js +120 -18
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -754,6 +754,33 @@ function alias(table, alias2) {
|
|
|
754
754
|
return new Proxy(table, new TableAliasProxyHandler(alias2, false));
|
|
755
755
|
}
|
|
756
756
|
|
|
757
|
+
// ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/sqlite-core/checks.js
|
|
758
|
+
class CheckBuilder {
|
|
759
|
+
constructor(name, value) {
|
|
760
|
+
this.name = name;
|
|
761
|
+
this.value = value;
|
|
762
|
+
}
|
|
763
|
+
static [entityKind] = "SQLiteCheckBuilder";
|
|
764
|
+
brand;
|
|
765
|
+
build(table) {
|
|
766
|
+
return new Check(table, this);
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
class Check {
|
|
771
|
+
constructor(table, builder) {
|
|
772
|
+
this.table = table;
|
|
773
|
+
this.name = builder.name;
|
|
774
|
+
this.value = builder.value;
|
|
775
|
+
}
|
|
776
|
+
static [entityKind] = "SQLiteCheck";
|
|
777
|
+
name;
|
|
778
|
+
value;
|
|
779
|
+
}
|
|
780
|
+
function check(name, value) {
|
|
781
|
+
return new CheckBuilder(name, value);
|
|
782
|
+
}
|
|
783
|
+
|
|
757
784
|
// ../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260529.1_@prisma+client@5.22.0_@types+_885285c61ee4b1c788385eea24f801ee/node_modules/drizzle-orm/utils.js
|
|
758
785
|
function getColumnNameAndConfig(a, b) {
|
|
759
786
|
return {
|
|
@@ -1742,7 +1769,8 @@ var previewVersions = sqliteTable("preview_versions", {
|
|
|
1742
1769
|
fileCount: integer("file_count").notNull(),
|
|
1743
1770
|
byteCount: integer("byte_count").notNull(),
|
|
1744
1771
|
computerSessionId: text("computer_session_id").notNull().references(() => computerSessions.id),
|
|
1745
|
-
snapshotId: text("snapshot_id").
|
|
1772
|
+
snapshotId: text("snapshot_id").references(() => computerSnapshots.id),
|
|
1773
|
+
runId: text("run_id").references(() => computerRuns.id),
|
|
1746
1774
|
publishedByProfileId: text("published_by_profile_id").notNull().references(() => profiles.id),
|
|
1747
1775
|
idempotencyKey: text("idempotency_key"),
|
|
1748
1776
|
idempotencyFingerprint: text("idempotency_fingerprint"),
|
|
@@ -1755,7 +1783,9 @@ var previewVersions = sqliteTable("preview_versions", {
|
|
|
1755
1783
|
hostIdx: uniqueIndex("preview_versions_host_idx").on(t.hostLabel),
|
|
1756
1784
|
sessionIdx: index("preview_versions_session_idx").on(t.computerSessionId, t.createdAt),
|
|
1757
1785
|
idempotencyIdx: uniqueIndex("preview_versions_idempotency_idx").on(t.computerSessionId, t.publishedByProfileId, t.idempotencyKey),
|
|
1758
|
-
snapshotIdx: index("preview_versions_snapshot_idx").on(t.snapshotId)
|
|
1786
|
+
snapshotIdx: index("preview_versions_snapshot_idx").on(t.snapshotId),
|
|
1787
|
+
runIdx: index("preview_versions_run_idx").on(t.runId),
|
|
1788
|
+
sourceCheck: check("preview_versions_source_check", sql`(${t.snapshotId} is not null and ${t.runId} is null) or (${t.snapshotId} is null and ${t.runId} is not null)`)
|
|
1759
1789
|
}));
|
|
1760
1790
|
var previewVersionFiles = sqliteTable("preview_version_files", {
|
|
1761
1791
|
versionId: text("version_id").notNull().references(() => previewVersions.id),
|
|
@@ -2532,7 +2562,7 @@ __export(exports_external, {
|
|
|
2532
2562
|
clone: () => clone,
|
|
2533
2563
|
cidrv6: () => cidrv62,
|
|
2534
2564
|
cidrv4: () => cidrv42,
|
|
2535
|
-
check: () =>
|
|
2565
|
+
check: () => check2,
|
|
2536
2566
|
catch: () => _catch2,
|
|
2537
2567
|
boolean: () => boolean2,
|
|
2538
2568
|
bigint: () => bigint2,
|
|
@@ -14649,7 +14679,7 @@ __export(exports_schemas2, {
|
|
|
14649
14679
|
codec: () => codec,
|
|
14650
14680
|
cidrv6: () => cidrv62,
|
|
14651
14681
|
cidrv4: () => cidrv42,
|
|
14652
|
-
check: () =>
|
|
14682
|
+
check: () => check2,
|
|
14653
14683
|
catch: () => _catch2,
|
|
14654
14684
|
boolean: () => boolean2,
|
|
14655
14685
|
bigint: () => bigint2,
|
|
@@ -14941,8 +14971,8 @@ var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
|
|
|
14941
14971
|
reg.add(this, meta2);
|
|
14942
14972
|
return this;
|
|
14943
14973
|
},
|
|
14944
|
-
refine(
|
|
14945
|
-
return this.check(refine(
|
|
14974
|
+
refine(check2, params) {
|
|
14975
|
+
return this.check(refine(check2, params));
|
|
14946
14976
|
},
|
|
14947
14977
|
superRefine(refinement, params) {
|
|
14948
14978
|
return this.check(superRefine(refinement, params));
|
|
@@ -16084,7 +16114,7 @@ var ZodCustom = /* @__PURE__ */ $constructor("ZodCustom", (inst, def) => {
|
|
|
16084
16114
|
ZodType.init(inst, def);
|
|
16085
16115
|
inst._zod.processJSONSchema = (ctx, json, params) => customProcessor(inst, ctx, json, params);
|
|
16086
16116
|
});
|
|
16087
|
-
function
|
|
16117
|
+
function check2(fn) {
|
|
16088
16118
|
const ch = new $ZodCheck({
|
|
16089
16119
|
check: "custom"
|
|
16090
16120
|
});
|
|
@@ -16765,6 +16795,60 @@ var computerProfile = exports_external.looseObject({
|
|
|
16765
16795
|
tools: exports_external.array(exports_external.string()),
|
|
16766
16796
|
recommendedEditingPrimitive: exports_external.string()
|
|
16767
16797
|
});
|
|
16798
|
+
var computerRunPublicationState = exports_external.enum(["not-required", "durable", "not-durable", "unknown"]);
|
|
16799
|
+
var computerRunDurability = exports_external.looseObject({
|
|
16800
|
+
workspace: exports_external.enum(["shared", "isolated"]),
|
|
16801
|
+
parentMutation: exports_external.enum(["direct", "none"]),
|
|
16802
|
+
providerExecution: exports_external.enum(["parent", "disposable"]),
|
|
16803
|
+
finishDestroysExecution: exports_external.boolean(),
|
|
16804
|
+
baseSnapshotId: id.nullable(),
|
|
16805
|
+
gitPublication: exports_external.looseObject({
|
|
16806
|
+
state: computerRunPublicationState,
|
|
16807
|
+
reasonCode: exports_external.string()
|
|
16808
|
+
})
|
|
16809
|
+
});
|
|
16810
|
+
var computerRunFinishAssessment = exports_external.looseObject({
|
|
16811
|
+
state: exports_external.enum(["safe", "blocked", "unknown"]),
|
|
16812
|
+
requiresDiscard: exports_external.boolean(),
|
|
16813
|
+
repositories: exports_external.array(exports_external.looseObject({
|
|
16814
|
+
repository: exports_external.string(),
|
|
16815
|
+
path: exports_external.string(),
|
|
16816
|
+
startHead: exports_external.string().nullable(),
|
|
16817
|
+
currentHead: exports_external.string().nullable(),
|
|
16818
|
+
currentDirty: exports_external.boolean().nullable(),
|
|
16819
|
+
changedSinceStart: exports_external.boolean().nullable(),
|
|
16820
|
+
publication: exports_external.looseObject({
|
|
16821
|
+
state: computerRunPublicationState,
|
|
16822
|
+
reasonCode: exports_external.string(),
|
|
16823
|
+
remoteRef: exports_external.string().optional()
|
|
16824
|
+
})
|
|
16825
|
+
}))
|
|
16826
|
+
});
|
|
16827
|
+
var operatingGuidanceEntry = exports_external.looseObject({
|
|
16828
|
+
class: exports_external.literal("guidance"),
|
|
16829
|
+
scope: exports_external.enum(["space", "topic"]),
|
|
16830
|
+
sourceId: id,
|
|
16831
|
+
strength: exports_external.literal("recommended"),
|
|
16832
|
+
message: exports_external.string()
|
|
16833
|
+
});
|
|
16834
|
+
var computerAgentBrief = exports_external.looseObject({
|
|
16835
|
+
work: exports_external.looseObject({ threadId: id, title: exports_external.string(), objective: exports_external.string() }),
|
|
16836
|
+
guidance: exports_external.array(operatingGuidanceEntry),
|
|
16837
|
+
computer: exports_external.looseObject({
|
|
16838
|
+
computerId: id,
|
|
16839
|
+
backend: exports_external.enum(["worker-shell", "container"]),
|
|
16840
|
+
containerProfile: exports_external.string().nullable(),
|
|
16841
|
+
repositories: exports_external.array(exports_external.looseObject({ repository: exports_external.string(), path: exports_external.string() })),
|
|
16842
|
+
durableSnapshotId: id.nullable()
|
|
16843
|
+
}),
|
|
16844
|
+
activeRuns: exports_external.array(exports_external.looseObject({
|
|
16845
|
+
runId: id,
|
|
16846
|
+
label: exports_external.string().nullable(),
|
|
16847
|
+
mode: exports_external.enum(["read", "write"]),
|
|
16848
|
+
execution: exports_external.enum(["shared", "isolated"]),
|
|
16849
|
+
status: exports_external.enum(["active", "finished", "failed", "cancelled"])
|
|
16850
|
+
}))
|
|
16851
|
+
});
|
|
16768
16852
|
var computerRunGitStart = exports_external.looseObject({
|
|
16769
16853
|
repositories: exports_external.array(exports_external.looseObject({
|
|
16770
16854
|
repository: exports_external.string(),
|
|
@@ -16790,6 +16874,7 @@ var computerRun = exports_external.looseObject({
|
|
|
16790
16874
|
workspaceDir: exports_external.string(),
|
|
16791
16875
|
baseSnapshotId: id.nullable(),
|
|
16792
16876
|
gitStart: computerRunGitStart.nullable().optional(),
|
|
16877
|
+
durability: computerRunDurability,
|
|
16793
16878
|
status: exports_external.enum(["active", "finished", "failed", "cancelled"]),
|
|
16794
16879
|
label: exports_external.string().nullable(),
|
|
16795
16880
|
reason: exports_external.string().nullable(),
|
|
@@ -16812,6 +16897,8 @@ var computerRunReceipt = exports_external.looseObject({
|
|
|
16812
16897
|
workspace: exports_external.looseObject({ dir: exports_external.string() }),
|
|
16813
16898
|
baseSnapshotId: id.nullable(),
|
|
16814
16899
|
gitStart: computerRunGitStart.nullable().optional(),
|
|
16900
|
+
durability: computerRunDurability,
|
|
16901
|
+
finishAssessment: computerRunFinishAssessment.nullable(),
|
|
16815
16902
|
status: exports_external.enum(["active", "finished", "failed", "cancelled"]),
|
|
16816
16903
|
outcome: exports_external.enum(["finished", "failed", "cancelled"]).nullable(),
|
|
16817
16904
|
reason: exports_external.string().nullable(),
|
|
@@ -17420,6 +17507,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17420
17507
|
repositories: exports_external.array(exports_external.looseObject({ repository: exports_external.string(), path: exports_external.string() })),
|
|
17421
17508
|
defaultCwd: exports_external.string(),
|
|
17422
17509
|
capabilities: computerCapabilityCard,
|
|
17510
|
+
agentBrief: computerAgentBrief,
|
|
17423
17511
|
runtime: jsonObject,
|
|
17424
17512
|
reconciliation: exports_external.looseObject({
|
|
17425
17513
|
action: exports_external.literal("automatic_reprovision"),
|
|
@@ -17433,11 +17521,15 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17433
17521
|
execution: exports_external.enum(["shared", "isolated"]),
|
|
17434
17522
|
baseSnapshotId: id.nullable(),
|
|
17435
17523
|
gitStart: computerRunGitStart.nullable().optional(),
|
|
17524
|
+
durability: computerRunDurability,
|
|
17525
|
+
guidance: exports_external.array(operatingGuidanceEntry),
|
|
17436
17526
|
status: exports_external.string()
|
|
17437
17527
|
}),
|
|
17438
17528
|
computer_run_finish: exports_external.looseObject({
|
|
17439
17529
|
status: exports_external.string(),
|
|
17440
|
-
replayed: exports_external.boolean()
|
|
17530
|
+
replayed: exports_external.boolean(),
|
|
17531
|
+
durability: computerRunDurability,
|
|
17532
|
+
finishAssessment: computerRunFinishAssessment.nullable()
|
|
17441
17533
|
}),
|
|
17442
17534
|
computer_run_receipt: exports_external.looseObject({
|
|
17443
17535
|
receipt: computerRunReceipt
|
|
@@ -17489,6 +17581,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17489
17581
|
backend: exports_external.enum(["worker-shell", "container"]),
|
|
17490
17582
|
profile: computerProfile.nullable(),
|
|
17491
17583
|
capabilities: computerCapabilityCard,
|
|
17584
|
+
agentBrief: computerAgentBrief,
|
|
17492
17585
|
runtime: jsonObject
|
|
17493
17586
|
}),
|
|
17494
17587
|
computer_verify: exports_external.looseObject({
|
|
@@ -17527,9 +17620,12 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17527
17620
|
manifestDigest: exports_external.string(),
|
|
17528
17621
|
fileCount: exports_external.number(),
|
|
17529
17622
|
byteCount: exports_external.number(),
|
|
17530
|
-
snapshotId: id,
|
|
17623
|
+
snapshotId: id.optional(),
|
|
17624
|
+
runId: id.optional(),
|
|
17531
17625
|
published: exports_external.boolean(),
|
|
17532
17626
|
replayed: exports_external.boolean()
|
|
17627
|
+
}).refine((value) => Boolean(value.snapshotId) !== Boolean(value.runId), {
|
|
17628
|
+
message: "Preview output requires exactly one provenance source: snapshotId or runId"
|
|
17533
17629
|
}),
|
|
17534
17630
|
computer_publish_app_bundle: exports_external.looseObject({
|
|
17535
17631
|
bundleId: id,
|
|
@@ -17640,6 +17736,8 @@ var OUTPUT_SHAPERS = {
|
|
|
17640
17736
|
["execution", run.execution],
|
|
17641
17737
|
["baseSnapshotId", run.baseSnapshotId],
|
|
17642
17738
|
["gitStart", run.gitStart],
|
|
17739
|
+
["durability", run.durability],
|
|
17740
|
+
["guidance", result.guidance],
|
|
17643
17741
|
["status", run.status]
|
|
17644
17742
|
]);
|
|
17645
17743
|
},
|
|
@@ -17647,7 +17745,9 @@ var OUTPUT_SHAPERS = {
|
|
|
17647
17745
|
const run = record2(result.run) ?? {};
|
|
17648
17746
|
return defined([
|
|
17649
17747
|
["status", run.status],
|
|
17650
|
-
["replayed", result.replayed]
|
|
17748
|
+
["replayed", result.replayed],
|
|
17749
|
+
["durability", run.durability],
|
|
17750
|
+
["finishAssessment", result.finishAssessment]
|
|
17651
17751
|
]);
|
|
17652
17752
|
},
|
|
17653
17753
|
computer_exec: (result, input) => defined([
|
|
@@ -18188,7 +18288,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18188
18288
|
{
|
|
18189
18289
|
name: "computer_open",
|
|
18190
18290
|
title: "Open a Thread computer",
|
|
18191
|
-
description: "Open or resume this Thread's project environment for filesystem or command work. A safe living-profile revision drift is reconciled automatically by replacing the generation, restoring supported state, and returning reconciliation metadata; structural recipe changes still fail explicitly with computer_reprovision as the suggested action. Every configured repository is re-authorized through its explicit GitHub connection; a fresh reusable base clones it with a request-scoped contents:read credential before strict setup runs, while a restore receives no credential. Returns computerSessionId — pass it unchanged to later Computer tools and cited work — plus
|
|
18291
|
+
description: "Open or resume this Thread's project environment for filesystem or command work. A safe living-profile revision drift is reconciled automatically by replacing the generation, restoring supported state, and returning reconciliation metadata; structural recipe changes still fail explicitly with computer_reprovision as the suggested action. Every configured repository is re-authorized through its explicit GitHub connection; a fresh reusable base clones it with a request-scoped contents:read credential before strict setup runs, while a restore receives no credential. Returns computerSessionId — pass it unchanged to later Computer tools and cited work — plus a compact Agent Brief with Thread objective, scoped Space/Topic guidance and provenance, durable parent snapshot, repositories, and active Runs; the selected profile contract; a resolved capabilities card; workspaceRoot; each materialized repositories[].path; and defaultCwd. Omitted computer_exec.cwd uses defaultCwd: the single checkout when exactly one repository is configured, workspaceRoot otherwise.",
|
|
18192
18292
|
inputSchema: {
|
|
18193
18293
|
threadId: exports_external.string().describe("the Arbor Thread whose stable computer to open, thr_…"),
|
|
18194
18294
|
vcpus: exports_external.number().int().min(1).max(4).optional().describe("optional container vCPU request"),
|
|
@@ -18214,7 +18314,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18214
18314
|
{
|
|
18215
18315
|
name: "computer_run_start",
|
|
18216
18316
|
title: "Start a run",
|
|
18217
|
-
description: "Start one unit of work inside an opened Thread computer. Write Runs default to isolated execution restored from the Computer's current base snapshot, so independent work does not collide. For intentional live collaboration, pass execution='shared' and the Run works directly in the Thread Computer alongside other shared Runs. Read Runs always share. All placements present the same /workspace layout; pass runId to Run-aware Computer operations and Arbor routes them correctly.
|
|
18317
|
+
description: "Start one unit of work inside an opened Thread computer. Write Runs default to isolated execution restored from the Computer's current base snapshot, so independent work does not collide. For intentional live collaboration, pass execution='shared' and the Run works directly in the Thread Computer alongside other shared Runs. Read Runs always share. All placements present the same /workspace layout; pass runId to Run-aware Computer operations and Arbor routes them correctly. An isolated WRITE Run does not mutate the parent Computer, its provider environment is disposable, and finish destroys that environment. The start result states those durability facts and returns the inherited scoped guidance; follow any durability-first project guidance before broad validation. Git publication remains unknown until Arbor can prove a clean changed HEAD exists on the configured remote; a local commit, isolated filesystem, or Preview is not that proof. This creates no second Thread or durable Computer.",
|
|
18218
18318
|
inputSchema: {
|
|
18219
18319
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18220
18320
|
mode: exports_external.enum(["read", "write"]).describe("write for mutable work; read for shared inspection"),
|
|
@@ -18228,11 +18328,12 @@ var ACTION_DEFINITIONS = [
|
|
|
18228
18328
|
{
|
|
18229
18329
|
name: "computer_run_finish",
|
|
18230
18330
|
title: "Finish a run",
|
|
18231
|
-
description: "Close a Run with its terminal outcome and the one line that explains it.
|
|
18331
|
+
description: "Close a Run with its terminal outcome and the one line that explains it. Before destroying an isolated WRITE environment, Arbor inspects bounded Git state: newly dirty work or a live remote check proving the new HEAD is absent blocks ordinary finish. Publication uncertainty remains explicitly unknown. Pass discard=true only when intentionally destroying work Arbor proved non-durable. Repeating the same outcome is a safe no-op, and the terminal receipt preserves the durability assessment.",
|
|
18232
18332
|
inputSchema: {
|
|
18233
18333
|
runId: exports_external.string().describe("the runId returned by computer_run_start, run_…"),
|
|
18234
18334
|
outcome: exports_external.enum(["finished", "failed", "cancelled"]).optional().describe("terminal outcome; defaults to finished"),
|
|
18235
|
-
reason: exports_external.string().max(500).optional().describe("one factual line on how this unit of work ended, e.g. what shipped or what broke")
|
|
18335
|
+
reason: exports_external.string().max(500).optional().describe("one factual line on how this unit of work ended, e.g. what shipped or what broke"),
|
|
18336
|
+
discard: exports_external.boolean().optional().describe("explicitly allow teardown when Arbor proved current Run work is not durable")
|
|
18236
18337
|
},
|
|
18237
18338
|
surfaces: ["computer-mcp", "computer-cli"],
|
|
18238
18339
|
toolset: "loop",
|
|
@@ -18241,7 +18342,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18241
18342
|
{
|
|
18242
18343
|
name: "computer_run_receipt",
|
|
18243
18344
|
title: "Read a run receipt",
|
|
18244
|
-
description: "READ ONLY: read one run's compact receipt — its purpose, actor, computer session, base snapshot and starting Git projection,
|
|
18345
|
+
description: "READ ONLY: read one run's compact receipt — its purpose, actor, computer session, base snapshot and starting Git projection, explicit isolation/durability contract, pre-teardown durability assessment when available (including publication that remains unknown unless proven), meaningful activity, and terminal outcome. Background work may appear as distilled labels/outcomes, but Arbor keeps no raw command transcript or process output. The receipt stays readable after the Run is terminal.",
|
|
18245
18346
|
inputSchema: {
|
|
18246
18347
|
runId: exports_external.string().describe("the run to read, run_… (from computer_run_start or computer_runs)")
|
|
18247
18348
|
},
|
|
@@ -18446,9 +18547,10 @@ var ACTION_DEFINITIONS = [
|
|
|
18446
18547
|
{
|
|
18447
18548
|
name: "computer_publish_preview",
|
|
18448
18549
|
title: "Publish an immutable static Preview",
|
|
18449
|
-
description: "Publish one checked HTML file or bounded static build directory
|
|
18550
|
+
description: "Publish one checked HTML file or bounded static build directory as a private immutable Preview. Parent publication uses computerSessionId, checkpoints the source into Thread lineage, then publishes it. Isolated Run publication uses runId, freezes that Run's exact static bytes without checkpointing, adopting the Run, or advancing parent lineage, and remains durable after the Run is destroyed. The returned arborthreads.dev URL survives teardown; put it on its own line to show the interactive Preview card. A directory must contain index.html, use relative local asset URLs, and cannot include dotfiles, source maps, secrets, symlinks, or server code. Supply one stable idempotencyKey per logical publication: safe retries return the original immutable URL, while reusing the key for another path/title or Run fork conflicts.",
|
|
18450
18551
|
inputSchema: {
|
|
18451
|
-
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_
|
|
18552
|
+
computerSessionId: exports_external.string().optional().describe("the computerSessionId returned by computer_open, cms_…; required for parent publication, optional when runId is supplied"),
|
|
18553
|
+
runId: exports_external.string().optional().describe("active isolated write Run whose static workspace bytes should be published as review output"),
|
|
18452
18554
|
path: exports_external.string().describe("absolute path to one HTML file or static build directory under /workspace"),
|
|
18453
18555
|
title: exports_external.string().min(1).max(160).describe("short factual Preview title"),
|
|
18454
18556
|
idempotencyKey: exports_external.string().min(1).max(200).describe("stable key for this ONE logical publication (≤200 chars); reuse it only to retry the same path and title")
|
|
@@ -18460,7 +18562,7 @@ var ACTION_DEFINITIONS = [
|
|
|
18460
18562
|
{
|
|
18461
18563
|
name: "computer_publish_app_bundle",
|
|
18462
18564
|
title: "Publish an immutable AppBundle",
|
|
18463
|
-
description: "From the live parent Thread Computer, after a Bun container build is green, verify that entryPath bytes exactly match the referenced ArtifactVersion
|
|
18565
|
+
description: "From the live parent Thread Computer, after a Bun container build is green, verify that entryPath bytes exactly match the referenced ArtifactVersion, then capture source hashes plus Git/workspace provenance, then freeze the Worker module and optional static assets into a content-addressed AppBundle. A mismatch is rejected; dirty or untracked source is allowed but returned as an explicit warning. Use the returned bundleId with app_deploy; retries require the same idempotencyKey. AppBundle publication remains intentionally parent-only; an isolated Run Preview is review output and does not adopt the Run.",
|
|
18464
18566
|
inputSchema: {
|
|
18465
18567
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18466
18568
|
artifactVersionId: exports_external.string().describe("the source ArtifactVersion, artv_…"),
|
package/package.json
CHANGED